Está en la página 1de 33

Universidad del Cauca

Facultad Ingeniera Electrnica y Telecomunicaciones


Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

PRACTICA 2: CONFIGURACION DE SERVICIOS EN ASTERISK

PRESENTADO POR:
SIMON BEDOYA VALENCIA
ANDRES FELIPE SEVILLA

PRESENTADO A:
ING. DANIEL EDUARDO CAON

UNIVERSIDAD DEL CAUCA


FACULTAD DE INGENIERIA ELECTRNICA Y TELECOMUNICACIONES
POPAYAN
2015
1

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

1. INTRODUCCION
En la siguiente practica se vera la configuracion de diferentes servicios del sistema
ASTERISK, se configuraran diferentes parametros en archivos como extensions.conf,
sip.conf, voicemail.conf, entre otros.
Ademas del respectivo analisis a los protocolos SIP, de cada uno de los servicios
configurados por medio de la herramienta Wireshark (Analizador de protocolos) y por
ultimo se desarrollara un aplicativo (AGI) para la atencion de solicitudes a usuarios.

2. OBJETIVOS
2.1. Objetivo General

Configurar diferentes servicios en Asterisk.

2.2. Objetivos Especficos

Instalar y configurar servicios basicos como Voicemail, Followme, Meetme,


Conference, Transferencia de llamada asistida y Grabacion bajo demanda.
Instalar y configurar servicios IVR.
Configurar codecs e idioma en Asterisk.
Configurar AGI (Asterisk Gateway Interface)
Desarrollar un aplicativo con Asterisk y AGI para atender solicitudes de
usuarios.
Analizar mensajes SIP en los diferentes servicios configurados.

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3. DESARROLLO (INSTALACION Y CONFIGURACION SERVICIOS


BASICOS ASTERISK)
A continuacion se describira la configuracion de diferentes servicios en Asterisk como
tambien se analizaran los diferentes mensajes SIP generados en cada uno de los
momentos de la llamada.
3.1. VOICEMAIL (Correo de Voz)
CONFIGURACION:
Primer paso: Se debe configurar en el archivo extensions.conf le extension a la cual
se comunicara con el correo de voz, para este caso sera la extension 123.

Como se observa se configura como una extension como se realizo en la practica


pasada con un pequeo cambio ya al momento de contestar no se pasa a la extension
sino que accedemos a la funcion principal del correo de voz que el VoiceMailMain el
cual es el que accedera a donde estan localizados los mensajes, con la funcion
${CALLERID(num)} obtenemos el numero de la extension de la que llamamos y
despues nos pedira la contrasea que mas adelante se explica como se establece y todo
esto en el contexto lab3sistel que es en el que estan las extensiones.
Segundo paso: Ahora configuramos el mailbox en cada una de las extensiones
anteriormente creadas en el archivo sip.conf

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Tercer paso: Ahora en el archivo voicemail.conf configuramos las caracteristicas que


va a tener nuestro correo de voz, en esta seccion podemos configurar diferentes
componentes como:
-

Codec audio.
Remitente correo electronico.
Envio del mensaje de voz con el correo.
Numero maximo de mensajes.
Numero maximo de segundos por mensaje de voz.
Etc.
Entre otras funcionalidades, ahora se crea el contexto en el que estamos trabajando
(lab3sistel) y se crean los voicemails para cada una de las extensiones como se muestra
en la siguiente figura.

Cuarto paso: Por ultimo configuramos en cada una de las extensiones en el archivo
extensions.conf para que despues de un tiempo de timbrado acceda a dejar el mensaje
de voz.

En la anterior imagen se observa que si al realizar una llamada esta hace el proceso de
timbrado por mas de 10 segundos, entra al voicemail de la extension y se ejecuta el
menu del correo de voz.

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 3

Como podemos observar en la figura 1


la interaccion de mansajes SIP entre el
emisor y el servior, se opbserva la
invitacion hasta el timbrado (Ringing),
despues de que se cumple el tiempo
establecido de timbrado para este caso
10 segundos, el servidor entra a
cancelar el timbrado en el receptor
como se observa en la figura 2. el
servidor termina el proceso de llamada
al receptor y queda en funcionamiento
con el emisor solicitando el registro del
mensaje de voz y almacenandolo con
su respectiva informacion.
Al final se observa que en el momento
en que empieza a trabajar el servicio de
Voicemail, solo queda conexin entre
el servidor y el emisor.

Figura 3

En la figura 3 se puede observar


cuando se realiza la llamada al buzon
de voz para revisar los mensajes que
han dejado en el, se observa como se
envian los datos para la contrasea y
por medio del protocolo RTP es que
hacemos toda la interaccion entre
servidor y el emisor.

Figura 3

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3.2. CONFIGURACION DEL IDIOMA ESPAOL


1.
2.
3.
4.

Se accede como superusuario: sudo su


Ubicarse en el directorio /usr/src: cd /usr/src
Crear un nuevo diretorio llamado voces: mkdir voces
Descargamos los archivos de los audios en espaol por medio de los siguientes
comandos:
Wget http://www.voipnovatos.es/voces/voipnovatos-core-sounds-es-ulaw1.4.tar.gz
wget http://www.voipnovatos.es/voces/voipnovatos-extra-sounds-es-ulaw1.4.tar.gz

5. Descomprimir los archivos:


tar zxvf voipnovatos-extra-sounds-es-ulaw-1.4.tar.gz
tar zxvf voipnovatos-core-sounds-es-ulaw-1.4.tar.gz
6. Ya que los directorios creados son del tipo /<directorio>/es, los cuales no
corresponden a la estructura manejada por nuestra version de asterisk, es
necesario mover los directorios descomprimidos hacia la ubicacin correcta. A
continuacion se crea cada uno de los directorios en la forma correcta para que
pueda ser interpretado por asterisk.
mkdir /var/lib/asterisk/sounds/es/dictate
mkdir /var/lib/asterisk/sounds/es/letters
mkdir /var/lib/asterisk/sounds/es/silence
mkdir /var/lib/asterisk/sounds/es/followme
mkdir /var/lib/asterisk/sounds/es/phonetic
mkdir /var/lib/asterisk/sounds/es/digits
7. Mover el todo contenido de cada directorio descomprimido a su
correspondiente creado en el punto 6.
mv /voces/es/* /var/lib/asterisk/sounds/es/
mv /voces/digits/es/* /var/lib/asterisk/sounds/es/digits/
mv /voces/dictate/es/* /var/lib/asterisk/sounds/es/dictate/
mv /voces/letters/es/* /var/lib/asterisk/sounds/es/letters/
mv /voces/silence/es/* /var/lib/asterisk/sounds/es/silence/
6

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

mv /voces/followme/es/* /var/lib/asterisk/sounds/es/followme/
mv /voces/phonetic/es/* /var/lib/asterisk/sounds/es/phonetic/
8. Configurar los archivos asterisk.conf y sip.conf modificando las siguientes
lineas:
En asterisk.conf habilitamos la linea languageprefix = yes

En sip.conf, en el contexto general agregamos la linea language = es

3.3.

SERVICIO TRANSFERENCIA DE LLAMADA ATENDIDA


Este servicio permite realizar la transferencia de una llamada en curso a otra
extencion. Esta transferencia la puede realizar cualquiera de los dos usuarios
involucrados en la comunicacin.

3.3.1. Configuracin
Para configurar este servicio es necesario modificar los archivos de
configuracion extensions.conf y features.conf, realizando los siguientes
pasos:
1. Abrimos terminal y accedemos como super usuario mediante el comando
sudo su.
2. Vamos al directorio de ASTERISK
cd /etc/asterisk

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3. Despues que estemos en el directorio de ASTERISK abrimos el archivo


extensions.conf mediante el comando nano extensions.conf o gedit
extensions.conf.
4. Ahora se procede a modificar el archivo extensions.conf aadiendo la
siguiente linea a cada extensin:
exten => extensin, n, Dial (SIP/40000,extensin,tTWw)
Donde t es un parametro que permite activar el servicio de transferencia en
el destino y T en el origen. Es decir que t permite al llamado realizar
transferencia de llamadas pulsando la combinacion de teclas definidas en
el archivo features.conf y T permite la transferencia al llamante.

Figura 4. Configuracion extensions.conf


5. A continuacion se procede a configurar el archivo features.conf para
definir la combinacion de teclas para usar el servicio de transferencia. Ya
en el archivo features.conf, se procede a descomentar las lineas atxfer =>
*2 y blindxfer => #1.
atxfer permite realizar una transferencia de llamada atendida al presionar
*2 seguido por el nmero de la extensin. Al seguir el proceso de
transferencia se escuchar timbrar esperando respuesta de la extensin a la
8

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

que la transfiere. Quien ejecuta la transferencia puede hablar con el


interlocutor, solamente cuando quien transfiere cuelgue, las dos
extensiones podrn conectarse.
Mientras que blindxfer, permite transferir una llamada al presionar la tecla
#1 seguido del nmero de la extensin, la llamada se transferir e
inmediatamente la llamada entre el interlocutor y quien transfiere
terminar.

Figura 2. Configuracin features.conf


3.3.2. Funcionamiento
Hay dos formas de transferencia de llamada, transferencia ciega y
transferencia atendida.
Transferencia ciega:
Para este caso se realiza una llamada de 30000 a 30001, pero el usuario 30001
quiere realizar una transferencia a la extension 30002 para establecer la
comunicacin entre 30000 y 30002. El usuario 30000 llama al usuario 30001,
este contesta la llamada, digita el numero para la transferencia, en este caso es
el #1, y seguidamente se digita la extensin a la que quiere transferir la
llamada, es decir el usuario 30002. El usuario llamante 30000 queda en espera
mientras 30001 llama al usuario 30002 y le comunica que tiene una llamada
de 30000. En este momento, 30002 puede aceptar o rechazar la llamada. En
caso de aceptar, 30001 slo tiene que colgar para que la llamada se establezca
entre 30000 y 30002.

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 3. Transferencia ciega.


En la figura 4 se muestra el funcionamiento en la consola CLI de asterisk.

Figura 4. Transferencia Ciega en CLI de asterisk.


Transferencia atendida:
En este tipo de transferencia, el usuario que inicia la llamada 30000, llama al
usuario 30001, una vez este ha contestado, el usuario 30001 digita la clave
para la transferencia, en este caso es el *2 y digita el nmero de la extensin a
la que quiere transferir, 30002. El usuario 30000 es dejado en espera mientras
30001 llama al usuario final 30002 y le comunica que 30000 quiere
comunicarse con l. En este momento, 30002 puede aceptar o rechazar la
llamada. En caso de aceptar, 30001 slo tiene que colgar para que la llamada
se establezca entre 30000 y 30002.

10

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 5. Transferencia Atendida en CLI de asterisk.


3.3.3. Sealizacin SIP
3.3.3.1.

Sealizacin SIP Transferencia ciega


El usuario 30001 y 30002 establecen la comunicacin mediante los
mtodos determinados para hacerlo, as 30001 enva su informacin,
informacin del destino y del tipo de informacin a transmitir (INVITE),
se informa al usuario 30002 mediante el timbre (180 ringing) y se establece
la comunicacin (200 OK). El usuario 30002 solicita el fin de la llamada,
para que esta sea transferida al usuario 30003, la llamada entre 30001 y
30002 termina y se establece la comunicacin entre 30001 y 30003.

11

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 6. Sealizacion SIP en wireshark.

3.3.3.2.

Sealizacin SIP Transferencia atendida


Como se aprecia se realiza la primera llamada mediante el mtodo INVITE
a la cual el sistema responde con un ACK, desde este terminal se realiza
la transferencia que se hace nuevamente por el mtodo INVITE, este
intenta y realiza el timbrado a la siguiente extensin, quien establece la
transferencia mediante 200 OK y confirma con un ACK, terminado la
llamada con BYE.
12

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 7. Sealizacion SIP en wireshark.

Figura 7. Sealizacion SIP en llamada de 30000 a 30001.

13

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3.4.

GRABACIN BAJO DEMANDA


En el servicio de grabacin bajo demanda, su funcionamiento consiste en almacenar
archivos de audio en formato .wav, pertenecientes a las conversaciones tenidas por el
usuario. Para activar el servicio cualquiera de los usuarios, durante una conversacin,
puede presionar la combinacin de teclas *1, seguidamente se procede a realizar el
almacenamiento de la grabacin, que se detendr al colgar la llamada o al presionar
nuevamente la combinacin de teclas anteriormente mencionada.

3.4.1. Configuracin
1. Acceder como sper usuarios por medio del comando sudo su
2. ubicarse en el directorio de asterisk cd /etc/asterisk
3. Abrir los archivos de configuracin features.conf y extensions.conf por medio de
los comandos:
# nano extensions.conf
# nano features.conf
4. Ahora se procede a modificar el archivo de configuracin extensions.conf
aadiendo la siguiente lnea:
exten => extensin, n, Dial (SIP/40000,extensin,tTWw)
Como se muestra anteriormente: w permite iniciar la grabacin de la llamada
mediante el envo de la secuencia DTFM definida para la grabacin por una
marcacin en la configuracin definida en features.conf. Anlogamente, W
permite iniciar la grabacin de la llamada mediante el envo de la secuencia DTMF
definida para la grabacin por una marcacin en la configuracin de features.conf.

14

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 8. Configuracin extensions.conf para grabacin bajo demanda.


5. A continuacin se modifica el archivo features.conf, en el cual se configura la
combinacin de teclas para acceder al servicio.
En el contexto featuremap se agrega la lnea:
(Set(DYNAMIC_FEATURES=automon)) y se activa automon => *1.

Figura 9. Configuracin features.conf


15

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

En la figura se puede ver que el parmetro automon => 1 indica que


cuando *1 es marcado se activa automaticamente la grabacin de
llamadas hasta que finalice la comunicacin.

3.4.2. Funcionamiento
Cuando 30000 llama a 30001, este contesta y se inicia la conversacin; en cualquier
momento, mientras la llamada se encuentre en progreso, uno de los dos usuarios marca
*1 y se comienza a grabar la conversacin, creando un archivo de audio para cada
usuario, y almacenndolos en /var/spool/Asterisk/monitor, generalmente en formato
.wav; estos archivos se guardan con la hora de inicio y con los nmeros de las
extensiones involucradas. La grabacin finaliza cuando la llamada termine (error de
conexin, alguno de los usuarios cuelga). A continuacin se muestra la direccin donde
quedan guardados los audios con extensin .wav

Figura 10. Directorio donde se almacenan las grabaciones.


A continuacin se muestra el proceso de grabacion en la consola CLI de
asterisk.

16

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 11. Grabacion bajo demanda en CLI.


3.4.3. Sealizacin SIP
El que marca *1 es el usuario 30000 y tambien el que finaliza:
Se observa como el usuario 30000 extiende un mtodo de registro para asociar
su direccin fsica a la direccin IP identificada (REGISTER), inicialmente el
servidor no lo autoriza (401 Unautho) , pero finalmente la comunicacin se
establece y posterior a la aceptacin, el usuario 30000 enva su informacin y
la del destinatario y adems caracterizacin del flujo que ser intercambiado
al servidor (INVITE), el usuario 30000 marca al usuario 30001 y el servidor
le responde indicando que la solicitud ha sido recibida (trying 100), y
posteriormente enva al usuario A informacin adicional sobre el proceso de
la llamada hasta que el usuario 30001 es avisado de su llamada ( 180 ringing)
se establece la comunicacin y el usuario 30000 marca *1 que es la opcin
que le permite grabar su comunicacin, esta se desarrolla y termina.

17

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 12. Sealizacion SIP usuario 30000 llamando y grabando.

Figura 13. Llamada desde 30000 a 30001 y grabada por 30000.

18

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3.5.

SERVICIO DE FOLLOWME
El servicio de Followme permite redireccionar una llamada a un numero de
extensiones definidas en los archivos de configuracion en caso que la
extension a la que se llama no est disponible.

3.5.1. Configuracin
1. Acceder como super usuario: sudo su
2. Ubicarse en el directorio de asterisk: cd /etc/asterisk
3. Abrir los archivos de configuracin extensions.conf y followme.conf
# nano extensions.conf
# nano followme.conf
4. Editar el archivo de configuracin extensions.conf modificando las
siguientes lineas:
exten => nmero de extensin, n, FollowMe (nmero de extensin,san)
Esta linea le indica al servidor asterisk que si hay una llamada hacia la
extension configurada, mire el archivo followme.conf, que es donde se
encuentran configuradas las extensiones a las cuales se debe llamar en caso
que la extension principal no est disponible. A continuacion se muestra
el archivo configurado.

El comando san indica tres opciones de


configuracin:
s : Anunciar al llamante el estado de la
extensin solicitada antes de empezar los
distintos pasos configurados en el archivo
followme.conf.
a: El llamante podr grabar su nombre para que
sea anunciado al llamado cuando conteste.
n: si una vez que se hayan llamados
todos los nmeros 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.

19

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

5. Editar el archivo followme.conf, modificando y habilitando las siguientes


lineas:
featuredigittimeout=>5000:

Numero de milisegundos
aceptar o rechazar la llamada

takecall=>1

para aceptar la llamada despus de


descolgar, se deber hundir la tecla 1
del telfono

declinecall=>2

Para rechazar la llamada se deber


hundir la tecla 2

call-from-prompt=>followme/callfrom

La voz predefinida si el llamante no


ha registrado el propio nombre o si la
opcin para registrarlo no ha sido
activada.

options-prompt=>followme/options

Esta voz anunciar al llamado que


tendr digitar 1 para aceptar la
llamada y dos para rechazarla

pls-hold-prompt=>followme/pls-holdwhile-try

El llamante escuchar esta voz que le


dir que espere en lnea mientras se
intentar localizar el llamado.

status-prompt=>followme/status

Esta voz anunciar al llamante que la


persona llamada no se encuentra al
momento.

sorry-prompt=>followme/sorry:

Si al final de todos los desvos nadie


contestar la llamada, esta voz
anunciar al llamante que no se ha
podido localizar la persona buscada

Adems de esto, se configurar las extensiones a las cuales se deben desviar


las llamadas.

20

para

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Figura 14. Configuracin followme.conf


musicclass=>default

Tipo de msica de espera que escuchar el


llamante mientras se localizar el destinatario.

context=>prueba:

El contexto que usar la aplicacin Followme


para localizar el llamado

number=>extensin siguiente, duracin en La lista de nmeros que se intentar llamar


para localizar el destinatario de la llamada.
segundos de la marcacin

3.5.2. Funcionamiento
A continuacin se muestra en la consola del asterisk el proceso de llamada
entre el usuario 30003 al 30000, cuando el usuario 30000 no contesta se activa
el servicio de Follow-me en el que se intenta llamar a la extensin siguiente
configurada en el followme.conf, que este caso es la de 30001, y en caso que
la extension 30001 no conteste luego de un tiempo determinado (10 segundos),
intentar llamar a la extensin siguiente, es decir a la 30002, si 30002 no
contesta, pasar al correo de voz (VoiceMail), tal como se muestra a
continuacin:

21

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Llamada no contestada por parte del usuario 30000:

Ya que el usuario 30000 no contesta, se activar el servicio followme y pedira


que grabe el nombre el cual sera almacenado en el directorio
/var/spool/asterisk/followme, la llamada sera desvaida a la extension 30001,
pero como este no contesta intentar llamar a la extension 30002. Igualmente,
al no contestar la extensin 30002, se dirigir directamente al buzon de voz,
el cual se almacena en el directorio /var/spool/asterisk/voicemail.

22

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Llamada contestada por la extension 30001:

3.5.3. Sealizacin SIP


Llamada no contestada por el usuario 30000.
El usuario 30003 est intentando comunicarse con el usuario 30000, enviando
al servidor un INVITE a la extensin 30003 y recibe un 100 Trying; despus
de un tiempo, el servidor deja de intentar ya que 30000 no contesta (Request:
CANCEL), se termina la solicitud (487 Request) y A enva un ACK.
Posteriormente, el servidor enva un ENVITE a la extensin 30001, tratando
de localizar al usuario, el cual contesta (200 OK) y oprime un nmero
indicando si recibe la llamada o no (Request: INFO), al oprimir 1 se establece
a comunicacin (200 OK). Luego 30001 cuelga (BYE) y se termina la
llamada.

23

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

24

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3.6.

ConfBridge (Conferencias)
El servicio de ConfBridge se opta tomarlo por que el servicio homologo que
es Meetme require de una aplicativo extra el cual es Dahdi y en el proceso de
instalacion de Dahdi ocurrieron diferentes contratiempos y no se pudo instalar
de manera correcta para que se pudiera activar el servicio MeetMe, por otro
lado se trabaja este otro servicio por que recrea el mismo entorno y funcion de
MeetMe que es poder hacer conferencias.

3.6.1. Configuracion:
Se entra al archivo extensions.conf y colocamos los parametros de la extension
que alojara la conferencia de la siguiete manera:

Aca se observa como configura el servicio confbridge, donde la extension de


la sala de conferencia sera la 5000, con una contrasea 123 y el parametro s
que nos informa si el usuario entra y le informa que esta solo en la sala.
Ahora se dirige a configurar en el archivo sip.conf la extension del la sala de
conferencia de la siguiente manera:
como se puede observar la configuacion de la
extension es muy similar a la de una extension para
un softphone, una diferencia es que no se define host,
y definimos allow para que soporte la negociacion de
los codec de audio de las extensiones.
25

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

3.6.2. Sealizacion SIP:

26

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

4. DESARROLLO (CONFIGURACION SERVICIOS DE IVR EN ASTERISK)


4.1. Configuracion:
Como primer paso empezamos a construir el IVR, para esto creamos el archivo
Gedit /etc/asterisk/IVR
Luego empezamos a construir nuestro IVR, se hace de la siguiente manera:
Primero tenemos una espera de un
segundo despues de contestar,
luego establecemos el idioma del
canal, establecemos tiempo de
ingreso de digitos y respuesta,
luego ejecutamos el audio con el
menu, luego ejecutamos el
WaitExten el que se encarga de
esperar y leer los digitos
ingresados en el telefono, si se
presiona 1 marcamos a la
extension 30001, si presionamos 2
hacemos redireccion a otro
contexto del IVR, si se presiona un
numero erroneo o sin funcion se
ejecuta el mensaje que el numero
es invalido y repite el menu.
Despues configuramos la extension de marcado del IVR (contestadora) en el
archivo extensions.conf y tambien incluimos el archivo al finalizar el contexto
del dialplan.

27

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

4.2. Sealizacion SIP:

5. AGI APLICACIN EN PHP


5.1.

Descripccion:
La aplicacin se integra con un IVR diseado para el organismo de transito y
transporte minucipal, el cual tiene opciones de comunicacin con extensiones
definidas o tambien de marcar una extension predeterminada por el usuario,
donde entra el conjunto de AGI con el lenguaje de programacion PHP, lo hace
con un numero de extension, el cual dara la informacion del estado de cuenta
de una persona registrada ante el organismo de transito y transporte, el cual le
pedira al usuario ingresar su identificacion, la aplicacin AGI php actuara e
ingresara a la base de datos y cotejara la informacion ingresada, si la
28

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

identificacion se encuentra registrada en el sistema, automaticamente cargara


la informacion que tiene esa identificacion como lo es el nombre, apellido,
numero de multas y el valor total de ellas, enviara la informacion a asterisk el
cual por medio del servicio festival que se encarga de el texto convertirlo en
audio, informara a la persona de su estado.
5.2.

Configuracion:
Primer paso descargamos los componentes del phpagi y los llevamos a su
carpeta respectiva, con los siguientes comandos:
cd /usr/src
wget http://sourceforge.net/projects/phpagi/files/latest/ -O phpagi.tgz
tar xvf phpagi.tgz
mkdir /var/lib/asterisk/agi-bin/phpagi
cp -r /usr/src/phpagi-<version_phpagi>/* /var/lib/asterisk/agi-bin/phpagi/
despues de tener los archivos copiados, revisamos que el compilador php este
funcionando correctamente este esta ubicado en la carpeta:
/usr/bin/php
Si poseemos problemas con el compilador phpagi realizamos la instruccin
Apt-cache search php | grep agi
Con esta linea nos apareceran todos los paquetes relacionados con phpagi, los
que nos aparezcan los debemos instalar, con el comando apt-get install y el
nombre del paquete.
Despues de tener configurado el sistema phpagi, en el momento de crear los
scripts de php se debe tener en cuenta los permisos y propietarios de los scripts
php, se debe colocar con permiso total, se un fichero ejecutable y el propietario
asterisk como tambien el grupo, para cambiar estas propiedades al script se
ejecutan los siguientes comandos:
Chown propietario::grupo ubicacin del archivo //con este comando
cmabiamos de propietario y grupo del archivo
Chmod 775 ubicacin del archivo //configuramos los permisos del archivo
sea ejecutable
29

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

Chmod 777 ubicacin del archivo //configuramos los permiso total para el
propietario
Despues de verificar que los archivos esten en la ubicacin correcta y con los
permisos apropiados, se comienza con la ejecucion del codigo php.
//definimos la ubicacin del compilador php
#!/usr/bin/php q
<?
set_time_limit(30);
// establecemos el archivo phpagi.php para poder ser ejecutado los siguientes
comandos
require ('phpagi/phpagi.php');
error_reporting(E_ALL);
// siempre se debe crear el objeto agi este nos permitira ejecutar comandos
del dialplan de asterisk.
$agi = new AGI();
//obtenemos el parametro enviado desde el dialplan para este caso es el
numero de identificaicion
$ced=$argv[1];
//conexin con la base de datos MySql
$conexion = mysql_connect("192.168.0.16","simon","1234") or
die("Error: El servidor no puede conectar con la base de datos");
mysql_select_db("pruebas",$conexion);
//realizamos la consulta preguntando toda la informacion relacionada con ese
numero de identificacion
$query = "select * from registro where id=\"$ced\" ";
//obtenemos el resultado de la consulta
$_result = mysql_query($query, $conexion);
//verificamos si existe un resultado
$contar = mysql_num_rows($_result);
//si la consulta arroja un valor diferente a 0 es por que encontro coincidencias
en la base de datos por consiguiente hay informacion acerca del individuo
if($contar == 0){
$agi->exec ("goto IVR5,s,1");
}else{
//si existe entonces procedemos a capturar la informacion con esa
identificacion
$query = "select * from registro where id=\"$ced\" ";
30

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

$_result = mysql_query($query, $conexion);


//verificamos si existe un resultado
if($_re = mysql_fetch_array($_result)) {
//definimos las variables y las enviamos al dialplan de asterisk
$agi->set_variable("nombre", $_re[nombre]);
$agi->set_variable("apellido", $_re[apellido]);
$agi->set_variable("n_multas", $_re[nmultas]);
$agi->set_variable("valorm", $_re[valor]);
}else{
//de lo contrario enviamos un mensaje
$agi->text2wav("no encontrado");
}
}
?>
Ahora veremos el codigo de configuracion del IVR con el AGI, para ser
ejecutado desde una extencion, se maneja el mismo macanismo ya explicado
en el servicio IVR

31

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

5.3.

Sealizacion SIP:

32

Universidad del Cauca


Facultad Ingeniera Electrnica y Telecomunicaciones
Practica 2: Configuracion de servicios en ASTERISK
Laboratorio III de Sistemas de Telecomunicaciones

6. CONCLUSIONES

Asterisk permite implementar servicios de telefona y servicios de valor agregado de


manera fcil y rpida.
Se implementaron todos los servicios de Asterisk teniendo en cuenta que para un buen
funcionamiento se la compatibilidad de los programas instalados en Linux con el servidor.
El servicio de IVR es utilizado en muchas organizaciones, para automatizar la atencin
telefnica.

7. REFERENCIAS
http://www.jano.unicauca.edu.co/lab3sistel
http://jano.unicauca.edu.co/lab3sistel/Guia-Informe-2-LabIIISistel.pdf
http://voztovoice.org/

33