【问题标题】:Receiving voip calls while application is in background in ios当应用程序在 ios 中处于后台时接收 voip 呼叫
【发布时间】:2011-09-22 15:42:44
【问题描述】:

我认为当应用程序处于后台时,我有一个“活动”套接字的所有要求。也就是说:

  • 我的应用程序将 voip 和音频作为其背景模式。
  • 我使用 PJSIP 作为 SIP 库,它应该使用启用了“后台运行”属性的 CFReadStreams
  • 应用正在使用 TCP 与 SIP 服务器建立连接。

当应用程序被发送到后台时,它会添加一个后台处理程序,该处理程序在每个时间段发送一个“keepAlive”消息。

keepAlive 似乎有效。如果我检查服务器中的日志,即使应用程序不在前台,我也可以看到消息是如何到达的。

问题(和问题)是,当应用程序处于后台时,我没有接听电话。

似乎socket还活着,如果我在前台没有应用程序的情况下拨打手机,没有任何反应,但如果我自己启动应用程序,则会自动检测到通话。

谢谢:)

【问题讨论】:

  • 我遇到了同样的问题,你是怎么解决的。你能帮帮我吗?
  • 如何获得来电提醒或查看?请帮帮我!

标签: ios background voip pjsip


【解决方案1】:

我们发现了问题。

根据当前配置,服务器使用不同的连接来发送 INVITE 请求,而不是手机使用的初始 TCP 套接字发送初始 REGISTER 请求。

由于两个套接字不同,操作系统没有唤醒应用程序。

如果您将服务器(在我们的例子中为 Kamailio)配置为重用电话用来发送第一个 REGISTER 的初始套接字,它可以无缝工作。

默认情况下,SIP 服务器似乎会为每个要发送到电话的 INVITE 请求创建新的套接字。这种情况是iphone后台模型的问题。

【讨论】:

    【解决方案2】:

    仔细检查一下,您已经阅读了以下内容:http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone#UnabletoacceptincomingcallinbackgroundmodeiOS4

    另外,请尝试使用来自 Subversion 存储库的最新 1.x 分支,已对 iOS 支持进行了多项修复。

    【讨论】:

    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多