描述
如何更改通话的流程,不等待接收通知,直接在呼出界面就振铃?
分析(根因分析、需求分析)
默认情况下,CallKit 呼出方呼出电话后,呼出方触发等待音的时机:
- 如果接收方在线,收到通话邀请的同时自动回复接收通知(此时还没有接听)。呼出方收到接收方的接收通知后,开始等待音。
- 如果接收方暂时不在线,会收到音视频的推送,把 App 唤醒,然后自动发送接收通知,呼出方收到了就会开始振铃。
- 在接收方手机没有联网的时候,或者接收方的 App根本没有集成音视频通话的情况下,呼出方是收不到接收通知的,也就不会振铃。
解决方案
需要修改CallKit 源码。
-
在
RCCallBaseViewController
的ViewWillAppear
中 添加下面代码:NSString *ringPath = [[[NSBundle mainBundle\] pathForResource:@"RongCloud" ofType:@"bundle"] stringByAppendingPathComponent:@"voip/voip_calling_ring.mp3"]; [self startPlayRing:ringPath];
-
请把
shouldAlertForWaitingRemoteResponse
方法中的代码全部删掉。
更多支持
如有疑问,欢迎提交工单。