售前電話
135-3656-7657
售前電話 : 135-3656-7657
在VoIP的環(huán)境中,特別是基于SIP通信的環(huán)境中,我們經(jīng)常會遇到一些非常常見的問題,例如,單通,30秒就斷線,注冊問題,回聲等。這些問題事實上都有非常直接的排查方式和解決辦法,用戶可以按照一定的排查方式,工具非常高效地解決這些問題。但是,因為讀者技術(shù)水平參差不齊,網(wǎng)絡(luò)上的很多技術(shù)也不完整。筆者今天系統(tǒng)歸納了這些問題。根據(jù)一些用戶的使用環(huán)境和用戶經(jīng)常遇到一些問題,我們列舉了以下十個在SIP呼叫中經(jīng)常遇到的問題,并且給出了相應(yīng)的排查方式,用戶可以按照這些方法來解決SIP通話中的這些問題。這十個經(jīng)典的問題包括:
不能注冊或呼叫到SIP服務(wù)器端
30秒掛斷呼叫的黃金法則
咬線或摘機狀態(tài)
單通或無語音
收到400 bad request
收到413,513 Request Entity Too Large或Message Too Large消息
收到408, 480或者487 消息
483 - Too Many Hops
488 – Not Acceptable Here
語音質(zhì)量和思科語音文件示例分享
這里,讀者一定要注意,我們這里僅討論關(guān)于SIP環(huán)境中的常見問題,可能涉及網(wǎng)絡(luò)環(huán)境或者硬件終端的問題,因為很多廠家和SIP服務(wù)器的配置不同,可能存在一定的差異,所以用戶在我們的方法中特別需要根據(jù)廠家的不同,增加一些專門針對每個廠家或者SIP服務(wù)器的排查方式。我們僅討論一般情況下的排查方式。
一、在一般的SIP 環(huán)境中,通常來說,SIP終端需要注冊到SIP服務(wù)器端來實現(xiàn)認(rèn)證,服務(wù)器端獲得SIP終端的位置,然后才能進(jìn)行正常的呼叫流程。注冊問題可能有以下幾種呈現(xiàn)方式:不能注冊,完全沒有和SIP服務(wù)器連接。如果終端發(fā)送注冊消息給服務(wù)器端時,雙方完全可能完全沒有實現(xiàn)通訊。用戶需要在服務(wù)器端通過日志排查方式,檢查SIP終端是否有注冊消息進(jìn)入到服務(wù)器端,或者SIP終端通過網(wǎng)絡(luò)工具對服務(wù)器端進(jìn)行排查,例如使用Ping 命令。如果連Ping命令都檢測不到服務(wù)器地址,基本上可以斷定SIP終端根本沒有和服務(wù)器端連接。關(guān)于服務(wù)器端排查方式很多,最典型的就是使用的Asterisk,F(xiàn)reeSWITCH,OpenSIPS或者Kamailio等開源的軟交換平臺。每個平臺都有各自的排查命令,用戶可以參考官方手冊來判斷。當(dāng)然,用戶也可以使用linux排查工具對5060端口抓包排查(例如,sngrep)。本人非常推薦這個工具,非常好用,可以實時檢查SIP消息。
SIP終端發(fā)出了注冊消息,但是SIP服務(wù)器端沒有返回的消息。如果SIP終端對SIP服務(wù)器端發(fā)送了注冊消息,但是服務(wù)器端沒有返回響應(yīng)消息,則可能是服務(wù)器端的問題。用戶需要排查服務(wù)器端為什么沒有返回消息,或者在返回路徑上的節(jié)點是否出現(xiàn)了問題??蛻舳耸盏藉e誤消息,收到太多401/407 Unauthorized。SIP終端在注冊時,如果用戶的安全設(shè)置出現(xiàn)了錯誤,可能導(dǎo)致服務(wù)器端發(fā)送多個 401 錯誤。服務(wù)器端第一次發(fā)送到是正常的401驗證信息,如果連續(xù)多次發(fā)送401/407 錯誤的話,可能是SIP終端輸入了錯誤的用戶賬號信息,SIP終端側(cè)需要配合服務(wù)器端進(jìn)行排查,也可能服務(wù)器端的SIP賬號消息保存錯誤,或者沒有重新加載服務(wù)器相應(yīng)模塊,用戶最好通過服務(wù)器端的CLI命令來檢查內(nèi)存中的SIP終端的真實數(shù)據(jù)信息。
客戶端收到403 Forbidden 消息。如果用戶帳戶信息沒有問題的話,SIP終端可能沒有輸入正確的From domain或者R-URI。有時,服務(wù)器端禁止同時注冊幾個SIP終端賬號,或者注冊過于頻繁,服務(wù)器端可能過濾了此地址。需要用戶配合服務(wù)器端地址進(jìn)行進(jìn)一步檢查。這里,筆者僅討論注冊階段出現(xiàn)的403 問題,當(dāng)然也可能是系統(tǒng)防火墻或者其他的配置禁止了注冊消息。如果是呼叫時出現(xiàn)403的話,則可能是另外的原因,例如可能欠費,可能呼叫了服務(wù)器端禁止的號碼碼位等其他因素。
二、我們經(jīng)常會遇到客戶抱怨這樣的問題,電話通話時,在大概30秒左右就斷線。這樣的問題最主要的原因是SIP終端沒有收到ACK消息。SIP終端發(fā)送了 200 OK以后就開始了媒體的創(chuàng)建,RTP語音流開始啟動,事實上,SIP終端可能還沒有收到ACK消息,因此在30秒左右,沒有收到消息的一方就發(fā)送了一個BYE消息。那么,為什么我們沒有收到ACK消息呢?具體的場景如下兩種示例,返回時因為NAT問題導(dǎo)致ACK沒有辦法返回到相應(yīng)的終端: