Próximo Asterisk Training

March 26th, 2008

Un nuevo Asterisk Training tendrá lugar en Bogotá DC los días 9 al 12 de Abril de 2008.

En esta ocasión se ofrecen descuentos especiales para todos los asistentes de otras ciudades. Programa actualizado con la ultima versión de Asterisk 1.4, incluye Libro “Asterisk, Comunicaciones de Código Abierto”, CDROM con materiales del curso, CDROM de AsteriskNOW, CDROM de Digium SwithBox, Camiseta, y yo personalmente ofreceré soporte gratuito por 60 días en un portal web especialmente diseñado para el curso.

Mas información visite: www.gecko.com.co

Mas nuevas versiones…

March 11th, 2008

Siguen saliendo nuevas versiones de nuestros queridos productos…

Asterisk 1.4.19-rc1 (detalles, descarga)

Asterisk 1.6.0 beta5 (detalles, descarga)

AsteriskNow 1.0.1 (detalles, descarga)

Asterisk 1.6.0 beta 4

February 25th, 2008

Esta versión contiene las siguientes mejoras:

  • 12020, una mejora al formato del CLI
  • 11964, agregó la habilidad de obtener el número llamado original en llamadas con SS7
  • 11873, agregó cambios al API para manejar originación y terminación T.38 (La versión de app_fax que se encuentra en Asterisk-addons ya lo soporta.)
  • 11553, agregó una variable de estado a la aplicación ChannelRedirect()

También incluye las siguientes correciones mayores (las menores no se incluyen en esta lista):

  • 11960, caida por chan_sip
  • 12021, caida asociada a especificar formatos inválidos para el voicemail
  • 11779, arregla la habilitación de cancelación de eco para llamadas entrantes con SS7
  • 11740, arregla el manejo de tonos DTMF
  • 11864, arregla el reporte de estado de dispositivo en llamadas entrantes FXO
  • 12012, caida por chan_local
  • Se arregla una regresión en el manejo de codec introducida en la versión 1.6.0-beta3

Para conocer la lista completa de cambios vea el archivo ChangeLog en http://downloads.digium.com/.

Asterisk 1.4.18 ¡super probado!

February 10th, 2008

Asterisk 1.4.18 ya está aqui, y es la primera versión que previo a su liberación pasó por varias versiones de prueba o ‘release candidate’ lo que nos asegura que ha sido probada por ‘beta testers’ antes de ser liberada. Este mecanismo de versiones -rc hace parte del nuevo sistema de versiones usado por Digium de aqui en adelante. Para ver la lista de cambios ver el ChangeLog.Para descargar la nueva version ir a la página de descarga

Asterisk 1.6 ofrece SIP seguro (TLS)

February 7th, 2008

Hasta la versión 1.4 Asterisk sólo ha soportado SIP sobre UDP. A partir de la versión 1.6 ofrece soporte tanto TCP como TLS. Esta adición la aportan Brett Bryant y James Golovich.

Digium anuncia la nueva TDM410P

February 6th, 2008

Digium ha lanzado al mercado una nueva tarjeta que se agrega a su familia de tarjetas análogas compatibles con Asterisk, la TDM410P. Esta tarjeta es una actualización de la ampliamente conocida TDM400P de 4 puertos análogos, ahora con opción de cancelación de ECO y la nueva tecnología VoiceBus de Digium.

tdm410P

El precio en EEUU de una TDM404E (4 puertos FXO + cancelador de eco) es de US$ 644.38. Para mayor información visita la página de producto en Digium haciendo click aquí.

IAXmodem: Instalación & Configuración (1)

February 6th, 2008

Hay dos formas de usar IAXmodem, con librerías estáticas o dinámicas. Si en su máquina existe alguna versión de spandsp o libiax2 diferentes a las incluidas con IAXmodem lo mejor es usar librerías estáticas (por ejemplo: para distribuciones preinstaladas como Trixbox o similares) de otro modo se puede realizar una instalación dinámica.

Instalación de libiax2 (para instalación dinámica de iaxmodem)

# cd lib/libiax2
# ./configure
# make
# make install

Instalación de spandsp (para instalación dinámica de iaxmodem)

# cd lib/spandsp
# ./configure
# make
# make install

Para la instalación dinámica debemos asegurarnos de que el directorio donde se ubicarán las librerías (/usr/local/lib) esté definido en /etc/ld.so.conf, de otro modo agregue la línea y ejecute ‘ldconfig’ para actualizar la configuración.

Para construir IAXmodem dinamicamenrte use:

# ./build

Y para estático use:

# ./build static

La instalación de IAXmodem de forma estática sería como se muestra a continuación:

1) Descargue el paquete de IAXmodem de:
http://iaxmodem.sourceforge.net/download.php

#cd /usr/src/
#wget http://umn.dl.sourceforge.net/sourceforge/iaxmodem/iaxmodem-0.3.1.tar.gz

2) Descomprima el paquete descargado:

#tar -zxvf iaxmodem-0.3.1.tar.gz

3) Construya la instalación de forma estática:

#cd iaxmodem-0.3.1
#./build static

4) Copie el ejecutable a la carpeta de ejecutables de su sistema:

#cp iaxmodem /usr/local/bin/

5) Cree el directorio para los archivos de configuración:

#mkdir /etc/iaxmodem

6) Con un editor de texto creamos un archivo para nuestro modem:

#vi /etc/iaxmodem/ttyIAX0

Su contenido sería como se muestra a continuación:

device /dev/ttyIAX0
owner asterisk:asterisk
mode 660
port 45699
refresh 300
server 127.0.0.1
peername 601
secret miclave
cidname IAXmodem 1
cidnumber 601
codec slinear

El significado de los parámetros se detalla a continuación:

device: nombre único del dispositivo
owner: usuario y grupo del sistema que usará IAXmodem para crear el dispositivo
mode: permisos para el dispositivo creado
port: puerto para comunicación con Asterisk, uno dfte para cada dispositivo
refresh: tasa de refresco del registro para el dispositivo IAX
server: IP del servidor Asterisk, usualmente localhost o 127.0.0.1
peername: nombre del dispositivo IAX en Asterisk
secret: clave del dispositivo IAX
cidname: nombre de identificación usado por Asterisk
cidnumber: número de identificación usado por Asterisk
codec: codec de audio a utilizar (slinear, ulaw, alaw)
record: se graba archivo de audio
replay: se reproduce archivo de audio

Próximos Cursos Asterisk 2008

January 28th, 2008

Iniciando el 2008 retomo la gira de Asterisk Trainings comenzando con Bogotá y Ciudad de México.

imagen-cursos

El “Gecko Asterisk Training 2008″ es un curso avanzado de cuatro (4) días 100% en español totalmente basado en la versión 1.4 pero con actualizaciones a las novedades de 1.6. Cada asistente recibirá una copia de mi nuevo libro “Asterisk, Comunicaciones de Código Abierto” junto con muchas otras cosas.
Para Bogotá ya es una tradición contar con estos entrenamientos avanzados catalogados como los mejores disponibles en Latinoamérica, y para México esta edición de nuestro curso se realiza en asocio con TODASH de México y ABP de Estados Unidos, allí estaré como instructor compartiendo mi experiencia y conocimiento en Asterisk con todos los asistentes. Los Testimonios de los asistentes a la versión anterior fueron excelentes, leanlos y no dejen de asistir.

A.Certain

Introducción a la Señalización CAS

August 26th, 2007

La señalización CAS (señalización de canal asociado) es el principio tradicional para señalización donde la esta se envía por cada canal de voz, así, una vez se ha asignado un canal de voz se transmiten señales en el canal, esto es: voz y señalización viajan juntas.

En CAS encontramos la señalización de línea y la de registro. La señalización de línea se requiere durante todo el proceso de la llamada, mientras que las de registro se transmiten sólo durante la fase de establecimiento de la llamada.

Ejemplos de señalización de línea:
Captura, contestación y liberación de un canal de voz.

Ejemplo de señalización de registro:
Envío del número llamado (MDE)

Principios de Señalización CAS

Las líneas CAS trabajan con señalización de canal asociado para sistemas PCM de 30/32 canales bidireccionales con una frecuencia de muestreo de 8 kHz y una capacidad de transmisión de 64 kbps por canal.

La velocidad para la transmisión en serie de 32 intervalos de tiempo (T) es de 2.048 kbps, donde 32 intervalos seguidos constituyen una trama y 16 tramas constituyen una multitrama.

El intervalo de tiempo T0 se usa para sincronización de la trama, el T16 en la trama 0 se usa para sincronización de la multitrama. En CAS la señalización de línea suele enviarse por el intervalo T16, mientras que la señalización de registro tal como categorías o estados, se envía por el canal establecido para el envío de la voz.

Las líneas CAS suelen conectarse mediante cable coaxial a 75 Ohmios, aunque también es común encontrar conexión a través de conectores tipo RJ a 120 Ohmios.

Un protocolo comúnmente usado para telefonía en latinoamérica con CAS es el MFC/R2, un protocolo uno a uno donde los dos dispositivos se comunican con señalización de 4 bits CAS, los bits suelen denominarse ABCD, y representan el estado de la linea.

La siguiente tabla muestra los estados de los bits ABCD:

Tabla CAS

Los canales permanecen en modo de ‘bloqueo’ siempre que no se estén usando y en modo ‘disponible’ cuando los dos extremos están listos para establecer comunicación.

En el caso de una PBX basada en Asterisk, este debe estar activo para que los canales pasen al estado ‘disponible’ y la central pública pueda enviarnos llamadas a través del canal E1 asociado al enlace.

Alfredo Certain

Calidad de Servicio (QoS)

August 5th, 2007

A medida que las redes originalmente diseñadas para datos deden adoptar también la VoIP se requieren mecanismos que nos aseguren que la voz tendrá prioridad, esto debido a que las conversaciones telefónicas ocurren en tiempo real, de manera que es inaceptable que los paquetes de VoIP lleguen tarde o demasiado tarde o no lleguen nunca.

Para resolver este problema se han creado mecanismos para asegurarnos de que los paquetes de VoIP sean priorizados dentro de una red, lo que se denomina calidad de servicio (QoS).

Los factores que intervienen en la calidad de la voz son los siguientes:

  • Codec
  • Ancho de Banda
  • Latencia (Redardo en la llegada de paquetes)
  • Jitter (Variación de la latencia)
  • Pérdida de Paquetes

Es común que la gente piense que con sólo aumentar el ancho de banda a la VoIP se solucionarán sus problemas, pero esto no es necesariamente cierto.

Supongamos que en su compañía es común utilizar teléfonos IP que integran dos puertos Ethernet, de modo que se comparte un único punto en la red entre su teléfono IP y su computadora. Ahora bien, supongamos además que usted necesita transferir archivos con frecuencia entre su PC y otros equipos de la red; pues bien, esta transferencia es como una ‘avalancha’ de datos que tiende a consumir todo el ancho de banda disponible en su conexión a la red lo cual afecta gravemente el rendimiento de aplicaciones de audio o de video.

La mayoría de aplicaciones tienen baja prioridad en la red y tienden a ser tolerantes a los retardos, por ejemplo ligeros retardos mientras usted descarga las noticias no afectarán su objetivo final de ver las noticias, pero en cambio serían inaceptables en su comunicación telefonica por VoIP si estas afectan la calidad de la voz y le generan dificultades para entender lo que le dicen o lo que usted dice.

La capacidad para permitir la perdida de paquetes en la telefonía IP es muy baja, y debe mantenerse por debajo del 2% para que no afecte la calidad de manera notoria. Pero los problemas que en realidad mas afectan a la telefonía IP son la Latencia, el Jitter y el aburrido ECO.

Latencia

Se define como el retardo entre el envío de paquetes y su recepción, pero desde un punto de vista del usuario se definiría como el vacío en la conversación producido por retardos acumulados durante la transferencia de paquetes y los retardos de procesamiento. Estos ultimos retardos a menudo son pasados por alto pero debe tenerse presente que mientras el códec G.711 produce un retardo de procesamiento insignificante el G.729 tiende a producir un retardo mayor debido al proceso de compresión que realiza sobre la voz.

Los retardos debidos a la compresión se pueden reducir al utilizar el códec G.711 en lugar del G.729 siempre que sea posible, por ejemplo en redes locales donde el ancho de banda no es una limitante, pero en conexiones que usan Internet aun se requiere un compresor para disminuir el ancho de banda utilizado por cada llamada.

Los retardos debidos a la red pueden medirse con diversas herramientas (CACTI, Ethereal, etc) y por lo general pueden ajustarse prestando atención a los componentes físicos de la red que a menudo se pasan por alto tales como: conectores en mal estado, campos eléctricos o magnéticos demasiado próximos (Ej: lámparas fluorescentes que se cruzan con el cableado de datos), y demás.

Jitter

El Jitter es la variación en los retardos en la llegada de los paquetes entre su origen y el destino usualmente producida por congestión de tráfico en algún punto de la red o diferencia en el tiempo de transito de paquetes cuando estos viajan por diferentes rutas.

La solución usual es utilizar un Buffer (Jitter Buffer) que almacene los paquetes antes de entregarlos al destino asegurandose asi de que lleguen todos en orden al destino, aunque esto introduce un retardo adicional. En aplicaciones de Telefonía IP como Asterisk es posible configurar un jitterbuffer para corregir este problema.

Por otra parte cuando se trata de Jitter presente en redes LAN o WAN por lo general se corrige incrementando el ancho de banda, por supuesto la priorización de paquetes siempre será una alternativa.

Eco

Cuando tenemos latencia y jitter en una comunicación por VoIP se puede producir el fenómeno del Eco lo que por lo general se resuelve usando ‘canceladores de eco’, ya sean por software o por hardware.

Existen 2 tipos de eco comunes: uno de alto nivel y poco retardo que se produce a nivel local y otro de bajo nivel y mayor retardo que se produce en el extremo remoto. Ambos pueden ser removidos por medio de los canceladores de eco pero es importante comprender que por lo general los canceladores de eco por hardware son mas eficientes que aquellos construidos por software, regla que aplica principalmente a aplicaciones de Telefonía IP por Software como Asterisk, aunque recientemente se han liberado canceladores de eco por software de Octasic (no GPL) que han mostrado una alta eficacia en el tratamiento del eco.

Por otro lado algunas veces el eco se produce dentro del mismo teléfono IP por un pobre diseño acustico o por influencia directa de los materiales con los que se ha construido, lo que puede afectar el desempeño de teléfonos IP de bajo costo que aunque cuentan con una electrónica de calidad son afectados a nivel acustico al permitir un retorno de la voz entre el auricular y el microfono. Por lo general este tipo de eco no puede ser resuelto con canceladores de eco externos al teléfono.

Pérdida de Paquetes

El porcentaje de paquetes que no llegan a su destino mide la pérdida de paquetes de la red. Esta pérdida puede producirse por errores en alguno de los equipos que permiten la conectividad de la red o por sobrepasar la capacidad de algún buffer de algún equipo o aplicación en momentos de congestión. Normalmente en aplicaciones que no funcionan en tiempo real pueden aprovecharse de la retransmisión de los paquetes, pero la telefonía IP funcionan en tiempo real y sus paquetes no pueden ser retransmitidos.

Clasificación & Priorización

La calidad de servicio QoS se encarga de proveer un nivel de servicio para que las diferentes aplicaciones que usen la red se puedan beneficiar de ella de manera apropiada, y ya que no todas las aplicaciones tienen los mismos niveles de exigencia de la red, la calidad de servicio consiste en asignar a cada una la exigencia que requiera.

Para poder hablar de calidad de servicio debemos clasificar el tráfico que viaja por nuestra red. Algunas aplicaciones podrán identificarse entonces por el puerto que utilizan para desplazar sus paquetes mientras que otras pueden usar puertos dinámicos imposibilitando tal identificación.

Las maneras mas comunes de clasificar el tráfico de una red son las siguientes:

  • Protocolo
  • Número de Puerto
  • Cabecera IP
  • Cabecera RTP
  • Contenido (Ejemplo: URL)
  • Patrón de Velocidad y Flujo
  • Señalización RSVP
  • Etiquetas de encaminamiento
  • Firmas personalizadas de aplicaciones

Normalmente la clasificación examina el contenido del paquete IP tales como el protocolo, destino o número de puerto; esta clasificación puede realizarse en cualquier punto de la red, ya sea en los extremos o en la mitad de la red.

Hoy son comunes los switches de red que priorizan los paquetes en los extremos y son una manera apropiada para garantizar que nuestros paquetes lleguen a su destino en las condiciones deseadas, también es posible priorizar paquetes a través de equipos administradores de tráfico, de ancho de banda o a través de firewalls.

Los routers pueden priorizar paquetes en el medio de una red y es algo bastante común hoy en día pero por lo general hay menos conocimiento del tráfico que en los extremos de modo que los routers por lo general clasifican por tamaños de paquete, velocidad de flujo, aunque también pueden hacerlo por contenido y por dirección.

Por lo general no es confiable delegar la clasificación a los usuarios finales o a la misma aplicación y siempre se obtienen mejores resultados dejando la clasificación a un sistema especializado en tal labor, aunque la tendencia actual es que tanto los softphones como los gateways IP jueguen un papel importante en el QoS de la red de VoIP.