![SIP再招待後に音声が聞こえない](https://rvso.com/image/1449100/SIP%E5%86%8D%E6%8B%9B%E5%BE%85%E5%BE%8C%E3%81%AB%E9%9F%B3%E5%A3%B0%E3%81%8C%E8%81%9E%E3%81%93%E3%81%88%E3%81%AA%E3%81%84.png)
Gigaset C470 IP をインターネット接続で動作させようとしています。デバイスとルーター (DSL モデムと LAN の間にある pfSense) の正しい構成がわかり、発信と着信ができるようになりました。
発信通話は問題なく機能します。ただし、着信通話では、音声は通話の最初の 1 秒間のみ機能します。1 秒が経過すると、どちらの方向でも音声が聞こえなくなります。通話は、片方の側が電話を切るまで継続されます。
pfSense の外部インターフェースでのパケット キャプチャにより、次のことが起こることがわかります。
- SIPを飲みます
INVITE
- ギガセットは次のように応答し
100 Trying
、180 Ringing
- 電話を受けると、Gigasetは次のように応答します。
200 OK
- 両方向にRTPトラフィックがある
- 通話開始から1秒後、Gigasetは
INVITE
発信者に新しいメッセージで応答します。 - さらに0.1秒間、双方向RTPトラフィックが増加
- この0.1秒後、SIPプロバイダーは次のように応答し
100 Trying
、その後次のように応答します。200 OK
- その後、
100 Trying
着信 RTP トラフィックはなくなります。発信 RTP トラフィックはまだ存在しますが、どちらの側も相手の音声を聞くことができません。
使用されているコーデックを調べたところ、最初の に従って、両者とも G.711 に落ち着きましたINVITE
。トレースから判断する限り、RDP トラフィックは確かに G.711 を使用しています。 は、INVITE
元のものとは少し異なるコーデックのセットを提案していますINVITE
が、両者とも G.711 を引き続き使用することに同意しているようです。
しかし、この再送信により、INVITE
リモート エンドはこの通話に対する RTP の送信または受信を停止するようです。なぜでしょうか。また、これに対して何ができるでしょうか。
答え1
200 OK 応答で 1 つのコーデックが取得されることを確認してください。
一部のサーバーは、SDP に複数のコーデックを含む 200 OK を受信すると、2 回目の再招待を送信します。
この問題を解決するには、ログの現在の OK を確認します。リストからコーデックの 1 つ (優先するもの) を抽出します。次に、Gigaset デバイスでそのコーデックのみを許可します。
これで問題は解決するはずです。