Download - Asterix: simplemente
@bitsensevoip
www.bitsense.com.ar
www.bitsense.com.ar/blog
Martín Ariel D'Onofriohttp://capacitacion.bitsense.com.ar/es/cursos/seminarios-gratuitos/asterisk-
simplemente/asterisk-simplemente-remoto-11-07-13/
¿Que es Asterisk?
Framework de desarrollo para construir aplicaciones de comunicación.
¿Que soporta de forma nativa?
Protocolos
● Google Talk
● H.323
● IAX™ (Inter-Asterisk eXchange)
● Jingle/XMPP
● SCCP (Cisco® Skinny®)
● SIP (Session Initiation Protocol)
● UNIStim (Nortel)
Protocolos tradicionales● MFC-R2
● E&M Wink
● Feature Group D
● FXS
● FXO
● GR-303
● Loopstart
● Groundstart
● Kewlstart
● MF and DTMF support
● Robbed-bit Signaling (RBS) Types
● E&M
Call Features
●Blind/Supervised Transfer
●Conference Bridging
●Supervised Transfer
●Do Not Disturb
●Text-to-Speech (via Festival)
●Three-way Calling
●Interactive Voice Response (IVR)
●Text To Speech
●Voicemail
Y mas, muchoo mas..
CORECORE
Fo
rmato
Arch
ivos
Fo
rmato
Arch
ivos
ChannelsChannels
Co
dec T
ranslatio
nC
od
ec Tran
slation
AplicacionesAplicaciones
Conferencia, Voicemail, dial, etc
IAX2, SIP, DAHDI, etc
WA
V, M
P3
, SL
IN,G
SM
, e
tc.
GS
M, G
71
1 (u
,a), G
72
9,
etc
Arquitectura
Usos cotidianos
● IP PBX
● Voip Gateway
● Voicemail Server
● CallCenter
● IVR server
Internet
PSTN
ITSPITSP
No requiere hardware adicional.Teléfonos IP.Uso del cableado Ethernet convencional.Acceso a la PSTN vía ITSP.
IP PBX
Voip Gateway
ITSPITSP
Internet
PSTN
Voicemail Server
SIP
E1
PSTNE1 SIP
CallCenter
IVR SERVER
PSTN
HA
¿Que nos propone el Framework?
¿Que herramientas nos provee?
✔ Manager✔ Agi/FastAgi✔ Codigo fuente!
¿Que es el manager? (AMI)
AMI: Asterisk manager interface
En pocas palabras,
Nos permite manejar Asterisk desde una aplicación externa.
Ejemplo:
Damos de alta un usuario
manager.conf
[usuario]secret = passwordread = system,call,log,verbose,command,config,read,write,user,dialplan,originatewrite = system,call,log,verbose,command,config,read,write,user,dialplan,originate
Asterisk-java lib.Compone de un conjunto de clases Java que permiten crear fácilmente
aplicaciones Java que interactúan con un servidor PBX Asterisk.
http://www.asterisk-java.org/
Arquitectura del manager.→ Enviamos comandos
← Recibimos eventos/respuestas
- Usa el puerto 5028 de TCP
- Todo se transmite en texto plano. Pensado para poder ser parseado.
Soporte TLS/SSL
Discador
Asterisk gateway interface (AGI)
Permite programar aplicaciones en lenguajes que no sean nativos de Asterisk.
ActiveX, java, Pascal/ObjectPascal,Perl, PHP, Python, Ruby, C, .NET.
Es usado comúnmente para programar rutinas complejas.
Básicamente consiste en un script invocado desde el dialplan al cual pueden pasarse parámetros.
DialPlan (extensions.conf)
[testAgi]
exten => 900,1,AGI(script-expedientes.agi, ${NROEXP}, ${SECTOR})
exten => 900,n,Hangup()
- ¿Y si quiero que mas de un Asterisk ejecute ese script?, lo puedo ejecutar centralizadamente?
Si
- ¿Como?
FastAGI
Un Fast AGI nos permite ejecutar un proceso que se queda escuchando en un puerto y realiza alguna tarea en particular.
Podemos pasarle argumentos, usando el formato HTTP.!
Veamos un ejemplo!
Programa java corriendo como proceso, implementa un FastAGI
public class Encuestar extends BaseAgiScript {
private static final Logger log = Logger.getLogger(Encuestar.class);
@Override
public void service(AgiRequest arg0, AgiChannel arg1){
…....
//Consulto expediente en Base de datos.
}
DialPlan (extensions.conf)
[testFastAgi]
exten => 900,1,AGI(agi://localhost/core.Expediente?nroExpediente=${NROEXP})
exten => 900,n,Hangup()
Código Fuente● GPL v2.
✔ Usar el software.✔ Copiar y distribuir copias fieles o modificadas de programas
compilados o en código fuente✔ Refiriendo al original
✔ Si esta compilado, dejando disponible el código fuente
Hasta acá llegamos.
¿Preguntas?