首先讓我們解釋一下具體的使用方式和其cfg配置文件的用法(完整的本案例配置文件為會晚一點上傳到www.kamailio.org.cn)。append_hf() 函數(shù)的作用是在SIP頭中添加相應(yīng)的字符串,幫助用戶能夠判斷整體呼叫流程的狀態(tài),方便技術(shù)人員排查問題。具體的用法是:
- append_hf(txt, hdr)
txt - Header field to be appended. The value can contain pseudo-variables which will be replaced at run time.
- hdr - Header name after which the 'txt' is appended.
在本講座中,我們使用四個追加的信息來跟蹤呼叫流程:
- append_hf("P-hint: (1)sequential request/rr-enforced \r\n");
- append_hf("P-hint: (2)initial request/usrloc applied\r\n");
- append_hf("P-hint: (3)reply thru onreply_route[2]\r\n");
- append_hf("P-hint: (4)new request in failure_route[2]\r\n");
通過對SIP頭添加以上四個跟蹤信息,整個呼叫流程會實現(xiàn)以下流程:
現(xiàn)在,讓我們開始具體的測試步驟。開始測試前,讀者需要更新到本案例中的cfg文件,重新加載一次cfg文件。然后使用此命令對端口進行抓包保存:
ngrep –p –q –W byline port 5060 >rr-stateful
執(zhí)行以上命令后,使用已注冊兩個分機進行分機呼叫。呼叫完成后,停止ngrep命令。通過保存的日志文件查看我們的打印跟蹤記錄。讀者會看到我們在cfg文件中設(shè)置的打印字符串信息。
本章節(jié)主要技術(shù)如何使用append_hf()來跟蹤一個完整的呼叫對話流程,另外介紹了如何對其跟蹤日志進行抓包的方法。通過本講座的學(xué)習(xí),用戶可以了解通過對SIP頭追加相應(yīng)的字符串信息理解呼叫對話過程。
參考資料:http://www.opensips.org/html/docs/modules/2.2.x/sipmsgops.html
關(guān)注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享。
訪問freepbx官方中文論壇-開源IPPBX論壇獲得技術(shù)幫助:
www.ippbx.org.cn, 關(guān)于Asterisk, freepbx技術(shù)wiki: www.freepbx.org.cn
融合通信商業(yè)解決方案首選產(chǎn)品:www.hiastar.com