Affichage des résultats 1 à 5 sur 5

Discussion: Jouer un son dans une conversation en cours puis couper pour libérer la ligne

  1. #1
    Membre Junior
    Date d'inscription
    novembre 2011
    Messages
    2
    Downloads
    0
    Uploads
    0

    Question Jouer un son dans une conversation en cours puis couper pour libérer la ligne

    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.

  2. #2
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Joue pas le message, coupe. Ça va par arriver tout les jours.

  3. #3
    Membre Association
    Date d'inscription
    août 2010
    Messages
    856
    Downloads
    0
    Uploads
    0
    c'est clair, en cas d'appel d'urgence, il n'y a pas une seconde à perdre, un channel doit être raccroché sans attendre.

    Par contre la possibilité de jouer un son sur une "autre" conversation est une fonctionnalité intéressante pour différents usages, on peut continuer à creuser

    On peut récupérer les identifiants des channels en parsant le résultat d'une commande comme "core show channels"
    Pour lire les variables des autres channels, on peut partager cette variable "intéressante" (fonction shared() )

  4. #4
    Membre Association
    Date d'inscription
    septembre 2010
    Localisation
    Nantes
    Messages
    88
    Downloads
    0
    Uploads
    0
    Il n'y a pas photo, tu coupes l'appel. Mais pour répondre à ton problème, utilises la commande manager redirect, ça devrait répondre à ton besoin.

  5. #5
    Membre Junior
    Date d'inscription
    novembre 2011
    Messages
    2
    Downloads
    0
    Uploads
    0
    Citation Envoyé par Reaper Voir le message
    Joue pas le message, coupe. Ça va par arriver tout les jours.
    C'est clair que ça m'aurait évité des tracas, mais comme ce sont nos commerciaux qui utilisent ces lignes, je préfère prévenir avant, car je ne peux quand même pas raccrocher au nez des clients; de toute façon, comme on est à la campagne, les secours mettront 10 minutes minimum à arriver, ce qui ne sauvera en aucun cas une personne en danger de mort. Si il n'y a pas risque de mort, alors 15 secondes ne changeront pas tellement la donne.

    Citation Envoyé par Thera Voir le message
    Il n'y a pas photo, tu coupes l'appel. Mais pour répondre à ton problème, utilises la commande manager redirect, ça devrait répondre à ton besoin.
    J'y avais pensé, mais ne voyait pas comment appeler cette commande depuis mon dialplan, ni comment obtenir les 2 channels de la conversation pour pouvoir leur indiquer que la communication avait été interrompue pour un appel prioritaire.

    Je pense avoir réussi à m'en sortir avec une conférence, mais cette configuration n'a pas été testée. Je donnerai le retour de cette façon de faire quand je l'aurai.

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •