当应用程序在ios中处于后台时接收voip电话
我想我有所有的要求,当应用程序在后台时有一个“活着”的套接字。 也就是说:
当应用程序发送到后台时,它会添加一个后台处理程序,该程序会在每个时间段发送一个“keepAlive”消息。
keepAlive似乎正在工作。 如果我检查服务器中的日志,即使应用程序不在前台,我也可以看到消息是如何到达的。
问题(和问题)是,当应用程序处于后台时,我没有收到呼叫。
看起来套接字还活着,如果我在前台没有应用程序时打电话给手机,什么都不会发生,但如果我自己启动应用程序,则会自动检测到该通话。
谢谢 :)
我们发现了这个问题。
根据当前配置,服务器使用不同的连接从手机使用的初始TCP套接字发送INVITE请求,以发送初始REGISTER请求。
由于两个插座不同,操作系统没有唤醒应用程序。
如果你配置服务器(在我们的例子中是Kamailio)重用电话用来发送第一个REGISTER的初始套接字,它可以无缝工作。
默认情况下,SIP服务器似乎为每个要发送到手机的INVITE请求创建新的套接字。 这种情况对iphone背景模型来说是个问题。
为了仔细检查,你已经阅读了这个:http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone#UnabletoacceptincomingcallinbackgroundmodeiOS4
另外,请使用来自Subversion存储库的最新1.x分支进行尝试,iOS支持已有多个修复。
链接地址: http://www.djcxy.com/p/62861.html上一篇: Receiving voip calls while application is in background in ios