1 1 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2.

1 1 1 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Go...
Author: Andrés Agüero Espinoza
0 downloads 3 Views

1 1 1 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2

2 2 2 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 ¿ Que es Asterisk ? ● Asterisk es software. Exclusivamente software. ● Es software Open Source en su totalidad, liberado bajo licencia GPL. (Existen otras versiones...). ● Desarrollado inicialmente por Mark Spencer, quien fundó la empresa Digium, con soporte oficial para Asterisk. ● Soporta todas las funcionalidades de las centralitas tradicionales/IP y muchas más !!!. Presentación de Asterisk

3 3 3 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk es software ● Se ejecuta en sistemas estándar: estaciones de trabajo, servidores.... ● Se ejecuta en las arquitecturas: x86, x86_64, PowerPC. ● Los sistemas operativos soportados son: Gnu/Linux, *BSD y Apple Mac OSX. ● Es software libre: libertad de uso, libertad de estudio y adaptación, libertad de copia, libertad de mejorarlo y publicar las mejoras. Presentación de Asterisk

4 4 4 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Historia de Asterisk ● El proyecto Asterisk comenzó en 1999 cuando Mark Spencer decidió implementar su propia centralita porque no podía comprar una. ● Viendo el éxito de Asterisk, fundó Linux Support Services a finales del mismo año. ● Linux Support Services se convierte en DIGIUM en 2002. ● Actualmente, cerca de 300 desarrolladores participan en el desarrollo de los diferentes módulos. Presentación de Asterisk

5 5 5 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades generales ● Asterisk es capaz de trabajar con prácticamente todos los estándares de telefonía tradicional: – Lineas analógicas – Lineas digitales: E1, T1, accesos básicos. ● Soporta casi todos los protocolos de VozIP: – SIP – IAX/IAX2 – MGCP – Cisco Skinny –... Funcionalidades de Asterisk

6 6 6 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Esquema Conceptual Funcionalidades de Asterisk

7 7 7 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades tipo centralita clásica ● Algunas de las funcionalidades tipo centralita más comunes: · Transferencia Ciega· Música en espera · Timbres Distin. · Pickup de llamadas· Llamada en espera · Conferencias · Buzón de Voz· Colas de llamadas · Colas con Prioridad · Caller ID en espera·[...] Funcionalidades de Asterisk

8 8 8 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades tipo centralita avanzada ● IVR: Interactive Voice Response, recepción y gestión de llamadas con menús interactivos. ● Buzón de Voz: Mensajes de Voz enviados por E-Mail, avisos por SMS,... ● Configuración en base de datos: Extensiones, usuarios, etc... pueden ser almacenados en BBDD (MySQL, MS SQL, ODBC *...). Es posible gestionar la BBDD desde intranets/extranets, etc... Funcionalidades de Asterisk

9 9 9 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades Voz IP ● Soporte de todos los protocolos estándar: – SIP (Session Initiation Protocol). – H.323 – MGCP (Media Gateway Control Protocol). – IAX2 (Inter-Asterisk eXchange). – SCCP (Cisco Skinny). ● Soporta 'bridging' entre tecnologías distintas. ● Soporta transcodificación. Funcionalidades de Asterisk

10 10 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades Voz IP ● Soporte de todos los codecs estándar: – ADPCM – G.711, G.723.1, G.726, G.729A/B (Con licencia). – GSM – ILBC – LineaR – LPC-10 – Speex Funcionalidades de Asterisk

11 11 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades Avanzadas ● AGI: Asterisk Gateway Interface Funcionalidades de Asterisk

12 12 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Funcionalidades Avanzadas ● AMI: Asterisk Management Interface ● Ejemplo de utilización de AMI: Flash Operator Panel (Nicolás Gudiño) Funcionalidades de Asterisk

13 13 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk puede ser integrado de varias formas ● Como centralita tradicional / centralita IP. ● Como pasarela transparente hacia VozIP en sistemas en producción actuales. ● Como sistema donde residen las aplicaciones complementarias de un ITSP (basado en SER por ejemplo) tipo buzón de voz,... ● Como plataforma para servicios telefónicos avanzados: gestión de incidencias, soporte, pedidos,.... Integración de Asterisk

14 14 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk como PBX (Centralita) / IP PBX Integración de Asterisk

15 15 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk como pasarela transparente hacia Voz IP ● La telefonía es un servicio crítico, un reemplazo masivo no siempre es bienvenido ni recomendable. En muchos casos, las empresas han renovado sus centralitas recientemente. ● Asterisk puede integrarse como pasarela transparente hacia la tecnología VozIP sin necesidad de modificar o actuar en la infraestructura telefónica ya desplegada y en producción. Integración de Asterisk

16 16 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk como pasarela transparente hacia Voz IP ● El esquema para la arquitectura de integración como pasarela hacia VozIP es el siguiente: Integración de Asterisk

17 17 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk como servidor de plataformas de telefonía Integración de Asterisk

18 18 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Problemas nativos de la Voz IP ● Asterisk sufre, al igual que el resto de soluciones, de los problemas de la Voz IP: – Latencia – Jitter – Ancho de banda ● Algunos se pueden solucionar en cierta medida: – Cambio dinámico de proveedor en base a su latencia. – IAX2 Trunking para ahorrar cierto ancho de banda en los enlaces inter-asterisk. Principales problemas de Asterisk

19 19 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Problemas de configuración (Complejidad) ● Asterisk se configura normalmente como ficheros de texto, la sintaxis puede ser ligeramente 'obtusa'. ● Existen bastantes gestores e interfaces de usuario para configurarlo, pero no están del todo depurados para ser integrados conjuntamente. Principales problemas de Asterisk

20 20 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Problemas de compatibilidad ● El mundo de las telecomunicaciones es en muchas ocasiones un mundo muy cerrado. ● Es posible configurar el compartamiento de Asterisk para que soporte casi cualquier configuración estandar, sin embargo, obtener los datos del operador muchas veces no es tarea fácil. ● Se mezclan dos mundos: – Telecomunicaciones (Estándares RDSI,...). – Sistemas (Configuracion Servidor: BBDD, Raid,...). Principales problemas de Asterisk

21 21 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Nociones Importantes ● La inversión inicial para ir probando y conociendo Asterisk puede ser nula: – Instalamos Asterisk en un equipo ya existente. – Utilizamos tecnología VozIP sobre la red ya existente. – Utilizamos softphones SIP libres / gratuitos. – Existen ITSP tipo VoipBuster, etc... que ofrecen llamadas gratuitas con SIP. – Existen Redes tipo FreeWorldDial UP que soportan SIP / IAX2... ¿Como empezamos?

22 22 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Varias Formas de Probar ● Utilizar una distribución específica de Asterisk que auto-instala GNU/Linux, Asterisk, etc... y provee de un interfaz de configuración vía web: – TrixBox – Asterisk Now ● Instalar Asterisk desde fuentes y configurarlo poco a poco. ¿Como empezamos?

23 23 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Utilizar una distribución específica ● Ideal para gente novata en el mundo de GNU/Linux. ● Es la forma más rápida de comenzar con Asterisk o de probar algun terminal, softphone... ● Sin embargo, en el caso de querer especificar la configuración, se hace más dificil. ● Asterisk Now! basada en Asterisk 1.4 puede ser una buena opción. ¿Como empezamos?

24 24 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk 1.4 + IVR en AEL2

25 25 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Asterisk 1.4 ● Soporte de fax T.38 en modo passtrough. ● Nueva definición de peers, users y friends, el fichero users.conf ● Reconocimiento de voz con motor externo (también ha sido backporteado a 1.2) ● Jitterbuffer general ● SRTP y SIP sobre TLS en camino ● Integración con Jabber/Jingle ● Mejor soporte de video (H.264) ● Interfaz web Asterisk-GUI ● AEL2

26 26 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 El Dialplan: El corazón de Asterisk ● Aunque Asterisk esté completamente configurado nunca funcionará sin un Dialplan. ● El Dialplan es una tabla de enrutado de llamadas. ● Se define mediante extensiones que se agrupan en contextos.

27 27 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Ejemplo de Dialplan básico [contexto1] exten => 200,1,Dial(SIP/saghul,30) exten => 200,n,Noop(El Dial ha fallado)

28 28 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Más Dialplan ● Hay ciertas extensiones que vienen en el sistema, y nos resultarán útiles a la hora de generar el IVR: – s: Extensión start. – i: Extensión inválida – t: Timeout relativo – T: Timeout absoluto

29 29 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Estructura de un IVR ● Antes de diseñar un IVR, es conveniente pensar en un diagrama de fujo, por donde va a encaminarse la llamada entrante: – Se comprueba la hora del sistema – Dependiendo de la hora, se presenta un mensaje de bienvenida para el horario de oficina y las opciones que tiene el usuario. – Si pulsa 1, su llamada será enviada a la cola del departamento comercial. – Si pulsa 2 su llamada será enviada a la cola del departamento de I+D – Si pulsa un número de extensión, sonará dicha extensión

30 30 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Estructura de un IVR (2) – Si se equivoca su llamada será automáticamente desviada a la operadora – Si se consume el timeout, se desviará la llamada a la operadora

31 31 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 IVR con Dialplan tradicional [ivr] exten => s,1,GotoIfTime(00:00-13:30|mon-fri|*|*?s,dentro) exten => s,n,GotoIfTime(16:05-19:00|mon-fri|*|*?s,dentro) ;;fuera de horario exten => s,n,Playback(fuera-de-horario) exten => s,n,Voicemail(200|u) exten => s,n,Hangup ;;dentro del horario exten => s,n(dentro),Set(TIMEOUT(digit)=3) exten => s,n,Set(TIMEOUT(response)=9) exten => s,n,Answer exten => s,n,Background(dentro-de-horario) exten => s,n,WaitExten(2) exten => s,n(cola),Queue(operadora|t) exten => s,n,Hangup

32 32 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 IVR con Dialplan tradicional (2) exten => i,1,Goto(s,cola) exten => t,1,Goto(s,1) exten => 1,1,Queue(comercial|t) exten => 1,n,Hangup exten => 2,1,Queue(imasd|t) exten => 2,n,Hangup exten => _2XX,1,Goto(internas,${EXTEN},1) [internas] exten => 1234,1,Goto(ivr,s,1) exten => _2XX,1,NoOP(Esto seria una llamada a la extension ${EXTEN}) exten => _2xx,n,Hangup

33 33 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Tradicional vs AEL2 ● El modo tradicional de configurar Asterisk es bastante complicado: Goto, etc. ● AEL2 se asemeja a los lengiajes tradicionales de programación. ● Dispone de herramientas que el tradicional no: while, for, case, etc. ● Mucho más claro de entender, no hay prioridades. ● De momento solo es un parser, internamente Asterisk lo maneja como si fuera la estructura tradicional.

34 34 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Sobre AEL2 ● Se puede utilizar la utilidad aelparse para parsear el fichero extensions.ael. ● AEL utiliza un módulo diferente para cargar las extensiones: pbx_ael ● Con aelparse podemos “convertir “ un fichero AEL2 en uno gtradicional, tal y como Asterisk lo interpretará.

35 35 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Sintaxis básica de AEL2 context contexto1 { 200 => { Dial(SIP/saghul,30); Noop(Ha fallado el Dial); }; }

36 36 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Sintaxis avanzada: IVR en AEL2 context ivr { s => { NoOp(Como mola AEL2); ifTime(00:00-13:00|mon-fri|*|*) { jump dentro_horario; } else { ifTime(15:00-19:00|mon-fri|*|*) { jump dentro_horario; } else { jump fuera_horario; } };

37 37 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Sintaxis avanzada: IVR en AEL2 (2) dentro_horario => { Set(TIMEOUT(digit)=3); Set(TIMEOUT(response)=9); Answer; Wait(1); Background(dentro-de-horario); WaitExten(2); Queue(operadora|t); Hangup; }; fuera_horario => { Playback(fuera-de-horario); Voicemail(200|u); Hangup; };

38 38 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Sintaxis avanzada: IVR en AEL2 (3) 1 => { Queue(comercial|t); Hangup; }; 2 => { Queue(imasd|t); Hangup; }; _2XX => jump ${EXTEN}@internas; }

39 39 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 DEMO

40 40 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Biografía ● Asterisk, The Future Of Telephony. Jim Van Meggelen, Jared Smith, Leif Madsen. O'Reilly ● Switching to VoIP. Theodore Wallingford. O'Reilly Sitios web ● www.voip-info.org Referencias

41 41 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Agradecimientos * Gracias por su atención.

42 42 Saúl Ibarra Gorka Gorrotxategi Saúl Ibarra Gorka Gorrotxategi Introducción Asterisk – IVR en AEL2 Licencia Copyright © 2006 - Eside-Ghost ● Detalles de la licencia – http://creativecommons.org/licenses/by/2.5/es/deed.es