Affichage des résultats 1 à 10 sur 37

Discussion: Scritp AGI et PHP : interaction entre asterisk et application web php

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Junior
    Date d'inscription
    juillet 2012
    Messages
    17
    Downloads
    0
    Uploads
    0
    Quelqu'un peut m'aider ? je fais du sur place dans mes codes qui ne produisent rien à rien !
    "Votre Atitude determinera votre Altitude dans la vie !"

  2. #2
    Membre
    Date d'inscription
    février 2011
    Localisation
    Saint-Marcellin (Isère)
    Messages
    46
    Downloads
    0
    Uploads
    0
    Salut Nabil,
    Moi, j'ai aussi utilisé un script php... Mais l'agi n'était pas oppérationnel chez moi j'ai fait tout autrement.
    J'ai utilisé tout d'abord une autre voix (ibm) qui me semble plus compréhensible.
    Voici un bout de mon script extensions.conf
    [Maison]
    exten => s,1,Ringing()
    exten => s,2,Wait(1)
    exten => s,3,Answer()
    exten => s,4,PlayBack(${ChmAudio}/Bienvenu)
    exten => s,5,Goto(Maison,TousTels,1)
    exten => TousTels,1,Set(CALLFILENAME=${ChmEnreg}/Entrant/${STRFTIME(${EPOCH},,%Y-%m-%d_%H%M)}-${CALLERID(num)})
    exten => TousTels,2,Set(__ContextProvenance=Maison)
    exten => TousTels,3,Set(__ExtensionProvenance=TousTels)
    exten => TousTels,4,Monitor(wav,${CALLFILENAME},m)
    exten => TousTels,5,Set(CHANNEL(musicclass)=Attente)
    exten => TousTels,6,agi(Identifiant.php,${CALLERID(num)})
    exten => TousTels,7,Set(__Identifiant=${Identifiant})
    exten => TousTels,8,System(/usr/bin/sox /var/local/Monitor/Asterisk/Appelant.wav -r 8000 /var/local/Monitor/Asterisk/Appelant.ogg && /bin/chmod +x /var/local/Monitor/Asterisk/Appelant.ogg && /bin/rm /var/local/Monitor/Asterisk/*.wav)
    exten => TousTels,9,DIAL(SIP/SPABureau&SIP/SPASallon&SIP/SPAStudio,40,rG(RecupAppel^Choix^1))
    exten => TousTels,10,GoToIf($["${DIALSTATUS}" == "CHANUNAVAIL"] ?TousTels,13)
    exten => TousTels,11,Voicemail(713@MANU,bs)
    exten => TousTels,12,hangup
    exten => TousTels,13,Voicemail(713@MANU,us)
    exten => TousTels,14,hangup

    J'utilise ce procédé car je suis aveugle et je ne peux pas lire l'écran de mon téléphone.
    J'ai stocké un carnet d'adresse sur une base mysql.
    Lorsque quelqu'un m'appelle, je décroche et j'ai le choix de refuser l'appel ou l'accepter.
    Voici mon autre "fonction"
    [RecupAppel]
    exten => Choix,1,GoTo(RecupAppel,ring,1)
    exten => Choix,2,GoTo(RecupAppel,identity,1)
    exten => identity,1,Wait(1)
    exten => identity,2,PlayBack(${ChmAudio}/AppelQui)
    exten => identity,3,PlayBack(/var/local/Monitor/Asterisk/Appelant)
    exten => identity,4,Background(${ChmAudio}/AppelChoix)
    exten => identity,5,WaitExten(3)
    exten => 1,1,Pickup(ring@RecupAppel)
    exten => 2,1,GoTo(RecupAppel,identity,4)
    exten => t,1,GoTo(${CONTEXT},identity,1)
    exten => ring,1,Dial(LOCAL/null@RecupAppel,20,rg)
    exten => ring,2,GoToIf($["${DIALSTATUS}" == "ANSWER"] ?h,1)
    exten => null,1,Wait(100)

    Puis voici mon script php :
    #!/usr/bin/php
    <?php
    ///REQUIRE("phpagi.php");
    INCLUDE("ConnexionSql.php");
    ///$agi = new AGI();
    $Num = $_SERVER['argv'][1];
    ///$Num= preg_replace("#[^0-9]#","",$agi->request[agi_callerid]);
    IF(STRLEN($Num)>=10):
    $REQSelection = "SELECT CONCAT(prenom,' ',nom) AS Contact FROM $TBLC WHERE TelPort LIKE '%$Num%' OR TelPerso LIKE '%$Num%'";
    $RESSelection = MYSQL_QUERY($REQSelection,$Connexion);
    IF(MYSQL_NUM_ROWS($RESSelection)==1):
    $Identifiant = MYSQL_RESULT($RESSelection,0,"Contact");
    ELSE:
    $Identifiant = UTF8_DECODE(CHUNK_SPLIT($Num,2," ").' non présent dans la base de donnée');
    ENDIF;
    ELSE:
    $Identifiant = UTF8_DECODE(CHUNK_SPLIT($Num,2," ").' non présent dans la base de donnée');
    ENDIF;
    $Identifiant = '/usr/bin/say -w /var/local/Monitor/Asterisk/Appelant.wav "'.$Identifiant.'"';
    ///$agi->set_variable("Identifiant", $Identifiant);
    exec("$Identifiant");
    ?>

    Pour l'instant ça répond à ma demande actuelle mais je cherche quand-même à faire fonctionner l'agi donc si quelqu'un peut m'aider !!!
    J'espère nabil que cela pourra t'aider aussi.

  3. #3
    Membre Junior
    Date d'inscription
    juillet 2012
    Messages
    17
    Downloads
    0
    Uploads
    0
    etann38, merci pour ta compil je vais voir comment je peux me l'adapter mais jusque là je veux faire marcher mon AGI !
    "Votre Atitude determinera votre Altitude dans la vie !"

  4. #4
    Membre
    Date d'inscription
    février 2011
    Localisation
    Saint-Marcellin (Isère)
    Messages
    46
    Downloads
    0
    Uploads
    0
    Oui, je suis d'accord !
    Ma sollution, un peu cascadeuse malgré tout, pourrait tout à fait fonctionner dans ton cas aussi...

    A toi de voir en tout cas !

  5. #5
    Membre
    Date d'inscription
    février 2011
    Localisation
    Saint-Marcellin (Isère)
    Messages
    46
    Downloads
    0
    Uploads
    0

    Cool

    Nabil,
    Après avoir écumer le net pour configurer et installer phpagi : j'ai de bons réusltats :
    Voici mes testes :
    1. On appelle le 100 avec le tel avec le callerid(num)=714
    2. On lance l'agi qui va chercher si en base de donnée le numéro 714 correspond.
    Et on renvoie la valeur : le nom ou le message 714 non présent en base de donnée :
    extensions.conf
    [Test]
    exten => 100,1,agi(test.php,${CALLERID(num)})
    exten => 100,2,Set(__Identifiant=${Identifiant})
    exten => 100,3,noop("C'est un test d'affichage de variable ${Identifiant})

    test.php
    #!/usr/bin/php
    <?php
    REQUIRE("phpagi-2.20/phpagi.php");
    $agi = new AGI();
    $Num = $agi->request[agi_callerid];
    ///requete SQL
    ///resultat
    $Identifiant = $Num;

    $agi->set_variable("Identifiant", $Identifiant);
    ?>

    Adaptes tout ça pour ton cas !
    Vive asterisk !

  6. #6
    Membre Junior
    Date d'inscription
    juillet 2012
    Messages
    17
    Downloads
    0
    Uploads
    0
    etann38, j'ai un gros gros soucis mes script php simples ne s'executent pas sous asterisk 1.8 je ne sais pas pourquoi ! je galère grave ! je voudrais que tu m'explique succintement comment t'a pu faire fonctionner tes scripts à toi ! de la config jusqu'a la mise en oeuvre et l'execution ! Mil merci d'avance .........................
    "Votre Atitude determinera votre Altitude dans la vie !"

  7. #7
    Membre
    Date d'inscription
    février 2011
    Localisation
    Saint-Marcellin (Isère)
    Messages
    46
    Downloads
    0
    Uploads
    0
    Euh, je ne vais pas te détailler l'installation complète d'asterisk ici... Y'a plein de tuto sur le net et ce serait trop long !
    Mais peut-être que tu devrais vérifier si sur ta machine qui execute asterisk le phpcli est bien installé.
    Et vérifer dans ton script php si le chemin d'exécution php est bon...
    Je suis en train de réaliser une documentation pour toute mon installation asterisk, si tu passiente un peut je te l'enverrai !

  8. #8
    Membre Junior
    Date d'inscription
    janvier 2014
    Messages
    2
    Downloads
    0
    Uploads
    0

    script AGI et PHP

    bonjour nabyl vous allez bien.s'il vous plait je travaille sur asterisk et une partie de mon memoire porte sur c que t as realisé sa reste la derniere parti pour finaliser mon memoire j'ai pas des idés est ce que vous pouvez m'envoiyer un tuto pour que je puisse finaliser
    sael@hotmail.fr


    merci

  9. #9
    Membre Junior
    Date d'inscription
    mai 2014
    Messages
    5
    Downloads
    0
    Uploads
    0

    reconnaissance vocale avec asterisk

    Salut etann38 je suis en train de faire de la reconnaissance vocale avec asterisk.je m'explique: quand l'utilisateur appelle le serveur lui demande son besoin et l'utilisateur répond après le serveur traite sa requête et lui transmet la réponse,j'ai crée une base de donnée ou on stocke les informations qu'on doit retourner aux clients.J'attend votre aide

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
  •