任何人都知道如何编写从 Asterisk 收集 SIP header 数据 的模块。 我找到了如何编写 CDR 收集器的小样本,需要非常接近这个模块但是它会得到 SIP header
确切地说,我需要收集和解析之间的所有数据 <--- SIP 从 UDP 读取:XXX.XX.XX.XX:6060 ---> 和 <------------>
附言 是否可以从 AGI 实时获取这些数据?或者我必须编写自己的 Asterisk 模块?
最佳答案
最简单的方法做到这一点
1) 设置 kamailio/opensips 而不是 asterisk 并进行 sip_trace 模块配置
2) 使用 tcpdump 并捕获所有数据包
Asterisk 并非旨在提供此类信息。
不,您不能为此使用 AGI。不,您不能创建将捕获它的模块。
如果你仍然想用 Asterisk 做,你可以
1) 启用调试,解析调试文件中的所有内容或创建记录器模块,例如到数据库。
2) 修补 chan_sip.c 以将该信息存储在变量中,修补您的拨号方案以保存该变量。
关于c++ - 自己的 Asterisk 模块(SIP 记录器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25586115/