SlideShare una empresa de Scribd logo
1 de 42
Manejo de Medios en
FreeSWITCH
Moisés Silva
Software Engineer / Manager
moy@sangoma.com
Agenda
•
•
•
•
•
•
•

Introducción a FreeSWITCH
Codecs de Audio
Transcoding
Negociación de Codecs
Bypass Media
Proxy Media
Conclusion

© 2011 Sangoma
Technologies

23/11/2011

2
Introducción a FreeSWITCH

© 2011 Sangoma Confidential

23/11/2011

3
FreeSWITCH (avoiding deadlock!)
• 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 hasta iOS!
© 2011 Sangoma
Technologies

23/11/2011

4
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)
• Poderosa habilidad de ruteo usando expresiones regulares
© 2011 Sangoma
Technologies

23/11/2011

5
FreeSWITCH – Protocolos VoIP
• SIP
– UDP, TCP, TLS, SCTP, SRTP, ZRTP, IPv6 …
• Gtalk (jingle)
• Skype
• RTMP
• H.323, Skinny y más …

© 2011 Sangoma
Technologies

23/11/2011

6
FreeSWITCH – Protocolos PSTN
• FXO / FXS
• PRI / BRI
• MFC-R2
• GSM
• SS7
• Soporte para varios proveedores de hardware (ej. Sangoma, Digium,
Kohmp e incluso algo de PIKA)
© 2011 Sangoma
Technologies

23/11/2011

7
FreeSWITCH – Lenguajes
• Lua
• PERL
• Ruby
• Python
• Java & .NET
• JavaScript

© 2011 Sangoma
Technologies

23/11/2011

8
FreeSWITCH – 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

© 2011 Sangoma
Technologies

23/11/2011

9
FreeSWITCH – Aplicaciones
•
•
•
•
•
•
•
•
•
•

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

© 2011 Sangoma
Technologies

23/11/2011

10
FreeSWITCH – Hola Mundo

© 2011 Sangoma
Technologies

23/11/2011

11
FreeSWITCH – Hola Mundo (LUA)

© 2011 Sangoma
Technologies

23/11/2011

12
FreeSWITCH – Contestando SMS

© 2011 Sangoma
Technologies

23/11/2011

13
Codecs de Audio

© 2011 Sangoma Confidential

23/11/2011

14
Codecs de Audio
• Los codecs codifican y decodifican la voz para su transmisión
en la red.
– Algoritmo (technología de compresión)
– Bit rate
– Sampling rate
– Paquetización
• El algoritmo es el alma del codec (la salsa secreta!)
• El bit rate define el ancho de banda requerido (cuantos bits
por segundo)
• El sampling rate define la calidad (parcialmente)
• La paquetización afecta la latencia y el consumo de ancho de
banda
© 2011 Sangoma
Technologies

23/11/2011

15
Codecs de Audio
•

G.711 (PCMU/PCMA, Ulaw/Alaw) – Narrowband (banda angosta)
– 64kbps (Bit rate) – 64 mil bits por segundo son transferidos
– 8kHz (Sampling rate) – 8 mil muestras de audio por segundo
– 10ms, 20ms, 30ms, 40ms … + (paquetización) cada cuanto se
transmite un paquete de audio

•

G.722 – Wideband (banda ancha)
– 48kbps, 56kbps and 64kbps
– 16kHz (IANA lo especifica a 8kHz debido a un error histórico en
el RFC1890)
– 10ms, 20ms, 30ms, 40ms … +

•

G.722.1 Annex C - Ultra-wideband (ultra banda ancha)
– 48kbps (Nota que son menos bits por segundo que PCMU!)
– 32kHz (Cada vez mas cerca a la calidad de audio de un CD)
– 20ms, 40ms, 60ms
© 2011 Sangoma
Technologies

23/11/2011

16
Codecs en FreeSWITCH
• FreeSWITCH soporta una amplia gama de codecs
– Narrowband (G.711, G.726, G.723.1, G.729AB, Speex …)
– Wideband (G.722, G.722.1, G.722.2, Speex …)
– Ultra-wideband (G.722.1C, Speex)
– CD-quality (CELT)
• El core de FreeSWITCH requiere el audio en formato L16
(signed linear) para su manipulación (mezcla, detección de
tonos, etc)
• Los módulos de codec hacen transcoding de/hacia el formato
L16
• Los módulos de codec “pass-thru” no hacen transcoding
(mod_g729, mod_g723_1)
© 2011 Sangoma
Technologies

23/11/2011

17
Codecs en FreeSWITCH

© 2011 Sangoma
Technologies

23/11/2011

18
Transcoding

© 2011 Sangoma Confidential

23/11/2011

19
Transcoding
• Requerido cuando los nodos no tienen codec en común
• FreeSWITCH debe permanecer en el path del audio
• Incrementa sustancialmente el uso del CPU si se hace
en software (posible hacerlo en hardware)
• Es tipicamente necesario para:
– Grabación de llamadas
– Detección de tonos
– Conferencias
© 2011 Sangoma
Technologies

23/11/2011

20
FreeSWITCH Transcoding
• Transcoding en una llamada con una sola pierna SIP

© 2011 Sangoma
Technologies

23/11/2011

21
FreeSWITCH Transcoding
• Transcoding con 2 piernas SIP

© 2011 Sangoma
Technologies

23/11/2011

22
FreeSWITCH codec pass-thru
• Llamada sin transcoding usando un codec proprietario

© 2011 Sangoma
Technologies

23/11/2011

23
Negociación de Codecs

© 2011 Sangoma Confidential

23/11/2011

24
Negociación de Codecs
• Decisiones tomadas para elegir codecs compatibles en
una llamada
• De una lista de codecs, escoge al menos uno!
• FreeSWITCH te permite elegir cuando (negociación
temprana vs tardía)
• “Early” sucede antes de que la llamada llegue al plan de
marcado
• “Late” sucede cuando la pierna necesita audio
© 2011 Sangoma
Technologies

23/11/2011

25
Negociación de Codecs
• 3 algoritmos de negociación
– Generoso (generous)
– Ambicioso (greedy)
– Scrooge (Bah HUMBUG!)
• Escoge usando inbound-codec-negotiation en tu
configuración SIP
• Usa la variable sip_codec_negotiation para alterar la
negociación desde el plan de marcado

© 2011 Sangoma
Technologies

23/11/2011

26
Negociación de Codecs

© 2011 Sangoma
Technologies

23/11/2011

27
Negociación Temprana (early negotiation)
• El modo por defecto en FreeSWITCH
• El codec a usar es seleccionado comparando el SDP
contra “inbound-codec-prefs” en la configuración SIP
• “disable-transcoding” ofrece el mismo codec
seleccionado para la pierna entrante a la pierna de
salida
• “absolute_codec_str” forza la oferta del codec a la lista
especificada (incluso si es un codec no soportado!)

© 2011 Sangoma
Technologies

23/11/2011

28
Negociación Temprana (early negotiation)

© 2011 Sangoma
Technologies

23/11/2011

29
Negociación Tardía (late negotiation)
• Negociación de codecs de forma “más inteligente”
• “inbound-late-negotiation” debe ser “true” en la
configuración SIP
• La llamada se recibe en el plan de marcado sin revisar
los codecs
• La negociación ocurre cuando se necesita el audio

© 2011 Sangoma
Technologies

23/11/2011

30
Negociación Tardía (late negotiation)
• Puedes examinar el SDP entrante y reescribirlo para
ajustarlo a tus necesidades
• La variable “inherit_codec” está disponible para usar el
codec seleccionado en la pierna saliente para la pierna
entrante
• La variable “ep_codec_string” contiene los codecs
ofrecidos por el nodo entrante

© 2011 Sangoma
Technologies

23/11/2011

31
Negociación Tardía (late negotiation)

© 2011 Sangoma
Technologies

23/11/2011

32
Modos de Audio

© 2011 Sangoma Confidential

23/11/2011

33
Bypass Media
• El audio pasa alrededor de FreeSWITCH (no a través)
directamente entre los nodos
• La señalización SIP permanece en FreeSWITCH
• Habilitado usando la variable “bypass_media=true”
antes de ejecutar la aplicación “bridge”
• Usa “inbound-no-media” or “inbound-bypass-media”
en la configuracón SIP si deseas hacerlo para todas las
llamadas

© 2011 Sangoma
Technologies

23/11/2011

34
Bypass Media
• Puedes reproducir archivos de audio! (uuid_broadcast)
• uuid_media [off] puede re-invitar a FreeSWITCH dentro
y fuera del path de audio
• Grabación de llamadas fallará a menos de que pongas a
FreeSWITCH de nuevo en el path de audio
manualmente

© 2011 Sangoma
Technologies

23/11/2011

35
Bypass Media

© 2011 Sangoma
Technologies

23/11/2011

36
Proxy Media
• También conocido como “transparent proxy mode”para
el RTP
• Ninguna manipulación del RTP está habilitada
• Solo el atributo “c=” en el SDP is modificado
• Permite que FreeSWITCH pase audio en codecs que
no soporta

© 2011 Sangoma
Technologies

23/11/2011

37
Proxy Media
• Usa la variable “proxy_media=true” antes de ejecutar
“bridge”
• Usa el parámetro “inbound-proxy-media” en la
configuración SIP si deseas hacerlo en todas las
llamadas
• En la mayoría de los casos querras habilitar tambien
“late negotiation”

© 2011 Sangoma
Technologies

23/11/2011

38
Proxy Media

© 2011 Sangoma
Technologies

23/11/2011

39
Conclusión

© 2011 Sangoma Confidential

23/11/2011

40
Conclusión
• La flexibilidad de FreeSWITCH en manejo de audio y
señalización en muy amplia
• FreeSWITCH soporta virtualmente cualquier codec de la
industria (y agregar nuevos codecs es un proceso
simple)
• FreeSWITCH tiene la capacidad de transportar formatos
de audio desconocidos
• El transcoding puede ser efectuado en software o
hardware
© 2011 Sangoma
Technologies

23/11/2011

41
Gracias!
moy@sangoma.com

© 2011 Sangoma Confidential

23/11/2011

42

Más contenido relacionado

La actualidad más candente

Alta disponibilidad elastix y elastix en vm ware
Alta disponibilidad elastix y elastix en vm wareAlta disponibilidad elastix y elastix en vm ware
Alta disponibilidad elastix y elastix en vm warePaloSanto Solutions
 
Las 12 pruebas de Asterisk
Las 12 pruebas de AsteriskLas 12 pruebas de Asterisk
Las 12 pruebas de AsteriskElio Rojano
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSPaloSanto Solutions
 
I pv6 in_ccna_-_jpe
I pv6 in_ccna_-_jpeI pv6 in_ccna_-_jpe
I pv6 in_ccna_-_jpezocmaper
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)PaloSanto Solutions
 
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
 
Conectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxConectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxPaloSanto Solutions
 
Instalación de E1 en Elastix, simplificado
Instalación de E1 en Elastix, simplificadoInstalación de E1 en Elastix, simplificado
Instalación de E1 en Elastix, simplificadoPaloSanto Solutions
 
Elastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix México
 
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de uso
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de usoSBCs como respuesta al soporte seguro de usuarios remotos. Casos de uso
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de usoPaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTPaloSanto Solutions
 
Elastix en aplicaciones de alta exigencia
Elastix en aplicaciones de alta exigenciaElastix en aplicaciones de alta exigencia
Elastix en aplicaciones de alta exigenciaPaloSanto Solutions
 
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
 
Qnap nas mexico
Qnap nas mexicoQnap nas mexico
Qnap nas mexicoDavid Lira
 
Voz ip qos
Voz ip qosVoz ip qos
Voz ip qosgasay
 
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]RootedCON
 

La actualidad más candente (20)

Alta disponibilidad elastix y elastix en vm ware
Alta disponibilidad elastix y elastix en vm wareAlta disponibilidad elastix y elastix en vm ware
Alta disponibilidad elastix y elastix en vm ware
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
 
Las 12 pruebas de Asterisk
Las 12 pruebas de AsteriskLas 12 pruebas de Asterisk
Las 12 pruebas de Asterisk
 
Data link
Data linkData link
Data link
 
Interactuando con a2billing
Interactuando con a2billingInteractuando con a2billing
Interactuando con a2billing
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
 
I pv6 in_ccna_-_jpe
I pv6 in_ccna_-_jpeI pv6 in_ccna_-_jpe
I pv6 in_ccna_-_jpe
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
 
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
 
Conectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxConectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos Openvox
 
Instalación de E1 en Elastix, simplificado
Instalación de E1 en Elastix, simplificadoInstalación de E1 en Elastix, simplificado
Instalación de E1 en Elastix, simplificado
 
Elastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, Alteknativa
 
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de uso
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de usoSBCs como respuesta al soporte seguro de usuarios remotos. Casos de uso
SBCs como respuesta al soporte seguro de usuarios remotos. Casos de uso
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Elastix en aplicaciones de alta exigencia
Elastix en aplicaciones de alta exigenciaElastix en aplicaciones de alta exigencia
Elastix en aplicaciones de alta exigencia
 
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
 
Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)
 
Qnap nas mexico
Qnap nas mexicoQnap nas mexico
Qnap nas mexico
 
Voz ip qos
Voz ip qosVoz ip qos
Voz ip qos
 
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
 

Similar a Manejo de Medios en FreeSWITCH

Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskMoises Silva
 
Negociacion de codecs en asterisk
Negociacion de codecs en asteriskNegociacion de codecs en asterisk
Negociacion de codecs en asteriskPaloSanto Solutions
 
Protocolos de voip de acuerdo al modelo osi
Protocolos de voip de acuerdo al modelo osiProtocolos de voip de acuerdo al modelo osi
Protocolos de voip de acuerdo al modelo osiSolxitlaly Guerra
 
Systemas operativos Multimedias
Systemas operativos MultimediasSystemas operativos Multimedias
Systemas operativos MultimediasEriklsm-Tech
 
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
 
Diccionario tecnico en sistemas katherine herrera
Diccionario tecnico en sistemas katherine herrera Diccionario tecnico en sistemas katherine herrera
Diccionario tecnico en sistemas katherine herrera decimosistemas2018
 
Voip 1201206675510318-3
Voip 1201206675510318-3Voip 1201206675510318-3
Voip 1201206675510318-3kamrul087
 
Electiva sonora
Electiva sonoraElectiva sonora
Electiva sonorasenyalee
 
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Internet Security Auditors
 
[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 WebRTCIñaki Baz Castillo
 
Implementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSImplementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSGabriel Astudillo
 
Configuración básica asterisk sixbell - v2.0
Configuración básica asterisk   sixbell - v2.0Configuración básica asterisk   sixbell - v2.0
Configuración básica asterisk sixbell - v2.0Sebastian Cisternas Arenas
 

Similar a Manejo de Medios en FreeSWITCH (20)

Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
 
Negociacion de codecs en asterisk
Negociacion de codecs en asteriskNegociacion de codecs en asterisk
Negociacion de codecs en asterisk
 
La vo ip
La vo ipLa vo ip
La vo ip
 
Seguridad en VoIP con Tecnología Cisco
Seguridad en VoIP con Tecnología CiscoSeguridad en VoIP con Tecnología Cisco
Seguridad en VoIP con Tecnología Cisco
 
Protocolos de voip de acuerdo al modelo osi
Protocolos de voip de acuerdo al modelo osiProtocolos de voip de acuerdo al modelo osi
Protocolos de voip de acuerdo al modelo osi
 
Systemas operativos Multimedias
Systemas operativos MultimediasSystemas operativos Multimedias
Systemas operativos Multimedias
 
¿Qué es PBXact de Sangoma?
¿Qué es PBXact de Sangoma? ¿Qué es PBXact de Sangoma?
¿Qué es PBXact de Sangoma?
 
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
 
Diccionario tecnico en sistemas katherine herrera
Diccionario tecnico en sistemas katherine herrera Diccionario tecnico en sistemas katherine herrera
Diccionario tecnico en sistemas katherine herrera
 
Voip 1201206675510318-3
Voip 1201206675510318-3Voip 1201206675510318-3
Voip 1201206675510318-3
 
Video alexander jonatan
Video alexander jonatanVideo alexander jonatan
Video alexander jonatan
 
Electiva sonora
Electiva sonoraElectiva sonora
Electiva sonora
 
Presentacion Voip
Presentacion VoipPresentacion Voip
Presentacion Voip
 
Vo ip
Vo ipVo ip
Vo ip
 
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
 
[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
 
Implementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSSImplementado Sistemas de VoIP con FOSS
Implementado Sistemas de VoIP con FOSS
 
Configuración básica asterisk sixbell - v2.0
Configuración básica asterisk   sixbell - v2.0Configuración básica asterisk   sixbell - v2.0
Configuración básica asterisk sixbell - v2.0
 
0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)
 

Más de Moises Silva

FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH MonitoringMoises Silva
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises 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
 
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
 
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)

FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
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
 
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
 
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
 

Manejo de Medios en FreeSWITCH

  • 1. Manejo de Medios en FreeSWITCH Moisés Silva Software Engineer / Manager moy@sangoma.com
  • 2. Agenda • • • • • • • Introducción a FreeSWITCH Codecs de Audio Transcoding Negociación de Codecs Bypass Media Proxy Media Conclusion © 2011 Sangoma Technologies 23/11/2011 2
  • 3. Introducción a FreeSWITCH © 2011 Sangoma Confidential 23/11/2011 3
  • 4. FreeSWITCH (avoiding deadlock!) • 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 hasta iOS! © 2011 Sangoma Technologies 23/11/2011 4
  • 5. 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) • Poderosa habilidad de ruteo usando expresiones regulares © 2011 Sangoma Technologies 23/11/2011 5
  • 6. FreeSWITCH – Protocolos VoIP • SIP – UDP, TCP, TLS, SCTP, SRTP, ZRTP, IPv6 … • Gtalk (jingle) • Skype • RTMP • H.323, Skinny y más … © 2011 Sangoma Technologies 23/11/2011 6
  • 7. FreeSWITCH – Protocolos PSTN • FXO / FXS • PRI / BRI • MFC-R2 • GSM • SS7 • Soporte para varios proveedores de hardware (ej. Sangoma, Digium, Kohmp e incluso algo de PIKA) © 2011 Sangoma Technologies 23/11/2011 7
  • 8. FreeSWITCH – Lenguajes • Lua • PERL • Ruby • Python • Java & .NET • JavaScript © 2011 Sangoma Technologies 23/11/2011 8
  • 9. FreeSWITCH – 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 © 2011 Sangoma Technologies 23/11/2011 9
  • 10. FreeSWITCH – Aplicaciones • • • • • • • • • • 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 © 2011 Sangoma Technologies 23/11/2011 10
  • 11. FreeSWITCH – Hola Mundo © 2011 Sangoma Technologies 23/11/2011 11
  • 12. FreeSWITCH – Hola Mundo (LUA) © 2011 Sangoma Technologies 23/11/2011 12
  • 13. FreeSWITCH – Contestando SMS © 2011 Sangoma Technologies 23/11/2011 13
  • 14. Codecs de Audio © 2011 Sangoma Confidential 23/11/2011 14
  • 15. Codecs de Audio • Los codecs codifican y decodifican la voz para su transmisión en la red. – Algoritmo (technología de compresión) – Bit rate – Sampling rate – Paquetización • El algoritmo es el alma del codec (la salsa secreta!) • El bit rate define el ancho de banda requerido (cuantos bits por segundo) • El sampling rate define la calidad (parcialmente) • La paquetización afecta la latencia y el consumo de ancho de banda © 2011 Sangoma Technologies 23/11/2011 15
  • 16. Codecs de Audio • G.711 (PCMU/PCMA, Ulaw/Alaw) – Narrowband (banda angosta) – 64kbps (Bit rate) – 64 mil bits por segundo son transferidos – 8kHz (Sampling rate) – 8 mil muestras de audio por segundo – 10ms, 20ms, 30ms, 40ms … + (paquetización) cada cuanto se transmite un paquete de audio • G.722 – Wideband (banda ancha) – 48kbps, 56kbps and 64kbps – 16kHz (IANA lo especifica a 8kHz debido a un error histórico en el RFC1890) – 10ms, 20ms, 30ms, 40ms … + • G.722.1 Annex C - Ultra-wideband (ultra banda ancha) – 48kbps (Nota que son menos bits por segundo que PCMU!) – 32kHz (Cada vez mas cerca a la calidad de audio de un CD) – 20ms, 40ms, 60ms © 2011 Sangoma Technologies 23/11/2011 16
  • 17. Codecs en FreeSWITCH • FreeSWITCH soporta una amplia gama de codecs – Narrowband (G.711, G.726, G.723.1, G.729AB, Speex …) – Wideband (G.722, G.722.1, G.722.2, Speex …) – Ultra-wideband (G.722.1C, Speex) – CD-quality (CELT) • El core de FreeSWITCH requiere el audio en formato L16 (signed linear) para su manipulación (mezcla, detección de tonos, etc) • Los módulos de codec hacen transcoding de/hacia el formato L16 • Los módulos de codec “pass-thru” no hacen transcoding (mod_g729, mod_g723_1) © 2011 Sangoma Technologies 23/11/2011 17
  • 18. Codecs en FreeSWITCH © 2011 Sangoma Technologies 23/11/2011 18
  • 19. Transcoding © 2011 Sangoma Confidential 23/11/2011 19
  • 20. Transcoding • Requerido cuando los nodos no tienen codec en común • FreeSWITCH debe permanecer en el path del audio • Incrementa sustancialmente el uso del CPU si se hace en software (posible hacerlo en hardware) • Es tipicamente necesario para: – Grabación de llamadas – Detección de tonos – Conferencias © 2011 Sangoma Technologies 23/11/2011 20
  • 21. FreeSWITCH Transcoding • Transcoding en una llamada con una sola pierna SIP © 2011 Sangoma Technologies 23/11/2011 21
  • 22. FreeSWITCH Transcoding • Transcoding con 2 piernas SIP © 2011 Sangoma Technologies 23/11/2011 22
  • 23. FreeSWITCH codec pass-thru • Llamada sin transcoding usando un codec proprietario © 2011 Sangoma Technologies 23/11/2011 23
  • 24. Negociación de Codecs © 2011 Sangoma Confidential 23/11/2011 24
  • 25. Negociación de Codecs • Decisiones tomadas para elegir codecs compatibles en una llamada • De una lista de codecs, escoge al menos uno! • FreeSWITCH te permite elegir cuando (negociación temprana vs tardía) • “Early” sucede antes de que la llamada llegue al plan de marcado • “Late” sucede cuando la pierna necesita audio © 2011 Sangoma Technologies 23/11/2011 25
  • 26. Negociación de Codecs • 3 algoritmos de negociación – Generoso (generous) – Ambicioso (greedy) – Scrooge (Bah HUMBUG!) • Escoge usando inbound-codec-negotiation en tu configuración SIP • Usa la variable sip_codec_negotiation para alterar la negociación desde el plan de marcado © 2011 Sangoma Technologies 23/11/2011 26
  • 27. Negociación de Codecs © 2011 Sangoma Technologies 23/11/2011 27
  • 28. Negociación Temprana (early negotiation) • El modo por defecto en FreeSWITCH • El codec a usar es seleccionado comparando el SDP contra “inbound-codec-prefs” en la configuración SIP • “disable-transcoding” ofrece el mismo codec seleccionado para la pierna entrante a la pierna de salida • “absolute_codec_str” forza la oferta del codec a la lista especificada (incluso si es un codec no soportado!) © 2011 Sangoma Technologies 23/11/2011 28
  • 29. Negociación Temprana (early negotiation) © 2011 Sangoma Technologies 23/11/2011 29
  • 30. Negociación Tardía (late negotiation) • Negociación de codecs de forma “más inteligente” • “inbound-late-negotiation” debe ser “true” en la configuración SIP • La llamada se recibe en el plan de marcado sin revisar los codecs • La negociación ocurre cuando se necesita el audio © 2011 Sangoma Technologies 23/11/2011 30
  • 31. Negociación Tardía (late negotiation) • Puedes examinar el SDP entrante y reescribirlo para ajustarlo a tus necesidades • La variable “inherit_codec” está disponible para usar el codec seleccionado en la pierna saliente para la pierna entrante • La variable “ep_codec_string” contiene los codecs ofrecidos por el nodo entrante © 2011 Sangoma Technologies 23/11/2011 31
  • 32. Negociación Tardía (late negotiation) © 2011 Sangoma Technologies 23/11/2011 32
  • 33. Modos de Audio © 2011 Sangoma Confidential 23/11/2011 33
  • 34. Bypass Media • El audio pasa alrededor de FreeSWITCH (no a través) directamente entre los nodos • La señalización SIP permanece en FreeSWITCH • Habilitado usando la variable “bypass_media=true” antes de ejecutar la aplicación “bridge” • Usa “inbound-no-media” or “inbound-bypass-media” en la configuracón SIP si deseas hacerlo para todas las llamadas © 2011 Sangoma Technologies 23/11/2011 34
  • 35. Bypass Media • Puedes reproducir archivos de audio! (uuid_broadcast) • uuid_media [off] puede re-invitar a FreeSWITCH dentro y fuera del path de audio • Grabación de llamadas fallará a menos de que pongas a FreeSWITCH de nuevo en el path de audio manualmente © 2011 Sangoma Technologies 23/11/2011 35
  • 36. Bypass Media © 2011 Sangoma Technologies 23/11/2011 36
  • 37. Proxy Media • También conocido como “transparent proxy mode”para el RTP • Ninguna manipulación del RTP está habilitada • Solo el atributo “c=” en el SDP is modificado • Permite que FreeSWITCH pase audio en codecs que no soporta © 2011 Sangoma Technologies 23/11/2011 37
  • 38. Proxy Media • Usa la variable “proxy_media=true” antes de ejecutar “bridge” • Usa el parámetro “inbound-proxy-media” en la configuración SIP si deseas hacerlo en todas las llamadas • En la mayoría de los casos querras habilitar tambien “late negotiation” © 2011 Sangoma Technologies 23/11/2011 38
  • 39. Proxy Media © 2011 Sangoma Technologies 23/11/2011 39
  • 40. Conclusión © 2011 Sangoma Confidential 23/11/2011 40
  • 41. Conclusión • La flexibilidad de FreeSWITCH en manejo de audio y señalización en muy amplia • FreeSWITCH soporta virtualmente cualquier codec de la industria (y agregar nuevos codecs es un proceso simple) • FreeSWITCH tiene la capacidad de transportar formatos de audio desconocidos • El transcoding puede ser efectuado en software o hardware © 2011 Sangoma Technologies 23/11/2011 41
  • 42. Gracias! moy@sangoma.com © 2011 Sangoma Confidential 23/11/2011 42