Ponencia de Carlos Cruz y Gorka Gorrotxategi de Irontec en VoIP2DAY: "Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio". Puesta en común de los desafíos y soluciones para el escalado horizontal en soluciones VozIP basadas en Kamailio / Asterisk con especial atención a las nuevas
posibilidades con PJSIP y siempre desde la perspectiva IP PBX!
Curso de introducción a la VoIP y Asterisk de Irontec.com
En esta segunda parte estudiaremos los conceptos básicos de SIP y cómo realizar llamadas con Asterisk utilizando SIP
¿Deseas formación en Voz IP y Asterisk?
http://www.irontec.com/cursos/curso-asterisk-avanzado
Resto del curso:
Parte 1: http://bit.ly/curso-voip-1
Parte 3: http://bit.ly/curso-voip-3
Parte 4: http://bit.ly/curso-voip-4
The new 802.11 security protocol called 802.11w was recently ratified. Check this 802.11w-Tutorial to know how it works and what it means for your WLAN.
Curso de introducción a la VoIP y Asterisk de Irontec.com
En esta segunda parte estudiaremos los conceptos básicos de SIP y cómo realizar llamadas con Asterisk utilizando SIP
¿Deseas formación en Voz IP y Asterisk?
http://www.irontec.com/cursos/curso-asterisk-avanzado
Resto del curso:
Parte 1: http://bit.ly/curso-voip-1
Parte 3: http://bit.ly/curso-voip-3
Parte 4: http://bit.ly/curso-voip-4
The new 802.11 security protocol called 802.11w was recently ratified. Check this 802.11w-Tutorial to know how it works and what it means for your WLAN.
1) Describe the three primary options for enabling inter-VLAN routing.
2) Configure legacy inter-VLAN routing.
3) Configure router-on-a-stick inter-VLAN routing.
4) Troubleshoot common inter-VLAN configuration issues.
5) Troubleshoot common IP addressing issues in an inter-VLAN-routed environment.
6) Configure inter-VLAN routing using Layer 3 switching.
7) Troubleshoot inter-VLAN routing in a Layer 3-switched environment.
Unifying Network Filtering Rules for the Linux Kernel with eBPFNetronome
At the core of fast network packet processing lies the ability to filter packets, or in other words, to apply a set of rules on packets, usually consisting of a pattern to match (L2 to L4 source and destination addresses and ports, protocols, etc.) and corresponding actions (redirect to a given queue, or drop the packet, etc.). Over the years, several filtering frameworks have been added to Linux. While at the lower level, ethtool can be used to configure N-tuple rules on the receive side for the hardware, the upper layers of the stack got equipped with rules for firewalling (Netfilter), traffic shaping (TC), or packet switching (Open vSwitch for example).
In this presentation, Quentin Monnet reviewed the needs for those filtering frameworks and the particularities of each one. Then focuses on the changes brought by eBPF and XDP in this landscape: as BPF programs allow for very flexible processing and can be attached very low in the stack—at the driver level, or even run on the NIC itself—they offer filtering capabilities with no precedent in terms of performance and versatility in the kernel. Lastly, the third part explores potential leads in order to create bridges between the different rule formats and to make it easier for users to build their filtering eBPF programs.
Fortinet UTM - les Fonctionnalités avancéeseAlphorm
Formation complète ici:
http://www.alphorm.com/tutoriel/formation-en-ligne-fortinet-fortigate-utm-nse4-les-fonctionnalites-avancees
Cette formation Fortinet UTM : les Fonctionnalités avancées est la suite de la précédente formation Fortinet Fortigate UTM (NSE4).
Dans cette formation Fortinet UTM, vous allez découvrir les fonctionnalités avancées du pare-feu Fortigate : le routage avancé, le mode transparent, les VDOMs, les certificats, la HA, les outils de diagnostic.
Les chapitres traités au cours de cette formation Fortinet UTM visent à compléter vos connaissances des pare-feu Fortigate UTM et vous permettre de déployer des architectures de sécurité réseau complexes.
La formation Fortinet Fortigate UTM (NSE4) et cette formation Fortinet UTM : les Fonctionnalités avancées vous préparent et vous aident à réussir la certification NSE4 (Network Security Expert).
Curso de introducción a Sphinx, una herramienta para facilitar la generación de documentación. Originalmente pensado para generar documentación en proyectos de Python.
1) Describe the three primary options for enabling inter-VLAN routing.
2) Configure legacy inter-VLAN routing.
3) Configure router-on-a-stick inter-VLAN routing.
4) Troubleshoot common inter-VLAN configuration issues.
5) Troubleshoot common IP addressing issues in an inter-VLAN-routed environment.
6) Configure inter-VLAN routing using Layer 3 switching.
7) Troubleshoot inter-VLAN routing in a Layer 3-switched environment.
Unifying Network Filtering Rules for the Linux Kernel with eBPFNetronome
At the core of fast network packet processing lies the ability to filter packets, or in other words, to apply a set of rules on packets, usually consisting of a pattern to match (L2 to L4 source and destination addresses and ports, protocols, etc.) and corresponding actions (redirect to a given queue, or drop the packet, etc.). Over the years, several filtering frameworks have been added to Linux. While at the lower level, ethtool can be used to configure N-tuple rules on the receive side for the hardware, the upper layers of the stack got equipped with rules for firewalling (Netfilter), traffic shaping (TC), or packet switching (Open vSwitch for example).
In this presentation, Quentin Monnet reviewed the needs for those filtering frameworks and the particularities of each one. Then focuses on the changes brought by eBPF and XDP in this landscape: as BPF programs allow for very flexible processing and can be attached very low in the stack—at the driver level, or even run on the NIC itself—they offer filtering capabilities with no precedent in terms of performance and versatility in the kernel. Lastly, the third part explores potential leads in order to create bridges between the different rule formats and to make it easier for users to build their filtering eBPF programs.
Fortinet UTM - les Fonctionnalités avancéeseAlphorm
Formation complète ici:
http://www.alphorm.com/tutoriel/formation-en-ligne-fortinet-fortigate-utm-nse4-les-fonctionnalites-avancees
Cette formation Fortinet UTM : les Fonctionnalités avancées est la suite de la précédente formation Fortinet Fortigate UTM (NSE4).
Dans cette formation Fortinet UTM, vous allez découvrir les fonctionnalités avancées du pare-feu Fortigate : le routage avancé, le mode transparent, les VDOMs, les certificats, la HA, les outils de diagnostic.
Les chapitres traités au cours de cette formation Fortinet UTM visent à compléter vos connaissances des pare-feu Fortigate UTM et vous permettre de déployer des architectures de sécurité réseau complexes.
La formation Fortinet Fortigate UTM (NSE4) et cette formation Fortinet UTM : les Fonctionnalités avancées vous préparent et vous aident à réussir la certification NSE4 (Network Security Expert).
Curso de introducción a Sphinx, una herramienta para facilitar la generación de documentación. Originalmente pensado para generar documentación en proyectos de Python.
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17Irontec
Así como la electricidad en su época impulsó el desarrollo empresarial de todo tipo, el cloud computing es a día de hoy la energía informática que impulsa el desarrollo de todos los sectores de actividad: coches conectados o autónomos, smart cities o ciudades inteligentes, comercio electrónico, salud conectada, etc.
¿Cuál es el sistema open source de Firewall ganador? Es difícil decidirse... hay muchas buenas opciones. Por eso hemos elaborado esta guía comparativa sobre 2 de nuestros preferidos, IPCop y pfSense, en base a nuestra experiencia en muchos proyectos desde @irontec.
Curso de introducción a la VoIP y Asterisk de Irontec.com
En esta primera parte veremos cómo instalar Asterisk y el lugar ocupa dentro de la VoIP profesional.
¿Deseas formación en Voz IP y Asterisk?
http://www.irontec.com/cursos/curso-asterisk-avanzado
Resto del curso:
Parte 2: http://bit.ly/curso-voip-2
Parte 3: http://bit.ly/curso-voip-3
Parte 4: http://bit.ly/curso-voip-4
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...Irontec
IVOZ es una solución de telefonía IP modular que está basada en un núcleo de comunicaciones Asterisk y se rodea de todos los componentes extra que requieren entornos críticos o de alto rendimiento.
IVOZ Provider es una solución de telefonía IP para operadores, multimarca y multitenant y expuesta a la red pública. Con IVOZ provider opensource queremos llegar a todo tipo de clientes que quieran desplegar sus sistemas de telefonía IP con una solución opensource de calidad, que ha sido testada en grandes proyectos y es capaz de dar servicios a cientos de
miles de llamadas de forma concurrente.
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIPIñaki Baz Castillo
A talk in Madrid SIMO VoIP2Day 2009 about large SIP deployments, SIP SIMPLE and XCAP presence, and SIP in mobile networks. With Saúl Ibarra and Jon Bonilla.
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Irontec
Desde la integración de pequeñas centralitas para clientes muy pequeños hasta el desarrollo y liberación de ivoz Provider, la primera solución opensource de telefonía IP para operadores, pasando implantaciones para gran cuenta. Un recorrido, de la mano de una de las compañía lideres del sector, a través de los retos, problemas, beneficios del software libre en general y de Asterisk en particular, en el que la búsqueda de modelos de negocio que hagan viable el proyecto ha sido siempre una constante.
Presentación utilizada por Irontec durante el workshop comercial de Soluciones de Telefonía IP para operadores basadas en Software Libre. Este documento ilustra la solución ivoz provider de Irontec, orientada a dotar a integradores, operadores, ISPs, hosters, etc de una solución con la que ofrecer telefonía IP en la nube para sus clientes.
Automated Testing para aplicaciones VoIP, WebRTCIrontec
Ponencia de Carlos Cruz, Javier Infante y Gorka Gorrotxategi en el VoIP2Day 2017.
El título de la ponencia es: "Automated Testing para aplicaciones VoIP, WebRTC".
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]RootedCON
Se mostrara como analizar malware altamente ofuscado con tecnicas avanzadas como es la implementacion de una maquina virtual para evitar mostrar el codigo real.
El objetivo es descifrar todos y cada uno de los componentes de este malware obteniendo el codigo original antes de pasar por su VM.
Para ello se ha creado distintas herramientas que facilitan esta tarea, veremos como fueron implementandose.
Por ultimo analizaremos el payload final y las tecnicas que utiliza para realizar sus implantes en distintos procesos del sistema, como es el uso de un sistema de archivos virtual (VFS), utilizado para ocultar los distintos componentes.
Curso de introducción a la VoIP y Asterisk de Irontec.com
En esta tercera parte detallaremos la potencia que el Dialplan (lógica de llamadas) aporta a Asterisk
¿Deseas formación en Voz IP y Asterisk?
http://www.irontec.com/cursos/curso-asterisk-avanzado
Resto del curso
Parte 1: http://bit.ly/curso-voip-1
Parte 2: http://bit.ly/curso-voip-2
Parte 4: http://bit.ly/curso-voip-4
Historia de los buffer overflows por Juan SaccoJuan Sacco
Quiza una de las vulnerabilidades de segurida mas tecnica, aterradora y clasica son los buffer overflows. Esta clase de vulnerabilidad se remonta hasta 1970 y su estatus llega hasta C y Unix. Luego de una decada de existencia, este tipo de vulnerabilidad esta resuelta? En la charla veremos su historia, ejempos y llegaremos hasta el 2013/4.
Similar a Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio (6)
Gestion de proyectos con GitLab en tiempos de teletrabajoIrontec
Presentación de Asier Gezuraga, COO de Irontec, durante la pasada edición de LIBRECON 2020. Un repaso sobre cómo gestionamos los proyectos de desarrollo en Irontec a través de GitLab, hecho que cobra especial relevancia en equipos trabajando en remoto.
Sobre cómo gestionamos centenares de despliegues de VoIPIrontec
Ponencia presentada por Héctor Prieto (Coordinador de Soporte) y Gorka Gorrotxategi (CTO de VoIP) de Irontec durante la edición de 2019 de VOIP2DAY celebrada en Málaga.
Una charla que repasa la dilatada experiencia de Irontec en el ámbito de la VoIP. Una empresa en constante crecimiento y con cientos de despliegues a sus espaldas desde 2006. Se centra fundamentalmente en los aspectos más técnicos, detallando los diferentes retos que hemos ido teniendo que superar. En ella, hablamos de monitorización avanzada específica o de automatismos multi entorno desde el plano de las devOps.
En este sentido y, entre otros desafíos a los que nos hemos enfrentado a lo largo de nuestra trayectoria, explicamos algunas de las decisiones técnicas que hemos tenido que tomar para asegurar un crecimiento importante de plataformas.
La conferencia fue impartida en conjunto por el responsable de soporte de nuestro equipo de comunicaciones, a cargo de un amplio equipo humano especialista en los diferentes componentes VoIP open source, tales como Asterisk, Kamailio, SEMS, IVOZProvider, SNGREP y derivados, acompañado por el responsable técnico del área.
Apuntes para una futura formación sobre "Varnish Cache", ideado para aumentar el rendimiento de las aplicaciones web, también conocido como caché de proxy HTTP inversa.
¿Quieres aprender más? Consúltanos -> info@irontec.com
Curso de VoIP / Parte 04: Conceptos avanzadosIrontec
Curso de introducción a la VoIP y Asterisk de Irontec.com
Última parte del curso donde analizaremos conceptos avanzados de VoIP como sistemas de colas y agentes, informes de llamadas, Asterisk Realtime y mucho más
¿Deseas formación en Voz IP y Asterisk?
http://www.irontec.com/cursos/curso-asterisk-avanzado
Resto del curso:
Parte 2: http://bit.ly/curso-voip-2
Parte 3: http://bit.ly/curso-voip-3
Parte 4: http://bit.ly/curso-voip-4
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraIrontec
@irontec eta @AzkueFundazioa #ieb2013-an egon ziren euskarazko app berriak aurkezten. Hona hemen aurkezpena! / @Irontec y @AzkueFundazioa estuvieron en el #ieb2013 presentando nuevas apps en euskera. Esta es la presentación en la que se apoyaron.
Curso de Sugar CRM que hace un recorrido desde los principios básicos para la correcta implantación de una metodología CRM hasta la descripción de todos los módulos.
Además se incluye un interesante tutorial sobre el módulo de campañas de SugarCRM
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
2. Charla VOIP2DAY 2016
• Objetivos de la presentación
– Puesta en común de los desafíos y soluciones
para el escalado horizontal en soluciones
VozIP basadas en Kamailio / Asterisk.
● Especial atención a las nuevas
posiblidades con PJSIP.
● Siempre hablando desde la perspectiva IP
PBX !
– Dangerous Demos ;)
● Un poco de emoción para empezar este
segundo día del fantástico voip2day 2016!
3. Antes de comenzar ...
• La idea principal es que no sea una
charla comercial ;) Esperamos no
aburriros ;)
• Quizás nos recordéis del VOIP2DAY
2009 ;) La primera charla del Irontec
Engineering Team ;)
– Primicia mundial! MCTL.
– Con la aprobación incluso de IBC!
● No se atrevió a desafiarnos
con una mejor
implementación, como cuenta
la leyenda que no puede
evitarlo ;)
– Production ready XD!
5. Para esta ocasión ….
• IVOZ Provider!
– Exposición previa de nuestro compi Gorka Rodrigo
en el workshop ;)
– En esta charla no nos centraremos en ello, no
pretende ser una exposición de producto, sino una
puesta en común de lo que hemos aprendido.
– Keypoints generales
● Open Source, liberado “ayer”.
● Diseñado con la mente en:
– Crecer horizontalmente.
– Crecer horizontalmente.
– Crecer horizontalmente.
– Integrable en entornos de operador.
● API’s, Provisión y conceptos clave OSS/BSS
– Multi-(marca|empresa|usuario)
10. Entrando en harina: Elasticidad / Crecimiento horizontal• IVOZ Provider!
– Exposición previa de nuestro compi Gorka Rodrigo en el
workshop ;)
– Keypoints generales
● Open Source, GPL
● Diseñado con la mente en:
– Crecer horizontalmente.
– Crecer horizontalmente.
– Crecer horizontalmente.
– Integrable en entornos de operador.
– Multi-(marca|empresa|usuario)
elástic@: Del lat. mod. elasticus, y este del gr. elastósἐλαστός
'maleable' y el lat. - cus ' ico'.ĭ ‒‒
11. Crecimiento con Asterisk y Kamailio
• Escalabilidad
– Antes de nada, lo habitual: ¿De verdad queremos escalar de una forma
diferente a añadir más hierro?
● Mas de un nodo: HA! Discovering, dolores de cabeza con Split Brains, Fencing si o si (STONITH
or DIE!).
● No suele ser mucho “añadir y fin”, como si fuera una chimenea “más madera” ?
– Una vez decidido que queremos si o si escalar:
● Generalmente, se habla de poner un Kamailio por delante y balancear
– Kamailio gestionando Register/Nat/Auth
● Asterisk como IP PBX
● EOF.
12. Entrando en harina: Elasticidad / Crecimiento horizontal• Escalabilidad horizontal
– Generalmente, se habla de poner un Kamailio por delante y
balancear
– Kamailio gestionando Register/Nat/Auth
● Asterisk como IP PBX
● EOF.
13. Proceso habitual de escalado
• Kamailio liberando a Asterisk
– Dispatcher module
● Check AS are alive
● Call load distribution!
– Registrar + usrloc + nathelper
● nat_bflag + sipping_bflag for NAT handling
– Path module
● Outboundproxy for REGISTERs
– Rtpengine / rtpproxy
● Keep audio away from Asterisk!
16. ¿Podemos grabar esto en piedra?
¿Cualquier llamada, a cualquier Asterisk?
¿Verdad verdadera?
17. Kamailio delante de Asterisk en el mundo IP PBX
• Problemáticas esperadas
– Call pickup.
– Presencia (blf ;) )
● Sí,
DEVICE_STAT
US
– ConfBridge
– Refers!
● Sí, transferencias, de todos los
colores ;)
– Queues!
¿Dividimos por
Empresas?
¿Volvemos a
Activo-Pasivo y
fin de la charla? ¿Quitamos
Features,
BOFH mode
ON?
¿De verdad
habíamos dicho
eso?
¿Seguro
que la piedra
No se borra?
18. Any Call to Any Asterisk
• Primer Desafío: Call Pickup
– Llamada a una extensión especial: e.g. *95
– Aplicación pickup en Asterisk:
● pickup(endpoint) Captura directa→
● pickup() Captura indirecta→
– 1 endpoint n pickupGroups↔
¿Qué pasa si la llamada a *95 se gestiona en un AS distinto al
que está procesando la llamada a capturar?
19. Any Call to Any Asterisk
• Primer Desafío: Call Pickup
ds_next_dst() on failure_route (sequential vs parallel)
20. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
– En versiones previas de Asterisk, posibilidades:
● CoroSync + OpenAIS
● XMPP PubSub
– Con PJSIP / Asterisk > 13 la cosa cambia:
● pjsip.conf:
– Para enviar estado:
● Objetos asterisk-publication
● Objetos outbound-publish
– Para recibir estado:
● Objetos inbound-publication
Fuente: https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP
21. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
● Publicar cambios de DEVICE-STATE:
Asterisk enviaría PUBLISH con sus cambios de device-state a 172.16.10.2
● Recibir cambios de DEVICE-STATE:
Los PUBLISH que reciba Asterisk de instance2 con información de estado,
actualizarán los device-state propios.
22. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
– Este ejemplo vale para 2 instancias de Asterisk.
– Que un Asterisk avise al resto no escala:
● El número de Asterisk no es fijo.
● Un Asterisk no sabe si está solo o si hay 100 Asterisk más.
● El tráfico de PUBLISH cargaría Asterisk (¡que tiene que gestionar la
llamada!)
– Solución empleada:
● Cada Asterisk envía a Kamailio los PUBLISH con sus cambios.
● Kamailio reenvía el PUBLISH al resto de AS-es:
– Dispatcher modules rocks!
23. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
24. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
– Kamailio redistribuye (utilizando dispatcher):
– Asterisk actualiza device-state:
25. Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
– Flujo tras reiniciar un AS (o añadir uno nuevo):
– En caso de crash, los device-states vuelve a NOT_INUSE.
26. Any Call to Any Asterisk
• Conclusiones del Segundo desafío:
– No se requiere SW adicional (PJSIP powered!)
– Todos los Asterisk tienen los mismos DEVICE STATE
– Los DEVICE STATE son clave para:
● Hints (BLF)
● Saber si un usuario está ocupado o no
● Colas
– NOTIFY/SUBSCRIBE: cada AS gestiona los que le
lleguen (al igual que los INVITEs, los SUBSCRIBE
también se reparten).
27. Any Call to Any Asterisk
• Tercer desafío: ConfBridge
– Long time ago … Aplicación Asterisk que sustituye a MeetMe
– Múltiples Asterisk: posibles problemas de sincronía
1) El primer participante tiene que generar la conferencia en el AS que le
toque
2) El siguiente participante tiene que entrar en la conferencia creada, ¡no
crear una propia!
3) ¿Y si entran muy muy a la par?
28. Any Call to Any Asterisk
• Tercer desafío: ConfBridge
– Solución 1: Salas de conferencias anidadas
● Crear la conferencia allá donde caiga la llamada
● Anidar los Asterisk por medio de chanlocals (vía Kamailio)
Es técnicamente viable pero…
– ¿Y si quiero echar a alguien de
la conferencia?
– Visualización web realtime
– ¿Voluntarios para mantener esto?
¡¡Tiene que haber una solución más simple!!
29. Any Call to Any Asterisk
• Tercer desafío: ConfBridge
– Solución 2: ¡PJSIP AL RESCATE!
● PJSIP crea automáticamente un
DEVICE STATE por sala de conferencia
● Pero siempre tras meter el PIN.
● La introducción de PIN puede
provocar colisiones.
● Patch para poner en RINGING durante
la petición de PIN
– Liberado en github ;)
30. Any Call to Any Asterisk
• Cuarto desafío: Refers
– REFER es el método SIP clave para las transferencias de llamada.
– 2 tipos de transferencia de llamadas:
Transferencia ciega: in-dialog REFER instando al B2BUA a crear otra llamada y conectar la actual.
31. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Transferencia atendida:
32. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Transferencia atendida:
33. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Dibujemos ...
(vía AS01)
(vía AS02)
#define anycall2anyasterisk
Alice llama a Bob
+Alice llama a Bofh
+Alice les quiere poner en contacto
--------------------------------------------
= 481 Call/Transaction Does Not Exist
¿Todas las llamadas del
mismo usuario,
Mismo AS?
Quita ese
#define!
34. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Solución 1: las llamadas de un usuario a un AS
● Te pones triste porque pierdes escalado pero.. ¿qué le vas a hacer?
● Al menos sigue habiendo un cierto reparto
● Pero…
– A llama a B (AS001)
– A llama a C para transferir (AS001 forzado)
– C tenía otra llamada en curso con D (AS002)
– C inicia otra llamada:
● ¿Uso AS001 por si transfiere a B?
● ¿Uso AS002 por si transfiere a D?
35. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Solución 2: las llamadas de una empresa a un AS
● ¿Asignación estática empresa AS ?↔
– ¿No era esto lo que queríamos evitar? XD
● ¡Asignación dinámica!
– Primera llamada: AS que más libre esté
– Mientras haya en curso: ese mismo AS
– Una vez que cuelgan todos: AS más libre
● Al menos sigue habiendo un cierto reparto :(
● Pero…
– ¿Y si llaman justo a la par?
● Además: ¿podremos mirarnos al espejo? y decirnos:
– Oh yeah, hay crecimiento horizontal.
– Y venir aquí a contar la batallita del escalado.
● Quitamos la feature XFER y fin ?
36. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Solución 3: ¡¡PJSIP REPLACER LOGIC!!
● Cuando Asterisk 13 PJSIP recibe REFER con:
● Y no reconoce el Call-ID de Replaces, permite ejecutar dialplan en un contexto especial:
● Hacemos que este bloque llame al Kamailio que, al saber dónde se gestiona la llamada, lo
manda al AS oportuno.
37. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Charlie llama a 101 (dlg1 as003):→
– Charlie llama a 102 para transferir (dlg2 as002):→
– Sobre dlg1 llega el siguiente REFER:
– as003 no conoce este CallID...
38. Any Call to Any Asterisk
• Cuarto desafío: Refers
– Diálogo adicional entre AS:
39. Any Call to Any Asterisk
• Queues!
– Las colas plantean retos similares.
– En lo que respecta IVOZ Provider:
Todavía no hemos tomado una decisión.
– Posibles enfoques:
● Una cola Un AS (dislike)↔
– ¿shared last call? ¿Weight?
● Todas las colas Un AS (peor)↔
● Todas las colas en todos los AS-es, Any Call to Any Asterisk !!!
– En su momentos nos enfocamos (¿mala idea?)
● Votaciones con Corosync2
● Concepto de “other Asterisk” en queue_ent
● ¿Distributed Stasis Core?
– Se ha comentado que Matt Jordan ya está en ello!
40. Escalado más allá de Asterisk
• Asterisk escala horizontalmente...
– Ya podemos escalar nuestra instalación para trabajar con
múltiples Asterisk.
– Pero… una vez que la llamada está establecida, Asterisk no es
un problema para soportar altos niveles de concurrencia de
llamadas.
● Sí para soportar altos niveles de call-per-seconds ;)
– ¿Quién es el nuevo cuello de botella? Los media-relay que se
encargan de gestionar el audio.
Conclusión: hay que escalar los media-relay también!
41. Escalado más allá de Asterisk
• RTPProxy escala horizontalmente...
– Se puede crear tantos perfiles media-relay como sean necesarios.
– La ubicación de estos elementos tendrá que ser lo más próxima
posible a los usuarios finales:
● Hasta que llegue ICE, ¡hay que minimizar el media-path!
– Actualmente:
● Los media-relays se agrupan en sets.
● La asociación set empresa es manual.↔
– Evolución:
● Asignar ubicación a los sets.
● Asignar los sets en función de la ubicación del llamante (geoIP
Kamailio module).
43. … to be continued
• No nos da tiempo a hablar de todo … No hay que olvidarse
de:
– Topic Information Sharing (AMQP?)
– Containers!
● LXC, ¿Docker?, …
● Network Overlaying?
– Orchestration
● ¿Orchestra Director?
● ¿Launch AS on peak times?
– Asterisk High CPS / Dynamic Flow Strategys
● [A?]GI’s vs Pseudo static Dialplan?
45. Esto que vamos a enseñar
• IVOZ Provider is free! Lo podéis probar vosotr@s mism@s
– Entry point:
● https://github.com/irontec/ivozprovider
– Debian packages disponibles
– ISO disponible
● Single machine quick test.
– Documentación
– SOS / Contribute
● Users Mailing List
● Dev Mailing List
46. Basta de charla !
Ahh
¿Pero había
que enseñarlo?
Bob!
Prepara el
cartonpiedra!
Bob!
Prepara el
cartonpiedra!
¿Seguro que
Queda tiempo?
Mejor acabamos,
Demo en otro momento ...
47. Muchas gracias por vuestra atención!
• Gracias por escucharnos!
– ¿Preguntas?
Irontec
Engineering Team
www.irontec.com
blog.irontec.com
@irontec