web-dev-qa-db-ja.com

アスタリスクとSIP後ろNAT

他のネットワークのクライアントからの呼び出しを受け入れるようにアスタリスクサーバーをセットアップしようとしています。サーバーとクライアントはNATの背後にあります。

クライアントですでにSTUNをアクティブ化していますが、両方でまだ反対側の音声を聞くことができません。しばらくすると通話が終了し、Asteriskに再送信タイムアウトに達したことを示すメッセージが記録され、受信したクリティカルパケットに対する応答が表示されません。

2
user209700

これを回避する最も簡単で怠惰な方法は、1:1のnat構成(DMZホストと呼ばれるホームルーター)にアスタリスクボックスを設定し、sip.confでexternip =が設定されていることを確認することです。

SIPおよびNATの場合の通常の問題は次のとおりです。

  • SIPヘッダーには、NATの背後にあるクライアントおよびサーバーとの間で到達できない呼び出し元と宛先の情報(IPアドレス)が含まれています
  • RTPストリーム(オーディオなど)の場合、一般的に幅広いポートを転送する必要があります。
  • 多くのNATデバイス(たとえば、Cisco James James Sneeringerが言及)は、「助け」を試み、通常はヘッダーのマングリングの質の悪い仕事をします
  • 一部のSIPデバイスは「再招待」しようとします。これは、基本的には、PBX経由でルーティングするのではなく、呼び出し側デバイスとの直接接続を確立することを意味します。NAT完全に壊れますこの。

1:1 NATアスタリスク)ができないと仮定して、これらを試してください:

Sip.confの一般セクション:

  • Externipが設定されていることを確認してください(externip =)
  • Nat = yesを設定します(これは頻繁に使いすぎ/誤解されますが、試してください)
  • localnet =/subnet mask(例:192.168.1.23/255.255.255.0)が設定されていることを確認します(これにより、アスタリスクがプライベートIPをSIPヘッダーをそのネットワーク上の電話に送信しますが、他のすべての場所の外字)

問題のある電話のデバイスセクションで:-qualify = 5000(これにより、5秒ごとにアスタリスクが内線を確認します。NATタイムアウトになるまで、必要に応じて調整してください。マッピングを維持する必要があります)

NAT /ファイアウォール-rtp.confにリストされているUDPポートの全範囲に、アスタリスクサーバーへの転送エントリがあることを確認します。通常、これは10000〜12000のようなものです(各呼び出しは最大4つのRTPチャネルを使用できるため、設定により少なくとも500の同時呼び出しを処理できます)。そしてもちろん5060(SIPシグナリング)

このページは過去に役に立ちました: http://asteriskguru.com/tutorials/sip_nat_oneway_or_no_audio_asterisk.html

Webインターフェイス(FreePBX、Elastix、Trixbox、PBX-in-a-flashなど)でアスタリスクディストリビューションのいずれかを使用している場合は、私に知らせてください。confファイルを直接編集するのではなく、いくつかのGUI設定を提案できます。私はそれらのほとんどで問題をデバッグすることに不快感を覚えました...

4
quadruplebucky

外部IPアドレスを設定した後は、ローカルネットワークアドレスを設定する必要がない可能性があります(必要ない場合もあります)。 Jamesのコメントによると:ファイアウォールがこれを処理している場合、信じられないほど不可解なループバック状況が発生する可能性があります。

0
tufelkinder