You have to wake up your application with voip-notification, before receiving call on background.
- So you can implement your solution which send notification before every call. Notification wake an app and app receive the call
- You can use callkit for UI, but callkit itself doesn't handle any background or voip work.
- Use some working solution for example FlexiSip from Belledonne
EDIT
Voip notification process.
Before every SIP Invite you have send voip notification to target device. Voip notification wake application which will be ready for accepting SIP call.
I'm not sure if you use proxy or if you making just direct calls. If you are using proxy you can try FlexiSIP which should handle this logic for you (I didn't tried). Of course you will need to provide your voip certificates to it.
If you making direct calls without SIP proxy, source application should call same API of some web service which send voip notification for target device (For example Houston API). And after you can send SIP invite from source to target application.