FreeSwitch iPhone应用程序通信问题
-
25-10-2019 - |
题
我有一个基于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秒内。
具体来说:
1)确保您有一个iOS静止的计时器(setKeepAlivEtimeout:处理程序::),处理程序块以最小值(600秒)进行重新注册。
2)确保您的应用程序已配置为VoIP 和 info.plist中的音频播放背景模式
3)确保您的客户端正在注册网络流界面以进行VOIP使用,如这些Apple指南中所述。这样一来,操作系统就可以使应用程序入睡,但是如果该网络流在该网络流上发生传入的流量,请唤醒您。
如果您执行所有三个操作,那么即使锁定屏幕锁定,您也应该能够在iOS 5的背景上运行VoIP。