Bonjour,

Je cherche à corriger un problème sur un service qui fonctionne bien sauf dans un cas précis, je m'explique : il s'agit d'une extension qui enregistre les appels automatiquement et qui au moment du hangup déclenche une action pour aller stocker le message enregistré dans une application distante via l'appel d'un script AGI. Mon problème concerne les appels qui sont transférés :

- un appel arrive sur l'extension
- l'appel est automatiquement enregistré (via MixMonitor())
- l'appel est pris par l'utilisateur A
- l'utilisateur A met l'appel en pause pour appeler l'utilisateur B
- l'utilisateur A transfert l'appel à B
- l'utilisateur B traite l'appel et raccroche

Mon problème c'est que dans ce scénario, j'ai deux événement hanhup : lorsque A tranfert l'appel à B et lorsque B (ou l'appelant) raccroche. Je cherche à distinguer les deux pour ne déclencher l'action de stockage du message que dans le deuxième cas. J'ai bien cherché une variable me permettant de faire la différence mais je n'en ai pas trouvé une qui fasse l'affaire : le DIALSTATUS est à ANSWER dans les deux cas par exemple..

Auriez-vous une idée ?

Pour info, voilà à quoi ressemble l'extension (il s'agit d'un contexte entier) :

Code:
[support]
exten => s,1,Set(TICKET_RECORD_FILE_PREFIX=/var/cache/asterisk/support-${EPOCH})
exten => s,n,MixMonitor(${TICKET_RECORD_FILE_PREFIX}.wav,bW(4))
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,Dial(${SUPPORT},45,gm)
exten => s,n,Hangup()

exten => h,1,StopMixMonitor()
exten => h,n,AGI(/usr/local/peephone/ticket_update.py)