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.
- Como ejecutamos un AGI
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:
- Php
- Pascal
- C
- Perl
- Phyton
- 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 -q
<?php
set_time_limit(30);
require('include/phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
$a = 10 + 15;
$agi->say_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/php5
<?php
set_time_limit(30);
require('include/phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
do
{
$id_opcion = $agi->get_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
- Preguntas??????????
Asterisk AGI
Gracias
www.aiatek.com.do