Bonjour,
Je suis confronté à un problème…
Nous avons 2 trunks SIP, par fois le premier reste joignable (en OK dans le "sip show peers") mais les appels ne passent pas. (All circuits busy/congested now).
J'aimerai pouvoir effectuer un appel röel avec Asterisk (pas de soucis) mais je voudrais que le status de cet appel ( en gros faire sonner une ligne pendant 5 secondes) soit récupérer par Nagios (OK/NOK).
Je ne vois pas du tout comment faire… et je ne trouve rien sur le net.
L'idéal serait un client SIP en CLI qui se connecte à une extension pour faire un call et qui me permette de récupérer le code de retour…
Si vous avez des idées / sugegstions je suis preneur
Merci
# AGI ou fichier call
Posté par ze_lionix (site web personnel) . Évalué à 3. Dernière modification le 02 novembre 2012 à 13:20.
Salut,
Asterisk popopower ! Je vois deux manières de faire que j'ai déjà pratiqué :
1) La programmation astérisk : un AGI
La méthode "pro", "devel" tu fais un programme en AGI que tu colles en crontab.
Cela risque de te prendre un peu de temps car il va falloir te familiariser avec l'API dans le langage que tu choisis ( en php ca peux aller relativement vite ;o) ,faire la connexion… etc…
-=> Petite page qui va bien…
2) Le bon vieux Fichier .call des familles
Un peu plus "artisanal", quoique astucieux, et fait en 2 minutes !
Tu places un shell en crontab qui mettra un fichier .call dans /var/spool/asterisk/outgoing/. Je te conseil fortement de créer le fichier dans /tmp ou autre et move après dans le répertoire cible, au cas où astérisk parse le répertoire pendant que tu écris le fichier… balo…
-=> Et la aussi je te gratifie d'une petite page) qui va bien, il y a même des exemples !
Enjoy !
Fuse : j'en Use et Abuse !
# Sympat mais...
Posté par ratw3 . Évalué à 1.
Salut,
Je connais un peu l AGI ou la solution du mv dans le spool asterisk :)
Le souci c est que oui ca va appeler… Mais non je ne saurai pas si l appel a abouti ou non… (il faudrait parser les lopgs au meme moment a la recherche d un message improbable a la asterisk like ;)
J ai bien trouvé un plugin nagios nommé check_call…
Le souci ?
Il faut que le telephone appelé décroche alors que je voudrais me contenter de sonneries :) parce que si ca doit decrocher a chaque fois bonjour la facture si je dois faire ce test toutes les 5 minutes :)
http://exchange.nagios.org/directory/Plugins/Network-Protocols/*-VoIP/SIP/check_calls/details
Je suis une quiche en perl et je ne connais pas bien le protocl SIP mais si l un de vous a une idée sur comment modifier ce script pour que des sonneries soient suffisantes, je suis preneur :)
Merci en tous les cas de ta participation fortement appréciée!
[^] # Re: Sympat mais...
Posté par ze_lionix (site web personnel) . Évalué à 1.
Pour commencer tu n'es pas obligé de parser les logs, tu peux normalement récupérer le statut de ton appel directement en agi, ou même dans tes CDR, qu'ils soient en csv ou en base de donnée ( mysql ? ).
Ensuite pour ce que tu souhaites faire…
En SIP tu ne peux pas vraiment couper au bout de X sonneries, car il y a un seul message/paquet pour le statut "Ringing" code 180 qui est reçu par ton client. C'est ton softphone qui quand il reçoit ce message commence à te faire les bruits de sonnerie jusqu'au statut suivant ( décroché du destinataire : humain - boite vocal, ou signal occupé ). Il faudrait plutôt coller un timeout sur le dial ( ex 10s ) et regarder si tu as bien recu un 180 dans ton client sip. oulaa….
Sachant que ton temps d'établissement de communication n'est pas constant…
Mmmmmm… c'est n'imp' non ?
Tu es d'accord que tu sais identifier le problème quand il survient :
"All circuits busy/congested now"
Que ce soit dans ta CLI, ou dans tes logs asterisk.
=> Pourquoi ne pas simplement surveiller l'apparition de ce message ?
Fuse : j'en Use et Abuse !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.