Buzones de Voz

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Format.png Formatear
Esta página necesita ser editada para cumplir los requisitos del wiki.
Puedes revisar todas las páginas sin suficiente formato en este enlace.
Alert.png To Do
Esta página necesita ser completada.
Puedes revisar todas las páginas por completar en este enlace.


Asterisk provee de un sistema de buzón de voz bastante completo, como una aplicación especifica, cuyo modulo es llamado app_voicemail.so. Además existe una función asociada bajo el modulo func_vmcount.so para saber el número de mensajes que contiene un buzón específico como podremos ver ampliado en el apartado de Funciones

Logo Asterisk

Conceptos Generales

Los buzones de voz, son, equivalentes al correo electrónico para almacenar correos de texto, pero alojados en nuestra máquina Asterisk, se encargan de alojar mensajes de voz o de audio. Asterisk concibe dos mecanismos para operar con ellos:

  • A través de un menú implícito a Asterisk, que nos permite una serie de funciones como la lectura, manipulación y destrucción de los mensajes una vez accedido al mismo
  • A través de redirecciones al correo electrónico. Los mensajes se almacenan como archivos de audio, y es posible adaptar el sistema para que los reenvíe a nuestro correo electrónico para ser escuchados a voluntad, y que sean eliminados (o no) de nuestro buzón particular.

El problema de los buzones de voz, es la cuestión del espacio que ocupan los nuevos archivos de audio algo que debe ser previsto (se pueden aplicar limites por ejemplo). Por tanto en determinadas situaciones el segundo enfoque puede ser determinista a la hora de montar este sistema.

Configuración Básica

Toda la configuración del sistema de los buzones de voz, gira en torno al fichero voicemail.conf dentro del directorio por defecto de configuraciones /etc/asterisk/.

El fichero se estructura por contextos parecido a cualquier fichero de configuración de protocolos como el de SIP y el de IAX.

Para poner en marcha un sistema de buzones de voz sencillo, solo es necesario configurar un contexto al que hacen referencia ciertos buzones, y algún buzón en concreto que hayamos asociado a algún dispositivo. Una vez hecho esto, solo necesitaríamos utilizar las aplicaciones dentro del Dialplan para afectar al entorno del buzón en concreto.

Esto puede verse en el siguiente ejemplo:

Archivo: /etc/asterisk/voicemail.conf
[default]
11 =>1234,John Doe


Solo con esto, hemos definido el buzón número 11 para el dispositivo que la asocio (recordemos el parámetro especifico mailbox de SIP e IAX), con una contraseña de acceso, "1234", y aparte, hemos definido que corresponderá al Sr. John Doe (como veremos más adelante, la mayoría de los buzones personales han de ser intransferibles como el correo electrónico por cuestiones de privacidad).

Configuración General

Es posible definir un contexto general [general] donde incluir una serie de características comunes a todos los buzones, y al funcionamiento del sistema de buzones de voz en General. Existen una serie de parámetros fundamentales que deberían ser considerados, y que comento a continuación:

  • Relacionados a la función de envío de e-mail:
    • attach: Sirve para indicar si adjuntar o no el fichero de audio, en el caso que especifiquemos un e-mail para un buzón especifico. Por defecto esta función esta activada
    • serveremail: Dirección e-mail del remitente en caso que
    • charset: Sistema de caracteres que utilizaremos para los mensajes.


  • Relacionados al sistema de almacenamiento:
    • format: Indicamos los Formatos admitidos en los que pueden ser almacenados los ficheros de audio. En caso de utilizar el sistema IMAP para gestionar los buzones de voz, solo se almacenarían en el primer tipo de formato.
    • maxmsg: Numero máximo de mensajes que podemos contener en cada buzón. Útil para no saturar el sistema.


  • Relacionados a la operabilidad del sistema de grabación:
    • maxsecs: Tiempo en segundos máximo que el remitente tiene para grabar su mensaje, también práctico para calcular en terminos absolutos el máximo de espacio que requeriríamos aproximadamente.
    • minsecs: Tiempo mínimo en segundos para que el mensaje quede guardado en nuestro sistema, práctico para evitar mensajes vacíos.
    • maxgreet: Tiempo máximo de grabación para el mensaje de bienvenida del buzón cuando ejecutamos la Aplicación Voicemail.
    • maxsilence: Tiempo en segundos que debemos escuchar un silencio al final de una grabación para cortarla y evitar que siga grabando sin necesidad.
    • silencethreshold: Umbral de sonido, para que sea considerado silencio. En este caso debemos probar distintas opciones, por defecto viene con 128 unidades. El tema es que en este sentido si nos quedamos cortos, podemos perder algunos mensajes por cuestiones en el volumen de la llamada del remitente, por ejemplo.
  • Relacionados al sistema de gestión interno de Asterisk de Buzones de Voz (VoiceMailMain):
    • skipms: Tiempo en milisegundos que podemos desplazarnos para adelante o para detrás, mientras escuchamos el mensaje de audio, por defecto intervalos de 3 segundos.
    • maxlogin: Numero máximo de intentos de acceso antes que Asterisk cuelgue el canal.
    • moveheard: Establece si automáticamente, movería los mensajes de voz escuchados, a una carpeta especial de "mensajes escuchados".
    • externpasscheck: Llamamos a un programa cuando cambiamos la clave del buzón para comprobar si cumple unos requisitos mínimos de seguridad. En el directorio donde descargamos las fuentes de Asterisk, existe un subdirectorio llamado /contrib/script, y dentro de este, un script en Python que cumple este propósito por si queremos utilizarlo de ejemplo.
  • Otras configuraciones:
    • userscontext: Contexto en el que se registran los usuarios por defecto, suele ser "default" por convenio.
    • externnotify: En el momento que surja un evento en los buzones (recibir un mensaje nuevo, o consultar el buzón de voz) se ejecutaría una aplicación del sistema *NIX a voluntad nuestra especifica en este parámetro. Esto puede ser útil por ejemplo, para compartir información de mensajeria entre diferentes servidores con el sistema MWI [1]

Protocolo SMDI

Existe un protocolo (Simplified Message Desk Interface para poder enlazar teléfonos con un sistema especifico de Buzones de Voz. Es posible realizar una integración de este sistema de mensajería con nuestro sistema Asterisk. Este sistema es tan antiguo que trabaja a traves de un puerto Serie, aunque existen implementaciones especificas para hacerlo funcionar a través de un puerto TCP/IP.

El fichero de configuración especifico para el sistema SMDI de Asterisk es llamado smdi.conf y existe un módulo tipo recurso que gestiona esta interfaz res_smdi.so.

Aparte de toda la configuración especifica del fichero smdi.conf para su utilización autónoma, es posible establecer un tipo de "notificación" de mensajería entre los distintos tipos de mensajería (SDMI y los Buzones de Voz de Asterisk), aplicando dos parámetros generales:

  • sdmienable: Sirve para activar esta funcionalidad de notificación
  • sdmiport: Para indicar el puerto Serie a traves del cual se establecerá esta funcionalidad

Directorio de Buzones de Voz

Existe una aplicación especifica llamada Directory encargada de poder llamar a un usuario, a través de su buzón de Voz. Esta basada en una función de muchas PBX llamada Dial-by-Name (marcar utilizando los nombres). En este caso al utilizar esta aplicación y llamar a la extensión que la ejecuta sigue el siguiente proceso:

  1. Ejecuta una pista de audio como mensaje de bienvenida

La configuración que atañe a este Directorio, se realiza a traves de la configuración general de voicemail.conf:

  • directoryintro: Especifica el nombre de la pista de audio, que utilizaremos como bienvenida


Referencias

  1. Message Waiting Indication, M. Daniel (2006)

Véase también

Enlaces Externos