传入的蜂窝呼叫在我的iOS应用程序中中断VoIP呼叫

传入的蜂窝呼叫在我的iOS应用程序中中断VoIP呼叫,第1张

概述我正在使用PJSIP(在PJSUA的帮助下)在我的应用程序中实现一些VoIP功能. 当我的应用程序中的VoIP呼叫正在进行中时,我可以轻松地保持呼叫,然后完全没有问题,一切都很好. 我已经使用CoreTelephony来识别传入蜂窝(正常)呼叫,当呼叫到来时,我在applicationWillResignActive中保持我的VoIP呼叫,当结束时我在applicationDidBecomeAc 我正在使用PJsIP(在PJsUA的帮助下)在我的应用程序中实现一些VoIP功能.
当我的应用程序中的VoIP呼叫正在进行中时,我可以轻松地保持呼叫,然后完全没有问题,一切都很好.
我已经使用CoreTelephony来识别传入的蜂窝(正常)呼叫,当呼叫到来时,我在applicationWillResignActive中保持我的VoIP呼叫,当结束时我在applicationDIDBecomeActive中取消(重新注册)我的VoIP呼叫.一切似乎工作正常(因为我几乎到处都有日志)但是从蜂窝电话回来后我的电话已经不再有任何媒体传输,所以电话正在进行,但我听不到任何声音. 30秒后我断开连接(我配置了30秒超时,因为我的服务器上没有媒体,这里会调用它.).我真的很感激任何可能的信息或者我可能缺少的东西.谢谢大家.解决方法 作为这个维基:

http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone?format=pdf

pJsip解释说,iOS7以后pJsua正在使用AVAudioSession的高级API来管理声音流的打开和关闭,这不允许在GSM呼叫(或任何其他声音)中断之后(自动)重新连接媒体流的旧方法.
为了使其工作,您需要执行以下 *** 作:

>您的应用程序应配置为接收中断事件,如果您使用声音或VOIP作为uibackgroundmodes,则已经是这种情况.如果没有,请使用以下内容接收中断:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
>中断开始时强制关闭声音设备.
pJsua使用pJsua_set_no_snd_dev(),pJsua2使用AudDevManager.setNoDev()
>当中断结束时,将AVAudioSession设置为活动状态,然后重新启动声音设备
对pJsua使用pJsua_set_snd_dev(),对pJsua2使用audDevManager.setPlaybackDev()setCaptureDev()

可以使用方法pJsua_get_snd_dev()提取发送到pJsua_set_snd_dev()所需的参数.

这里要记住的一件事是,一旦你强行关闭设备它就不会自动启动(即使新的呼叫开始),除非你再次调用pJsua_set_snd_dev()重新启动它

总结

以上是内存溢出为你收集整理的传入的蜂窝呼叫在我的iOS应用程序中中断VoIP呼叫全部内容,希望文章能够帮你解决传入的蜂窝呼叫在我的iOS应用程序中中断VoIP呼叫所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存