SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Negociación de codecs en
                 Asterisk
                               Moisés Silva
            Ingeniero / Manager de Software
                        moy@sangoma.com
Agenda
•  Codecs de Audio

•  Transcoding

•  Negociación de Codecs

•  Transcoding con Sangoma



          © 2011 Sangoma Technologies   4/11/2011   2
Codecs de Audio



© 2011 Sangoma Confidential            4/11/2011   3
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
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
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
Codecs de Audio




      © 2011 Sangoma Technologies   4/11/2011   7
Transcoding


© 2011 Sangoma Confidential          4/11/2011   8
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
Asterisk Transcoding
•  Transcoding en una llamada de una sola pierna




            © 2011 Sangoma Technologies            4/11/2011   10
Asterisk Transcoding
•  Transcoding de 2 piernas SIP




            © 2011 Sangoma Technologies   4/11/2011   11
Pass-thru de Codecs
•  Asterisk puede hacer pass-thru del audio en algunos casos




             © 2011 Sangoma Technologies              4/11/2011   12
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
Asterisk Translators




      © 2011 Sangoma Technologies   4/11/2011   14
Asterisk Translators




      © 2011 Sangoma Technologies   4/11/2011   15
Negociación de codecs


© 2011 Sangoma Confidential                4/11/2011   16
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
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
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
Negociación de Codecs




       © 2011 Sangoma Technologies   4/11/2011   20
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
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
Asterisk con “directmedia”




        © 2011 Sangoma Technologies   4/11/2011   23
Sangoma Transcoding


© 2011 Sangoma Confidential                   4/11/2011   24
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
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
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
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
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
Gracias!


© 2011 Sangoma Confidential       4/11/2011   30

Más contenido relacionado

La actualidad más candente

Ethernet VPN - Layer 2 Scalability
Ethernet VPN - Layer 2 ScalabilityEthernet VPN - Layer 2 Scalability
Ethernet VPN - Layer 2 Scalability
Shivlu Jain
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
hugo lu
 

La actualidad más candente (20)

20170925 onos and p4
20170925 onos and p420170925 onos and p4
20170925 onos and p4
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: Dialplan
 
How Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar LeibovichHow Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar Leibovich
 
Embedded linux network device driver development
Embedded linux network device driver developmentEmbedded linux network device driver development
Embedded linux network device driver development
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
MPLS: Multiprotocol Label Switching
MPLS: Multiprotocol Label SwitchingMPLS: Multiprotocol Label Switching
MPLS: Multiprotocol Label Switching
 
Cluster pelican hpc
Cluster pelican hpcCluster pelican hpc
Cluster pelican hpc
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Power optimization for Android apps
Power optimization for Android appsPower optimization for Android apps
Power optimization for Android apps
 
Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation Protocol
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
ospf isis
ospf   isisospf   isis
ospf isis
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Mpls
MplsMpls
Mpls
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
Ethernet VPN - Layer 2 Scalability
Ethernet VPN - Layer 2 ScalabilityEthernet VPN - Layer 2 Scalability
Ethernet VPN - Layer 2 Scalability
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
Asterisk: the future is at REST
Asterisk: the future is at RESTAsterisk: the future is at REST
Asterisk: the future is at REST
 

Destacado

Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con Asterisk
Nicolás Gudiño
 
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
Diego Llanes
 
MANUAL PARA CONFIGURACIÓN DE ELASTIX
MANUAL PARA CONFIGURACIÓN DE ELASTIXMANUAL PARA CONFIGURACIÓN DE ELASTIX
MANUAL PARA CONFIGURACIÓN DE ELASTIX
miguelangelperezhenao
 

Destacado (15)

Vtiger CRM and asterisk
Vtiger CRM and asteriskVtiger CRM and asterisk
Vtiger CRM and asterisk
 
Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con Asterisk
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
 
Presentacion Hacking Asterisk
Presentacion Hacking AsteriskPresentacion Hacking Asterisk
Presentacion Hacking Asterisk
 
Una breve mirada a mango analytics
Una breve mirada a mango analyticsUna breve mirada a mango analytics
Una breve mirada a mango analytics
 
Incremente la productividad integrando Vtiger CRM con Elastix
Incremente la productividad integrando Vtiger CRM con ElastixIncremente la productividad integrando Vtiger CRM con Elastix
Incremente la productividad integrando Vtiger CRM con Elastix
 
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
 
Las 12 pruebas de Asterisk
Las 12 pruebas de AsteriskLas 12 pruebas de Asterisk
Las 12 pruebas de Asterisk
 
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
 
Qué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no mirasQué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no miras
 
Open Source
Open SourceOpen Source
Open Source
 
Los mejores trucos de Asterisk
Los mejores trucos de AsteriskLos mejores trucos de Asterisk
Los mejores trucos de Asterisk
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
 
MANUAL PARA CONFIGURACIÓN DE ELASTIX
MANUAL PARA CONFIGURACIÓN DE ELASTIXMANUAL PARA CONFIGURACIÓN DE ELASTIX
MANUAL PARA CONFIGURACIÓN DE ELASTIX
 
Mudras,Mantras Y Mandalas
Mudras,Mantras Y MandalasMudras,Mantras Y Mandalas
Mudras,Mantras Y Mandalas
 

Similar a Negociacion de codecs en asterisk

Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
Moises Silva
 
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
Solxitlaly Guerra
 
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT 4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
Saul Curitomay
 
Protocolos enrutamiento rip y rpt.ppt renovado
Protocolos enrutamiento rip y rpt.ppt renovadoProtocolos enrutamiento rip y rpt.ppt renovado
Protocolos enrutamiento rip y rpt.ppt renovado
Elvis Barahona Alvarado
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
maxicarri
 
Diseño de la red I.E. César Vallejo
Diseño de la red I.E. César VallejoDiseño de la red I.E. César Vallejo
Diseño de la red I.E. César Vallejo
Williams Cano
 
4 tema de exposicion
4 tema de exposicion 4 tema de exposicion
4 tema de exposicion
JuanNoa9
 
Protocolos de red clase 2
Protocolos de red   clase 2Protocolos de red   clase 2
Protocolos de red clase 2
ing_jlcarrillo
 
Conf basica switch-p1
Conf basica switch-p1Conf basica switch-p1
Conf basica switch-p1
1 2d
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
guestea241d
 

Similar a Negociacion de codecs en asterisk (20)

Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
 
Internet protocol-television
Internet protocol-televisionInternet protocol-television
Internet protocol-television
 
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
 
Iba2008 Servicios
Iba2008 ServiciosIba2008 Servicios
Iba2008 Servicios
 
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT 4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT
 
Modelo tcp
Modelo tcpModelo tcp
Modelo tcp
 
Wireshark
WiresharkWireshark
Wireshark
 
Protocolos enrutamiento rip y rpt
Protocolos enrutamiento rip y rptProtocolos enrutamiento rip y rpt
Protocolos enrutamiento rip y rpt
 
Protocolos enrutamiento rip y rpt.ppt renovado
Protocolos enrutamiento rip y rpt.ppt renovadoProtocolos enrutamiento rip y rpt.ppt renovado
Protocolos enrutamiento rip y rpt.ppt renovado
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Diseño de la red I.E. César Vallejo
Diseño de la red I.E. César VallejoDiseño de la red I.E. César Vallejo
Diseño de la red I.E. César Vallejo
 
Tcp ip aplicaciones
Tcp ip aplicacionesTcp ip aplicaciones
Tcp ip aplicaciones
 
IP-TV.pptx
IP-TV.pptxIP-TV.pptx
IP-TV.pptx
 
Expo9
Expo9Expo9
Expo9
 
4 tema de exposicion
4 tema de exposicion 4 tema de exposicion
4 tema de exposicion
 
Protocolos de red clase 2
Protocolos de red   clase 2Protocolos de red   clase 2
Protocolos de red clase 2
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
 
Conf basica switch-p1
Conf basica switch-p1Conf basica switch-p1
Conf basica switch-p1
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
 

Más de PaloSanto Solutions

Más de PaloSanto Solutions (20)

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
 
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
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
 
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
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
 
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)
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - ConfiguraciónPorteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
Porteros IP SURiX con sin Video - Aplicaciones - Casos de éxito - Configuración
 
Plan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con DundiPlan de Marcado Distribuido con Dundi
Plan de Marcado Distribuido con Dundi
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Negociacion de codecs en asterisk

  • 1. Negociación de codecs en Asterisk Moisés Silva Ingeniero / Manager de Software moy@sangoma.com
  • 2. Agenda •  Codecs de Audio •  Transcoding •  Negociación de Codecs •  Transcoding con Sangoma © 2011 Sangoma Technologies 4/11/2011 2
  • 3. Codecs de Audio © 2011 Sangoma Confidential 4/11/2011 3
  • 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
  • 7. Codecs de Audio © 2011 Sangoma Technologies 4/11/2011 7
  • 8. Transcoding © 2011 Sangoma Confidential 4/11/2011 8
  • 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
  • 10. Asterisk Transcoding •  Transcoding en una llamada de una sola pierna © 2011 Sangoma Technologies 4/11/2011 10
  • 11. Asterisk Transcoding •  Transcoding de 2 piernas SIP © 2011 Sangoma Technologies 4/11/2011 11
  • 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
  • 14. Asterisk Translators © 2011 Sangoma Technologies 4/11/2011 14
  • 15. Asterisk Translators © 2011 Sangoma Technologies 4/11/2011 15
  • 16. Negociación de codecs © 2011 Sangoma Confidential 4/11/2011 16
  • 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
  • 20. Negociación de Codecs © 2011 Sangoma Technologies 4/11/2011 20
  • 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
  • 23. Asterisk con “directmedia” © 2011 Sangoma Technologies 4/11/2011 23
  • 24. Sangoma Transcoding © 2011 Sangoma Confidential 4/11/2011 24
  • 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
  • 30. Gracias! © 2011 Sangoma Confidential 4/11/2011 30