Upgrade 3CX to v18 and get it hosted free!

AGI Presentation

Author image

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


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.
Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.