elastix lab uece-book-esp

38

Upload: enriquetcamposorg

Post on 15-Apr-2017

55 views

Category:

Technology


0 download

TRANSCRIPT

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Mensajería Instantánea en Elastix Laboratorio 15.1 Descripción: Instalación de Openfire con una base de datos Mysql. Objetivo: Instalar Openfire con una base de datos Mysql, crear la base de datos y el usuario de dicha base de datos. Tiempo Máximo: 15 minutos. 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. Ejecute el siguiente comando:

mysql -u root –p Password: palosanto

Una vez en la base de datos utilice: show databases;

1

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Crear la estructura de la base de datos con el siguiente comando:

cat openfire_mysql.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;

Luego digite:

GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost' IDENTIFIED BY 'openfire';

En la sentencia anterior creamos el usuario “openfire” con el password “openfire”. Ir a la interface de Elastix y hacer click en la pestaña “IM”. Activar OpenFire.

2

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Configuramos el lenguaje

Especificamos el dominio del sistema, coloquemos el mismo dominio que nuestra Elastix.

Seleccionamos la base de datos a utilizar. En este caso seleccionaremos la opción Conexión

Estándard

Una vez que seleccionamos una base de datos externa, tendremos que indicar la información

correspondiente. El tipo de base de datos es “MySQL”. La clase de Driver se coloca por defecto y es: com.mysql.jdbc.Driver

3

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

La URL de la base de datos es coloca por defecto el siguiente valor: jdbc:mysql://[host-name]: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. El usuario es: openfire y la contraseña: openfire

Ahora seleccionamos el sistema de usuarios, colocamos “Por defecto”.

Colocamos el correo y la contraseña de la cuenta admin.

4

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Una vez que completamos la configuración podemos ingresar a la interfaz de administración.

5

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Mensajería Instantánea en Elastix Laboratorio 15.2 Descripción: Integración de Openfire con Elastix. Objetivo: Integrar Asterisk con Openfire. Tiempo Máximo: 15 minutos. Instrucciones: Una vez que ingresamos a la interfaz de administración podemos crear cuentas para usuarios e

instalar plugins. Instalaremos el plugin “Asterisk-IM”. En la interfaz de Openfire ir al menú Plugins

Observamos un listado de plugins disponibles, instalaremos: Asterisk-IM Openfire Plugin. Hacemos clic en el signo “+” junto a la aplicación.

Si el plugin “Asterisk-IM”.se instaló correctamente, veremos un menú nuevo llamado “Asterisk-IM”.

Hacemos clic en el menú “Asterisk-IM” para iniciar la configuración

6

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Seleccionamos la opción “Enabled” y colocamos “default” en el campo “Asterisk Context”. 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”.

Hacemos clic en Add Server y obtendremos los siguientes campos:

• Server Name: elastix_domain (el host del servidor elastix) • Server Address: 127.0.0.1 • Port: 5038 • Username: admin • Password: contraseña_de_AMI

7

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

La contraseña que utilizaremos, es la misma que configuramos durante la instalación de Elastix. Sino queremos estar seguros del host que tiene nuestro Elastix ejecute “hostname” en la consola.

(En este ejemplo es test.elastix.org) Nota: el hostname es vital para casos que necesiten resolución por DNS

Observaremos enlistado el servidor si la configuración fue exitosa.

Creación de usuarios y mapeo Para crear usuarios, debemos ir al menú “usuarios/grupos”. Hacemos clic en “Crear Nuevo Usuario”

8

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Como podemos observar, los campos requeridos obligatorios son el usuario y la contraseña. 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.

Tenemos creadas la extensión 200, 201 y 202. Mapearemos a jdoe con la extensión 200 y a ggalilei con la extensión 202. Para mapear las extensiones debemos ir a: OpenFire → Asterisk-IM → Phone Mappings Una vez en Phone Mappings, 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. Hacemos lo mismo con ggalilei.

9

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

Mensajería Instantánea en Elastix Laboratorio 15.3 (Práctica recomendada) Descripción: Instalar dos clientes de mensajería instantánea, uno de ellos “Spark”, para probar la funcionalidad de integración de Openfire con Asterisk. Objetivo: Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de la mensajería Instantánea con Elastix. Tiempo Máximo: 15 minutos. Instrucciones: Para probar la funcionalidad de llamada podemos hacer login desde dos clientes de mensajería

instantánea. Uno de ellos debe ser Spark, ya que tiene un plugin denominado “SIP Softphone” que nos permitirá

hacer el marcado. El otro cliente puede ser cualquiera de los siguientes: Pidgin (windows, mac, ubuntu, source), iChat

(mac). Cualquier cliente que permita crear una cuenta jabber/XMPP. Haremos login con ggalilei en spark y con jdoe desde cualquier cliente IM. Para ingresar al spark ingresamos los siguientes datos:

En el caso de otro cliente IM, lo mas común es que pidan la siguiente información: 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, podemos iniciar el chat. En la siguiente imagen podemos observar que ggalilei tiene abierta una ventana de mensajes, y tiene

el ícono de un teléfono.

10

ELASTIX® CERTIFICATION

 

labs

 

Lab-15  

En la siguiente imagen podemos observar como se inicia la llamada al hacer clic en el ícono de

teléfono. La primera llamada es a la extensión 202 de ggalilei. ¿Por qué, si marcamos a jdoe?

Esto funciona así por una razón sencilla el plugin Asterisk-IM, hace “clic to call”. Cuando uno activa esta funcionalidad, como en el caso de la imagen, el servidor Elastix/Asterisk

llama a la extensión que generó la llamada primero, en este caso la extensión 202 de ggalilei. Una vez que ggalilei contesta la llamada, Elastix/Asterisk llama a la extensión de destino, en este

ejemplo la extensión 200 de jdoe. La razón es que Asterisk conecta ambas extensiones con una llamada, 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.

¿Tiene su lógica no? Una llamada solo se generará si y solo si nosotros realmente estamos en la

línea, caso contrario no.

Clic  to  call  

11

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

Seguridad Laboratorio 18.1 Descripción: En este laboratorio aprenderemos a cambiar las claves de las principales aplicaciones de Elastix. Objetivo: Cambiar las contraseñas de Elastix para asegurar nuestro servidor Tiempo Máximo: 15 minutos. Instrucciones: Cambiar la contraseña del administrador en Elastix

1. Para cambiar la configuración de Elastix debemos ingresar a la interfaz web de Elastix como Administradores. 2. Luego ir a System → Users Management 3. Seleccionamos el usuario admin 4. Se selecciona la opción editar y podemos cambiar la contraseña del usuario admin. Habilitar y cambiar la contraseña de freePBX 1. Para cambiar la contraseña de freePBX nos dirigirnos al módulo de Seguridad de Elastix.

2. Luego seleccionaremos Advanced Settings 3. Habilitaremos el acceso a freePBX como se muestra a continuación y cambiaremos su password

12

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

4. Hacemos clic en “Guardar” 5. Nos dirigiremos a PBX → PBX Configuration → freePBX sin embeber 6. Iniciaremos sesión con el nuevo password

7. Deshabilitaremos el acceso a freePBX sin embeber en el apartado de Advanced Settings dentro del

módulo de seguridad.

Cambiar contraseña del usuario root de Linux 1. Para cambiar la contraseña ingresamos a Elastix como usuario root 2. Una vez que hemos ingresado escribimos el comando: passwd 3. Al hacer esto, el equipo nos solicitará la contraseña nueva, la ingresamos y presionamos enter. 4. Inmediatamente nos solicitará una confirmación de la nueva contraseña, volvemos a ingresarla y

presionamos enter:

Cambiar contraseña del usuario root de mysql 1. Desde la línea de comando de Linux escribimos: mysqladmin -u root -pClaveActual password 'ClaveNueva'

2. Ingresamos la clave que configuramos al momento de instalar Elastix. Ej: Si la clave actual es palosanto y queremos cambiarla a worldelastixnow la sentencia debe ser:

13

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

mysqladmin -u root -ppalosanto password 'worldelastixnow'

3. Hacemos clic en enter y si todo salió bien obtendremos únicamente una nueva línea. 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. Abrir el archivo /etc/amportal.conf vim /etc/amportal.conf 2. Buscar la línea FOPPASSWORD=

3. Cambiar la clave remplazando la cadena de texto luego del signo "=" , como se muestra a

continuación: FOPPASSWORD=nuevaclave 4. Grabar y Salir (Esc → :wq)

14

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

Seguridad Laboratorio 18.2 Descripción: Asegurar Elastix utilizando el Firewall en el mismo servidor con el 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. Objetivo: Aprender a cerrar todos los puertos menos los estrictamente necesarios para el funcionamiento de nuestra Central Tiempo Máximo: 10 minutos. Instrucciones: 1. Ingresar a la sección de Firewall dentro del módulo de seguridad de Elastix. 2. Activar el firewall presionando el botón "Activar Cortafuegos" tal como se muestra a continuación.

15

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

3. Realizar un escaneo local de puertos utilizando el comando "nmap -v -A localhost"

16

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

Seguridad Laboratorio 18.3 (Práctica recomendada) Descripción: Asegurar Elastix utilizando el Firewall en el mismo servidor utilizando iptables por línea de comando. Se asume para esta práctica que solo se tiene 1 interfaz de red y que esta se llama eth0. Objetivo: Aprender a cerrar todos los puertos menos los estrictamente necesarios para el funcionamiento de nuestra Central Tiempo Máximo: 20 minutos. Instrucciones: Ingresamos a la consola de Elastix como usuario root. 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 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, grabamos la configuración con el siguiente comando: iptables-save > /etc/sysconfig/iptables

17

ELASTIX® CERTIFICATION

 

labs

 

Lab-18  

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

comprometida.

4. Cambiar la clave y guardar

 

18

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

Desempeño Laboratorio 17.1 Descripción: Utilizar el programa Sipp para generar tráfico llamadas. Objetivo: Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de Sipp, simulando el desempeño de nuestro Elastix en un ambiente de producción. Tiempo Máximo: 30 minutos. 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, definimos un peer sip. Añadimos en el archivo

/etc/asterisk/sip_custom.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

Grabar y Salir (Esc → :wq) Creamos una extensión adicionando un contexto para hacer nuestra prueba

Editar el archivo /etc/asterisk/extensions_custom.conf. vim extensions_custom.conf

19

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

Agregar las siguientes líneas al archivo

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á. Sipp se encargará de hacer tantas llamadas por segundo se requieran a este contexto.

Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload” Antes de iniciar las pruebas de estrés con sipp, activaremos las llamadas SIP anónimas en Elastix.

En la interfaz web de Elastix ir a Security → Advanced Settings. Una vez ahí encenderemos “Activar llamadas SIP anónimas”.

No es necesario hacer clic en “Guardar”. De la misma manera vamos a PBX → PBX Configuration → Configuración General y activamos la

opción: “Allow Anonymous Inbound SIP Calls?”

[from-internal-custom] include => sipp_context [sipp_context] exten => 2222,1,Answer exten => 2222,n,MusicOnHold(default) exten => 2222,n,Hangup

20

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

Seleccionamos la opción “Yes” y hacemos clic en “Submit Changes”. Después aplicamos los cambios. Ejecutando Sipp Una vez que hemos completado la configuración inicial estamos listos para ejecutar sipp y generar

llamadas a nuestro servidor. 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.0.0.1 -p 6000 ip.elastix –r 10 -l 10 En este comando se debe incluir la IP del servidor Elastix (ip.elastix) cuando la generación de

llamadas se realiza desde un servidor remoto. Si la prueba es en el mismo servidor debemos colocar: 127.0.0.1. Para este laboratorio la prueba la realizaremos en el mismo 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, 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. Es recomendable realizar inicialmente las pruebas con un valor bajo de llamadas por segundo, ya que

no conocemos la capacidad de nuestro servidor. 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; en ambos casos con un rate de 10 llamadas por segundo.

Para esta prueba es necesario que iniciemos sesión en la consola de Elastix, desde tres consolas (el

programa putty permite esta funcionalidad). En todas las ventanas ingresaremos como usuario root. En cada consola ejecutaremos un comando:

21

ELASTIX® CERTIFICATION

 

labs

 

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. Una vez que tenemos todo listo, ejecutemos sipp: sipp -sn uac -d 2000000 -s 2222 -i 127.0.0.1 -p 6000 127.0.0.1 –r 10 -l 10 Veremos la siguiente salida:

En la consola de la derecha se está ejecutando sipp. En la consola superior izquierda el comando

Top y en la consola inferior izquierda Asterisk CLI. La aplicación Sipp es una herramienta que genera llamadas sipp simuladas en o hacia un servidor.

Cuando se ejecuta, genera un número de llamadas por segundo hasta alcanzar el máximo de llamadas concurrentes.

Una vez alcanzadas, sipp continúa tomando datos estadísticos. La ejecución de sipp sin embargo

consume un alto procesamiento al servidor, como vemos en el siguiente imagen:

Paramos la ejecución de sipp con ctrl-c, y obtenemos un reporte:

22

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

En realidad ya no necesitamos que sipp siga ejecutándose, ya que las llamadas se generaron y

tienen una duración para que podamos observar los resultados. Una vez que hemos parado sipp, observaremos que procesos están consumiendo mas

procesamiento.

Como podemos observar, en la imagen anterior, Asterisk consume un aproximado de 12.9% del CPU,

con 10 llamadas concurrentes. Estos datos pueden variar de acuerdo a la variación de su servidor. Mientras leemos este tutorial, las llamadas continúan en curso, 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).

En la consola inferior podemos ver el número de llamadas y canales en curso mientras revisamos

nuestros datos.

23

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

Como esperábamos las llamadas concurrentes son 10. En el laboratorio 17.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. Aunque ya paramos Sipp, las llamadas continúan en curso. 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, que Asterisk no está

generando procesamiento y no hay llamadas activas al momento. Ahora realizaremos la prueba con 40 llamadas concurrentes. Ejecute:

Consola derecha: sipp -sn uac -d 2000000 -s 2222 -i 127.0.0.1 -p 6000 127.0.0.1 -users 40 Consola Superior Izquierda: top -p $(pidof asterisk) Consola Inferior Izquierda, 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. Consumo % de Asterisk

Canales y llamadas activas

Como era de esperar, el consumo de recursos, por parte de Asterisk, fue mayor con 40 llamadas

concurrentes.

24

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

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

25

ELASTIX® CERTIFICATION

 

labs

 

Lab-17  

Desempeño Laboratorio 17.2 (Práctica recomendada) Descripción: Utilizar un script para registrar los datos generados en las pruebas de estrés, con diferentes valores de llamadas simultáneas. 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. Instrucciones: En el laboratorio anterior pudimos observar que en una prueba de estrés vemos los valores

momentáneos de % de uso de CPU. Sin embargo estos valores difieren durante la prueba y no son necesariamente constantes.

Una forma útil para obtener un valor promedio, es el de registrar un número X de valores en un

tiempo determinado. Para este efecto crearemos un Script que registre estos valores en un archivo de texto. Creamos el archivo: vim /opt/getUSAGE Al ingresar al editor de texto escribimos el siguiente script:

ps -o rss,vsize,%mem,%cpu -C asterisk > USAGE.txt sleep 2 for (( i=1; i<15; i++ )) do ps -o rss= -o vsize= -o %mem= -o %cpu= -C asterisk >> USAGE.txt sleep 2 done

Grabar y Salir (Esc → :wq) Como pudimos observar el archivo fue creado en el directorio /opt. El script está escrito para que al

ejecutarlo se genere un archivo de texto con nombre USAGE.txt, que tome “15” muestras cada dos segundos.

26

ELASTIX® CERTIFICATION

 

labs

 

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, podemos iniciar la toma de las

muestras. 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 importante indicar los siguiente:

Correremos el script (getUSAGE) después de 2-3 minutos de haber iniciado las llamadas con sipp; esto permitirá al sistema estabilizarse con esas llamadas. 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. Hacemos esto ya que le generación de estadísticas de sipp carga mucho procesamiento.

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.0.0.1 -p 6000 127.0.0.1 -users 10 Consola superior Izquierda, controlaremos el número de canales: watch -n1 "rasterisk -x 'core show channels' | tail -n4" Consola inferior Izquierda: ./getUSAGE

Canales y llamadas activas

Al ejecutar ./getUSAGE el script demorará alrededor de 30 segundos mientras toma los datos de

procesamiento y memoria.

27

ELASTIX® CERTIFICATION

 

labs

 

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, tenemos varios valores de procesamiento para esta prueba (10 llamadas concurrentes). Con esto podemos sacar un promedio de procesamiento % con 10 llamadas concurrentes.

Es ideal hacer esta misma prueba con valores de 20, 30, 40, 50, 70, 80, 90 y 100 llamadas

concurrentes (a un rate de 10 llamadas por segundo). De esta manera podemos establecer una curva que nos ayude a pronosticar el rendimiento de nuestro servidor.

Es importante indicar que el script ./getUSAGE sobre escribe el archivo USAGE.txt, por lo cual si lo

queremos tener guardado como referencia debemos hacer un backup con otro nombre e.g. USAGE10.txt

28

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

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. Tiempo Máximo: 10 minutos Instrucciones: Crear el archivo divide.c en el directorio /opt con el siguiente contenido

Compilar el archivo divide.c con la opción -g para debugging: Ejecutar el comando strace con la opción -o para enviar la salida al archivo salida.divideXXX.txt: Se ejecutará el programa y pedirá dos números para dividir. En el segundo número ingresar 0:

[root@elastix opt]# vim divide.c

#include<stdio.h> #include<math.h> int main(void) { int a; int b; printf("Introduce el primer numero\n"); scanf("%d", &a); printf("Introduce el segundo numero\n"); scanf("%d", &b); printf("Resultado: %d \n",(a/b)); return 0; }

[root@elastix opt]# gcc -g divide.c -o divide

[root@elastix opt]# strace -o salida-divide.txt ./divide

29

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

Revisar el archivo salida-divide.txt como sigue: Al revisar el archivo veremos una línea como sigue: NOTA: SIGFPE es una señal enviada a un proceso ó programa cuando se realiza una operación

errónea de punto flotante.

[root@elastix opt]# vim salida-divide.txt

--- SIGFPE (Floating point exception) @ 0 (0) --- +++ killed by SIGFPE +++

30

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

Debugging Avanzado Laboratorio 22.2 Descripción: Utilizar el comando gdb en un programa básico y ejecutar los comandos RUN, STEP, PRINT, BREAK, QUIT. Objetivo: Familiarizarse con el comando gdb y aplicarlo para hacer debugging. Tiempo Máximo: 15 minutos Instrucciones: Instalar el paquete gdb-7.0.1-42.el5.centos.i386.rpm utilizando el comando yum:

[root@elastix opt]# yum install gdb Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.adams.net * commercial-addons: 66.128.53.13 * elastix-base: 66.128.53.13 * elastix-extras: 66.128.53.13 * elastix-updates: 66.128.53.13 * epel: ftp.osuosl.org * extras: mirror.ubiquityservers.com * updates: mirrors.easynews.com Transaction Summary ============================================================================== Install 1 Package(s) Upgrade 0 Package(s) Total download size: 2.4 M Is this ok [y/N]: y Downloading Packages: gdb-7.0.1-42.el5.centos.i386.rpm | 2.4 MB 00:02 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : gdb 1/1 Installed: gdb.i386 0:7.0.1-42.el5.centos Complete!

31

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

Crear el archivo imprime.c en el directorio /opt

Compilarlo con la opción -g para debugging: Ejecutar el comando gdb con la opción -q para el programa imprime, como sigue:

[root@elastix opt]# vim imprime.c

#include<stdio.h> #include<math.h> int main(void) { int a; int b; int c; printf("Ingrese el primer numero\n"); scanf("%d", &a); printf("Ingrese el segundo numero\n"); scanf("%d", &b); c=a+b; printf("La suma de %d y %d es %d \n",a,b,c); return 0; }

[root@elastix opt]# gcc -g imprime.c -o imprime

[root@elastix opt]# gdb -q imprime Using host libthread_db library "/lib/libthread_db.so.1". (gdb)

32

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

En el prompt de gdb, crear los “breaks” para el programa imprime, como sigue:

Ejecutamos el comando RUN, como sigue:

Vamos avanzando línea por línea con el comando step, como sigue: --

Reading symbols from /opt/imprime...done. (gdb) break imprime.c:1 Breakpoint 1 at 0x8048415: file imprime.c, line 1. (gdb) break imprime.c:2 Note: breakpoint 1 also set at pc 0x8048415. Breakpoint 2 at 0x8048415: file imprime.c, line 2. (gdb) break imprime.c:3 Note: breakpoints 1 and 2 also set at pc 0x8048415. Breakpoint 3 at 0x8048415: file imprime.c, line 3. (gdb) break imprime.c:4 Note: breakpoints 1, 2 and 3 also set at pc 0x8048415. Breakpoint 4 at 0x8048415: file imprime.c, line 4. (gdb) break imprime.c:5 Note: breakpoints 1, 2, 3 and 4 also set at pc 0x8048415. Breakpoint 5 at 0x8048415: file imprime.c, line 5. (gdb) break imprime.c:6 Note: breakpoints 1, 2, 3, 4 and 5 also set at pc 0x8048415. Breakpoint 6 at 0x8048415: file imprime.c, line 6. (gdb) break imprime.c:7 Note: breakpoints 1, 2, 3, 4, 5 and 6 also set at pc 0x8048415. Breakpoint 7 at 0x8048415: file imprime.c, line 7. (gdb)

(gdb) run

Starting program: /opt/imprime

Breakpoint 1, main () at imprime.c:9

9 printf("Ingrese el primer numero\n");  

Breakpoint 1, main () at imprime.c:9

9 printf("Ingrese el primer numero\n");

(gdb) step

 

33

ELASTIX® CERTIFICATION

 

labs

 

Lab-19    

Ingresamos un valor y ejecutamos el comando “print a” , para imprimir el valor de la variable “a”:

Seguimos la ejecución del programa con el comando “step” hasta terminarlo:

Para salir ejecutamos el comando “quit”, como sigue:

 

Ingrese el primer numero

10 scanf("%d", &a);

(gdb) step

8

11 printf("Ingrese el segundo numero\n");

(gdb) print a

$1 = 8

(gdb)  

(gdb) step 8 11 printf("Ingrese el segundo numero\n"); (gdb) print a $1 = 8 (gdb) step Ingrese el segundo numero 12 scanf("%d", &b); (gdb) step 4 13 c=a+b; (gdb) step 14 printf("La suma de %d y %d es %d \n",a,b,c); (gdb) step La suma de 8 y 4 es 12 15 return 0;

(gdb) quit A debugging session is active. Inferior 3 [process 13906] will be killed. Quit anyway? (y or n) y

34

ELASTIX® CERTIFICATION

 

labs

 

Lab-20    

DUNDi Laboratorio 20.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. Objetivo: Utilizar el addon de plan de marcado distribuido para la utilización de DUNDi. Tiempo Máximo: 20 minutos. Instrucciones: Agruparse en pareja para implementar DUNDI con su compañero. Instalar el addon de marcado distribuido en ambos servidores Elastix. Ir al menú Addons

Una vez que hemos instalado el addon, dirigirse a PBX → Distributed DialPlan y completar el

formulario inicial.

En ambos servidores, dirigirse a PBX → Distributed DialPlan y completar el formulario de “Información

General”. En el primer servidor 1 dirigirse al submenú "Password Connection" ubicado a la izquerda.

35

ELASTIX® CERTIFICATION

 

labs

 

Lab-20    

Copiamos la clave generada o podemos enviarla por correo incluyendo una dirección en el campo “Email” y haciendo clic en enviar. En cualquiera de los dos casos la información que se encuentra en el campo clave, es el certificado que tendremos que usar.

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.

Presionar el botón "Petición" Nuevamente en el servidor 1, dirigirse a "Peers Information" donde figurará la nueva petición de

conexión. Hacer clic en el enlace "Petición de Conexión".

Presionar el botón "Aceptar"

36

ELASTIX® CERTIFICATION

 

labs

 

Lab-20    

En el servidor 2, dirigirse nuevamente a "Peers Information", donde figurará la nueva conexión y

presionar el enlace "Conectar"

Repetir el paso anterior en el servidor 1. Una vez finalizado el proceso obtendremos el siguiente resultado, y podremos realizar llamadas entre

las dos centrales.

En el servidor 2, cree la extensión 400. Registre esta extensión en el teléfono IP o en un softphone. Desde la extensión 200 del servidor 1, marque a la extensión 400. Si todo fue configurado

correctamente debería conectar una llamada.

37