Hola amigos estoy intentando pasar una variable de un agi a mysql parece funcionar bien internamente pero cuando recivo una llamada externa este guarda siempre el mismo valor en la base de datos pero en el SAY DIGITS si pronuncia el valor correcto a parte de que estoy obteniedo el sig resultado al ejecutar
[Jun 24 13:00:02] ERROR[12339]: utils.c:1130 ast_carefulwrite: write() returned error: Broken pipe
-- <SIP/XX.XX.XX.XX:XXXX-00000715>AGI Script dncl.agi completed, returning 0
el agi mencionado es el sig que lo saque de un ejemplo para obtener las variables agi y unas modificaciones mi asterisk es 1.6
#!/usr/bin/php
<?php
session_start ();
while(!feof(STDIN)){
$agivar = trim(fgets(STDIN));
if($agivar === ''){
break;
}
$agivar=explode(':', $agivar);
$agivars[$agivar[0]]=trim($agivar[1]);
}
extract($agivars);
$_SESSION['NUMBER']=$agi_callerid;
include('savedncl.php');
fwrite(STDOUT, "SAY DIGITS ".$_SESSION['NUMBER']." '1#'\n");
fflush($stdout);
?>
el problema de pasar la variable es en el include savedncl.php pasando la varieble en $_SESSION['NUMBER'] que seria el callerid lo que necesito guardar, si se ejecuta el agi desde una extencion interna guarda el valor correcto pero cuando se ejecuta desde un canal inbound guarda el mismo valor para todas las llamadas en algun momento de la edicion funciono perfectamente
php para guardar la variable
<?php
$num=$_SESSION['NUMBER'];
$conexion=mysql_connect("localhost","asterisk","XX XXXXXX");
mysql_select_db("asterisk",$conexion);
mysql_query("insert into dncl (NUM) values ('$num')",$conexion);
?>
[Jun 24 13:00:02] ERROR[12339]: utils.c:1130 ast_carefulwrite: write() returned error: Broken pipe
-- <SIP/XX.XX.XX.XX:XXXX-00000715>AGI Script dncl.agi completed, returning 0
el agi mencionado es el sig que lo saque de un ejemplo para obtener las variables agi y unas modificaciones mi asterisk es 1.6
#!/usr/bin/php
<?php
session_start ();
while(!feof(STDIN)){
$agivar = trim(fgets(STDIN));
if($agivar === ''){
break;
}
$agivar=explode(':', $agivar);
$agivars[$agivar[0]]=trim($agivar[1]);
}
extract($agivars);
$_SESSION['NUMBER']=$agi_callerid;
include('savedncl.php');
fwrite(STDOUT, "SAY DIGITS ".$_SESSION['NUMBER']." '1#'\n");
fflush($stdout);
?>
el problema de pasar la variable es en el include savedncl.php pasando la varieble en $_SESSION['NUMBER'] que seria el callerid lo que necesito guardar, si se ejecuta el agi desde una extencion interna guarda el valor correcto pero cuando se ejecuta desde un canal inbound guarda el mismo valor para todas las llamadas en algun momento de la edicion funciono perfectamente
php para guardar la variable
<?php
$num=$_SESSION['NUMBER'];
$conexion=mysql_connect("localhost","asterisk","XX XXXXXX");
mysql_select_db("asterisk",$conexion);
mysql_query("insert into dncl (NUM) values ('$num')",$conexion);
?>
Comentario