Tengo desarrollada una aplicación con un tcp server Socket escuchando un puerto especifico, mi lema es el siguiente.
Desarrolle un codigo en PHP que se conecta al server socket y envia una linea de respuesta. Mi intencion es que cuando ingrese una llamada a mi conmutador asterisk, este ejecute una AGI escrita en PHP abra un socket al puerto especificado y envie el numero de extencion entrante y demas cosas que necesito.
mi codigo PHP es el siguiente:
#!/usr/bin/php -q
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
echo "socket_create() Fallo: Razon->: " . socket_strerror($socket) . "\n";
}
//IP de mi server socket escuchando el puerto 999
$result = socket_connect($socket, '192.168.53.77', '999');
if ($result < 0) {
echo "socket_connect() Fallo .\nRazon: ($result) " . socket_strerror($result) . "\n";
}
$in = "Ejemplo de texto desde php";
socket_write($socket, $in, strlen($in));
socket_close($socket);
?>
en mi plan de marcacion tengo lo siguiente para hacer pruebas:
exten => 111,1,AGI(socket.php)
el error es este:
AGI Rx << Extension '/var/lib/asterisk/agi-bin/socket.php' not present.
AGI Tx >> 510 Invalid or unknown command
-- AGI Script socket.php completed, returning 0
== Auto fallthrough, channel 'SIP/103-000004b9' status is 'UNKNOWN'
Asterisk*CLI>
En linux ejecuto esto:
root@Asterisk:/var/lib/asterisk/agi-bin# php socket.php
PHP Warning: socket_connect(): unable to connect [111]: Connection refused in /
var/lib/asterisk/agi-bin/socket.php on line 14
PHP Warning: socket_write(): unable to write to socket [32]: Broken pipe in /va
r/lib/asterisk/agi-bin/socket.php on line 21
root@Asterisk:/var/lib/asterisk/agi-bin#
También hice pruebas con ejemplos AGI's escritos en PHP y no me los ejecuta. Temo que sea algo de mi Asterisk que no he configurado.
Ya des-habilite mi firewall con: sudo ufw disable
abrí el puerto con: sudo ufw allow 999
Algún rumbo que pueda tomar?
se me acaban las opciones.
Desarrolle un codigo en PHP que se conecta al server socket y envia una linea de respuesta. Mi intencion es que cuando ingrese una llamada a mi conmutador asterisk, este ejecute una AGI escrita en PHP abra un socket al puerto especificado y envie el numero de extencion entrante y demas cosas que necesito.
mi codigo PHP es el siguiente:
#!/usr/bin/php -q
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
echo "socket_create() Fallo: Razon->: " . socket_strerror($socket) . "\n";
}
//IP de mi server socket escuchando el puerto 999
$result = socket_connect($socket, '192.168.53.77', '999');
if ($result < 0) {
echo "socket_connect() Fallo .\nRazon: ($result) " . socket_strerror($result) . "\n";
}
$in = "Ejemplo de texto desde php";
socket_write($socket, $in, strlen($in));
socket_close($socket);
?>
en mi plan de marcacion tengo lo siguiente para hacer pruebas:
exten => 111,1,AGI(socket.php)
el error es este:
AGI Rx << Extension '/var/lib/asterisk/agi-bin/socket.php' not present.
AGI Tx >> 510 Invalid or unknown command
-- AGI Script socket.php completed, returning 0
== Auto fallthrough, channel 'SIP/103-000004b9' status is 'UNKNOWN'
Asterisk*CLI>
En linux ejecuto esto:
root@Asterisk:/var/lib/asterisk/agi-bin# php socket.php
PHP Warning: socket_connect(): unable to connect [111]: Connection refused in /
var/lib/asterisk/agi-bin/socket.php on line 14
PHP Warning: socket_write(): unable to write to socket [32]: Broken pipe in /va
r/lib/asterisk/agi-bin/socket.php on line 21
root@Asterisk:/var/lib/asterisk/agi-bin#
También hice pruebas con ejemplos AGI's escritos en PHP y no me los ejecuta. Temo que sea algo de mi Asterisk que no he configurado.
Ya des-habilite mi firewall con: sudo ufw disable
abrí el puerto con: sudo ufw allow 999
Algún rumbo que pueda tomar?
se me acaban las opciones.
Comentario