You are on page 1of 162

LIBRO DE LABORATORIOS

COMUNICACIONES UNIFICADAS
CON ELASTIX
WWW.ELASTIX.ORG

Libro de Laboratorios

Lab-1

Instalación de Elastix
Laboratorio 1.1
Descripción: En este laboratorio vamos a preparar una máquina virtual utilizando VM VirtualBox para la
instalación de Elastix.
Objetivo: Instalar maquina virtual con Elastix
Tiempo Máximo: 15 minutos.
Instrucciones:

Ejecutar VM VirtualBox.
Hacemos clic en “New / Nueva” para crear una máquina virtual.

Veremos la pantalla de bienvenida de VirtualBox para configurar una nueva máquina virtual. Hacemos clic
en “Next/Siguiente”.

1

Libro de Laboratorios

Lab-1

Colocaremos como nombre a la máquina virtual ELASTIX. Seleccione Linux como sistema operativo y Red
Hat como versión. Hacemos clic en “Next/Siguiente”.

Seleccione el valor de memoria RAM, para este caso 512 MB. Hacemos clic en “Next/Siguiente”.

2

3 . Hacemos clic en “Next/Siguiente”. Hacemos clic en “Next/Siguiente”.Libro de Laboratorios Lab-1 Virtual Hard Disk: crearemos un nuevo disco duro virtual. Virtual Disk Creation Wizard: Dejaremos la opción por defecto para crear una VDI (Imagen de disco de VirtualBox.

Localidad y tamaño de disco virtual: Dejaremos la localidad por defecto y configuraremos el tamaño máximo del disco a 8 GB. Hacemos clic en “Next/Siguiente”. 4 . Hacemos clic en “Next/Siguiente”.Libro de Laboratorios Lab-1 Virtual Disk Storage details: Configuramos el tipo a Fixed Size/Tamaño fijo.

bs 5 . Después que este proceso ha concluido procederemos a crear la máquina virtual haciendo clic en el botón Create/Crear para iniciar el proceso.Libro de Laboratorios Lab-1 Revisamos el sumario de los parámetros del disco virtual que estamos creando para nuestra máquina virtual y hacemos clic en el botón Create/Crear para iniciar el proceso de creación del nuevo disco virtual.

es importante revisar la configuración de red. Para este efecto debemos ir a: Setting → Network (Configuración → Red) Seleccionamos Bridged Adapter (Adaptador Puente) 6 .Libro de Laboratorios Lab-1 Antes de iniciar el proceso de instalar Elastix.

Ahora estamos listos para iniciar el proceso de instalación. bs 7 . Haga clic en “Start/Iniciar” para encender la nueva máquina virtual.Libro de Laboratorios Lab-1 Después de esto verificamos el dispositivo de red que se encuentre conectado en la red del curso y lo seleccionamos. Nota: En el caso de este ejemplo el dispositivo activo es en0: Ethernet – En el caso del alumno podría referirse a un dispositivo WiFi u otro.

Select Installation Media: Navegue por los archivos de su computadora para localizar y seleccionar el archivo ISO Elastix 2.Libro de Laboratorios Lab-1 El primer Wizard aparecerá. Haga clic en "Next/Siguiente" para seleccionar el medio de boot para la máquina virtual. bs 8 . Después de hacer clic en “Next/Siguiente” usted verá un sumario de la información de booteo para la máquina virtual.2.

Continúe en el siguiente laboratorio (1. labs 9 .2).Libro de Laboratorios Lab-1 Una vez que usted haga clic en “Start/Iniciar” VirtualBox cargará el archivo ISO y observaremos el inicio del proceso de instalación de Elastix.

presionamos ENTER para iniciar el proceso.Libro de Laboratorios Lab-1 Instalación de Elastix Laboratorio 1. Nota: En una instalación real para producción el proceso de instalación formateará todo el disco duro. Nota: Durante este proceso no podremos utilizar el ratón. La pantalla de instalación de Elastix aparecerá. Objetivo: Conocer el proceso de instalación de Elastix Tiempo Máximo: 30 minutos. Instrucciones: Ejecutamos la máquina virtual con la ISO seleccionada tal como se realizó en el laboratorio anterior. por lo cual debemos usarlas teclas Tab. Barra Espaciadora y ↑↓→←. 10 .2 Descripción En este laboratorio instalaremos Elastix en una máquina virtual.

como se muestra en la imagen. → Aceptar Escogemos el formato del teclado. 11 . es útil seleccionar la opción “usacentos”. → Aceptar Nota: para teclado en inglé que requiera ser utilizado en español.Libro de Laboratorios Lab-1 En la pantalla siguiente escogemos el lenguaje para el proceso de instalación.

Libro de Laboratorios Lab-1 Seleccionamos el tipo de particionamiento. Seleccionamos la primera opción y avanzamos. 12 . En este caso usted verá únicamente la partición de la máquina virtual. → Aceptar Confirmamos que vamos a borrar la partición (Si).

Libro de Laboratorios Lab-1 Revisar y Modificar el particionamiento (No) Seleccione (Si) para configurar la interfaz de red 13 .

→ Aceptar 14 .Libro de Laboratorios Lab-1 Seleccione “Activar al inicio” y “Activar soporte Ipv4”. → Aceptar Seleccione “Configuración de IP dinámica (DHCP).

→ Aceptar Seleccione la zona horaria apropiada.Libro de Laboratorios Lab-1 Ingrese el hostname (este puede ser asignado de manera automática vía DHCP). → Aceptar 15 .

Es muy importante que no olvide esta contraseña. bs 16 . Hemos ingresado toda la información necesaria por ahora. Puede ponerse cómodo y esperar. por lo tanto escríbala y memorícela.Libro de Laboratorios Lab-1 Ahora ingrese la contraseña del usuario root (usuario Linux) que se utilizará cuando el sistema esté instalado. → Aceptar Listo.

→ Aceptar Reingrese la contraseña del usuario root MySQL bs 17 . por lo tanto escríbala y memorícela. el sistema nos pedirá que ingresemos la contraseña para el usuario root de MySQL.Libro de Laboratorios Lab-1 En un determinado momento de la instalación. Es importante también que no olvide esta contraseña.

Ingresamos (login) como usuario root. Vtiger y A2Billing. → Aceptar Una vez que el sistema se haya instalado podemos administrarlo desde la consola de Elastix. por lo tanto escríbala y memorícela. Esta contraseña es la misma para otros componentes como: FreePBX. Es importante que esta contraseña sea os suficientemente fuerte para evitar problemas de intrusión a posterior.Libro de Laboratorios Lab-1 Es importante también que no olvide esta contraseña. Reingrese la contraseña del usuario admin de la Interfaz Web de Elastix. pbx login: root Password: XXXXXXXXX bs 18 . → Aceptar El proceso pedirá que ingrese una contraseña para el usuario admin de la Interfaz Web de Elastix.

168.168.5.217 (en su caso debe colocar la IP que tiene usted en su consola) Es muy posible que su browser arroje un error de seguridad relacionado con los certificados emitidos por el servidor Elastix. Abramos un browser e ingresemos la IP con el siguiente formato: https://192.Libro de Laboratorios Lab-1 En la consola podemos observar la IP que el servidor central o la red asigno a Elastix vía DHCP. En este ejemplo es la IP 192. bs 19 .217. Hacemos login con el usuario "admin" y la contraseña que colocamos durante el proceso de instalación de Elastix. Continuamos de todos modos y aceptamos el certificado.5. Inmediatamente accederemos al login de la interfaz Web de Elastix.

Use la contraseña que colocó durante la instalación de Elastix.org/ Una vez que usted ha descargado el programa usted puede ingresar al servidor Elastix con su dirección IP: Coloque la dirección IP de su Elastix en “Host Name (or IP address)”. bs 20 . Tiempo máximo: 30 minutos. Debemos ingresar como usuario “root”. Después de esto haga clic en “open”.1 Descripción: En este laboratorio aprenderemos algunos comandos y operaciones de Linux para obtener las bases de como trabajar en nuestro sistema operativo a bajo nivel.putty.Libro de Laboratorios Lab-2 Linux para administradores Elastix Laboratorio 2. Usuarios Windows pueden acceder a la línea de comandos a través la máquina virtual instalada en el laboratorio 1. Nota: Máquinas con sistema operativo Linux tienen capacidad nativa para ingresar a la consola de comandos de Elastix. sin embargo es mejor usar un cliente SSH. Si usted es un usuario de Windows recomendamos que descargue PuTTY: http://www. Objetivo: Familiarizarse con la interfaz de comando de Linux.

usted esta listo para trabajar en la consola de su Elastix. Instrucciones: Este laboratorio debe ser ejecutado en una consola de línea de comandos de Linux.Libro de Laboratorios Lab-2 Una vez que ha ingresado. Cuando sea posible. Comandos básicos del día a día del manejo de Elastix serán mencionados. Usted tiene que ingresar en la consola todo el texto que vea en azul para cada ejemplo. una imagen será mostrada para permitirle comparar los resultados. Enlistado de archivos y directorios - ls: comando de lista  Enliste los contenidos del directorio actual ls  Enliste los contenidos del directorio con información adicional ls -l  Enliste los contenidos del directorio /etc con información adicional ls -l /etc 21 .

cd .. pwd Creando archivos y directorios  Cree el directorio /tmp/test mkdir /tmp/test  Ingrese al directorio /tmp/test cd /tmp/test  Desde el directorio /tmp/test vaya al directorio /tmp en forma absoluta y relativa.Libro de Laboratorios Lab-2  Enliste los contenidos del directorio /etc y muestre los archivos y directorios que contengan la palabra “asterisk” ls -l /etc/ | grep asterisk  Use el comando pwd para ver en que directorio se encuentra actualmente. l 22 .

 Para grabar y salir presione la tecla “ESC” y escriba: :wq. presione la tecla “INSERT” (la tecla “i” es también una alternativa) para habilitar el modo de edición.txt (Ingrese en el directorio donde se encuentra test. si usted no se encuentra ahí) cat test.txt 2. si usted quiere continuar trabajando en el archivo y grabarlo sin salir solo escriba: :w  Vea el contenido de test.txt con la aplicación de edición: vim.txt primero. luego escriba su nombre. Desde el directorio actual (tmp) touch test/test. vim test. Usted puede hacerlo de dos maneras: 1. Ingresando al directorio test y creando el archivo cd test luego touch test.txt.txt 23 .txt  Una vez que está en vim.txt Usted puede revisar si el archivo está enlistado en el directorio ls - Edición de archivos:  Edite y salve el archivo test.Libro de Laboratorios  Lab-2 En el directorio tmp/test cree un archivo llamado: test.

.  Cree los usuarios elx1 y elx2 adduser elx1 passwd elx1 adduser elx2 passwd elx2  Ingrese con el usuario elx1 Use el comando login 24 . vaya al directorio root (/) con cd .Libro de Laboratorios  Lab-2 Revise la ayuda para varios comandos man ls Para regresar a la línea de consola solo presione q Pruebe ahora con man yum o man scp Cree y maneje usuarios En este punto debería estar en el directorio “tmp”.

permite cambiar los permisos en un archivo o directorio  Cree el directorio /home/elx1/private que solo pueda ser leído por el usuario elx1 mkdir /home/elx1/private Haga que el directorio “private” solo pueda ser leído por el usuario elx1 chmod 700 /home/elx1/private  Revise el dueño del directorio /home/elx1/private y sus permisos: ls -l /home/elx1  Ingrese como usuario elx2 e intente ingresar al directorio /home/elx1/private (usted no debería poder ingresar). caso contrario Linux le preguntará si lo quiere lab s sobrescribir.txt Para llevar a cabo esta acción. es necesario cambiar el nombre del archivo.Libro de Laboratorios Lab-2 Nota: Este comando culmina la sesión actual e inicia una nueva. - chmod: comando change mode. sin embargo usted puede copiar el archivo y colocarlo en cualquier locación con el mismo comando. En este ejemplo vamos a colocar el archivo en el mismo directorio.  Copie el archivo test. Después de que usted copie el archivo ejecute ls –l para enlistar todos los archivos disponibles en el directorio. Si la nueva locación es la misma. 25 . Si usted está en un cliente SSH. mv: comando usado para mover un archivo Ingrese como usuario root nuevamente. cd /home/elx1/private Copiar y mover archivos - cp: comando usado para copiar un archivo. su ventana probablemente se cierre. Inicie nuevamente el cliente e ingrese con otro usuario. es necesario indicar la locación actual del archivo.txt en el mismo directorio y cambie su nombre a test2.

txt” desde el directorio /tmp/test a /tmp/test2. usted únicamente necesita escribir el Nuevo nombre en la nueva locación.txt /tmp/test2/test3.txt” mv /tmp/test/test.txt” de su locación actual y ejecute ls para confirmar que se ha borrado. rm /tmp/test2/test3. Intente mover el archivo “test.txt /tmp/test/test2. Una vez que lo haya creado mueva el archivo “test2.txt /tmp/test2/test2. Después que mueva el archivo. Cree el directorio /tmp/test2.  Mueva un archivo a otra locación.txt ls –l /tmp/test2 El comando move permite cambiar el nombre del archivo en el proceso. usted encontrará esto útil cuando configure su hardware de telefonía en Elastix así como para otros casos.txt ls –l /tmp/test Nota: Este ejercicio es importante para hacer copias de respaldo. ejecute la – l para enlistar los archivos disponibles en el directorio /tmp/test2 mkdir /tmp/test2 mv /tmp/test/test2.txt ls –l /tmp/test2 26 .txt  Remueva el archivo “test3.txt” localizado en /tmp/test a /tmp/test2 y cambie su nombre a “test3.Libro de Laboratorios Lab-2 cp /tmp/test/test.

test4.168. 27 . Este proceso permite que usted envíe un archivo de una locación a otra.log. Instale y desinstale el paquete “screen” Instalación: yum install screen Se pedirá que confirme algunas acciones.168.1.1.66:/opt Envíe el archivo /tmp/test2/test2.Libro de Laboratorios  Lab-2 Copia de un archivo desde una locación remota usando un ssh port tunnel.1.65 a la dirección IP 192.log root@192.txt). Es necesario tener el password del usuario root del servidor que recibirá el archivo.txt root@IP_address:/tmp/test/test4. En el siguiente ejemplo enviamos el archivo install. por lo cual si quiere cambiar el nombre del archivo (e.txt desde su servidor al directorio /tmp/test de otro estudiante. desde la dirección IP 192.66. Recuerde preguntar por el password del usuario root. como descargar paquetes. scp /tmp/test2/test2. básicamente de un servidor a otro.txt root@IP_address:/tmp/test Nota: Este proceso tiene la misma lógica del proceso de copiar y mover archivos.g.168. scp install. solo coloque yes (y) y presione enter.txt Instalación de Paquetes Ingrese como usuario root. entonces la línea correcta debería ser: scp /tmp/test2/test2.

 Descargue e instale un paquete rpm wget http://apt.rf.9-1.el5.Libro de Laboratorios Lab-2 Desinstalación: yum remove screen Usted deberá confirmar esta acción.be/redhat/el5/en/i386/rpmforge/RPMS/rkhunter-1.el5.rf.rpm 28 .2.91. únicamente coloque yes (y)y presione enter.noarch.be/redhat/el5/en/i386/rpmforge/RPMS/rkhunter-1.noarch.2.sw. w.rpm Texto del link: http://apt.

9-1.rf.2.9-1.  Revisando la interfaz de red ifconfig –a 29 .el5.noarch.rf.el5.noarch. Usaremos una funcionalidad gráfica para este curso.rpm rpm -ivh rkhunter-1.rpm  Desinstale un paquete rpm rpm -e rkhunter rpm -q rkhunter Configuraciones de Red Hay varias maneras de configurar la dirección IP y la configuración de red en su servidor. La configuración se puede hacer también en la interfaz de administración web de Elastix.2.Libro de Laboratorios Lab-2 Una vez que complete la descarga procedemos a instalar el paquete: rkhunter-1.

Libro de Laboratorios Lab-2 En este ejemplo podemos observar que nuestra interfaz es eth0 y la dirección IP que tiene asignada. 30 .  Cambiando su dirección IP setup Usted obtendrá la siguiente ventana Vaya a “Configuración de la red” y presione enter – (use las flechas) Para configurar su dirección IP vaya a “Edit Devices” y presione enter.

Vamos un nivel hacia arriba y configuramos para la configuración de DNS bs 31 . eth0 (eth0) . para esto deseleccione “Utilizar DHCP” (use la barra espaciadora). Presione Ok cuando haya concluido.Libro de Laboratorios Lab-2 Seleccionamos el dispositivo correcto y presionamos enter. Coloque la configuración de acuerdo a su red.(Esto puede variar dependiendo de su hardware).

presionamos “Guardar y Cerrar” Si modificamos cualquier parámetro es necesario que reiniciemos el servicio de red para aplicar los cambios. service network restart labs 32 . Una vez que hemos finalizado.Libro de Laboratorios Lab-2 Aquí podemos configurar el Hostname (Nombre del equipo) y los DNS’s. Presione Ok cuando haya concluido.

DNS y GATEWAY. se configurará la red con una IP estática. Instrucciones:  Durante la instalación de Elastix se configuró el equipo con una IP dinámica asignada por DHCP. Ethernet 1. … Ethernet n) Cambie su dirección IP a estática y asigne una dirección IP. 33 .1 Descripción: En este laboratorio realizaremos la configuración básica de nuestra central. Una vez que haya completado la tarea hacer clic en “Aplicar Cambios”  Es muy probable que debamos cambiar la configuración de HOST. Objetivo: Familiarizarse con la configuración básica de Elastix Tiempo Máximo: 10 minutos.  Es recomendable asignar una IP estática ya que muchos dispositivos estarán intentando registrarse en esa dirección y no queremos que existan cambios imprevistos. Ir a: Sistema → Network → (Ethernet 0. Para hacer esto ir a: Sistema → Networks → Editar parámetros de red  Una vez modificado los parámetros necesarios guardamos los cambios.Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3. se crearán dos extensiones SIP. una extensión IAX.

Libro de Laboratorios  Lab-3 Ahora crearemos una extensión SIP.  Una vez ingresada la configuración hacemos clic en “Submit” Nota: Cada vez que creemos una extensión. una cola. Para el caso de este y otros ejemplos lo haremos fácil por efectos didácticos. Se muestra un ejemplo en la siguiente imagen: labs  Crear una extensión SIP con la extensión 202 34 . Una buena práctica recomendada es no colocar contraseñas débiles en las extensiones. ir a: PBX → PBX Configuration → Extensiones Seleccione “Generic SIP Device” y haga clic en “Submit”  Crearemos la extensión 200 con el nombre “John Doe” y la contraseña “secret123”. necesitaremos aplicar los cambios. un cuarto de conferencia o realicemos una configuración en el menú “PBX Configuration”.

Libro de Laboratorios Lab-3 Extensión IAX  Ahora crearemos una extensión IAX2. Una vez ingresada la configuración hacemos clic en “Submit” y aplicamos los cambios. ir a: PBX → PBX Configuration → Extensiones Seleccione “Generic IAX2 Device” y haga clic en “Submit”  Crearemos la extensión 201 con su nombre y la contraseña “secret123”. 35 .

requerido para esa extensión.  La configuración es similar a otros softphones o teléfonos IP. Para este ejercicio utilizaremos ZOIPER que es un softphone libre disponible para Windows. 201 (IAX2) y 202 (SIP). debemos configurarlas en los dispositivos que nos permitirán usarlas para llamadas y pruebas durante este curso. Linux y Mac. Instrucciones:  Una vez que hemos creado las extensiones 200 (SIP).  Para seguir con la configuración pulsamos el botón de opciones. Objetivo: Familiarizarse con la configuración de endpoints en Elastix Tiempo Máximo: 10 minutos.zoiper. 36 . Para más información visite (http://www.2 Descripción: En este laboratorio configuraremos dos softphones para probar las configuraciones hechas en nuestro Elastix.  La primera vez que ejecutemos ZOIPER nos aparecerá una pantalla similar a la siguiente.  Configuraremos la extensión 200 en el teléfono IP asignado. Este softphone soporta el protocolo IAX2.Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3.com/).  Configuraremos la extensión 201 en un softphone.

Libro de Laboratorios Lab-3  El siguiente paso es crear la extensión. Luego hacemos clic en OK. la contraseña (secret123). el Caller ID Name (201) y Caller ID Number (201). el número de la extensión (201). la registramos. Si todo fue configurado correctamente escucharemos a Allison Smith (La voz de Asterisk) con un mensaje de felicitación. para hacemos clic en “Add New IAX Account”. 37 . colocamos un nombre referencia y hacemos clic en OK.  Para finalizar la configuración de la extensión en el softphone. podemos marcar 1234 para probarla.  Luego agregamos la dirección IP del servidor Elastix (esta es la dirección donde el softphone se registrará) que se está usando.  Una vez que la extensión está registrada.

counterpath. Extensión 202  Ahora configuraremos la extensión 202 en otro softphone.com/x-lite. hacemos clic en “Softphone” y seleccionamos “Account Settings”. 38 . Usaremos X-Lite la versión gratuita de Bria (http://www.Libro de Laboratorios  Lab-3 También podemos realizar una prueba de eco marcando *43. asegúrese de tener un micrófono conectado.html)  Iniciamos x-lite.

por lo cual si todo es correcto podemos iniciar las llamadas inmediatamente.  A diferencia de Zoiper. asegúrese de tener un micrófono conectado. podemos marcar 1234 para probar la extensión. x-lite se registra automáticamente.  En password colocaremos la contraseña colocada en secret (secret123). en Display name 202. Al finalizar colocaremos Ok.  Al igual que hicimos con la extensión 201.Libro de Laboratorios Lab-3  Colocamos un nombre de referencia en “Account Name”. En User ID colocamos el número de la extensión (202). También podemos realizar una prueba de eco marcando *43. en Domain colocamos la dirección IP del servidor Elastix. y en Authorization name 202. 39 .

como habilitar el voicemail y crear un grupo para jalar una llamada desde una extensión. lo cual implica que no está habilitado ningún códec. Instrucciones:  Colocaremos la extensión 200 y 202 en el mismo grupo y pickupgroup. de tal manera que cuando una de las dos reciba llamadas la otra extensión pueda hacer un call pickup.711 en la versión ulaw. el pickupgroup y además estableceremos el códec g. ese es el grupo al que pertenecerá esta extensión.Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3. Aquí configuraremos el grupo.  En disallow.  Para configurar la extensión 200 debemos ir a PBX → PBX Configuration → Extensiones → 200  Una vez en la pantalla de configuración de la extensión vamos a la sección “Device Options”. 40 . Inmediatamente colocamos ulaw en el campo allow.3 Descripción: En este laboratorio realizaremos configuraciones en las extensiones creadas. con lo cual establecemos que el códec sea únicamente g.711 por defecto para esta extensión.  En los campos: callgroup y pickupgroup colocamos 2. Objetivo: Familiarizarse con la configuración básica de Elastix Tiempo Máximo: 10 minutos. colocamos all.

seleccionaremos “Enabled” en Status. Esto garantiza que cuando la extensión reciba un voicemail. En cuanto escuchemos el ringado. En este caso. para que sea extension@default.  Para habilitar el voicemail en la extensión 200. en este ejemplo no lo activaremos.  Una vez que hemos configurado la extensión 202. el teléfono lo indique en el botón colocado para ese fin. Es posible además permitir que nos llegue el audio como attachment.  Realizaremos la misma configuración en la extensión 202.  Tenemos la opción de colocar un Email.Libro de Laboratorios Lab-3  En algunos teléfonos. Esta configuración se realiza en la sección “Voicemail & Directory”. marcaremos *8 desde la extensión 200. como los Yealink. realizaremos una llamada a esta extensión desde la extensión 201. es necesario cambiar la configuración del campo mailbox.  Una vez que hemos culminado la configuración hacemos clic en Submit y aplicamos los cambios. con la excepción de la configuración del códec y del campo mailbox ubicados en la sección “Device Options”. para que cada vez que la extensión reciba un voicemal Elastix nos avise al correo. Si las configuraciones fueron correctas (es decir que la extensión 200 y 202 estén en el mismo group y pickupgroup) habremos jalado una llamada. La contraseña elegida para este ejemplo es: 1234.  En la misma pantalla de configuración habilitaremos el voicemail. cambiaremos 200@device por 200@default si el teléfono es Yealink. 41 .

4 Descripción: En este laboratorio se harán configuraciones adicionales a Elastix. salas de conferencias y colas.  Una vez que hayamos creado las extensiones requeridas ir a: PBX → PBX Configuration → Colas Añadimos la extensión 201 y la extensión 202 a la cola. Instrucciones:  Crearemos una cola de atención que timbrará a las extensiones 201 y 202 cuando marquemos 5000. bs Elegimos como estrategia de ringado la política “linear”.Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3. 42 . Es importante para este laboratorio tener 3 o más extensiones configuradas para realizar la prueba. Objetivo: Familiarizarse con la configuración básica de Elastix Tiempo Máximo: 10 minutos.

 Ir a: PBX → PBX Configuration → Conferencias 43 .Libro de Laboratorios Lab-3  Hacemos clic en “Submit Changes” y aplicamos los cambios.  Una vez que las extensiones estén listas marcamos 5000 desde la extensión 200. Las personas que llamen a este número podrán conversar al mismo tiempo y mantener una reunión. Podemos probar otras estrategias yendo a:  PBX → PBX Configuration → Colas→ la_cola_creada → Ring Strategy  La estrategia “sonar todos / ringall” es muy útil cuando en nuestro ambiente no tenemos muchas extensiones o si estamos configurando una central para nuestro hogar.  Las extensiones 201 y 202 sonarán de acuerdo a la estrategia de ringado seleccionada para la cola. l Cuartos de conferencia  Crearemos una sala de conferencia con el número 3000.

Libro de Laboratorios Lab-3  Haga clic en “enviar cambios”  Ahora intente llamar a esta conferencia desde las extensiones creadas anteriormente. 44 .

Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3. Instrucciones:  Ir a PBX → PBX Configuration → Grabaciones del Sistema Usted observará la siguiente pantalla:  Grabaremos un audio desde una extensión existente. Objetivo: Familiarizarse con la funcionalidad de grabación de audio Tiempo Máximo: 20 minutos. Para este ejemplo use la extensión 200 (teléfono IP). Si usted usa un softphone para este proceso asegúrese de tener un micrófono conectado y funcionando. 45 .5 Descripción: En este laboratorio haremos grabaciones que se podrán usar para un correo de voz. después de esto grabe su mensaje y marque #.  Desde la extensión 200 marque *77. un IVR o para otro propósito. usted escuchará un beep. labs  Coloque la extensión y presione Ir.

Si usted está satisfecho con el resultado simplemente cuelgue. Este se encuentra en la columna derecha.  Usted puede también enlazar el audio con un "Código de característica" que será asignado por Elastix. si usted marca *293 desde una extensión escuchará el audio.  Después de completar la configuración haga clic en Guardar y aplique los cambios. haga clic en el link del audio que acaba de grabar.  Para asignar un código.  Una vez que ha guardado la grabación usted puede entrar al archivo y escribir una descripción (solo haga clic en "testaudiolab").  Marcamos la opción “Enlace a código de característica”.  Después nombraremos a la grabación como "testaudiolab" y guardamos. En este ejemplo el servidor ha asignado el Código de característica *293. 46 .Libro de Laboratorios Lab-3  Acto seguido escuchará la voz de Asterisk indicándole opciones para escuchar el mensaje o para re grabarlo de nuevo.

Script del Audio: Ingrese 4 dígitos Nombre de la grabación: enter4digits 6. Script del Audio: Bienvenido a Elastix World Nombre de la grabación: elastixworld 15. Script del Audio: Ingrese la operación matemática Nombre de la grabación: enteroperation 10. marque 3 para desarrollo Nombre de la grabación: welcomeivr 5. marque 2 para soporte. Script del Audio: Ingrese el primer número Nombre de la grabación: enternumber1 8. El listado es el siguiente: 1. marque la opción 1 para ventas o la opción 2 para soporte Nombre de la grabación: testivr 4. Script del Audio: Ingrese un número de 4 dígitos Nombre de la grabación: enternumber 7. Script del Audio: Bienvenido. Script del Audio: Bienvenido. Nombre de la grabación: ivr1 16. Script del Audio: La respuesta es Nombre de la grabación: answeris 11. Script del Audio: Hoy no es un día laborable Nombre de la grabación: notworkingday 3. Script del Audio: Para comunicarse con ventas presione 1 Nombre de la grabación: ivr2 17. Script del Audio: El número ingresado es incorrecto Nombre de la grabación: incorrectid 14. Script del Audio: Para comunicarse con soporte presione 2 Nombre de la grabación: ivr3 47 . Script del Audio: Ingrese el segundo número Nombre de la grabación: enternumber2 9. Script del Audio: Bienvenido a Elastix Comunicación Unificada de Código abierto. Script del Audio: Ingrese la identificación Nombre de la grabación: enterid 12.Libro de Laboratorios Lab-3  Para este curso vamos a necesitar varias grabaciones. marque 1 para ventas. Script del Audio: La identificación es correcta Nombre de la grabación: correctid 13. Script del Audio: Hoy es día laborable Nombre de la grabación: workingday 2.

Libro de Laboratorios 18. Plan de marcado avanzado y AGI – AMI. Nota: es importante que los nombres de las grabaciones estén correctos. 48 . Lab-3 Script de la grabación: Gracias por llamar a Elastix Nombre de la grabación: ivr4 Estos audios serán utilizados en el capítulo de Asterisk.

En el segundo caso es necesario crear varios IVRs y enlazarlos de acuerdo al requerimiento de atención. Objetivo: Familiarizarse con la configuración de un IVR. Tiempo Máximo: 15 minutos. El objetivo es que un cliente llame. la opción 2 debe ir a la extensión 202 y la opción por defecto cuando se cumpla el timeout ira a la cola 5000. 49 . es decir la despedida. Instrucciones:  Un IVR se puede crear de dos formas.  En el primer caso se crea únicamente un IVR con las opciones requeridas. escuche el audio de bienvenida. Esta cola fue creada anteriormente por lo cual sonarán las extensiones 201 y 202 con la estrategia de ringado escogida.  Un método efectivo es comenzar por el último IVR. En anuncio seleccionamos el audio “ivr4” y en la opción de tiempo de espera colocaremos 5. la opción 2 para soporte y la despedida. con un archivo de audio único o con varios archivo de audio.Libro de Laboratorios Lab-3 Configuración básica de Elastix Laboratorio 3.  La opción 1 debe ir a la extensión 201.  Para crear un IVR debemos ir a PBX → PBX Configuration → IVR  Hacemos clic en “Añadir IVR” labs  Colocamos test4 a este IVR.  Vamos a crear un IVR de múltiples audios.6 (Práctica Recomendada) Descripción: En este laboratorio configuraremos un IVR. después la opción 1 para ventas.

 Creamos un nuevo IVR.Libro de Laboratorios Lab-3  En las opciones colocaremos 1 que debe ir a la extensión 201. 50 . 2 que debe ir a la extensión 202. es decir el penúltimo IVR.  Colocamos 0 en tiempo de espera y en anuncio seleccionamos el audio “ivr3”  En las opciones colocaremos 1 que debe ir a la extensión 201. 2 que debe ir a la extensión 202.  Una vez configurado hacemos clic en guardar y aplicamos los cambios. este se llamará test2. la opción “t” (timeout) que debe ir a la cola 5000.  Creamos un nuevo IVR. la opción “t” (timeout) debe ir al IVR test4.  Una vez configurado hacemos clic en guardar y aplicamos los cambios. seguimos el orden cronológico inverso. este se llamará test3.

 Para probar nuestro IVR crearemos una aplicación especial. 51 .  Una vez configurado hacemos clic en guardar y aplicamos los cambios. para este efecto debemos ir a: PBX → PBX Configuration → otras aplicaciones  Una vez ahí colocaremos la extensión 5001 con destino hacia el IVR test1. 2 que debe ir a la extensión 202.  Una vez configurado hacemos clic en guardar y aplicamos los cambios.Libro de Laboratorios Lab-3  Colocamos 0 en tiempo de espera y en anuncio seleccionamos el audio “ivr2”  En las opciones colocaremos 1 que debe ir a la extensión 201. al cual llamaremos test1. 2 que debe ir a la extensión 202. la opción “t” (timeout) debe ir al IVR test3.  Colocamos 0 en tiempo de espera y en anuncio seleccionamos el audio “ivr1”  En las opciones colocaremos 1 que debe ir a la extensión 201. la opción “t” (timeout) debe ir al IVR test2.  Ahora crearemos el IVR principal.

Libro de Laboratorios Lab-3  Hacemos clic en “Enviar cambios” y aplicamos cambios.  Una vez hecho esto.  Probemos todas las opciones del IVR llamando en varias ocasiones. marcaremos 5001 desde la extensión 200. 52 .

 Para este ejemplo usaremos tarjeta análoga Sangoma A200 .2FXS  Elastix permite detectar y configurar un número extenso de hardware de telefonía para Asterisk.Libro de Laboratorios Lab-4 Configuración de Hardware Laboratorio 4. Objetivo: Configurar Hardware con Elastix Tiempo Máximo: 15 minutos Instrucciones Nota: El primer paso en la instalación y configuración de una tarjeta de telefonía se debe realizar físicamente en el servidor. Para hacerlo rápido y fácil tenemos que ir a:  Sistema Detector → Hardware bs 53 .2FXO . Si usted decide instalar la tarjeta por recuerde desconectar el equipo de la fuente de poder y procure no tocar ningún componente del servidor.1 Descripción: Se configurará una tarjeta análoga a través de la interfaz web de Elastix. Este proceso tiene que ser realizado por un técnico con conocimiento de manipulación de hardware.

54 .  Es recomendable seleccionar la opción Reemplazar el archivo chan_dahdi-conf cada vez que instalemos una tarjeta.Libro de Laboratorios Lab-4  Primero debemos hacer clic en Avanzado. Para este ejemplo es necesario además seleccionar la opción Detección de hardware sangoma. opciones adicionales aparecerán. después de esto hacemos clic en "Detectar Nuevo Hardware" labs  La tarjeta está instalada con la configuración por defecto.

Únicamente haga clic en Configuración de Span. todos los puertos tiene asignado OSLEC por defecto.  Como podemos ver en la imagen. Estos puertos son útiles para conectar teléfonos convencionales o faxes. Extensión FXS  Los puertos FXS aparecen en verde todo el tiempo aunque no estén en servicio.  Crearemos una extensión para un teléfono convencional usando el número de puerto 3 de la tarjeta que acabamos de instalar.Libro de Laboratorios Lab-4  Elastix asigna por defecto el software de cancelación de eco OSLEC en la tarjeta. 55 .  Para hacer esto ir a:  PBX → PBX Configuration → Extensiones  Una vez ahí seleccionaremos Generic DAHDI Device y haremos clic en Submit. Usted puede cambiar esta configuración si desea otra alternativa o si la tarjeta tiene cancelación de eco por hardware. Si la tarjeta tiene cancelación de eco por hardware la opción a escoger debería ser "none". recuerde que este puerto genera voltaje.

56 .  En Device Options debemos colocar el número del puerto en channel.Libro de Laboratorios Lab-4  Crearemos la extensión 301. Esta información fue obtenida del módulo de detección de hardware.  Ahora usted puede conectar un teléfono convencional o un fax y recibirán llamadas en la extensión 301. con la descripción fxs-1.  Una vez que ingresamos la información requerida hacemos clic en submit y aplicamos los cambios.

conf Detect Sangoma hardware  Luego detecte la tarjeta labs  Como podemos ver.Libro de Laboratorios Lab-4 Configuración de Hardware Laboratorio 4. el proceso de detección instaló la tarjeta como digital con 24 canales (T1). Objetivo: Configurar Hardware con Elastix Tiempo Máximo: 15 minutos Instrucciones:  Para este ejemplo utilizaremos una tarjeta Sangoma A101 Digital 1E1  Debemos realizar el mismo proceso que usamos para detectar la tarjeta análoga.2 Descripción: Se configurará una tarjeta digital a través de la interfaz web de Elastix. Hacer clic en: Advanced Replace file chan_dahdi. 57 .

 Para configurar la tarjeta como E1. hacemos clic en Parámetro de Span.  Ahora observaremos que 32 puertos habilitados.Libro de Laboratorios Lab-4  La detección asignó además a OSLEC como cancelación de eco para cada canal. podemos cambiar esto en Configuración de Span.  Si la tarjeta tiene cancelación de eco por hardware la opción que debemos escoger es "none". Una vez ahí debemos seleccionar la opción "E1: 31 canales. Europa" en el campo: Tipo de medio para RSDI PRI. bs 58 .

y personalizó la configuración.  Usted puede realizar configuraciones a bajo nivel. framing.conf. es recomendable que haga un backup de la copia de estos archivos para que pueda incluir configuraciones previas en los nuevos archivos.conf.conf and /asterisk/dahdi-channels. /etc/dahdi/system. coding. debemos hacer clic en Parámetros de Span. sin embargo si la operación no requiere configuraciones especiales usted está listo para operar con el procedimiento de instalación y configuracion por interfaz. 59 .Libro de Laboratorios  Lab-4 Si necesitamos cambiar la configuración de los parámetros: timing. LBO.  Esta acción sobrescribe los siguientes archivos: /etc/asterisk/chan_dahdi.conf permite al sistema detectar la tarjeta de manera permanente.  Si usted tiene una tarjeta instalada. Notas Importantes acerca de la configuración de hardware  El reemplazo de chan_dahdi.

donde XXXXX es su primer nombre.conf vim extensions_custom.conf [root@elastix asterisk]# chown asterisk:asterisk extensions_custom_XXXXX.conf  Incluya la siguiente línea al final del archivo.conf l [root@elastix asterisk]# chmod 644 extensions_custom_XXXXX.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.conf  Grabar y Salir (Esc → :wq)  Cambiar los permisos y propietario al archivo /etc/asterisk/extensions_custom_XXXXX.conf  Grabar y Salir (Esc → :wq)  Crear el archivo /etc/asterisk/extensions_custom_XXXXX.conf  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” 60 .conf [root@elastix asterisk]# vim extensions_custom_XXXXX. Instrucciones:  Ingrese a la consola de su servidor Elastix como usuario root  Vaya a /etc/asterisk/  Edite el archivo /etc/asterisk/extensions_custom. Objetivo: Entender el funcionamiento de un plan de marcado.1 Descripción: Crear su propio archivo de plan de marcado. #include extensions_custom_XXXXX. familiarizarse con los archivos de configuración y practicar la sintaxis de la gramática de un plan de marcado. Tiempo Máximo: 5 minutos.

conf [custom-lab5-2] exten => 501.2 Descripción: Crear un plan de marcado para llamar a las extensiones 201 y 202.1.Dial(SIP/202)  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-2] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.1.conf vim extensions_custom. Tiempo Máximo: 10 minutos. Objetivo: Entender el funcionamiento de un plan de marcado.conf  Agregar las siguientes líneas al archivo extensions_custom_XXXXX. vim extensions_custom_XXXXX. las extensiones 201 y 202 deberían sonar.conf Sintaxis: include => custom-lab5-2  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” Pruebe el contexto marcando 501 y 502 desde la extensión 200. 61 .conf. Instrucciones:  Editar el archivo /etc/asterisk/extensions_custom_XXXXX.Dial(IAX2/201) exten => 502. familiarizarse con los archivos de configuración y practicar la sintaxis de la gramática de un plan de marcado.

Wait(2) exten => 5678.Wait(2) exten => 5678.4.3.Record(custom/welcomecourse:gsm.6.Wait(2) exten => 5678. Marque 5678 y grabe el siguiente mensaje: "Bienvenido al curso de certificación Elastix"  Si hizo el contexto correctamente debería escuchar una reproducción del audio grabado.3 Descripción: Crear un contexto que implemente la grabación de un audio usando como extensión el número 5678 y las funciones Record y Playback.Hangup  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-3] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.conf adicionando las siguientes líneas [custom-lab5-3] exten => 5678.5. 62 . Tiempo Máximo: 10 minutos. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.Playback(custom/welcomecourse) exten => 5678.1.0) exten => 5678.conf Sintaxis: include => custom-lab5-3  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el contexto llamando de cualquier extensión.2. Objetivo: Familiarizarse con la creación de contextos y las funciones Record y Playback.conf vim extensions_custom.

1. 63 .n.conf vim extensions_custom.Dial(SIP/202)  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-4] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.1. WaitExten() y Dial().) exten => 1. después del IVR marque las opciones indicadas.Background(custom/testivr) exten => 3998. Tiempo Máximo: 10 minutos.4 Capítulo: Asterisk Descripción: Crear un contexto que implemente un mini IVR de 2 opciones en donde cada opción dirija la llamada a una extensión.1. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.Dial(SIP/201) exten => 2.WaitExten(. Objetivo: Familiarizarse con la creación de contextos y las aplicaciones Background(). [custom-lab5-4] exten => 3998.conf Sintaxis: include => custom-lab5-4  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el contexto marcando 3998 desde la extensión 200. Para implementar esto usaremos la aplicación Background().conf adicionando las siguientes líneas. Intente hacer esta prueba en dos ocasiones marcando ambas opciones.

Libro de Laboratorios

Lab-5

Asterisk
Laboratorio 5.5
Descripción: Crear un contexto que implemente un IVR de 3 opciones en donde la primera opción
sea marcar a una extensión, la segunda opción reproducir un audio y la tercera opción marcar a
dos extensiones simultáneamente.
Objetivo: Familiarizarse con la creación de contextos y las funciones Background, WaitExten.
Tiempo Máximo: 15 minutos.
Instrucciones:

Edite el archivo /etc/asterisk/extensions_custom_XXXXX.conf adicionando las siguientes líneas

[custom-lab5-5]
exten => 3999,1,Answer
exten => 3999,n,Wait(1)
exten => 3999,n,Set(TIMEOUT(digit)=3)
exten => 3999,n,Set(TIMEOUT(response)=10)
exten => 3999,n,Background(custom/welcomeivr)
exten => 3999,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Dial(SIP/201)
exten => 1,n,Hangup()
exten => 2,1,Playback(custom/workingday)
exten => 2,n,Hangup()
exten => 3,1,Dial(SIP/201&SIP/202)
exten => 3,n,Hangup()
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
exten => t,1,Hangup()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab5-5] dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
vim extensions_custom.conf
Sintaxis: include => custom-lab5-5

Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”

Pruebe el contexto marcando 3999 desde la extensión 200.

64

Libro de Laboratorios

Lab-5

Asterisk
Laboratorio 5.6
Descripción: Crear el contexto del laboratorio anterior pero usando las aplicación Goto().
Objetivo: Familiarizarse con la creación de contextos y la aplicación Goto().
Tiempo Máximo: 15 minutos.
Instrucciones:

Edite el archivo /etc/asterisk/extensions_custom_XXXXX.conf adicionando las siguientes líneas
[custom-lab5-6]
exten => 4000,1,Answer
exten => 4000,n,Wait(1)
exten => 4000,n,Set(TIMEOUT(digit)=3)
exten => 4000,n,Set(TIMEOUT(response)=10)
exten => 4000,n,Background(custom/welcomeivr)
exten => 4000,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Goto(ext-201,s,1)
exten => 2,1,Goto(play-audio,s,1)
exten => 3,1,Goto(double-ext,s,1)
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
exten => t,1,Hangup()
[ext-201]
exten => s,1,Dial(SIP/201)
exten => s,n,Hangup()
[play-audio]
exten => s,1,Playback(custom/workingday)
exten => s,n,Hangup()
[double-ext]
exten => s,1,Dial(SIP/201&SIP/202)
exten => s,n,Hangup()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab5-6] dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
vim extensions_cu tom.conf
Sintaxis: include => custom-lab5-6

Recargar asterisk: [root@elastix

Pruebe el contexto marcando 4000 desde la extensión 200.

asterisk]# asterisk -rx “reload”

65

Libro de Laboratorios

Lab-5

Asterisk
Laboratorio 5.7
Descripción: Crear un contexto que solicite una autenticación antes de marcar una extensión
usando la aplicación Authenticate().
Objetivo: Familiarizarse con la creación de contextos y la aplicación Authenticate().
Tiempo Máximo: 10 minutos.
Instrucciones:

Edite el archivo /etc/asterisk/extensions_custom_XXXXX.conf adicionando las siguientes líneas

[custom-lab5-7]
exten => 4001,1,Answer
exten => 4001,n,Wait(1)
exten => 4001,n,Authenticate(1234)
exten => 4001,n,Dial(SIP/201)
exten => 4001,n,Hangup()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab5-7] dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
vim extensions_custom.conf
Sintaxis: include => custom-lab5-7

Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”

Pruebe el contexto marcando 4001 desde la extensión 200.

66

n.conf Sintaxis: include => custom-lab5-8  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el contexto marcando 4002 desde la extensión 200.n.Wait(1) exten => 4002.Authenticate(1234) exten => 4002.8 (Practica recomendada) Descripción: Crear un contexto que requiera autenticación antes de dar tono de marcado por medio de la aplicación DISA. 67 .DISA(no-password.conf adicionando las siguientes líneas [custom-lab5-8] exten => 4002. Tiempo Máximo: 10 minutos.n.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-8] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.1.n. Objetivo: Familiarizarse con la creación de contextos y la aplicación DISA().Answer exten => 4002.from-internal) exten => 4002.conf vim extensions_custom.

Tiempo Máximo: 10 minutos.conf Sintaxis: include => custom-lab5-9  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el contexto marcando 4003 desde la extensión 200.n.1.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-9] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.n.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.n. una vez que escuche la grabación ingrese un número entre 2000 y 2999. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.Answer exten => 4003.) exten => _2XXX.9 Descripción: Crear un contexto que solicite una extensión y luego reproduzca la extensión ingresada usando la aplicación SayDigits().conf adicionando las siguientes líneas [custom-lab5-9] exten => 4003.WaitExten(.conf vim extensions_custom.1. 68 .Background(custom/enter4digits) exten => 4003. Objetivo: Familiarizarse con la creación de contextos y la aplicación SayDigits().SayDigits(${EXTEN}) exten => _2XXX.

include => custom-lab5-9 ..n.WaitExten(.n.” .conf  Una vez ahí..conf vim extensions_custom. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5. el sistema dirá el número completo. ingresar al archivo vim extensions_cu tom.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-10] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom. deshabilitaremos el contexto [custom-lab5-9] y [custom-lab5-10] anteponiendo un “. Nota: No digite 1234. Tiempo Máximo: 15 minutos.SayNumber(${EXTEN}) exten => _X. es un número reservado de Asterisk.) exten => _X.conf adicionando las siguientes líneas [custom-lab5-10] exten => 4004.  Una vez que hemos hecho /etc/asterisk/extensions_custom. Objetivo: Familiarizarse con la creación de contextos y la aplicación SayNumber().n.1.10 Descripción: Crear un contexto que solicite un número y luego reproduzca el número ingresado usando la aplicación SayNumber().include => custom-lab5-10 69 . Al escuchar la grabación ingrese un número de 4 dígitos.conf Sintaxis: include => custom-lab5-10  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el contexto marcando 4004 desde la extensión 200.Background(custom/enternumber) exten => 4004.conf la prueba.n.Answer exten => 4004.

Libro de Laboratorios Lab-5  Grabar y Salir (Esc → :wq)  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Esta es la manera adecuada de deshabilitar un contexto que no queremos que se siga ejecutando en el futuro. 70 .

11 (Práctica recomendada) Descripción: Crear un contexto que solicite una extensión y luego deletree su nombre usando la aplicación SayAlpha().Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.1.conf Sintaxis: include => custom-lab5-11  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” Pruebe el contexto marcando 4005 desde la extensión 200. 71 .SayAlpha(SU_NOMBRE) exten => 4005. Tiempo Máximo: 10 minutos.n.Hangup() Nota: Reemplace SU_NOMBRE por su primer nombre  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-11] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.n.conf adicionando las siguientes líneas [custom-lab5-11] exten => 4005. Objetivo: Familiarizarse con la creación de contextos y la aplicación SayAlpha().Answer exten => 4005. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.conf vim extensions_custom.

conf-getchannel. Instrucciones:  Edite el archivo /etc/asterisk/extensions_custom_XXXXX.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.n. Objetivo: Familiarizarse con la creación de contextos y la aplicación ChanSpy(). Tiempo Máximo: 10 minutos.4) exten => 4006.12 (Práctica recomendada) Descripción: Crear un contexto que solicite una extensión a espiar y luego intervenga una conversación actual usando la aplicación ChanSpy().conf Sintaxis: include => custom-lab5-12  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” Pruebe el contexto marcando 4006 desde la extensión 200 72 . [custom-lab5-12] exten => 4006.n.ChanSpy(SIP/${port}) exten => 4006.Read(port.1.conf vim extensions_custom.Hangup  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab5-12] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.conf adicionando las siguientes líneas.

13 (Práctica recomendada) Descripción: Realizar una llamada desde la consola de Asterisk usando el módulo chan_oss.so == Parsing '/etc/asterisk/oss.so con el siguiente comando: module load chan_oss.so como herramienta de testeo.conf': Found == Registered channel type 'Console' (OSS Console Channel Driver) Loaded chan_oss. Tiempo Máximo: 10 minutos.so elastix*CLI> module load chan_oss. Instrucciones:  Ingresar al Asterisk CLI [root@elastix opt]# asterisk -r  Cargar el módulo chan_oss.Libro de Laboratorios Lab-5 Asterisk Laboratorio 5.so y el comando dial.so => (OSS Console Channel Driver)  Marcar a una extensión desde la consola: elastix*CLI> console dial 200  Transferir la llamada a otra extensión: elastix*CLI> console transfer 201@from-internal 73 . Objetivo: Familiarizarse con la consola de Asterisk y usar el módulo chan_oss.

1) exten => 4007.jul?open.s.Wait(1) exten => s.n.conf l   Sintaxis: include => custom-lab6-1 Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” Desde cualquier extensión marque 4007. Tiempo Máximo: 15 minutos.4.*. Objetivo: Familiarizarse con el condicional GotoIfTime(). Intente ahora cambiando la fecha del servidor.1) [open] exten => s.n.s.1) exten => 4007. use el siguiente comando: [root@elastix ~]# date -s 'mes/día/2012 18:53:25' 74 .n.s.conf vim extensions_custom. Cambie "mes" y "día" por la fecha del día de hoy y coloque la 18:53:25.Playback(custom/workingday) exten => s.Wait(1) exten => s.n.1.GotoIfTime(*.1 Descripción: Crear un contexto que verifique la fecha y hora del día y reproduzca para días laborables y no laborables. [custom-lab6-1] exten => 4007.n.s.GotoIfTime(09:00-17:59|mon-fri|*|*?open. usted escuchará el audio "workingday".Hangup() [closed] exten => s.1) exten => 4007.1. Instrucciones:  Editar el archivo /etc/asterisk/extensions_custom.1.  Agregar el siguiente contexto al final del archivo.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab6-1] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.Goto(closed.conf y agregar el siguiente contexto al final del archivo.n.GotoIfTime(09:00-11:59|sat|*|*?open.n.Playback(custom/notworkingday) exten => s.Libro de Laboratorios Lab-6 Plan de Marcado Avanzado Laboratorio 6.

SayNumber($[${OPERA1}/${OPERA2}]) exten => 4.n.n.Hangup() exten => 3.1.n.) exten => 1.SayNumber($[${OPERA1}-${OPERA2}]) exten => 2. Tiempo Máximo: 15 minutos.background(custom/enteroperation) exten => 4008.WaitExten(. Objetivo: Familiarizarse con los operadores matemáticos de una teléfono IP.2 Descripción: Crear un contexto que implemente una calculadora matemática básica.conf Sintaxis: include => custom-lab6-2  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Realice una prueba marcando 4008.Playback(custom/answeris) exten => 3.Hangup() exten => 2.conf y agregar el siguiente contexto al final del archivo.conf vim extensions_custom. 75 .n.n. 2 Resta.custom/enternumber2.n.  Haga una prueba dividiendo 4 para 2.3) exten => 4008. Instrucciones:  Editar el archivo /etc/asterisk/extensions_custom.Playback(custom/answeris) exten => 1.1.n.SayNumber($[${OPERA1}*${OPERA2}]) exten => 3.Playback(custom/answeris) exten => 2. Los dígitos para la operación son: 1 Suma.Libro de Laboratorios Lab-6 Plan de Marcado Avanzado Laboratorio 6. El plan de marcado le preguntará dos números y una operación matemática.1.Set(CHANNEL(language)=es) exten => 4008.SayNumber($[${OPERA1}+${OPERA2}]) exten => 1.Answer() exten => 4008.Read(OPERA1.Hangup() exten => 4.n. [custom-lab6-2] exten => 4008. 4 División.1.n.3) exten => 4008.Playback(custom/answeris) exten => 4.n.n.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab6-2] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.1.n. 3 Multiplicación.Read(OPERA2.n.custom/enternumber1.

n.Gotoif($[${RV} = 0]?:impar) exten => 4009.n(madiez).Goto(salto3) exten => 4009.int)}) exten => 4009.n.GotoIf($[${RES}=0]?:restar) exten => 4009.SET(TOT=$[${TOT} + ${ACUM}]) exten => 4009.Goto(salto1) exten => 4009.n.n.n.SET(VER=$[10-${RES}]) exten => 4009.SET(MULT=2) exten => 4009.SET(ACUM=$[${ACUM}-9]) exten => 4009.Set(CHANNEL(language)=es) exten => 4009.Gotoif($[${ACUM}<10]?:madiez) exten => 4009.n.conf 76 .int)}) exten => 4009.n.n.SET(MULT=1) exten => 4009.Goto(salto2) exten => 4009.n(impar).n(restar).Set(VAR=0) exten => 4009.Libro de Laboratorios Lab-6 Plan de Marcado Avanzado Laboratorio 6.n.n.n(salto2).int)}) exten => 4009.10) exten => 4009.n.Read(CEDULA. la aplicación GotoIf y la aplicación condicional While .SET(ACUM=${ACUM}) exten => 4009.n(error).SayNumber(${VER}) exten => 4009.Noop(${CEDULA}) exten => 4009.n.NoOp(${RV}) exten => 4009.n.SET(DIG=${CEDULA:${VAR}:1}) exten => 4009.Set(TOT=0) exten => 4009.n.Set(RES=${MATH(${TOT} % 10.n.1.3 Descripción: Cree un contexto que implemente un verificador de número de identidad (algoritmo de verificador de dígito).EndWhile exten => 4009.n(salto1).n.Gotoif($[${CEDULA:9:1}=${VER}]?:error) exten => 4009.conf y agregar el siguiente contexto al final del archivo.EndWhile.Hangup() exten => 4009.custom/enterid.conf vim extensions_custom.n(salto3).SET(VAR=$[${VAR} + 1]) exten => 4009.n.n.n.While($[${VAR} < 9]) exten => 4009.n.SET(VER=0) exten => 4009.Answer() exten => 4009.n. Objetivo: Familiarizarse con los operadores matemáticos de un teléfono IP.n.Playback(custom/correctid) exten => 4009.Set(ACUM=${MATH(${DIG}*${MULT}.Playback(custom/incorrectid) exten => 4009.Set(RV=${MATH(${VAR} % 2.n. Tiempo Máximo: 20 minutos. Instrucciones:  Editar el archivo /etc/asterisk/extensions_custom.n. [custom-lab6-3] exten => 4009.Hangup()  Grabar y Salir (Esc → :wq)  Incluir el contexto [custom-lab6-3] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.n.

 Si el décimo número ingresado es correcto. usted obtendrá dos audios. uno que diga "correcto" y otro diciendo el décimo número. el décimo dígito normalmente se obtiene por medio de un algoritmo que usa los primeros 9 números. 77 .Libro de Laboratorios Lab-6 Sintaxis: include => custom-lab6-3  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Hay países en que el número de identidad tiene 10 dígitos. el cual toma los primeros 9 números y ejecutará el cálculo para obtener el décimo número.  Si usted ingresa un valor no válido obtendrá un audio de "incorrecto". Este plan de marcado permite ingresar un número de identificación y verificar su autenticidad.  Realice la prueba marcando 4009 y determine cual de los siguientes números es un ID correcto: 0907540888 1710034065 1790085783 0801895186 0932952135  Usted tiene que marcar el número completo y el contexto verificará si el número es correcto usando un algoritmo de verificación de dígito.

Libro de Laboratorios

Lab-6

Plan de Marcado Avanzado
Laboratorio 6.4 (Práctica recomendada)
Descripción: Crear un archivo .call que realice una llamada a una extensión.
Objetivo: Familiarizarse con el funcionamiento de los archivos .call.
Tiempo Máximo: 15 minutos.
Instrucciones:

Cree el archivo mycall.call con el siguiente contenido:
Channel: local/200@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: from-internal
Extension: 200
Priority: 1

Cambiar los permisos y propietario del archivo mycall.call
[root@elastix ~]# chmod 777 mycall.call
[root@elastix ~]# chown asterisk:asterisk mycall.call

Mover el archivo mycall.call al directorio /var/spool/asterisk/outgoing.
[root@elastix ~]# mv mycall.call /var/spool/asterisk/outgoing

El propósito de esta laboratorio es el de mostrarle el proceso de envío de una llamada. En el
siguiente laboratorio completaremos la tarea reproduciendo un audio cuando la persona que recibe
contesta la llamada.

78

Libro de Laboratorios

Lab-6

Plan de Marcado Avanzado
Laboratorio 6.5 (Práctica recomendada)
Descripción: Crear un archivo .call que realice una llamada a una extensión, conecte la llamada a
un contexto y reproduzca un audio.
Objetivo: Familiarizarse con el funcionamiento de los archivos .call.
Tiempo Máximo: 15 minutos.
Instrucciones:

Crear un contexto que reproduzca un audio en su archivo extensions_custom_XXXXX.conf.
[custom-elastixworld]
exten => s,1,Answer()
exten => s,n,Playback(custom/elastixworld)
exten => s,n,Hangup()

Cree el archivo mycall.call con el siguiente contenido:
Channel: local/200@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: custom-elastixworld
Extension: s
Priority: 1

Cambiar los permisos y propietario del archivo mycall.call
[root@elastix ~]# chmod 777 mycall.call
[root@elastix ~]# chown asterisk:asterisk mycall.call

Mover el archivo mycall.call al directorio /var/spool/asterisk/outgoing.
[root@elastix ~]# mv mycall.call /var/spool/asterisk/outgoing

79

Libro de Laboratorios

Lab-7

Asterisk AGI
Laboratorio 7.1
Descripción: Crear un agi que consulte una tabla de datos y que mediante el ingreso de un código,
este retorne y reproduzca el número de cédula asociado, dígito a dígito.
Objetivo: Practicar la creación de AGI, familiarizarse con las funciones STREAM FILE, GET DATA,
SAY DIGITS e implementar una consulta básica a una base de datos.
Tiempo Máximo: 25 minutos.
Instrucciones:

Ingrese a la consola de su Elastix como usuario root.

El primer paso es crear la base de datos agi_test, para este propósito escribimos:
mysqladmin -u root -p create agi_test
Nota: usted necesitará ingresar la contraseña del usuario root de mysql.

Necesitamos crear el archivo db.sql con el siguiente contenido:
vim db.sql

TEXT:
USE agi_test
CREATE TABLE IF NOT EXISTS `numbers` (
`ID` int(11) NOT NULL auto_increment,
`NUMBER` int(10) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO `numbers` (`ID`, `NUMBER`) VALUES
(1, 2223456),
(2, 7778764),
(3, 8787878),
(4, 34534234);

labs
80

81 .' LIMIT 0.Libro de Laboratorios  Lab-7 Una vez que el archivo está creado llenaremos la base de datos “agi_test” con el siguiente comando: cat db."Error: Cannot open database"). $query = 'SELECT * FROM numbers WHERE ID = '. require ('phpagi.$pass) or die("DB Connection Error"). } $agiwrapper->say_digits($number) .sql | mysql -u root -p Nota: usted necesitará ingresar la contraseña del usuario root de mysql.'root'. if($row != NULL) { $number = $row[1]. $agiwrapper = new AGI() .php TEXT para ectagi.  Grabar y salir (Esc → :wq) labs Cambie los permisos y usuario chmod 755 ectagi. $row = mysql_fetch_array( $result ). $id = $_SERVER['argv'][1].php en /var/lib/asterisk/agi-bin/ cd /var/lib/asterisk/agi-bin/ vim ectagi.  Cree el archivo ectagi. mysql_close($link). } else { $number = "00000". $link = mysql_connect('localhost'. ?> Nota de edición: en la línea 2 cambie el valor de $pass (YOURPASSWORD) con su contraseña del usuario root de mysql. mysql_select_db("agi_test") or die(mysqlerror(). 30 '. set_time_limit(30) . exit().$id.php: #!/usr/bin/php -q <?php $pass='YOURPASSWORD'.conf. ob_implicit_flush(true) .php') . $result = mysql_query($query) or die(mysql_error()).php chown asterisk:asterisk ectagi.php  Añada el siguiente contexto al archivo /etc/asterisk/extensions_custom_XXXXX.

5. presione 1. (4. 34534234).. 8787878).  Si usted marca un número que no existe. 3.conf vim extensions_custom. usted debería escuchar: 2. deberíamos marcar el id de cada número en la base de datos: (1. 7778764).Answer exten => 4010. 0. 6 y la llamada culminará.AGI(ectagi. presione #. 0.  Ejemplo: marque 4010.2. 2. 4.${number}) exten => 4010. 0.php.3.2) exten => 4010. 0 82 .4. (2.speed-enternumber. 2223456).. usted obtendrá una respuesta de 0.Read(number. ejemplo 12. 2.Libro de Laboratorios Lab-7 [ect-agi] exten => 4010.3.1.conf Sintaxis: include => ect-agi  Grabar y salir (Esc → :wq)  Recargue asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Pruebe el AGI marcando 4010. (3.Hangup()  Grabar y salir (Esc → :wq)  Incluya el contexto [ect-agi] en el contexto [from-internal-custom] localizado en el archivo /etc/asterisk/extensions_custom.

<SIP/200-00000059> Playing 'digits/2.<SIP/200-00000059> Playing 'digits/6.php <SIP/200-00000059>AGI Tx >> agi_request: ectagi. 83 .Executing [500@from-internal:3] AGI("SIP/200-00000059".2 Descripción: Realizar el debugging del AGI creado en la práctica anterior y verificar las variables enviadas desde y hacia un AGI.php son mostradas.0 <SIP/200-00000059>AGI Tx >> agi_callerid: 200 <SIP/200-00000059>AGI Tx >> agi_calleridname: device <SIP/200-00000059>AGI Tx >> agi_callingpres: 0 <SIP/200-00000059>AGI Tx >> agi_callingani2: 0 <SIP/200-00000059>AGI Tx >> agi_callington: 0 <SIP/200-00000059>AGI Tx >> agi_callingtns: 0 <SIP/200-00000059>AGI Tx >> agi_dnid: 500 <SIP/200-00000059>AGI Tx >> agi_rdnis: unknown <SIP/200-00000059>AGI Tx >> agi_context: from-internal <SIP/200-00000059>AGI Tx >> agi_extension: 500 <SIP/200-00000059>AGI Tx >> agi_priority: 3 <SIP/200-00000059>AGI Tx >> agi_enhanced: 0.<SIP/200-00000059> Playing 'digits/5. -. presione 1 y #  Observaremos una salida donde las variables de ectagi.gsm' (language 'en') -. use el comando “agi debug off”.1") in new stack -.<SIP/200-00000059> Playing 'digits/3.Launched AGI Script /var/lib/asterisk/agi-bin/ectagi.  Desde una extensión marque 4010.gsm' (language 'en') -. y la comunicación hacia y desde el AGI.gsm' (language 'en') -.<SIP/200-00000059> Playing 'digits/4.Libro de Laboratorios Lab-7 Asterisk AGI Laboratorio 7.<SIP/200-00000059> Playing 'digits/2.gsm' (language 'en') -. Tiempo Máximo: 15 minutos. Instrucciones:  Ingrese al Asterisk CLI  Habilite debugging de AGI con el comando “agi set debug on”.php <SIP/200-00000059>AGI Tx >> agi_channel: SIP/200-00000059 <SIP/200-00000059>AGI Tx >> agi_language: en <SIP/200-00000059>AGI Tx >> agi_type: SIP <SIP/200-00000059>AGI Tx >> agi_uniqueid: 1327877045.<SIP/200-00000059>AGI Script ectagi.8.<SIP/200-00000059> Playing 'digits/2.gsm' (language 'en') -. returning 0 labs  Para deshabilitar el debugging en AGI.gsm' (language 'en') -.7.php.89 <SIP/200-00000059>AGI Tx >> agi_version: 1.0 <SIP/200-00000059>AGI Tx >> agi_accountcode: <SIP/200-00000059>AGI Tx >> agi_threadid: -1221964912 <SIP/200-00000059>AGI Tx >> agi_arg_1: 1 <SIP/200-00000059>AGI Tx >> <SIP/200-00000059>AGI Rx << SAY DIGITS 2223456 "" -. Objetivo: Usar los comandos de debug de un AGI y entender la salida mostrada en la consola de asterisk. "ectagi.php completed.gsm' (language 'en') <SIP/200-00000059>AGI Tx >> 200 result=0 -.

Libro de Laboratorios

Lab-7

Asterisk AMI
Laboratorio 7.3
Descripción: Conectarse vía TELNET con AMI, enviar el comando LOGIN y enviar el comando
LOGOFF
Objetivo: Familiarizarse con la conexión con AMI y ejecutar comandos básicos y ver la respuesta
obtenida.
Tiempo Máximo: 10 minutos.
Instrucciones:

Primero debemos obtener la contraseña de la interfaz de administración de Asterisk / AMI

En la consola escriba el siguiente comando:
cat /etc/asterisk/manager.conf | grep secret

El ejemplo arrojó la contraseña “palosanto”. Es posible que usted haya ingresado una diferente cuando
instaló Elastix.
LOGIN

Conéctese a AMI a través de telnet como se indica: telnet 127.0.0.1 5038

Para ingresar usted debe escribir los siguientes comandos (es muy útil tenerlos escritos en un bloc de
notas antes de ingresar a telnet):
Action: Login
Username: admin
Secret: password - (en este ejemplo palosanto)

labs

Después presione Enter.

84

Libro de Laboratorios

Lab-7

LOGOUT

Para salir de AMI debemos ejecutar el comando “Logoff”

Nota: No olvide presionar “Enter” al final de cada evento.

85

Libro de Laboratorios

Lab-7

Asterisk AMI
Laboratorio 7.4 (Práctica recomendada)
Descripción: Conectarse vía TELNET con AMI, y ejecutar la acción “Originate” para realizar una
llamada a otra extensión.
Objetivo: Familiarizarse con la conexión con AMI y ejecutar comandos básicos y ver la respuesta
obtenida.
Tiempo Máximo: 10 minutos.
Instrucciones:

Conéctese a AMI a través de telnet:

telnet 127.0.0.1 5038

Haga login con:
Action: Login
Username: admin
Secret: password - (la misma contraseña que el laboratorio anterior)

Utilice la acción “Originate” en la sesión y reciba una llamada a la extensión especificada:
Action: Originate
Channel: SIP/200
- (El canal de la extensión)
Exten: 200
- (El número de la extensión)
Priority: 1
Timeout: 300000
- (acerca de 30 segundos)
Context: from-internal

Usted recibirá una llamada a la extensión 200.

Ejecute el comando Logoff.

Nota: No olvide presionar “Enter” al final de cada evento.

86

Libro de Laboratorios

Lab-7

Asterisk AGI-AMI
Laboratorio 7.5
Descripción: Construya un AGI que permita conectar una llamada entre dos extensiones, usando
la librería “php-asmanager.php” y la función Originate.
Objetivo: Usar la librería “php-asmanager.php” y la función Originate para la creación de
funcionalidad usando AGI y AMI.
Tiempo Máximo: 10 minutos.
Instrucciones:

Cree un archivo /var/lib/asterisk/agi-bin/myfile.agi:
cd /var/lib/asterisk/agi-bin/
vim myfile.agi

Añada la siguiente línea al archivo myfile.agi:
#!/usr/bin/php -q
<?php
require_once "/var/lib/asterisk/agi-bin/phpagi-asmanager.php";
$astman = new AGI_AsteriskManager();
$resultado= $astman->connect("127.0.0.1", "admin", "AMIPASSWORD");
$salida = $astman->Originate("SIP/200","201","from-internal","1");
$astman->disconnect();
?>

Nota: La contraseña AMI (AMIPASSWORD) es la misma que en laboratorios previos. En este caso
“palosanto”, no olvide reemplazarla en el archivo de texto php.

Grabar y salir (Esc → :wq)

Cambie los permisos y usuario del archivo myfile.agi

l

chmod 777 myfile.agi
chown asterisk:asterisk myfile.agi

Ejecute el siguiente comando desde la consola.
[root@elastix agi-bin]# php myfile.agi
Usted debería recibir una llamada en la extensión 200, y antes de que usted conteste Elastix conectará
la llamada con la extensión 201. Este es el clásico ejemplo de “Clic to Call”.

87

Iniciaremos la configuración de la troncal en la ELASTIX A.Libro de Laboratorios Lab-8 Interconexión con Elastix Remotos Laboratorio 8. Instrucciones:  Usted debe trabajar con un compañero para realizar el siguiente esquema.  Ingresar a la interfaz de administración Elastix ir a:  PBX → PBX Configuration → Troncales  Una vez ahí seleccione “Add SIP Trunk”.1 Descripción: Interconectar dos servidores Elastix en la que se podrán comunicar las extensiones de ELASTIX A con las extensiones de ELASTIX B Objetivo: Practicar la creación de troncal SIP.  La troncal en ELASTIX A tendrá como nombre PBXA y su caller ID será elastixA labs 88 . Tiempo Máximo: 30 minutos.

239 es la IP de ELASTIX A y 192.1.168.168.240  y para ELASTIX B debería ser: elastixA:welcome@192. El parámetro secret es "welcome"  Definimos la cadena de registro como sigue (para este ejemplo asumiremos que 192.240 es la IP de ELASTIX B):  Para ELASTIX A debería ser: elastixB:welcome@192.1.1. la  Ahora de emos configurar la troncal en ELASTIX B.1.168.239  Una vez que hemos completado la configuración debemos hacer clic en submit y aplicar los cambios. 89 .Libro de Laboratorios  Lab-8 Definimos los detalles del peer como : host=dynamic secret=welcome trunk=yes type=friend Nota: Esta configuración es la misma en ambos servidores.168.

1.168. Usamos el siguiente comando: la sip show registry  Deberíamos ver una salida similar a la siguiente: elastix*CLI> sip show registry Host Username 192.Libro de Laboratorios  Lab-8 Verificamos en el Asterisk CLI si ambas troncales se encuentran registradas.240:5060 elastixB Refresh 105 State Registered 90 Reg.Time Fri.20 Jan 2012 10:29:43 .

168. En este caso le pondremos como nombre: Elastixremota.  PBX → PBX Configuration → Rutas Salientes  El patrón de marcado para esta ruta es: 2|XXX labs 91 . bastará con colocar el contexto primario.  La configuración en ELASTIX A es: context=from-internal host=192. Ruta Saliente  Crearemos una ruta saliente para todas las llamadas que salgan hacia el otro servidor.240 (la IP de ELASTIX B) insecure=very type=friend  Ir a:  PBX → PBX Configuration → Troncales → PBXA  En el campo “USER Context” colocaremos contextA para ELASTIX A y contextB para ELASTIX B.  Haga clic en Submit y aplique los cambios. es decir en donde se quiere terminar la llamada.1. En este caso queremos que sea accesible a la extensiones local.Libro de Laboratorios Lab-8  El siguiente paso es definir los detalles del usuario.

Libro de Laboratorios Lab-8  Luego escogemos porque troncal debe irse la llamada en este caso escogemos por la troncal PBXA.  Después debemos crear la ruta saliente en ELASTIX B de manera similar. En el caso de ELASTIX B seleccionamos PBXB. Cuando estemos listos podemos hacer llamadas entre ambos servidores.  Trate de hacer llamadas desde la extensión 200 en ELASTIX A.  Hacemos clic en “Submit changes” y aplicamos los cambios. para esto es necesario marcar: 2200 92 . a la extensión 200 en ELASTIX B.

Objetivo: Utilizar el módulo de VoIP Provider. Instrucciones:  Esquema  El módulo VoIP Provider de Elastix.Libro de Laboratorios Lab-8 Interconexión con Elastix Remotos Laboratorio 8. Para este ejemplo debemos crear una troncal con la información de una cuenta existente.2 (Práctica Recomendada) Descripción: Interconectar la central Elastix con el proveedor de llamadas internacionales Net2Phone y realizar llamadas. Un procedimiento detallado de cómo crear la cuenta se encuentra en el Anexo 1.com. Tiempo Máximo: 15 minutos. permite crear una troncal SIP con proveedores embebidos en la solución.  Net2Phone a habilitado un link para la creación de cuentas que puedan ser utilizadas con Elastix. Usted puede crear la cuenta en: http://n2pelastix.  La información proveída por Net2Phone es: • • • Account Number PIN Número de teléfono PBX → VoIP Provider  Ir a:  Haga clic en Nueva cuenta labs 93 .

para este ejemplo usaremos N2P-ELX • Username: El número de cuenta • Secret: PIN • CallerID de salida: Número de teléfono  Cuando haya ingresado los datos haga clic en Guardar  Ahora debemos crear una ruta saliente para la nueva cuenta. para este ejemplo usaremos Net2Phone • Nombre de cuenta: un nombre de referencia. Cree una con el nombre INTERNATIONAL y defina el patrón de marcado.Libro de Laboratorios  Lab-8 La información requerida es: • VoIP Provider: la compañía que ofrece el servicio VoIP. En este caso utilizaremos el siguiente patrón: 00. 94 .  Esta ruta utilizará la troncal SIP que hemos creado: N2P-ELX  Agregamos la troncal y aplicamos los cambios.

Time Fri. La información usual es la siguiente: username=myusername host=voip_provider_IP username=myuser secret=mypassword type=peer qualify=yes insecure=very dtmfmode=rfc2833 disallow=all context=frompstn allow= ulaw&alaw&gsm&ilbc&g726&adpcm&lpc10 / (the codecs supported by the provider) trustrpid=no sendrpid=no canreinvite=no  Luego añadimos la cadena de registro. Intente llamando a las oficina de Elastix: +1-877-ELASTIX.  Usted debe marcar 0018773527849 Nota sobre la práctica: Usted puede abrir una cuenta con cualquiera de los proveedores incluidos en el módulo. Se explica sobre Net2Phone por la facilidad para crear la cuenta. la cual en nuestro caso debería ser: myusername:mypassword@voip_provider_IP/myusername  Es necesario además colocar el número de teléfono en el campo "Outbound Caller ID": l  Luego podemos verificar que la troncal está registrada.Libro de Laboratorios Lab-8  Usted puede hacer llamadas desde cualquier extensión de su Elastix. en la consola de Aterisk (CLI) elastix*CLI> sip show registry Host Username Voip_provider_IP:5060 myusername Refresh 105 95 State Registered Reg.20 Jan 2012 10:29:43 . usted puede crear una troncal SIP en:  PBX → PBX Configuration → Troncales → Add SIP Trunk  Usted debe consultar a su proveedor la configuración para los detalles de PEER de la sección "Outgoing settings" de la troncal que desea crear. Configuración de un proveedor de VoIP no incluido  Si usted necesita configurar un proveedor de VoIP no enlistado.

Tiempo Máximo: 10 minutos.1 Descripción: Cree una tarifa de $0.Libro de Laboratorios Lab-9 Tarifación y Reportación en Elastix Laboratorio 9.15 usando el SIP ELASTIXA / ELASTIXB que creamos anteriormente. Realice una llamada a través de la troncal y verifique la información recolectada en el reporte de facturación. Instrucciones:  El primer paso consiste en habilitar la troncal PBXA / PBXB para que sea monitoreada por el proceso de facturación.  Ahora vaya a: labs   Reports → Billing → Rate Haga clic en "Create New Rate / Crear nueva tarifa" (Nombre referencial: REMOTELASTIX) 96 . Objetivo: Familiarizarse con el uso del módulo de Tarifación de Elastix. Para hacer eso ir a:  Reports → Billing → Billing Setup  Una vez ahí seleccione la troncal requerida (SIP/elastixA) y haga clic en "Billing Capable / Habilitar para facturar". El valor de la conexión (OFFSET) debe ser $0.01.

1  Después de completar algunas llamadas vaya a:  Reports → Billing → Billing Report  Usted verá un detalle de llamadas con el costo calculado en base a la tarifa que configuramos. Intente llamando a la Elastix con la que hizo conexión en la práctica 8.  Exporte el reporte a PDF para revisión.Libro de Laboratorios Lab-9  Guarde la tarifa (rate) y haga dos llamadas para obtener algunos registros de facturación.  Usted obtendrá algo similar a la siguiente imagen: labs 97 .

 Revise el reporte y compare los costos con la tarifa REMOTELASTIX.  Realice llamadas a un número cualquiera. 98 .2  La troncal a seleccionar debería ser: N2P-ELX  Hemos puesto un valor más alto para estas.Libro de Laboratorios Lab-9 Configuración Opcional  Ahora agregaremos una nueva tarifa para registrar las llamadas que se creen en la práctica 8. hacer llamadas. Inicie el proceso nuevamente: habilitar troncal.  Para este efecto utilice la troncal creada en la práctica 8. puede ser +1-877-3527849 (El número de Elastix) para registrar esas llamadas en el reporte de facturación. crear la tarifa.2.

711 G.2 ms  Calcular el valor de Ie de acuerdo a la tabla. El porcentaje paquetes perdidos igual al 0%. Instrucciones:  Determinar el retardo de un punto a punto específico de la red usando el comando PING como se muestra en el gráfico.711. Tiempos Máximo: 15 minutos. Ie = 0 Packet Loss % labs 0 1 2 4 8 16 G.1 G. Usar el codec g. escriba el siguiente comando:  ping IP_Address –c10 (use la IP de cualquier estudiante):  El retardo es el mayor tiempo obtenido en el proceso.723.Libro de Laboratorios Lab-10 Calidad de Voz Laboratorio 10. en este caso 51. Objetivo: Entender y dominar el uso de las fórmulas que nos permiten determinar la calidad de voz de una manera objetiva.729A 0 3 5 7 9 20 11 15 18 20 22 24 99 15 18 20 25 28 30 . Ingrese a la consola como usuario root.1 Descripción: Calcular el parámetro R del modelo E usando la fórmula simplificado y la tabla de pérdida de paquete para la red del laboratorio y obtener el respectivo valor de la escala MOS.

17794 MOS = 4.9712  Traducir a la escala MOS reemplazando el valor obtenido de R.2 + 0.2288 + 0.2 – 177.035 * R + 7 * R*(R – 60)*(100 – R)*10-6 MOS = 4.024 · d + 0. Fórmula MOS =1 MOS = 1 + 0.70 – 177.3) · H(d – 177.024 · 51.9712) · 10-6 MOS = 1 + 3.3) · 0 Id = 1.0 R = 92. R = 94. 100 . Id = 0.11 · (51.035 · 92.11 · (2.3) Valores para la función Heavyside H(x) = 0 para x < 0 y 1 para x ≥ 0  Reemplace el valor de retardo.9712 · (92.70 ms.3) · H(51.9712 – 60) · (100 – 92.2 – 1.2 ms Id = 0.9712 + 7 · 92.5 Rango R R<0 0 < R < 100 R >100 MOS = 1 + 0. en este caso 51.2288 .2539 + 0. en este caso 2.4318 MOS Calidad Esfuerzo 5 Excelente 4 Buena 3 2 1 Aceptable Pobre Buena No hace falta esfuerzo alguno Es necesario prestar atención pero no es necesario un esfuerzo apreciable Esfuerzo moderado Gran esfuerzo No es posible entender la conversación labs  Este resultado indica que la calidad está muy cerca a la excelencia.Libro de Laboratorios  Lab-10 Calcular el valor de Id reemplazando el valor de retardo.11 · (d – 177.3) Id = 1.2 – 177.2288  Calcular el valor de R reemplazando los valores de Ie y Id obtenidos.

1 Descripción: Usar la herramienta Wireshark para capturar la conversación entre su extensión y la de otro compañero del curso y obtener el gráfico de intercambio de eventos y métodos de dicha conversación.Libro de Laboratorios Lab-11 Protocolos SIP / RTP Laboratorio 11. Objetivo: Ver de manera gráfica el intercambio de métodos de una conversación e identificar los eventos de contestación. colgado de una llamada. Tiempo Máximo: 15 minutos.  Iniciar una llamada hacia alguna extensión de un compañero de curso.  Ingresamos la menú “Statistics” y hacemos clic en la opción “Graph Flow” y veremos lo siguiente: 101 .  Veremos que Wireshark empezará a capturar paquetes como se muestra en el gráfico: labs  Detenemos la captura. etc. ingresando al menú Captura y haciendo clic en “Stop”. Instrucciones:  Iniciar el Wireshark e iniciar la captura en la interface eth0.

En la parte superior del gráfico se indica el flujo de dicho intercambio.  Para revisar estadísticas ir al menú “Statistics” y hacer clic en la opción “SIP”. Veremos algo como sigue: labs 102 .Libro de Laboratorios Lab-11  Identifiquemos los métodos y eventos que se intercambian entre los dispositivos y la central Elastix.

 En el menú “Statistics” escoger la opción “RTP” y luego seleccionar la opción “Stream Analysis”.2 Descripción: Usar la herramienta wireshark para capturar la conversación entre su extensión y la de otro compañero del curso y analizar los paquetes RTP. Veremos lo siguiente: labs 103 .Libro de Laboratorios Lab-11 Protocolos SIP / RTP Laboratorio 11. generar un archivo (. seleccionar el primer paquete RTP de dicha captura.au) y reproducir el payload de los paquetes que forman esa conversación. Instrucciones:  Con la captura realizada de la práctica anterior. Tiempo Máximo: 10 minutos. Objetivo: Adiestrar al estudiante al uso de sniffers para analizar tráfico RTP y generar y reproducir el payload de una captura de paquetes.

104 .  Colocar como nombre de archivo payload1.Libro de Laboratorios Lab-11  Luego hacer click en el botón Payload y escoger el formato (. seleccionar el archivo payload1.au y escuchar la conversación.au) y en la opción Channels escoger (both).au  Abrir un reproductor.

[root@elastix ~]# asterisk -r  Obteniendo el Prompt de la consola. Tiempo Máximo: 10 minutos. Objetivo: Familiarizarse con el uso de la consola de Asterisk CLI.  Enliste comandos con “?” labs 105 .1 Descripción: Ingresar a la consola de Asterisk y ejecutar los comandos “?”. utilizando comandos básicos. “help”. Instrucciones:  Ingresar a la consola de Elastix como usuario root  Ingresar a la consola de Asterisk.Libro de Laboratorios Lab-12 Diagnóstico Básico Laboratorio 12.

Libro de Laboratorios  Lab-12 Use el comando “help” 106 .

Objetivo: Familiarizarse con el uso de la consola de Asterisk CLI y con los comandos arriba mencionados. “core show version”. Tiempo Máximo: 15 minutos. “uptime show”.2 Descripción: Ingresar a la consola de Asterisk y ejecutar los comandos “queue show”. Además entender la salida de dichos comandos y su utilidad. “features show”. “show codecs”.Libro de Laboratorios Lab-12 Diagnóstico Básico Laboratorio 12. Instrucciones:  Digitar el comando “queue show” – (Muestra el estatus de la cola especificada)  Digitar el comando “features show” la bs 107 .

Libro de Laboratorios  Lab-12 Digitar el comando “uptime show” – (Muestra la información de uptime en segundos) core show uptime  Digitar el comando “core show version” – (Muestra información de la versión)  Comando “show codecs” – (Muestra un listado de codecs) core show codecs labs  Comando “sip show registry” – (Enlista el estatus de registro SIP)  Para salir de Asterisk CLI únicamente escriba “Exit” 108 .

haga clic en "Crear Dominio / Create Domain".1 Descripción: Crear un dominio y cuentas para dos usuarios. admin y sales.  Ahora crearemos dos cuentas de usuario.Libro de Laboratorios Lab-13 Sistema de Email de Elastix Laboratorio 13. Ir a: Email → Accounts bs la 109 . Objetivo: Familiarizarse con el módulo Email de Elastix. Instrucciones:  Ingresamos en la opción Mail de nuestra central.  Para crear un nuevo dominio.com  Podemos crear todos los dominios que necesitemos. Tiempo Máximo: 15 minutos. Use el dominio: elastixtest.

 Establezca como opción de eliminación la siguiente: "Eliminar el spam anterior a una semana / Delete spam messages older than one week".Libro de Laboratorios   Lab-13 Primero debemos seleccionar el dominio. Hotmail o Yahoo que usted tenga para habilitación de envíos de mensaje a través de alguno de esos servicios. coloque un nivel de seguridad de 6 y seleccione "Capturar Spam / Capture Spam" como política. 110 . Remote SMTP  Active la opción "SMTP Remote Delivery" y seleccione una cuenta GMAIL. luego haga clic en "Crear una nueva cuenta / Create Account" Configuración de RELAY AntiSpam  Active el AntiSpam.  Usaremos esta funcionalidad para enviar un correo a través de la interfaz web de correo.

com labs 111 .Libro de Laboratorios Lab-13 RoundCube  Ingrese a la Interfaz Web de Mail con una de las cuentas que creó anteriormente (ej.: admin@elastixtest. ej.  para ingresar usted debe escribir el nombre completo de la cuenta.com  Si usted configuró un servicio SMTP Remoto de envío en Elastix podrá enviar mensajes desde la interfaz.com) y envíe un correo.  Haga clic en "Crear un nuevo mensaje" y envíe un correo con sus datos a training@palosanto.: sales@elastixtest.

com 112 .Libro de Laboratorios Lab-13 Vacations  Habilite el modo de vacaciones para el usuario admin@elastixtest.

Como usted puede ver. mail corporativo. ambos se encuentran en estado "Running and idle" a la espera de la llegada de algún Fax. gmail. coloque un email existente para recibir un Fax. enviar una fax a cada fax virtual y verificar en el visor de fax la recepción del mismo. (puede ser una cuenta personal. el servidor de Fax crea dos dispositivos: ttyIAX1 y ttyIAX2. l  Ingrese a la consola de Elastix como usuario root e ingrese al Asterisk CLI.1 Descripción: Crear la extensión IAX 300X y asociarla a un fax virtual. Objetivo: Familiarizarse con el módulo Fax de Elastix. Desde el Fax físico del laboratorio. Tiempo Máximo: 15 minutos. Instrucciones:  Cree las extensiones IAX 301X (301) y 302X (302). hotmail. usted obtendrá la siguiente pantalla: 113 .Libro de Laboratorios Lab-14 Sistema de Fax en Elastix Laboratorio 14. Una vez ahí escriba el comando "iax2 show peers". Una vez que haya creado las extensiones ir a:  Fax → Virtual Fax → New Virtual Fax  Cree el Fax virtual 301X y el Fax virtual 302X  En el campo "email asociado". etc)  Una vez creada la extensión tomará un par de minutos en inicializar.

Salga del CLI y de la consola. 114 .  Ahora configure el template para el correo de Fax saliente. Ir a:  Fax → Email Template  En el siguiente laboratorio enviaremos y recibiremos faxes. deben tener status OK.Libro de Laboratorios Lab-14   En este ejemplo nuestras extensiones de fax virtual son 301 y 302.

 Desde la consola.Libro de Laboratorios Lab-14 Sistema de Fax en Elastix Laboratorio 14.txt [root@elastix ~]# vim elxtest. El receptor será la extensión 302 (la cual es además el otro fax virtual).1.0. lo cual la convierte en uno de los paquetes de software open source disponibles. más poderosos del mercado. opcionalmente.0.  Si usted va a la interfaz de Elastix “Fax → Virtual Fax” usted verá el siguiente proceso: la bs  El dispositivo ttyIAX1 (301X) está enviando un fax y ttyIAX2 (302X) está recibiendo el fax.0.txt  Es importante indicar que la opción -h obliga a que los trabajos sean procesados a través de un host específico y. en este caso ttyIAX1@127. 115 . para PBXs basadas en Asterisk.1 -n -d 302 elxtest.2 Descripción: Enviar un fax utilizando el comando sendfax hacia uno de los faxes virtuales creados en el laboratorio anterior. Integra las mejoras herramientas disponibles. Posee además su propio set de utilidades y permite la creación de módulos adicionales. Objetivo: Familiarizarse con el comando sendfax Tiempo Máximo: 15 minutos.  Guardar y salir (Esc → :wq)  Enviaremos un fax a la extensión 302 desde la 301.txt  Escriba el siguiente contenido en el archivo: Elastix es una solución de telefonía VoIP y Comunicaciones Unificadas. en una sencilla interfaz de fácil administración. usando un modem en particular. escriba el comando sendfax de la siguiente manera: [root@elastix ~]# sendfax -h ttyIAX1@127. Instrucciones:  Primero crearemos un archivo llamado elxtest.0.

y la plantilla con la información indicada de correo.  Podemos observar un fax enviado desde la extensión 301 a 302X . Es importante notar que usted puede revisar un fax en la interfaz de Elastix o en su correo electrónico.  Abra el PDF adjunto.Libro de Laboratorios Lab-14  Una vez que el proceso concluye ir a Fax → Fax viewer y revise el nuevo fax. 116 . usted podrá observar el mismo archivo.  Si usted configuró los fax virtuales con correos válidos. Usted puede editar el "Nombre de Compañía" y "Fax de Compañía" para búsquedas futuras. usted debería ver un mensaje de correo de "Elastix Certification Course" con un PDF adjunto.302. usted debería ver algo similar a la siguiente imagen:  Vaya a Fax → Fax viewer nuevamente y abra el archivo recibido.

Incluya el siguiente texto: ElastixWorld is one of the most important events in IP telephony destined to gather the Elastix worldwide community.1. integrators and developers will have the opportunity to share experiences. resellers. ElastixWorld is the ideal place where end users. show new products and create business opportunities with the Elastix community around the world. Objetivo: Familiarizarse con la funcionalidad "Send Fax" Tiempo Máximo: 15 minutos. partners.Libro de Laboratorios Lab-14 Sistema de Fax en Elastix Laboratorio 14.3 (Práctica recomendada) Descripción: Envíe un fax desde la interfaz Elastix hacia una de los fax virtuales creados en el laboratorio 14. Instrucciones:  Ir a:  Fax → Virtual Fax → Send Fax  Envíe un fax desde el dispositivo 301 al número de fax 302. labs 117 .

usted debe ver 5 faxes:  Abra el último fax recibido y podrá ver el brochure del programa de resellers Elastix en formato de fax. Una vez que ha descargado el archivo vaya a: Fax → Virtual Fax → Send Fax  Envíe el fax desde 301 a (elastix_reseller_program_esp.  La razón se debe a que utilizamos un fax virtual creado en el sistema. Si todo salió bien. Usted recibirá además el fax en su correo. vaya a Fax → Fax viewer.  Como puede observar hay 3 faxes en lugar de dos. ahí observará un nuevo fax. Para este propósito utilizaremos un archivo PDF.Libro de Laboratorios Lab-14  Vaya a Fax → Fax viewer. El módulo guarda faxes que son enviados y recibidos a través de la interfaz. seleccione 118 "File Upload" y ubique el pdf .ec/partners  Descargue el Brochure correspondiente al programa de resellers. 302.pdf)  Espere unos minutos hasta que el fax haya sido enviado y recibido.  Ahora enviaremos un documentos adjunto. Vaya a http://elx. revíselo.

Libro de Laboratorios Anexo 1 Anexo 1 Pasos para la creación y configuración de una cuenta de Net2Phone 119 .

Libro de Laboratorios 1. 120 . Inmediatamente accedemos a un formulario que debe ser llenado con todos los datos de la persona que manejará la cuenta y el ingreso de fondos para tener crédito en la misma.com labs Hacemos click en “Regístrate”. Anexo 1 Creación de la cuenta Para ingresar al portal de net2phone podemos hacer click en el banner que se encuentra en la sección de descargas de Elastix. Incluimos una serie de Screenshots con el formulario para su revisión.org O a través del siguiente link: http://n2pelastix.

Libro de Laboratorios Anexo 1 Información del titular Información de monto 121 .

Este proceso toma tiempo hasta lograr establecer el número de teléfono deseado debido a que hay múltiples alternativas entre las cuales está el país.Libro de Laboratorios Anexo 1 Información de cuenta de crédito Información de número de teléfono virtual Nota importante: Es recomendable escoger el número virtual. el cual se hace en “Información de número de teléfono virtual” (ver gráfico anterior) antes de proceder con el llenado de cualquier otra información. el estado y la ciudad. ya que en el proceso de escoger este número de teléfono se borran campos que hemos ingresado. Ver imagen siguiente. 122 .

hacemos click en “envia el siguiente” y la cuenta se creará. Obtenemos la siguiente pantalla con información de la cuenta: bs 123 .Libro de Laboratorios Anexo 1 Una vez que completamos todo el llenado de la información de toda la información obligatoria.

Libro de Laboratorios Anexo 1 La cuenta genera la siguiente información importante (ver gráfico anterior):    Su número de Cuenta Su PIN Su número de teléfono 124 .

crear la base de datos y el usuario de dicha base de datos. labs 1 .Libro de Laboratorios Lab-15 Mensajería Instantánea en Elastix Laboratorio 15.1 Descripción: Instalación de Openfire con una base de datos Mysql. Instrucciones:  Ingresamos a la consola de Elastix como usuario root  Ir al directorio cd  /opt/openfire/resources/database Una vez en el directorio ejecutar el siguiente comando para crear la base de datos openfire mysqladmin create openfire -p  La clave de root de mysql la ingresamos durante la instalación de Elastix. Para este caso es “palosanto”  Revisaremos si la base de datos fue creada correctamente. Objetivo: Instalar Openfire con una base de datos Mysql. Ejecute el siguiente comando: mysql -u root –p Password: palosanto  Una vez en la base de datos utilice: show databases. Tiempo Máximo: 15 minutos.

* TO 'openfire'@'localhost'  En la sentencia anterior creamos el usuario “openfire” con el password “openfire”. Luego digite: GRANT ALL PRIVILEGES ON IDENTIFIED BY 'openfire'.sql |mysql openfire –p  Crear el usuario Openfire con todos los privilegios para ejecutar las sentencias SQL en la base de datos Openfire.  Ingresar a mysql con el siguiente comando: mysql -u root –p Password: palosanto   Una vez en la base de datos digite: use openfire. Activar OpenFire.Libro de Laboratorios  Lab-15 Crear la estructura de la base de datos con el siguiente comando: cat openfire_mysql.  Ir a la interface de Elastix y hacer click en la pestaña “IM”. labs 2 . openfire.

 El tipo de base de datos es “MySQL”. coloquemos el mismo dominio que nuestra Elastix.jdbc.  La clase de Driver se coloca por defecto y es: com. tendremos que indicar la información correspondiente.Libro de Laboratorios Lab-15  Configuramos el lenguaje  Especificamos el dominio del sistema. En este caso seleccionaremos la opción Conexión Estándard labs  Una vez que seleccionamos una base de datos externa.mysql.Driver 3 .  Seleccionamos la base de datos a utilizar.

Libro de Laboratorios Lab-15  La URL de la base de datos es coloca por defecto el siguiente valor: jdbc:mysql://[hostname]:3306/[database-name]  Reemplazamos [host-name] por “localhost” y [database-name] por “openfire” de tal manera que tengamos: jdbc:mysql://localhost:3306/openfire  Con esto indicamos que la base de datos está ubicada en el localhost y se denomina openfire. 4 .  labs Colocamos el correo y la contraseña de la cuenta admin. colocamos “Por defecto”.  El usuario es: openfire y la contraseña: openfire Ahora seleccionamos el sistema de usuarios.

Libro de Laboratorios  Lab-15 Una vez que completamos la configuración podemos ingresar a la interfaz de administración. labs 5 .

la bs Hacemos clic en el menú “Asterisk-IM” para iniciar la configuración 6 . veremos un menú nuevo llamado “Asterisk-IM”.2 Descripción: Integración de Openfire con Elastix.se instaló correctamente.  Si el plugin “Asterisk-IM”.  Hacemos clic en el signo “+” junto a la aplicación. instalaremos: Asterisk-IM Openfire Plugin. En la interfaz de Openfire ir al menú Plugins  Observamos un listado de plugins disponibles.Libro de Laboratorios Lab-15 Mensajería Instantánea en Elastix Laboratorio 15. Tiempo Máximo: 15 minutos. Instrucciones:  Una vez que ingresamos a la interfaz de administración podemos crear cuentas para usuarios e instalar plugins. Objetivo: Integrar Asterisk con Openfire.  Instalaremos el plugin “Asterisk-IM”.

Una vez hecho esto hacemos clic en save.  Habilitaremos también la opción “Asterisk Queue Presence” y deshabilitamos la opción: “Drop-down device selection”  Inmediatamente observaremos la opción “Add Server”. hacemos clic para configurar la funcionalidad “Phone Server”.0.1 Port: 5038 Username: admin Password: contraseña_de_AMI 7 .0. labs  Hacemos clic en Add Server y obtendremos los siguientes campos: • • • • • Server Name: elastix_domain (el host del servidor elastix) Server Address: 127.Libro de Laboratorios Lab-15  Seleccionamos la opción “Enabled” y colocamos “default” en el campo “Asterisk Context”.

 Hacemos clic en “Crear Nuevo Usuario” labs 8 . Sino queremos estar seguros del host que tiene nuestro Elastix ejecute “hostname” en la consola. Creación de usuarios y mapeo  Para crear usuarios. es la misma que configuramos durante la instalación de Elastix. (En este ejemplo es test.org) Nota: el hostname es vital para casos que necesiten resolución por DNS  Observaremos enlistado el servidor si la configuración fue exitosa.elastix.Libro de Laboratorios  Lab-15 La contraseña que utilizaremos. debemos ir al menú “usuarios/grupos”.

añadiremos el mapeo para jdoe:  Configuramos los campos de la siguiente manera: • • • • •  Username: jdoe Device: SIP/200 Extension: 200 Caller ID: 200 Primary: check Hacemos clic en add y se añadirá el mapeo para ese usuario. los campos requeridos obligatorios son el usuario y la contraseña.  Para mapear las extensiones debemos ir a: OpenFire → Asterisk-IM → Phone Mappings  Una vez en Phone Mappings. 201 y 202.Libro de Laboratorios Lab-15  Como podemos observar. Tenemos creadas la extensión 200.  Mapearemos a jdoe con la extensión 200 y a ggalilei con la extensión 202.  Crearemos otro usuario con el nombre Galileo Galilei y el user: ggalilei  Ahora es necesario mapear los usuarios creados con extensiones disponibles en nuestra Elastix. labs  Hacemos lo mismo con ggalilei. 9 .

Objetivo: Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de la mensajería Instantánea con Elastix. lo mas común es que pidan la siguiente información: labs Usuario: user@elastix_domain (elastix_domain = host de Elastix) Servidor Jabber / XMPP: IP de Elastix Password: Contraseña  Una vez que ingresamos con ambas cuentas.  En la siguiente imagen podemos observar que ggalilei tiene abierta una ventana de mensajes.  El otro cliente puede ser cualquiera de los siguientes: Pidgin (windows.Libro de Laboratorios Lab-15 Mensajería Instantánea en Elastix Laboratorio 15. para probar la funcionalidad de integración de Openfire con Asterisk.  Para ingresar al spark ingresamos los siguientes datos:  En el caso de otro cliente IM. y tiene el ícono de un teléfono.3 (Práctica recomendada) Descripción: Instalar dos clientes de mensajería instantánea. mac. ya que tiene un plugin denominado “SIP Softphone” que nos permitirá hacer el marcado.  Uno de ellos debe ser Spark. source).  Haremos login con ggalilei en spark y con jdoe desde cualquier cliente IM. Tiempo Máximo: 15 minutos. podemos iniciar el chat. 10 . iChat (mac). Cualquier cliente que permita crear una cuenta jabber/XMPP. uno de ellos “Spark”. Instrucciones:  Para probar la funcionalidad de llamada podemos hacer login desde dos clientes de mensajería instantánea. ubuntu.

labs  Una vez que ggalilei contesta la llamada. hace “clic to call”. pero no llama a la extensión de destino a menos que la extensión que generó el pedido haya aceptado un invite. es decir que se ponga al teléfono. ¿Por qué.  ¿Tiene su lógica no? Una llamada solo se generará si y solo si nosotros realmente estamos en la línea. caso contrario no. en este ejemplo la extensión 200 de jdoe. si marcamos a jdoe?  Esto funciona así por una razón sencilla el plugin Asterisk-IM. Elastix/Asterisk llama a la extensión de destino.  La razón es que Asterisk conecta ambas extensiones con una llamada. 11 .Libro de Laboratorios Lab-15 Clic to call  En la siguiente imagen podemos observar como se inicia la llamada al hacer clic en el ícono de teléfono. el servidor Elastix/Asterisk llama a la extensión que generó la llamada primero.  La primera llamada es a la extensión 202 de ggalilei. en este caso la extensión 202 de ggalilei.  Cuando uno activa esta funcionalidad. como en el caso de la imagen.

Para cambiar la configuración de Elastix debemos ingresar a la interfaz web de Elastix como Administradores. Se selecciona la opción editar y podemos cambiar la contraseña del usuario admin. Instrucciones: Cambiar la contraseña del administrador en Elastix 1. Habilitar y cambiar la contraseña de freePBX 1. 2. 2. Objetivo: Cambiar las contraseñas de Elastix para asegurar nuestro servidor Tiempo Máximo: 15 minutos. Seleccionamos el usuario admin 4. Para cambiar la contraseña de freePBX nos dirigirnos al módulo de Seguridad de Elastix. Habilitaremos el acceso a freePBX como se muestra a continuación y cambiaremos su password labs 12 . Luego seleccionaremos Advanced Settings 3.1 Descripción: En este laboratorio aprenderemos a cambiar las claves de las principales aplicaciones de Elastix. Luego ir a System → Users Management 3.Libro de Laboratorios Lab-18 Seguridad Laboratorio 18.

Ingresamos la clave que configuramos al momento de instalar Elastix. la ingresamos y presionamos enter. Desde la línea de comando de Linux escribimos: mysqladmin -u root -pClaveActual password 'ClaveNueva' 2. Una vez que hemos ingresado escribimos el comando: passwd 3. volvemos a ingresarla y presionamos enter: labs Cambiar contraseña del usuario root de mysql 1. Inmediatamente nos solicitará una confirmación de la nueva contraseña. Para cambiar la contraseña ingresamos a Elastix como usuario root 2. Nos dirigiremos a PBX → PBX Configuration → freePBX sin embeber 6. Iniciaremos sesión con el nuevo password 7. Ej: Si la clave actual es palosanto y queremos cambiarla a worldelastixnow la sentencia debe ser: 13 . Cambiar contraseña del usuario root de Linux 1. Hacemos clic en “Guardar” 5. 4. Deshabilitaremos el acceso a freePBX sin embeber en el apartado de Advanced Settings dentro del módulo de seguridad. Al hacer esto. el equipo nos solicitará la contraseña nueva.Libro de Laboratorios Lab-18 4.

Podemos probar la nueva contraseña ingresando a mysql con el siguiente comando: mysql -u root –p Salimos con exit Cambiar la contraseña de Flash Operator Panel 1.Libro de Laboratorios Lab-18 mysqladmin -u root -ppalosanto password 'worldelastixnow' 3. Abrir el archivo /etc/amportal.conf 2. como se muestra a labs continuación: FOPPASSWORD=nuevaclave 4. Hacemos clic en enter y si todo salió bien obtendremos únicamente una nueva línea. Cambiar la clave remplazando la cadena de texto luego del signo "=" . Buscar la línea FOPPASSWORD= 3.conf vim /etc/amportal. 4. Grabar y Salir (Esc → :wq) 14 .

Objetivo: Aprender a cerrar todos los puertos menos los estrictamente necesarios para el funcionamiento de nuestra Central Tiempo Máximo: 10 minutos. labs 15 .Libro de Laboratorios Lab-18 Seguridad Laboratorio 18. Activar el firewall presionando el botón "Activar Cortafuegos" tal como se muestra a continuación. Ingresar a la sección de Firewall dentro del módulo de seguridad de Elastix. Se asume para esta práctica que solo se tiene 1 interfaz de red y que esta se llama eth0. Instrucciones: 1.2 Descripción: Asegurar Elastix utilizando el Firewall en el mismo servidor con el módulo de seguridad de Elastix. 2.

Lab-18 Realizar un escaneo local de puertos utilizando el comando "nmap -v -A localhost" labs 16 .Libro de Laboratorios 3.

grabamos la configuración con el siguiente comando: iptables-save > /etc/sysconfig/iptables 17 . Instrucciones:  Ingresamos a la consola de Elastix como usuario root. Se asume para esta práctica que solo se tiene 1 interfaz de red y que esta se llama eth0. Una vez en la consola ejecutamos las siguientes líneas: Nota: podemos ver nuestro progreso con: iptables -L Aceptar el tráfico para el protocolo SIP iptables -A INPUT -p udp -m udp -i eth0 --dport 5060 -j ACCEPT Aceptar el tráfico para el protocolo RTP iptables -A INPUT -p udp -m udp -i eth0 --dport 10000:20000 -j ACCEPT Aceptar el tráfico para el protocolo IAX iptables -A INPUT -p udp -m udp -i eth0 --dport 4569 -j ACCEPT Aceptar el tráfico de HTTPS iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT Aceptar el tráfico de SMTP iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT Aceptar el tráfico de POP3 iptables -A INPUT -p tcp -i eth0 --dport 110 -j ACCEPT Aceptar el tráfico de IMAP iptables -A INPUT -p tcp -i eth0 --dport 143 -j ACCEPT Aceptar el tráfico de mensajería Instantánea iptables -A INPUT -p tcp -i eth0 --dport 9090 -j ACCEPT labs Denegar todo el otro tráfico restante iptables -A INPUT -p all -i eth0 -j DROP Una vez que hemos ingresado todas las líneas.3 (Práctica recomendada) Descripción: Asegurar Elastix utilizando el Firewall en el mismo servidor utilizando iptables por línea de comando. Objetivo: Aprender a cerrar todos los puertos menos los estrictamente necesarios para el funcionamiento de nuestra Central Tiempo Máximo: 20 minutos.Libro de Laboratorios Lab-18 Seguridad Laboratorio 18.

4. Hacer click en el link "Cambiar Clave" que aparecerá a continuación de nuestra extensión comprometida.4 (Práctica recomendada) Descripción: Utilizar el módulo de Seguridad de Elastix para detectar claves débiles en el sistema. Crear una nueva extensión SIP con la contraseña "1234" 2.Libro de Laboratorios Lab-18 Seguridad Laboratorio 18. 1. Cambiar la clave y guardar labs 18 . En la interfaz de Elastix ir a: Security → Weak Keys 3. Tiempo Máximo: 5 minutos. Objetivo: Aprender a utilizar la utilidad Weak Keys para evitar ataques de fuerza bruta a nuestras extensiones.

Tiempo Máximo: 30 minutos.conf la siguiente información: [sipp_test] type=friend context=sipp_context host=dynamic port=6000 user=sipp canreinvite=no disallow=all allow=ulaw  Para editar el archivo digite: vim /etc/asterisk/sip_custom.conf labs  Grabar y Salir (Esc → :wq)  Creamos una extensión adicionando un contexto para hacer nuestra prueba  Editar el archivo /etc/asterisk/extensions_custom.1 Descripción: Utilizar el programa Sipp para generar tráfico llamadas. definimos un peer sip.Libro de Laboratorios Lab-17 Desempeño Laboratorio 17. vim extensions_custom. Instrucciones:  Ingresamos a la consola de Elastix como usuario root  Instalamos el programa sipp ejecutando el siguiente comando: yum install sipp  Una vez que hemos instalado sipp. simulando el desempeño de nuestro Elastix en un ambiente de producción. Objetivo: Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de Sipp.conf 19 .conf. Añadimos en el archivo /etc/asterisk/sip_custom.

activaremos las llamadas SIP anónimas en Elastix.  Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”  Antes de iniciar las pruebas de estrés con sipp. Sipp se encargará de hacer tantas llamadas por segundo se requieran a este contexto.n. En la interfaz web de Elastix ir a Security → Advanced Settings.  De la misma manera vamos a PBX → PBX Configuration → Configuración General y activamos la opción: “Allow Anonymous Inbound SIP Calls?” 20 .Hangup  Grabar y Salir (Esc → :wq)  Como podemos observar el contexto funciona cuando se marca a la extensión 2222. esta contestará tocará un Music on Hold y colgará.n.1.Libro de Laboratorios Lab-17  Agregar las siguientes líneas al archivo [from-internal-custom] include => sipp_context [sipp_context] exten => 2222.Answer exten => 2222.MusicOnHold(default) exten => 2222.  Una vez ahí encenderemos “Activar llamadas SIP anónimas”. labs  No es necesario hacer clic en “Guardar”.

elastix) cuando la generación de llamadas se realiza desde un servidor remoto. en ambos casos con un rate de 10 llamadas por segundo. Ejecutando Sipp  Una vez que hemos completado la configuración inicial estamos listos para ejecutar sipp y generar llamadas a nuestro servidor.  El listado siguiente corresponde a una descripción de los parámetros del comando anterior – – – – – – –  d: duración de llamada (en milisegundos) s: extensión a marcar i: IP que ejecuta la orden de simulación de llamadas p: puerto e IP del servidor Elastix donde se quieren hacer las pruebas de stress r: rate.elastix –r 10 -l 10  En este comando se debe incluir la IP del servidor Elastix (ip.Libro de Laboratorios Lab-17  Seleccionamos la opción “Yes” y hacemos clic en “Submit Changes”.0.0. ya que no conocemos la capacidad de nuestro servidor.0. Realizaremos una prueba con un limite máximo de 10 llamadas concurrentes y luego una con un límite máximo de 80 llamadas concurrentes. desde tres consolas (el programa putty permite esta funcionalidad). llamadas por segundo l: limite máximo de llamadas concurrentes users: usuarios (llamadas) concurrentes (en este ejemplo no usamos esta variación) Como podemos observar el comando tiene configuradas 10 llamadas por segundo con un límite máximo de 10 llamadas.1.0. Si la prueba es en el mismo servidor debemos colocar: 127.  Ejecutamos el siguiente comando en donde el último parámetro indica el número de llamadas a generar: sipp -sn uac -d 2000000 -s 2222 -i 127.  Para esta prueba es necesario que iniciemos sesión en la consola de Elastix. labs  Es recomendable realizar inicialmente las pruebas con un valor bajo de llamadas por segundo. Para este laboratorio la prueba la realizaremos en el mismo servidor.1 -p 6000 ip.  En cada consola ejecutaremos un comando: 21 .  Después aplicamos los cambios. En todas las ventanas ingresaremos como usuario root.

 La aplicación Sipp es una herramienta que genera llamadas sipp simuladas en o hacia un servidor. como vemos en el siguiente imagen: labs  Paramos la ejecución de sipp con ctrl-c. En la consola superior izquierda el comando Top y en la consola inferior izquierda Asterisk CLI.0.  Una vez que tenemos todo listo. ejecutemos sipp: sipp -sn uac -d 2000000 -s 2222 -i 127. y obtenemos un reporte: 22 . Cuando se ejecuta. sipp continúa tomando datos estadísticos.1 -p 6000 127. genera un número de llamadas por segundo hasta alcanzar el máximo de llamadas concurrentes.0.  Una vez alcanzadas.1 –r 10 -l 10  Veremos la siguiente salida:  En la consola de la derecha se está ejecutando sipp.0.Libro de Laboratorios Lab-17 Consola 1: comando sipp Consola 2: comando top Consola 3: Asterisk CLI: asterisk –r  Es recomendable que iniciemos top y el CLI antes de ejecutar el comando sipp. La ejecución de sipp sin embargo consume un alto procesamiento al servidor.0.

 Una vez que hemos parado sipp.Libro de Laboratorios Lab-17  En realidad ya no necesitamos que sipp siga ejecutándose. Estos datos pueden variar de acuerdo a la variación de su servidor. en la imagen anterior. por lo cual ejecutaremos dos comandos en las consolas de la izquierda para observar nuevos datos: Consola superior: top -p $(pidof asterisk) Consola inferior: watch -n1 "rasterisk -x 'core show channels' | tail -n4"  En la consola superior hemos discriminado los valores para observar únicamente el valor porcentual de Asterisk (que es lo que nos interesa en este laboratorio).  Mientras leemos este tutorial. 23 . con 10 llamadas concurrentes. las llamadas continúan en curso. Asterisk consume un aproximado de 12. ya que las llamadas se generaron y tienen una duración para que podamos observar los resultados.  Como podemos observar.9% del CPU. labs  En la consola inferior podemos ver el número de llamadas y canales en curso mientras revisamos nuestros datos. observaremos que procesos están consumiendo mas procesamiento.

el consumo de recursos. fue mayor con 40 llamadas concurrentes.1 -p 6000 127.  Ahora realizaremos la prueba con 40 llamadas concurrentes.2 realizaremos una prueba para tomar muchos valores de uso de procesamiento de tal manera que podamos hacer un promedio para ese número de llamadas concurrentes.0. las llamadas continúan en curso.1 -users 40 Consola Superior Izquierda: top -p $(pidof asterisk) Consola Inferior Izquierda. que Asterisk no está generando procesamiento y no hay llamadas activas al momento.  Aunque ya paramos Sipp.0.Libro de Laboratorios Lab-17  Como esperábamos las llamadas concurrentes son 10.0.  En el laboratorio 17. Ejecute: Consola derecha: sipp -sn uac -d 2000000 -s 2222 -i 127. 24 . por parte de Asterisk.0.  Consumo % de Asterisk la bs  Canales y llamadas activas  Como era de esperar. controlaremos el número de canales: watch -n1 "rasterisk -x 'core show channels' | tail -n4"  Recuerde ejecutar los comandos en las consolas de la izquierda primero y sipp después. Para pararlas ejecute el siguiente comando desde cualquiera de las tres consolas: service asterisk restart  Al ejecutar este comando observaremos en las consolas de la izquierda.

con Openfire y el módulo de call center desactivados. labs 25 .Libro de Laboratorios  Lab-17 Es importante indicar que los valores para cada servidor varían. De esa manera no tenemos procesos que interfieran en nuestra revisión. Es recomendable hacer la prueba sin tarjetas de telefonía instaladas.

i<15. 26 . Sin embargo estos valores difieren durante la prueba y no son necesariamente constantes.%cpu -C asterisk > USAGE.  Una forma útil para obtener un valor promedio. que tome “15” muestras cada dos segundos.vsize.  Para este efecto crearemos un Script que registre estos valores en un archivo de texto.txt sleep 2 done labs  Grabar y Salir (Esc → :wq)  Como pudimos observar el archivo fue creado en el directorio /opt.Libro de Laboratorios Lab-17 Desempeño Laboratorio 17. El script está escrito para que al ejecutarlo se genere un archivo de texto con nombre USAGE. es el de registrar un número X de valores en un tiempo determinado.txt sleep 2 for (( i=1.txt.%mem.2 (Práctica recomendada) Descripción: Utilizar un script para registrar los datos generados en las pruebas de estrés. Objetivo: Usar una herramienta que nos permita determinar valores estadísticos para calcular datos de procesamiento vs número de llamadas concurrentes. Tiempo Máximo: 20 minutos.  Creamos el archivo: vim /opt/getUSAGE  Al ingresar al editor de texto escribimos el siguiente script: ps -o rss. i++ )) do ps -o rss= -o vsize= -o %mem= -o %cpu= -C asterisk >> USAGE. con diferentes valores de llamadas simultáneas. Instrucciones:  En el laboratorio anterior pudimos observar que en una prueba de estrés vemos los valores momentáneos de % de uso de CPU.

1 -p 6000 127. esto permitirá al sistema estabilizarse con esas llamadas. podemos iniciar la toma de las muestras. controlaremos el número de canales: watch -n1 "rasterisk -x 'core show channels' | tail -n4" Consola inferior Izquierda: ./getUSAGE  Canales y llamadas activas labs  Al ejecutar .  Al igual que hiciéramos en el laboratorio anterior. utilizaremos tres consolas para realizar la prueba. Consola derecha: sipp -sn uac -d 2000000 -s 2222 -i 127. Hacemos esto ya que le generación de estadísticas de sipp carga mucho procesamiento./getUSAGE el script demorará alrededor de 30 segundos mientras toma los datos de procesamiento y memoria. Para correr el script (getUSAGE) es necesario estar ubicados en el directorio /opt El script se ejecuta con el siguiente comando: ./getUSAGE Una vez que iniciemos sipp esperaremos hasta que se hayan generado el total de llamadas concurrentes y saldremos con ctrl-c.0.0.0.Libro de Laboratorios  Lab-17 Ahora cambiaremos los permisos del archive getUSAGE con el siguiente comando: chmod +x /opt/getUSAGE  Una vez que creamos el script y hemos cambiado sus permisos.  Es importante indicar los siguiente: Correremos el script (getUSAGE) después de 2-3 minutos de haber iniciado las llamadas con sipp. 27 .1 -users 10 Consola superior Izquierda.0. Toma de datos  Realizaremos una prueba de estrés con 10 llamadas concurrentes usando sipp y registraremos la información con el script getUSAGE.

 Es ideal hacer esta misma prueba con valores de 20. 30./getUSAGE sobre escribe el archivo USAGE.txt labs 28 . por lo cual si lo queremos tener guardado como referencia debemos hacer un backup con otro nombre e. 80.g. 50. USAGE10.  Es importante indicar que el script . 40. 90 y 100 llamadas concurrentes (a un rate de 10 llamadas por segundo).txt. tenemos varios valores de procesamiento para esta prueba (10 llamadas concurrentes).Libro de Laboratorios Lab-17  Una vez que el script haya culminado podemos ingresar al archivo txt generado de la siguiente manera:  Al ingresar al archivo podemos observar los siguientes valores:  Como podemos observar. Con esto podemos sacar un promedio de procesamiento % con 10 llamadas concurrentes. De esta manera podemos establecer una curva que nos ayude a pronosticar el rendimiento de nuestro servidor. 70.

Lab-19 Libro de Laboratorios Depuración Avanzada Laboratorio 19.1 Descripción: Utilizar el comando strace en un programa básico y ver la salida cuando se produce un error en la ejecución Objetivo: Familiarizarse con el comando strace y aplicarlo para hacer debugging.txt .(a/b)).h> #include<math.divideXXX. &a). printf("Resultado: %d \n". En el segundo número ingresar 0: 29 .txt: [root@elastix opt]# strace -o salida-divide. Tiempo Máximo: 10 minutos Instrucciones:  Crear el archivo divide. scanf("%d".c en el directorio /opt con el siguiente contenido [root@elastix opt]# vim divide. printf("Introduce el primer numero\n"). }  Compilar el archivo divide. return 0.c con la opción -g para debugging: [root@elastix opt]# gcc -g divide.c -o divide  Ejecutar el comando strace con la opción -o para enviar la salida al archivo salida. printf("Introduce el segundo numero\n")./divide la bs  Se ejecutará el programa y pedirá dos números para dividir. int b. &b).h> int main(void) { int a.c #include<stdio. scanf("%d".

txt  Al revisar el archivo veremos una línea como sigue: --.Lab-19 Libro de Laboratorios  Revisar el archivo salida-divide.txt como sigue: [root@elastix opt]# vim salida-divide. labs 30 .SIGFPE (Floating point exception) @ 0 (0) --+++ killed by SIGFPE +++  NOTA: SIGFPE es una señal enviada a un proceso ó programa cuando se realiza una operación errónea de punto flotante.

53.0.0. BREAK. Objetivo: Familiarizarse con el comando gdb y aplicarlo para hacer debugging.el5.4 M Is this ok [y/N]: y Downloading Packages: gdb-7.Lab-19 Libro de Laboratorios Debugging Avanzado Laboratorio 22.1-42.adams.easynews.128.128.i386 0:7.1-42. PRINT.53. Tiempo Máximo: 15 minutos Instrucciones:  Instalar el paquete gdb-7.1-42.org * extras: mirror.128.13 * elastix-updates: 66.rpm utilizando el comando yum: [root@elastix opt]# yum install gdb Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.centos Complete! labs 31 00:02 gdb .ubiquityservers.el5.128.osuosl.13 * elastix-extras: 66.i386.2 Descripción: Utilizar el comando gdb en un programa básico y ejecutar los comandos RUN.0.i386.4 MB : Installed: gdb.13 * epel: ftp.rpm Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing 1/1 | 2. STEP.el5.net * commercial-addons: 66.53.centos.com Transaction Summary ============================================================================== Install 1 Package(s) Upgrade 0 Package(s) Total download size: 2.com * updates: mirrors.53.centos.13 * elastix-base: 66. QUIT.

return 0. }  Compilarlo con la opción -g para debugging: [root@elastix opt]# gcc -g imprime. scanf("%d". como sigue: [root@elastix opt]# gdb -q imprime Using host libthread_db library "/lib/libthread_db.c #include<stdio. printf("Ingrese el primer numero\n"). printf("Ingrese el segundo numero\n").b.Lab-19 Libro de Laboratorios  Crear el archivo imprime. (gdb) labs 32 . c=a+b.c).c -o imprime  Ejecutar el comando gdb con la opción -q para el programa imprime.h> int main(void) { int a. &b). scanf("%d".a.c en el directorio /opt [root@elastix opt]# vim imprime. &a).so. int c.1".h> #include<math. printf("La suma de %d y %d es %d \n". int b.

(gdb) break imprime. 4 and 5 also set at pc 0x8048415. Breakpoint 3 at 0x8048415: file imprime. line 3. 5 and 6 also set at pc 0x8048415. 2. (gdb)  Ejecutamos el comando RUN. 4.Lab-19 Libro de Laboratorios  En el prompt de gdb. line 7. como sigue: Reading symbols from /opt/imprime.c.c:1 Breakpoint 1 at 0x8048415: file imprime. 3 and 4 also set at pc 0x8048415. main () at imprime.c:9 9  printf("Ingrese el primer numero\n"). Breakpoint 2 at 0x8048415: file imprime. 2.done.c:5 Note: breakpoints 1.c. line 2. crear los “breaks” para el programa imprime. (gdb) break imprime. (gdb) break imprime. line 6.c:7 Note: breakpoints 1.. Breakpoint 6 at 0x8048415: file imprime. labs (gdb) step 33 . como sigue: (gdb) run Starting program: /opt/imprime Breakpoint 1.c:4 Note: breakpoints 1. (gdb) break imprime..c.c:9 9 printf("Ingrese el primer numero\n").c. Breakpoint 7 at 0x8048415: file imprime.c:2 Note: breakpoint 1 also set at pc 0x8048415. 2 and 3 also set at pc 0x8048415. Vamos avanzando línea por línea con el comando step. 2. Breakpoint 5 at 0x8048415: file imprime.c:3 Note: breakpoints 1 and 2 also set at pc 0x8048415.c.c. como sigue: -Breakpoint 1. Breakpoint 4 at 0x8048415: file imprime. line 4. (gdb) break imprime. line 1. line 5. (gdb) break imprime. 3. 3.c:6 Note: breakpoints 1. main () at imprime. (gdb) break imprime.c.

c). Inferior 3 [process 13906] will be killed. (gdb) print a $1 = 8 (gdb) step Ingrese el segundo numero 12 scanf("%d". (gdb) step La suma de 8 y 4 es 12 15 return 0. para imprimir el valor de la variable “a”: Ingrese el primer numero 10 scanf("%d".Lab-19 Libro de Laboratorios  Ingresamos un valor y ejecutamos el comando “print a” . Quit anyway? (y or n) y labs 34 . &b). (gdb) step 8 11 printf("Ingrese el segundo numero\n"). (gdb) step 14 printf("La suma de %d y %d es %d \n". como sigue: (gdb) quit A debugging session is active. (gdb) step 4 13 c=a+b. &a).  Para salir ejecutamos el comando “quit”. (gdb) print a $1 = 8  Seguimos la ejecución del programa con el comando “step” hasta terminarlo: (gdb) step 8 11 printf("Ingrese el segundo numero\n").a.b.

Instrucciones:  Agruparse en pareja para implementar DUNDI con su compañero. Tiempo Máximo: 20 minutos.  En el primer servidor 1 dirigirse al submenú "Password Connection" ubicado a la izquerda.Libro de Laboratorios Lab-20 DUNDi Laboratorio 20. labs 35 .  En ambos servidores. dirigirse a PBX → Distributed DialPlan y completar el formulario inicial. Ir al menú Addons  Una vez que hemos instalado el addon. Objetivo: Utilizar el addon de plan de marcado distribuido para la utilización de DUNDi.  Instalar el addon de marcado distribuido en ambos servidores Elastix.1 Descripción: Implementar DUNDi mediante el addon de marcado distribuido entre dos servidores Elastix y hacer una prueba de llamada desde las extensiones de uno de los servidores. dirigirse a PBX → Distributed DialPlan y completar el formulario de “Información General”.

Hacer clic en el enlace "Petición de Conexión". En cualquiera de los dos casos la información que se encuentra en el campo clave.  Presionar el botón "Petición"  Nuevamente en el servidor 1. dirigirse a "Peers Information" donde figurará la nueva petición de conexión.Libro de Laboratorios Lab-20  Copiamos la clave generada o podemos enviarla por correo incluyendo una dirección en el campo “Email” y haciendo clic en enviar. labs  Presionar el botón "Aceptar" 36 .  En el servidor 2 dirigirse a "Peers Information" y seleccionar "Nueva Conexión"  Completar el formulario con la dirección IP de el servidor 1 y el certificado / password generado. es el certificado que tendremos que usar.

 Desde la extensión 200 del servidor 1.  Una vez finalizado el proceso obtendremos el siguiente resultado.Libro de Laboratorios Lab-20  En el servidor 2. marque a la extensión 400.  En el servidor 2. y podremos realizar llamadas entre las dos centrales. Registre esta extensión en el teléfono IP o en un softphone. labs 37 . cree la extensión 400. dirigirse nuevamente a "Peers Information". donde figurará la nueva conexión y presionar el enlace "Conectar"  Repetir el paso anterior en el servidor 1. Si todo fue configurado correctamente debería conectar una llamada.