Affichage des résultats 1 à 2 sur 2

Discussion: Problème AGI script en php

  1. #1
    Membre Junior
    Date d'inscription
    décembre 2012
    Messages
    1
    Downloads
    0
    Uploads
    0

    Problème AGI script en php

    Bonjour,

    Je suis étudiant en L3 Télécoms et Réseau, nous avons un projet à réaliser avec l'AGI php d'Asterisk.
    Nous somme un peu bloqué, j'explique:

    Nous devons récupérer des information dans une BDD (numéro etc). pour les traiter ensuite.

    Nous avons récupéré un script php simple pour tester, mais voila, impossible de savoir si il est pris en compte ou pas car on n'a aucun retour dans le client asterisk malgré la commande agi set debug on.

    Voici le code du script.
    #!/usr/bin/php -q
    <?php
    // limite le temps d'execution du script a 60 secondes
    set_time_limit(60);

    // supprime le "buffering" sur les sorties
    ob_implicit_flush(false);

    // supprime l'affichage des erreurs pour éviter que celles-ci interferent avec Asterisk
    error_reporting(0);

    // creation des fichiers STDIN, STDOUT et STDERR si besoin
    if(!defined('STDIN')) define('STDIN', fopen('php://stdin', 'r'));
    if(!defined('STDOUT')) define('STDOUT', fopen('php://stdout', 'w'));
    if(!defined('STDERR')) define('STDERR', fopen('php://stderr', 'w'));

    // # retrieve all AGI variables from Asterisk
    // récupération des variables envoyés par Asterisk au lancement de l'AGI.
    while(!feof(STDIN))
    {
    $temp = trim(fgets(STDIN,4096));
    if (($temp == "") || ($temp == "\n")) break;
    $s = split(":",$temp);
    $name = str_replace("agi_","",$s[0]);
    $agi[$name] = trim($s[1]);
    }

    // l'ordre que l'on envoi à Asterisk, dans cette exemple, on met "bonjour" dans "Myvar"
    fwrite(STDOUT,"SET VARIABLE Myvar Bonjour\n");
    // force l'envoi de l'ordre. Pas réellement nécessaire puisse que la bufferisation
    // est désactivée, mais conseillé.
    fflush(STDOUT);
    exit();
    ?>

    Et le code dans le dial plan

    [AGI_PHP]
    exten => s,1,Set(Myvar=Test)
    exten => s,n,NoOp(Myvar=${Myvar})
    exten => s,n,AGI(/usr/bin/php,"/var/lib/asterisk/agi-bin/test_php.agi")
    exten => s,n,NoOp(Myvar=${Myvar})

    Nous avons placé le script dans /var/lib/asterisk/agi_bin avec les permission 755.

    En espérant que vous pourrez nous aider.

    Merci d'avance.

    Joris

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Messages
    410
    Downloads
    1
    Uploads
    0
    Salut,
    la premiere chose à faire est d'éxecuter ton script AGI en ligne de commande pour voir s'il réagit comme tu le souhaites et surtout s'il n'y a pas d'erreurs PHP..

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
  •