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 Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Bonjour, sans savoir programmer en php j'ai pu effectuer ce type de demande avec les exemples sur la page de wiki http://www.voip-info.org/wiki/view/Asterisk+AGI+php

    Ils sont simples et lisibles.

  2. #2
    Membre Junior
    Date d'inscription
    juillet 2012
    Messages
    17
    Downloads
    0
    Uploads
    0
    Puis je voir des exemples de tes scripts, je voudrais avoir un truc qui marche et puis l'adapter à mon cas !
    "Votre Atitude determinera votre Altitude dans la vie !"

  3. #3
    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 !"

  4. #4
    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.

  5. #5
    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 !"

  6. #6
    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 !

  7. #7
    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 !

  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
  •