2013-04-27 4 views
1

Je développe une solution de téléphonie basée sur Asterisk (la solution PBX open-source la plus populaire) et j'injecte ma logique dans ses plans de numérotation en utilisant le protocole AMI et j'écoute les événements d'Asterisk en utilisant AGI.Comment capturer le trafic AMI et AGI d'Asterisk en utilisant WireShark dans un format textuel?

En ce moment je besoin de gérer les en présence de transfert dans ma demande (non aveugle transfert) et pour cela, je vraiment besoin de connecter le trafic d'AMI et AGI dans un format textuel quelque part, alors que je peux voir ce qui se passe dans les coulisses. J'ai pensé à WireShark, car c'est l'outil de capture du trafic le plus puissant sur le marché, mais je n'arrive pas à le faire fonctionner. Je ne sais pas quel port capturer (AMI fonctionne sur le port 5038 côté astérisque, mais je dois utiliser WireShark sur mon serveur d'application C#, et je ne sais pas quel port est occupé de ce côté). Je ne peux pas créer un filtre pour capturer des événements qui sont uniquement liés à Asterisk. Je ne sais pas non plus comment faire du trafic de logs WireShark dans un format textuel plutôt que de montrer ces données binaires (peut-être des données hexadécimales) qui ne sont pas du tout lisibles par l'homme.

Je sais que le protocole AMI est si facile et comme HTTP c'est un protocole de messagerie textuel. Par conséquent je suppose que je devrais pouvoir voir un journal textuel de lui.

Quelqu'un a une idée pour cela?

Répondre

3

Vous ne pouvez pas écouter les événements astérisques à l'aide d'AGI. L'interface AGI est CONTROL, aucun événement ne lui est envoyé. Tous les événements passent par AMI.

Vous pouvez utiliser tcpdump sur le serveur astérisque (côté linux) pour voir les messages AMI:

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

Vous ne pouvez pas capturer le trafic AGI moins qu'il ne soit FastAGI. Pour obtenir info agi faire:

asterisk -r 
agi set debug on 
Questions connexes