Vous êtes sur la page 1sur 53

Configuracion

La configuración de usuarios y extensiones SIP se realiza en los archivos sip.conf y extensions.conf de


Asterisk.

Para acceder a sip.conf se debe digitar el comando gedit /etc/asterisk/sip.conf :

Y para extensions.conf el comando gedit /etc/asterisk/extensions.conf e inmediatamente


se abrirá el archivo:

No olvidar que se debe estar trabajando en modo super usuario. Si el comando no funciona puede ser debido
al editor de texto que tenga el linux en el cual se esté trabajando, en éste caso se tenía instalado gedit, si no
es así, intentar el comando con otros editores de texto como nano, vi, entre otros, depende del que tenga en
su equipo.

nano /etc/asterisk/sip.conf
nano /etc/asterisk/extensions.conf

vi /etc/asterisk/sip.conf
vi /etc/asterisk/extensions.conf

sip.conf
sip.conf es el archivo que contiene los parámetros correspondientes a la configuración SIP en Asterisk, en éste
clientes que se conectaran a Asterisk y los servidores SIP para así lograr encaminar las llamadas.

Inicialmente se definirán los parámetros necesarios para lograr una llamada básica, estos son:

[extension] ; numero del usuario.


type = tipo de usuario que puede ser: user (realizar llamadas ), peer (recibir llamadas), friend (realizar/recib
username = nombre del usuario.
callerid = numero telefónico de identificación.
secret = contraseña.
host = dirección ip , hostname o tipo de dirección.
context = contexto por defecto donde entraran las llamadas entrantes por SIP, este parámetro se define tamb

En éste caso se definen las extensiones 90000 a 90003 y el contexto(context) laboratorio3 como se muestra a c
Al poner host en dynamic, se esta habitando que el teléfono se pueda registrar desde cualquier dirección IP.

Después de terminar el registro de los usuarios, se guarda y se cierra, para continuar la configuración en el arc

Después de haber guardado el archivo sip.conf con las modificaciones correspondientes, los usuarios creados d
ello se ingresa al CLI de Asterisk y se escribe el comando sip show users, a continuación se muestran lo
y extensión:
Nota: La configuración de Asterisk y de todo lo correspondiente a ella(que se mostrara en los siguientes apar
extensions.conf
En el archivo extensions.conf se define el plan de numeración que seguirá la central para cada usuario.

Se compone de secciones cuyo nombre se escribe entre corchetes, estas son: [general] , [globals] y Resto de
Contextos [ ].

Las dos primeras secciones siempre están presentes, se encargan de algunos parámetros generales y la
definición de variables globales respectivamente. Para el caso explicado posteriormente, se utilizara el
contexto [general] por defecto, no se crearan variables globales y el Resto de Contextos será denominado
laboratorio 3.

Para una configuración correcta, se debe tener en cuenta que :

Todas las líneas de un determinado contexto tienen el mismo formato: exten => extensión , prioridad,
comando( parámetros), y especifican respectivamente: el número marcado, orden en que se ejecutan las
instrucciones y la acción a ejecutar.

En nuestro caso se configuraran 4 terminales, con los números 90000, 90001, 90002 y 90003, con un orden
ascendente en la realización de las instrucciones; 1, 2, 3 y finalmente n (next, la siguiente en prioridad),
todos estos con la funcionalidad de la recibir, realizar llamadas y reproducir un archivo, tal como se observa
a continuación:
Los comandos para cada unos de los números indican las siguientes acciones:

Dial: Intenta llamar, su estructura es (destino, tiempo de timeout, opciones).

Las opciones son :

"T" :usuario llamante puede transferir la llamada pulsando # .


"t" :usuario llamado puede transferir la llamada pulsando #.
"m": se escuchara un tono mientras el otro usuario contesta.

Así, por ejemplo para el primer usuario: el destino es el usuario SIP 90000, con un timeout de 10 segundos y
el parámetro opciones no se utiliza. Con el resto de usuarios se procede de forma similar.

Answer: Responder llamada.


Hangup: Cuelga al finalizar llamada.
Playback: Reproduce el sonido especificado o archivo de vídeo de Asterisk, en este caso vm-goodbye.

Aclaración: si la llamada no es respondida por el usuario llamado a los 10 segundos, la central la responderá
y posteriormente reproducirá el archivo especificado, es decir vm-goodbye. Por último finalizara la llamada.

Cliente ZoIPer
Después de instalado ZoIPer se puede configurar el nuevo usuario, para esto se abre y se despliega la
siguiente interfaz:

Para registrar a un nuevo usuario, se selecciona el botón Options , al hacerlo se despliega la siguiente
interfaz:
Se hace clic sobre Add new SIP account (recuadro verde) y se ingresa el nombre por el cual se identificará a
la nueva cuenta SIP, en este caso fue nombrada como lab3sistel, al dar aceptar se mostraran la siguiente
interfaz:
En ella se deben completar los diferentes parámetros de la cuenta SIP que se está registrando.

Domain: Dirección IP de Asterisk.


Username: Se seleccionó la extensión 90003 para este usuario.

El Password y el Caller ID Name por defecto es el mismo Username.

Al dar aceptar el usuario quedara registrado, esto se puede apreciar en la parte inferior de la interfaz de
ZoIPer (recuadro rojo).

Llamada:
Para la realización de una llamada es necesario ingresar el número al cual se desea llamar en el campo Phone

to dial, luego pulsar Call e inmediatamente se iniciará la llamada.


Lo que se encuentra en el recuadro azul, se genera al iniciar la llamada.

Nota: es aconsejable revisar la configuración del sonido tanto en los teléfonos como en el equipo que se está
trabajando, si esto no se encuentra bien configurado, no se lograra escuchar a la persona que llama y
tampoco ella podrá escucharnos.
Cliente X-Lite
Después de haber instalado X-Lite, se presentará la siguiente interfaz:
Para registrar una nueva cuenta, se selecciona la opción Softphone (recuadro rojo) y luego Account
Settings (recuadro verde), al hacer esto, se despliega una interfaz donde se deben registrar diferentes
parámetros.
En Account name se ingresa el número de la cuenta o extensión, en este caso se seleccionó la extensión
90001.

En User ID, Password, Display name y Authorization name se deja también 90001, ya que esto se había
definido así al momento de configurar Asterisk.

En Domain se debe ingresar el número de dirección IP de Asterisk y el puerto por donde escucha el servicio,
separados por dos puntos, así:

Dirección Asterisk: Puerto

En este caso la dirección de Asterisk es 192.168.210.108 y el puerto por defecto para SIP es el 5060(no
protegido) o 5061(protegido).

Después de ingresar los datos y pulsar OK o enter, el usuario ya queda registrado, esto se puede observar en
la parte superior de la interfaz de X-Lite, donde aparece el nombre de la cuenta, en este caso 90001.
Nota: Si en Domain, solo se escribe la dirección IP de Asterisk y no el puerto, no se lograra el registro del
teléfono.

Llamada

En el apartado anterior: configuración de ZoIPer, la llamada de prueba es ZoIPer quien realiza la llamada,
en este caso observaremos la llamada entrante en X-Lite.
Observamos que en la mitad del teléfono, se despliega el aviso de la llamada entrante, se muestra el nombre
del usuario y su número, y en la parte derecha superior de la pantalla aparece el siguiente mensaje:

Alertando la llamada entrante, en caso de no tener el teléfono en primera plana de nuestro computador.

Para contestar se selecciona y para rechazar

Nota: Al igual que en ZoIPer es aconsejable revisar la configuración del sonido tanto en los
teléfonos como en el equipo que se está trabajando, si esto no se encuentra bien configurado, no
se lograra escuchar a la persona que llama y tampoco ella podrá escucharnos.
Registro
Cliente Hardware

A continuación se mostrara el flujo de mensajes en el proceso de registro de un terminal


Hardware:
Registro HW.pptx

El proceso de registro también es observable en el CLI de Asterisk:

Donde se indica numero de extensión del usuario registrado, su ubicación es decir dirección IP
y el puerto SIP

Cliente Software

A continuación se mostrara el flujo de mensajes en el proceso de registro de un terminal


Software:

Registro SW.pptx

La diferencia se presenta en que al ser un terminal software, este envía una solicitud de
SUSCRIBE a la central, y por ende recibe ciertos mensajes de respuesta explicados en la
presentación.
El proceso de registro también es observable en el CLI de Asterisk:

Donde se expresa el numero de extensión del usuario registrado, su ubicación es decir


dirección IP, el puerto SIP en este caso 23794 para X-Lite, y su agente de usuario (X-Lite),
ademas, informa sobre la suscripción que se ha presentado, pero que esta se ha hecho sin
mailbox.

En ambos casos observamos el mensaje 401 Unauthorized, que no es típico de SIP, de este se hablara en
profundidad en llamada exitosa

SIP Y SDP
Generalidades SIP

El Protocolo de Iniciación de Sesión (SIP) es un protocolo de señalización basado en texto para realizar
distintas funciones sobre las sesiones multimedia tales como el establecimiento, la gestión y finalización de
estas, las sesiones pueden ser llamadas telefónicas por Internet o distribución de datos y conferencias
multimedia.

Las funciones del protocolo SIP son: Localizar a otro usuario, localizar servidores SIP, establecer una sesión
de datos, modificar una sesión existente, expresar capacidades y características de los usuarios agentes,
averiguar el estado, capacidades y disponibilidad de otro usuario agente, peticiones futuras sobre el estado y
capacidad de otro usuarios agentes, intercambio de información de señalización de una llamada e
Intercambio de mensajes cortos con otros usuarios agentes.

SIP es como HTTP, el protocolo de la Web, o SMTP. Los mensajes tienen encabezados y una carga útil. La
carga útil o cuerpo del mensaje de SIP para llamadas telefónicas se definen en el protocolo de descripción de
la sesión SDP.
Generalidades SDP

Session Description Protocol (SDP), es un protocolo para describir los parámetros de inicialización de los
flujos multimedia.

SDP está pensado para describir sesiones de comunicación multimedia cubriendo aspectos como anuncio de
sesión, invitación a sesión y negociación de parámetros. SDP no se encarga de entregar los contenidos
propiamente dichos sino de entablar una negociación entre las entidades que intervienen en la sesión como
tipo de contenido, formato, y todos los demás parámetros asociados. Este conjunto de parámetros se conoce
como perfil de sesión. SDP se puede ampliar para soportar nuevos tipos de medios y formatos.
Mensajes

Citando la RFC 3261:


"SIP no hace prestación de servicios, pero SIP proporciona primitivas que se pueden utilizar para
implementar diferentes servicios."

Las primitivas SIP mas comunes son:

INVITE: Permite invitar a un usuario o servicio a participar en una sesión o modificar parámetros de una
sesión existente.
REGISTER: Es usado por un user agente o agente usuario para el registro de dirección SIP e IP o dirección
de contacto. Relacionado con la ubicación de los usuarios.
ACK: Confirma el establecimiento de una sesión. (Acuse de recibo).
OPTION: Solicita información sobre las capacidades de un servidor.
BYE: Indica la terminación de una sesión.
CANCEL: Cancela una petición pendiente.
Mensajes de Solicitud
Métodos de petición del protocolo SIP

INVITE: Un usuario envía una petición INVITE para invitar a otro usuario a participar en una sesión. El
cuerpo de una petición INVITE puede contener la descripción de la sesión.
En las imágenes siguientes se observan los protocolos involucrados y el método utilizado.

Mensaje SIP de tipo Request, concretamente INVITE para el establecimiento de llamada. Dirigido a
90002@192.168.210.108. Vemos también la versión SIP que es SIP/2.0 y el protocolo de transporte UDP.
Cabecera:

Via: Contiene trasporte usado (SIP/UDP) , también a donde se debe enviar respuesta 192.168.210.72, y el
branch o identificación de la transacción.

Max forwards: tiene un número limitado de saltos de 70.

Contact: Contiene la IP y puerto donde el que realiza la petición INVITE espera recibir
respuesta:90001@192.168.210.72, el puerto 5060.

To: Cliente al que se realiza la petición, en este caso 90002@192.168.210.108.

From: Cliente que realiza la llamada o petición, en este caso 90001@192.168.210.108., incluye una etiqueta
única.

Call-ID: Identifica a los mensajes que corresponden a la misma llamada.

C-Seq: Número de secuencia.

User Agent: Indica el agente de usuario cliente que realiza la transacción: cisco/SPA303-7.4.8a.

Content-Type: Tipo del cuerpo del mensaje, en este caso SDP

Cuerpo del Mensaje:


Versión SDP: En este caso 0

Owner/Creator: Propietario/Creador de la sesión:

Se trata de una identificación formada por:

 Session ID. ID de la sesión. Número aleatorio como identificador único de la


sesión:59080.

 Network Type. Tipo de red. Siempre IN.

 Address Type. Tipo de dirección. Puede ser IP4 (IPv4) o IP6 (IPv6):IP4.

 Address (IP). Dirección IP:192.168.210.200

 Session Name:

Connection Information. Información sobre la conexión. Información ya contenida en los campos


anteriores:
c= Conection Network Type: (IN)

Connection Address Type: (IP4 o IPv4), en este caso IP4.

Connection Address: (192.168.210.200)

Time Description, active time. Aquí se indica el inicio y final de la sesión. En este caso tenemos (t): 0 0, es
decitstart time= o y stop time = 0. Significa sesión no limitada y permanente.

Media Description, name and address (m): audio 16498 RTP/AVP 0 2 8 9 18 96 97 98 101. Aquí tenemos
información sobre el tipo de datos que se transporta (audio o sesión telefónica en este caso), el puerto UDP
usado (16498), el protocolo usado (RTP Real Time Transport Protocol /AVP Audio video Profiles).

Media Attribute (a). Se trata de una lista de los formato de codes reseñados más arriba.Es lo que aparece en
el recuadro verde.

Media Attribute (a). SendRecv. Modo envio/recepción

ACK: El usuario que generó la petición INVITE envía una petición ACK para confirmar la recepción de la
respuesta final a la petición INVITE. Si la petición INVITE original no contenía la descripción de la sesión,
entonces la petición ACK debe incluirla.

Tipo de mensaje: ACK, a quien va dirigido el mensaje 192.168.210.108 y la versión SIP 2.0

„Via: Muestra el transporte utilizado para el envió, identifica a donde la respuesta debe ser enviada:
192.168.210.72 .
Número máximo de saltos: 70.
To: a quien va dirigido el mensaje 90002@192.168.210.108.
From: quien origino el 90001.
Call-id: identificador único.
CSeq: numero se secuencia.

OPTIONS: Utilizado por el agente del usuario (UA) para obtener información sobre las capacidades del
proxy del protocolo SIP. Un servidor responde con información sobre los métodos, protocolos de
descripción de sesiones y codificación de mensajes que admite.
„BYE: Un usuario envía una petición BYE para abandonar una sesión. Una petición BYE de cualquier
usuario cierra automáticamente la sesión.

CANCEL: Un usuario puede enviar una petición CANCEL para cancelar una petición INVITE pendiente.
Una petición CANCEL no tiene ningún efecto si el servidor SIP que procesó la petición INVITE envió una
respuesta final a dicho INVITE antes de recibir la petición CANCEL

En la cabecera del mensaje podemos encontrar:

Via. Cambia el branch o código de transacción


To. 90002@192.168.210.108

From. 90001@192.168.210.108

REGISTER: Un usuario envía una petición REGISTER a un servidor de registro registrar SIP para
informarle de la ubicación actual del usuario. El servidor de registro SIP registra toda la información que
recibe en las peticiones REGISTER y pone esta información a disposición de cualquier servidor SIP que
intente localizar a un usuario.

Request-line, línea de inicio con el tipo de mensaje, en este caso REGISTER, a quien se dirige la solicitud,
es decir 192.168.210.108(asterisk) y la versión del protocolo, es decir 2.0.

Via: se usa SIP/UDP, 192.168.210.200 el terminal que hace la solicitud y al que le debe llegar respuesta,
(ruta de solicitud) y y el branch o identificación de la transacción.

From: 90002(terminal de origen).

To: 90002(terminal destino de la solicitud).

Call-ID: Es un identificador único para cada llamada e incluye la dirección del host:192.168.210.200.

CSeq: Es presentado por un número aleatorio, identificando la secuencia de las transacciones, o de cada
solicitud.
Max Forwards: 70 es el número máximo de saltos

Contact: al usuario 90002, se le contacta con la dirección 192.168.210.200, puerto 5060.

User Agent: Indica el agente de usuario cliente que realiza la transacción: cisco/SPA303-7.4.8a.

SUBSCRIBE: Utilizado para solicitar el estado actual y actualizaciones de estado a un nodo remoto.

Mensaje de tipo solicitud, el tipo de mensaje es SUBSCRIBE, y va dirigido a 90003@192.168.210.108,


versión 2.0 .

Via: Transporte con UDP, la respuesta se debe enviar a 192.168.210.45, numero máximo de saltos:70.

Contact: El usuario puede contactarse mediante 90003@192.168.210.45.

To: La solicitud va dirigida a 90003@192.168.210.108.

From: La solicitud se origina en 90003@192.168.210.108.

Call ID: identificador único de cada llamada.

CSeq
Mensajes de Respuesta
Las respuestas SIP proporcionan la información de estado sobre las transacciones SIP e incluyen un código
de respuesta y el motivo. Las respuestas SIP se agrupan en las siguientes clases:

Informativo (100 a 199): petición recibida, continúa procesando la petición.


„Éxito (200 a 299): acción recibida correctamente, comprendida y aceptada.
„Redirección (300 a 399): se requiere una acción adicional para completar la petición.
„Error del cliente (400 a 499): la petición es sintácticamente incorrecta o no se puede ejecutar en este
servidor.
Error del servidor (500 a 599): el servidor no pudo cumplir una petición aparentemente válida.
„Fallo global (600 a 699): la petición no se puede realizar en ningún servidor

TRYING

Status Line: por que es mensaje de respuesta. Contiene la versión del protocolo SIP 2.0 , luego el código
numérico de la respuesta 100, donde el primero especifica la clase de la respuesta (1xx: solicitud recibida,
continua el proceso de solicitud),luego la Reason Phrase: Trying .

RINGING
Status – Code: 180, código para especificar el Ringing

Vemos que en este paquete, en el campo To, hay un Tag=31bfc3ffd180796ci0 que no estaba en los paquetes
anteriores. Es el mismo e identifica a la sesión.

OK - SIP
SIP, para finalizar sesión

Via. Cambia branch

From. 90001@192.168.210.108

To. 90002@192.168.210.108

CSeq. 2 CANCEL

OK SIP/ SDP
SDP, para iniciar sesión

Via. Cambia branch

From. 90002@192.168.210.108

To. 90002@192.168.210.108

CSeq. 102 INVITE


Voces en español
Por defecto Asterisk viene configurado en idioma ingles, por lo tanto esto debe ser cambiado, ya que el idioma
donde nos encontramos es el español, que facilitara la comprensión por parte de los clientes.

Para la configuración de voces en español, es necesario descargar el paquete de voces en español en:

http://www.netsecuritysolutionsltda.com/spanish//index.php?option=com_content&task=view&id=113&Item

Al seguir los pasos, se solicitan algunos datos incluyendo el correo electrónico, donde envían un correo con un
un login y una contraseña. Al ingresar al link solicitan el login y contraseña, al ser estos los correctos se inicia
descarga.

El paquete descargado tiene por nombre Net-Security-Solutions-Sonidos-Asterisk-K-rem.zip, es necesario por


tanto descomprimirlo, dentro de ella se encuentran cuatro (4) carpetas: es, digits, letters y phonetic, a excepció
es, dentro del resto se encuentra una carpeta llamada es.
Por otra parte, en la consola de Linux es necesario ubicarse en el directorio /usr/share/asterisk/sounds , que es
se encuentra la configuración de los sonidos para Asterisk, para poder ubicarse en esa dirección se utiliza com
cd, así:

cd /usr/share/asterisk/sounds

Y ya se estará en la dirección deseada:

Dentro de esta es necesario crear el directorio es, utilizando el comando mkdir seguido del nombre del directo
se desea crear:

mkdir es

Dentro de este directorio(es) se deben crear tres directorios más:

mkdir digits

mkdir letters
mkdir phonetic

En el directorio que se acabo de nombra como es, se deben copiar todos los archivos presentes en la carpeta
descargada es, directamente. Para esto se usa el comando cp –R asi:

cp –R carpeta_origen carpeta_destino

En la imagen se observa el directorio en el que nos encontramos resaltado en color verde, seguido del comand
(amarillo), luego la ubicación de la carpeta es (rojo), utilizando * se están seleccionando todos los archivos en
carpeta es, para copiar su contenido y no la carpeta, y por último el directorio de destino, en este caso punto (
que este se utiliza cuando se desea copiar los archivos en el directorio actual, si no nos encontráramos en dond
deseamos copiar los archivos en necesario escribir toda la dirección de destino.

Esto se debe realizar también para los directorios creados digits, letters y phonetic, copiando los archivos qu
encuentran en digits/es, letters/es y phonetic/es, respectivamente.

Para verificar que esto se realizo con éxito se utiliza el comando ls, que permite observar el contenido de la c
actual.
digits:

letters:
phonetic:

Por último, es necesario modificar algunos parámetros en el archivo de configuración sip.conf

Dentro de este archivo, buscamos el parámetro languaje, lo habilitamos descomentándolo, es decir eliminando
punto y coma (;), y cambiamos en por es:

Luego buscamos el parámetro defaultlanguaje, realizamos la misma operación nombrada anteriormente:

Es necesario reiniciar Asterisk para que se habiliten los cambios realizados, con el comando:

/etc/init.d/asterisk restart
Finalmente Asterisk se encuentra configurado en español.

Nota: En el presente documento los archivos descargados se identifican con color azul y los archivos creados con
color naranja.

Buzón de voz (voicemail)


Para acceder al servicio de voicemail, primero se deben configurar algunos parámetros del archivo voicemail.c
mediante el comando:

Una vez en este, se configuran los siguientes parámetros:

En este archivo, se configuran los usuarios del servicio, para esto se crea el contexto [voicelab3]:
Para cada usuario se configuran los siguientes parámetros, cumpliendo con la sintaxis que es:

numero de buzón (el que luego se coloca en extensions.conf y sip.conf) =>contraseña para acceder al buzó
números ya que se digitará desde un teclado telefónico),nombre del usuario, Email del destinatario de los m

Archivo extensions.conf

La sintaxis de las órdenes sigue siendo la misma, numero de la extensión, prioridad y comando o la acción a e
a continuación:

Sin embargo se debe agregar la línea resaltada a cada uno de los usuarios con el fin de que estos puedan hacer
voicemail, como ejemplo se muestra el usuario 90000:
En este caso, el comando es el voicemail e indica donde almacenar los mensajes que se reciben, para este, se d
pone el número del buzón que se coloco antes @ el contexto al que pertenecía.

Posteriormente se configura el VoiceMailMain que permite entrar al sistema de correo de voz de Asterisk, este

VoiceMailMain([buzon][@contexto] [,opciones])

Una de las opciones que se puede configurar es:

S: Para evitar que nos pida password. (Sin embargo esto no se hizo)

Archivo sip.conf

A cada usuario se le agrega la línea resaltada a continuación:


Esta se agrega para indicar el buzón al que serán enviados los mensajes que reciba el usuario.

Transferencia de llamada a ciegas

Transferenciade llamada a ciegas


Configuración:

Para la configuración de Transferencia de llamada a ciegas se deben configurar el archivo features.conf y el archivo
extensions.conf, para acceder al archivo features.conf utilizamos el comando gedit
/etc/asterisk/features.conf, en este habilitamos la sentencia blindxfer, eliminando el punto y coma(;)

blindxfer: Sentencia donde se especifica el numero para activar la transferencia de llamada a ciegas, seguido del
numero de la extencion a la cual se quiere transferir la llamada.

En el archivo extensions.conf, se modifica el metodo Dial de cada uno de los usuarios agregando T y t.
T: permite al usuario llamante transferir la llamada pulsando #1
t: permite al usuario llamado transferir la llamada pulsando #1

Si no se especifican estos no se habilitan las funciones mencionadas en features.conf

Señalización:
Observamos del segundo 8 al 20 se establece y mantiene la sesion entre el usuario 1 y 3 en una llamada habitual
(INVITE, Trying, Ringing, 200OK), en el segundo 20 es donde se inicia la trasferencia, y la central envía solicitud de
BYE al usuario que inicia la sesion para terminar esta, y automáticamente se inicia el proceso de establecer la sesion
con el usuario 2 (segundo 20.939) de la manera usual.

Sígueme (Follow me)


Sigueme(Followme).wmv

Configuración

El servicio se configura en /etc/asterisk/followme.conf así:

s: se anunciará al llamante el estado de la extensión 90000 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
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.

En la configuración del audio para los mensajes están:

[90000]
musicclass=>default ; tipo de música en espera que escuchará el llamante mientras se intentará localizar el
destinatario de la llamada
context=>default ; el contexto que usará la aplicación followme para localizar el llamado.
number=>90001,15 ; Aquí empieza la lista de números que se intentará llamar para localizar el destinatario de la
llamada. En este ejemplo si el destinatario no contesta a la extensión 90000 llamaremos como segunda opción la
extensión 90001 por 15 segundos.
takecall=>1 ; para aceptar la llamada, el llamado, después de descolgar, tendrá que hundir la tecla 1 del teléfono
declinecall=>2 ; para rechazarla la tecla 2
En la configuracion followme.conf:

call-from-prompt=>followme/call-from ; este es la voz predefinida que escuchará el llamado anunciándole quien lo


está llamando
norecording-prompt=>followme/no-recording ; la voz predefinida si el llamante no ha registrado el propio nombre o
si la opción para registrarlo no ha sido activada
options-prompt=>followme/options; esta voz anunciará al llamado que tendrá digitar 1 para aceptar la llamada o 2
para rechazarla
pls-hold-prompt=>followme/pls-hold-while-try ; El llamante escuchará esta voz que le dirá que espere en línea
mientras se intentará localizar el llamado
status-prompt=>followme/status ; Esta voz anunciará al llamante que la persona llamada no se encuentra al
momento en su oficina/casa/etc.
sorry-prompt=>followme/sorry ; si al final de todos los desvíos nadie contestará la llamada, esta voz anunciará al
llamante que no se ha podido localizar la persona buscada

Señalización

Responde con 1, acepta la llamada.


Responde con 2, rechaza la llamada.
Descripción:

 Se realiza la comunicación normal entre dos puntos.


 El terminal 1 no contesta pasado los 10 segundos.
 El servidor pide grabar un mensaje con el nombre para la próxima llamada que sera redireccionada.
 El terminal 2 contesta la llamada y escucha el nombre de la persona que lo esta llamando.
 Presiona 1 para aceptar la llamada o 2 para rechazarla.

Encuéntrame (Find me)


Encuéntrame (Find me).wmv

Configuración

En la aplicación FindMe () podemos encontrar una serie de extensiones por las cuales la llamada será desviada (la
marcación de estas extensiones es simultanea).

Dentro de la configuración de las extensiones se observa que se concatena con & una serie de números por los
cuales la llamada sera desviada y realizada simultáneamente por el usuario, el timbre de la llamada durara 10
segundos.

Señalización

 El llamante marca el numero de la estación terminal al cual quiere llamar.


 Esta terminal concatena otro numero para que el timbre de la llamada sea simultanea.
 El ultimo usuario terminal contesta y el primero cuelga.
 A continuación se realiza la comunicación como se hace para dos usuarios hasta terminar la llamada.

Conferencia (meet me)

Este servicio de Asterisk permite a los usuarios la posibilidad de que puedan hablar simultáneamente dentro de un ent
conocido como sala de conferencias.

Conferencia (meet me).wmv

Configuración :

Para este servicio se deben configurar dos archivos meetme.conf y extensions.conf:

En el contexto [General] de meetme.conf debemos habilitar los siguientes parámetros:

[general]

audiobuffers=32; Numero de paquetes audio de 20ms que serán guardados en un buffer de memoria cuando pertene
a canales que no son DADHI. Esto permite sincronizar el audio de los distintos participantes y evitar retrasos. Puede se
valor entre 2 y 32
schedule=yes ;con este parámetro se le indica a asterisk que las conferencias pueden ser programadas (solamente en
realtime).
logmembercount=yes ;este parámetro actualiza el realtime cada vez que un usuario entra/sale de una conferencia
fuzzystart=300; Parámetro que define si un usuario puede o no entrar a la conferencia si esta no ha empezado. Este
numero se especifica en segundos.

Ejemplo. Si hay una conferencia programada a la 1, y el usuario entra a las 12:55 es decir 5 minutos (300 segundos) an
del comienzo de la conferencia este podrá ingresas a esta.

earlyalert=3600;Este parámetro también es definido en segundos, si el usuario desea participar en una conferencia
programada se le anuncio o no si ya ha empezado esta. Si entra cuando falta menos de una hora(3600s) recibirá este a
Si entra más de una hora antes se le anunciará que la conferencia no existe.
endalert=120;cuando faltarán 120 segundo para terminar la conferencia programada, se le anunciará a todos los
participantes.
En este mismo archivo, en el contexto room se crearon los diferentes cuartos de conferencia, con la posibilidad de acc
a estos con o sin contraseña la sintaxis correspondiente es :

conf => confno[,pin][,adminpin]

confno: es el número de la conferencia


pin: es la contraseña que se deberá ingresar para tener acceso a la conferencia.
adminpin: es una contraseña para el acceso a la conferencia.
Al cuarto 978 se puede acceder sin contraseña, al 976 si se debe ingresar contraseña.

También, es necesario hacer algunos cambios en el archivo extensions.conf, agregando la sentencia meetme:

MeetMe(confno,option)

Confno: es el número de la conferencia.

Options: opciones que el servicio ofrece

En nuestro caso utilizamos las siguientes opciones:

s: presenta un menú cuando los usuarios presionan *


c: Indica el numero de usuarios presentes en la conferencia
p: Permite a los usuarios abandonar la conferencia presionando #
M: Habilita música de espera cuando solo hay un usuario en la conferencia

IMPORTANTE

Para que este servicio se despliegue correctamente es necesario un temporizador, por ello se debe descargar he instal
modulo DAHDI

sudo apt-get install dahdi

sudo apt-get install asterisk-dahdi


CLI

En el CLI de Asterisk es posible saber que cuarto de conferencia esta activo, el numero de participantes y que usuario s
encuentran en este, usando los comandos:

meetme list y meetme list Numero_del_cuarto

Señalización
Observamos como cada agente de usuario envían solicitud de establecer sesión a la central(INVITE) y esta la acepta(Tr
200OK) , para de esta manera ser parte de la conferencia

Grabación bajo demanda

Grabación bajo demanda.wmv

Configuración

La configuración de este servicio se realiza en el archivo features.conf, habilitando el parámetro automom:


;blindxfer => # ; la tecla que hay que hundir para empezar la transferencia de una llamada
;disconnect => * ; la tecla que hay que hundir para terminar la llamada
automon => *1 ; La secuencia de teclas que hay que hundir para grabar la llamada (en dos archivo, uno par
interlocutor)
;atxfer => *2 ; La secuencia de teclas para una transferencia de llamada "asistida".
;parkcall => *7 ; La secuencia de teclas para parquear la llamada. Podemos usar esta secuencia o transferir
llamada a la extensión 700 (véase el inicio de este archivo)
automixmon => *3 ; La secuencia de teclas que hay que hundir para grabar la llamada en un único archivo m
voces de los dos interlocutores.

También es necesario habilitar el servicio en extension.conf:

w: permite al usuario llamado iniciar la grabación de la llamada con las teclas *1 definidas en features.conf.
W: permite al usuario llamante iniciar la grabación de la llamada con las teclas *1 definidas en features.conf.

Señalización
No tiene cambio significativo en las trazas de wireshark.

Para acceder a los archivos guardados, estos se encontraran en la siguiente ubicacion:

/var/spool/asterisk/monitor/

Para acceder a ellos se utiliza comando nautilus:

nautilus /var/spool/asterisk/monitor/

IVR
IVR es un sistema que utiliza mensajes de voz para interactuar con el cliente, lo que le permite la automatizac
algunos procesos, por ejemplo el encaminamiento de llamadas.
Una de las ventajas que brinda es que permite dar al cliente un servicio de calidad, pues proporciona la posibil
de dar una atención los 7 días a la semana, las 24 horas del día, además permite minimizar el tiempo de espera

Otra de sus ventajas es la reducción de costos operativos, pues minimiza los recursos humanos necesarios para
realización de los procesos para los que fue implementado.

Funcionamiento :

El usuario selecciona una opción por medio del teclado del teléfono, estas opciones desplegadas corresponden
menú que previamente ha sido grabado, aunque pueden grabarse uno o varios de estos. La siguiente imagen
ejemplifica una situación similar, en la que el usuario llamante ingresa al Bloque 0(menú principal) y a través
interacción con este, su llamada es encaminada.

Configuración:

Para configurar este servicio, se debe editar el archivo extensions.conf, para esto se debe acceder a el a través
siguiente comando:

Luego, se deben grabar los archivos que constituirán el menú (uno o varios según se requieran), esto se realiza
través de la creación de una extensión en la cual se emplea el comando record, tal como se muestra a continua
Aquí se emplean las instrucciones:

1. Answer: Para responder la llamada.


2. Wait (n): Espera n segundos, ignorando los dígitos marcados durante este tiempo(para el caso es el tie
antes de empezar a grabar ).
3. Record: se utiliza para grabar los mensajes.

La sintaxis de la instrucción Record es: Record(nombre.formatoIsilencioImaxduracionIopciones).

En el primer campo, se especifica el directorio del archivo y el códec empleado(gsm, wav…), en el segundo c
se especifica el silencio permitido antes de empezar a grabar, si se excede este tiempo, se para la grabación, en
tercer campo la máxima duración del archivo y por último, el campo opciones tiene dos posibilidades: Skip y
noaswer que una vez revisado el estado de la línea permiten iniciar la grabación inmediatamente o después de
tiempo.

Playback: Reproduce el sonido especificado.


Hangup: Cuelga al finalizar llamada.

La grabación se realiza hasta pulsar la tecla # (o hasta la máxima duración).

Una vez grabados los sonidos, se verifica que han sido guardados en el directorio correcto, tal como se muestr
siguiente imagen:
Luego, se crea la extensión del IVR (archivo estensions.conf) y se emplea la instrucción goto, con sintaxis:

Goto (contexto, extensión, prioridad):

En este caso, permite ir al contexto IVR, extensión s y prioridad 1, s viene de start suele estar al inicio de todo
contexto, luego se crea el contexto IVR:

En este contexto, se crea la extensión perteneciente a cada uno de los menús que fueron grabados y en caso de
marcar su extensión correspondiente, se dirige al contexto adecuado, a través de la instrucción goto. Por ejemp
el usuario marca la extensión 1, inmediatamente se dirigirá al contexto Personal.
También, además de las instrucciones ya mencionadas, se emplean:

1. WaitExten (n): Que espera n segundos a que el usuario seleccione una opción.
2. Background(fichero): Reproduce el fichero, pero el usuario puede interrumpir la reproducción
seleccionando una opción.Las extensiones t e i, que se utilizan en caso de que se acabe el tiempo, (por
ejemplo cuando se emplea WaitExten) o cuando se marca una extensión que no pertenezca al contexto

Finalmente, se crea cada uno de los contextos especificados en el IVR, como ejemplo se muestra el contexto
Personal:

AGI
Asterisk Gateway Interface (AGI), o Interfaz Pasarela de Asterisk, es una interfaz del sistema Asterisk, que permite la
comunicación con otros sistemas.

Este servicio agrega funcionalidad a Asterisk con muchos lenguajes de programación diferentes. Perl, PHP, C, Pascal,
Bourne Shell, java entro otros. Asi, programas externos pueden controlar el dialplan de Asterisk. Usualmente, los
scripts AGI son usados para desarrollar una lógica más avanzada de programación de dialplan, lograr comunicaciones
con bases de datos relacionados, y acceder a recursos externos a Asterisk.

Desarrollo AGI

Para este caso, se desarrollara una aplicación de consulta telefónica a una base de datos, donde el usuario debe
ingresar su número de cuenta y contraseña, para poder consultar su saldo.

Base de Datos

Lo primero en desarrollarse fue la base de datos,esta se creó en MySQL, esta contenía una tabla llamada usuario,
que tenía los siguientes atributos:

id Integer

nombre varchar

cuenta varchar

psw varchar

saldo varchar

Como se observa la mayoría de los atributos son varchar esto se hizo asi por comodidad y por facilidad.

IDE

Como lenguaje de programación se utilizo Java en el entorno de desarrollo NetBeans IDE 7.2

Es necesario agregar al proyecto las librerías que permitan la conexión con Asterisk (asterisk-java-1.0.0.M3.jar) y
la conexión con la base de datos (mysql-connector-java-5.1.16-bin.jar), esta ultima dependiendo de la base de datos
que se este usando (MySQL, PostgreSQL, Firebird, etc)

La libreria asterisk-java-1.0.0.M3.jar se descargó desde aquí.

Asi mismo para lograr la conexión se debe agregar la clase conectar al proyecto, esta se encuentra adjunta al
proyecto, en esta se especifica la base de datos.

Properties

Se debe crear un archivo de nombre fastagi-mapping.properties, donde se especifica el nombre del agi en este caso
bnvenido e igualarlo al nombre de la clase donde se conecta el servicio, este archivo debe ser agregado al proyecto.
Asterisk

En el archivo extensions.conf se debe especificar la extencion a la cual se debe marcar para acceder a la agi, la
sentencia a utilizar es la siguiente:

extend = > extensión,prioridad,Agi(agi://ubicacion agi/nombre_agi.agi)

Donde la ubicación puede ser localhost, si el proyecto esta en la misma maquina que asterisk o la direccion IP en
donde se encuentre el proyecto.

Proyecto

Al

Vous aimerez peut-être aussi