Page 2 sur 2 PremièrePremière 12
Affichage des résultats 11 à 19 sur 19

Discussion: Action Monitor

  1. #11
    Membre Junior
    Date d'inscription
    mars 2014
    Messages
    19
    Downloads
    0
    Uploads
    0
    Salut,

    Je reviens encore une fois pour mieux exposer mon problème.

    alors, en fait mon but était d’exécuter le script suivant: http://www.banquise.org/python/how-t...sk-and-python/, en rajoutant en plus de Originate, Monitor.

    Grace à Quintana, j'ai compris, que je me trompais de canal pour Monitor, alors en visualisant Events lors des appels, j'ai pu voir le format exact (SIP/exten-xxxxxxxx). ce format je ne pouvais pas en choisir un, comme je le croyais, et l'attribuer à Channel dans l'action Monitor, puisqu'il était généré par Asterisk automatiquement à chaque lancement d'appel en respectant une certaine croissance (exemple pour appel1: SIP/101-0000000d, après SIP/101-0000000e, SIP/101-0000000f, SIP/101-00000010 ... SIP/101-000000ff, SIP/101-00000100 ..., une fois asterisk redémarré il revient SIP/101-00000000).

    Alors, je croyais pouvoir trouver des actions (en AMI) pouvant m'aider à récupérer le canal, mais c'était en vain.

    Actuellement, j'ai réussi à le faire, en ajoutant dans mes actions:

    Action: Status
    Command: Lists channels status


    dans la réponse envoyé par Asterisk ( data = s.recv(1024) ), je cherche (SIP/exten-) avec la fonction python find(), je récupère le canal et je l'attribue à Channel dans l'action Monitor. Ainsi je passe mes appels depuis un script python, et je les enregistre (sous le nom que je souhaite), sans aucun souci.

    Alors je peux me contenter de ceci (bien que ça ne m'est pas l'aire être pratique), sauf que s'il y a autre manière de faire, j'aurais apprécié encore plus ...

    Grand Merci à Quintana et Jean

  2. #12
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    Salut

    Si j'ai bien compris, tu veux initier un appel via AMI, en récupérer l'identifiant (ie, le channel complet) afin de lancer un monitor dessus.
    J'ai fait un petit test, en faisant un bete telnet 127.0.0.1 5038 et en tapant les commandes à la main. Effectivement, c'est pas aussi trivial que cela n'y parait.
    Le Originate ne renvoie pas le channel attribué. Il faut attendre un événement Newchannel, récupérer le champ Channel et comparer que le la partie avant le - corresponde à l'appel que tu viens de lancer.
    Mais, chose encore plus bizarre, je ne reçois (sur mon serveur de test), que le newchannel pour la deuxième "leg" de l'appel (pour mémoire, un appel est consitué de deux legs, le poste appelant vers asterisk, asterisk vers le poste appelé, qui sont ensuite bridgée au décrochage de l'appelé).
    peux tu faire ce test (en lançant d'abord un
    Action: Events
    EventMask: on

    et voir si tu vois bien tous les évts ?

    J

  3. #13
    Membre Junior
    Date d'inscription
    mars 2014
    Messages
    19
    Downloads
    0
    Uploads
    0
    Vous avez bien cerné mon problème et mon objectif.

    Mon test donne le résultat suivant: (je les liste sans détails)

    Action: Originate
    ...
    Action: Events
    ...
    Event: Newchannel
    ...
    Action: Logoff
    ....
    Event: VarSet
    Event: NewAccountCode
    Event: NewCallerid
    Event: ExtensionStatus
    Event: NewState

    Effectivement, ça ne donne que le canal de l'appelant.

  4. #14
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    j'ai des pistes...

    en fait, le event arrive une fois le décroché fait, donc si ca te convient, la séquence est bonne, il suffit d'attendre (de toutes facons, je doute qu'un monitor fonctionne si le channel n'est pas UP)
    sinon, il faut rajouter: Async: 1 à la fin des paramètres originate, et les événements liés à l'originate seront envoyés tout de suite, avec en plus un evenemnet OriginateResponse
    En revanche, faire le lien "formel" entre le originate et le event n'est pas assuré (si on voit passer un event , avec les bons paramètres, on peut supposer que c'est le notre, mais on a pas un id garanti).

    ceci étant dit, pourquoi ne pas faire le monitor dans le contexte ?

  5. #15
    Membre Junior
    Date d'inscription
    mars 2014
    Messages
    19
    Downloads
    0
    Uploads
    0
    Avec Async: 1 le résultat est encore mieux.

    Sinon, pouvez vous me dire comment je pourrais faire le monitor dans le contexte (je n'ai pas bien compris) ?

  6. #16
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    dans le originate, tu vais as un paramètre 'Context: default' (peso, j'aime pas utiliser default, au niveau sécurité ca peut poser des pbm)
    il suffit dans ce contexte, et dans l'extension ou l'on se branche (en fonction du numero) de rajouter le monitor

  7. #17
    Membre Junior
    Date d'inscription
    mars 2014
    Messages
    19
    Downloads
    0
    Uploads
    0
    Excusez moi, mais vous parlez toujours de Monitor par AMI ? parce que je n'arrive pas à voir comment serait la syntaxe

  8. #18
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    le monitor peut être fait soit via AMI après l'originate, soit dans le dialplan, en le mettant dans le contexte activé (indiqué en paramètre du originate, dans ton cas, default). je suis juste pas sur qu'il fonctionne avant le dial, mais c'est la façon la plus simple

  9. #19
    Membre Junior
    Date d'inscription
    mars 2014
    Messages
    19
    Downloads
    0
    Uploads
    0
    Oui tout à fait, d'ailleurs au début je m'appuyais sur l'enregistrement fait par défaut (par Elastix), mais comme je devais renommer mes enregistrements à partir de mon script, donc je devais forcément le faire par AMI.

    Je vous remercie énormément pour vos réponses et votre temps consacré à nous répondre.
    ça m'a éclaircit énormément des choses.

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
  •