FreeSWITCH y Voicemail (correo de voz)

Hoy veremos como configurar el correo de voz en FreeSWITCH. El archivo principal de configuración es voicemail.conf.xml

Empecemos con éste:

nano /usr/local/freeswitch/conf/autoload_configs/voicemail.conf.xml

A lado de cada línea una pequeña explicación

  <settings>
  </settings>
  <profiles>
    <profile name="default"> ;
nombre del perfil
      <param name="file-extension" value="wav"/> ; Tipo de archivo audio que se grabará (wav)
      <param name="terminator-key" value="#"/> ; teclado para salir del menú del correo de voz
      <param name="max-login-attempts" value="3"/> ; numero de intentos permitidos para entrar a la casilla personal
      <param name="digit-timeout" value="10000"/> ; tiempo máximo de espera para que se digite algo (10 segundos)
      <param name="min-record-len" value="3"/> ; la durada mínima de un correo de voz
      <param name="max-record-len" value="300"/> ; durada máxima del correo de voz
      <param name="tone-spec" value="%(1000, 0, 640)"/> ; no se
      <param name="callback-dialplan" value="XML"/> ; el tipo de plan de llamadas usado para rellamadas
      <param name="callback-context" value="default"/> ; el contexto del plan de llamadas para las rellamadas
      <param name="play-new-messages-key" value="1"/> : digitar 1 para escuchar los mensajes nuevos
      <param name="play-saved-messages-key" value="2"/> ; 2 para los mensajes guardados
      <param name="main-menu-key" value="0"/> ; 0 para volver al menú principal
      <param name="config-menu-key" value="5"/> ; 5 para la configuración de la casilla personal
      <param name="record-greeting-key" value="1"/> ; Menú avanzado: 1 para grabar un mensaje de bienvenida
      <param name="choose-greeting-key" value="2"/> ; 2 para escoger el mensaje de bienvenida entre los grabados
      <param name="change-pass-key" value="6"/> ; 6 para cambiar la contraseña de la casilla de voz personal
      <param name="record-name-key" value="3"/> ; 3 para grabar el propio nombre
      <param name="record-file-key" value="3"/> ; 3 para guardar el nombre grabado
      <param name="listen-file-key" value="1"/> ; 1 para escuchar la grabación del propio nombre
      <param name="save-file-key" value="2"/> ; 2 para guardar la grabación del propio nombre
      <param name="delete-file-key" value="7"/> ; 7 para borrar un mensaje de voz
      <param name="undelete-file-key" value="8"/> ; 8 para recuperar un mensaje de voz borrado
      <param name="email-key" value="4"/> ; 4 Para enviar un mensaje de voz el correo electrónico (si configurado)
      <param name="pause-key" value="0"/> ; 0 para pausar la escucha de un mensaje de voz
      <param name="restart-key" value="1"/> ; 1 para volver a escuchar un mensaje de voz
      <param name="ff-key" value="6"/> ; 6 para adelantar el mensaje de voz
      <param name="rew-key" value="4"/> ; 4 para devolver un mensaje de voz
      <param name="skip-greet-key" value="#"/> ; # para saltar el mensaje de bienvenida
      <param name="record-silence-threshold" value="200"/> ; para averiguar
      <param name="record-silence-hits" value="2"/> ; para averiguar
      <param name="web-template-file" value="web-vm.tpl"/> ; El archivo para consultar el buzón de voz a través del Web
      <!-- if you need to change the sample rate of the recorded files e.g. gmail voicemail player -->
      <!--<param name="record-sample-rate" value="11025"/>—> ;
para cambiar la frecuencia de campionamiento del mensaje de voz
      <!-- the next two both must be set for this to be enabled
           the extension is in the format of <dest> [<dialplan>] [<context>]
       -->
      <param name="operator-extension" value="operator XML default"/> ;
para comunicarse con un operador
      <param name="operator-key" value="9"/> ; 9 es el digito para llamar un operador
      <param name="vmain-extension" value="vmain XML default"/> ; la extensión del menú principal del correo de voz
      <param name="vmain-key" value="*"/> ; para marcar el correo de voz como urgente
      <!-- playback created files as soon as they were recorded by default -->
      <!--<param name="auto-playback-recordings" value="true"/>-->
      <email>
        <param name="template-file" value="voicemail.tpl"/> ;
 el archivo que contiene un correo electrónico predefinido par el envió de los correo de voz en anexo
        <param name="notify-template-file" value="notify-voicemail.tpl"/> ; el archivo con un correo electrónico predefinido para notificar la llegada de un correo de voz
        <!-- this is the format voicemail_time will have -->
        <param name="date-fmt" value="%A, %B %d %Y, %I %M %p"/> ;
formato de la fecha y hora del envió del correo de voz
        <param name="email-from" value="${voicemail_account}@${voicemail_domain}"/> ; el remitente del correo electrónico
      </email>
      <!--<param name="storage-dir" value="/tmp"/>—> ;
carpeta donde se guardaran los correo de voz
      <!--<param name="odbc-dsn" value="dsn:user:pass"/>—> ; si queremos guardar los correo de voz en una base de datos MySQL tenemos que configurar el conector ODBC (más adelante la explicación)
      <!--<param name="record-comment" value="Your Comment"/>-->
      <!--<param name="record-title" value="Your Title"/>-->
      <!--<param name="record-copyright" value="Your Copyright"/>-->
    </profile>
  </profiles>
</configuration>

 

Ahora vamos a configurar una base de datos para guardar los correo de voz. Primero creamos la base de datos en MySQL:

mysqladmin -u root -p create freeswitchvm

Luego le asignamos los privilegios a un usuario para manejar la base de datos

mysql -u root –p

mysql> GRANT ALL PRIVILEGES ON freeswitchvm.* TO fulano IDENTIFIED BY 'contraseña';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

y salimos

mysql> quit
Bye

Ahora que tenemos nuestra base de datos creada tenemos que modificar el conector ODBC

nano /etc/odbc.ini

y añadimos las siguientes líneas

[freeswitch-vm]
Description     = MySQL ODBC freeswitchvm
Driver          = MySQL
Server          = localhost
User            = fulano
Password     = contraseña
Database      = freeswitchvm
Option          = 3
Port            = 3306

Guardamos los cambios.

y volvemos al archivo voicemail.conf.xml

nano /usr/local/freeswitch/conf/autoload_configs/voicemail.conf.xml

donde cambiamos la linea

<!--<param name="odbc-dsn" value="dsn:user:pass"/>—>

de esta forma

<param name="odbc-dsn" value="freeswitchvm:fulano:contraseña"/>

Guardamos los cambios.

Ahora tenemos que modificar los archivos de configuración de las extensiones para añadirle algunos parámetros:

nano /usr/local/freeswitch/conf/directory/default/1000.xml

después de la línea:

<param name="vm-password" value="1000"/>

Añadimos:

<param name="email-addr" value="me@mydomain.com"/> ; correo electrónico donde recibir los correo de voz
<param name="vm-delete-file" value="true"/> ; borrar los correos de voz una vez recibidos
<param name="vm-attach-file" value="true"/> ; anexar los correos de voz
<param name="vm-mailto" value="me@mydomain.com"/> ; Cuando usamos la opción vm-mailto el correo de voz se enviará al correo electrónico definido en esta linea
<param name="vm-email-all-messages" value="true"/> ; enviar todos los correos de voz

Guardamos los cambios:

Ahora lo único que queda es modificar los dos archivos:

  • notify-voicemail.tpl
  • voicemail.tpl

para adaptarlos a nuestra exigencias/idioma

Paramos freeswitch y volvemos a arrancarlo.

Hacemos una prueba. Llamamos desde la extensión 1001 a la extensión 1000 y dejamos un correo de voz

 mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20449
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use freeswitchvm
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SELECT * FROM voicemail_msgs;
+---------------+------------+----------+-------------------+--------------------------------------+-----------------+------------+-----------+---------------------------------------------------------------------------------------------------------------------+-------------+-------+------------+
| created_epoch | read_epoch | username | domain            | uuid                                 | cid_name        | cid_number | in_folder | file_path                                                                                                           | message_len | flags | read_flags |
+---------------+------------+----------+-------------------+--------------------------------------+-----------------+------------+-----------+---------------------------------------------------------------------------------------------------------------------+-------------+-------+------------+
|    1235602355 |          0 | 1001     | sip.freeswitch.es | 65e875bf-1297-45e5-b469-d99c7b043845 | Extension | 1000       | inbox     | /usr/local/freeswitch/storage/voicemail/default/sip.freeswitch.es/1000/msg_e253af15-2511-42bc-9328-e391505292fe.wav |           5 |       | A_URGENT   |
+---------------+------------+----------+-------------------+--------------------------------------+-----------------+------------+-----------+---------------------------------------------------------------------------------------------------------------------+-------------+-------+------------+

1 row in set (0.00 sec)

mysql> quit

Bye

Como pueden ver (aunque la columnas no están bien arregladas) el mensaje se ha guardado en la base de datos freeswitchvm y en la tabla voicemail_msgs

La tablas de la base de datos se crean automáticamente la primera vez que la base de datos se utilizará.

Para concluir  esta es una parte del correo electrónico con el mensaje de voz anexo:

Message From "Extension" 1001

Created: Wednesday, February 25 2009, 05 52 PM
Duration: 00:00:05
Account: 1000@sip.freeswitch.es

 

Etiquetas de Technorati: ,,

Comentarios

Muy buena explicacion

Bastante claro, gracias por el aporte que nos haces.

De nada :)

De nada :)

Espero los suyos.

Un saludo

Cambiar la clave de acceso a FreeSwitch

Hola Amigos
Alguien de ustedes sabe donde cambir la clave de acceso al freeeswitch, cuando uno se conecta por FS_CLI lleva una clave por default que es CLUECON, sabe alguno de ustedes como se cambia esa clave

gracias por su ayuda

Re: Cambiar password de FS_CLI

Hola,

para cambiar la password debes seguir estos pasos:

nano /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml

modificar la linea:

<param name="password" value="ClueCon"/>

y poner la password que quieras.

Guardar los cambios

Volver a arrancar freeswitch (en mi caso)

/etc/init.d/freeswitch restart

ir a la carpeta:

cd /usr/local/freswitch/bin

y arrancar FS_CLI de esta forma

./fs_cli -p nuevapassword

El cambio afecta tambien el socket de freeswitch asi que al entrar en el event_socket tendras que usar la nueva passward configurada.

Saludos

Gracias por la ayuda

Gracias Admin por la ayuda. ya me funciono, te debo otra mas, espero algun dia podertelas pagar y cuando ya tenga algo funcionando usare el botos de donacion

De nada

No te preocupes que el botón donar no lo voy a quitar :)

Chao

ok cuenta con mi en poco tiempo

ok cuenta con mi en poco tiempo

contraseña de correo de voz

Hola,

He observado y leido en algún sitio que por defecto la contraseña para acceder al correo de voz es la misma que el número de la extensión, o sea 1001 para la extensión 1001 y al probarlo funciona, lo que me intriga es que en el archivo de configuración 1001.XML yo puedo definir el parámetro vm-password y asignarle un valor, por ejemplo 1234 pero este valor no tiene ningún efecto, al probar y pulsar 1234 recibo un mensaje de error, en cambio si pulso 1001 puedo acceder  al correo y escuchar los mensajes, ¿alguién sabe como corregir esta operación para poder utilizar el valor que asigne a vm-password?

Enviar un comentario nuevo

CAPTCHA
Esta pregunta es para averiguar si eres un humano (aunque troll)
Image CAPTCHA
Enter the characters shown in the image.
Distribuir contenido Distribuir contenido