Bonjour.

Je suis actuellement en train de travailler sur un futur dialplan qui comportera des lignes SIP trunk et 3 lignes SIP ou analogiques provenant de passerelles GSM.

Afin que les services d'urgence puissent tracer un éventuel appel depuis notre entreprise, je voudrais, après avoir choisi une ligne GSM et avoir vérifié si elle était occupée (déjà fait), jouer un fichier son sur la conversation en cours pour indiquer que la ligne va être coupée pour un appel prioritaire, puis couper effectivement la conversation pour ensuite faire passer l'appel d'urgence. À défaut de pouvoir jouer un son, je voudrais que la personne voulant contacter les services d'urgence puisse annoncer à l'employé qui fait partie de la conversation, et seulement à lui, qu'il va prendre la ligne et que l'employé doit terminer immédiatement son appel. J'ai essayé d'utiliser ChanSpy et ExtenSpy, mais je ne comprends pas comment leur indiquer un fichier à lire.

J'ai également pensé à envoyer un UserEvent avec ce code (trouvé ici) :
Code:
CfMC_ActionID=PlayBack
CfMC_WhatToPlay=lyrics-louie-louie
CfMC_WhoHear=SIP/GXP280_18-00000002
exten => do_chanspy,n,UserEvent(BeforeChanSpy,ActionID:${CfMC_ActionID} & ${UNIQUEID} & ${CHANNEL} & ${CfMC_WhatToPlay} & ${CfMC_WhoHear})
exten => do_chanspy,n,ChanSpy(${CfMC_WhoHear},qW)
exten => do_chanspy,n,UserEvent(AfterChanSpy,ActionID:${CfMC_ActionID} & ${UNIQUEID} & ${CHANNEL} & ${CfMC_WhatToPlay} & ${CfMC_WhoHear})
Le problème, c'est qu'il me faudrait trouver pour ce code la valeur de ${UNIQUEID} pour un channel dans lequel je ne suis pas, et je ne sais pas comment accéder aux variables d'un autre channel.

J'ai également lu que je pouvais faire ça en mettant les correspondants des lignes GSM dans une salle de conférence par ligne, mais cela me paraît être lourd à jouer et surtout risque de ne pas être transparent pour les utilisateurs.

Parmi ces méthodes, ChanSpy et ExtenSpy ont ma préférence car elles sont plus simples à gérer côté AEL, mais comment leur faire lire un son prédéfini?

Sinon, comment extraire le UNIQUEID d'un channel autre que le channel courant? Cette méthode par UserEvent fonctionnerait-elle?

Sinon, si seule la conférence peut fonctionner, comment la configurer pour que cela soit identique à un appel standard pour les utilisateurs?

Je sais, je ma fais bien ch**r, mais je ne peux pas me permettre de router les appels d'urgence au plus simple et d'entraver ainsi l'arrivée des secours parce que je n'aurais pas su effectuer une configuration assez fine d'Asterisk.

Merci d'avance à tout bonne âme qui voudra m'aider.