Saturday, November 6, 2010

AGI Presentation

Asterisk AGI
Las interacciones con los sistemás telefónicos es cada vez más exigente.
  Queremos hacer encuestas, pagos, consultar balances, calificaciones, reservaciones de vuelo, etc. Asterisk por si solo no hace toda estas cosas, por lo que debemos interconectarnos con recursos externos para lograrlo.
Por esta razón fue creada una interfase que permite a Asterisk comunicarse con programas externos, esta interfase es AGI. AGI quiere decir Asterisk Gateway Interfase, y con este podemos enviarle parámetros desde Asterisk a un programa externo, ejecutar dicho programa y luego regresar a Asterisk e incluso recibir el resultado de dicho programa.
Exten => 2020,1,AGI(miagi.agi,parm1,parm2,parmN)
Exten => 2020,2,”siguiente tarea”

Los AGI pueden ser programados en diversos lenguajes entre ellos tenemos:
FastAGI: este nos permite ejecutar programás a través de la red.
Sintaxis para ejecutar un programa a través de la red.
exten => 300,1, AGI(agi://IP:PUERTO/miagi.agi)

Ejemplo:


exten => 300,1,AGI(agi://192.168.2.1:1048/miagi.agi)
Asterisk AGI

Phpagi es una clase en php para programar AGI’s, esta contiene métodos y variables que nos facilitan la programación de AGI’s.
Phpagi puede ser descargada desde su pagina oficial. http://phpagi.sourceforge.net/

ejemplo1.php: #!/usr/bin/php -qsay_number($a);?>

in extenions.conf


exten => 3000,1,AGI(ejemplo1.php)

#!/usr/bin/php –q: definimos que php sera el lenguaje interprete de nuestro programa. set_time_limit(30): define el tiempo máximo de ejecución del AGI. require('include/phpagi.php'): incluimos la clase phpagi a nuestro programa. error_reporting(E_ALL): le decimos a php que nos reporte todos los errores. $agi = new AGI(): creamos una instancia de nuestra clase phpagi. $a = 10 + 15: sumamos 10 + 15 y le asignamos el resultado a la variable $a. $agi->say_digits($a): ejecutamos el metodo say_digits de nuestra clase agi y le pasamos como parametro la variable $a.
ejemplo2.php: #!/usr/bin/php5get_data('call-quality-menu'); $id = $id_opcion['result']; } while ($id >5); mysql_connect(localhost,root,root); mysql_select_db('sistema'); $sql = "insert into encuestas values ('1','¿Cual es tu equipo favorito ?',' 0=Aguilas, 1=Licey, 2=Escogido, 3=Toros, 4=Gigantes, 5=Estrellas,',$id,'::1','2009-11-20')"; mysql_query($sql); mysql_close();?>
Asterisk AGI
Asterisk AGI

No comments:

Post a Comment