Deploying a SIP system - on FreeBSD and Android/Apple devices.

So I am considering a project for the winter. I want to build my own 'private domain' SIP system for me and me family. I am thinking (dreaming) of a system where my FreeBSD server runs the SIP services, and my various devices provide the SIP clients. I am thinking/hoping I can do VoIP, video, presence, messaging, (and optionally conferencing) functions.

I have lots of VoIP and networking experience, in fact I used to be employed in a professional services role building new large networks and Cisco unified communications systems so I good skills wise there.

My question to you is simple: Is there a good stable SIP client product available, that you recommend, that is available on Android devices (via Google playstore) and Apple devices (via apple store) that provides the functionality I mentioned? Or even most of the functionality? Please only recommend something if you know from experience that it is good and stable.

On the FreeBSD server side I might try something like net/opensips for example. Any recommendations there?
Yate Client I found was the most portable among droid/pc/apple. Zoiper looked promising but crashed on PC when I tried it. That was about 3 years ago.
I have an asterisk server (CentOS) that uses that. Although I prefer the IAX protocol over SIP because there's no issues with NAT to deal with, the SIP stuff worked internally when I tested it out over the WiFi.
Thanks for the responses guys.

SirDice - I know a lot of people use Asterisk, but I see that as more as a VoIP based PBX versus it being a more 'unified communications' system. Maybe my knowledge of it is outdated now. I might try it just the same.

Leebrown66 - I have never had an issue with getting SIP to work through NAT. I think I lot of people trip up on knowing they have various sets of sessions to forward - SIP (signalling) and RTP/RTCP (audio) just to name two.

Anyone else have any experience with SIP clients for Android, Apple, etc?