Affichage des résultats 1 à 10 sur 10

Discussion: Faire suivi MSQL dans le dialplan ou dans FastAGI ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre
    Date d'inscription
    octobre 2010
    Messages
    45
    Downloads
    0
    Uploads
    0

    Faire suivi MSQL dans le dialplan ou dans FastAGI ?

    Voici le contexte :

    je voudrais faire des appels externes sur demande. Je pourrais prendre un call file ou la commande Originate. Comme je veux lancer mes appels à partir du web, je pensais utiliser l'action Originate. Comme je veux aussi garder une trace des appels qui ont été fait et non répondu. Je vais utiliser MySQL pour faire le suivi.

    Je cherche des commentaires de personnes ayant de l'expérience sur le sujet.

    Voici les cas dont j'ai pensé.. mais je ne sais pas ce qui est de mieux, (je pense que le diaplan plan être plus facile à modifier en temps-reel au besoin)

    cas 1 :

    faire un insert dans MySQl.. genre : status=0,
    faire l'action Originate
    si le résultat de OriginateResponse == SUCCESS status=1, sinon status=2
    et faire le update dans la DB pour ce numéro de téléphone.

    cas 2 :

    faire l'action Originate mais appeller un script AGI (je n'ai rien fait que l'exemple Hello world.. donc pas sur comment ca marche) et faire les inserts MYSQL dans le script.. si possible

    cas 3 : exemple prit ici : http://forums.digium.com/viewtopic.php?t=23834
    OriginateAction dial = new OriginateAction();
    dial.setChannel("Local/DIAL@my_context");
    dial.setContext("my_context");
    dial.setExten("ANSWERED");
    dial.setPriority(1);
    dial.setAsync(true);
    dial.setCallerId("5555551212");
    dial.setVariable("dial_string","SIP/+15555551213@myprovider.com");

    [my_context]
    exten => DIAL,1,Verbose(1,About to perform outdial)
    exten => DIAL,n,Dial(${dial_string},30)
    exten => DIAL,n,Agi(agi://127.0.0.1/MyAGI.agi?dial_result=${DIALSTATUS})
    exten => DIAL,n,Hangup()

    exten => ANSWERED,1,Answer()
    exten => ANSWERED,n,Agi(agi://127.0.0.1/MyAGI.agi?dial_result=ANSWER)
    exten => ANSWERED,n,Hangup()

    ou je pourrais bien remplacer le call AGI, par les insert mysql.

    Qu'est-ce que vous en pensez ?

  2. #2
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Asterisk par défaut possède une possibilité d'enregistrer l'ensemble des appels en cdr mysql. Pas la pein de forcer, je vous invite de chercher cdr_mysql.com (il faut installer asterisk-addonns.

    Il vous reste seulement comprendre comment utiliser originate.

  3. #3
    Membre
    Date d'inscription
    octobre 2010
    Messages
    45
    Downloads
    0
    Uploads
    0
    Citation Envoyé par Reaper Voir le message
    Asterisk par défaut possède une possibilité d'enregistrer l'ensemble des appels en cdr mysql. Pas la pein de forcer, je vous invite de chercher cdr_mysql.com (il faut installer asterisk-addonns.

    Il vous reste seulement comprendre comment utiliser originate.
    ca enregistre seulement les appels qui ont été acceptés. pas ceux qui sont refusés. Donc ce n'est pas ce que je cherche.

    si j'utilise la commande Originate et la personne refuse l'appel.. il n'aura pas d'entrée dans le CDR.

  4. #4
    Membre Association Avatar de celya
    Date d'inscription
    septembre 2010
    Messages
    135
    Downloads
    0
    Uploads
    0
    J'utilise à peu près la meme méthode que le cas 3.

    Si cela peu t'aider, j'ai une règle de base. Pourquoi utiliser un AGI alors que le dialplan peu le faire simplement.

    Donc je te conseille une bonne vielle commande mysql dans le dialplan.

  5. #5
    Membre
    Date d'inscription
    octobre 2010
    Messages
    45
    Downloads
    0
    Uploads
    0
    Citation Envoyé par celya Voir le message
    J'utilise à peu près la meme méthode que le cas 3.

    Si cela peu t'aider, j'ai une règle de base. Pourquoi utiliser un AGI alors que le dialplan peu le faire simplement.

    Donc je te conseille une bonne vielle commande mysql dans le dialplan.
    ok.. mais comment je fais le code suivant :

    Action : Originate

    et la personne ne répond pas.

    comment vais-je voir le CDR dans la database, si le dialplan plan ne s'est pas exécuté ?

    as-tu un exemple ?

    est-ce un timeout ?

    ca serait bien d'avoir un exemple.. ca aide beaucoup plus.

  6. #6
    Membre Association
    Date d'inscription
    août 2010
    Messages
    856
    Downloads
    0
    Uploads
    0
    Citation Envoyé par survivant Voir le message
    ok.. mais comment je fais le code suivant :

    Action : Originate

    et la personne ne répond pas.

    comment vais-je voir le CDR dans la database, si le dialplan plan ne s'est pas exécuté ?

    as-tu un exemple ?

    est-ce un timeout ?

    ca serait bien d'avoir un exemple.. ca aide beaucoup plus.
    Le dialplan peut s'exécuter dans tous les cas.
    Que se passe-t-il dans votre cli quand l'appelant "refuse l'appel" (je ne sais pas exactement ce que vous entendez par là, mais peu importe), à quelle priorité asterisk saute-t-il ? (ps: c'est pour vous mettre sur la piste de la solution)

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
  •