Más contenido relacionado
La actualidad más candente (20)
Similar a Negociacion de codecs en asterisk (20)
Más de PaloSanto Solutions (20)
Negociacion de codecs en asterisk
- 2. Agenda
• Codecs de Audio
• Transcoding
• Negociación de Codecs
• Transcoding con Sangoma
© 2011 Sangoma Technologies 4/11/2011 2
- 4. Codecs de Audio
• Los codecs codifican y decodifican la voz para su transmisión
por una medio digital
– Algoritmo matemático (la salsa secreta)
– Bit rate (cuantos bits en un segundo)
– Sampling rate (cuantas muestras en en un segundo)
– Paquetización (cuantos bytes por cada paquete)
• El algoritmo es la parte central del codec
• El bit rate define el ancho de banda requerido
• El “sampling rate” define la calidad (al menos parcialmente)
• La paquetización afecta la latencia y un ancho de banda extra
© 2011 Sangoma Technologies 4/11/2011 4
- 5. Codecs de Audio
• G.711 (PCMU/PCMA, Ulaw/Alaw) – Banda angosta (Narrowband)
– 64kbps (Bit rate)
– 8kHz (Sampling rate)
– 10ms, 20ms, 30ms, 40ms … + (Paquetización)
• G.722 – Banda ancha (Wideband)
– 48kbps, 56kbps and 64kbps
– 16kHz (IANA lo define a 8kHz debido a un error histórico en el
RFC1890)
– 10ms, 20ms, 30ms, 40ms … +
• G.722.1 Annex C – Ultra banda ancha (Ultra-wideband)
– 48kbps
– 32kHz
– 20ms, 40ms, 60ms
© 2011 Sangoma Technologies 4/11/2011 5
- 6. Codecs de Audio
• Asterisk soporta una amplia gama de codecs
– Narrowband (G.711, G.726, G.723.1, G.729AB, Speex …)
– Wideband (G.722, Siren7, Speex …)
– Ultra-wideband (Siren14)
• Asterisk requiere el sonido en formato L16 (linear 16 bits)para
su manipulación (mezclar audio o alterarlo)
• Los “translators” codifican y decodifican hacia/de un codec a
otro (tipicamente hacia/de L16)
• Asterisk puede hacer “pass-thru” de codecs que no conoce
© 2011 Sangoma Technologies 4/11/2011 6
- 9. Transcoding
• Requerido cuando los nodos de comunicación no tienen
un codec en común
• Asterisk debe permanecer en el “path” de audio
• Incrementa el uso del CPU (particularmente si se hace
en software)
• Es requerido si necesitas:
– Grabación de llamadas en distinto formato
– Detección de tonos, PLC etc
– Mezcla de audio (ie, Conferencing with MeetMe)
© 2011 Sangoma Technologies 4/11/2011 9
- 12. Pass-thru de Codecs
• Asterisk puede hacer pass-thru del audio en algunos casos
© 2011 Sangoma Technologies 4/11/2011 12
- 13. Asterisk Translators
• Traductores de Asterisk para pasar de un codec a otro
• Los módulos en codecs/codec_xxxx.so registran uno o mas
traductores al ser cargados
• Cada traductor es asignado un costo dependiendo de los
recursos requeridos para hacer la traducción
• Asterisk encuentra caminos de traducción basandose en
estas medidas
© 2011 Sangoma Technologies 4/11/2011 13
- 17. Negociación de Codecs
• Son las decisiones hechas para escoger un codec para
cada llamada
• Dada una lista de codecs, escoger uno!
• Varios parámetros y condiciones del sistema determinan
las preferencias
• Usualmente es preferible evitar el transcoding con una
configuración apropiada para cada nodo (ej, teléfono
SIP)
© 2011 Sangoma Technologies 4/11/2011 17
- 18. Negociación de Codecs
• No uses PLC nativo si quieres evitar transcoding
• En sip.conf las lineas allow=xx and disallow=xx
determinan tus preferencias globales o por nodo (peer,
friend)
• [darth-vader]
disallow=all
allow=g729
allow=gsm
allow=alaw:20
© 2011 Sangoma Technologies 4/11/2011 18
- 19. Negociación de Codecs
• Los parámetros de los codecs son verificados y
guardados al recibir SDP
• Usa las variables SIP_CODEC, SIP_INBOUND_CODEC
and SIP_OUTBOUND_CODEC, para un mayor control
por llamada
• Usa sip.conf “preferred_codec_only” cuando quieras
controlar con precisión el codec a usar por cada nodo
• Todos los codecs anunciados en el SDP son aceptables!
© 2011 Sangoma Technologies 4/11/2011 19
- 21. Formato de Audio
• Usa la propiedad “audionativeformat” para encontrar el
formato nativo de un canal
– ${CHANNEL(audionativeformat)}
• Asterisk cambia el formato de lectura y escritura “al
vuelo” si un nuevo tipo de RTP es recibido
– ${CHANNEL(audioreadformat)}
– ${CHANNEL(audiowriteformat)}
• El primer paquete RTP determina el codec a usar
cuando existen multiples opciones
© 2011 Sangoma Technologies 4/11/2011 21
- 22. Modos de RTP
• El parámetro “directmedia” (el viejo “canreinvite”) causa
que el RTP vaya directo entre los nodos enviando un
nuevo INVITE o un UPDATE
• El nuevo parámetro “directrtpsetup” permite también que
ambos nodos se comuniquen directo, pero no requiere
un nuevo INVITE o un UPDATE
• En ambos modos Asterisk no será capaz de hacer
transcoding
© 2011 Sangoma Technologies 4/11/2011 22
- 25. Sangoma Transcoding
• El más amplio soporte de codecs en la industria
• Funcionamiento basado en Ethernet y RTP
• Interfaz SOAP para el control de transcoding
• Multiples servidores pueden usar una sola tarjeta
• Actualización de firmware en el campo de trabajo
• Licencias actualizables (desde 30 licenses hasta 400)
© 2011 Sangoma Technologies 4/11/2011 25
- 26. Implementación con Servidor Único
Asterisk
Capa
de
traducción
codec_sangoma
Cliente
SOAP
(libsngtc-‐node)
Control
via
conexión
SOAP/TCP
Servidor
SOAP
RTP
(Voice)
API
Tarjetas
detectadas
(libsng-‐tc)
automaGcamente
Driver
ethernet
standard
© 2011 Sangoma Technologies 4/11/2011 26
- 27. Implementación Distribuida
Servidor
de
Transcoding
Servidor
de
Aplicación
Asterisk
Capa
de
traducc.
sangoma_codec
Cliente
SOAP
(libsngtc-‐node)
Control
RTP
(Conexión
SOAP
TCP)
(Voz)
Servidor
SOAP
Servidor
de
Aplicación
API
(libsng-‐tc)
Asterisk
Capa
de
traducc.
Driver
ethernet
standard
codec
module
Cliente
SOAP
(libsngtc-‐node)
RTP
(Voz)
© 2011 Sangoma Technologies 4/11/2011 27
- 28. Capacidades
Codec/P
Time
10
ms
20
ms
30
ms
40
ms
50
ms
G.729
AB
300
440
459
462
466
G.722
290
388
410
388
GSM
480
AMR
12.20
200
226
AMR
4.75
258
281
ILBC
15.2
310
298
ILBC
13.3
273
G.723
5.3
200
G.723
6.3
200
G.726
32
310
450
480
480
480
PCM/U
310
390
420
440
460
PCM/A
310
390
420
440
460
© 2011 Sangoma Technologies 4/11/2011 28
- 29. Codecs en Asterisk por D-Series
• G.729
• G.726-32
• G.722
• G.722.1
• G.723.1
• iLBC
• AMR
– *más codecs son soportados por las tarjetas D-series
pero no implementados o soportados por Asterisk
© 2011 Sangoma Technologies 4/11/2011 29