CallKit:调用UI个控件
CallKit: call UI controls
我现在正在玩 CallKit。
我已经下载了 SpeakerBox 示例,我有自己的示例,它使用 SpeakerBox 中的自定义 SIP 和 WebRTC 以及 CallKit 代码。
我注意到在 SpeakerBox 应用程序中,如果您启动本地虚拟呼叫然后有另一个来电(没有区别,如果它是模拟 SpeakerBox 来电或真实移动呼叫)您将始终(好的,在 99.9%例数)在系统提供的 UI 呼叫屏幕上获得 "Hold&Accept" 和 "End&Accept" 按钮。
但对于我的申请,事情如下:
- 我启动我的 VoIP 应用程序(设备 A)并拨打某个手机号码(设备 B)
- 我在设备 B 上接听电话
- 我从另一个手机号码(设备 C)拨打设备 A
- 我收到系统调用 UI,但只有 "Accept" 和 "Decline" 按钮。所以我无法保持当前通话。
这是否可以在应用程序内部或应用程序本身的 CallKit 中配置?
当你没有向系统(设备A)报告设备B接受了呼叫时,就会发生这种情况。如果你接受来自设备C的新来电,你将结束当前与设备B的通话。
要解决这个问题,当设备 A 收到有关 B 已接受呼叫的通知时,您必须使用此方法:
[provider reportOutgoingCallWithUUID:callUUID connectedAtDate:[NSDate date]];
其中:
- provider 是在
-(void) provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action
收到的 CXProvider
- callUUID 是设备 A 中调用的 UUID。
希望对你有所帮助
我现在正在玩 CallKit。 我已经下载了 SpeakerBox 示例,我有自己的示例,它使用 SpeakerBox 中的自定义 SIP 和 WebRTC 以及 CallKit 代码。
我注意到在 SpeakerBox 应用程序中,如果您启动本地虚拟呼叫然后有另一个来电(没有区别,如果它是模拟 SpeakerBox 来电或真实移动呼叫)您将始终(好的,在 99.9%例数)在系统提供的 UI 呼叫屏幕上获得 "Hold&Accept" 和 "End&Accept" 按钮。
但对于我的申请,事情如下:
- 我启动我的 VoIP 应用程序(设备 A)并拨打某个手机号码(设备 B)
- 我在设备 B 上接听电话
- 我从另一个手机号码(设备 C)拨打设备 A
- 我收到系统调用 UI,但只有 "Accept" 和 "Decline" 按钮。所以我无法保持当前通话。
这是否可以在应用程序内部或应用程序本身的 CallKit 中配置?
当你没有向系统(设备A)报告设备B接受了呼叫时,就会发生这种情况。如果你接受来自设备C的新来电,你将结束当前与设备B的通话。
要解决这个问题,当设备 A 收到有关 B 已接受呼叫的通知时,您必须使用此方法:
[provider reportOutgoingCallWithUUID:callUUID connectedAtDate:[NSDate date]];
其中:
- provider 是在
-(void) provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action
收到的 CXProvider
- callUUID 是设备 A 中调用的 UUID。
希望对你有所帮助