これは初心者の質問かもしれません。私はICE/TURN/STUNを持たない環境のSIPエンドポイントを開発しています。 SIPエンドポイントは、既知のパブリックアドレスを持つNATファイアウォールの背後にあります。私のエンドポイントは、ファイアウォールの内側または外側のいずれかに配置できる別のエンドポイントから直接ダイヤルインできます(プロキシなし)。 着信INVITEがファイアウォールの内側または外側のエンドポイントから来たものであるかどうかをエンドポイントで検出できますか。これは、INVITEへの200応答で、プライベートIPまたはパブリックIPをContactヘッダーとSDPのメディア記述に入れるために必要ですか? 再び、公開IPを検出する方法ではなく、どのIPアドレスを発信者に返送するかを区別する方法です。 ありがとう!SIP応答 - プライベートIPまたはパブリックIPを含む?
1
A
答えて
0
一般的な方法はなく、ファイアウォールやパブリックとプライベートに同じインターフェイスを使用するかどうかによって異なります。最善の方法は、公衆と私的(そして異なるSIPプロバイダ)のために公衆と私設のために異なるインタフェースを使用することです。
リモート側から正しいViaが返された場合は、Viaヘッダーを使用できます。 ファイアウォールで許可されていることがわかっているIPのセットがプライベートであることがわかっている場合、NIST実装の受信メッセージの物理的な送信元IPを取得できます。受信メッセージをgov.nist.javax.sip.message.SIPMessage
にキャストし、getRemoteAddress()
あなたのアプリケーションロジックでアドレスを確認してください。私はこれがあなたがやろうとしていることだと思います。カスタムネットワーク、ALG、またはヒントをスタンプする他のノードの背後にあるアプリ(X-Auth-IP
など)にアプリが見つかる可能性があるので、私はそれをお勧めしません。インタフェースを分離すると、あなたのアプリケーションははるかに移植性が向上します。
関連する問題
- 1. iptables - パブリックIPとプライベートIP(パブリックIP経由でアクセス可能ですがプライベートIPではアクセスできない)
- 2. パブリックIP
- 3. NginX:ローカルIPとパブリックIP
- 4. MediaWikiアクセスのプライベートIPアドレスとパブリックIPアドレスを使用してください。
- 5. プライベートIPにpingを実行しても、パブリックIPでawsインスタンスにpingできないのはなぜですか?
- 6. JavaのプライベートIP
- 7. AWSプライベートIPアドレスサーバは、同じVPC内にあるパブリックIPアドレスサーバに接続できますか。
- 8. プライベートIPの接続
- 9. プライベートIPに接続
- 10. プライベートIPアドレス範囲
- 11. Docker SwarmとプライベートIP
- 12. POCOでパブリックIPを検索
- 13. パブリックIPとポートを取得
- 14. AWS Public IP Limitとは何ですか? (パブリックIPはエラスティックIPではない)
- 15. パブリックIPアドレスですか?
- 16. python ZeroRPCパブリックIPでハートビートエラー
- 17. Azureバックエンドアプリサービス(パブリックIPなし)
- 18. SSHがプライベートIPにバインドされたEC2に公開IPではなく
- 19. 複数のパブリックIPと複数のプライベートIPを使用してGoogleクラウドコンピューティングインスタンスを作成する方法
- 20. プライベートまたはパブリックMSMQ
- 21. C#IPパブリックを変更するには?
- 22. IP情報が応答しない?
- 23. cassandra on GCE:ノードのプライベートIPとシードの公開IPを使用
- 24. マルチサーバーノードパブリックIPの代わりにプライベートIPを使用
- 25. ARM - VMSSのプライベートIPを取得する
- 26. javacriptでパブリックIPアドレスを取得
- 27. javaアプリケーションのパブリックIPアドレスを使用
- 28. パブリック/外部IPをドッカーコンテナにルーティングする
- 29. パブリックIPを使用しないGKEロードバランシングサービス
- 30. 保守のためのSIP応答コード?