Está en la página 1de 13

Universidad del Cauca

Facultad de Ingeniería Electrónica y Telecomunicaciones

Laboratorio 3 de Sistemas de Telecomunicaciones

Servicios de Asterisk (Aplicaciones del plan de marcado)

Estudiantes
Santiago Andrés Zúñiga Sanchez
Lina Virginia Muñoz Garcés
Juan Diego Bravo Guevara

Docente
Ph.D. Cristhian Nicolas Figueroa Martínez
Índice
1. Introducción 3

2. Marco conceptual 3

3. Primer servicio: FollowMe 4


3.1. Bitácora de instalación y configuración . . . . . . . . . . . . . . . . . 4
3.2. Definición de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4. Experiencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4. Segundo servicio: Festival 8


4.1. Bitácora de instalación y configuración . . . . . . . . . . . . . . . . . 8
4.2. Definición de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3. Experiencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5. Tercer servicio: IVR 9


5.1. Bitácora de instalación y configuración . . . . . . . . . . . . . . . . . 9
5.2. Definición de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3. Experiencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6. Cuarto servicio: Grabación de llamada bajo demanda 11


6.1. Bitácora de instalación y configuración . . . . . . . . . . . . . . . . . 11
6.2. Definición de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . . 11

7. Conclusiones 12

2
1. Introducción
Asterisk es un conmutador telefónico que ofrece funcionalidades de uso profesional
como transferencias, grabación de llamadas, llamadas en espera, conferencias, grupos
de timbrado, colas de atención a clientes, extensiones remotas, menús de voz, mar-
cación predictiva, conversión de texto a voz, interconexión de sucursales y muchas
otras más. Al aprovechar todo lo que la plataforma ofrece se podrá reducir costos,
aumentar la productividad y mejorar la atención a clientes de una empresa, institu-
ción, etc. En el presente informe se realiza la presentación de cómo hacer uso de los
servicios de valor agregado de Asterisk ‘FollowMe’, ‘IVR’, ‘Festival’ y ‘Grabación de
voz bajo demanda’ con los cuales se puede dar una mejor experiencia en la comuni-
cación al usuario con el cual se quiera hacer la interacción y poder intercambiar la
información, de esta manera será más fácil que la relación de máquina humano en
un proceso de comunicación o entre humanos sea más amena y el usuario haga uso
de los servicios disponibles.

2. Marco conceptual
FollowMe: Esta aplicación permite configurar un usuario o una lista de usua-
rios con los cuales se intentará establecer una comunicación en caso de que
se realice una llamada y el destinatario no la atienda, esto se realiza, según
como se define en el perfil que coincide con el parámetro followmeid en el
archivo followme.conf. En caso de que el identificador especificado no exista,
la ejecución se retorna al plan de marcado (followme.conf) y se continuará con
la instrucción que tenga la siguiente prioridad (1)

IVR: Esta aplicación se refiere a respuesta de voz interactiva, y permite


automatizar las tareas e interacciones rutinarias de servicio al cliente, dando
la posibilidad de que los usuarios que llaman interactúen con el sistema al
permitirles presionar dígitos para acceder a las funcionalidades del sistema.
Un ejemplo de este servicio, es un menú de voz, en el cual a los usuarios se les
presenta un menú pre-grabado donde se mencionan los servicios del sistema,
y donde los usuarios pueden acceder a estas funciones mediante dígitos de
tono. La ventaja de la implementación de este servicio es prescindir de un
recepcionista que atienda la llamada (2). Otra ventaja que ofrece este servicio
es una reducción de los costos operativos, ya que se disminuye en cierta medida
la necesidad de recursos humanos para la realización de procesos.

Festival: Este servicio permite enviarle un texto como argumento de entrada,


el cual será enviado al servidor local de festival y este le reproducirá al lla-
mante, el texto suministrado como formato de audio. La implementación de
este servicio, se puede complementar con otros servicios como IVR o VoiceMail
para estandarizar los mensajes que se le suministran al usuario (3)

Grabación de llamada bajo demanda: Como su nombre lo expresa, el ser-


vicio de grabación de voz bajo demanda le permite a los usuarios participantes

3
de una llamada, realizar la grabación de la llamada que se este ejecutando en
el momento

3. Primer servicio: FollowMe


3.1. Bitácora de instalación y configuración
Para la configuración del servicio FollowMe, se debe configurar su respectivo archivo,
es decir, followme.conf el cual se encuentra en el directorio /etc/asterisk/

Figura 1: Configuración archivo followme.conf

En la figura [1] se observa la configuración que se debe realizar para este servicio, en
la cual se crea un contexto para cada extensión. Este contexto es usado para realizar
la redirección de la llamada cuando un usuario no la atienda. Para esta práctica,
se crearon 3 contextos, uno para cada cliente registrado en el servidor de asterisk.
Los parámetros de la configuración cumplen las siguientes funcionalidades, ‘mu-
sicclass’ define el tipo de música en espera que escuchará el llamante mientras se
intentará localizar el destinatario de la llamada (4), ‘context’ se refiere al contexto
que usará la aplicación followme para localizar el llamado (5), ‘number’ define la lis-
ta de números que se intentará llamar para localizar el destinatario de la llamada (5)

Además, en el archivo extensions.conf se puede realizar una configuración para


la personalización del funcionamiento, esto se puede evidenciar en la figura [2] en
la linea 4, en los argumentos de la sentencia ‘FollowMe()’ podemos observar las
siglas ‘san’ las cuales cumplen las siguientes funciones (5):

s: Se anunciará al llamante el estado de la extensión antes de empezar los


distintos pasos configurados en el archivo followme.conf

a: El llamante podrá grabar su propio nombre para que sea anunciado al


llamado cuando conteste y de esta forma tenga la posibilidad de decidir si
quiere o no aceptar la llamada

4
n: Si una vez que se hayan llamados todos los números no se logre localizar
la persona buscada el llamante escuchará una voz que le dirá que no ha sido
posible localizar el destinatario de la llamada

Cabe resaltar que existen más opciones de configuración, sin embargo, la menciona-
das anteriormente, fueron las implementadas para esta práctica.

Figura 2: Configuración en extensions.conf

3.2. Definición de las pruebas


Para esta práctica se realizaron en total tres casos de prueba, variando los usuarios
que realizan la llamada, los que no la contestan, y finalmente al usuario que se
redirecciona. El primer caso a considerar para demostrar el correcto funcionamiento
del servicio va a ser cuando la extensión 101 realiza una llamada a la extensión 102,
la cual no va a contestar. A continuación, el servicio va a redireccionar la llamada
según el contexto que fue establecido, en este caso puntual, será hacia la extensión
103. A este cliente llegará un mensaje con la opción de contestar o no la llamada
entrante, se establece la llamada y se confirma el debido funcionamiento del servicio
FollowMe.

5
3.3. Resultados

Figura 3: Flujo de mensajes Wireshark - Parte 1

En esta sección de resultados se puede evidenciar interacción entre 4 usuarios, de


izquierda a derecha se observa en la parte superior, la extensión 101, el servidor, la
extensión 103 y por último la extensión 102. Esto ejemplifica como en la llamada el
usuario 101 establece una llamada con el servidor, el cual ofrece diferentes opciones
de marcado hacia los demás usuarios del sistema mediante el mensaje OPTIONS,
este mensaje sirve para informarle a un cliente SIP sobre las capacidades del sistema
y los métodos soportados por el mismo. Así es como se le informa al usuario de la
extensión 101 sus opciones de marcado, de las cuales elije la opción de establecer
una llamada a la extensión 103. El siguiente mensaje SIP NOTIFY, va a ser un
mensaje consecuente a la determinación que haya tomado el usuario llamante. Se
establece entonces una llamada a la extensión 103 la cual no va a contestar con el
objetivo de mostrar el funcionamiento del actual servicio, al no contestar se empieza
a ejecutar el servicio FollowMe, primeramente se le informa al cliente llamante que
no se encuentra disponible el cliente con el cual se desea comunicar, de la misma
manera se le informa que va a intentar contactar a otro usuario y se le pide al
llamante que después de un tono diga su nombre, esto para informarle al usuario
próximo a contactar quién lo esta llamando. Todo esto nuevamente se vislumbra por
el mensaje OPTIONS y el mesanje NOTIFY.

6
Figura 4: Flujo de mensajes Wireshark - Parte 2

Ahora en la figura [4] se puede observar como ya se realizó una llamada con el
mensaje INVITE a la extensión 102 como se indicó en la definición de pruebas.
Acto seguido aparecen hacia la extensión 102 los mensajes típicos de un intento de
llamada, y luego los ya conocidos mensajes OPTIONS y NOTIFY, estos mensajes
hacen referencia al aviso de llamada en el dispositivo de la extensión 102, al cual
se le va a informar por nombre que el usuario llamante se quiere comunicar con él,
esto debido a el servicio FollowMe y la grabación de voz del llamante con su nombre
como se indicó en la figura [3]. Finalmente se le preguntará a la extensión 102 si
desea o no contestar la llamada, para este caso en particular se contestó la llamada,
se estableció comunicación y se finalizó la llamada.

3.4. Experiencias
Las experiencias dejadas en la realización e implementación de este servicio fueron
gratificantes ya que sin mayor complicación se pudo ejecutar correctamente el Fo-
llowMe. Un error que se puede justificar como un descuido en programación fue que
al momento de definir los contextos en el archivo followme.conf, equivocadamente
indico que la llamada se redireccionara al mismo usuario que estaba estableciendo la
llamada en un principio, como resultado de esto, al hacer pruebas con ese caso parti-
cular el servicio FollowMe terminaba la llamada. Oportunamente se encontró el error
y se redefinieron los casos de prueba, para así confirmar el debido funcionamiento
del servicio.

7
4. Segundo servicio: Festival
4.1. Bitácora de instalación y configuración
Para realizar la instalación de este servicio se hace a través del comando de la figura
[5].

Figura 5: Instalación Festival

4.2. Definición de las pruebas


Para poder evidenciar el funcionamiento del festival se debe correr el servidor, como
se evidencia en la figura [6].

Figura 6: Servidor del Festival

Como primera prueba de funcionamiento del servicio se realiza un “Say Text” para
escuchar el texto digitado, como se puede evidenciar en la figura [7].

Figura 7: Primera Prueba Festival

Para poder evidenciar este servicio en el transcurso de los diferentes escenarios de


pruebas, se integra el servicio Festival con el servicio de Respuesta de Voz Interac-
tiva (IVR), como alternativa para reproducir los diferentes mensajes informativos
durante la llamada, como se puede evidenciar en la figura [8].

Figura 8: Festival acoplado con IVR

8
4.3. Experiencias
Para este servicio se tuvieron algunos inconvenientes para realizar la integración con
el festival, debido a que se estaba redactando el texto que se iba a transformar a voz
con algunas comas, lo que el sistema interpretaba como un nuevo parámetro. Para
solucionar esto, el texto que se deseaba transmitir junto con las comas se puso entre
comillas dobles, para que se entendiera como un solo parámetro.

5. Tercer servicio: IVR


5.1. Bitácora de instalación y configuración
Para hacer uso de este servicio se hace la configuración en el archivo “extensions.conf”
como se puede observar en la figura [9] en donde se coloca un contexto llamado IVR
en el cual se incluye la secuencia de sentencias que permiten el desarrollo del esce-
nario propuesto, en donde al realizar una llamada a cualquiera de las extensiones
configuradas, se redirecciona a dicho contexto.

Figura 9: Configuración IVR en extensions

La primera línea en el contexto IVR es un “exten=>s,1,Answer(1000)”, sentencia que


se encuentra en el formato “extensión, prioridad, aplicación”, en este caso la letra
“s” que hace referencia a la extensión, significa start o inicio, a la cual la llamada
suele ir, apenas llega al contexto de IVR; seguido a la extensión se encuentra la
prioridad en este caso es 1, por lo que será la primera sentencia que se ejecuta en
este contexto y finalmente la aplicacicón que es Answer(1000), la cual se utiliza para
que la central conteste una llamada que esta timbrando, en este caso tiene un delay
de 1000 milisegundos.

La segunda linea de código difiere en la primera con la letra “n” en la prioridad que
viene de next, lo que hace es usar un contador interno para ir avanzando en las prio-
ridades. En cuanto a la aplicación se encuentra un Wait(5) que permite establecer
un período de tiempo de espera, antes de que se ejecute otra cosa, para este caso te
tiene que espera 5 segundos

9
La tercera linea de código difiere de la anterior en la aplicación, para este caso es el
primer Background(), el cual es una aplicación que se integra dentro del IVR con el
fin de reproducir un menú de voz pre-grabado y presentarle al usuario las opciones
de marcado disponibles.

La cuarta linea tiene el segundo Background() el cual, de igual manera que en la


anterior sentencia, reproduce un archivo de audio, sin embargo, para este caso su
objetivo es presentarle una canción de fondo mientras el sistema espera a que el
usuario llamante digite la opción respectiva para redireccionarlo la extensión con la
cual desea establecer un canal de comunicación.
La quinta linea tiene la aplicación WaitExtend(10) en cual espera una tiempo de 10
segundos en este caso a que el usuario digite una nueva extensión.
Las lineas que involucran la aplicación goto, permiten que después de que el usuario
digite una extensión, se redirija al contexto de la extensión digitada, como el contexto
evidenciado en la figura 6 y se establezca la llamada en caso de que el usuario final
responda.
La línea inmediatamente siguiente en la del goto, permite capturar el error en caso
de que el usuario haya digitado una extensión no valida y se reproduce un mensaje
informativo con el servicio Festival para comunicar al usuario del error.
Finalmente el Hangup() termina la llamada en curso en caso de que el usuario no
haya seleccionado ninguna opción en los tiempos estimados.

5.2. Definición de las pruebas


Se realiza las pruebas de llamada para cada una de las extensiones creadas, en donde
se puede evidenciar el correcto funcionamiento de la respuesta de voz interactiva
tanto para el menú de voz creado para informar de las posibles opciones a marcar,
como el la redirección de las llamadas al contexto de la extensión seleccionada que
contiene un Festival con el propósito de informar al usuario el nombre de la persona
llamada. En la figura [10] se puede observar como se van ejecutando las sentencias
del código una a una durante la llamada.

Figura 10: Prueba de llamada con servicio IVR

5.3. Experiencias
Para este servicio se tuvieron algunos inconvenientes con la aplicación Background(),
ya que no se lograba ubicar la carpeta que contenía los audios de este servicio, para

10
poder agregar los archivos de audio del menú interactivo. Para solucionar esto se
agregó el archivo en varias carpetas de audio hasta que se encontró la correcta la
cual está en ubicada en la dirección /use/share/asterisk/sounds/en.

6. Cuarto servicio: Grabación de llamada bajo de-


manda
6.1. Bitácora de instalación y configuración
Para la configuración de este servicio se debe configurar el archivo features.conf el
cual se encuentra en el directorio /etc/asterisk/.

Figura 11: Configuración features.conf

En la figura [11] se puede observar la configuración que se debe realizar para habilitar
el funcionamiento de la grabación de una llamada. Dentro del contexto [featuremap]
y descomentar el parámetro ‘autom’ el cual hace referencia a la secuencia de teclas
que el usuario debe digitar para iniciar la grabación de una llamada.

Figura 12: Configuración en extensions.conf para habilitar servicio de grabación de


voz bajo demanda

Además, en la figura [12] se observa la configuración que se debe realizar en el archi-


vo extensions.conf para habilitar el servicio de grabación de voz bajo demanda.
Para la configuración es necesario agregar a la aplicación Dial() el parámetro wW
que nos permite grabar a la persona que realiza la llamada, como al destinatario.

Por último, se realiza la instalación de un reproductor de audio, que nos permitirá


reproducir las grabaciones generadas por este servicio. Para este caso, se instaló el
reproductor de audio sox, para ello ingresamos a una terminal y digitamos ‘sudo
apt install sox’ para iniciar con la instalación.

6.2. Definición de las pruebas


Para comprobar el correcto funcionamiento del servicio implementado, se propuso
un escenario de pruebas en el cual el usuario con extensión 101 realiza una llamada a

11
la extensión 102, dicha llamada es aceptada y una vez establecida la comunicación, el
usuario con extensión 101 digita el código *1 para iniciar la grabación de la llamada.
Cabe resaltar que el usuario con extensión 102 no tiene forma alguna de saber que
se ha realizado una grabación de la llamada en cuestión.

Figura 13: Interfaz de linea de comandos de asterisk

Una vez iniciada la grabación de la llamada, en el CLI de Asterisk (Figura 13) se


desplegará un mensaje informando que la llamada esta siendo grabada mediante
‘AutoMonitor’ y además, nos dará el nombre con el que será guardado el archivo
de audio. Todos los archivos de audio generados por el servicio de grabación de voz
bajo demanda, serán guardados en el directorio /var/spool/asterisk/monitor/
tal como se observa en la figura [14].

Figura 14: Directorio donde se almacenan las grabaciones de llamadas

Si deseamos poder escuchar las grabaciones almacenadas en este carpeta, podemos


utilizar el reproductor de audio ‘sox’ previamente instalado, para ello ingresamos a
la carpeta antes mencionada y dentro de ella escribimos el comando ‘play’ seguido
del nombre del archivo de audio que se desea reproducir.

Figura 15: Reproducción de audio con SOX

7. Conclusiones
El servicio IVR es muy útil a día de hoy, ya que nos permite prescindir de
un operador que tenga que cumplir la función de atender la llamada y darle
el correcto tratamiento a la misma, debido a que para el desarrollo de esta
práctica, esta aplicación nos permite presentar un menú pre-grabado al usuario
llamante, y este puede realizar la acción deseada, de acuerdo a las opciones
presentadas en el servicio.
El servicio Festival permite tener una estandarización en los mensajes que se
van a transmitir al usuario y brinda facilidad al automatizar el proceso de
interacciones rutinarias de la central.

12
El uso de la aplicación WaitExten puede ser muy útil para centrales de em-
presas que disponen de muchas oficinas o diferentes sucursales para poder
comunicarse con alguna de ellas mediante la marcación de una extensión.

La aplicación Background mejora la experiencia de los usuarios ya que permite


que la espera de la llamada sea más amena por medio de la reproducción musica
agradable.

La aplicación Goto mejora la estructura y organización del código, ya que


permite seccionar las sentencias por contextos y esto hace más entendible el
proceso.

El servicio FollowMe es muy apropiado para usuarios que deben ser localizados
de manera esencial, ya que puede generar diferentes redirecciones de llamadas
a números registrados como alternos para localizar al usuario final.

Referencias
[1] “Asterisk 18 Application_followme - Asterisk Project - Asterisk Project Wiki.”

[2] “IVR Asterisk.”

[3] “Asterisk 18 Application_festival - Asterisk Project - Asterisk Project Wiki.”

[4] “Configuración de Asterisk - Octava parte - FollowMe.conf | VozToVoice.”

[5] “SisTel IP Unicauca - Sígueme (Follow me).”

13

También podría gustarte