PDA

Voir la version complète : AMD sur ligne analogique



tootai
22/03/2014, 12h32
Bonjour,

je souhaite utiliser AMD pour les appels sortants par une ligne analogique. J'ai testé avec Asterisk 1.8 et 11. Le matériel utilisé pour les tests est soit un cisco2811 soit un Linksys SPA3102, le résultat étant identique à la sortie.

Mon test: je fais un dial(SIP/<ip passerelle>/<numéro appelé>,,M(mamacro)), ce qui a pour but d'exécuter la macro lorsque l'appelant décroche. Le problème est que la macro est exécutée bien avant que le correspond ai décroché. La variable DIALSTATUS est vide, ce qui est illogique puisque la macro doit être exécutée lorsque le correspondant décroche (option M). Bien évidemment AMD (exécuté dans la macro) retourne un status NOTSURE et une cause TOOLONG-5000

Je procède au test inverse: je sors via un trunk SIP et appelle un numéro analogique (en l'occurence un 09 de Free via freebox (également testé vers un numéro Orange sur ligne Orange) -> Cisco ou SPA -> Asterisk): tout se passe bien, la macro est exécutée au 1er Answer rencontré ou lorsque le correspondant décroche si pas de Answer.

Question: qu'est ce qui peut faire que la commande Dial recoive un Answer sur les appels sortants alors que le correspondant n'a pas décroché?

Merci pour tout retour


Daniel

jean
24/03/2014, 15h11
je crois que la fonction macro dans dial est prévue comme cela.

en toute logique, pour de l'appel sortant, il te faut utiliser un call file, ou tu vas indiquer quel numéro appeler et à quel contexte se brancher une fois la comm établie. tu pourras alors lancer la détection de messvo.

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

j

tootai
24/03/2014, 16h59
Bonjour Jean,

qu'entends tu par "la fonction macro dans dial est prévue comme cela". Pour l'option M oui, c'est le bon comportement. Pour le répondu, ce n'est pas la fonction qui le gère mais le channel: c'est la que le bât blesse.

En quoi le fait d'utiliser un call file serait différent de la fonction dial option M? J'ai tout de même testé, par acquis de conscience, via autodialout: le résultat est identique à celui via l'appel Dial option M ce qui me parait logique.

Merci de t'être penché sur mon cas

jean
24/03/2014, 17h13
ben d'apres un core show application dial :
Execute the Macro for the *called* channel before connecting to the calling channel


Je ne suis pas sur de comprendre ce que tu veux faire. pour moi, l'amd s'utilise lorsque tu veux connecter un appel sortant à un serveur vocal (quitte à transférer ensuite sur un poste réel). donc, la façon dont je le fais (et qui marche !)
est de faire un call file, avec channel, le numéro à appeler (genre sip/06....), et context le contexte ou se brancher sur décroché, et là, je commence par l'amd

précise ce que tu veux faire, et comment tu essaies pour le moment

cdlt

tootai
24/03/2014, 17h48
D'après VOIP info:

M(x): Executes the macro (x) upon connect of the call (i.e. when the called party answers).

je veux utiliser AMD pour détecter si le numéro appelé est une machine (répondeur, fax, ...) ou un humain.

Si tu reprends mon message d'origine, j'y indique que dès que j'ai envoyé l'appel sur la ligne analogique asterisk exécute ma macro définie dans le dial option M alors que l'appel n'a pas encore abouti eg le destinataire n'a pas décroché.

Si je passe l'appel via un trunk SIP, cela fonctionne, la macro est exécutée lorsque la partie appelée décroche.

Merci pour ton aide.