SIPコールのNATを設定する方法。 SSHポート転送を通じてデバイスへのPJSUA SIPのメディア転送はありません -- ssh フィールド と sip フィールド と nat フィールド と pjsip フィールド と pjsua2 フィールド 関連 問題

How to configure NAT for SIP calls. No media transfer on pjsua SIP call to device through ssh port forwarding












0
vote

問題

日本語

私は pjsua を使用して、<コード> 99887662 A を持っています。 >パブリックIPアドレスに。ネットワーク上のファイアウォールのために、 A から B のIPアドレスにアクセスできないから、すべてのデータをルーティングするには「ジャンプボックス」を使用する必要があります。私はジャンプボックスから公衆インターネットを見ることができ、 A ssh を介して接続することができます。したがって、IPとポートを<コード> localhost の<コード> localhost に転送することで、ターゲットデバイス<コード> B 9988777668 から見えるようにすることができます。 pjsua1

このようなセットアップを使用してデバイス<コード> pjsua2 のポート5060を使用して、ジャンプボックスから<コード> pjsua3 の<コード> pjsua4 の<コード> pjsua4 <コード> pjsua5 <コード> ssh16 の pjsua7 への呼び出しを行います。 SIPトランザクションが成功したことがわかりますが、デバイス<コード> pjsua9 の<コード> pjsua8 メッセージが表示されます。

しかし、同じ方法でRTP転送のために4000~4050のポートを転送しても、オーディオ再生のためにメディアファイルをデバイス<コード> B0 に送信することはできません。 <コード> B1 の背後にある別のマシンからこれが可能であることを確認しましたので、デバイス B2 B3を介して送信されたファイルを受け取ることができます。

私は何が起こっているのか、Device B4 から受信したSIPメッセージには、 998877625 のIPアドレスが含まれています。したがって、 B7 <コード> B7 <コード> <コード> B7 は、 B8 のIPアドレスに送信しようとしているように送信するのではなく、それらを送信するのではなく、これはファイアウォールによってブロックされます。 (私はこの疑いを確認する方法はわかりません。)具体的には、 B9 または B0 に、ある種のNATを設定する必要があると思います。ただし、SIP / PJSIP、またはこのようなネットワーク構成では比較的経験がありません。 B1 コマンドを次のように使用してみました。

<コード> B2

しかし役に立たない。誰かがこの電話をかけるために正しい方向に私を指していることができますか?

英語

I have a machine A in a private network from which I would like to make a VOIP call over SIP using pjsua to a device B on a public IP address. Because of the firewall on the network, I need to use a "jump box" to route all the data through because I cannot access the IP address of B from machine A. I can see the public internet from the jump box and I can connect between A and the jump box via ssh. Thus, I can make target device B visible from A by forwarding its IP and ports to localhost ports on A over ssh.

Using such a setup to forward port 5060 for device B, from the jump box to the localhost:5060 on machine A, I can open pjsua on A and make the call to B. I can see that the SIP transaction is successful and I get a 200 OK message from the device B.

However, even if I also forward ports from 4000-4050 for RTP transport in the same manner, I cannot send media files to the device B for audio playback. I have confirmed that this is possible from another machine which is not behind a firewall the way A is, so I know that device B can receive files sent over pjsua.

I believe what is happening is that the SIP messages received from device B contain the IP address of B, along with the RTP port to send the media files to. So, rather than sending them to say localhost:4000 which is forwarded to the right IP address, pjsua attempts to send to the IP address of B directly, which will be blocked by the firewall. (I'm not sure how to confirm this suspicion.) I believe I need to configure some kind of NAT on A or for pjsua specifically. However, I'm relatively inexperienced in SIP/pjsip, or in network configuration like this. I've tried using an iptables command such as the following:

iptables -t nat -A OUTPUT -p all -d [IP_ADDR_B] -j DNAT --to-destination 127 .0.0.1

but to no avail. Can anyone point me in the right direction to make this call work?

</div
              
   
   

回答リスト


関連する質問

1  サーバーからのリンギングレスポンスを取得した後にAndroidのPjsua Crash  ( Pjsua crash on android after getting ringing response from server ) 
register reuquestのサーバーに連絡先ヘッダー内に追加情報を送信しています、そしてすべてが正常に行われますが、着信コールを処理しようとすると、リンギングの応答を送信した直後にエラーが発生しないでクラッシュします。 これは私の register ...

3  PythonでPJSUA2を使用して、Audiomediaメモリ/バッファベースの再生ポートをリアルタイムで使用することは可能ですか?  ( Is it possible to use pjsua2 in python to use audiomedia memory buffer based pla ) 
pjsua2 。私は pythonラッパーコールと私のコードはアクティブな接続を取得することができます。カスタム<コード> onCallMediaState では、オーディオカンファレンスブリッジにアクセスできます。 <コード> def onCa...

0  System.LoadLibraryを実行すると、unsatisFiedLinkError  ( Unsatisfiedlinkerror when run system loadlibrary ) 
Android NDKを介してPJSIPライブラリを使用しています。 PJSIPをコンパイルするためにAndroid NDK 16を使用しました。 1人のユーザー(HTC One、Android 5.0.2)は、プロジェクトを開始しようとしている間に多くのク...

3  pjsua2 - Python - コールバックとCreateRecorderをどのように処理するか?  ( Pjsua2 python how to handle callbacks and createrecorder ) 
PJSIPライブラリサイトでPYGUIコードを介して利用可能な後、以下のように例を変更しました。私は2つの問題があります 各コールバック関数では、最後にダミーレイズ例外を追加する必要があります。それ以外は不正行為をします。たとえば、OnIncomingC...

3  PJSUA2 Java - 継続的なコールのAudiomediaを取得する方法  ( Pjsua2 java how to get ongoing calls audiomedia ) 
PJSUA / PJSIP用のJavaライブラリを使用しています。また、Audiomediaを回答した通話のために取得しようとしていますが、機能していません。次の実装にLED MEをLEDに導いたC ++ドキュメント(留守番電話番号なし)に従った。 <事前>...

1  PJSIPライブラリー・クラッシュ:「LIBPJSUA2.SO」の「信号11(SIGSEGV)、コード1(SEGV_MAPARR)」  ( Pjsip library crash signal 11 sigsegv code 1 segv maperr in libpjsua2 s ) 
私はユーザーが報告されたGoogle Playでのアプリケーションの本番版でこのエラーを得ました: 信号11(SIGSEGV)、コード1(SEGV_MAPARR)libpjsua2.so バックトレース: ネイティブ:PC 00000000001BD4...

0  Pjsuaを実行中のエラー  ( Error while running pjsua ) 
AndroidプロジェクトにPJSIPを追加し、テスト実行を行おうとしています。 私は psip の公式文書化 プロジェクトを実行するときは、次のエラーが発生しています <事前> <コード> E/art: No implementation found...

0  iOSライブラリのPJSUA2 -LSSLの場合は見つかりません  ( Pjsua2 on ios library not found for lssl ) 
PJSIPユーザエージェントのサンプルプロジェクトの動作 ここでPJSIPのライブラリをコンパイルしました: PJSIP iOS 私は仕事をするためにAndroidを得ています、そして私はユーザーエージェントのXcodeプロジェクトを実行しようとしてい...

0  アンドロイドPie / Q、TelecomManagerとMicからの空のオーディオ  ( Android pie q telecommanager and empty audio from mic ) 
PJSUA2を使用して、TelecomManagerを使用してデフォルトの電話UIと統合するAndroidアプリでVoIP呼び出しを行います。オレオがすべてうまくいくまで、PieはMICがサウンドを返しませんので。 PJSIPのJNIとOpenSL実装の両...

1  NetBeansのPJSUA2を使用するエラーが発生しました  ( Error on using pjsua2 in netbeans ) 
PJSIPをコンパイルし、そして今、LinuxアプリケーションのNetBeansでPJSUA2を使用しようとしています。 SWIGを使用して、Javaコードを入手できました。魔女がプロジェクトのパッケージとしてコピーされました。プロジェクトはこのリンクのgi...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有