Affichage des résultats 1 à 6 sur 6

Discussion: Scripts AGI ... ?

  1. #1
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0

    Scripts AGI ... ?

    Bonjour à tous,

    Dans le cadre de mon apprentissage d'astérisk, j'ai décidé de développer un petit script AGI, simplement pour voir un peu comment ca fonctionne.

    Pour commencer simplement, j'ai un extension.conf comme ca:

    Code:
    exten=20,1,Answer()
    exten=20,n,AGI(/home/test/test.php)
    exten=20,n,Hangup()
    Dans mon script test.php, je veux simplement dire à asterisk de lire un fichier audio.

    Code:
    #!/usr/bin/php -q
    <?
             function ast_debug($param)
                    {
                             $fichier=fopen("/home/test/debug.log","a");
                             fputs($fichier,date("d/m/Y Ã* H:i:s",mktime())." -> ".$param."\n");
                             fclose($fichier);
                    }
    
             if(defined('STDOUT'))
                    {
                             ast_debug("Ok, chaine définie");
                             $command="STREAM FILE /home/test/p001\n";
                             fputs(STDOUT,$command);
                             fflush(STDOUT);
                             ast_debug("COMMANDE : ".$command);
                    }
    
    ?>
    Je teste ca avec X-Lite sous windows, qui se connecte à une machine virtuelle sur laquelle est installé Asterisk (Linux CentOS).

    Sous le CLI d'asterisk j'ai ca :

    Code:
        -- Executing [30@default:1] Answer("SIP/1001-00000006", "") in new stack
        -- Executing [30@default:2] AGI("SIP/1001-00000006", "/home/test/test.php") in new stack
        -- Launched AGI Script /home/test/test.php
        -- <SIP/1001-00000006>AGI Script /home/test/test.php completed, returning 0
        -- Executing [30@default:3] Hangup("SIP/1001-00000006", "") in new stack
    Cependant, je n'entends jamais le message vocal.

    Si je modifie l'extension.conf pour y mettre un Playback direct du message vocal, c'est ok, ca fonctionne, donc pas de probleme de fichier audio (c'est un alaw).

    Ca fait plus de 8h de que je suis dessus, vais pas tarder à craquer !! ...

  2. #2
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Si tu lance le script avec le binaire php seul, il passe sans erreurs ?

  3. #3
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Et fais attention au répertoires, il me semble que asterisk par défaut cherche sous le répertoire agi-bin

  4. #4
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0
    Ayé j'ai trouvé.

    Les '' sont obligatoires pour la commande stream file ...

    Il me semblait pourtant que j'avais déjà essayé, mais non, j'ai dû le rêver.

    enfin, quoi qu'il en soit, si vous testez les scripts AGI, pensez que lors de l'utilisation de la commande stream file, il faut les '' à la fin, même si vous n'utilisez pas les escapes digits.

    STREAM FILE nomdufichier ''

    Pas compliqué pourtant, il le dit dans le debug agi du CLI .... lol.

    Hier devait être un jour sans ....

  5. #5
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0
    Dans la continuité.

    Maintenant le fichier vocal est bien lu par asterisk, mais il y a un point que je ne comprends pas, une fois le script agi terminé, dans l'extensions.conf, il y a un hangup juste après l'appel au script agi, et il ne se fait pas.

    En clair, le fichier audio est lu par asterisk via le script agi, mais un fois le script terminé, on dirait qu'asterisk attend quelque chose, il n'execute pas le hangup du extensions.conf.

    Quelqu'un aurait une idée ?...

  6. #6
    Membre Junior
    Date d'inscription
    octobre 2010
    Messages
    3
    Downloads
    0
    Uploads
    0
    Pourtant dans ta CLI il y a bien :

    -- Executing [30@default:3] Hangup("SIP/1001-00000006", "") in new stack

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
  •