6/06/2015

Configurando Teléfonos Análogos en Asterisk

Hay dos métodos populares para conectar los teléfonos analógicos con Asterisk. El primero es mediante el uso de un ATA que se conecta más comúnmente a Asterisk usando el protocolo SIP. La configuración de Asterisk para usar un ATA es la misma que sería para cualquier otro teléfono basado en SIP. El otro método es conectar directamente los teléfonos al servidor Asterisk usando hardware de telefonía de un vendedor tal como Digium. Digium vende tarjetas telefónicas que se pueden agregar a su servidor para proporcionar puertos FXS para conectar teléfonos analógicos (o fax). A los fines de demostrar la configuración, vamos a mostrar la configuración necesaria si tuviera una tarjeta AEX440E Digium, que es una AEX410 PCI Express con cuatros módulos FXS y cancelación de eco basado en hardware.

Nota: Independientemente del hardware que está utilizando, consulte la documentación del fabricante para conocer los requisitos de configuración específicos del hardware.

En primer lugar, asegúrese de que tanto Asterisk y DAHDI están instalados (obtener instrucciones de "Cómo instalar esto" ). Tenga en cuenta que DAHDI debe ser instalado antes de instalar Asterisk. Cuando instale DAHDI, asegure de instalar el init scrit también (que en la mayoría de los casos se instala de forma automática, de lo contrario, utilice make config desde el directorio tools). Esto asegurará que su hardware es apropiadamente inicializado cuando el sistema se inicia. El init script es instalado desde el paquete  DAHDI-tools.

El init script utiliza el archivo /etc/dahdi/modules para determinar qué módulos deben ser cargados para soportar el hardware en el sistema. La instalación del init script intenta configurar automáticamente el archivo para usted, pero usted debe comprobarlo para asegurarse de que es correcto:

# Autogenerated by tools/xpp/dahdi_genconf (Dahdi::Config::Gen::Modules) on
# Tue Jul 27 10:31:46 2010
# If you edit this file and execute tools/xpp/dahdi_genconf again,
# your manual changes will be LOST.
wctdm24xxp

Hay uno o más archivo de configuración requerido para DAHDI: /etc/dahdi/system.conf. Luce como este:

# Specify that we would like DAHDI to generate tones that are
# used in the United States.
loadzone = us
defaultzone = us

# We have 4 FXS ports; configure them to use FXO signaling.
fxoks = 1-4

Esta configuración asume que la tarjeta está siendo usa en Estado Unidos. Para ver algunos detalles sobre internacionalización refiérase al tema de Internacionalización.


Si la tarjeta que está configurando no cuenta con cancelación de eco basado en hardware, tendrá que añadir una línea más  a /etc/dahdi/system.conf para permitir la cancelación de eco basada en software:

echocanceller = mg2,1-4

Nota: MG2 es el cancelador de eco que viene con el paquete oficial DAHDI. Otro cancelador de ecos open source compatible con DAHDI es OSLEC (Open Source Line Echo Canceller).

Ahora, use el init script para cargar los módulos apropiados e inicializar el hardware:

$ sudo /etc/init.d/dahdi start
Loading DAHDI hardware modules:

wctdm24xxp:                     [ OK ]
Running dahdi_cfg:             [ OK ]

Ahora que DAHDI se ha configurado, es hora de pasar a la configuración correspondiente de Asterisk. Una vez instalado Asterisk, asegúrese de que el módulo chan_dahdi se ha instalado. Si no se ha cargado en Asterisk, compruebe si existe en /usr/lib/asterisk/modules. Si está ahí, edite /etc/asterisk/modules.conf para cargar chan_dahdi.so. Si el modulo no está presente sobre el disco, DAHDI no fue instalado antes de instalar Asterisk; vuelva atrás e instale DAHDI ahora (ver "DAHDI" en la página 63 para más detalles). Usted puede verificar si está presente mediante el siguiente comando:

*CLI> module show like chan_dahdi.so
Module                        Description                                   Use     Count
chan_dahdi.so               DAHDI Telephony Driver                   0
1 modules loaded

A continuación, debe configurar /etc/asterisk/chan_dahdi.conf. Este es el archivo de configuración para el módulo chan_dahdi, que es la interfaz entre Asterisk y DAHDI. Ver el código necesario aquí:


Leer más >>

Comandos del Shell de Asterisk

Asterisk se puede ejecutar como un daemon o como una aplicación. En general, usted tendrá que ejecutarlo como una aplicación cuando se está construyendo, probando y en resoluciones de problemas, y como un daemon cuando se pone en producción.

El comando para iniciar Asterisk es el mismo independientemente de si se está ejecutando como daemon o una aplicación:

Asterisk

Sin embargo, sin ningún argumento, el comando asumirá ciertas opciones por defectos e iniciará Asterisk como una aplicación en el background. En otras palabras, usted no querrá correr  el comando asterisk por sí mismo, sino que tendrá que pasar algunas opciones para definir mejor el comportamiento que busca. La siguiente lista contiene algunos ejemplos de usos comunes.

-h

 Este comando muestra una lista útil de las opciones que puede utilizar.

-c

Esta opción inicia Asterisk como una aplicación (en primer plano). Esto significa que Asterisk está ligado a la sesión de usuario.


-v, -vv, -vvv, -vvvv, etc.

Esta opción se puede utilizar con otras opciones (por ejemplo,-cvvv) con el fin de aumentar el nivel de  detalle de la salida de la consola. Hace exactamente lo mismo que si ejecuta el comando core set verbose n en el CLI, donde n es cualquier número entero entre 0 y 5.

-d, -dd, -ddd, -dddd, etc.

Esta opción se puede utilizar de la misma manera como -v, pero en lugar de la salida normal, esta especificará el nivel depuración de la salida (que es principalmente útil para los desarrolladores que desean solucionar los problemas con el código). Usted también tendrá que activar la salida de información de depuración en el archivo logger.conf.
   
-r 

Este comando es esencial si se quiere conectar al CLI de un proceso de Asterisk que se ejecuta como un demonio. Esta opción sólo funciona si tiene una instancia demonizada de Asterisk que ya se está ejecutando. Para salir de la CLI cuando esta opción está siendo usada, el escriba exit en el CLI.


-T  

Esta opción añadirá fecha y hora a la salida de CLI.


-x 

Este comando le permite pasar una cadena a Asterisk que se ejecutará como si se hubiera escrito en el CLI. A modo de ejemplo, para obtener una lista rápida de todos los canales en uso sin tener que iniciar la consola de Asterisk, simplemente escriba asterisk -rx 'core show channels’ "desde el shell, y obtendrá los resultados que está buscando.


-g  

Esta opción le  indica a Asterisk tumbar un archivo del core si este se ha bloquea.


Le recomendamos que pruebe algunas combinaciones de estos comandos para ver lo que hacen.

Leer más >>

Que son los CODECs?

La palabra codec proviene de abreviar las palabras Codificación y Decodificación. Su función principal es la de adaptar la información digital de la voz para obtener algún beneficio. Este beneficio en muchos casos es la compresión de la voz de tal manera que podamos utilizar menos ancho de banda del necesario.

Generalmente se entiende por Codecs que son varios modelos matemáticos usados para codificar (y comprimir) la información de audio análoga. Muchos de estos modelos toman en cuenta la capacidad del cerebro humano para formar una impresión a partir de información incompleta.

Todos hemos visto las ilusiones ópticas, del mismo modo, los algoritmos de compresión de voz se aprovechan de nuestra tendencia a interpretar lo que creemos que debemos escuchar, en lugar de lo que realmente escuchamos. El propósito de los diferentes algoritmos de codificación es estrictamente mantener el balance entre la eficiencia y la calidad.Antes de profundizar más en cada uno de los Codecs individuales, vamos a echar un vistazo en la siguiente tabla.



CODEC                  DATA BITRATE (KBPS)                      ¿REQUIERE LICENCIA?
G.711
64 Kbps
No
G.726 16, 24, 32 o 40 Kbps No
G.729A 8 Kbps Si
GSM 13 Kbps No
ILBC 13.3 Kbps (30-ms frame)
o 15.2 Kbps (20-ms frames)
No
Speex
Variables (entre 2.15 y 22.4 Kbps)
No
g.722 64 Kbps No



G.711

G.711 es el códec fundamental de la PSTN. De hecho, si alguien se refiere a PCM con respecto a una red telefónica, se le permite pensar en G.711. Dos métodos de comprensión son usados: ulaw en Norte América y alaw en el resto del mundo. Cualquieras de los 2 métodos proporciona  una palabra de 8 bit transmitida 8,000 veces por segundo. Si saca cuentas, usted veras que se requieren 64,000 bits para ser transmitidos por segundo.

Mucha gente le dirá que G.711 es un códec sin compresión. Esto no es exactamente cierto, como el companding (compresión-expansión)  es considerado una forma de compresión. Lo que es cierto es que G.711 es el códec base desde el cual todos los demás se derivan.

G.711 impone una carga mínima (casi cero) en la CPU.


G.726

Este codec ha existido desde hace un tiempo (solía ser G.721, que ahora es obsoleto), y es uno de los códecs comprimidos originales. Es también conocido como Adaptive Differential Pulse-Code Modulation (ADPCM), y este puede correr en varias velocidades de bits (bitrates). Las velocidades más comunes son 16 Kbps, 24 Kbps y 32 Kbps. Hasta el momento de escribir estas líneas, Asterisk  únicamente soportaba el rate de ADPCM-32 que es el tipo más difundido y popular de este códec.

G.726 ofreces una calidad casi idéntica a G.711, pero este usa la mita de ancho de banda. Esto es posible porque en lugar de enviar el resultado de la medición de cuantificación, se envía sólo información suficiente para describir la diferencia entre la muestra actual y la anterior. G.726 cayó en desgracia en la década de 1990 debido a su incapacidad para llevar las señales de fax y módem, pero debido a su relación calidad-ancho de banda/CPU ahora está haciendo una reaparición. G.726 es especialmente atractivo, ya que no requiere una gran cantidad de trabajo computacional del sistema.


G.729A

Teniendo en cuenta el poco ancho de banda que utiliza, G.729A ofrece una impresionante calidad de sonido. Esto lo hace mediante el uso de Estructura Conjugada Predicción Lineal Algebraica con Excitación por Código (CS-ACELP.). A causa de las patentes, no se puede utilizar G.729A sin tener que pagar una cuota de licencia, sin embargo, es muy popular y está bien apoyado en muchos teléfonos y sistemas diferentes.

Para lograr su impresionante relación de compresión, este codec requiere una igualmente impresionante cantidad de esfuerzo por parte del CPU. En un sistema Asterisk, el uso de codecs muy comprimidos agotará rápidamente los recursos del CPU.

G.729A utiliza 8 Kbps de ancho de banda.


GSM

El códec  Sistema Global para Comunicaciones Móviles (GSM) es el favorito de Asterisk. Este codec no viene gravado con un requisito de licencia de la manera que lo hace G.729A, y ofrece un excelente rendimiento con respecto a la demanda  de  CPU.

La calidad de sonido se considera generalmente que es de un grado menor que la producida por G.729A, pero gran parte de esto se reduce a opinión personal. GSM opera a 13 Kbps.


ILBC

El Internet Códec Low Bitrate (iLBC) ofrece una atractiva mezcla de bajo ancho de banda y calidad, y es especialmente adecuado para mantener una calidad razonable en los enlaces de red con pérdidas.

Naturalmente, Asterisk soporta iLBC, pero no es tan popular como el codecs ITU, y este puede ser compatible con los teléfonos IP comunes y sistemas de VoIP comerciales. IETF RFC 3951 y 3952 se han publicado en apoyo de iLBC y iLBC está en la pista de las normas IETF.

Debido a que iLBC utiliza algoritmos complejos para lograr sus altos niveles de compresión,  tiene un costo bastante elevado en consumo de CPU en Asterisk.

Mientras que usted está autorizado para utilizarla iLBC sin pagar licencia, el titular de la patente iLBC, Global IP Sound (GIPS), quiere saber cada vez que lo utilice en una aplicación comercial. La forma de hacerlo es mediante la descarga y la impresión de una copia de la iLBC licencia, firmarlo y devolverlo a GIPS.

ILBC opera a 13.3 Kbps (frames de 30 ms) y 15,2 Kbps (frames de 20 ms).


SPEEX

Speex es un códec de tasa de bits variable (VBR), lo que significa que es capaz de modificar dinámicamente su tasa de bits para responder a las condiciones cambiantes de la red. Se ofrece en versiones tanto de banda estrecha y de banda ancha, en función de si quieres calidad telefónica o mejor.

Speex es un codec totalmente gratis, licenciado bajo la variante Xiph.org de la licencia BSD.

Un proyecto de Internet para Speex está disponible, y más información sobre Speex se puede encontrar en su página web (http://www.speex.org).

Speex puede funcionar a cualquier  tasa de bits desde 2,15 hasta 22,4 Kbps, debido a su velocidad de bits variable.


G.722

G.722 es un códec estándar ITU-T que fue aprobado en 1998. El códec G.722 produce una voz de mucho más calidad en el mismo espacio que G.711 (64 Kbps) y está empezando a ser popular entre los fabricantes de dispositivos de VoIP. Las patentes de G.722 han caducado, por lo que es de libre acceso. Si tiene acceso a dispositivos que admiten G.722, usted quedará impresionado por la mejora de la calidad.

MP3

Seguro está pensando, MP3 es un codec? En concreto, es el Moving Picture Experts Group Audio Layer 3 estándar de codificación. Con un nombre así, no es de extrañar que lo llamemos MP3! En Asterisk, el codec MP3 se utiliza normalmente para la música en espera (MoH). MP3 no es un códec de telefonía, ya que está optimizado para la música, no para voz, sin embargo, es muy popular entre los sistemas de telefonía VoIP como un método de entrega de MoH.

Leer más >>