Affichage des résultats 1 à 4 sur 4

Discussion: Variable non transmise au context depuis l'action Originate

  1. #1
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    3
    Downloads
    0
    Uploads
    0

    Unhappy Variable non transmise au context depuis l'action Originate

    Bonjour à tous,

    J'utilise l'AMI pour lancer des appels avec Asterisk.
    j'utilise pour cela l'action Originate; tout se passe bien, sauf que mes variables passées avec "Variable" sont vides dans le context.

    le manager.conf
    Code:
    [admin]
    secret = admin
    deny=0.0.0.0/0.0.0.0
    permit=127.0.0.1/255.255.255.0
    permit=192.168.0.1/255.255.255.0
    read = system,call,log,verbose,command,agent,user,originate
    write = system,call,log,verbose,command,agent,user,originate
    code de l'AGI
    Code PHP:
    #!/usr/bin/php -q
        <?php

        $sys_ip 
    "127.0.0.1";
        
    $User_str "admin";
        
    $Secret_str "admin";
        
    $wrets "";
        
    $langue "English";    
        if(
    $oSocket fsockopen($sys_ip5038$errnum$errdesc) or die("Connection to host failed"))
        {
            
    fputs($oSocket"Action: login\r\n");
            
    fputs($oSocket"Username: $User_str\r\n");
            
    fputs($oSocket"Secret: $Secret_str\r\n\r\n");
            
            
    fputs($oSocket"Action: Originate\r\n");
            
    fputs($oSocket"Channel: SIP/999\r\n");
            
    fputs($oSocket"Context: Test\r\n");
            
    fputs($oSocket"Exten: 100\r\n");
            
    fputs($oSocket"Priority: 1\r\n\r\n");
            
    fputs($oSocket"Variable: LANGUE=$langue\r\n");
            
    fputs($oSocket"Timeout: 10000\r\n");
            
    fputs($oSocket"Async: true\r\n\r\n");
            
            
    fputs($oSocket"Action: Logoff\r\n\r\n");
            
            while (!
    feof($oSocket)) {
                
    $wrets .= fread($oSocket4096);
            }
            
    //fclose($oSocket);
            
    echo "ASTERISK MANAGER OUTPUT:$wrets";
        }
        else
            echo 
    "connexion echoue";
    ?>
    Le context "Test"
    Code:
    [Test]
    exten => 100,1,Background(custom/${LANGUE}/Bienvenu)
    Merci de me venir en aide

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    essaie sans espace apres les :
    dans un vieux script, j'ai retrouvé Variable=nomdelavariable=valeur - à essayer aussi

  3. #3
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    3
    Downloads
    0
    Uploads
    0
    Citation Envoyé par jean Voir le message
    essaie sans espace apres les :
    dans un vieux script, j'ai retrouvé Variable=nomdelavariable=valeur - à essayer aussi
    Merci jean
    J'ai essayé sans l'espace après le : , et j'ai aussi essayé Variable=nomdelavariable=valeur, mais ni l'un ni l'autre ne marche.
    J'utilise Asterisk 11.7.0, sur ubuntu 14.04

    Merci

  4. #4
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    3
    Downloads
    0
    Uploads
    0
    C'est fou comme une petite erreur peut passer inaperçue.
    En fait cette partie du code
    Code PHP:
            fputs($oSocket"Priority: 1\r\n\r\n");
            
    fputs($oSocket"Variable: LANGUE=$langue\r\n"); 
    devait plutôt être comme ça:
    Code PHP:
            fputs($oSocket"Priority: 1\r\n");
            
    fputs($oSocket"Variable: LANGUE=$langue\r\n"); 
    Donc c'est le
    Code:
    \r\n
    en plus après le Priority qui causait le problème

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
  •