Académique Documents
Professionnel Documents
Culture Documents
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:
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.
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:
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.
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.
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
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í:
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.
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
Donde se indica numero de extensión del usuario registrado, su ubicación es decir dirección IP
y el puerto SIP
Cliente 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:
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
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.
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.
From: Cliente que realiza la llamada o petición, en este caso 90001@192.168.210.108., incluye una etiqueta
única.
User Agent: Indica el agente de usuario cliente que realiza la transacción: cisco/SPA303-7.4.8a.
Address Type. Tipo de dirección. Puede ser IP4 (IPv4) o IP6 (IPv6):IP4.
Session Name:
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.
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
„
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.
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
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.
Via: Transporte con UDP, la respuesta se debe enviar a 192.168.210.45, numero máximo de saltos:70.
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:
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
From. 90001@192.168.210.108
To. 90002@192.168.210.108
CSeq. 2 CANCEL
OK SIP/ SDP
SDP, para iniciar sesión
From. 90002@192.168.210.108
To. 90002@192.168.210.108
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.
cd /usr/share/asterisk/sounds
Dentro de esta es necesario crear el directorio es, utilizando el comando mkdir seguido del nombre del directo
se desea crear:
mkdir es
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:
Dentro de este archivo, buscamos el parámetro languaje, lo habilitamos descomentándolo, es decir eliminando
punto y coma (;), y cambiamos en por es:
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.
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])
S: Para evitar que nos pida password. (Sin embargo esto no se hizo)
Archivo sip.conf
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
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.
Configuración
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.
[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:
Señalización
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
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.
Configuración :
[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 :
También, es necesario hacer algunos cambios en el archivo extensions.conf, agregando la sentencia meetme:
MeetMe(confno,option)
IMPORTANTE
Para que este servicio se despliegue correctamente es necesario un temporizador, por ello se debe descargar he instal
modulo DAHDI
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:
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
Configuración
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.
/var/spool/asterisk/monitor/
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:
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.
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:
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)
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:
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