![SIP 重新邀請後沒有音頻](https://rvso.com/image/1449100/SIP%20%E9%87%8D%E6%96%B0%E9%82%80%E8%AB%8B%E5%BE%8C%E6%B2%92%E6%9C%89%E9%9F%B3%E9%A0%BB.png)
我正在嘗試讓 Gigaset C470 IP 在我的網路連線上運作。我已經找到了設備和路由器(位於 DSL 數據機和 LAN 之間的 pfSense)的正確配置,以便我可以撥打電話和接聽來電。
撥出電話沒有任何問題。然而,在接聽電話時,音訊僅在通話的第一秒有效 - 經過一秒鐘後,兩個方向都沒有音訊。通話會持續到一端掛斷。
pfSense 外部介面上的封包擷取顯示發生了以下情況:
- 我得到一個 SIP
INVITE
- Gigaset 回應
100 Trying
和180 Ringing
- 我接受呼叫,Gigaset 回應
200 OK
- 兩個方向都有 RTP 流量
- 通話一秒鐘後,Gigaset 就會
INVITE
向主叫方回覆一則新訊息 - 更多雙向 RTP 流量再持續 0.1 秒
- 在這 0.1 秒之後,SIP 提供者回應
100 Trying
,稍後回應200 OK
- 之後
100 Trying
就不再有傳入的 RTP 流量。仍有傳出 RTP 流量,但雙方都聽不到對方的聲音。
考慮到所使用的編解碼器,雙方都在第一個 .711 之後選擇了 G.711 INVITE
。據我從追蹤中可以看出,RDP 流量確實使用 G.711。重新INVITE
提出了一組與原來略有不同的編解碼器INVITE
,但雙方顯然都同意繼續使用 G.711。
然而,重新INVITE
似乎會導致遠端停止發送或接受此呼叫的任何進一步的 RTP – 但為什麼呢?我能做什麼呢?
答案1
確保在 200 OK 答案中獲得一個編解碼器。
如果某些伺服器收到 SDP 中具有多個編解碼器的 200 OK,則會向您發送第二次重新邀請。
若要解決此問題,請查看日誌中目前的 OK。從清單中提取編解碼器之一(您首選的編解碼器)。然後在您的 Gigaset 裝置中僅允許使用該編解碼器。
這應該可以解決問題。