我现在在玩CallKit。
我已经下载了SpeakerBox示例,我有自己的示例,使用来自SpeakerBox的自定义SIP和WebRTC以及CallKit代码。
我注意到,在SpeakerBox应用程序中,如果您启动本地虚拟呼叫,然后有另一个呼入呼叫(没有区别,如果是模拟SpeakerBox呼入一个或真正的移动呼叫),那么您将始终(在99.9%的情况下)在系统提供的UI呼叫屏幕上获得“Hold&Accept”和“End&Accept”按钮。
但对于我的申请,情况如下:
我启动VoIP应用程序(设备A)并拨打某个移动电话号码(设备B)
我在设备B上接受呼叫
我从另一个移动电话号码(设备C)呼叫设备A
我得到了系统调用界面,但只有“接受”和“拒绝”按钮。所以我不能挂断当前通话。
这是可以在应用程序内部或应用程序本身的CallKit中配置的吗?
最佳答案
当您不向系统(设备A)报告设备B已接受呼叫时,会发生这种情况。然后,如果您接受设备C的新传入呼叫,则将使用设备B结束当前呼叫。
要解决此问题,当设备A收到B接受该呼叫的通知时,您必须使用:[provider reportOutgoingCallWithUUID:callUUID connectedAtDate:[NSDate date]];
哪里:
provider是在-(void) provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action
calluid是呼叫设备A的UUID。
我希望它能帮助你。
关于ios - CallKit:调用UI控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44005507/