I'm playing with CallKit now. I've downloaded SpeakerBox example and I have my own example that uses custom SIP and WebRTC and CallKit code from SpeakerBox.
I've noticed that in SpeakerBox application if you start local dummy call and then have another incoming call (no difference, if it is simulated SpeakerBox incoming one or real mobile call) you will always (OK, in 99.9% of cases) get "Hold&Accept" and "End&Accept" buttons on UI call screen provided by system.
But for my application things are following:
Is this something that can be configured in CallKit inside of application or in application itself?
It happens when you don't report to system (device A) that call was accepted by device B. Then if you accept the new incoming call from device C, you will end the current call with device B.
To solve it, when device A is notified about that call was accepted by B, you must use this:
[provider reportOutgoingCallWithUUID:callUUID connectedAtDate:[NSDate date]];
where:
-(void) provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action
I hope that it helps you.