Manejo de Medios en
FreeSWITCH
Moisés Silva
Software Engineer / Manager
[email protected]
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!
[email protected]
© 2011 Sangoma Confidential
23/11/2011
42
Descargar

2011 PowerPoint Template