D'acord c'est gentil
D'acord c'est gentil
Bonjour etan38,
j'ai en fait essayé d'effectuer à la lettre votre solution car je suis sur un projet c'est à peu près le meme principe. J'ai adapaté votre script test.php à mes besoins mais si je l'execute j'ai pas la réponse qu'il faut. Pourrais tu m'apporter un eclaircissement la dessus.
Merci d'avance.
Bonjour, Il va falloir m'en dire un peu plus...
1. Est-ce que le dialplan fonctionne ?
2. Est-ce que le script PHP est sans erreur ?
3. Peux-tu le lancer avec la commande php nomdufichier.php?
4. Que renvoie ton php ?
5. Que renvois la cli asterisk ?
oui le dialplan fonctionne à mon avis, pour ce qui est de l'execution du script php je sais pas trop comment le faire mais quand j'appelle le 100 c'est ça que ça m'affiche :
Executing [100@gerer:1] AGI("SIP/102-00000003", "test.php,102>") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/test.php
-- <SIP/102-00000003>AGI Script test.php completed, returning 0
-- Executing [100@gerer:2] Set("SIP/102-00000003", "__Identfiant=") in new stack
-- Executing [100@gerer:3] NoOp("SIP/102-00000003", ""C'est un test d'affichage variable ") in new stack
-- Auto fallthrough, channel 'SIP/102-00000003' status is 'UNKNOWN'
je voudrais en fait que quand j'appel le 100 avec le callerid 401 il verifie dans la base de données si le numéro 401 existe si oui le 100 répond sinon il raccroche
Si ton php te renvoie bien une valeur dans ta variable, changes le script php :
si le numéro existe dans la base de donnée
alors je renvoie 1
Sinon je renvoie 0
Ensuite tu utilises la variable php que tu mets dans ton dialplan et tu fais une condition dans le dialplan
Si variable = 1, j'appelle le numéro xxxx
Sinon je raccroche.
D'accorrd, mais sur ton script j'ai vu $Connexion d'ou est ce qu'il vient et ça permet quoi au fait
#!/usr/bin/php
<?php
REQUIRE("phpagi.php");
///inclusion du framework de phpagi
INCLUDE("ConnexionSql.php");
///inclusion de mes infos sql
$agi = new AGI();
///création d'un nouvel objet agi
$Num = $_SERVER['argv'][1];
///Récupération de la valeur de ma première variable passée en paramètre
///$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;
$agi->set_variable("Identifiant", $Identifiant);
///Renvoi du résultat à la variable identifiant de mon dialplan
?>
$Connexion correspond à la chaine de connexion mysql dan sale fichier slqconnexion.php