Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 10 sur 20

Discussion: Probleme appel sortant asterisk (call files)

  1. #1
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0

    Probleme appel sortant asterisk (call files)

    Bonjour,
    Dans le cadre d'un projet en alternance je dois émettre des appels. J'ai une liste de numéros, et chaque numéro à un message audio qui lui est lié, cette liste est ordonnée, et si le premier numéro répond, je ne lance pas d'appel supplémentaire, si ce numéro ne répond pas je passe au suivant. J'arrive à appeler avec le message, mais seulement le premier, je n'arrive pas à trouver comment avoir un retour, (a décroché ou non) exploitable ensuite en php. Merci pour votre aide.

  2. #2
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0
    Précisions importantes, mes appels sont généré avec un call file, tres minimaliste:
    channel: SIP/sip-ovh/<numéro que j'appelle>
    application: Playback
    data: /var/www/html/Megaphone/audio/<nom du fichier .gsm>

    A chaque numéro que je dois appeler je crée un nouveau fichier .gsm avec le bon fichier audio a jouer. Et un nouveau fichier .call, ou je change le numéro et le nom du .gsm

    Ce n'est pas moi qui ai configuré le serveur asterisk, j'ai donc une expérience extrêmement limité de ce logiciel.
    J'espere que j'ai donné toutes les infos dont vous ayez besoin pour m'aider.

    Merci à tous

  3. #3
    Membre Senior
    Date d'inscription
    janvier 2011
    Localisation
    Villejuif 94
    Messages
    246
    Merci
    1
    Remercié 16 Fois en 16 Posts

    Downloads
    0
    Uploads
    0
    Bonjour,
    Utilises plutôt l'interface de management AMI. Il existe des librairies PHP pour d'aider.

  4. L'utilisateur suivant remercie olppp pour sa réponse:

    Schumi (10/02/2017)

  5. #4
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0
    Cette solution me fait installer un nouveau truc, lire encore des tonnes de docs et refaire une partie non négligeable de mon code x), il n'y a pas moyen de juste récupérer un retour d'un appel ? J'ai vu des pistes avec les extensions mais je n'ai pas tout compris.

  6. #5
    Président Association Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 253
    Merci
    2
    Remercié 33 Fois en 30 Posts

    Downloads
    1
    Uploads
    1
    Regardes la puissance des "local channel" . Plutot que de creer directement ton channel avec sip dans ton call file , passe par un local channel.
    Ca serait par exemple: local/number@customcontext
    Ton customcontext contiendra le dial: ( avec pattern ou passage variable )
    exten => number,1,Dial(SIP/sip-ovh/${EXTEN})
    ( sachant que le playback est deja declenché si le channel repond ) . Un channel c'est 2 extremités, c'est un peu difficile a comprendre au debut.
    Tu peux exploiter ensuite ${DIALSTATUS} en le sauvant dans une base ou fichier ou en lancant un script php.

    Sinon, tu dois rajouter des callerids peut etre pour que ton appel apparaissent dans les cdrs.
    Tu pourras exploiter d'un scipt php le status de l'appel en lisant la base cdr qui contiendra le resultat de l'appel
    Quelques pistes a examiner...
    Cheers!
    Francois.
    Telisk & Lumicadre
    ↙ Un petit merci ? Suivez la flèche...

  7. L'utilisateur suivant remercie fastm3 pour sa réponse:

    Schumi (10/02/2017)

  8. #6
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0
    En cherchant ce matin, j'ai trouvé des trucs a propos de Dialstatus, ça ressemble effectivement beaucoup a ce que je cherche, j'ai donc modifié mon .call pour le lié avec un context, je cherche encore a le faire correctement ^^, je vais regarder maintenant le "local channel" dont tu me parles, même si je vois pas bien l’intérêt comme ça. Et je ne savais pas que Playback() se lançait tout seul. Je posterai mes fichiers si je n'arrive pas a quelque chose ce week end. Merci a Toi pour ton aide

  9. #7
    Président Association Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 253
    Merci
    2
    Remercié 33 Fois en 30 Posts

    Downloads
    1
    Uploads
    1
    Citation Envoyé par Schumi Voir le message
    je vais regarder maintenant le "local channel" dont tu me parles, même si je vois pas bien l’intérêt comme ça.
    L'interet ici pour toi est de conserver le principe des call files tout en faisant le dial dans ton contexte pour en recuperer le dialstatus, c'est tout.
    L'interet est donc juste de répondre a ton besoin.
    Francois.
    Telisk & Lumicadre
    ↙ Un petit merci ? Suivez la flèche...

  10. #8
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0
    J'ai a peu près compris le fonctionnement de la variable DIALSTATUS, c'est le lien entre le call file et le context que je ne comprend pas, la fonction Dial(), c'est bien pour créer un appel ? Donc j'ai pas besoin de Channel dans mon call file. Et je passe a Dial le numéro de téléphone grace a setVar dans le call file. Ce qui nous donnerai (environ):

    fichier.call
    Channel: SIP/sip-ovh/num (?)
    Context: context-test
    Extension: <num>
    Priority: 1
    SetVar num=<num>
    SetVar fichier_audio=<chemin fichier>

    [context-test]
    exten => _X,1,Dial(SIP/sip-ovh/${EXTEN});
    exten => _X,n,Playback(${fichier_audio})
    exten => _X, n,NoOp( Dial Status: ${DIALSTATUS})
    exten => _X, n,Goto(s-${DIALSTATUS},1)

    exten => s-BUSY,1,...
    exten=> s-BUSY,n,...
    ...
    exten => s-NOANSWER,1,...
    exten => s-NOANSWER,n,...
    ..

    Par contre j'ai pas compris comment utiliser local channel :/

    EDIT: ${EXTEN} nous donne le "canal" qu'on appelle. Et dial ouvre la connexion, donc ${EXTEN} n'existe pas tant que dial n'a pas été lancé, ou un Channel dans le call file, mais si on fait un Channel, pourquoi fait un dial ? C'est un point que je n'ai pas compris

    PS: j'ai trouvé Asterisk the future of the telephonie sur le site, mais j'ai pas encore vraiment eu le temps de le lire. Je m'y attelle.

    EDIT2: D'apres ce que je viens de voir, pas besoin de Playback si on met cette option dans le dial (A(x): Play an announcement (x.gsm) to the called party.), c'est ça ?
    Dernière modification par Schumi ; 15/02/2017 à 09h09.

  11. #9
    Membre Junior
    Date d'inscription
    février 2017
    Messages
    13
    Merci
    4
    Remercié 0 Fois en 0 Posts

    Downloads
    1
    Uploads
    0
    Up svp

  12. #10
    Président Association Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 253
    Merci
    2
    Remercié 33 Fois en 30 Posts

    Downloads
    1
    Uploads
    1
    Pas trop le temps de faire des tests pour toi et un peu compliqué a expliquer.
    Essaie de jeter un coup d'oeuil a https://wiki.asterisk.org/wiki/displ.../Local+Channel
    il y a un exemple pour les call files et pourquoi le local channel peut etre utile.
    Il faut bien comprendre que tu as toujours 2 "extremités" à gérer en meme temps. J'ai eu moi meme bcp de mal à integrer ce principe au debut.
    Avec le call files, on lance d'un coté et l'autre partie n'est executé que si le channel est etabli.
    Francois.
    Telisk & Lumicadre
    ↙ Un petit merci ? Suivez la flèche...

  13. L'utilisateur suivant remercie fastm3 pour sa réponse:

    Schumi (23/02/2017)

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
  •