VOZ logo

Cómo hacer tu Asterisk «más original»

Descuelgo el teléfono, marco un número y de repente empiezo a escuchar una musica típica de Asterisk

De entre las miles de millones de canciones que hay disponibles, y tengo que llamar a un número que tiene un Asterisk instalado con la configuración por defecto.
De repente la música se corta y aparece una voz de una chica preguntándome sobre el motivo de mi llamada, momento en que informo que deseo hablar con una persona y ella procede a transferirme, pero algo hace mal y acabo en el limbo… un lugar oscuro, tenebroso en el que no escucho música, no hablo con nadie, y lo peor, nadie puede recuperarme. La única alternativa que tengo es colgar y volver a llamar.
No obstante, aprovechando que he llamado a un Asterisk con soporte de «limbo» (así que calculo que sería una versión 1.2 como mucho), decidí hacer una prueba y marcar un número de móvil.
Funciona… el móvil suena y el número que aparece es el de la empresa en cuestión. ¿que hubiera pasado si hubiera marcado un número de coste premium y hubiera mantenido la llamada en funcionamiento durante varias horas?

Este tipo de situaciones son muy raras, la probabilidad que una persona conozca Asterisk para reconocer su música de espera, que utilicen una versión tan antigua que no tenga habilitado el parámetro autofallthrough y la llamada no cuelgue automáticamente si el destinatario no existe, y que al hacer la transferencia a una extensión del dialplan comentan el fallo garrafal de incluir patrones para salida a la red telefónica, puede pasar en un caso tan único que me extrañaría volver a encontrarlo de nuevo.

No obstante, es común encontrar fallos garrafales en otras configuraciones de Asterisk, más aún desde que una configuración correcta es algo exclusivo «para expertos», mientras que una gran cantidad de usuarios utilizan sistemas cuya configuración se deja a cargo de cómodos y atractivos interfaces, más preocupados por el aspecto visual que por si el código que genera es seguro, rápido y fácil de depurar.

Aprovechando que la mayoría de los lectores de Sinologic utilizan Asterisk y además lo configuran a su gusto, voy a dar una serie de ideas/consejos para mejorar la configuración de un Asterisk, tanto desde el punto de vista del usuario final, como desde el punto de vista de cualquiera que llame.

Cambia la música en espera

Desde el punto de vista de seguridad, el hecho de reconocer la música en espera ya es un fallo de seguridad ya que estás informando al usuario que llama de qué utilizas para la gestión de las llamadas. Esto, unido a un poco de ingeniería social puede causar daños económicos irreparables.
Además de este punto, seleccionar y cambiar la música en espera por una nueva melodía no es algo que sea muy difícil. Asterisk soporta música en espera en wav, mp3, ogg, … Hay cientos de canciones libres de derechos en Internet y ofrecer algo distinto al Für Elise de Beethoven en politono o a la música típica de Asterisk no es complicado y dará un toque nuevo y original al sistema que estamos montando.
En Jamendo hay cientos de canciones muy buenas, algunas son libre de derechos y se pueden utilizar para sistemas telefónicos.
En FreePlayMusic también puedes encontrar muchas músicas libres de derechos (aunque ten cuidado de no escoger de nuevo las que vienen con Asterisk, ya que son de esta página)

La música, asegúrate que las conviertes a dos formatos esenciales: alaw y g722.
La canción escogida se reproducirá en alaw cuando se reciba una llamada de la red telefónica, mientras que la canción en g722 se reproducirá cuando la llamada la hagamos nosotros como usuario SIP del sistema.
De esta forma, evitaremos hacer trascoding y consumir procesador inútilmente además de poder escuchar la música con la mejor calidad de sonido (ya veremos esto en el siguiente punto).
Para convertir un wav a ‘alaw‘ y a ‘g722‘ puedes leer el artículo que escribimos con los comandos para convertir audio.

Utiliza un códec wideband (calidad HD)

Estamos utilizando Voz sobre IP, una nueva tecnología, un nuevo servicio, mejor calidad, pero ¿sabías que si continúas utilizando los típicos códecs ‘alaw’/’ulaw’ la calidad de audio es exactamente la misma que la de cualquier otro teléfono?
Si realmente quieres dejar impresionado a tus usuarios, dales un toque de distinción utilizando el códec G.722, un códec wideband (ancho espectro de frecuencia) que ofrece más calidad, acentúa las frecuencias altas proporcionando más información con el mismo ancho de banda que el códec ‘alaw’.

Asterisk 1.8 y superiores ya trabaja con el códec G.722 de forma nativa permitiendo trascoding, por lo que ya no hay excusa, búscate un teléfono que soporte G.722 si quieres ofrecer mejor calidad de sonido.

No utilices el códec ULAW salvo que trabajes en Estados Unidos, Canadá o Australia

Una de las características que demuestran que una persona no tiene claro los conceptos básicos de VoIP es que utiliza el códec ‘ulaw’ en Europa, Asia, Africa o LatinoAmérica.  Esto demuestra que no sabe que el códec Ulaw es igual que el Alaw pero «desplazado«, por lo que tenemos dos códecs idénticos pero incompatibles. Asterisk puede hacer trascoding y su consumo es mínimo, pero el hecho de utilizar ulaw en lugar de alaw ya implica un desconocimiento de conceptos muy básicos y nada propio de un profesional.

Crea el dialplan con la cabeza

Aprender a hacer un dialplan en condiciones no es algo trivial, lo reconozco, y aprender desde cero suele costar bastante como para encima que le pidan a uno que lo que hacen esté bien. Pero sabiendo que el Dialplan es el Corazón de Asterisk, es necesario e imprescindible aprender tanto como se pueda y aprender a hacerlo bien. ¿Cómo se hace bien según yo?

El dialplan de Asterisk se desarrolló como una especie de «pseudo-lenguaje» de programación de scripts, una sintaxis muy sencilla con una serie de Aplicaciones, Funciones y Variables, que le permiten al usuario realizar prácticamente cualquier cosa que necesite que haga una llamada.
Este «gramática» de programación, como  cualquier otro tiene un requisito imprescindible para saber si se está haciendo bien o no:

Limpieza: Todo código de programación debe ser limpio, claro, con espacios y tabulaciones, comentarios y cualquier otra cosa que pueda hacer falta para que cualquier persona que vea el código, entienda qué queremos hacer sin que tenga que llevar un depurador en la cabeza.

Modularidad: Clasificar el código, trocearlo en partes independientes y que cada una de ellas cumpla su cometido, hace que dicho código haga las cosas como debe de hacerlas.

Independencia: Hay que saber que Asterisk va a gestionar dos tipos de llamadas: las generadas desde fuera (red telefónica, proveedor IP, etc.) y las generadas dentro del propio Asterisk (teléfonos, adaptadores, etc.). Cada tipo de llamada es recomendable que no se crucen, es decir, configurar el dialplan para que una llamada generada en el exterior de Asterisk, nunca llegue a los contextos utilizados para las llamadas generadas dentro del Asterisk. Esto añadirá seguridad.

Crea servicios propios y útiles

Depende de si nuestro Asterisk está orientado a un cliente o es para nuestra empresa, es bueno acostumbrarse a ofrecer ciertos servicios básicos:

– Modo día/noche: habilitando o deshabilitando la entrada de llamadas con un código.
– Servicio de calendario compartido: ideal para evitar la entrada de llamadas en los días festivos.
– Servicio directorio: para llamar conociendo el nombre de la persona, y no tener que recordar su número de extensión.
– Cualquier otro servicio original que se te pueda ocurrir…
– Grabaciones estereofónicas.

Ofrece VoIP real

Muchos usuarios, una de las primeras cosas que hacen para «dotar de seguridad» a su Asterisk es eliminar el acceso al protocolo SIP desde el exterior. En cambio, tal y como publicamos en el artículo «llámame a mi correo electrónico«, podemos ofrecer llamadas VoIP vía SIP permitiendo que cada usuario pueda recibir llamadas directas a través de su propia dirección SIP.

 

¿Qué otras cosas se te ocurre para montar un típico Asterisk que haga de centralita de forma más original?

 

Anterior artículoSinologic Ask™: El sitio de preguntas y respuestas sobre VoIP
Siguiente artículo 7812-7709Publicada Elastix 2.3.0 RC-1