VoIP2DAY 2013 · 2013

Las 12 pruebas de Asterisk

Introducción Elio Rojano Sinologic.net @hellc2 http://www.sinologic.net/ Elio Rojano Ruiz Introducción Sinologic.net Asterisk PBX Elio Rojano Ruiz Introducción Asterisk PBX Sinologic.net Asterisk SCF Scalable Communications Framework Astricon - Octubre 2010 Elio…

Presentación sobre Asterisk, VoIP impartida en VoIP2DAY 2013 · 2013.

Asterisk, VoIP 📄 83 páginas ⏱ 7 min de lectura 👁 2 vistas

Este PDF no está enlazado desde ningún artículo publicado.

Página 1 — Las 12 pruebas de Asterisk

Página 1 de 83

Página 2 — Las 12 pruebas de Asterisk

Página 2 de 83

Introducción Elio Rojano Sinologic.net @hellc2 http://www.sinologic.net/ Elio Rojano Ruiz

Página 3 — Las 12 pruebas de Asterisk

Página 3 de 83

Introducción Sinologic.net Asterisk PBX Elio Rojano Ruiz

Página 4 — Las 12 pruebas de Asterisk

Página 4 de 83

Introducción Asterisk PBX Sinologic.net Asterisk SCF Scalable Communications Framework Astricon - Octubre 2010 Elio Rojano Ruiz

Página 5 — Las 12 pruebas de Asterisk

Página 5 de 83

Introducción Asterisk PBX Sinologic.net Asterisk SCF Scalable Communications Framework Septiembre 2012 Elio Rojano Ruiz

Página 6 — Las 12 pruebas de Asterisk

Página 6 de 83

Introducción Sinologic.net Asterisk Framework Elio Rojano Ruiz

Página 7 — Las 12 pruebas de Asterisk

Página 7 de 83

Introducción El software como las ideas cuanto mejores son más se pueden aprovechar Sinologic.net Elio Rojano Ruiz

Página 8 — Las 12 pruebas de Asterisk

Página 8 de 83

Introducción Estables Producción 2007 Inestables Desarrollo Asterisk 1.4 Sinologic.net Asterisk 1.6 2008 2010 Asterisk 1.8 Asterisk 10 2011 2012 Asterisk 11 Asterisk 12 2013 2014 Elio Rojano Ruiz Asterisk 13

Página 9 — Las 12 pruebas de Asterisk

Página 9 de 83

Introducción Vamos a ver algunos cambios en Asterisk para convertirse en un Framework de desarrollo de aplicaciones de voz Sinologic.net Elio Rojano Ruiz

Página 10 — Las 12 pruebas de Asterisk

Página 10 de 83

Flexibilidad

Página 11 — Las 12 pruebas de Asterisk

Página 11 de 83

Flexibilidad + Flexible Sinologic.net + Opciones + Potente + Soluciones Elio Rojano Ruiz

Página 12 — Las 12 pruebas de Asterisk

Página 12 de 83

Flexibilidad PBX Framework VoiceMail(buzón,opciones) VoiceMailMain([buzón]) VoiceMail(buzón,opciones) VoiceMailMain([buzón]) MinivmGreet MinivmRecord MinivmMWI MinivmNotify MinivmAccMess MinivmDelete Sinologic.net Elio Rojano Ruiz

Página 13 — Las 12 pruebas de Asterisk

Página 13 de 83

Flexibilidad ConfBridge Asterisk 1.8 Sinologic.net ConfBridge([confno][,options]) Asterisk 11 ConfBridge(conference[,bridge_profile[,user_profile[,menu]]]) Plantillas de tipos de perfiles de usuarios Elio Rojano Ruiz Plantillas de salas bridges- con distintas opciones Plantillas de menús con distintas opciones

Página 14 — Las 12 pruebas de Asterisk

Página 14 de 83

Flexibilidad Fax Asterisk 1.8 permite: Enviar faxes (SendFax) Recibir faxes (RecieveFax) No puede reenviar Faxes en T.38 - FaxRelay Sinologic.net Recibimos un Fax por T.38 quieres reenviarlo a un ATA donde hay una máquina de Fax.

Asterisk 11 exten=>fax,1,FAXOPT(gateway)=yes exten=>fax,n,Dial(SIP/FaxATA) Elio Rojano Ruiz

Página 15 — Las 12 pruebas de Asterisk

Página 15 de 83

Flexibilidad Número de líneas de código* 2000000 Sinologic.net 1500000 1000000 500000 0 Asterisk 1.8.24 Asterisk 10.12.3 Asterisk 11.6.0 Asterisk 12-beta1 Más información: http://www.sinologic.net/proyectos/voip2day/2013/indice-asterisk Elio Rojano Ruiz

Página 16 — Las 12 pruebas de Asterisk

Página 16 de 83

Multi-tenant

Página 17 — Las 12 pruebas de Asterisk

Página 17 de 83

Multi-Tenant Sinologic.net Multitenancy: Principio de arquitectura de software donde una única instancia de un software sirve a múltiples organizaciones (tenants) Elio Rojano Ruiz

Página 18 — Las 12 pruebas de Asterisk

Página 18 de 83

Multi-Tenant Sinologic.net Elio Rojano Ruiz

Página 19 — Las 12 pruebas de Asterisk

Página 19 de 83

Multi-Tenant $ Sinologic.net Sistema más habitual Elio Rojano Ruiz

Página 20 — Las 12 pruebas de Asterisk

Página 20 de 83

Multi-Tenant Sinologic.net Sistema multi-tenant Elio Rojano Ruiz

Página 21 — Las 12 pruebas de Asterisk

Página 21 de 83

Multi-Tenant ¿Cómo se puede implementar? Sinologic.net ...un poco de código...

Elio Rojano Ruiz

Página 22 — Las 12 pruebas de Asterisk

Página 22 de 83

Multi-Tenant extensions.conf exten=>912345678,1,Goto(empresa1,s,1) exten=>987654321,1,Goto(empresaN,s,1) [empresa1] #include “extensions_empresa1.conf” Sinologic.net [empresaN] #include “extensions_empresaN.conf” exten => s,1,Set(CHANNEL(namedcallgroup)=empresa1) exten => s,n,Playback(empresa1_bienvenida) exten => s,n,Goto(empresa1_IVR,s,1) [empresa1_IVR] exten => s,1,Read(opcion,empresa1_menuyopciones) exten => s,n,Goto(empresa1_IVR,${opcion},1) exten => 1,1,Dial(SIP/empresa1_300) exten => 2,1,Dial(SIP/empresa1_301) exten => 3,1,Queue(empresa1_comercial) exten => 4,1,Queue(empresa1_soporte) [empresa1_outgoing] exten=>_3XX,1,Dial(SIP/empresa1_${EXTEN}) exten=>_[67]XXXXXXXX,1,Macro(llamadaExterna,”empresa1”) exten=>_[67]XXXXXXXX,1,Macro(llamadaExterna,”empresa1”) exten=>*89,1,Answer() exten=>*89,n,VoiceMailMain(empresa1_${CALLERID(name)}@empresa1) Elio Rojano Ruiz

Página 23 — Las 12 pruebas de Asterisk

Página 23 de 83

Multi-Tenant features.conf (Asterisk 1.8, 10, 11) Parkings res_parking.conf (Asterisk 12) [empresa1] context => empresa1_park parkpos => 800-850 findslot => next comebacktoorigin = no comebackdialtime = 90 comebackcontext = empresa1_outgoing parkedmusicclass = empresa1_moh Usuarios / Extensiones sip.conf [default](!) type=friend secret=c82j34r9c82j398c9jh9438cj host=dynamic label=cuenta nat=force_rport context=none Sinologic.net Comando: Park(empresa1[,options]) [empresa1](!,default) context=empresa1_outgoing namedcallgroup=empresa1 namedpickupgroup=empresa1 [empresa1_ext300](empresa1) callerid=300 <300> secret=rcn2398rjc92834jc92 … [empresa1_ext399](empresa1) callerid=399 <399> secret=icj984j92834jc928984c … Elio Rojano Ruiz

Página 24 — Las 12 pruebas de Asterisk

Página 24 de 83

Multi-Tenant extensions.conf [empresa1_default] exten => s,1,Set(CHANNEL(namedcallgroup)=empresa1) exten => s,n,Playback(empresa1_bienvenida) exten => s,n,Goto(empresa1_IVR,s,1) Sinologic.net [empresa1_IVR] exten => s,1,Read(opcion,empresa1_menuyopciones) exten => s,n,Goto(empresa1_IVR,${opcion},1) exten => 1,1,Dial(SIP/empresa1_300) exten => 2,1,Dial(SIP/empresa1_301) exten => 3,1,Queue(empresa1_comercial) exten => 4,1,Queue(empresa1_soporte) Elio Rojano Ruiz

Página 25 — Las 12 pruebas de Asterisk

Página 25 de 83

Códecs

Página 26 — Las 12 pruebas de Asterisk

Página 26 de 83

Nuevos Códecs Asterisk 1.8 soporta a: Alaw / G.711a / PCMA Ulaw / G.711u / PCMU G.729a iLBC Speex

G.722

G.726

GSM

LPC10

SLIN

Sinologic.net Elio Rojano Ruiz

Página 27 — Las 12 pruebas de Asterisk

Página 27 de 83

Nuevos Códecs G.722 marcó un hito en la calidad de sonido Sinologic.net Desde entonces, todos los terminales soportan G.722 Elio Rojano Ruiz

Página 28 — Las 12 pruebas de Asterisk

Página 28 de 83

Nuevos Códecs Códecs Asterisk 10 Alaw / G.711a / PCMA Ulaw / G.711u / PCMU G.729a iLBC Speex 8/16/32

G.722

G.726

GSM

LPC10

SLIN 8/12/16/24/32/44/48/96/192

CELT 32/44/48

SILK 8/12/16/24

Sinologic.net Códecs HD Elio Rojano Ruiz

Página 29 — Las 12 pruebas de Asterisk

Página 29 de 83

Nuevos Códecs 3 de Marzo de 2009: Skype libera SILK Sinologic.net

OPUS

11 septiembre 2012: Xiph (creadora de Speex y CELT) utiliza SILK y saca a la luz:

“El códec definitivo” http://www.sinologic.net/blog/2012-09/ha-nacido-un-nuevo-codec-opus.html Elio Rojano Ruiz

Página 30 — Las 12 pruebas de Asterisk

Página 30 de 83

Nuevos Códecs

OPUS

Sinologic.net Elio Rojano Ruiz

Página 31 — Las 12 pruebas de Asterisk

Página 31 de 83

Nuevos Códecs Asterisk 11 soporta a: Alaw / G.711a / PCMA Ulaw / G.711u / PCMU G.729a iLBC Speex

G.722

G.726

GSM

LPC10

SLIN 8/12/16/24/32/44/48/96/192

CELT

SILK

OPUS

Sinologic.net Elio Rojano Ruiz

Página 32 — Las 12 pruebas de Asterisk

Página 32 de 83

Nuevos Códecs OPUS es el códec que todos hemos deseado tener:

- Calidad igual o superior al de MP3 Sinologic.net - Ancho de banda igual o menor que el G.729 - Calidad auto-ajustable al ancho de banda - Estándar de otras tecnologías: WebRTC - Consumo de procesador fantástico - Es realmente un códec libre Elio Rojano Ruiz

Página 33 — Las 12 pruebas de Asterisk

Página 33 de 83

Nuevos Códecs

OPUS

Asterisk 11 soporta Opus y VP8 a través de un parche Sinologic.net https://github.com/meetecho/asterisk-opus Asterisk 12 soporta Opus y VP8 nativamente passthrough (por ahora) http://lists.digium.com/pipermail/asterisk-dev/2013-May/060421.html Elio Rojano Ruiz

Página 34 — Las 12 pruebas de Asterisk

Página 34 de 83

Nuevos Códecs Asterisk 12 soporta a: Alaw / G.711a / PCMA Ulaw / G.711u / PCMU G.729a iLBC Sinologic.net

G.722

G.726

GSM

LPC10

SLIN 8/12/16/24/32/44/48/96/192

OPUS

Elio Rojano Ruiz

Página 35 — Las 12 pruebas de Asterisk

Página 35 de 83

Bases de datos

Página 36 — Las 12 pruebas de Asterisk

Página 36 de 83

Bases de datos Bases de datos para almacenar la configuración.

Bases de datos para almacenar las llamadas CDR/CEL.

Bases de datos para almacenar el dialplan.

Bases de datos para almacenar el ASTDB. Sinologic.net PostgreSQL

ODBC

SQLite3 TDS

LDAP

Elio Rojano Ruiz

Página 37 — Las 12 pruebas de Asterisk

Página 37 de 83

Bases de datos AstDB = SQLite3 Sinologic.net # sqlite3 /var/lib/asterisk/astdb.sqlite3 SQLite version 3.7.13 2012-06-11 02:05:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables astdb sqlite> select * from astdb; /SIP/Registry/erojano|90.126.122.53:54468:3600:erojano:sip:erojano@192.168.0.1:1024 /SIP/Registry/ratienza|90.126.122.53:54468:3600:ratienza:sip:ratienza@192.168.0.2:1024 /dundi/secret|LeQyTgBhJzpYUtUZgDL+Iw==;HhDfflzf+gPSLgpstOZTaQ== /dundi/secretexpiry|1383599365 Elio Rojano Ruiz

Página 38 — Las 12 pruebas de Asterisk

Página 38 de 83

Bases de datos Cada base de datos soportado es un módulo diferente con su propio soporte.

Sinologic.net ODBC Postgre MySQL

SQL LDAP

TDS Asterisk Elio Rojano Ruiz AstDB SQLite

Página 39 — Las 12 pruebas de Asterisk

Página 39 de 83

Bases de datos Asterisk 12 Sorcery Sinologic.net Sorcery Data Access ODBC Postgre AstDB SQLite MySQL Abstraction TDS Layer

SQL LDAP

Asterisk Elio Rojano Ruiz

Página 40 — Las 12 pruebas de Asterisk

Página 40 de 83

Bases de datos Las capas de abstracción tendrán mucha importancia a partir de ahora.

Sinologic.net Elio Rojano Ruiz

Página 41 — Las 12 pruebas de Asterisk

Página 41 de 83

Mejorar la gestión del NAT

Página 42 — Las 12 pruebas de Asterisk

Página 42 de 83

NAT Sinologic.net NAT es un problema Elio Rojano Ruiz

Página 43 — Las 12 pruebas de Asterisk

Página 43 de 83

NAT Sinologic.net IAX2 no es una solución al NAT Mapear puertos tampoco Usar DMZ menos aún Elio Rojano Ruiz

Página 44 — Las 12 pruebas de Asterisk

Página 44 de 83

NAT Existen soluciones y Asterisk ya lo soporta Sinologic.net ICE Interactive Connectivity Establishment protocol Más información: http://www.slideshare.net/saghul/ice-4414037 Elio Rojano Ruiz

Página 45 — Las 12 pruebas de Asterisk

Página 45 de 83

NAT ICE es un protocolo para descubrir detrás de qué tipo de NAT estamos.

Si hay alguna forma de establecer una comunicación, ICE la encontrará.

Sinologic.net Se apoya de servidores STUN Si no es posible transmitir audio, entonces utilizamos TURN para reenviar el audio Elio Rojano Ruiz

Página 46 — Las 12 pruebas de Asterisk

Página 46 de 83

NAT Lo tiene que soportar también el cliente (softphones / teléfonos IP) Lista de servidores STUN disponibles: https://gist.github.com/hellc2/7290201 Sinologic.net sip.conf [general] icesupport = yes stunaddr=servidor.stun.org rtp.conf [general] icesupport = yes stunaddr=servidor.stun.org turnaddr=servidor.turn.org turnusername=USUARIO turnpassword=PASSWORD Elio Rojano Ruiz

Página 47 — Las 12 pruebas de Asterisk

Página 47 de 83

WebRTC

Página 48 — Las 12 pruebas de Asterisk

Página 48 de 83

WebRTC A estas alturas ya debes saber qué es WebRTC Sinologic.net Requisitos básicos Asterisk:

Soporte de WebSocket Soporte de OPUS Soporte de VP8 Soporte de ICE Soporte de SRTP Elio Rojano Ruiz

Página 49 — Las 12 pruebas de Asterisk

Página 49 de 83

WebRTC ¿Entonces podremos utilizar WebRTC en Asterisk?

SI Sinologic.net http.conf [general] enabled=yes bindaddr=0.0.0.0 bindport=8088 prefix=asterisk Configurando el soporte de WebSocket ;; Puerto donde escuchará el Websocket ;; http://SERVIDOR:8088/asterisk/ws [webrtc_user1] type=friend Configurando cuentas SIP con los requisitos WebRTC host=dynamic context=webrtc secret=user1@webrtcpass1 transport=ws,wss ;; Activamos el soporte WebSocket y WebSocketSecure encryption=yes ;; Activamos el soporte SRTP avpf=yes ;; Tipo de Stream con el que vamos a trabajar nat=force_rport ;; Compatibilidad con Asterisk 11 disabled=all allow=opus,vp8 sip.conf Elio Rojano Ruiz

Página 50 — Las 12 pruebas de Asterisk

Página 50 de 83

WebRTC Sinologic.net https://github.com/versatica/JsSIP Elio Rojano Ruiz

Este PDF tiene 83 páginas. Se muestran las primeras 50.

Regístrate para descargar el PDF completo