首先讓我們解釋一下具體的使用方式和其cfg配置文件的用法(完整的本案例配置文件為會(huì)晚一點(diǎn)上傳到www.kamailio.org.cn)。append_hf() 函數(shù)的作用是在SIP頭中添加相應(yīng)的字符串,幫助用戶能夠判斷整體呼叫流程的狀態(tài),方便技術(shù)人員排查問(wèn)題。具體的用法是:
- 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.
在本講座中,我們使用四個(gè)追加的信息來(lái)跟蹤呼叫流程:
- 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");
通過(guò)對(duì)SIP頭添加以上四個(gè)跟蹤信息,整個(gè)呼叫流程會(huì)實(shí)現(xiàn)以下流程:
現(xiàn)在,讓我們開(kāi)始具體的測(cè)試步驟。開(kāi)始測(cè)試前,讀者需要更新到本案例中的cfg文件,重新加載一次cfg文件。然后使用此命令對(duì)端口進(jìn)行抓包保存:
ngrep –p –q –W byline port 5060 >rr-stateful
執(zhí)行以上命令后,使用已注冊(cè)兩個(gè)分機(jī)進(jìn)行分機(jī)呼叫。呼叫完成后,停止ngrep命令。通過(guò)保存的日志文件查看我們的打印跟蹤記錄。讀者會(huì)看到我們?cè)赾fg文件中設(shè)置的打印字符串信息。
本章節(jié)主要技術(shù)如何使用append_hf()來(lái)跟蹤一個(gè)完整的呼叫對(duì)話流程,另外介紹了如何對(duì)其跟蹤日志進(jìn)行抓包的方法。通過(guò)本講座的學(xué)習(xí),用戶可以了解通過(guò)對(duì)SIP頭追加相應(yīng)的字符串信息理解呼叫對(duì)話過(guò)程。
參考資料:http://www.opensips.org/html/docs/modules/2.2.x/sipmsgops.html
關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的行業(yè)分享。
訪問(wèn)freepbx官方中文論壇-開(kāi)源IPPBX論壇獲得技術(shù)幫助:
www.ippbx.org.cn, 關(guān)于Asterisk, freepbx技術(shù)wiki: www.freepbx.org.cn
融合通信商業(yè)解決方案首選產(chǎn)品:www.hiastar.com