Likewise, In Canada, I've used Zoiper and LinPhone with good success, Zoiper on both Windows Phone 8.1 and Windows "Mobile" 10 on a Lumia 650 works great for Outbound calling. In Windows Phone 8.1, routing the SIP # to ring my LinPhone account worked perfect, 95% of the time from sleep LinPhone would wake up and ring like a regular phone within the first ring.
However, since Anniversary Update, LinPhone now looks like it just pops a single Toast notification and notification length sound when it's ringing, instead of ringing like a regular phone the whole time. There does not appear to be any setting anywhere to let it act like a phone and bring the full app to the front, or maintain the notification and ringtone for the duration of the incoming call attempt. So it still comes through 95% of the time, but can easily be brushed off as any other notification if not looking at the phone, as even selecting a ringtone length audio file for the notification sound, it only plays the first second of that sound until the Toast/Pop-Down notification goes away.
Conversely, on my wifes iPad, where it used to be atrocious, the updated LinPhone app all now perfectly wakes up and rings to her iPad like a phone for the entire duration of the call attempt. Given Alarm apps and the like on Windows 10 on Lumia stay in front correctly until dismissed, I'm sure some developer option exists to update LinPhone to allow it to keep ringing/notifying instead of just the single toast notification.
As for Zoiper, I use it for outbound only, as lately on Windows Phone/Mobile, it only rings on incoming calls if the app is open and on top, and on iOS, it just never receives calls...ever, even when it's awake and on the screen.
For text, I mostly use services like Whatapp and FB Messanger with regular contacts, and if anyone texts my SIP Phone #, it treats it like a regular "Text to LandLine" service, so the sender knows it does not really support SMS/Txt, even though I still get a voicemail with a Text to Speech version of the SMS.