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.

  • 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
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
Created by: ageraldo, Last modification: Fri 05 of Nov, 2010 (23:52 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+