如何使用append?
在系統(tǒng)的維護(hù)或排查問(wèn)題時(shí),我們檢查使用一些必要的手段打印日志以方便技術(shù)人員跟蹤處理流程。一般軟件系統(tǒng)或操作系統(tǒng)都會(huì)支持類(lèi)似的方式幫助技術(shù)人員排查處理流程。在開(kāi)源軟交換Kamalio/OpenSIPS中也同樣支持類(lèi)似的功能幫助技術(shù)人員排查呼叫的流程。append_hf() 就是一個(gè)非常方便的方法來(lái)打印呼叫流程設(shè)置。筆者在本講座中簡(jiǎn)單介紹一下如何使用append_hf(),以及如何通過(guò)抓包工具來(lái)查找插入的字符串信息。
首先讓我們解釋一下具體的使用方式和其cfg配置文件的用法(完整的本案例配置文件為會(huì)晚一點(diǎn)上傳到www.kamailio.org.cn)。append_hf() 函數(shù)的作用是在SIP頭中添加相應(yīng)的字符串,幫助用戶(hù)能夠判斷整體呼叫流程的狀態(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è)置的打印字符串信息。下一篇千兆口的紅燈一直閃