Asterisk 如何捕捉星号';以文本格式使用WireShark的AMI和AGI流量?

Asterisk 如何捕捉星号';以文本格式使用WireShark的AMI和AGI流量?,asterisk,wireshark,amazon-ami,agi,asteriskami,Asterisk,Wireshark,Amazon Ami,Agi,Asteriskami,我正在开发一个基于Asterisk(最流行的开源PBX解决方案)的电话解决方案,我使用AMI协议将我的逻辑注入到它的拨号计划中,并使用AGI收听Asterisk的事件 现在,我需要在我的应用程序中管理有人参与的传输(而不是盲传输),为此,我确实需要以文本格式在某处记录AMI和AGI的通信量,以便我可以看到幕后发生了什么 我想到WireShark,因为它是最强大的流量捕获工具,但我无法让它工作。我不知道要捕获哪个端口(AMI在asterisk端的端口5038上工作,但我需要在我的C#applica

我正在开发一个基于Asterisk(最流行的开源PBX解决方案)的电话解决方案,我使用AMI协议将我的逻辑注入到它的拨号计划中,并使用AGI收听Asterisk的事件

现在,我需要在我的应用程序中管理有人参与的传输(而不是盲传输),为此,我确实需要以文本格式在某处记录AMI和AGI的通信量,以便我可以看到幕后发生了什么

我想到WireShark,因为它是最强大的流量捕获工具,但我无法让它工作。我不知道要捕获哪个端口(AMI在asterisk端的端口5038上工作,但我需要在我的C#application server中使用WireShark,我不知道这端的哪个端口正忙)。我无法创建用于捕获仅与星号相关的事件的筛选器

我也不知道如何让WireShark以文本格式记录流量,而不是显示那些根本不可读的二进制数据(可能是十六进制数据)

我知道AMI协议非常简单,就像HTTP一样,它是一种基于文本的消息传递协议。因此,我想我应该能够看到它的文本日志


有人知道吗?

您不能使用AGI收听星号事件。AGI是控制接口,不向其发送任何事件。所有活动都通过AMI进行

您可以在asterisk服务器(linux端)上使用tcpdump查看AMI消息:

tcpdump -i eth0 -nqtttt -s 0 -A  '((src port 5038) or (dst port 5038))' 
除非是FastAGI,否则无法捕获AGI流量。要获取agi信息,请执行以下操作:

asterisk -r
agi set debug on