- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統(tǒng)部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構(gòu)
- Asterisk課堂-撥號規(guī)則基礎(chǔ)
- Asterisk課堂-創(chuàng)建第一個撥號規(guī)則
- Asterisk課堂-撥號規(guī)則中的Contexts
- Asterisk課堂-撥號規(guī)則中變量的使用
- Asterisk課堂-撥號規(guī)則中的Extensions用法
- Asterisk課堂-撥號規(guī)則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹
- Asterisk課堂-SIP呼叫流程
- Asterisk課堂-終端注冊
- Asterisk課堂-SIP Trunk
- Asterisk課堂-SIP debug
因為Asterisk中的SIP呼叫涉及了不同的網(wǎng)絡(luò)環(huán)境,每個問題都需要依靠具體的日志消息來判斷。作為一個系統(tǒng)管理員,雖然不需要發(fā)現(xiàn)熟悉和完全了解SIP的協(xié)議的使用環(huán)境,但是大家至少要了解一些基本的日志信息。這樣的話,用戶可以快速了解排查問題,找出真正的問題所在。
視頻中介紹了SIP debug 開啟對方法,注冊流程中的消息,呼叫流程中的發(fā)送和asterisk接收消息。另外,視頻中介紹了幾個第三方的工具。最后解釋了服務(wù)器端和終端debug的對比排查:
下面我們介紹一下幾個SIP的場景,它們包括SIP注冊(注冊失敗,注冊成功),SIP分機(jī)之間呼叫(失敗呼叫和成功的呼叫),然后介紹了第三方的抓包工具,最后還有終端日志排查。
注冊消息的排查,用戶首先要了解CLI debug 日志開啟和關(guān)閉的方式。在開始排查SIP消息時,用戶需要打開SIP debug 日志。這樣,SIP 注冊信息就會顯示在Asterisk 后臺。用戶可以根據(jù)SIP 注冊流程,找到注冊,401,再次發(fā)送注冊消息,Asterisk驗證等消息,來判斷是否是成功或者失敗的注冊。通常,用戶會看到日志所顯示的狀態(tài)。
注冊以后,SIP呼叫流程中,從INVITE 發(fā)起呼叫,然后驗證,最后Asterisk回復(fù)信息可以排查出是否是成功的呼叫,或者失敗的呼叫。用戶可以在具體消息日志中找出相應(yīng)的關(guān)鍵詞,SIP method 等等相關(guān)信息,通過這些信息來判斷問題。
抓包是判斷問題的主要手段。Asterisk環(huán)境中支持了很多Linux 開源的第三方工具,用戶可以使用這些國家抓包,然后通過圖形界面更加來做進(jìn)一步分析。除了TCPDUMP, wireshark 以外,還有很多非常方便的SIP抓包工具例如,sngrep。如果用戶比較熟悉Linux環(huán)境的話,建議使用sngrep 來實時分析SIP數(shù)據(jù)。
當(dāng)然,除了通過Asterisk 系統(tǒng)本身抓包實現(xiàn)排查以外,用戶也要同時打開終端的SIP debug 設(shè)置,通過雙方SIP消息對比來進(jìn)一步發(fā)現(xiàn)問題。
最后,Asterisk中的SIP排查涉及了很多方面的內(nèi)容,我們討論了比較簡單的注冊流程,呼叫流程的排查方式。希望用戶對SIP的注冊,呼叫流程有一個基本的介紹。當(dāng)然,如果SIP注冊或呼叫流程比較復(fù)雜的話,用戶可能還要考慮防火墻,撥號規(guī)則,編碼,NAT等等問題。在未來的技術(shù)討論中,我們會涉及編碼和NAT等問題。