Voip

Tecnología de VoIP Gabriel Sánchez España, Grupo S-22 Contenido ¿Qué es la tecnología VoIP?:.........................

Views 208 Downloads 4 File size 436KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Tecnología de VoIP

Gabriel Sánchez España, Grupo S-22

Contenido ¿Qué es la tecnología VoIP?:................................................................................................. 3 ¿Cómo funciona la tecnología VoIP?: ................................................................................... 3 ¿Cómo viajan los paquetes de voz a través de internet? ....................................................... 5 Opciones para clientes en la telefonía IP? ............................................................................. 5 Protocolos más usados por la tecnología VoIP: .................................................................... 7 Ventajas y desventajas de la tecnología VoIP: ...................................................................... 7 Instalación de Asterisk: ......................................................................................................... 8 Aplicando una configuración básica: .................................................................................... 9 Clientes SoftPhones en Windows 7:.................................................................................... 12 Clientes SoftPhones en Ubuntu 10.04: ................................................................................ 15 Configurando buzones de voz: ............................................................................................ 17 Configurando salas de conferencia: ..................................................................................... 21 Grabación de conversaciones con MixMonitor……………………………………………23

Gabriel Sánchez España, Grupo S-22.

Página 2

Introducción a la tecnología VoIP: ¿Qué es la tecnología VoIP?: Llamado así por sus siglas en inglés Voice over IP. Se trata de una tecnología compuesta por una serie de recursos y protocolos, que permiten el envío de voz en forma de pequeños paquetes de datos, por la red e internet. Hay que aclarar que VoIP no es un servicio, ni un protocolo en sí mismo. Sino que, como se ha dicho en el párrafo anterior, se trata más bien de un conjunto de protocolos dispositivos y servicios que permiten el envío de voz por internet.

¿Cómo funciona la tecnología VoIP?: Existen muchísimos contextos en los que se utiliza esta tecnología, que pueden ir desde las conexiones sobre red local, donde el único intermediario es un pequeño dispositivo similar a un router que se encarga de enlazar las llamadas, hasta complejas líneas que combinan la red de internet, con la red telefónica convencional, donde los clientes son redirigidos a servidores que hacen de centralitas, donde estos a su vez, enlazan y redirigen a estos clientes con otros según unas reglas definidas. En el contexto de una pequeña o mediana empresa, el funcionamiento del servicio VoIP en red local podría ser similar al siguiente esquema:

Según el esquema de la imagen, y suponiendo que las diferentes extensiones ya hayan sido definidas en el servidor centralita, y los dispositivos, tanto teléfonos IP como SoftPhones ya se encuentren registrados. Siempre que algún dispositivo realice una llamada a otro dispositivo, la petición de llamada a una extensión, será gestionada en el servidor de Centralita, el cual determinará según las reglas que le hayan sido definidas, el camino que deberá tomar la llamada. En un caso sencillo, simplemente comprobaría a que dispositivo corresponde la extensión solicitada, y enlazaría la llamada gestionando los paquetes de voz que se enviasen entre si. Gabriel Sánchez España, Grupo S-22.

Página 3

Para entender mejor como funciona un servidor de centralita de VoIP, no tenemos más que imaginarnos aquellas centralitas telefónicas de los años sesenta, donde un incontable número de operadoras redirigían las diferente llamadas a petición de los usuarios. Pues bien, un servidor de centralita VoIP hace exactamente lo mismo. Para entenderlo mejor, iremos haciendo una analogía de estos dos casos.

En el caso de la telefonía de los años sesenta, cuando un usuario realizaba una llamada, no llamaba directamente al destinatario de esa llamada. Sino que ya estaba directamente conectado a una centralita de operadoras, donde era atendido por una de ellas, a la que solo debía indicar la extensión con la que quería comunicarse, y dicha operadora amablemente establecía la conexión conectando las correspondientes clavijas. En el caso de la VoIP, un cliente queda registrado a la centralita (Tras autentificarse mediante un usuario y contraseña en el proceso de registro). De modo que cuando dicho cliente marca una extensión, le está comunicando a la centralita VoIP, que desea un enlace con el cliente registrado en el servidor de centralita correspondiente a esa extensión. Una vez recibida esta petición, el servidor de centralita VoIP busca en sus bases de datos a que cliente se corresponde esa extensión, y si no existe ninguna regla que lo impida, establece el enlace entre los dos clientes. Y es en la palabra reglas, donde se encuentra todo el potencial de un servidor de centralita VoIP. Ya que podemos definir reglas de acción para gran cantidad de situaciones. Encontrándose entre las más comunes y útiles: • • • •

Que al llamar a una determinada extensión, y no ser contestada la llamada en X segundos, dicha llamada sea desviada a otra extensión, normalmente correspondiente a un buzón de voz. Que determinadas extensión no puedan comunicarse con otras realizando la acción de colgar cuando una determinada extensión llame a otra. Desviar las llamadas a grabaciones automatizadas que proporcionen una determinada información al cliente, o lo pongan en espera. Grabar las llamadas realizadas a determinadas extensiones.

De esta forma, podemos automatizar todas las acciones tanto para la salida como para la recepción de llamadas, proporcionando una gran flexibilidad, tanto para una pequeña empresa o pyme que utilice la VoIP para sus comunicaciones en red local. Como para una gran empresa de telecomunicaciones que ofrezca servicios de telefononía VoIP combinando internet con las líneas telefónicas tradicionales.

Gabriel Sánchez España, Grupo S-22.

Página 4

¿Cómo viajan los paquetes de voz a través de internet? El proceso, una vez enlazada la comunicación entre dos clientes, sería la siguiente: • •



En primer lugar, el cliente emisor comprime el audio mediante un códec negociado en el momento de realizar el enlace con el receptor de la llamada. Una vez comprimido, es enviado a la red, descompuesto en pequeños paquetes que contienen la voz comprimida, además del resto de información necesaria para su posterior desencapsulamiento. Desentendiéndose por completo el cliente del camino que tomarán los paquetes. Una vez han llegado al receptor, éste los desencapsula, reconstruye y posteriormente descomprime con el códec pactado.

Hay que añadir, que la fluidez y eficiencia de la telefonía IP ha ido en aumento gracias a la gran evolución que han experimentado los diferentes códec de compresión de audio. Ya que estas dos tecnologías van directamente cogidas de la mano. Los códecs son la esencia de la tecnología VoIP.

Opciones para clientes en la telefonía IP? Una llamada por VoIP, puede realizarse de varias formas según la naturaleza del cliente que realiza la llamada. De esta manera podemos encontrar comunicaciones VoIP: •

Mediante adaptadores ATA (Analog Telephone Adaptor): Se trata de pequeños adaptadores que se conectan a los clásicos teléfonos analógicos, convirtiendo la señal que envían, de analógico a digital, y a la inversa cuando reciben los datos. Estos adaptadores resultan más económicos que un teléfono IP real (HardPhones), y pueden resultar una buena opción para una empresa que desee conservar sus antiguos teléfonos.

Gabriel Sánchez España, Grupo S-22.

Página 5



Mediante teléfonos IP (Hardphones): A simple vista, son teléfonos normales, pero si nos fijamos bien, su conector es un RJ-45, en lugar del clásico RJ-11 de los teléfonos convencionales. Vienen preparados además con el software necesario para su implantación, y la mayoría son gestionables mediante http, de forma similar a cuando gestionamos un router o un swith via http.



Mediante Softphones: Se trata de pequeñas aplicaciones que se instalan en el ordenador del cliente, y que emulan un teléfono IP. De modo que se puede aprovechar un ordenador con micrófono y altavoces para simular un teléfono IP.

Gabriel Sánchez España, Grupo S-22.

Página 6

Protocolos más usados por la tecnología VoIP: Entre los protocolos más usados en la telefonía VoIP, existen tres, que son los más extendidos actualmente. El primero de ellos es el protocolo H.323. Este protocolo fue originariamente concebido para las video-conferencias. Se trata de un protocolo muy complejo, que a su vez utiliza una larga colección de protocolos auxiliares. Su mayor problema, es que fue pensado para un tipo de tipo de comunicación más complejo (video-conferencias) y si se utiliza solo para VoIP, sin transmisión de video, ni datos, se convierte en un protocolo demasiado pesado que afectará al rendimiento de nuestras comunicaciones por VoIP. El segundo, es el protocolo SIP, Desarrollado específicamente para VoIP. Surge con la necesidad de un protocolo específico para VoIP. Se trata de un protocolo mucho más ligero y eficiente, cuyo uso está muy extendido actualmente. El tercero, es el protocolo IAX2. Este protocolo es específico para servidores de centralita VoIP Asterisk. Se trata de un protocolo muy robusto y a la vez ligero y eficiente. Como se ha indicado al principio, al ser un protocolo exclusivo de Asterisk, se suele utilizar para comunicar servidores Asterisk entre si, o servidores Asterisk entre sus propios clientes.

Ventajas y desventajas de la tecnología VoIP: La mayor ventaja, es que permite usar la vasta red de internet para realizar comunicaciones de voz. Y siempre que dicha comunicación sea entre clientes de VoIP, las llamadas son gratuitas (salvo los costes de la propia conexión a internet por parte del ISP). El problema viene dado cuando intentamos mezclar clientes VoIP con clientes de telefonía convencional. En este caso, cuando las llamadas son entre un cliente VoIP y un cliente de telefonía convencional, si existe un coste de tarificación. Aunque aún así, sigue siendo inferior al coste de una llamada entre clientes de telefonía convencional. Otra ventaja, es que puede implementarse un servicio de telefonía VoIP interno sobre la red local de una empresa. Sin necesidad de recurrir a servicios telefónicos externos. E incluso unir varias sucursales a este servicio (Ya sea por mapeado de puertos o directamente con una VPN). Además, los paquetes de VoIP al viajar por el cableado y estructura de internet (Cables de fibra, pares trenzados, etc), pueden compartir estos caminos con otros tipos de paquetes de datos, lo que hace que se aproveche de forma más eficiente la estructura de internet durante las comunicaciones.

Gabriel Sánchez España, Grupo S-22.

Página 7

Implementando una centralita Asterisk: Instalación de Asterisk: Una vez aclarados los conceptos teóricos sobre el funcionamiento de VoIP. Vamos a pasar a la práctica. Para ello vamos a instalar uno de los servidores de centralita de VoIP más extendidos y usados debido a que es de código abierto, y su uso es libre. Que vamos a necesitar para montar nuestra centralita Asterisk: -

-

Una máquina Ubuntu 10.04 server o desktop (puede ser real o virtualizada), en la que instalaremos Asterisk. (Si es otra versión más actual no deben existir problemas) Otras dos máquinas (Windows o Linux), en esta ocasión reales, y que no compartan el micrófono o los altavoces con la máquina servidora, donde instalaremos y configuraremos los Softphones para realizar posteriormente las pruebas. Ya que en caso de Asterisk, el servidor no puede enlazarse así mismo. A ser posible, otras dos máquinas con sistemas operativos distintos a las anteriores, para realizar las pruebas tanto en Linux como en Windows. El siguiente software de Softphone para las máquinas Windows: http://www.3cx.es/voip-telefono/softphone.html Y por último para Linux, instalaremos desde el propio centro de software de Ubuntu el softphone Ekiga.

El primer paso es instalar el propio Asterisk, para ello en primer lugar actualizamos los repositorios para que no haya problemas con las dependencias a la hora de instalar Asterisk: #Apt-get update Y una vez concluido, procedemos a la instalación: #apt-get install asterisk Con estas sencillas líneas ya tendríamos instalado Asterisk en nuestro servidor. Asterisk se compone de una gran cantidad de ficheros de configuración:

Gabriel Sánchez España, Grupo S-22.

Página 8

Aplicando una configuración básica: En nuestro caso, y por ahora, vamos a utilizar únicamente los más importantes, que son sip.conf y extensions.conf. Comenzaremos con el fichero sip.conf. Este fichero contiene todo lo relacionado para configurar el protocolo SIP, que será el que utilicemos. Si editamos el fichero veremos que existe una pestaña llamada [general] Bien, es en esa pestaña donde se definen los parámetros básicos de conexión para Asterisk mediante el protocolo SIP.

Se trata de un fichero de configuración muy extenso con una gran cantidad de comentarios para su configuración, pero los parámetros que nos interesa configurar en estos momentos son los siguientes:

Ahora voy a pasar a explicar brevemente el funcionamiento de cada uno de estos parámetros: Context  En este parámetro definimos el contexto en el que se aplicarán las reglas definidas dentro de la pestaña [general]. En este caso se aplicarán por defecto (default). Bindaddr  Aquí indicamos la IP del dispositivo de red por el que queremos que Asterisk escuche las conexiones de los clientes en caso de tener varios dispositivos de red. En nuestro caso hemos especificado 0.0.0.0 para indicar que escuche desde todas. Bindport  Aquí indicamos el puerto de escucha para que los clientes puedan registrarse al servidor asterisk. Por defecto es el 5060 si se omite, pero por si acaso lo indicamos. Realm  Aquí especificamos la IP del propio servidor Asterisk. En mi caso la 192.168.1.8. En caso de existir dos NIC en subredes diferentes, indicarlas separadas por comas. Disallow  Esta línea en all deshabilitaría todos los codecs por defecto. Lo hacemos en primer lugar, porque en la línea allow vamos a indicar los codecs que serán utilizados. Allow  En esta línea indicamos el códec o codecs que asterisk usará para la compresión de los paquetes de audio. En mi caso he indicado alaw y gsm por ser lo más utilizados por los Softphones.

Gabriel Sánchez España, Grupo S-22.

Página 9

Una vez definidos estos parámetros de configuración, podemos pasar a definir los parámetros de configuración para las diferentes extensiones que declaremos más adelante en el fichero extensions.conf. Para ello, nos situamos al final del fichero sip.conf y comenzamos a definir los parámetros de configuración para las diferentes extensiones de clientes:

En mi caso voy a definir los parámetros de configuración para cuatro extensiones, que irán desde la 101 a la 104. Los parámetros son los siguientes: Type  Existen tres tipos de usuario, los clientes (user), que solo realizan llamadas. Los proveedores (peer) que solo las reciben, y por último el tipo friend que puede tanto hacer como recibir llamadas y es el tipo que nos interesa en este contexto. Context  Se trata de un parámetro organizativo. Cuando creemos las extensiones, lo haremos dentro de una etiqueta de contexto llamada [phones]. Por eso lo ponemos aquí. Estas etiquetas de contexto sirven para agrupar extensiones requeridas de una administración y parámetros comunes. Language  Este parámetro solo se usa si vamos a llamar a un teléfono analógico convencional. Aquí indicaríamos el prefijo de país por defecto. Aún así lo configuramos como España por defecto, con las sigas “es” que se correspondería con el prefijo +34. Username  Aquí se especifica el nombre de usuario con el que el cliente se registrará contra la centralita Asterisk. En nuestro caso para no complicarnos mucho, ponemos el mismo que el de la extensión. Además, los parámetros username y secret solo son usados cuando el tipo de host es dinámico. Este parámetro se explica más adelante. Secret  La contraseña que será requerida junto con el nombre de usuario para registrar el cliente a la centralita asterisk. Tampoco nos complicamos. Host  Aquí tenemos dos opciones, indicar la IP concreta del cliente que utilizará esta extensión, en cuyo caso no tendría que autentificarse con nombre de usuario o contraseña, o configurar este parámetro como dynamic. En caso de hacerlo dinámico, debido a que la IP del cliente puede cambiar, éste debe autentificarse con el nombre de usuario y contraseña indicamos arriba. (Como es nuestro caso).

Gabriel Sánchez España, Grupo S-22.

Página 10

Ahora solo nos quedaría definir las extensiones que hemos configurado en el fichero sip.conf. En este caso, las extensiones se definen en el fichero de configuración extensions.conf que para que nuestro ejemplo quedará de la siguiente forma:

Cuando se define una extensión, el patrón a utilizar es el siguiente: Exten => extensión, prioridad, comando(parámetros) Vamos a descomponer y explicar un poco lo que hemos definido en nuestras extensiones. Tomo como ejemplo la primera línea correspondiente a la extensión 101: 101  Aquí va el nombre de la extensión que vamos a definir. Debe corresponderse con la etiqueta donde hemos especificado los parámetros de configuración para dicha extensión. 1  Con este número indicamos la prioridad de acción. Con un uno, estamos indicando que cuando esta extensión reciba una llamada, la acción indicada en esta línea será la primera en realizarse. Dial  En este caso la acción Dial hace referencia al tono de llamada. Es decir, que como primera acción, cuando la extensión 101 reciba una petición de llamada, se establecerá el tono de llamada, es decir, hará línea, y el teléfono correspondiente con la extensión 101 sonará. (SIP/101)  Aquí especificamos los parámetros para la acción dial. Que en este caso son el protocolo a utilizar (SIP), y la extensión (101). Con referencia a las acciones, más adelante, cuando vayamos profundizando un poco más, veremos como configurar desvíos de llamadas como acción de otra prioridad a un buzón de voz.

Con esto habríamos configurado nuestra centralita Asterisk para llamadas sencillas entre las diferentes extensiones que hemos definido. Solo tendríamos que añadir más entradas, tanto en el fichero sip.conf y extensions.conf para agregar más clientes a nuestra centralita Asterisk.

El siguiente paso es configurar los softphones en los clientes.

Gabriel Sánchez España, Grupo S-22.

Página 11

Configurando clientes Softphone: Clientes SoftPhones en Windows 7: Para poder realizar las pruebas necesarias vamos a configurar en primer lugar los Softphones para dos clientes Windows 7. El softphone que vamos a utilizar es el 3CX. Podemos descargarlo desde el enlace que indiqué más arriba: http://www.3cx.es/voip-telefono/softphone.html

Tras la instalación, nos aparecerá una interface similar a un teléfono móvil. Lo primero que tenemos que hacer será agregar una cuenta SIP, en la que configuraremos los parámetros para que se registre contra nuestra centralita de Asterisk. Para ello, hacemos clic sobre la esquina superior derecha de la pantalla, sobre “Set accounts”:

Gabriel Sánchez España, Grupo S-22.

Página 12

Al hacerlo se nos abrirá una pequeña ventana, donde se nos pedirá la información necesaria para registrar el cliente contra la centralita Asterisk:

Account name  Aquí podemos poner lo que queramos. Solo es identificativo. Caller ID  Aquí indicamos el nombre que aparecerá en el identificador de llamadas del receptor cuando le llamemos. Extension  El número de la extensión de la cuenta que vamos a añadir. Id  El nombre de usuario que especificamos en username para la autentificación. Password  La contraseña que especificamos para el username en sip.conf. My location  Aquí tenemos dos opciones, una si la centralita se encuentra en la propia intranet, y otra en caso de que se encuentre en internet. En nuestro caso, para las primeras pruebas, lo hacemos desde la intranet, indicando aquí la IP del servidor que aloja la centralita. Gabriel Sánchez España, Grupo S-22.

Página 13

Tras hacer clic en OK, el softphone comienza el proceso de registro para enlazarse con la centralita, y si todo ha ido bien, nos mostrará en la esquina superior derecha, el nombre con el que hemos identificado la conexión, y en la esquina inferior izquierda el estado “On Hook”.

En este caso, hemos realizado la conexión correctamente para la extensión 102, ahora solo nos queda repetir el proceso en otro equipo, para la extensión 101. Una vez configurados los dos softphones, solo nos queda probar a realizar llamadas desde uno a otro y viceversa, para probar que todo marcha bien. Posibles errores y posibles soluciones: Los teléfonos no consiguen registrarse contra la centralita asterisk, y devuelven el error “Server Failure”. Comprueba que no estás intentando registrar un Softphone cliente en la misma máquina donde tienes instalado Asterisk. En caso de ser así, posiblemente sea eso lo que te esté provocando el error. Hadlo con máquinas independientes. Los teléfonos no consiguen registrarse, devuelven un error de conexión: Comprueba que en sip.conf, en la pestaña [general], has especificado correctamente la ip del servidor en el parámetro realm. Además comprueba también el parámetro bindaddrr. No olvides también verificar que el servicio está escuchando. Para ello ejecuta en el servidor netstat –ln | grep 5060, debe aparecer una línea de escucha en udp. Comprueba además que el demonio Asterisk esté corriendo. Ps –aux | grep asterisk. Otro punto que puedes comprobar, es que hayas configurado mal los datos de la cuenta SIP en los SoftPhones. Comprueba que la ip, las extensiones y las contraseñas con correctas, que la ip de la centralita Asterisk no ha cambiado, etc. Los teléfonos se registran, pero no se escucha el sonido: Comprueba los codecs, tanto en la línea allow de sip.conf como en los clientes. Gabriel Sánchez España, Grupo S-22.

Página 14

Clientes SoftPhones en Ubuntu 10.04: Existen una gran cantidad de softphones libres para Linux, pero tras probar varios me he decantado por el Softphone Ekiga, por parecerme el más completo y estable. Descargarlo es sencillo, con la siguiente línea ya lo tendremos instalado en nuestra máquina Ubuntu: #apt-get install ekiga Recuerda actualizar los repositorios y si aún así tuvieses problemas siempre puedes recurrir al centro de software de Ubuntu. Tras la instalación y la ejecución, nos aparecerá un asistente. Lo cerramos, vamos a configurarlo sin asistente. Tras cerrarlo nos aparecerá una interface como la de la imagen. En la barra de herramientas hacemos clic sobre editar y dentro del menú, sobre cuentas.

Gabriel Sánchez España, Grupo S-22.

Página 15

Aparecerá una ventana donde se pueden gestionar las diferentes cuentas. Una vez aquí, abrimos el menú cuentas, y seleccionamos la opción Añadir una cuenta SIP

Cumplimentamos de forma correcta los datos de conexión a la centralita de la misma forma que hicimos con los clientes Windows:

Hacemos clic en aceptar y si todo ha ido bien, nos aparecerá como registrada:

Hacemos lo mismo con la otra máquina Ubuntu y ya podremos realizar las llamadas. Gabriel Sánchez España, Grupo S-22.

Página 16

Configuraciones adicionales: Configurando buzones de voz: Si todo ha ido bien en los puntos anteriores. Ahora mismo dispondremos de cuatro extensiones que podrán realizar y recibir llamadas entre sí. Bien, vamos a profundizar un poco más en las posibilidades que nos ofrece Asterisk, con una de sus utilidades más prácticas, los buzones de voz.

Para añadirlos a las extensiones que ya tenemos creadas, debemos en primer lugar, añadir un nuevo parámetro de configuración para extensión existente en el fichero sip.conf:

El nuevo parámetro de configuración que hemos añadido es mailbox, y el valor que toma se compone de: extension@contexto.

La extensión del buzón se corresponde con la propia extensión de la cuenta. Esto permite a Asterisk gestionar un buzón para cada extensión existente. Si lo deseamos, varias extensiones pueden tener una misma extensión de buzón, pero no resultaría práctico hacer eso. De esta forma tenemos un buzón independiente para cada extensión.

El otro valor a la derecha de la arroba, hace referencia a la pestaña de contexto donde se encuentran definidas las extensiones de los buzones de voz en el fichero voicemail.conf. Las crearemos más adelante.

Gabriel Sánchez España, Grupo S-22.

Página 17

El siguiente paso, es editar el fichero extensions.conf y definir una extensión para cada buzón de voz. Esto permitirá que cuando un cliente marque la extensión definida aquí, sea redirigido a su buzón de voz. Además, vamos a añadir nuevas acciones a cada extensión para cuando reciban una llamada, ya que hasta ahora, la única acción que teníamos definida en la extensión, era la de hacer tono de llamada cuando recibían la llamada (Dial). Nuestro fichero quedaría así:

En las cuatro líneas de la parte inferior, definimos las extensiones desde 1001 hasta la 1004, como extensiones de buzones de voz principales para los buzones indicados entre paréntesis. De esta manera, cuando cualquier cliente llame a alguna de las extensiones declaradas aquí, le saltará el buzón correspondiente que le hayamos indicado.

Además, si nos fijamos, cada extensión de cliente que declaramos al principio, se compone ahora de tres líneas en lugar de una. Es porque ahora tres acciones definidas para extensión.

Exten => 101,1,Dial(SIP/101,15) En esta línea, estamos indicando para la acción de prioridad 1, es decir, la primera, que realice tono de llamada (Acción Dial), mediante el protocolo SIP a la extensión 101, durante 15 segundos. Esto significa que si tras 15 segundos de tono de llamada, la extensión 101 no descuelga, la acción finalizará, y pasará a ejecutarse la siguiente acción de prioridad más cercana. Gabriel Sánchez España, Grupo S-22.

Página 18

Exten => 101,2,Voicemail(101@buzones,u) En la segunda línea, definimos la acción de prioridad 2, es decir, tras concluir la acción de prioridad 1, será esta acción la que se ejecute, haciendo saltar el buzón de voz 101@buzones. En este caso, la u al final del buzón, hace referencia al tipo de mensaje que el contestador reproducirá. Siendo u el mensaje de destinatario ausente (el teléfono sonó pero nadie contesto). Si en lugar de u, indicamos la letra b por ejemplo, el mensaje de voz al saltar el contestador, hará referencia a que el destinatario no está disponible (teléfono apagado, no registrado, etc) Exten => 101,3,Hangup Esta última línea hace referencia a la acción de prioridad 3, colgar. Es decir, cuando el remitente deje su mensaje en el buzón de voz del destinatario, se realizará la acción de colgar (Hangup). Por último, solo nos quedaría tocar un nuevo fichero de configuración que no hemos tocado hasta ahora. Se trata del fichero voicemail.conf. En este fichero se configuran los contextos con los diferentes buzones y sus contraseñas entre otros parámetros. Antes de añadir nuestro contexto con los buzones de voz, voy a comentar algunos parámetros de la pestaña [general] que resulta interesante conocer: Format  Aquí se define el formato de compresión que tendrán los mensajes de voz. Este parámetro admite muchos formatos, como por ejemplo gsm, wav, wav49. El formato que elijamos aquí debe ser soportado por los clientes Softphone. Si no, los clientes tendrán problemas a la hora de dejar los mensajes o consultarlos en sus buzones. En mi caso, me he decantado por wav49 ya que funciona bien con Softphone Ekiga. Serveremail  Si disponemos de un servidor de correo en la máquina donde está instalado Asterisk, y configuramos Asterisk para que se envíe un correo electrónico a cada cliente, cada vez que reciba un mensaje de voz en su buzón. Aquí indicaríamos la dirección que utilizaría Asterisk para el envío de esos correos. Attach  Aquí indicamos si Asterisk adjuntará el mensaje de voz junto a los correos que envíe a los clientes. (En caso de tenerlo configurado así). Delete  Aquí indicamos si tras adjuntar el mensaje de voz con attach en el correo que se envía al destinatario del mensaje de voz, dicho mensaje será borrado del buzón o se conservará. Maxmsg  Aquí va el número máximo de mensajes que puede almacenar un buzón. Maxsecs  Segundos máximos de duración que puede tener un mensaje de voz. Minsecs  Cantidad mínima de segundos que debe tener un mensaje de voz para ser grabado.

Gabriel Sánchez España, Grupo S-22.

Página 19

Maxsilence  Silencio máximo en segundos que se tolerarán antes de colgar la llamada al buzón de voz. Silencethreshold  En este parámetro definimos la sensibilidad del buzón de voz a la hora de considerar que es un silencio para aplicar el parámetro maxsilence. Maxlogins  Número máximo de intentos de login que tienen los clientes. Es decir, el número de veces que un cliente puede fallar al autenticarse antes de que se cuelgue la llamada.

En nuestro caso, solo tendríamos que añadir lo siguiente al final del fichero:

Se trata de los identificadores que asignamos a cada extensión (101@buzones), dentro de la extensión [buzones], seguidos de sus respectivas contraseñas que serán solicitadas cuando un usuario desee consultar su buzón de voz. Si tuviésemos implementado un servidor de correo electrónico, además podríamos indicar aquí la dirección de correo del usuario de la extensión para que le fuesen notificados sus mensajes de voz por correo electrónico. De esta forma, ya estaríamos listos para realizar las pruebas de los buzones de voz con nuestros softphones. La prueba es sencilla, realizamos una llamada, y no contestamos durante los 15 segundos que hemos establecido en el fichero extensions.conf para hacer saltar el buzón de voz. Probamos a dejar un mensaje, y posteriormente, lo consultamos marcando la extensión de nuestro buzón y su respectiva contraseña. Posibles errores a la hora de probar los buzones de voz: El mensaje de bienvenida del buzón de voz no llega a completarse, se corta y se cuelga la llamada a medias, sin concluirlo siquiera: Asterisk tiene una gran cantidad de sonidos pregrabados con los que compone sus mensajes. Esto quiere decir que tiene sonidos pregrabados para los diferentes números, días, meses, horas, etc. Y a la hora de generar un mensaje de voz, los combina según las circunstancias para generar el mensaje. Sin embargo, si por cualquier motivo, falta o está dañado alguno de estos ficheros de sonido, al no poder reproducirlo, asterisk cortará la llamada. Puedes probar a descargar un paquete de sonidos y descomprimirlo en la carpeta /usr/share/asterisk/sounds/en/ que es donde se encuentran los sonidos por defecto (en inglés) para solventar este problema. Aquí tienes un enlace donde poder descargar un paquete con los sonidos de voz en español-latino. http://www.voztovoice.org/tmp/asterisk-sounds-es.tar Gabriel Sánchez España, Grupo S-22.

Página 20

Cuando salta el buzón de voz, se reproduce correctamente el mensaje de bienvenida, sin embargo, justo al terminar y sonar el bip para comenzar a grabar el mensaje de voz, la llamada se cuelga. Esto puede ser debido a los codecs de compresión de audio. Cuando configurábamos el fichero voicemail.conf, había un parámetro de configuración llamado format donde indicábamos el tipo de formato en el que los mensajes de voz se grabarían. Si tu Softphone no los soporta, es posible que ocurra esto. Prueba varias opciones en esta línea, hasta dar con un formato que sea soportado por tu Softphone. De todas formas, el Softphone con menos problemas de compatibilidad en este aspecto es Ekiga en Linux, con formato wav49. El buzón de voz salta correctamente y puedo dejar un mensaje, sin embargo, a la hora de consultar el buzón de voz, justo cuando va a reproducirse el mensaje, la llamada se cuelga: El motivo puede ser exactamente el mismo que el que se comentaba en el punto anterior. Es decir, la compatibilidad de tu softphone con el formato de los mismos. Mi recomendación de los softphone que he probado, es Ekiga. Otro tipo de error, es que asterisk no encuentre el sonido correspondiente a un número o palabra concreta entre su catalogo de sonidos. Descargar un paquete de sonidos y descomprimirlo en la carpeta de sonidos actuales puede solventar este error.

Configurando salas de conferencia: Las salas de conferencia son otra potente herramienta de la que dispone la centralita Asterisk. Estas salas, permiten a todos los usuarios que marquen su extensión, disponer de una sala de conferencia de voz, donde poder hablar todos a la vez. Ahora ya que tenemos nuestras extensiones configuradas, con sus correspondientes buzones de voz, voy a proceder a explicar cómo se puede configurar una o varias salas de conferencia. Para configurar una sala de conferencia no tenemos que modificar nada de la configuración. En este caso nos encontramos con un nuevo fichero de configuración llamado meetme.conf. En este fichero definiremos la sala de conferencia, con su ID y sus correspondientes contraseñas (para acceder como usuario y como administrador) si lo deseamos, todo dentro de la pestaña de contexto [room]. En nuestro caso vamos a añadir una única sala de conferencia a la que daremos el ID 5000. Además vamos a asignarle una contraseña de acceso a usuarios, de modo que si algún cliente marca la extensión, se le solicite dicha clave para unirse a la conferencia. Hacer esto es sencillo, editamos el fichero meetmet.conf y añadimos la siguiente línea:

Gabriel Sánchez España, Grupo S-22.

Página 21

La línea se compone de dos parámetros, 5000 que representa el ID de la sala de conferencia, y el otro 5000 a la derecha de la coma, que es la contraseña de acceso a la sala. Si además quisiéramos añadir una contraseña para el acceso como administrador, lo haríamos justo tras la contraseña de acceso de usuarios: conf => ID,passuser,passadmin. Además dentro del fichero meetmet.conf encontramos también dentro de la pestaña [general], otros parámetros interesantes que si bien no vamos a tocar ahora, es interesante conocer por si alguna vez nos resultan útiles en contextos concretos: Audiobuffers  Número de paquetes de audio de 20 milisegundos que se almacenaran en el buffer. Puede tomar un valor de 2 a 32. Schedule  En nuestro caso este parámetro no nos afecta, ya que hemos creado una sala de conferencia estática. Se utiliza para programar salas de conferencia dinámicas que se activaran a determinadas horas. Logmembercount  En yes, actualiza el realtime cada vez que un usuario entra o sale de una conferencia. Fuzzystart  Indica el tiempo en segundos de margen del que dispone un usuario para entrar en una conferencia programada, antes de que esta empiece. Earlyalert  Son los segundos, antes de comienzo de una conferencia programada, durante los cuales se comunicará mediante un mensaje de voz a los usuarios que deseen entrar, que dicha conferencia aún no ha empezado. Endalert  Aquí se especifican los segundos antes del final de la conferencia, en el que se avisará mediante un mensaje de voz a los usuarios que la conferencia está próxima a ternimar. Vamos a continuar con la configuración de nuestra sala de conferencia estática. Una vez definida la sala de conferencia en el fichero meetme.conf, vamos a asignar una extensión de llamada y sus correspondientes acciones del plan de Dial, para dicha sala. En este caso, el fichero que nos interesa es, como en casos anteriores, extensions.conf, donde añadiremos las siguientes líneas:

En la primera línea, como acción de primera prioridad, descolgamos la llamada. En la acción de prioridad dos, esperamos un segundo. En la tercera línea, de prioridad 3, desviamos la llamada a la sala de conferencia 5000, y con el parámetro M, indicamos que cuando solo haya un usuario en la sala, se le indique mediante un mensaje de voz.

Gabriel Sánchez España, Grupo S-22.

Página 22

Nota: En este caso, la extensión y el ID de la sala coinciden, pero no tienen porque ser iguales. Ejem: Nuestro buzones de voz tenían ID del 101 al 104, pero sus extensiones de llamada iban desde la 1001 a la 1004.

Por último, una vez desviada la llamada a la sala de conferencia, colgamos. Con estos sencillos pasos, ya tendríamos nuestra sala de conferencia operativa.

Grabando conversaciones: Otra opción interesante de asterisk es la grabación de conversaciones para las extensiones indicadas. Para esto vamos a utilizar el comando MixMonitor que permite la grabación de llamadas tanto salientes como entrantes. Para esta prueba, vamos a grabar las conversaciones a la extensión 101 que serán almacenadas en un fichero llamado grabación.wav en la ruta por defecto /var/spool/asterisk/monitor/ Lo primero será editar el fichero extensions.conf y añadir dos nuevas líneas a la extensión 101:

La línea que nos interesa es MixMonitor. Con esa simple línea grabaremos las conversaciones entrantes y salientes de la extensión 101. También disponemos de la opción Monitor en caso de encontrar problemas a la hora de utilizar MixMonitor. La pega de Monitor es que graba el audio entrante en un fichero, y el audio saliente en otro fichero.

Gabriel Sánchez España, Grupo S-22.

Página 23