Si alguien puede ayudarme estaría agradecida. Estoy iniciando en lo que es Asterisk, AGI, y bueno con AGI no me está yendo muy bien, no encuentro muchos tutoriales en la web....
Tengo mi servidor que está sobre linux, tengo instalado Elastix 2.4
He hecho bastantes pruebas con agi, he creado mis archivos .php pero nada...
Si solo hago un playback "hola mundo" si funciona:
vi /etc/asterisk/extensions_custom.conf
exten => 2504,1,Answer
exten => 2504,2,Playback(hello-world)
Pero cuando intento llamar a mi archivo .php no funciona, la llamada se corta
vi /etc/asterisk/extensions_custom.conf
exten => 2504,1,Goto(prueba,2504,1)
[prueba]
exten => 2504,1,AGI(ping.php)
PING.PHP este código es de la sgte pag web: http://phpagi.sourceforge.net/phpagi...69e8d5d5e.html
#!/usr/local/bin/php -q
<?php
/**
* @package phpAGI_examples
* @version 2.0
*/
set_time_limit(0);
require('phpagi.php');
$agi = new AGI();
$agi->answer();
// Play the "Enter the host you wish to ping, followed by the pound sign" prompt
// and then play the beep.
$agi->stream_file('ping');
$result = $agi->get_data('beep', 3000, 20);
$ip = str_replace('*', '.', $result['result']);
/* Danger Will Robinson! This does NOT properly escape the ping command!
* Someone could subvert your system if you don't fix this! - NO WARRANTY :P */
$execstr = "/bin/ping -c 5 -q -w 9 $ip|grep transmitted";
// be polite.
$agi->stream_file('thanks', '#');
$p = popen($execstr, 'r');
if($p == FALSE)
{
$agi->text2wav("Failed to ping $ip");
$agi->conlog("Failed to ping $execstr");
}
else
{
$str = '';
while(!feof($p))
{
$r = fgets($p, 1024);
if(!$r) break;
$str .= $r;
}
// a minor hack.
$str = str_replace('ms', 'milli-seconds', $str);
// have festival read back the ping results.
$agi->text2wav("$ip - $str");
}
$agi->hangup();
?>
El debug lanza esto:
Verbosity is at least 3
-- Remote UNIX connection
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [2504@from-internal:1] Goto("SIP/2500-00000000", "prueba,2504,1") in new stack
-- Goto (prueba,2504,1)
-- Executing [2504@prueba:1] AGI("SIP/2500-00000000", "ping.php") in new stack
-- Auto fallthrough, channel 'SIP/2500-00000000' status is 'UNKNOWN'
Me falta algo? estoy haciendo algo mal? He intentado con otros códigos mucho mas simples pero nada...
Gracias.
Tengo mi servidor que está sobre linux, tengo instalado Elastix 2.4
He hecho bastantes pruebas con agi, he creado mis archivos .php pero nada...
Si solo hago un playback "hola mundo" si funciona:
vi /etc/asterisk/extensions_custom.conf
exten => 2504,1,Answer
exten => 2504,2,Playback(hello-world)
Pero cuando intento llamar a mi archivo .php no funciona, la llamada se corta
vi /etc/asterisk/extensions_custom.conf
exten => 2504,1,Goto(prueba,2504,1)
[prueba]
exten => 2504,1,AGI(ping.php)
PING.PHP este código es de la sgte pag web: http://phpagi.sourceforge.net/phpagi...69e8d5d5e.html
#!/usr/local/bin/php -q
<?php
/**
* @package phpAGI_examples
* @version 2.0
*/
set_time_limit(0);
require('phpagi.php');
$agi = new AGI();
$agi->answer();
// Play the "Enter the host you wish to ping, followed by the pound sign" prompt
// and then play the beep.
$agi->stream_file('ping');
$result = $agi->get_data('beep', 3000, 20);
$ip = str_replace('*', '.', $result['result']);
/* Danger Will Robinson! This does NOT properly escape the ping command!
* Someone could subvert your system if you don't fix this! - NO WARRANTY :P */
$execstr = "/bin/ping -c 5 -q -w 9 $ip|grep transmitted";
// be polite.
$agi->stream_file('thanks', '#');
$p = popen($execstr, 'r');
if($p == FALSE)
{
$agi->text2wav("Failed to ping $ip");
$agi->conlog("Failed to ping $execstr");
}
else
{
$str = '';
while(!feof($p))
{
$r = fgets($p, 1024);
if(!$r) break;
$str .= $r;
}
// a minor hack.
$str = str_replace('ms', 'milli-seconds', $str);
// have festival read back the ping results.
$agi->text2wav("$ip - $str");
}
$agi->hangup();
?>
El debug lanza esto:
Verbosity is at least 3
-- Remote UNIX connection
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [2504@from-internal:1] Goto("SIP/2500-00000000", "prueba,2504,1") in new stack
-- Goto (prueba,2504,1)
-- Executing [2504@prueba:1] AGI("SIP/2500-00000000", "ping.php") in new stack
-- Auto fallthrough, channel 'SIP/2500-00000000' status is 'UNKNOWN'
Me falta algo? estoy haciendo algo mal? He intentado con otros códigos mucho mas simples pero nada...
Gracias.
Comentario