您當前的位置是:  首頁 > 新聞 > 國內 >
 首頁 > 新聞 > 國內 >

如何使用append_hf()來跟蹤呼叫日志

--kamailio/OpenSIPs學習筆記

2018-03-19 13:41:18   作者:james.zhu   來源:CTI論壇   評論:0  點擊:


  在系統(tǒng)的維護或排查問題時,我們檢查使用一些必要的手段打印日志以方便技術人員跟蹤處理流程。一般軟件系統(tǒng)或操作系統(tǒng)都會支持類似的方式幫助技術人員排查處理流程。在開源軟交換Kamalio/OpenSIPS中也同樣支持類似的功能幫助技術人員排查呼叫的流程。append_hf() 就是一個非常方便的方法來打印呼叫流程設置。筆者在本講座中簡單介紹一下如何使用append_hf(),以及如何通過抓包工具來查找插入的字符串信息。
  首先讓我們解釋一下具體的使用方式和其cfg配置文件的用法(完整的本案例配置文件為會晚一點上傳到www.kamailio.org.cn)。append_hf() 函數(shù)的作用是在SIP頭中添加相應的字符串,幫助用戶能夠判斷整體呼叫流程的狀態(tài),方便技術人員排查問題。具體的用法是:
  • 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.
  在本講座中,我們使用四個追加的信息來跟蹤呼叫流程:
  1. append_hf("P-hint: (1)sequential request/rr-enforced \r\n");
  2. append_hf("P-hint: (2)initial request/usrloc applied\r\n");
  3. append_hf("P-hint: (3)reply thru onreply_route[2]\r\n");
  4. 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文件中設置的打印字符串信息。
  本章節(jié)主要技術如何使用append_hf()來跟蹤一個完整的呼叫對話流程,另外介紹了如何對其跟蹤日志進行抓包的方法。通過本講座的學習,用戶可以了解通過對SIP頭追加相應的字符串信息理解呼叫對話過程。
  參考資料:http://www.opensips.org/html/docs/modules/2.2.x/sipmsgops.html
  關注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享。
  訪問freepbx官方中文論壇-開源IPPBX論壇獲得技術幫助:
  www.ippbx.org.cn, 關于Asterisk, freepbx技術wiki: www.freepbx.org.cn
  融合通信商業(yè)解決方案首選產品:www.hiastar.com
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題