Académique Documents
Professionnel Documents
Culture Documents
IRONTEC - http://www.irontec.com
1
Gorka Gorrotxategi David Santamara
ndice
ndice de Contenidos
2
Gorka Gorrotxategi David Santamara
AGI, EAGI (audio), FastAGI (remoto), DeadAGI. Los scripts AGI pueden ser escritos en cualquier lenguaje. (Perl, Python, PHP, C, ... )
3
Gorka Gorrotxategi David Santamara
Asterisk AGI Module STDIN/STDOUT Database AGI Script WWW Coffee Maker
4
Gorka Gorrotxategi David Santamara
6
Gorka Gorrotxategi David Santamara
Paso de parmetros
.. . ex te n= > 12 34, n, S ET Nu m= 1 ; ex te n= > 12 34, n,a gi (ag i. php |$ {NU M} | ${ CA LLE RI D} ) .. .
Variables dadas por el entorno Asterisk Definidas por nosotros mismos 7 ... Gorka Gorrotxategi David Santamara
Comandos en AGI
answer channelstatus databasedel databasedeltree databaseget databaseput exec getdata getfullvariable getvariable getoption hangup noop receivechar receivetext recordfile sayalpha saydigits saynumber Answerchannel Returnsstatusoftheconnectedchannel Removesdatabasekey/value Removesdatabasekeytree/value Getsdatabasevalue Adds/updatesdatabasevalue ExecutesagivenApplication PromptsforDTMFonachannel Evaluatesachannelexpression Getsachannelvariable Streamfile,promptforDTMF,withtimeout Hangupthecurrentchannel Doesnothing Receivesonecharacterfromchannelssupportingit Receivestextfromchannelssupportingit Recordstoagivenfile Saysagivencharacterstring Saysagivendigittring Saysagivennumber
Comandos en AGI
sayphonetic saydate saytime saydatetime sendimage sendtext setautohangup setcallerid setcontext setextension setmusic setpriority setvariable streamfiles controlstreamfile tddmode verbose waitfordigit
Saysagivencharacterstringwithphonetics Saysagivendate Saysagiventime Saysagiventimeasspecfiedbytheformatgiven Sendsimagestochannelssupportingit Sendstexttochannelssupportingit Autohangupchannelinsometime Setscalleridforthecurrentchannel Setschannelcontext Changeschannelextension Enable/DisableMusiconholdgenerator Setchanneldialplanpriority Setsachannelvariable endsaudiofileonchannel Sendsaudiofileonchannelandallowsthelistnertocontrolthestream TogglesTDDmode(forthedeaf) Logsamessagetotheasteriskverboselog Waitsforadigittobepressed
9
Gorka Gorrotxategi David Santamara
Dialplan ( extensions.conf ) :
.. . ex te n= > 12 34, n, a gi( ej emp lo .ph p) .. .
10
Gorka Gorrotxategi David Santamara
Cabeceras:
As te ris k en va a ls cr ipt u na ser ie de ca be cer as : [a gi _r equ es t] => ej em1 .p hp [a gi _c han ne l] => SI P/i ro nus er [a gi _l ang ua ge] => e n [a gi _c all er id] => " iro nu ser " <50 0> [a gi _d nid ] => 500 [a gi _r dni s] => un kn own [a gi _c ont ex t] => in ter na l [a gi _e xte ns ion ]= > 500 [a gi _p rio ri ty] => 1
11
Gorka Gorrotxategi David Santamara
PHPAGI
Para qu?
Se encarga de las cabeceras Posee la mayora de los comandos AGI Posee wrappers para las funciones text2wave => festival Nota: Instalar festival en castellano.
apt ge ti ns tal lf es tiv al f est vo x ka ll pc 16k
12
Gorka Gorrotxategi David Santamara
Instalacin
NO TA (P ar a ser vid or es si nX ): wg et ht tp :// do wn loa ds. so urc ef org e. net /p hpa gi /p hpa gi 2. 14. wg et ht tp :// do wn loa ds. so urc ef org e. net /p hpa gi / ph pa gi ex am ple s2 .1 4.t gz
13
Gorka Gorrotxategi David Santamara
Instalacin
Dar permisos:
cd p hpa gi 2 .14 ch mo da +x * .ph p
14
Gorka Gorrotxategi David Santamara
PHPAGI
Un ejemplo sencillo.
$agi>answer();
15
Gorka Gorrotxategi David Santamara
PHPAGI
Un ejemplo sencillo.
script (ejemplo.php) :
#!/usr/bin/php5 <?php require('phpagi2.14/phpagi.php') $agi=newAGI(); $agi>answer(); $agi>playback("HelloWorld"); $agi>hangup(); ?>
16
Gorka Gorrotxategi David Santamara
PHPAGI
Como funciona?.
Cuando un mtodo es invocado el resultado se guarda en un array de variables. Depende del mtodo a veces el resultado esta en la posicin indicada por 'result' o por 'key'.
17
Gorka Gorrotxategi David Santamara
El asterisk Manager Interface es un servidor TCP, capaz de comunicarse con Asterisk, haciendo posible que aplicaciones remotas enven comandos a Asterisk
Mana ge r.c on f [adm in ] secr et = te st read =s yst em ,ca ll, lo g,v er bos e, co mma nd ,ag en t,u ser, co nfi g writ e= sys te m,c all ,l og, ve rbo se ,c omm an d,a ge nt, user ,c onf ig
18
Configurar en phpagi.conf
[a sm an age r] se rv er =lo ca lho st po rt =5 038 us er na me= na me se cr et =pa ss
Y en nuestro script:
$a sm = $a gi >n ew_ As ter is kMa na ger () ; $p ee r =$ as m> com ma nd( "s ip sh ow pe er $p ee r") ; $a sm > dis co nne ct( );
19
Gorka Gorrotxategi David Santamara
Consejos
Consejos: No hay que hacer todo con AGI, el dialplan sigue estando ah :)
Referencias
Bibliografa
Asterisk, The Future of Telephony. Jim Van Meggelen, Jared Smith & Leif Madsen O' Reilly
Sitios Web
21
Gorka Gorrotxategi David Santamara
Licencia