Callkit doesn't recognize connected info of outgoing call
我正在将Callkit框架添加到我的Obj-C VoIP应用程序中。但是拨出电话存在一些问题。
详细信息
是否有任何建议或信息?
/激活音频会话后,您需要呼叫连接和连接状态更改。
您可以使用块来做到这一点。在启用音频会话后,在SIP呼叫模型中创建模块并分配模块执行代码。
在SIP通话状态事件中调用此块。/
/ *配置音频会话,但不要在此处开始呼叫音频,因为必须完成一次
音频会话的优先级提高后,系统已将其激活。
* /
1 2 3 4 5 6 7 8 9 10 | - (void)provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action { _outgoingCallId = action.callUUID; _outgoingCallHandler = action.handle.value; _destinationURI = action.contactIdentifier; [[AudioManager sharedManager] configureAudioSession]; [action fulfill]; } |
/ *为调用生命周期中的重要事件设置回调块,以便可以更新CXProvider来反映更新后的状态。* /
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | - (void)provider:(CXProvider *)provider didActivateAudioSession:(AVAudioSession *)audioSession { SIPCall *call = [[[SIPUserAgent sharedUserAgent] account]makeCallToURI:_destinationURI]; call.connectingBlock = ^{ NSLog(@"----- connecting block -----"); [_provider reportOutgoingCallWithUUID:_outgoingCallId startedConnectingAtDate:nil]; }; call.connectedBlock = ^{ NSLog(@"----- connected block -----"); [_provider reportOutgoingCallWithUUID:_outgoingCallId connectedAtDate:nil]; }; } |
// sip呼叫事件的呼叫阻止
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | - (void)SIPCallConnecting:(NSNotification *)notification { SIPCall *call = [notification object]; if (call.connectingBlock) { call.connectingBlock(); } } - (void)SIPCallDidConfirm:(NSNotification *)notification { SIPCall *call = [notification object]; [self setCallStartTime:[NSDate timeIntervalSinceReferenceDate]]; [actv startCallTimer]; if (call.connectedBlock) { call.connectedBlock(); } } |