售前電話
135-3656-7657
售前電話 : 135-3656-7657
流穿透
2.1 背景
當(dāng)話機跨越 NAT 進行通信時,外部媒體流由于不能穿越內(nèi)網(wǎng)從而導(dǎo)致無法通信。這種情況在兩臺已經(jīng)通信的設(shè)備在長時間 Hold 后也會出現(xiàn),由于外網(wǎng)路由器保存的 NAT 映射信息超時,從而導(dǎo)致 Resume 后仍然無法通信。為保證 NAT 下的正常通信,保證 RTP 流穿透顯得尤為重要。
2.2 原理
根據(jù) RFC6263 , 工作在 INACTIVE 和 RECVONLY 的情況下,要采用規(guī)范里推薦的一種方式來定期發(fā)送 RTP 包。規(guī)范推薦用 RTCP 復(fù)用 RTP 的方法,擔(dān)心很多終端沒有實現(xiàn),考慮兼容的問題決定采用其他方式。
參考規(guī)范第四節(jié),考慮通過定時發(fā)送錯誤 Payload Type 的 RTP 包來保證通信。
2.3 應(yīng)用
2.3.1 配置
開啟上圖配置后,會使能 RTP 流穿透,在以下情況會發(fā)送 RTP Keep Alive 包:
1 話機撥通電話后會發(fā)送 RTP 包來打通 NAT 通道(應(yīng)用于 x6 視頻通話)
2 話機通話 Hold 后會定時發(fā)送 RTP 來保持 NAT 連接
2.3.2 抓包
下圖顯示了發(fā)送的 RTP Keep Alive 包,可以看到 wireshark 解析出來的包,正常通話的包編碼為 G.711 PCMU,與發(fā)出去的 RTP Keep Alive 包的編碼是不一致的。
下圖顯示一個完整的 RTP Keep Alive 包