您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

如何使用append_hf()来跟踪呼叫日志

--kamailio/OpenSIPs学习笔记

2018-03-19 13:41:18   作者:james.zhu   来源:CTI论坛   评论:0  点击:


  在系统的维护或排查问题时,我们检查使用一些必要的手段打印日志以方便技术人员跟踪处理流程。一般软件系统或操作系统都会支持类似的方式帮助技术人员排查处理流程。在开源软交换Kamalio/OpenSIPS中也同样支持类似的功能帮助技术人员排查呼叫的流程。append_hf() 就是一个非常方便的方法来打印呼叫流程设置。笔者在本讲座中简单介绍一下如何使用append_hf(),以及如何通过抓包工具来查找插入的字符串信息。
  首先让我们解释一下具体的使用方式和其cfg配置文件的用法(完整的本案例配置文件为会晚一点上传到www.kamailio.org.cn)。append_hf() 函数的作用是在SIP头中添加相应的字符串,帮助用户能够判断整体呼叫流程的状态,方便技术人员排查问题。具体的用法是:
  • 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头添加以上四个跟踪信息,整个呼叫流程会实现以下流程:
  现在,让我们开始具体的测试步骤。开始测试前,读者需要更新到本案例中的cfg文件,重新加载一次cfg文件。然后使用此命令对端口进行抓包保存:
  ngrep –p –q –W byline port 5060 >rr-stateful
  执行以上命令后,使用已注册两个分机进行分机呼叫。呼叫完成后,停止ngrep命令。通过保存的日志文件查看我们的打印跟踪记录。读者会看到我们在cfg文件中设置的打印字符串信息。
  本章节主要技术如何使用append_hf()来跟踪一个完整的呼叫对话流程,另外介绍了如何对其跟踪日志进行抓包的方法。通过本讲座的学习,用户可以了解通过对SIP头追加相应的字符串信息理解呼叫对话过程。
  参考资料:http://www.opensips.org/html/docs/modules/2.2.x/sipmsgops.html
  关注微信公众号:asterisk-cn,获得有价值的行业分享。
  访问freepbx官方中文论坛-开源IPPBX论坛获得技术帮助:
  www.ippbx.org.cn, 关于Asterisk, freepbx技术wiki: www.freepbx.org.cn
  融合通信商业解决方案首选产品:www.hiastar.com
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题