0

私はいくつかのSip呼び出しを行うためのpjsipに基づくアプリを持っています。

アプリは他のSIPスイッチ/サーバーで正常に動作しますが、freeSwitchを使用すると、アプリはバックグラウンドモードで通話を受信しません。

freeSwitchを使用すると、アプリがアクティブな場合はすべて問題ありませんが、バックグラウンドモードの場合、アプリは通話について通知されません。これは、おそらく、freeSwitchが新しい呼び出しについてアプリに通知する方法と関係があります(iOS pjsipの場合、通知はTCPラップされたソケットで行われる必要があります)。

特定のポートで通知を送信するようにfresSwitchを構成する方法を知っている人はいますか?

4

2 に答える 2

0

Freeswitchを使用するiOSでndlb-connectile-dysfunction(ndlb)を使用する必要はありません。そうすることで、バックグラウンドで役立つように登録を開いたままにできないことが保証されます。これは、Freeswitchがそのオプションが設定されている場合、すべての登録に「expires=30」を追加するためです。その後、登録呼び出しから30秒以内でない限り、そのユーザーに電話をかけようとすると、「USER_NOT_REGISTERED」エラーが発生します。

あなたがする必要があるのはここのステップに従うことです:http: //developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072- CH7-SW12

具体的には:

1)iOSキープアライブタイマー(setKeepAliveTimeout:handler :)が実行されていることを確認し、ハンドラーブロックが最小値(600秒)で再登録を実行します。

2)Info.plistで、アプリがVOIPおよびオーディオ再生のバックグラウンドモード用に構成されていることを確認します

3)Appleのガイドラインに記載されているように、クライアントがVOIPの使用のためにネットワークストリームインターフェイスを登録していることを確認します。そうすれば、OSはアプリをスリープ状態にすることができますが、そのネットワークストリームで着信トラフィックが発生した場合はウェイクアップします。

これらの3つすべてを実行すると、画面がロックされている場合でも、iOS5のバックグラウンドでVoIPを正常に実行できるはずです。

于 2012-01-28T22:19:37.733 に答える
0

以下を追加することで、この問題を解決できます。

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

変数の下の freeswitch_install_folder/conf/directory/default/XYZ.xml (XYZ は設定しているユーザー) に移動します。

于 2011-12-02T23:21:16.377 に答える