Diferencia entre revisiones de «Buzones de Voz»

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Línea 82: Línea 82:
 
== Protocolo SMDI ==
 
== Protocolo SMDI ==
  
Existe un protocolo ([http://en.wikipedia.org/wiki/Simplified_Message_Desk_Interface 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.  
+
Existe un protocolo ([http://en.wikipedia.org/wiki/Simplified_Message_Desk_Interface 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'''.
 
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'''.

Revisión del 21:22 15 may 2012

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.
    • pbxskip: Para descartar una cabecera en el asunto de los mensajes enviados. La cabecera es simplemente [PBX]: puede resultar útil para identificarlos mejor en nuestra bandeja de entrada aunque por defecto la descarta
    • fromstring: Para cambiar el remitente al enviar correos.
    • emailsubject: Configurar el asunto del e-mail
    • emailbody: Configurar el cuerpo del e-mail.
      • Para ambos existen una serie de variables que pueden ser prácticas a la hora de componer los mensajes como las siguientes:
      • ${VM_MSGNUM}: Número identificador del mensaje recibido
      • ${VM_MAILBOX}: Nombre del buzón de voz
      • ${VM_NAME}: Nombre del usuario del buzón de voz
      • ${VM_DUR}: Duración del mensaje
      • ${VM_CALLERID}: Identificador del Remitente y Número de Teléfono (o extensión) que dejo el mensaje.
      • ${VM_DATE}: Fecha que se recepcionó el mensaje
      • ${VM_MESSAGEFILE}: Nombre del mensaje de audio referenciado.
      • ${VM_CIDNUM}: Solo Número del remitente.
      • ${VM_CIDNAME}: Solo el identificador del remitente (nombre).
    • emaildateformat: Formato de fecha del e-mail, siguiendo los parametros estandar de *NIX como establecidos en strftime.


  • 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.
    • usedirectory: Da la posibilidad de remitir los mensajes almacenados en el buzon a otros destinatarios de correo.
  • 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]
    • mailcmd: Podemos especificar que sistema de email vamos a utilizar en *NIX para enviar los mensajes.

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

Almacenamiento en Bases de Datos

Es posible guardar la estructura de los buzones y los mensajes de voz en una base de datos SQL a través de un driver ODBC. Esto se consigue gracias al recurso ODBC (res_odbc.so), utilizado para múltiples funciones del sistema. Además sobra decir, guardarlo en una base de datos ayudaría para implementar servicios superiores relacionados a nuestro sistema de buzones de voz.

Existe un fichero de configuración llamado res_odbc.conf que gestiona la interfaz entre el sistema ODBC de nuestro sistema *NIX y Asterisk.

Los parametros de configuración para establecer la primera instancia de la configuración se realizan en el apartado general del voicemail.conf:

  • odbcstorage: Indica el contenedor ODBC en el que se trasmitirá la información de los buzones de Voz.
  • odbctable: La tabla por defecto asociada al sistema de base de datos.

Almacenamiento IMAP

Es posible también crear un sistema de almacenamiento con servidores IMAP clásicos como Dovecot o Cyrus. Toda la conexión de interfaz entre nuestro sistema de Buzones de Voz de Asterisk y el servidor IMAP se realizaría en una parte genérica de conexión con el servidor, en el apartado [general, y luego una parte de autentificación especifica de los buzones, dentro del contexto especifico de los mismos.

Para la parte genérica existen los siguientes parametros:

  • imapfolder: Carpeta destino, donde iran a parar los mensajes de voz. Hay que considerar que eventualmente el servidor IMAP suele ser utilizado para funciones de almacenaje de correos electronicos, por lo que podemos señalar una carpeta dentro de la clásica ruta de destino (INBOX) por ejemplo, INBOX/BuzonVoz
  • imapserver: En este caso si utilizamos un servidor IMAP en local, pues sería por defecto localhost, en caso que utilicemos un servidor IMAP remoto, señalamos el mismo.
  • imapgreetings: Si queremos almacenar los mensajes de bienvenida de los buzones de voz, en el servidor IMAP, o mantenerlos en local. Por defecto se quedan en local.
  • greetingsfolder: Si decimos que queremos almacenarlos en el servidor IMAP, concretamente en que directorio, por defecto INBOX.
  • imapparentfolder: Hay que señalar cual es la carpeta principal del sistema IMAP ya que algunos servidores no utilizan la carpeta INBOX por defecto.

Zonas Horarias

Existe un apartado dentro del Dialplan aparte de los principales (general y contextos especificos de buzones), para definir algunos parametros acerca de las Zonas Horarias.

Definirlos es util por ejemplo, para señalar correctamente las marcas horarias en los distintos buzones de posibles usuarios a lo largo del mundo.

Existen algunos parametros generales en el apartado [general], pero la mayoria se define en el apartado concreto [zonemessages]


Referencias

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

Véase también

Enlaces Externos

  • Dovecot, pagina oficial de este servidor IMAP
  • Cyrus, servidor IMAP alternativo.