2013-04-27 2 views
1

Asterisk (가장 유명한 오픈 소스 PBX 솔루션)를 기반으로하는 전화 통신 솔루션을 개발 중이며 AMI 프로토콜을 사용하여 다이얼 플랜에 논리를 삽입하고 AGI를 사용하여 Asterisk의 이벤트를 듣습니다.WireShark를 텍스트 형식으로 사용하여 Asterisk의 AMI 및 AGI 트래픽을 캡처하는 방법은 무엇입니까?

가 지금 내 응용 프로그램에서 참석 전송을 관리 할 필요가 (하지 블라인드 전송)하고, 나는 정말 그렇게 어딘가 텍스트 형식으로 AMI와 AGI의 트래픽을 기록해야합니까 뒤에서 일어나는 일을 볼 수 있습니다.

내가 WireShark를 생각한 이유는이 제품이 가장 강력한 트래픽 캡처 도구이기 때문에 가능했지만 작동하지 못합니다. 캡처 할 포트를 모르겠습니다 (AMI는 별표 측면에서 포트 5038에서 작동하지만 C# 응용 프로그램 서버에서 WireShark를 사용해야하고 어떤 포트가이 포트에서 사용 중인지 알지 못합니다). 별표와 관련된 이벤트 만 캡처 할 수있는 필터를 만들 수 없습니다.

나는 인간이 읽을 수없는 바이너리 데이터 (아마 16 진수 데이터)를 보여주기보다는 텍스트 형식으로 WireShark 로그 트래픽을 만드는 법도 알지 못합니다.

나는 AMI 프로토콜이 매우 쉽고 HTTP와 마찬가지로 텍스트 기반 메시징 프로토콜이라는 것을 알고있다. 그러므로 나는 그것의 텍스트 로그를 볼 수 있어야한다고 생각합니다.

누구든지 아이디어가 있으십니까?

답변

3

AGI를 사용하여 별표 이벤트를 수신 할 수 없습니다. AGI는 CONTROL 인터페이스이며 이벤트는 보내지 않습니다. 모든 이벤트는 AMI를 통해 진행됩니다.

당신은 AMI 메시지를 볼 별표 서버 (리눅스 측)에 tcpdump를 사용할 수 있습니다 : 그것은 FastAGI하지 않는 한

tcpdump -i eth0 -nqtttt -s 0 -A '((src port 5038) or (dst port 5038))' 

당신은 AGI 트래픽을 캡처 할 수 없습니다. 가지고있는 정보를 위해 :

asterisk -r 
agi set debug on