来自本机呼叫的 VOIP 拨出电话 UI

VOIP outgoing call from native call UI

每当我在我的 VOIP 应用程序中收到来电时,我都可以在我的本机 iPhone 呼叫 UI.

上看到日志

我想通过单击最后一个来电从 UI 的本机 iPhone 呼叫记录中拨出电话。就像它适用于 WhatsApp 、 Skype 、环聊等

怎么可能去电?

下面是我为来电写的方法:

-(void)reportIncomingCall:(NSUUID*)UDID handle:(NSString*)handle;
-(CXCallController*)startCall:(NSUUID*)UDID handle:(NSString*)handle
-(void)connectCallWithCallController:(CXCallController*)controller

我知道还有一种传出方法call.But我不知道什么时候调用这个:

- (NSUUID *)reportOutgoingCallContactIdentifier:(NSString *)identifier destination:(NSString *)name telNumber:(NSString *)telnum 

点击本机 iOS 通话记录中的项目时,将调用应用程序委托的 continueUserActivity 函数。我的实现在 Swift:

中看起来像这样
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

    self.startCallHandle = userActivity.startCallHandle
    // Cache call handle here, and make call using cached call handle 
    // when applicationDidBecomeActive is called

    return true

}

startCallHandle 在文件 NSUserActivity+StartCallConvertible.swift 中定义,如 SpeakerBox 示例项目所示。

在您的应用 Info.plist 中,您必须具有 INStartAudioCallIntent and/or INStartVideoCallIntent。再次查看 SpeakerBox 示例应用以获取详细信息。