I tried several SIP client apps (in beginning of 2019, with iOS 12.1.3 on iPhone SE, with my SIP provider; your mileage may vary).
Only free apps (with the exception of payable push notification service, where noted).
First a note: one of the biggest issues is availability while the app is in the background, or when you just put the phone down and it locks the screen and kills most apps. So the app can not receive incoming calls (or messages). This is solved by the app making/tricking the OS to run the app in the background all the time, or using push notifications (the "official" way, supported and endorsed by iOS).
Second note: All apps can and do use the phones contact list. To match incoming calls, allow selecting a contact to make an outgoing call, etc...
I enabled push notifications, costs about 1 EUR per month, there is a week or two free trial period.
I did not test background mode (instead of push notifications) although the app has some settings for that (and they all warn about increased battery usage).
- (++) works, with almost zero issues (unlike others)
- (--) push notifications are payable (they are payable for all apps, to be honest, at least the ones listed here)
- (--) the missed call notification sometimes shows only phone number and no contact name (even if caller is known and in my contact list)
- (--) in received SMS messages it converts some character combinations to smiley icons
- (++) works also in background
- (--) therefore increases battery usage
- (--) still sometimes not receiving incoming calls, rarely (I guesstimate around one in 20 incoming calls to fail)
- (--) many incoming SMS messages are unreadable due to a graphics glitch
- (--) incoming calls phone number often not matched to a known contact (see details here)
- (--) sometimes receives the same SMS multiple times
- (--) after restart of phone, incoming calls don't work even if app is still running (is shown in the active app list), have to start it manually
- (--) back (arrow) button in the GUI is very unresponsive, have to tap it several times to work
Linphone 4.0.3 (inside the app it says 4.0.2)
- (--) not showing received SMS message content, only time and sender
- (--) outgoing calls don't work!
- (--) sometimes changes in settings/preferences are not remembered
- (--) does not match incoming call phone numbers to contacts
- (--) bad support, both free/community and premium. No response for weeks.
- (--) annoying popup that is has no access to camera on each start of app. Also a different popup informing that there is a mobile or wifi network available. (can maybe be turned off)
- (--) can not login/register to SIP server in some (WiFi) networks (where other clients I tested work fine)
- (--) does not match incoming call phone numbers to contacts (later in history they are paired correctly)
- (--) plays the default ringtone for a second after I reject an incoming call. Even if I select another ringtone. And set the phone to silent mode (there is no ringing during the call, but after I reject it)
- (--) often the other party in a phone call can not be heard. Or vice versa. This seems almost random. Sometimes all works, sometimes not.
- (--) several times, when the app was running in foreground and was registered to the server, incoming calls (or SMS messages) did not work
Is praised by some, but is not free, also no free trial period, so I did not test it.
- (++/--) ancient GUI :-)
- (++/--) works, but not in background
- (--) no SMS message support
- (--) some trouble accessing contacts, seems only some of them are accessible from the app