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...
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 ...
FreeSWITCH
• Surge con la idea de tener una mejor plataforma que Asterisk
• Su author, Anthony Minessale, fué el mayor con...
FreeSWITCH – Protocolos VoIP
• SIP
– UDP, TCP, TLS, SCTP, SRTP, ZRTP, IPv6 …
• Gtalk (jingle)
• Skype
• RTMP
• H.323, Skin...
FreeSWITCH – Protocolos PSTN
• FXO / FXS
• PRI / BRI
• MFC-R2
• GSM
• SS7
• Soporte para varios proveedores de hardware (e...
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...
FreeSWITCH – Aplicaciones
•
•
•
•
•
•
•
•
•
•

Softphone
VoIP gateway
PBX
Servidor de registros
Servidor de ruteo de llama...
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 com...
Codecs de Audio
•

G.711 (PCMU/PCMA, Ulaw/Alaw) – Narrowband (banda angosta)
– 64kbps (Bit rate) – 64 mil bits por segundo...
Codecs en FreeSWITCH
• FreeSWITCH soporta una amplia gama de codecs
– Narrowband (G.711, G.726, G.723.1, G.729AB, Speex …)...
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
• Incr...
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...
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 ...
Negociación de Codecs
• 3 algoritmos de negociación
– Generoso (generous)
– Ambicioso (greedy)
– Scrooge (Bah HUMBUG!)
• E...
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 ...
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...
Negociación Tardía (late negotiation)
• Puedes examinar el SDP entrante y reescribirlo para
ajustarlo a tus necesidades
• ...
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 perm...
Bypass Media
• Puedes reproducir archivos de audio! (uuid_broadcast)
• uuid_media [off] puede re-invitar a FreeSWITCH dent...
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
• S...
Proxy Media
• Usa la variable “proxy_media=true” antes de ejecutar
“bridge”
• Usa el parámetro “inbound-proxy-media” en la...
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 virtualmen...
Gracias!
moy@sangoma.com

© 2011 Sangoma Confidential

23/11/2011

42
Upcoming SlideShare
Loading in …5
×

Manejo de Medios en FreeSWITCH

853 views

Published on

Entendiendo transcoding en FreeSWITCH

  • Be the first to comment

Manejo de Medios en FreeSWITCH

  1. 1. Manejo de Medios en FreeSWITCH Moisés Silva Software Engineer / Manager moy@sangoma.com
  2. 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. 3. Introducción a FreeSWITCH © 2011 Sangoma Confidential 23/11/2011 3
  4. 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. 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. 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. 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. 8. FreeSWITCH – Lenguajes • Lua • PERL • Ruby • Python • Java & .NET • JavaScript © 2011 Sangoma Technologies 23/11/2011 8
  9. 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. 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. 11. FreeSWITCH – Hola Mundo © 2011 Sangoma Technologies 23/11/2011 11
  12. 12. FreeSWITCH – Hola Mundo (LUA) © 2011 Sangoma Technologies 23/11/2011 12
  13. 13. FreeSWITCH – Contestando SMS © 2011 Sangoma Technologies 23/11/2011 13
  14. 14. Codecs de Audio © 2011 Sangoma Confidential 23/11/2011 14
  15. 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. 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. 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. 18. Codecs en FreeSWITCH © 2011 Sangoma Technologies 23/11/2011 18
  19. 19. Transcoding © 2011 Sangoma Confidential 23/11/2011 19
  20. 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. 21. FreeSWITCH Transcoding • Transcoding en una llamada con una sola pierna SIP © 2011 Sangoma Technologies 23/11/2011 21
  22. 22. FreeSWITCH Transcoding • Transcoding con 2 piernas SIP © 2011 Sangoma Technologies 23/11/2011 22
  23. 23. FreeSWITCH codec pass-thru • Llamada sin transcoding usando un codec proprietario © 2011 Sangoma Technologies 23/11/2011 23
  24. 24. Negociación de Codecs © 2011 Sangoma Confidential 23/11/2011 24
  25. 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. 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. 27. Negociación de Codecs © 2011 Sangoma Technologies 23/11/2011 27
  28. 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. 29. Negociación Temprana (early negotiation) © 2011 Sangoma Technologies 23/11/2011 29
  30. 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. 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. 32. Negociación Tardía (late negotiation) © 2011 Sangoma Technologies 23/11/2011 32
  33. 33. Modos de Audio © 2011 Sangoma Confidential 23/11/2011 33
  34. 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. 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. 36. Bypass Media © 2011 Sangoma Technologies 23/11/2011 36
  37. 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. 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. 39. Proxy Media © 2011 Sangoma Technologies 23/11/2011 39
  40. 40. Conclusión © 2011 Sangoma Confidential 23/11/2011 40
  41. 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. 42. Gracias! moy@sangoma.com © 2011 Sangoma Confidential 23/11/2011 42

×