php asterisk y fastagi

php asterisk y fastagi

Posted Noviembre 27th, 2009 by julito

Saludos.

Me gustaria programar algunos scripts en php para acceder e interactuar con asterisk, el caso es que leyendo sobre el tema, he llegado al punto en que creo que me hace falta instalar y configurar FastAgi para que un server externo con PHP aloje el script e interactue con asterisk; según he leido aqui (gracias pll)

http://www.asterisk-peru.org/node/1361

El caso es que me gustaria algo tan simple como esto desde un servidor con php que interactue con asterisk

<?php

$socket = fsockopen("192.168.0.53","5038", $errno, $errstr, $timeout);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: admin\r\n");
fputs($socket, "Secret: blabla\r\n\r\n");

fputs($socket, "Action: Command\r\n");
fputs($socket, "Command: reload\r\n\r\n");
$wrets=fgets($socket,128);

?>

pero al no tener FastAgi configurado siempre me tira un unable to connect a dicha ip y puerto de asterisk.

Alguien me hecha una mano configurando fastagi¿? es eso lo que me falta¿?¿

Muchas gracias y Estupenda comunidad!!!

Hummm Qué versión de

Hummm Qué versión de Asterisk estas usando? con la versión 1.4 no deberías tener problemas en base al comentario anterir que hice, pues con eso en manager.conf si podrías acceder a Asterisk vía AMI desde un equipo remoto.

Si estas usando Asterisk 1.6 entonces necesitarías editar los permisos en manager.conf algo como lo siguiente:

[admin]
secret = amp111
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
permit=192.168.1.0/255.255.255.0
read = system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,log,verbose,command,agent,user,config,command,reporting,originate

Espero sirva de algo, saludos.
--
Daría todo lo que sé, por la mitad de lo que ignoro..
httP://phylevn.binniza.com

Posted by phylevn on Lun, 2009-11-30 20:17
php asterisk y fastagi

Saludos phylevn muchisimas gracias por responder, te comento que accedo por telnet perfectamente desde el servidor que aloja el .php hasta el servidor que aloja a asterisk,

El caso es que el script me da error de socket.. y no se porque cuando por telnet entro perfectamente por el mismo puerto, creo que se me escapa algo... quizas me falla la base: estoy suponiendo que puedo interactuar con asterisk desde un server externo con apache y php que aloja el script, es esto cierto?? funciona asi?? me queda algo mas por configurar que el manager.conf?? por lo que leo por ahi:

http://www.voip.unam.mx/mediawiki/index.php/Ejemplo_de_AGI_PHP_para_Asterisk

http://www.kaffeineminds.com/blog/telefonia/tutorial-de-asterisk-creacion-de-scripts-agi-parte-1/

se alojan en el propio servidor de asterisk y se invocan mediante una extension

creo que estoy un poco hecho un lio... me podeis echar una mano??

Posted by julito on Sáb, 2009-11-28 20:10
Requieres configurar Asterisk

Primero requieres editar el archivo /etc/asterisk/manager.conf

Ahí podrías ver algo como esto:

[asterisk]
secret = blablabla
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

y debajo de permit deberias poner la IP de tú máquina, para que el asterisk manager permita acceso a la máquina remota, como ves arriba solo permite accesos locales es decir del mismo servidor.

Ya que lo hayas hecho puedes probar la conexión desde telnet

telnet ip_asterisk puerto_asterisk

action: login
username: asterisk
secret: blabla
events: off

action: command
command: show channels

si todo va bien deberías ver los canales en línea de asterisk, ahora si ya puedes programar usando un AGI o AMI.

Espero sirva de algo, saludos.

--
Daría todo lo que sé, por la mitad de lo que ignoro..
httP://phylevn.binniza.com

Posted by phylevn on Sáb, 2009-11-28 11:29
alguna otra idea

Muchas gracias ya todo OK!!!

Posted by julito on Lun, 2009-11-30 15:54