SlideShare una empresa de Scribd logo
1 de 42
FreeSWITCH – Asterisk con
esteroides (Avoiding Deadlock)

          Moises Silva <moy@sangoma.com>
          Manager de software
          Sangoma Technologies
Agenda
•   Breve introducción a la telefonía

•   Telefonía de software libre

•   Qué es FreeSWITCH?

•   Aplicaciones para FreeSWITCH

•   El core de FreeSWITCH
Breve Introducción a la Telefonía
•   Todos la hemos usado

•   Que pasa cuando levantas el teléfono?

•   Como se encuentran unos a otros?

•   Que hay con la red celular?

•   Que es un PBX? Para que sirve?
Breve Introducción a la Telefonía
Breve Introducción a la Telefonía
Breve Introducción a la Telefonía
•   Puertos análogos (FXO/FXS)
Breve Introducción a la Telefonía

•   Puertos digitales

    – T1/E1 ISDN, PRI, BRI, MFC-R2, SS7
Me abuuuuurro!
Telefonía con software libre?
•   Computadoras mas poderosas pueden procesar audio

•   DSPs especializados no son estrictamente necesarios

•   Hardware simple, software complejo

•   Asterisk, FreeSWITCH, Kamailio, OpenSIPS, Yate …

•   Una nueva era!
Telefonía con software libre
Telefonía con software libre
•   Solo necesitas una computadora

•   Si necesitas acceso a la PSTN, una tarjeta PCI/PCIe
FreeSWITCH




•   No siempre uso switches, pero cuando lo hago, prefiero
    FreeSWITCH
Qué es FreeSWITCH
•   Solución en software de telefonía

•   Auspiciado por el Open Source Telephony Advancement
    Group (OSTAG)

•   Licencia MPL

•   Escala desde soft-phone hasta softswitch clase 5

•   Maneja audio, video, texto

•   Corre en Linux, BSD, MacOS, Windows y iOS!
Qué es FreeSWITCH
•   Poderosa habilidad de ruteo usando expresiones regulares




•   No es un SIP proxy, sino un B2BUA
Qué es FreeSWITCH
•   Surge con la idea de tener una mejor plataforma que
    Asterisk

•   Su author, Anthony Minessale, fué el mayor contribuyente a
    Asterisk por muchos años

•   Diseñado desde el principio para escalar

•   Altamente multi-thread

•   Reuso de muchos componentes (no reinventar la rueda)

•   Avoiding the deadlock!
Protocolos VoIP en FreeSWITCH
•   SIP
     – UDP, TCP, TLS, SCTP, SRTP, ZRTP, IPv6 …

•   Gtalk (jingle)

•   Skype

•   RTMP

•   H.323, IAX2, Skinny …
Protocolos PSTN en FreeSWITCH
•   FXO/FXS

•   PRI / BRI

•   MFC-R2

•   GSM

•   SS7

•   Soporte para varios proveedores de hardware (ej. Sangoma)
Soporte para lenguajes
•   Lua

•   PERL

•   Ruby

•   Python

•   Java & .NET

•   JavaScript
Aplicaciones Nativas
•   Voicemail

•   Colas para call centers

•   Conferencias en alta definición

•   Text to Speech y reconocimiento de voz

•   FAX, T.30 y T.38
Codecs
•   Banda angosta, banda ancha y ultra banda ancha

•   CELT (32kHz y 48kHz)

•   G.722.1C (HD Siren)

•   G.729

•   SILK (El codec de Skype)
Eventos en FreeSWITCH

•   API completamente abstracta

•   El core y las aplicaciones disparan eventos

•   Los modulos pueden reservar tipos de eventos

•   mod_event_socket es el módulo equivalente al manager de Asterisk

•   Diferentes prioridades:

     –   SWITCH_PRIORITY_NORMAL
     –   SWITCH_PRIORITY_LOW
     –   SWITCH_PRIORITY_HIGH
Ejecución de comandos

•   Cada módulo registra comandos de administración

•   Todos los comandos pueden ser ejecutados via mod_event_socket

•   Puedes ejecutar comandos inclusive via HTTP




mod_event_socket

                          switch_api_execute()        Módulo
FreeSWITCH CLI
Aplicaciones para FreeSWITCH
•   Softphone
•   VoIP gateway
•   PBX
•   Servidor de registros
•   Servidor de ruteo de llamadas
•   Servidor de transcoding
•   Session border controller
•   Servidor de conferencias
•   Marcador predictivo
•   Servidor de fax
Alta disponibilidad
FreeSWITCH “hola mundo”
FreeSWITCH “hola mundo” (en LUA)
FreeSWITCH con Python
Contestando un SMS
Por qué modular?
•   Componentes de construcción

•   Capacidad de extender el core

•   Sencilla solución de defectos
Ejemplos de arquitecturas modulares
•   Kernel de Linux (character devices, block devices, filesystems etc)



•   Interpretes de PHP, Python y PERL (soportan extensiones)




•   Apache (loggers, generators, filters, mappers)




•   FreeSWITCH y Asterisk
Arquitectura Modular
•   Registrar interfaces con el core

•   El core provee APIs a los escritores de módulos

•   El core usa las interfaces registrada para solicitar servicios


                           APIs del core


      Aplicación                             Módulo

                     Interfaces de los
                      módulos
Abstracción de una llamada
•   Como hacemos una abstracción de una llamada?




                                  Asterisk



         Incoming call



                                 FreeSWITCH
Arquitectura Básica




     Asterisk         struct ast_channel




                      switch_core_session_t
    FreeSWITCH
Arquitectura Básica
•   Pierna de una llamada en FreeSWITCH

                        switch_core_session_t

                        - Memory pool
                        - Owner thread
    FreeSWITCH          - I/O event hooks
                        - Endpoint interface
                        - Event and message queues
                        - Codec preferences
                        - Channel
                             - Direction
                             - Event hooks
                             - DTMF queue
                             - Private hash
                             - State and state handlers
                             - Caller profile
Arquitectura Básica
•   Pierna de una llamada en Asterisk

                         struct ast_channel

                         - No memory pool
         Asterisk        - No owner thread
                         - Just audio hooks
                         - Tech interface
                         - No event or message queues
                         - Codec preferences
                         - Direction as flag AST_FLAG_OUTGOING
                         - No DTMF queue (generic frame queue)
                         - Data stores instead of private hash
                         - No generic state handlers
                         - Extension, context and ast_callerid
                         instead of caller profile.
Arquitectura Básica
•   Qué hace struct ast_frame?

•   Representa todo tipo de “media” y señalización

•   Audio y Video

•   DTMF

•   Y mas …



     Entran paquetes              Asterisk            Salen paquetes


            Asterisk frames (signaling, audio, dtmf, video, fax)
Arquitectura Básica
•   FreeSWITCH tiene switch_frame_t.

•   switch_frame_t unicamente representa “media”.

•   La señalización es manejada con switch_core_session_message_t

•   El DTMF es manejado a través de una cola

    Audio entrante                                     Audio saliente


    DTMF entrante                                      DTMF saliente
                              FreeSWITCH

Señalización entrante                                Señalización saliente

        Clara separación de señalización, audio, dtmf etc.
Arquitectura Básica
•    Como se maneja una llamada de 2 piernas?




    Llamada entrante            Ruteo           Llamada saliente
Arquitectura Básica
•     Asterisk haciendo una llamada entre SIP y PRI.
              (monitor thread)
SIP: Invite
              chan_sip

                   - Allocate ast_channel
                   - Set caller data
                   - call ast_pbx_start()
    (new thread)

PBX core                                                              ISDN: SETUP
                   ast_request -> ast_call()            chan_dahdi

 loop
 extensions.conf calls                      ast_waitfor()            ISDN: CONNECT
 Dial() application

               Media                                 ast_bridge_call()
                                         PBX core    ast_channel_bridge()
               Exchange
Arquitectura Básica
•     FreeSWITCH haciendo una llamada entre SIP y PRI.
              (monitor thread)
SIP: Invite
              mod_sofia

                   - call switch_core_session_request
                   - Set caller profile
                   - call switch_core_session_thread_launch()
    (new thread)                                            ISDN: SETUP
                                            mod_openzap
 State             routing state
machine            execute state
                   Bridge Application                       ISDN: CONNECT
                   switch_ivr_originate()           (new thread)
loop
                                                                  State
Handling
                                                                 machine
state changes                    Media
                                                          loop
                                 Exchange                 Handling
                                                          state changes
Conclusión

•   Nos encontramos en una carrera por escalabilidad, características
    y adopción de la tecnología entre varios proyectos de telefonía libre

•   FreeSWITCH aún necesita mayor adopción y aplicaciones en su
    ecosistema

•   Asterisk necesita mas mejoras en su arquitectura para escalar

•   La competencia entre Asterisk y FreeSWITCH definitivamente los
    ha llevado a ser mejores
Gracias!

            Preguntas y comentarios?


Contact e-mail: moy@sangoma.com
                moises.silva@gmail.com
                http://www.moythreads.com/

Más contenido relacionado

La actualidad más candente

Miparcial semana 4-teleco
Miparcial   semana 4-telecoMiparcial   semana 4-teleco
Miparcial semana 4-telecojcorre
 
Control Kubernetes Ingress and Egress Together with NGINX
Control Kubernetes Ingress and Egress Together with NGINXControl Kubernetes Ingress and Egress Together with NGINX
Control Kubernetes Ingress and Egress Together with NGINXNGINX, Inc.
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with KamailioFred Posner
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
Mikrotik basic configuration
Mikrotik basic configurationMikrotik basic configuration
Mikrotik basic configurationTola LENG
 
Linux Kullanım Rehberi
Linux Kullanım RehberiLinux Kullanım Rehberi
Linux Kullanım RehberiMert Can ALICI
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面KentaEndoh
 
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma YöntemleriDoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma YöntemleriBGA Cyber Security
 
Access control list [1]
Access control list [1]Access control list [1]
Access control list [1]Summit Bisht
 
スイッチ・ルータのしくみ
スイッチ・ルータのしくみスイッチ・ルータのしくみ
スイッチ・ルータのしくみogatay
 
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDocker, Inc.
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Takashi Takizawa
 

La actualidad más candente (20)

Miparcial semana 4-teleco
Miparcial   semana 4-telecoMiparcial   semana 4-teleco
Miparcial semana 4-teleco
 
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load BalancersKamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
 
EtherChannel
EtherChannelEtherChannel
EtherChannel
 
Introduction of dmvpn
Introduction of dmvpnIntroduction of dmvpn
Introduction of dmvpn
 
Control Kubernetes Ingress and Egress Together with NGINX
Control Kubernetes Ingress and Egress Together with NGINXControl Kubernetes Ingress and Egress Together with NGINX
Control Kubernetes Ingress and Egress Together with NGINX
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Mikrotik basic configuration
Mikrotik basic configurationMikrotik basic configuration
Mikrotik basic configuration
 
Linux Kullanım Rehberi
Linux Kullanım RehberiLinux Kullanım Rehberi
Linux Kullanım Rehberi
 
Network simulator 2
Network simulator 2Network simulator 2
Network simulator 2
 
Asa packet-flow-00
Asa packet-flow-00Asa packet-flow-00
Asa packet-flow-00
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
 
SIP vs PRI
SIP vs PRISIP vs PRI
SIP vs PRI
 
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma YöntemleriDoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
Access control list [1]
Access control list [1]Access control list [1]
Access control list [1]
 
スイッチ・ルータのしくみ
スイッチ・ルータのしくみスイッチ・ルータのしくみ
スイッチ・ルータのしくみ
 
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
 
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
 

Destacado

FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskPaloSanto Solutions
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH MonitoringMoises Silva
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
[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
 
Soluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSSoluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSAlejandro Rios Peña
 
Comunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreComunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreAlejandro Rios Peña
 
SIP: más que una moda en el Contact Center de última generación
SIP: más que una moda en el Contact Center de última generaciónSIP: más que una moda en el Contact Center de última generación
SIP: más que una moda en el Contact Center de última generaciónMundo Contact
 
Asterisk Rest Interface - ARI
Asterisk Rest Interface - ARIAsterisk Rest Interface - ARI
Asterisk Rest Interface - ARIDavid Muñoz
 
Llamada Sip (2)
Llamada Sip (2)Llamada Sip (2)
Llamada Sip (2)Abasota
 
Alberto Sagredo voipnovatos- voip2day2011
Alberto Sagredo  voipnovatos- voip2day2011Alberto Sagredo  voipnovatos- voip2day2011
Alberto Sagredo voipnovatos- voip2day2011Alberto Sagredo Castro
 
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 avanzadosIrontec
 
Presentación VoIP2Day : Soluciones Ingeniosas con VoIP
Presentación VoIP2Day : Soluciones Ingeniosas con VoIPPresentación VoIP2Day : Soluciones Ingeniosas con VoIP
Presentación VoIP2Day : Soluciones Ingeniosas con VoIPAlberto Sagredo Castro
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...PaloSanto Solutions
 
Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPSaúl Ibarra Corretgé
 
Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskNicolás Gudiño
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPIrontec
 

Destacado (20)

FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios Asterisk
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
[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)
 
Soluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSSoluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPS
 
Comunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software LibreComunicaciones Unificadas con Software Libre
Comunicaciones Unificadas con Software Libre
 
SIP: más que una moda en el Contact Center de última generación
SIP: más que una moda en el Contact Center de última generaciónSIP: más que una moda en el Contact Center de última generación
SIP: más que una moda en el Contact Center de última generación
 
Asterisk Rest Interface - ARI
Asterisk Rest Interface - ARIAsterisk Rest Interface - ARI
Asterisk Rest Interface - ARI
 
Llamada Sip (2)
Llamada Sip (2)Llamada Sip (2)
Llamada Sip (2)
 
Alberto Sagredo voipnovatos- voip2day2011
Alberto Sagredo  voipnovatos- voip2day2011Alberto Sagredo  voipnovatos- voip2day2011
Alberto Sagredo voipnovatos- voip2day2011
 
Introducción a SIP y OpenSER
Introducción a SIP y OpenSERIntroducción a SIP y OpenSER
Introducción a SIP y OpenSER
 
Cómo crear un portal cautivo con easyhotspot
Cómo crear un  portal cautivo con easyhotspotCómo crear un  portal cautivo con easyhotspot
Cómo crear un portal cautivo con easyhotspot
 
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
 
Presentación VoIP2Day : Soluciones Ingeniosas con VoIP
Presentación VoIP2Day : Soluciones Ingeniosas con VoIPPresentación VoIP2Day : Soluciones Ingeniosas con VoIP
Presentación VoIP2Day : Soluciones Ingeniosas con VoIP
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
SIP más allá de la VoIP
SIP más allá de la VoIPSIP más allá de la VoIP
SIP más allá de la VoIP
 
Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIP
 
Extendiendo SIP con WebRTC
Extendiendo SIP con WebRTCExtendiendo SIP con WebRTC
Extendiendo SIP con WebRTC
 
Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con Asterisk
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
 

Similar a FreeSWITCH: Asterisk con Esteroides

Implementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSImplementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSGabriel Astudillo
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ipJose Luis Chauca
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02myconta
 
Asterisk
AsteriskAsterisk
Asteriskyuqui
 
Alta disponibilidad en Integración de Elastix con Centrales Legacy
Alta disponibilidad en Integración de Elastix con Centrales LegacyAlta disponibilidad en Integración de Elastix con Centrales Legacy
Alta disponibilidad en Integración de Elastix con Centrales LegacyPaloSanto Solutions
 
Taller - Dispositivos de red (En parejas) neuoooo.docx
Taller - Dispositivos de red (En parejas)   neuoooo.docxTaller - Dispositivos de red (En parejas)   neuoooo.docx
Taller - Dispositivos de red (En parejas) neuoooo.docxridercastroperez
 
01.asterisk introducción
01.asterisk introducción01.asterisk introducción
01.asterisk introduccióncarlosperu01
 
Presentacion asterisk
Presentacion asteriskPresentacion asterisk
Presentacion asteriskarchimd
 
Configuración de escenarios reales con asterisk
Configuración de escenarios reales con asteriskConfiguración de escenarios reales con asterisk
Configuración de escenarios reales con asteriskDiego Llanes
 
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02Configuracindeescenariosrealesconasterisk 131117194346-phpapp02
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02leonardo miranda
 
Asterisk
AsteriskAsterisk
Asteriskyuqui
 
i-Vida Centralitas
i-Vida Centralitasi-Vida Centralitas
i-Vida Centralitasi-Vida
 
Manual Asterisk en FreeBSD
Manual Asterisk en FreeBSDManual Asterisk en FreeBSD
Manual Asterisk en FreeBSDERy Chan
 

Similar a FreeSWITCH: Asterisk con Esteroides (20)

Implementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSImplementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSS
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ip
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02
 
Asterisk
AsteriskAsterisk
Asterisk
 
Alta disponibilidad en Integración de Elastix con Centrales Legacy
Alta disponibilidad en Integración de Elastix con Centrales LegacyAlta disponibilidad en Integración de Elastix con Centrales Legacy
Alta disponibilidad en Integración de Elastix con Centrales Legacy
 
Software de VOIP
Software de VOIPSoftware de VOIP
Software de VOIP
 
Taller - Dispositivos de red (En parejas) neuoooo.docx
Taller - Dispositivos de red (En parejas)   neuoooo.docxTaller - Dispositivos de red (En parejas)   neuoooo.docx
Taller - Dispositivos de red (En parejas) neuoooo.docx
 
01.asterisk introducción
01.asterisk introducción01.asterisk introducción
01.asterisk introducción
 
Presentacion asterisk
Presentacion asteriskPresentacion asterisk
Presentacion asterisk
 
Configuración de escenarios reales con asterisk
Configuración de escenarios reales con asteriskConfiguración de escenarios reales con asterisk
Configuración de escenarios reales con asterisk
 
voz ip
voz ipvoz ip
voz ip
 
Proceso de señal
Proceso de señalProceso de señal
Proceso de señal
 
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02Configuracindeescenariosrealesconasterisk 131117194346-phpapp02
Configuracindeescenariosrealesconasterisk 131117194346-phpapp02
 
PFC IMS
PFC IMSPFC IMS
PFC IMS
 
Tecnología IP Leccion 2
Tecnología IP Leccion 2Tecnología IP Leccion 2
Tecnología IP Leccion 2
 
Asterisk
AsteriskAsterisk
Asterisk
 
i-Vida Centralitas
i-Vida Centralitasi-Vida Centralitas
i-Vida Centralitas
 
Ip pbx
Ip pbxIp pbx
Ip pbx
 
Manual Asterisk en FreeBSD
Manual Asterisk en FreeBSDManual Asterisk en FreeBSD
Manual Asterisk en FreeBSD
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
 

Más de Moises Silva

Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CMoises Silva
 
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPMoises Silva
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHMoises Silva
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHMoises Silva
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersMoises Silva
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskMoises Silva
 
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceSangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceMoises Silva
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
FreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingFreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingMoises Silva
 
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingAsterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingMoises Silva
 
OpenR2 in Asterisk
OpenR2 in AsteriskOpenR2 in Asterisk
OpenR2 in AsteriskMoises Silva
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 

Más de Moises Silva (13)

Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en C
 
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
 
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceSangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open Source
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
FreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingFreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
 
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingAsterisk PRI Passive Call Recording
Asterisk PRI Passive Call Recording
 
OpenR2 in Asterisk
OpenR2 in AsteriskOpenR2 in Asterisk
OpenR2 in Asterisk
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 

Último

Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Último (20)

Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

FreeSWITCH: Asterisk con Esteroides

  • 1. FreeSWITCH – Asterisk con esteroides (Avoiding Deadlock) Moises Silva <moy@sangoma.com> Manager de software Sangoma Technologies
  • 2. Agenda • Breve introducción a la telefonía • Telefonía de software libre • Qué es FreeSWITCH? • Aplicaciones para FreeSWITCH • El core de FreeSWITCH
  • 3. Breve Introducción a la Telefonía • Todos la hemos usado • Que pasa cuando levantas el teléfono? • Como se encuentran unos a otros? • Que hay con la red celular? • Que es un PBX? Para que sirve?
  • 4. Breve Introducción a la Telefonía
  • 5. Breve Introducción a la Telefonía
  • 6. Breve Introducción a la Telefonía • Puertos análogos (FXO/FXS)
  • 7. Breve Introducción a la Telefonía • Puertos digitales – T1/E1 ISDN, PRI, BRI, MFC-R2, SS7
  • 9. Telefonía con software libre? • Computadoras mas poderosas pueden procesar audio • DSPs especializados no son estrictamente necesarios • Hardware simple, software complejo • Asterisk, FreeSWITCH, Kamailio, OpenSIPS, Yate … • Una nueva era!
  • 11. Telefonía con software libre • Solo necesitas una computadora • Si necesitas acceso a la PSTN, una tarjeta PCI/PCIe
  • 12. FreeSWITCH • No siempre uso switches, pero cuando lo hago, prefiero FreeSWITCH
  • 13. Qué es FreeSWITCH • Solución en software de telefonía • Auspiciado por el Open Source Telephony Advancement Group (OSTAG) • Licencia MPL • Escala desde soft-phone hasta softswitch clase 5 • Maneja audio, video, texto • Corre en Linux, BSD, MacOS, Windows y iOS!
  • 14. Qué es FreeSWITCH • Poderosa habilidad de ruteo usando expresiones regulares • No es un SIP proxy, sino un B2BUA
  • 15. Qué es FreeSWITCH • Surge con la idea de tener una mejor plataforma que Asterisk • Su author, Anthony Minessale, fué el mayor contribuyente a Asterisk por muchos años • Diseñado desde el principio para escalar • Altamente multi-thread • Reuso de muchos componentes (no reinventar la rueda) • Avoiding the deadlock!
  • 16. Protocolos VoIP en FreeSWITCH • SIP – UDP, TCP, TLS, SCTP, SRTP, ZRTP, IPv6 … • Gtalk (jingle) • Skype • RTMP • H.323, IAX2, Skinny …
  • 17. Protocolos PSTN en FreeSWITCH • FXO/FXS • PRI / BRI • MFC-R2 • GSM • SS7 • Soporte para varios proveedores de hardware (ej. Sangoma)
  • 18. Soporte para lenguajes • Lua • PERL • Ruby • Python • Java & .NET • JavaScript
  • 19. Aplicaciones Nativas • Voicemail • Colas para call centers • Conferencias en alta definición • Text to Speech y reconocimiento de voz • FAX, T.30 y T.38
  • 20. Codecs • Banda angosta, banda ancha y ultra banda ancha • CELT (32kHz y 48kHz) • G.722.1C (HD Siren) • G.729 • SILK (El codec de Skype)
  • 21. Eventos en FreeSWITCH • API completamente abstracta • El core y las aplicaciones disparan eventos • Los modulos pueden reservar tipos de eventos • mod_event_socket es el módulo equivalente al manager de Asterisk • Diferentes prioridades: – SWITCH_PRIORITY_NORMAL – SWITCH_PRIORITY_LOW – SWITCH_PRIORITY_HIGH
  • 22. Ejecución de comandos • Cada módulo registra comandos de administración • Todos los comandos pueden ser ejecutados via mod_event_socket • Puedes ejecutar comandos inclusive via HTTP mod_event_socket switch_api_execute() Módulo FreeSWITCH CLI
  • 23. Aplicaciones para FreeSWITCH • Softphone • VoIP gateway • PBX • Servidor de registros • Servidor de ruteo de llamadas • Servidor de transcoding • Session border controller • Servidor de conferencias • Marcador predictivo • Servidor de fax
  • 29. Por qué modular? • Componentes de construcción • Capacidad de extender el core • Sencilla solución de defectos
  • 30. Ejemplos de arquitecturas modulares • Kernel de Linux (character devices, block devices, filesystems etc) • Interpretes de PHP, Python y PERL (soportan extensiones) • Apache (loggers, generators, filters, mappers) • FreeSWITCH y Asterisk
  • 31. Arquitectura Modular • Registrar interfaces con el core • El core provee APIs a los escritores de módulos • El core usa las interfaces registrada para solicitar servicios APIs del core Aplicación Módulo Interfaces de los módulos
  • 32. Abstracción de una llamada • Como hacemos una abstracción de una llamada? Asterisk Incoming call FreeSWITCH
  • 33. Arquitectura Básica Asterisk struct ast_channel switch_core_session_t FreeSWITCH
  • 34. Arquitectura Básica • Pierna de una llamada en FreeSWITCH switch_core_session_t - Memory pool - Owner thread FreeSWITCH - I/O event hooks - Endpoint interface - Event and message queues - Codec preferences - Channel - Direction - Event hooks - DTMF queue - Private hash - State and state handlers - Caller profile
  • 35. Arquitectura Básica • Pierna de una llamada en Asterisk struct ast_channel - No memory pool Asterisk - No owner thread - Just audio hooks - Tech interface - No event or message queues - Codec preferences - Direction as flag AST_FLAG_OUTGOING - No DTMF queue (generic frame queue) - Data stores instead of private hash - No generic state handlers - Extension, context and ast_callerid instead of caller profile.
  • 36. Arquitectura Básica • Qué hace struct ast_frame? • Representa todo tipo de “media” y señalización • Audio y Video • DTMF • Y mas … Entran paquetes Asterisk Salen paquetes Asterisk frames (signaling, audio, dtmf, video, fax)
  • 37. Arquitectura Básica • FreeSWITCH tiene switch_frame_t. • switch_frame_t unicamente representa “media”. • La señalización es manejada con switch_core_session_message_t • El DTMF es manejado a través de una cola Audio entrante Audio saliente DTMF entrante DTMF saliente FreeSWITCH Señalización entrante Señalización saliente Clara separación de señalización, audio, dtmf etc.
  • 38. Arquitectura Básica • Como se maneja una llamada de 2 piernas? Llamada entrante Ruteo Llamada saliente
  • 39. Arquitectura Básica • Asterisk haciendo una llamada entre SIP y PRI. (monitor thread) SIP: Invite chan_sip - Allocate ast_channel - Set caller data - call ast_pbx_start() (new thread) PBX core ISDN: SETUP ast_request -> ast_call() chan_dahdi loop extensions.conf calls ast_waitfor() ISDN: CONNECT Dial() application Media ast_bridge_call() PBX core ast_channel_bridge() Exchange
  • 40. Arquitectura Básica • FreeSWITCH haciendo una llamada entre SIP y PRI. (monitor thread) SIP: Invite mod_sofia - call switch_core_session_request - Set caller profile - call switch_core_session_thread_launch() (new thread) ISDN: SETUP mod_openzap State routing state machine execute state Bridge Application ISDN: CONNECT switch_ivr_originate() (new thread) loop State Handling machine state changes Media loop Exchange Handling state changes
  • 41. Conclusión • Nos encontramos en una carrera por escalabilidad, características y adopción de la tecnología entre varios proyectos de telefonía libre • FreeSWITCH aún necesita mayor adopción y aplicaciones en su ecosistema • Asterisk necesita mas mejoras en su arquitectura para escalar • La competencia entre Asterisk y FreeSWITCH definitivamente los ha llevado a ser mejores
  • 42. Gracias! Preguntas y comentarios? Contact e-mail: moy@sangoma.com moises.silva@gmail.com http://www.moythreads.com/