我有一个基于PJSIP进行一些SIP调用的应用程序。

该应用程序可与其他SIP开关/服务器一起使用,但是使用FreeSwitch,该应用程序未在后台模式下接收呼叫。

使用FreeSwitch,当应用程序处于活动状态时,一切都很好,但是在后台模式下,该应用程序未通知有关呼叫。它可能与FreeSwitch如何通知该应用有关新调用有关(对于iOS PJSIP,通知应放在TCP包装套接字上)。

剂量有人知道我如何配置FRESSWitch以在特定端口上发送通知?

有帮助吗?

解决方案

我通过添加来解决这个问题:

<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>

into freeswitch_install_folder/conf/directory/default/XYZ.xml (where XYZ is the user you are configuring) under variables.

其他提示

您不想使用freeswitch使用NDLB-Connectile-Dysfunction(NDLB)进行iOS。这样做可以保证您不能将注册打开足够长的时间以在后台有用,因为在设置该选项时,FreeSwitch将“到期= 30”附加到所有注册中。之后,尝试调用该用户时,您只会收到“ user_not_register”错误,除非注册调用后30秒内。

您需要做的是在此处遵循以下步骤:http://developer.apple.com/library/ios/#documentation/iphone/coneptual/coneptual/iphoneosprogrammingguide/advancedapptricks/advancedapptricks.htptricks.htmll#/apple_reff/apple_reff/doc/doc/doc/uid/uid/uid/tp40007072-ch7-sw7-sw12一下

具体来说:

1)确保您有一个iOS静止的计时器(setKeepAlivEtimeout:处理程序::),处理程序块以最小值(600秒)进行重新注册。

2)确保您的应用程序已配置为VoIP info.plist中的音频播放背景模式

3)确保您的客户端正在注册网络流界面以进行VOIP使用,如这些Apple指南中所述。这样一来,操作系统就可以使应用程序入睡,但是如果该网络流在该网络流上发生传入的流量,请唤醒您。

如果您执行所有三个操作,那么即使锁定屏幕锁定,您也应该能够在iOS 5的背景上运行VoIP。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top