Asterix: simplemente...

26
@bitsensevoip www.bitsense.com.ar www.bitsense.com.ar/blog Martín Ariel D'Onofrio http://capacitacion.bitsense.com.ar/es/cursos/ seminarios-gratuitos/asterisk-simplemente/asterisk-

description

 

Transcript of Asterix: simplemente...

Page 1: 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/

Page 2: Asterix: simplemente...

¿Que es Asterisk?

Framework de desarrollo para construir aplicaciones de comunicación.

Page 3: Asterix: simplemente...

¿Que soporta de forma nativa?

Page 4: Asterix: simplemente...

Protocolos

● Google Talk

● H.323

● IAX™ (Inter-Asterisk eXchange)

● Jingle/XMPP

● SCCP (Cisco® Skinny®)

● SIP (Session Initiation Protocol)

● UNIStim (Nortel)

Page 5: Asterix: simplemente...

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

Page 6: Asterix: simplemente...

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..

Page 7: Asterix: simplemente...

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

Page 8: Asterix: simplemente...

Usos cotidianos

● IP PBX

● Voip Gateway

● Voicemail Server

● CallCenter

● IVR server

Page 9: Asterix: simplemente...

Internet

PSTN

ITSPITSP

No requiere hardware adicional.Teléfonos IP.Uso del cableado Ethernet convencional.Acceso a la PSTN vía ITSP.

IP PBX

Page 10: Asterix: simplemente...

Voip Gateway

ITSPITSP

Internet

PSTN

Page 11: Asterix: simplemente...

Voicemail Server

SIP

E1

Page 12: Asterix: simplemente...

PSTNE1 SIP

CallCenter

Page 13: Asterix: simplemente...

IVR SERVER

PSTN

HA

Page 14: Asterix: simplemente...

¿Que nos propone el Framework?

¿Que herramientas nos provee?

Page 15: Asterix: simplemente...

✔ Manager✔ Agi/FastAgi✔ Codigo fuente!

Page 16: Asterix: simplemente...

¿Que es el manager? (AMI)

AMI: Asterisk manager interface

En pocas palabras,

Nos permite manejar Asterisk desde una aplicación externa.

Page 17: Asterix: simplemente...

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

Page 18: Asterix: simplemente...

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/

Page 19: Asterix: simplemente...

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

Page 20: Asterix: simplemente...

Discador

Page 21: Asterix: simplemente...

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.

Page 22: Asterix: simplemente...

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?

Page 23: Asterix: simplemente...

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!

Page 24: Asterix: simplemente...

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()

Page 25: Asterix: simplemente...

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

Page 26: Asterix: simplemente...

Hasta acá llegamos.

¿Preguntas?