SlideShare una empresa de Scribd logo
Escalabilidad “horizontal” en soluciones VoIP basadas en
Asterisk / Kamailio.
Carlos Cruz
Gorka Gorrotxategi
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!
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!
• En aquellos tiempos ...
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)
IVOZ Provider
• Perspectiva de niveles
• Arquitectura General
IVOZ Provider
Componentes genrales
IVOZ Provider: Soft Tech’s usadas
RTPENGINE
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'.ĭ ‒‒
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.
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.
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!
Espera un instante...
No tan rápido!
Esto significa ...
¿Simplemente más
Soft-Hard Asterisk
boxes
y c'est fini ?
¿Podemos grabar esto en piedra?
¿Cualquier llamada, a cualquier Asterisk?
¿Verdad verdadera?
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?
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?
Any Call to Any Asterisk
• Primer Desafío: Call Pickup
ds_next_dst() on failure_route (sequential vs parallel)
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
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.
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!
Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
Any Call to Any Asterisk
• Segundo desafío: Distributed Device State
– Kamailio redistribuye (utilizando dispatcher):
– Asterisk actualiza device-state:
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.
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).
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?
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!!
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 ;)
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.
Any Call to Any Asterisk
• Cuarto desafío: Refers
– Transferencia atendida:
Any Call to Any Asterisk
• Cuarto desafío: Refers
– Transferencia atendida:
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!
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?
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 ?
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.
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...
Any Call to Any Asterisk
• Cuarto desafío: Refers
– Diálogo adicional entre AS:
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!
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!
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).
Escalado geográfico
SIP
RTP
… 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?
Probando IVOZ Provider !• AnyCall2AnyAsterisk: Queues
– xx
DEMO TIME!
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
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 ...
Muchas gracias por vuestra atención!
• Gracias por escucharnos!
– ¿Preguntas?
Irontec
Engineering Team
www.irontec.com
blog.irontec.com
@irontec

Más contenido relacionado

La actualidad más candente

Chapter 16 : inter-vlan routing
Chapter 16 : inter-vlan routingChapter 16 : inter-vlan routing
Chapter 16 : inter-vlan routing
teknetir
 
CCNAv5 - S2: Chapter3 Vlans
CCNAv5 - S2: Chapter3 VlansCCNAv5 - S2: Chapter3 Vlans
CCNAv5 - S2: Chapter3 Vlans
Vuz Dở Hơi
 
Negociacion de codecs en asterisk
Negociacion de codecs en asteriskNegociacion de codecs en asterisk
Negociacion de codecs en asterisk
PaloSanto Solutions
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Netronome
 
200 301-ccna
200 301-ccna200 301-ccna
200 301-ccna
Jasser Kouki
 
Layer 2 switching
Layer 2 switchingLayer 2 switching
Layer 2 switching
NetProtocol Xpert
 
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast DeploymentAdvanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
Arrive Technologies, Inc.
 
How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505
IT Tech
 
Protocoles SSL/TLS
Protocoles SSL/TLSProtocoles SSL/TLS
Protocoles SSL/TLS
Thomas Moegli
 
Fortinet UTM - les Fonctionnalités avancéese
Fortinet UTM - les Fonctionnalités avancéeseFortinet UTM - les Fonctionnalités avancéese
Fortinet UTM - les Fonctionnalités avancéese
Alphorm
 
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
Salem Trabelsi
 
Etherchannel
EtherchannelEtherchannel
Etherchannel
Raj sekar
 
HSRP ccna
HSRP ccna HSRP ccna
HSRP ccna
MohamedJafar5
 
EtherChannel PAgP and LACP modes
EtherChannel PAgP and LACP modesEtherChannel PAgP and LACP modes
EtherChannel PAgP and LACP modes
NetProtocol Xpert
 
CCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
CCNAv5 - S2: Chapter2 Basic Switching Concepts and ConfigurationCCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
CCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
Vuz Dở Hơi
 
CCNAv5 - S3: Chapter3 Link Aggregation
CCNAv5 - S3: Chapter3 Link AggregationCCNAv5 - S3: Chapter3 Link Aggregation
CCNAv5 - S3: Chapter3 Link Aggregation
Vuz Dở Hơi
 
Chapitre 6 - couche transport
Chapitre 6  - couche transportChapitre 6  - couche transport
Chapitre 6 - couche transport
Tarik Zakaria Benmerar
 
EVPN Introduction
EVPN IntroductionEVPN Introduction

La actualidad más candente (20)

Chapter 16 : inter-vlan routing
Chapter 16 : inter-vlan routingChapter 16 : inter-vlan routing
Chapter 16 : inter-vlan routing
 
CCNAv5 - S2: Chapter3 Vlans
CCNAv5 - S2: Chapter3 VlansCCNAv5 - S2: Chapter3 Vlans
CCNAv5 - S2: Chapter3 Vlans
 
Negociacion de codecs en asterisk
Negociacion de codecs en asteriskNegociacion de codecs en asterisk
Negociacion de codecs en asterisk
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPF
 
200 301-ccna
200 301-ccna200 301-ccna
200 301-ccna
 
Layer 2 switching
Layer 2 switchingLayer 2 switching
Layer 2 switching
 
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast DeploymentAdvanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
 
How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505
 
Protocoles SSL/TLS
Protocoles SSL/TLSProtocoles SSL/TLS
Protocoles SSL/TLS
 
Fortinet UTM - les Fonctionnalités avancéese
Fortinet UTM - les Fonctionnalités avancéeseFortinet UTM - les Fonctionnalités avancéese
Fortinet UTM - les Fonctionnalités avancéese
 
Subnetting table
Subnetting tableSubnetting table
Subnetting table
 
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
 
lab1
lab1lab1
lab1
 
Etherchannel
EtherchannelEtherchannel
Etherchannel
 
HSRP ccna
HSRP ccna HSRP ccna
HSRP ccna
 
EtherChannel PAgP and LACP modes
EtherChannel PAgP and LACP modesEtherChannel PAgP and LACP modes
EtherChannel PAgP and LACP modes
 
CCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
CCNAv5 - S2: Chapter2 Basic Switching Concepts and ConfigurationCCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
CCNAv5 - S2: Chapter2 Basic Switching Concepts and Configuration
 
CCNAv5 - S3: Chapter3 Link Aggregation
CCNAv5 - S3: Chapter3 Link AggregationCCNAv5 - S3: Chapter3 Link Aggregation
CCNAv5 - S3: Chapter3 Link Aggregation
 
Chapitre 6 - couche transport
Chapitre 6  - couche transportChapitre 6  - couche transport
Chapitre 6 - couche transport
 
EVPN Introduction
EVPN IntroductionEVPN Introduction
EVPN Introduction
 

Destacado

voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
Iñaki Baz Castillo
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | Irontec
Irontec
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
Irontec
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSense
Irontec
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
Irontec
 
Arquitecturas de operador de Cloud PBX
Arquitecturas de operador de Cloud PBXArquitecturas de operador de Cloud PBX
Arquitecturas de operador de Cloud PBX
Jon Bonilla
 
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
Irontec
 
[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP
Iñaki Baz Castillo
 
[VoIP2Day 2008] Asterisk & Carriers PSTN
[VoIP2Day 2008] Asterisk & Carriers PSTN[VoIP2Day 2008] Asterisk & Carriers PSTN
[VoIP2Day 2008] Asterisk & Carriers PSTN
Iñaki Baz Castillo
 
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
Iñaki Baz Castillo
 
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
Iñaki Baz Castillo
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
Elio Rojano
 
Qué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no mirasQué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no miras
Elio Rojano
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Irontec
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec
 
Simo Presentacion
Simo PresentacionSimo Presentacion
Simo PresentacionElio Rojano
 
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
Iñaki Baz Castillo
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
Irontec
 

Destacado (18)

voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | Irontec
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSense
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 
Arquitecturas de operador de Cloud PBX
Arquitecturas de operador de Cloud PBXArquitecturas de operador de Cloud PBX
Arquitecturas de operador de Cloud PBX
 
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
 
[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP
 
[VoIP2Day 2008] Asterisk & Carriers PSTN
[VoIP2Day 2008] Asterisk & Carriers PSTN[VoIP2Day 2008] Asterisk & Carriers PSTN
[VoIP2Day 2008] Asterisk & Carriers PSTN
 
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
 
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Qué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no mirasQué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no miras
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
 
Simo Presentacion
Simo PresentacionSimo Presentacion
Simo Presentacion
 
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
 

Similar a Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio

Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
Irontec
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
VOIP2DAY
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
RootedCON
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
RootedCON
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: Dialplan
Irontec
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
Juan Sacco
 

Similar a Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio (6)

Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
 
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
Automated testing para aplicaciones vo ip, webrtc | CARLOS CURZ, JAVIER INFAN...
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: Dialplan
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
 

Más de Irontec

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajo
Irontec
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIP
Irontec
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
Irontec
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)
Irontec
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzados
Irontec
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Irontec
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
Irontec
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IP
Irontec
 
Caso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor HostaliaCaso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor Hostalia
Irontec
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidIrontec
 
Curso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRMCurso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRM
Irontec
 
Seguridad en VoIP
Seguridad en VoIPSeguridad en VoIP
Seguridad en VoIP
Irontec
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql AdministracionIrontec
 
Curso avanzado SVN
Curso avanzado SVNCurso avanzado SVN
Curso avanzado SVN
Irontec
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Irontec
 
Mysq Replication
Mysq ReplicationMysq Replication
Mysq Replication
Irontec
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressIrontec
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVIrontec
 
Certificación y firma electrónica
Certificación y firma electrónicaCertificación y firma electrónica
Certificación y firma electrónica
Irontec
 

Más de Irontec (19)

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajo
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIP
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzados
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IP
 
Caso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor HostaliaCaso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor Hostalia
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
 
Curso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRMCurso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRM
 
Seguridad en VoIP
Seguridad en VoIPSeguridad en VoIP
Seguridad en VoIP
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Curso avanzado SVN
Curso avanzado SVNCurso avanzado SVN
Curso avanzado SVN
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
 
Mysq Replication
Mysq ReplicationMysq Replication
Mysq Replication
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Certificación y firma electrónica
Certificación y firma electrónicaCertificación y firma electrónica
Certificación y firma electrónica
 

Último

Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 

Último (20)

Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 

Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio

  • 1. Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio. Carlos Cruz Gorka Gorrotxategi
  • 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!
  • 4. • En aquellos tiempos ...
  • 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)
  • 9. IVOZ Provider: Soft Tech’s usadas RTPENGINE
  • 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!
  • 14. Espera un instante... No tan rápido! Esto significa ...
  • 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?
  • 44. Probando IVOZ Provider !• AnyCall2AnyAsterisk: Queues – xx DEMO TIME!
  • 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