negociación de codecs en asterisk moisés silva ingeniero / manager de software [email protected]
TRANSCRIPT
![Page 2: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/2.jpg)
• Codecs de Audio
• Transcoding
• Negociación de Codecs
• Transcoding con Sangoma
Agenda
4/11/2011© 2011 Sangoma Technologies
2
![Page 3: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/3.jpg)
Codecs de Audio
4/11/2011© 2011 Sangoma Confidential 3
![Page 4: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/4.jpg)
• 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
Codecs de Audio
4/11/2011© 2011 Sangoma Technologies
4
![Page 5: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/5.jpg)
• 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
Codecs de Audio
4/11/2011© 2011 Sangoma Technologies
5
![Page 6: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/6.jpg)
• 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
Codecs de Audio
4/11/2011© 2011 Sangoma Technologies
6
![Page 7: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/7.jpg)
Codecs de Audio
4/11/2011© 2011 Sangoma Technologies
7
![Page 8: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/8.jpg)
Transcoding
4/11/2011© 2011 Sangoma Confidential 8
![Page 9: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/9.jpg)
• 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)
Transcoding
4/11/2011© 2011 Sangoma Technologies
9
![Page 10: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/10.jpg)
Asterisk Transcoding
4/11/2011© 2011 Sangoma Technologies
10
• Transcoding en una llamada de una sola pierna
![Page 11: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/11.jpg)
Asterisk Transcoding
4/11/2011© 2011 Sangoma Technologies
11
• Transcoding de 2 piernas SIP
![Page 12: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/12.jpg)
Pass-thru de Codecs
4/11/2011© 2011 Sangoma Technologies
12
• Asterisk puede hacer pass-thru del audio en algunos casos
![Page 13: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/13.jpg)
Asterisk Translators
4/11/2011© 2011 Sangoma Technologies
13
• 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
![Page 14: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/14.jpg)
Asterisk Translators
4/11/2011© 2011 Sangoma Technologies
14
![Page 15: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/15.jpg)
Asterisk Translators
4/11/2011© 2011 Sangoma Technologies
15
![Page 16: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/16.jpg)
Negociación de codecs
4/11/2011© 2011 Sangoma Confidential 16
![Page 17: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/17.jpg)
• 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)
Negociación de Codecs
4/11/2011© 2011 Sangoma Technologies
17
![Page 18: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/18.jpg)
• 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=g729allow=gsm
allow=alaw:20
Negociación de Codecs
4/11/2011© 2011 Sangoma Technologies
18
![Page 19: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/19.jpg)
• 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!
Negociación de Codecs
4/11/2011© 2011 Sangoma Technologies
19
![Page 20: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/20.jpg)
Negociación de Codecs
4/11/2011© 2011 Sangoma Technologies
20
![Page 21: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/21.jpg)
• 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
Formato de Audio
4/11/2011© 2011 Sangoma Technologies
21
![Page 22: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/22.jpg)
• 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
Modos de RTP
4/11/2011© 2011 Sangoma Technologies
22
![Page 23: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/23.jpg)
Asterisk con “directmedia”
4/11/2011© 2011 Sangoma Technologies
23
![Page 24: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/24.jpg)
Sangoma Transcoding
4/11/2011© 2011 Sangoma Confidential 24
![Page 25: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/25.jpg)
• 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)
Sangoma Transcoding
4/11/2011© 2011 Sangoma Technologies
25
![Page 26: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/26.jpg)
Implementación con Servidor Único
4/11/2011© 2011 Sangoma Technologies
26
API(libsng-tc)
AsteriskCapa de traducción
Driver ethernet standard
RTP(Voice)
codec_sangoma
Servidor SOAP
Cliente SOAP(libsngtc-node)
Control via conexión SOAP/TCP
Tarjetas detectadas automaticamente
![Page 27: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/27.jpg)
Implementación Distribuida
4/11/2011© 2011 Sangoma Technologies
27
API (libsng-tc)
Driver ethernet standard
RTP(Voz)
Servidor SOAP
AsteriskCapa de traducc.
sangoma_codec
AsteriskCapa de traducc.
codec module
RTP(Voz)
Cliente SOAP(libsngtc-node)
Servidor de TranscodingServidor de Aplicación
Servidor de Aplicación
Cliente SOAP(libsngtc-node)
Control(Conexión SOAP TCP)
![Page 28: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/28.jpg)
Capacidades
4/11/2011© 2011 Sangoma Technologies
28
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
![Page 29: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/29.jpg)
• 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
Codecs en Asterisk por D-Series
4/11/2011© 2011 Sangoma Technologies
29
![Page 30: Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com](https://reader035.vdocuments.site/reader035/viewer/2022062309/5665b4621a28abb57c911365/html5/thumbnails/30.jpg)
Gracias!
4/11/2011© 2011 Sangoma Confidential 30