Howlet Tecnologies lanza el códec low cost (6 dólares), para Asterisk y FreeSwitch
Podéis encontrar más información en http://www.howlertech.com/

Technorati tags: grandstream, gxe5024, voip, disa,
Hace mucho que no escribía. Parece que el tiempo que antes me sobraba ahora me hace falta. De todas formas hoy he decidido seguir con la configuración de asterisk y explicar la configuración del archivo followme.conf. Este archivo nos permite hacer una cosa muy sencilla: definir una serie de números (extensiones, fijos o celulares) donde desviar la llamada si a la extensión predefinida nadie contesta o si ha sido activada esta opción. Claramente si el desvío es hacia otras extensiones internas no tendrá ningún costo, si lo hacemos hacia números fijos y/o celulares para hacer la llamada tendremos que utilizar proveedores VoIP y pagar la relativa tarifa.
Como ya hemos visto para el desvío de llamada sencillo, podremos activar y desactivar la aplicación según nuestras necesidades.
Primero miramos el archivo de configuración:
nano /etc/asterisk/followme.conf
El archivo empieza con una parte general que es igual para todas las extensiones configuradas. Luego, si queremos, podemos personalizar la configuración para cada extensión.
[general]
featuredigittimeout=>5000 ; numero de milisegundos que tienes el llamado para aceptar o rechazar la llamada
takecall=>1 ; para aceptar la llamada, el llamado, después de descolgar, tendrá que hundir la tecla 1 del teléfono
declinecall=>2 ; para rechazarla la tecla 2
call-from-prompt=>followme/call-from ; este es la voz predefinida que escuchará el llamado anunciándole quien lo está llamando
norecording-prompt=>followme/no-recording ; la voz predefinida si el llamante no ha registrado el propio nombre o si la opción para registrarlo no ha sido acticvada
options-prompt=>followme/options; esta voz anunciará al llamado que tendrá digitar 1 para aceptar la llamada y dos para rechazarla
pls-hold-prompt=>followme/pls-hold-while-try ; El llamante escuchará esta voz que le dirá que espere en línea mientras se intentará localizar el llamado
status-prompt=>followme/status ; Esta voz anunciará al llamante que la persona llamada no se encuentra al momento en su oficina/casa/etc.
sorry-prompt=>followme/sorry ; si al final de todos los desvíos nadie contestará la llamada, esta voz anunciará al llamante que no se ha podido localizar la persona buscada
Ahora empieza la configuración especifica de cada extensión que queremos incluir en este archivo. En este ejemplo definiremos a cuales números llamaremos si la extensión 1000 no contesta
[1000] ; numero de la extensión que queremos configurar
musicclass=>default ; tipo de música en espera que escuchará el llamante mientras se intentará localizar el destinatario de la llamada
context=>default ; el contexto que usará la aplicación followme para localizar el llamado. Si hemos incluidos (como veremos más abajo) números fijos y celulares este contexto tiene que tener acceso a las llamadas externas.
number=>1100,15 ; Aquí empieza la lista de números que se intentará llamar para localizar el destinatario de la llamada. En este ejemplo si el destinatario no contesta a la extensión 1000 llamaremos como segunda opción la extensión 1100 por 15 segundos.
number=> 0057510000000,15; si a la extensión 1100 nadie contesta intentaremos llamar el numero fijo que aparece en esta línea por otros 15 segundos
number=> 0057310000000,15; si al numero fijo tampoco contestan intentaremos llamar al celular
takecall=>1 ; ahora siguen los mismo parámetros que hemos visto en la parte general. Si queremos podemos personalizarlos para cada extensión
declinecall=>2
call-from-prompt=>followme/call-from
followme-norecording-prompt=>followme/no-recording
followme-options-prompt=>followme/options
followme-pls-hold-prompt=>followme/pls-hold-while-try
followme-status-prompt=>followme/status
followme-sorry-prompt=>followme/sorry
Una vez terminada la configuración para la extensión 1000 podemos seguir con otra y así siguiendo.
[1001]
…….
Guardamos los cambios y recargamos la configuración de asterisk:
etc/init.d/asterisk reload
Echamos una mirada a la sinopsis de la aplicación followme. Entramos en la consola:
asterisk –rvvvvvvvvvvvvvvvvvvvvv
y escribimos este comando:
CLI> core show application followme
-= Info about application 'FollowMe' =-
[Synopsis]
Find-Me/Follow-Me application
[Description]
FollowMe(followmeid[,options]):
This application performs Find-Me/Follow-Me functionality for the caller
as defined in the profile matching the <followmeid> parameter in
followme.conf. If the specified <followmeid> profile doesn't exist in
followme.conf, execution will be returned to the dialplan and call
execution will continue at the next priority.
Options:
s - Playback the incoming status message prior to starting the follow-me step(s)
a - Record the caller's name so it can be announced to the callee on each step
n - Playback the unreachable status message if we've run out of steps to reach the
or the callee has elected not to be reachable.
Returns -1 on hangup
El uso de la aplicación es muy sencillo. En nuestro dialplan bajo el contexto local escribiremos:
[local]
exten => 1000, Followme(1000,san)
exten => 1000,n,Hangup
Con la primera línea le decimos a asterisk que si alguien llama la extensión 1000 tendrá que mirar en el archivo followme.conf y empezar a llamar todos los números configurados para la extensión 1000 para localizar el destinatario de la llamada.
las tres opciones indicadas después de la coma significan:
Como podemos hacer para que estas dos líneas vengan ejecutadas solamente si el “dueño” de la extensión 1000 quiere activarla?
Podemos usar una pequeña macro que permita al usuario decidir cuando activar el followme. En nuestro dialplan, siempre en el contexto local ponemos:
exten => 100,1,Answer
exten => 100,n,Set(DB(${EXTEN}/FOLLOWME)=1)
exten => 100,n,Hangup
Con estas tres líneas, usando la base de datos internas de Asterisk asociamos a la variable ${EXTEN}/FOLLOWME) el valor uno. En el caso de la extensión 1000 seria:
1000/FOLLOWME=1 Luego cada vez que llamamos la extensión 1000 controlamos si esta variable tiene asociado el valor uno (es decir el followme activado)
exten => _1XXX,1,Set(FM=${DB(${EXTEN}/FOLLOWME)})
exten => _1XXX,n,NoOp(${FM})
exten => _1XXX,n,GotoIf($["${FM}" = "1"]?followme:normal)
exten => _1XXX,n(followme),Followme(${EXTEN},san)
exten => _1XXX,n,Hangup
exten => _1XXX,n(normal),Dial(SIP/1000,45)
exten => _1XXX,n,Hangup
De esta forma si el FollowME está activado al llamar la extensión 1000 (o cualquiera configurada en el followme) se ejecutará la línea 4, sino la línea 6
Para desactivar el followme la extensión 1000 tendrá que llamar (por ejemplo) la extensión 101
exten => 101,1,Answer
exten => 101,n,Set(DB(${EXTEN}/FOLLOWME)=0)
exten => 101,n,Hangup
Este es solamente un ejemplo. Hay distintas formas de configurar el followme. Podemos activarlo si llamando una extensión esta no contesta dentro del tiempo indicado con la aplicación dial.
Hace algún tiempo escribí un artículo cuyo objetivo era orientar sobre qué tipos de tarjetas puede buscar alguien que quiere conectar su sistema Asterisk a la red telefónica y desconoce los distintos fabricantes, modelos y clones que existen en el mercado. Desde ese artículo hasta hoy, ha llovido mucho y ahora me encuentro con personas que me preguntan por tarjetas que han evolucionado, han cambiado de nombre y de características técnicas, además han aparecido otras nuevas que amplían la gama para ajustarse más a las necesidades particulares, por lo que he decidido escribir una serie de artículos con el título “Qué tarjeta necesito” donde analizaré las diferentes características, ventajas e inconvenientes de cada grupo de tarjetas en función del tipo de línea que queramos conectar, así como algunos trucos, opiniones y ejemplos de cada una de ellas.
Como en cualquier campo, hay fans o mejor dicho, usuarios que defienden una marca a muerte como si el pan de ese día le fuese en ello, yo por mi parte, intentaré simplemente comentar los tipos de tarjetas obviando las clónicas (que se basan en el hardware del fabricante original) y me centraré más en las características técnicas de cada una de ellas.
Por otro lado, hay quien prefiere, en lugar de utilizar tarjetas, utilizar gateways, las razones son variadas y daría lugar a un debate o intercambio de opiniones que podríamos dejar para otro momento, de momento me centraré sólo en tarjetas.
Las tarjetas de comunicaciones compatibles con Asterisk abarcan prácticamente cualquier tipo de línea de comunicación, de manera que es complicado que exista algún tipo de medio que no pueda ser conectado con esta aplicación, esto nos va a garantizar el perfecto funcionamiento cuando utilicemos una de ellas para nuestro proyecto y además, nos aseguramos que son 100% compatibles con Asterisk y debemos buscar ante todo un correcto soporte, garantía, calidad y por supuesto, precio.
Las tarjetas pueden ser de cuatro tipos en función del tipo de slot que tengan (PCI o PCI-Express)
Las tarjetas suelen tener uno de estos tipos de slot PCI, por lo que debemos echarle un vistazo a la placa base y ver qué tipo de slots dispone antes de poder escoger la tarjeta.
En muchos casos, la tarjeta PCI es Mixta (con X de mixta) pudiendo funcionar tanto a 5 como a 3,3 Voltios.
Es un error bastante común conseguir una tarjeta de un tipo y descubrir después que nuestro sistema solo dispone de slots PCI de otro tipo teniendo que devolverla y perdiendo tiempo por no haber echado un vistazo previamente al tipo de slot que necesitamos.
Este conector que traen las tarjetas es por donde se comunica con el resto del sistema. El número de líneas “doradas” en el conector representa el tamaño del bus de conexión con la placa base. Las tarjetas PCI funcionan por lo general a 33Mhz, una velocidad bastante reducida por lo que ya prácticamente no se fabrican placas base con este tipo de tarjetas y es más fácil encontrar tarjetas conocidas como PCI-X, con el doble de frecuencia (66Mhz). No obstante, para algunas tarjetas esta frecuencia continuaba siendo bastante lenta (por ejemplo para las tarjetas gráficas) y se creó otro tipo de slot conocido como AGP y posteriormente PCI-Express (o PCIe) donde no se necesitaba aumentar la frecuencia de funcionamiento al no tener cuellos de botella (véase el artículo sobre las diferencias entre PCI y PCI-Express).
Una PCI-Express 1X consigue una tasa de transferencia solo 2 veces mayor que una PCI normal y corriente, suficiente para las tarjetas de comunicaciones habituales, pero en comparación, este tipo de tarjeta es mucho más interesante ya que no hay cuellos de botella ni cortes por interrupciones (pese a que compartan IRQ).
En la próxima edición veremos las Tarjetas para líneas analógicas.
He tardado un poco en escribir el último día del SIP MasterClass, sobre todo porque he estado un poco liado estos días tras estar toda la semana en el curso, pero el viernes fue un día bastante divertido:
- Infraestructuras con Asterisk y Kamailio, cual es el papel de cada uno de ellos y cómo utilizarlos para obtener un mayor rendimiento y mayores beneficios.
- Sistemas Redundantes, distribución de carga y failover tanto de Asterisk como de Kamailio.
- Utilización de ENUM o DUNDI en redes VoIP de gran tamaño (> 10.000 usuarios).
- Algunas cosas más interesantes aún…
Y por último, dos ejercicios bastante interesantes conectando Asterisk y Kamailio y programando rutas en función de los números marcados en los clientes SIP en función del destino… Muy, muy instructivo e interesante.
La semana ha sido bastante enriquecedora, con muchos conocimientos adquiridos y con una base para adquirir más experiencia con estas dos herramientas.
A nivel personal, he aprendido bastante de Kamailio y algunas cosas de Asterisk que nunca se me habían ocurrido imaginar qué utilidad podían tener hasta que me las han mostrado y he visto que todo se puede mejorar.
Tanto Olle Johansson como Daniel-Constantine Mierla son dos grandes profesionales y casi tan importante como esto, dos grandes profesores, utilizando el sentido del humor en determinadas ocasiones para poner ejemplos que de haberlo hecho de otra forma, hubiera sido mucho más complicado de entender.
El trato ha sido fabuloso y es que se notaba que, pese a que el curso era en Inglés, hemos apreciado el hecho de que hablaran lo suficientemente despacio y con una pronunciación bastante suave de manera que fuese bastante sencillos entenderlos a ambos y no nos perdiésemos en ningún momento.
Por último, tras un último ejercicio donde poner a prueba los conocimientos adquiridos, nos han entregado un certificado por haber completado el curso satisfactoriamente.
Por otro lado, viendo el temario y los puntos tratados, he llegado a una conclusión que puede ser interesante para todos aquellos que quieran iniciarse en VoIP desde cero y es que tanto los cursos ofrecidos por Digium como los cursos ofrecidos por ASIPTO y EDVINA están perfectamente estudiados para solapar contenidos y avanzar sin llegar a obviarse ninguna parte y poder alcanzar un nivel alto asistiendo a los cursos correspondientes al nivel en el que uno se encuentre.
Así, he creado un pequeño esquema con los puntos claves de la formación de los distintos cursos de aprendizaje de Asterisk que podeis ver en la siguiente imagen:
Recordaros que la próxima cita es en Lisboa y Sevilla (Asterisk Advanced) y Madrid (Asterisk FastStart), así que si estais aprovechando para formaros sobre Asterisk, es el momento.

Technorati tags: digium, asterisk, transcoding, card, tce400b

Technorati tags: snom, provisioning, script

Technorati tags: spa, 900, wizard, voip, spa500
Ayer fue el día de la parte SIP de Asterisk, una parte muy interesante donde Olle Johansson pudo explicar cómo funciona el módulo chan_sip.c y para qué sirven todos y cada uno de los parámetros que soporta el archivo sip.conf y que no tienen una descripción muy detallada en el archivo de ejemplo.

También vimos otros protocolos como el SDP y el RTP, para qué sirve cada parámetro y cómo utilizarlos en Asterisk para entender los problemas que pueden surgir.
Al final del día, Olle y Daniel explicaron el interés de la “presencia”, qué protocolos se suelen utilizar y qué ventajas tiene el hecho de que sean implementados bajo una infraestructura SIP y utilizando estándares como SIMPLE o XMPP.
Cada vez me queda claro que este curso es una perfecta continuación del Asterisk Advanced para alguien que quiere aprender rápida y fácilmente.
Hoy veremos más…
Ayer miércoles fue el día de Kamailio, el SIP Proxy por excelencia.
El día comenzó intenso…
Qué es Kamailio, para qué sirve, qué se puede hacer, entornos posibles de uso, cómo se instala, arquitectura interna, explicación de cada una de las partes, tipo de reglas, variables, configuración de rutas, sistemas de autentificación, programación del “dialplan” y de las rutas, y bastante más…
…y acabó incluso aún más intenso. (11 horas después)… pero lo importante es poder conocer esta herramienta y ver sus posibilidades a la vez que se aprende cómo funciona, qué puede hacer, qué NO puede hacer (o qué no debe hacer), y cómo se hace.
Un día tan duro como interesante y es que Daniel dió una clase magistral sobre cómo introducir a alguien desde cero y darle ganas de empezar a hacer pruebas como loco con esta aplicación.
Bastante duro al final que se vieron los módulos que incluye, para qué servían y cómo se utilizan, así como la configuración de estos y el uso de las funciones y variables para su programación.
Un día que seguro que a más de uno le hubiera gustado poder disfrutar.
Hoy ha sido el segundo día de este curso dedicado íntegramente a SIP, y como tal, ayer fue el día de Asterisk y su configuración SIP (con un segundo ejercicio bastante complejo) y hoy ha sido, tal y como ha dicho Olle Johansson: “Today is the SIP day”
El día dedicado a SIP como protocolo: REQUEST, codigos, estructuras, flujos, parámetros y mucho más… todo el día de teoría de SIP bastante densa pero muy, muy bien explicado, con ejemplos sencillos y muy despacito para que se entienda todo y animando a la gente a que pregunte.
Y mañana, el día de Daniel-Constantine: Kamailio, realmente apasionante.
Para terminar, ya se estaban preparando para irse a la piscina y a la playa que además, esta noche es La Noche de San Juan y el Ayuntamiento de Torremolinos organizará una fiesta rodeado de gente con sus hogueras en la playa, música y comida.
Mañana, más de uno seguro que viene con resaca.
Como ya comenté, esta semana va dedicada al curso especial centrado en SIP y donde cualquier otro protocolo pasa a ser casi “tabú” ya que bastante ya tiene este como para andar hablando de otros…
El primer día he de confesar que ha sido bastante tranquilo, una introducción al SIP de Asterisk, ventajas e inconvenientes, trucos y notas que muchos desconocen, comentarios personales de Olle Johansson sobre el desarrollo y alguno más sobre lo que llegará a ser.
Tras una intensa introducción, casi en el punto de “dificultad” donde acaba el Bootcamp (si se pudiera hacer una comparación de este tipo) empieza el SIP MasterClass.
El curso promete, y no es porque lo diga yo, es que realmente es un tema que para cualquiera interesado en la VoIP (ya no únicamente en Asterisk u OpenSER) se hace imprescindible para aprender cómo funciona el protocolo SIP (principal protocolo de VoIP), aprender a solucionar problemas que se plantean con un simple Asterisk y un teléfono y no sabemos porqué ni cómo solucionarlo, y para coger experiencia y seguridad en el trato de sistemas que funcionan mediante SIP.
Como comentaba, el día ha sido tranquilito, Asterisk instalado, usuarios SIP registrados y a partir de aquí, empieza lo bueno.
Para dar un poco de envídia, comentaré que tras finalizar el curso, he escuchado a varios asistentes comentar que se iban a por el bañador y a darse un bañito…
Como ya comenté en el artículo SIP MasterClass 2009 en Málaga, mañana dará comienzo el curso Maestro sobre SIP donde se darán cita dos grandes gurús de este mundo y más concretamente del mundo SIP: Olle Johansson y Daniel-Constantin Mierla y donde los asistentes tendrán la extraordinaria oportunidad de aprender los entresijos de SIP junto con las dos herramientas más utilizadas: Asterisk y OpenSER. Aprender los secretos del protocolo SIP y la potencia de la coordinación entre estas dos aplicaciones.
En el mundo de las comunicaciones actuales existen dos ramas bastante diferentes y que se unen para ofrecer al usuario una transición lo más suave posible: comunicaciones basadas en redes de telecomunicaciones (analógicas, digitales, gsm, etc.) y comunicaciones basadas en protocolos de redes informáticas (sip, iax, h323, etc.).
Todos conocemos las ventajas de las redes de telecomunicaciones, las tenemos en casa, en el trabajo, nos permiten contactar con nuestros familiares y hablar desde cualquier sitio mediante los móviles.
En las redes informáticas, el audio y el vídeo son convertidos a datos binarios y manejados automaticamente por aplicaciones y dispositivos que se encargan de calcular prioridades, comprimir los datos y confirmar la recepción de dichos datos en el envío, aunque la principal ventaja consiste en ofrecer servicios similares a las redes de datos que ya conocemos como Internet o las redes locales permitiéndonos conectar cualquier dato que circule por esta red (música, voz, vídeo, mensajería instantanea, etc.) a cualquier otro servicio de red mucho más conocido (http, ftp, jabber, etc.).
Los proveedores de telecomunicaciones habituales ya conocen las ventajas de las redes de datos en comparación con las redes de telecomunicaciones y hace varios años comenzaron la migración de sistemas tradicionales por sistemas basados en software que manejaban protocolos IP, en lugar de protocolos ISDN, manejaban tramas de paquetes binarios, en lugar de ondas y esto lo hacen totalmente transparente para el usuario final.
Una de las ventajas de las redes de datos consiste en el ahorro en la inversión de infraestructura ya que es muchísimo más económico un sistema capaz de manejar datos que un sistema capaz de manejar líneas de telecomunicaciones y por lo tanto, nuevos proveedores llevan surgiendo desde hace tiempo aprovechando ese ahorro en la inversión y obteniendo un resultado similar al de las tradicionales empresas de telecomunicaciones, pero con un ahorro considerablemente inferior.
Universidades, administraciones y grandes empresas con decenas o miles de usuarios han aprendido la ventaja de convertir sus comunicaciones a datos y aprovechar sus redes ethernet y de Internet para realizar llamadas telefónicas y enviar faxes en el mismo medio físico por el que viajan emails y otros servicios, a la vez que permiten un control mayor y ofrecer servicios a sus usuarios que con las redes de telecomunciaciones son prácticamente prohibitivas económicamente o requieren de un nuevo sistema.
En las redes de datos, la voz y el vídeo son convertidos a datos y de su gestión se ocupa un protocolo que ha pasado a convertirse en el estandar por excelencia para este tipo de comunicaciones: SIP (Session Initiation Protocol) un estandar aprobado por el IETF (Internet Engineering Task Force) y aprobado su RFC donde se dictamina qué debe enviar y recibir para que se lleve a cabo una comunicación correcta SIP.
Los secretos de este protocolo, así como su funcionamiento y configuración en las dos aplicaciones de código abierto y libres más utilizadas del mundo, serán las bases del curso que comienza mañana en Torremolinos (Málaga), un marco ideal, ameno y atractivo donde se verán una gran cantidad de conceptos y utilidades que muchas empresas necesitan y que constituirán un antes y un después en la forma de desarrollar sus infraestructuras de comunicaciones.
En la medida de mis posibilidades, intentaré comentar desde aquí mi experiencia durante este curso que, pese a celebrarse una vez al año en España, es sin duda uno de los más duros, específicos y profesionales que existen en el mundo de las comunicaciones VoIP.

Technorati tags: askozia, pbx, pruebas, review, first, impressions
El próximo 1 de Julio a las 11:00 y dentro del programa de las VIII Jornades de Programari Lliure daré una charla sobre proxies SIP, servidores de aplicaciones y Asterisk.
Las jornadas se harán en la Universitat de Barcelona (Gran Vía/Universidad) entre los días 1 y 4 de Julio.
