Académique Documents
Professionnel Documents
Culture Documents
Instalación de Elastix
Laboratorio 1.1
Descripción: En este laboratorio prepararemos una máquina virtual en el software VM VirtualBox para la
instalación de Elastix.
Instrucciones:
Ejecutar VM VirtualBox.
Veremos la pantalla de bienvenida de VirtualBox para configurar una nueva máquina virtual. Hacemos clic
en “Next/Siguiente”.
labs
1
ELASTIX® CERTIFICATION Lab-1
Colocaremos como nombre a la máquina virtual ELASTIX-ECTE. 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”.
labs
2
ELASTIX® CERTIFICATION Lab-1
Virtual Hard Disk: crearemos un nuevo disco duro virtual. Hacemos clic en “Next/Siguiente”.
Virtual Disk Creation Wizard: Dejaremos la opción por defecto para crear una VDI (Imagen de disco de
VirtualBox. Hacemos clic en “Next/Siguiente”.
labs
3
ELASTIX® CERTIFICATION Lab-1
Virtual Disk Storage details: Configuramos el tipo a Fixed Size/Tamaño fijo. Hacemos clic en
“Next/Siguiente”.
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”.
labs
4
ELASTIX® CERTIFICATION 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.
Después de que este proceso ha concluido procederemos a crear la máquina virtual haciendo clic en el
botón Create/Crear para iniciar el proceso.
labs
5
ELASTIX® CERTIFICATION Lab-1
Antes de iniciar el proceso de instalar Elastix, es importante revisar la configuración de red.
labs
6
ELASTIX® CERTIFICATION 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.
labs
7
ELASTIX® CERTIFICATION Lab-1
El primer Wizard aparecerá. Haga clic en "Next/Siguiente" para seleccionar el medio de boot para la
máquina virtual.
Select Installation Media: Navegue por los archivos de su computadora para localizar y seleccionar el
archivo ISO Elastix 2.2. Después de hacer clic en “Next/Siguiente” usted verá un sumario de la información
de booteo para la máquina virtual.
labs
8
ELASTIX® CERTIFICATION 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.
labs
9
ELASTIX® CERTIFICATION Lab-1
Instalación de Elastix
Laboratorio 1.2
Descripción En este laboratorio instalaremos Elastix en una máquina virtual.
Nota: En una instalación real para producción el proceso de instalación formateará todo el disco duro.
Instrucciones:
Ejecutamos la máquina virtual con la ISO seleccionada tal como se realizó en el laboratorio anterior. La
pantalla de instalación de Elastix aparecerá, presionamos ENTER para iniciar el proceso.
labs
Nota: Durante este proceso no podremos utilizar el ratón, por lo cual debemos usarlas teclas Tab, Barra
Espaciadora y ↑↓→←.
10
ELASTIX® CERTIFICATION Lab-1
En la pantalla siguiente escogemos el lenguaje para el proceso de instalación. → Aceptar
labs
Nota: para teclado en inglés que requiera ser utilizado en español, es útil seleccionar la opción “us-
acentos”, como se muestra en la imagen.
11
ELASTIX® CERTIFICATION Lab-1
Seleccionamos el tipo de particionamiento. En este caso usted verá únicamente la partición de la máquina
virtual. Seleccionamos la primera opción y avanzamos. → Aceptar
labs
12
ELASTIX® CERTIFICATION Lab-1
Revisar y Modificar el particionamiento (No)
labs
13
ELASTIX® CERTIFICATION Lab-1
Seleccione “Activar al inicio” y “Activar soporte Ipv4”. → Aceptar
labs
14
ELASTIX® CERTIFICATION Lab-1
Ingrese el hostname (este puede ser asignado de manera automática vía DHCP). → Aceptar
Seleccione
la
zona
horaria
apropiada.
→ Aceptar
labs
15
ELASTIX® CERTIFICATION Lab-1
Ahora
ingrese
la
contraseña
del
usuario
root
(usuario
Linux)
que
se
utilizará
cuando
el
sistema
esté
instalado.
Es
muy
importante
que
no
olvide
esta
contraseña,
por
lo
tanto
escríbala
y
memorícela.
→ Aceptar
Listo. Hemos ingresado toda la información necesaria por ahora. Puede ponerse cómodo y esperar.
labs
16
ELASTIX® CERTIFICATION Lab-1
En un determinado momento de la instalación, el sistema nos pedirá que ingresemos la contraseña para el
usuario root de MySQL. Es
importante
también
que
no
olvide
esta
contraseña,
por
lo
tanto
escríbala
y
memorícela.
→ Aceptar
labs
17
ELASTIX® CERTIFICATION Lab-1
El proceso pedirá que ingrese una contraseña para el usuario admin de la Interfaz Web de Elastix. Es
importante
también
que
no
olvide
esta
contraseña,
por
lo
tanto
escríbala
y
memorícela.
Esta
contraseña
es
la
misma
para
otros
componentes
como:
FreePBX,
Vtiger
y
A2Billing.
Es
importante
que
esta
contraseña
sea
os
suficientemente
fuerte
para
evitar
problemas
de
intrusión
a
posterior.
→ Aceptar
Una vez que el sistema se haya instalado podemos administrarlo desde la consola de Elastix. Ingresamos
(login) como usuario root.
labs
18
ELASTIX® CERTIFICATION 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.168.5.217.
Abramos un browser e ingresemos la IP con el siguiente formato: https://192.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. Continuamos de todos modos y aceptamos el certificado.
Hacemos login con el usuario "admin" y la contraseña que colocamos durante el proceso de instalación de
Elastix.
labs
19
ELASTIX® CERTIFICATION Lab-2
Laboratorio 2.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.
Nota:
Máquinas con sistema operativo Linux tienen capacidad nativa para ingresar a la consola de comandos de
Elastix. Usuarios Windows pueden acceder a la línea de comandos a través la máquina virtual instalada en
el laboratorio 1, sin embargo es mejor usar un cliente SSH.
http://www.putty.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)”. Después de esto haga clic en “open”.
Debemos ingresar como usuario “root”. Use la contraseña que colocó durante la instalación de Elastix.
labs
20
ELASTIX® CERTIFICATION Lab-2
Una vez que ha ingresado, 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. 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. Cuando sea posible, una imagen será mostrada para permitirle comparar
los resultados.
labs
Enliste los contenidos del directorio /etc con información adicional
ls -l /etc
21
ELASTIX® CERTIFICATION Lab-2
Enliste los contenidos del directorio /etc y muestre los archivos y directorios que contengan la palabra
“asterisk”
ls -l /etc/ | grep asterisk
labs
cd /tmp/test
22
ELASTIX® CERTIFICATION Lab-2
En el directorio tmp/test cree un archivo llamado: test.txt. Usted puede hacerlo de dos maneras:
- Edición de archivos:
Una vez que está en vim, presione la tecla “INSERT” (la tecla “i” es también una alternativa) para
habilitar el modo de edición, luego escriba su nombre.
Para grabar y salir presione la tecla “ESC” y escriba: :wq. si usted quiere continuar trabajando en el
archivo y grabarlo sin salir solo escriba: :w
labs
Vea el contenido de test.txt (Ingrese en el directorio donde se encuentra test.txt primero, si usted
no se encuentra ahí)
cat test.txt
23
ELASTIX® CERTIFICATION Lab-2
Revise la ayuda para varios comandos
man ls
En este punto debería estar en el directorio “tmp”, vaya al directorio root (/) con cd ..
adduser elx2
passwd elx2
labs
Ingrese con el usuario elx1
24
ELASTIX® CERTIFICATION Lab-2
Nota: Este comando culmina la sesión actual e inicia una nueva. Si usted está en un cliente SSH, su
ventana probablemente se cierre. Inicie nuevamente el cliente e ingrese con otro usuario.
- chmod: comando change mode, 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
Ingrese como usuario elx2 e intente ingresar al directorio /home/elx1/private (usted no debería
poder ingresar).
cd /home/elx1/private
- cp: comando usado para copiar un archivo; mv: comando usado para mover un archivo
Para llevar a cabo esta acción, es necesario indicar la locación actual del archivo. Si la nueva locación
labs
es la misma, es necesario cambiar el nombre del archivo, caso contrario Linux le preguntará si lo quiere
sobrescribir.
En este ejemplo vamos a colocar el archivo en el mismo directorio, sin embargo usted puede copiar el
archivo y colocarlo en cualquier locación con el mismo comando.
Después de que usted copie el archivo ejecute ls –l para enlistar todos los archivos disponibles en el
directorio.
25
ELASTIX® CERTIFICATION Lab-2
cp /tmp/test/test.txt /tmp/test/test2.txt
ls –l /tmp/test
Nota: Este ejercicio es importante para hacer copias de respaldo, usted encontrará esto útil cuando
configure su hardware de telefonía en Elastix así como para otros casos.
Mueva un archivo a otra locación. Cree el directorio /tmp/test2. Una vez que lo haya creado mueva
el archivo “test2.txt” desde el directorio /tmp/test a /tmp/test2. Después que mueva el archivo,
ejecute la – l para enlistar los archivos disponibles en el directorio /tmp/test2
mkdir /tmp/test2
mv /tmp/test/test2.txt /tmp/test2/test2.txt
ls –l /tmp/test2
El comando move permite cambiar el nombre del archivo en el proceso, usted únicamente necesita
escribir el Nuevo nombre en la nueva locación.
mv /tmp/test/test.txt /tmp/test2/test3.txt
Remueva el archivo “test3.txt” de su locación actual y ejecute ls para confirmar que se ha borrado.
labs
rm /tmp/test2/test3.txt
ls –l /tmp/test2
26
ELASTIX® CERTIFICATION Lab-2
Copia de un archivo desde una locación remota usando un ssh port tunnel.
Este proceso permite que usted envíe un archivo de una locación a otra, básicamente de un servidor a
otro. En el siguiente ejemplo enviamos el archivo install.log, desde la dirección IP 192.168.1.65 a la
dirección IP 192.168.1.66. Es necesario tener el password del usuario root del servidor que recibirá el
archivo.
Nota: Este proceso tiene la misma lógica del proceso de copiar y mover archivos, por lo cual si quiere
cambiar el nombre del archivo (e.g. test4.txt), entonces la línea correcta debería ser:
scp /tmp/test2/test2.txt root@IP_address:/tmp/test/test4.txt
Instalación de Paquetes
Instalación:
Se pedirá que confirme algunas acciones, como descargar paquetes, solo coloque yes (y) y presione
enter.
labs
27
ELASTIX® CERTIFICATION Lab-2
Desinstalación:
Usted deberá confirmar esta acción, únicamente coloque yes (y)y presione enter.
labs
wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rkhunter-1.2.9-
1.el5.rf.noarch.rpm
28
ELASTIX® CERTIFICATION Lab-2
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. Usaremos una
funcionalidad gráfica para este curso. La configuración se puede hacer también en la interfaz de
administración web de Elastix.
ifconfig –a
labs
29
ELASTIX® CERTIFICATION Lab-2
En este ejemplo podemos observar que nuestra interfaz es eth0 y la dirección IP que tiene
asignada.
Cambiando su dirección IP
setup
labs
30
ELASTIX® CERTIFICATION Lab-2
Seleccionamos el dispositivo correcto y presionamos enter. eth0 (eth0) - (Esto puede variar dependiendo
de su hardware).
Coloque la configuración de acuerdo a su red, para esto deseleccione “Utilizar DHCP” (use la barra
espaciadora). Presione Ok cuando haya concluido.
labs
31
ELASTIX® CERTIFICATION Lab-2
Aquí podemos configurar el Hostname (Nombre del equipo) y los DNS’s. Presione Ok cuando haya
concluido.
Si modificamos cualquier parámetro es necesario que reiniciemos el servicio de red para aplicar los
cambios.
labs
32
ELASTIX® CERTIFICATION Lab-3
Laboratorio 3.1
Instrucciones:
Durante la instalación de Elastix se configuró el equipo con una IP dinámica asignada por DHCP.
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:
Cambie su dirección IP a estática y asigne una dirección IP. Una vez que haya completado la tarea
hacer clic en “Aplicar Cambios”
Es muy probable que debamos cambiar la configuración de HOST, DNS y GATEWAY. Para hacer
esto ir a:
labs
33
ELASTIX® CERTIFICATION Lab-3
Ahora crearemos una extensión SIP, ir a:
Crearemos la extensión 200 con el nombre “John Doe” y la contraseña “secret123”. Una buena
práctica recomendada es no colocar contraseñas débiles en las extensiones. Para el caso de este y
otros ejemplos lo haremos fácil por efectos didácticos.
Nota: Cada vez que creemos una extensión, una cola, un cuarto de conferencia o realicemos una
configuración en el menú “PBX Configuration”, necesitaremos aplicar los cambios. Se muestra un
ejemplo en la siguiente imagen:
labs
Crear una extensión SIP con la extensión 202
34
ELASTIX® CERTIFICATION Lab-3
Extensión IAX
Una vez ingresada la configuración hacemos clic en “Submit” y aplicamos los cambios.
labs
35
ELASTIX® CERTIFICATION Lab-3
Laboratorio 3.2
Descripción: En este laboratorio configuraremos dos softphones para probar las configuraciones
hechas en nuestro Elastix.
Instrucciones:
Una vez que hemos creado las extensiones 200 (SIP), 201 (IAX2) y 202 (SIP), debemos configurarlas
en los dispositivos que nos permitirán usarlas para llamadas y pruebas durante este curso.
Configuraremos la extensión 201 en un softphone. Para este ejercicio utilizaremos ZOIPER que es un
softphone libre disponible para Windows, Linux y Mac. Este softphone soporta el protocolo IAX2,
requerido para esa extensión.
La configuración es similar a otros softphones o teléfonos IP. Para más información visite
(http://www.zoiper.com/).
La primera vez que ejecutemos ZOIPER nos aparecerá una pantalla similar a la siguiente.
labs
36
ELASTIX® CERTIFICATION Lab-3
El siguiente paso es crear la extensión, para hacemos clic en “Add New IAX Account”, colocamos un
nombre referencia y hacemos clic en OK.
Luego agregamos la dirección IP del servidor Elastix (esta es la dirección donde el softphone se
registrará) que se está usando, el número de la extensión (201), la contraseña (secret123), el Caller
ID Name (201) y Caller ID Number (201). Luego hacemos clic en OK.
labs
Una vez que la extensión está registrada, podemos marcar 1234 para probarla. Si todo fue
configurado correctamente escucharemos a Allison Smith (La voz de Asterisk) con un mensaje de
felicitación.
37
ELASTIX® CERTIFICATION Lab-3
También podemos realizar una prueba de eco marcando *43, asegúrese de tener un micrófono
conectado.
Extensión 202
Ahora configuraremos la extensión 202 en otro softphone. Usaremos X-Lite la versión gratuita de Bria
(http://www.counterpath.com/x-lite.html)
labs
38
ELASTIX® CERTIFICATION Lab-3
Colocamos un nombre de referencia en “Account Name”. En User ID colocamos el número de la
extensión (202), en Domain colocamos la dirección IP del servidor Elastix.
A diferencia de Zoiper, x-lite se registra automáticamente, por lo cual si todo es correcto podemos
iniciar las llamadas inmediatamente.
Al igual que hicimos con la extensión 201, podemos marcar 1234 para probar la extensión. También
podemos realizar una prueba de eco marcando *43, asegúrese de tener un micrófono conectado.
labs
39
ELASTIX® CERTIFICATION Lab-3
Laboratorio 3.3
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.
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”. Aquí
configuraremos el grupo, el pickupgroup y además estableceremos el códec g.711 por defecto para
esta extensión.
labs
En los campos: callgroup y pickupgroup colocamos 2, ese es el grupo al que pertenecerá esta
extensión.
En disallow, colocamos all, lo cual implica que no está habilitado ningún códec. Inmediatamente
colocamos ulaw en el campo allow, con lo cual establecemos que el códec sea únicamente g.711 en
la versión ulaw.
40
ELASTIX® CERTIFICATION Lab-3
En algunos teléfonos, como los Yealink, es necesario cambiar la configuración del campo mailbox,
para que sea extension@default. En este caso, cambiaremos 200@device por 200@default si el
teléfono es Yealink. Esto garantiza que cuando la extensión reciba un voicemail, el teléfono lo indique
en el botón colocado para ese fin.
Tenemos la opción de colocar un Email, para que cada vez que la extensión reciba un voicemal
Elastix nos avise al correo. Es posible además permitir que nos llegue el audio como attachment, en
este ejemplo no lo activaremos.
Una vez que hemos culminado la configuración hacemos clic en Submit y aplicamos los cambios.
Una vez que hemos configurado la extensión 202, realizaremos una llamada a esta extensión desde
la extensión 201. En cuanto escuchemos el ringado, marcaremos *8 desde la extensión 200. 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.
labs
41
ELASTIX® CERTIFICATION Lab-3
Laboratorio 3.4
Instrucciones:
Crearemos una cola de atención que timbrará a las extensiones 201 y 202 cuando marquemos 5000.
42
ELASTIX® CERTIFICATION Lab-3
Una vez que las extensiones estén listas marcamos 5000 desde la extensión 200.
Las extensiones 201 y 202 sonarán de acuerdo a la estrategia de ringado seleccionada para la cola.
Podemos probar otras estrategias yendo a:
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.
labs
Cuartos de conferencia
Crearemos una sala de conferencia con el número 3000. Las personas que llamen a este número
podrán conversar al mismo tiempo y mantener una reunión.
Ir a:
43
ELASTIX® CERTIFICATION Lab-3
Ahora intente llamar a esta conferencia desde las extensiones creadas anteriormente.
labs
44
ELASTIX® CERTIFICATION Lab-3
Laboratorio 3.5
Descripción: En este laboratorio haremos grabaciones que se podrán usar para un correo de voz, un IVR o
para otro propósito.
Instrucciones:
Ir a PBX → PBX Configuration → Grabaciones del Sistema
Grabaremos un audio desde una extensión existente. 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.
labs
Coloque la extensión y presione Ir.
Desde la extensión 200 marque *77, usted escuchará un beep, después de esto grabe su mensaje y
marque #.
45
ELASTIX® CERTIFICATION Lab-3
Acto seguido escuchará la voz de Asterisk indicándole opciones para escuchar el mensaje o para re
grabarlo de nuevo. Si usted está satisfecho con el resultado simplemente cuelgue.
Una vez que ha guardado la grabación usted puede entrar al archivo y escribir una descripción (solo
haga clic en "testaudiolab").
Usted puede también enlazar el audio con un "Código de característica" que será asignado por
Elastix.
Para asignar un código, haga clic en el link del audio que acaba de grabar. Este se encuentra en la
columna derecha.
labs
Después de completar la configuración haga clic en Guardar y aplique los cambios.
46
ELASTIX® CERTIFICATION Lab-3
Para este curso vamos a necesitar varias grabaciones. El listado es el siguiente:
3. Script del Audio: Bienvenido, marque la opción 1 para ventas o la opción 2 para soporte
Nombre de la grabación: testivr
4. Script del Audio: Bienvenido, marque 1 para ventas, marque 2 para soporte, marque 3 para desarrollo
Nombre de la grabación: welcomeivr
labs
Nombre de la grabación: elastixworld
15. Script del Audio: Bienvenido a Elastix Comunicación Unificada de Código abierto.
Nombre de la grabación: ivr1
Estos audios serán utilizados en el capítulo de Asterisk, Plan de marcado avanzado y AGI – AMI.
labs
48
ELASTIX® CERTIFICATION Lab-3
Instrucciones:
Un IVR se puede crear de dos formas, con un archivo de audio único o con varios archivo de audio.
En el primer caso se crea únicamente un IVR con las opciones requeridas. En el segundo caso es
necesario crear varios IVRs y enlazarlos de acuerdo al requerimiento de atención.
Vamos a crear un IVR de múltiples audios. El objetivo es que un cliente llame, escuche el audio de
bienvenida, después la opción 1 para ventas, la opción 2 para soporte y la despedida.
La opción 1 debe ir a la extensión 201, 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. Esta cola fue creada anteriormente por lo cual
sonarán las extensiones 201 y 202 con la estrategia de ringado escogida.
labs
Colocamos test4 a este IVR. En anuncio seleccionamos el audio “ivr4” y en la opción de tiempo de
espera colocaremos 5.
49
ELASTIX® CERTIFICATION Lab-3
En las opciones colocaremos 1 que debe ir a la extensión 201, 2 que debe ir a la extensión 202, la
opción “t” (timeout) que debe ir a la cola 5000.
En las opciones colocaremos 1 que debe ir a la extensión 201, 2 que debe ir a la extensión 202, la
opción “t” (timeout) debe ir al IVR test4.
Creamos un nuevo IVR, este se llamará test2, seguimos el orden cronológico inverso.
labs
50
ELASTIX® CERTIFICATION 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, 2 que debe ir a la extensión 202, la
opción “t” (timeout) debe ir al IVR test3.
En las opciones colocaremos 1 que debe ir a la extensión 201, 2 que debe ir a la extensión 202, la
opción “t” (timeout) debe ir al IVR test2.
Para probar nuestro IVR crearemos una aplicación especial, 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.
labs
51
ELASTIX® CERTIFICATION Lab-3
Hacemos clic en “Enviar cambios” y aplicamos cambios.
labs
52
ELASTIX® CERTIFICATION Lab-4
Configuración de Hardware
Laboratorio 4.1
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. Este proceso tiene que ser realizado por un técnico con conocimiento de
manipulación de hardware. 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.
Para este ejemplo usaremos tarjeta análoga Sangoma A200 - 2FXO - 2FXS
Elastix permite detectar y configurar un número extenso de hardware de telefonía para Asterisk.
Para hacerlo rápido y fácil tenemos que ir a:
labs
Primero debemos hacer clic en Avanzado, opciones adicionales aparecerán.
53
ELASTIX® CERTIFICATION Lab-4
labs
La tarjeta está instalada con la configuración por defecto.
54
ELASTIX® CERTIFICATION Lab-4
Elastix asigna por defecto el software de cancelación de eco OSLEC en la tarjeta. Usted puede
cambiar esta configuración si desea otra alternativa o si la tarjeta tiene cancelación de eco por
hardware. Únicamente haga clic en Configuración de Span.
Como podemos ver en la imagen, todos los puertos tiene asignado OSLEC por defecto. Si la tarjeta
tiene cancelación de eco por hardware la opción a escoger debería ser "none".
Extensión FXS
Los puertos FXS aparecen en verde todo el tiempo aunque no estén en servicio, recuerde que este
puerto genera voltaje. Estos puertos son útiles para conectar teléfonos convencionales o faxes.
Crearemos una extensión para un teléfono convencional usando el número de puerto 3 de la tarjeta
que acabamos de instalar.
Una vez ahí seleccionaremos Generic DAHDI Device y haremos clic en Submit.
labs
55
ELASTIX® CERTIFICATION Lab-4
Crearemos la extensión 301, con la descripción fxs-1.
En Device Options debemos colocar el número del puerto en channel. Esta información fue obtenida
del módulo de detección de hardware.
Una vez que ingresamos la información requerida hacemos clic en submit y aplicamos los cambios.
Ahora usted puede conectar un teléfono convencional o un fax y recibirán llamadas en la extensión
301.
labs
56
ELASTIX® CERTIFICATION Lab-4
Configuración de Hardware
Laboratorio 4.2
Instrucciones:
Para este ejemplo utilizaremos una tarjeta Sangoma A101 Digital 1E1
Debemos realizar el mismo proceso que usamos para detectar la tarjeta análoga. Hacer clic en:
Advanced
Replace file chan_dahdi.conf
Detect Sangoma hardware
labs
Como podemos ver, el proceso de detección instaló la tarjeta como digital con 24 canales (T1).
57
ELASTIX® CERTIFICATION 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".
Para configurar la tarjeta como E1, hacemos clic en Parámetro de Span. Una vez ahí debemos
seleccionar la opción "E1: 31 canales, Europa" en el campo: Tipo de medio para RSDI PRI.
labs
58
ELASTIX® CERTIFICATION Lab-4
Si necesitamos cambiar la configuración de los parámetros: timing, LBO, framing, coding, debemos
hacer clic en Parámetros de Span.
labs
configuraciones especiales usted está listo para operar con el procedimiento de instalación y
configuración por interfaz.
59
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.1
Instrucciones:
Vaya a /etc/asterisk/
vim extensions_custom.conf
Incluya la siguiente línea al final del archivo, donde XXXXX es su primer nombre.
#include extensions_custom_XXXXX.conf
labs
Cambiar los permisos y propietario al archivo /etc/asterisk/extensions_custom_XXXXX.conf
60
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.2
Descripción: Crear un plan de marcado para llamar a las extensiones 201 y 202.
Instrucciones:
vim extensions_custom_XXXXX.conf
vim extensions_custom.conf
Pruebe el contexto marcando 501 y 502 desde la extensión 200; las extensiones 201 y 202 deberían
sonar.
labs
61
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.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.
Instrucciones:
[custom-lab5-3]
exten => 5678,1,Wait(2)
exten => 5678,2,Record(custom/welcomecourse:gsm,0)
exten => 5678,3,Wait(2)
exten => 5678,4,Playback(custom/welcomecourse)
exten => 5678,5,Wait(2)
exten => 5678,6,Hangup
Grabar y Salir (Esc → :wq)
vim extensions_custom.conf
labs
Si hizo el contexto correctamente debería escuchar una reproducción del audio grabado.
62
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.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. Para implementar esto usaremos la aplicación Background().
Instrucciones:
vim extensions_custom.conf
labs
63
ELASTIX® CERTIFICATION 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.
Instrucciones:
[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()
vim extensions_custom.conf
labs
Sintaxis: include => custom-lab5-5
64
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.6
Descripción: Crear el contexto del laboratorio anterior pero usando las aplicación Goto().
Instrucciones:
[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()
labs
/etc/asterisk/extensions_custom.conf
vim extensions_custom.conf
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().
Instrucciones:
vim extensions_custom.conf
labs
66
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.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.
Instrucciones:
[custom-lab5-8]
exten => 4002,1,Answer
exten => 4002,n,Wait(1)
exten => 4002,n,Authenticate(1234)
exten => 4002,n,DISA(no-password,from-internal)
exten => 4002,n,Hangup()
vim extensions_custom.conf
labs
67
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.9
Descripción: Crear un contexto que solicite una extensión y luego reproduzca la extensión
ingresada usando la aplicación SayDigits().
Instrucciones:
[custom-lab5-9]
exten => 4003,1,Answer
exten => 4003,n,Background(custom/enter4digits)
exten => 4003,n,WaitExten(,)
exten => _2XXX,1,SayDigits(${EXTEN})
exten => _2XXX,n,Hangup()
vim extensions_custom.conf
labs
68
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.10
Descripción: Crear un contexto que solicite un número y luego reproduzca el número ingresado
usando la aplicación SayNumber().
Instrucciones:
[custom-lab5-10]
exten => 4004,1,Answer
exten => 4004,n,Background(custom/enternumber)
exten => 4004,n,WaitExten(,)
exten => _X.,n,SayNumber(${EXTEN})
exten => _X.,n,Hangup()
vim extensions_custom.conf
labs
/etc/asterisk/extensions_custom.conf
vim extensions_custom.conf
69
ELASTIX® CERTIFICATION Lab-5
Grabar y Salir (Esc → :wq)
Esta es la manera adecuada de deshabilitar un contexto que no queremos que se siga ejecutando en
el futuro.
labs
70
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.11 (Práctica recomendada)
Descripción: Crear un contexto que solicite una extensión y luego deletree su nombre usando la
aplicación SayAlpha().
Instrucciones:
[custom-lab5-11]
exten => 4005,1,Answer
exten => 4005,n,SayAlpha(SU_NOMBRE)
exten => 4005,n,Hangup()
vim extensions_custom.conf
labs
71
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.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().
Instrucciones:
[custom-lab5-12]
exten => 4006,1,Read(port,conf-getchannel,4)
exten => 4006,n,ChanSpy(SIP/${port})
exten => 4006,n,Hangup
vim extensions_custom.conf
labs
72
ELASTIX® CERTIFICATION Lab-5
Asterisk
Laboratorio 5.13 (Práctica recomendada)
Descripción: Realizar una llamada desde la consola de Asterisk usando el módulo chan_oss.so y
el comando dial.
Instrucciones:
labs
73
ELASTIX® CERTIFICATION Lab-6
Laboratorio 6.1
Descripción: Crear un contexto que verifique la fecha y hora del día y reproduzca para días
laborables y no laborables.
Instrucciones:
[custom-lab6-1]
exten => 4007,1,GotoIfTime(*,*,4,jul?open,s,1)
exten => 4007,n,GotoIfTime(09:00-17:59|mon-fri|*|*?open,s,1)
exten => 4007,n,GotoIfTime(09:00-11:59|sat|*|*?open,s,1)
exten => 4007,n,Goto(closed,s,1)
[open]
exten => s,1,Wait(1)
exten => s,n,Playback(custom/workingday)
exten => s,n,Hangup()
[closed]
exten => s,1,Wait(1)
exten => s,n,Playback(custom/notworkingday)
exten => s,n,Hangup()
vim extensions_custom.conf
labs
Sintaxis: include => custom-lab6-1
Intente ahora cambiando la fecha del servidor. Cambie "mes" y "día" por la fecha del día de hoy y
coloque la 18:53:25, use el siguiente comando:
Laboratorio 6.2
Instrucciones:
[custom-lab6-2]
exten => 4008,1,Answer()
exten => 4008,n,Set(CHANNEL(language)=es)
exten => 4008,n,Read(OPERA1,custom/enternumber1,3)
exten => 4008,n,Read(OPERA2,custom/enternumber2,3)
exten => 4008,n,background(custom/enteroperation)
exten => 4008,n,WaitExten(,)
exten => 1,1,Playback(custom/answeris)
exten => 1,n,SayNumber($[${OPERA1}+${OPERA2}])
exten => 1,n,Hangup()
exten => 2,1,Playback(custom/answeris)
exten => 2,n,SayNumber($[${OPERA1}-${OPERA2}])
exten => 2,n,Hangup()
exten => 3,1,Playback(custom/answeris)
exten => 3,n,SayNumber($[${OPERA1}*${OPERA2}])
exten => 3,n,Hangup()
exten => 4,1,Playback(custom/answeris)
exten => 4,n,SayNumber($[${OPERA1}/${OPERA2}])
exten => 4,n,Hangup()
vim extensions_custom.conf
labs
Recargar asterisk: [root@elastix asterisk]# asterisk -rx “reload”
Realice una prueba marcando 4008. El plan de marcado le preguntará dos números y una operación
matemática. Los dígitos para la operación son: 1 Suma, 2 Resta, 3 Multiplicación, 4 División.
75
ELASTIX® CERTIFICATION Lab-6
Laboratorio 6.3
Objetivo: Familiarizarse con los operadores matemáticos de una teléfono IP, la aplicación GotoIf y
la aplicación condicional While - EndWhile.
Instrucciones:
[custom-lab6-3]
exten => 4009,1,Answer()
exten => 4009,n,Set(CHANNEL(language)=es)
exten => 4009,n,Set(TOT=0)
exten => 4009,n,Read(CEDULA,custom/enterid,10)
exten => 4009,n,Noop(${CEDULA})
exten => 4009,n,Set(VAR=0)
exten => 4009,n,While($[${VAR} < 9])
exten => 4009,n,SET(DIG=${CEDULA:${VAR}:1})
exten => 4009,n,Set(RV=${MATH(${VAR} % 2,int)})
exten => 4009,n,NoOp(${RV})
exten => 4009,n,Gotoif($[${RV} = 0]?:impar)
exten => 4009,n,SET(MULT=2)
exten => 4009,n,Goto(salto1)
exten => 4009,n(impar),SET(MULT=1)
exten => 4009,n(salto1),Set(ACUM=${MATH(${DIG}*${MULT},int)})
exten => 4009,n,Gotoif($[${ACUM}<10]?:madiez)
exten => 4009,n,SET(ACUM=${ACUM})
exten => 4009,n,Goto(salto2)
exten => 4009,n(madiez),SET(ACUM=$[${ACUM}-9])
exten => 4009,n(salto2),SET(TOT=$[${TOT} + ${ACUM}])
exten => 4009,n,SET(VAR=$[${VAR} + 1])
exten => 4009,n,EndWhile
exten => 4009,n,Set(RES=${MATH(${TOT} % 10,int)})
exten => 4009,n,GotoIf($[${RES}=0]?:restar)
exten => 4009,n,SET(VER=0)
exten => 4009,n,Goto(salto3)
exten => 4009,n(restar),SET(VER=$[10-${RES}])
exten => 4009,n(salto3),Gotoif($[${CEDULA:9:1}=${VER}]?:error)
exten => 4009,n,Playback(custom/correctid)
labs
exten => 4009,n,SayNumber(${VER})
exten => 4009,n,Hangup()
exten => 4009,n(error),Playback(custom/incorrectid)
exten => 4009,n,Hangup()
vim extensions_custom.conf
76
ELASTIX® CERTIFICATION Lab-6
Hay países en que el número de identidad tiene 10 dígitos, el décimo dígito normalmente se obtiene
por medio de un algoritmo que usa los primeros 9 números. 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, el cual toma los primeros 9 números y ejecutará el cálculo para
obtener el décimo número.
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.
labs
77
ELASTIX® CERTIFICATION Lab-6
Descripción: Crear un archivo .call que realice una llamada a una extensión.
Instrucciones:
Channel: local/200@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: from-internal
Extension: 200
Priority: 1
labs
78
ELASTIX® CERTIFICATION Lab-6
Descripción: Crear un archivo .call que realice una llamada a una extensión, conecte la llamada a
un contexto y reproduzca un audio.
Instrucciones:
[custom-elastixworld]
exten => s,1,Answer()
exten => s,n,Playback(custom/elastixworld)
exten => s,n,Hangup()
Channel: local/200@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: custom-elastixworld
Extension: s
Priority: 1
labs
79
ELASTIX® CERTIFICATION 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.
Instrucciones:
El primer paso es crear la base de datos agi_test, para este propósito escribimos:
vim db.sql
TEXT:
USE agi_test
labs
80
ELASTIX® CERTIFICATION Lab-7
Una vez que el archivo está creado llenaremos la base de datos “agi_test” con el siguiente comando:
cd /var/lib/asterisk/agi-bin/
vim ectagi.php
#!/usr/bin/php -q
<?php
$pass='YOURPASSWORD';
require ('phpagi.php') ;
$agiwrapper = new AGI() ;
ob_implicit_flush(true) ;
set_time_limit(30) ;
$id = $_SERVER['argv'][1];
$link = mysql_connect('localhost','root',$pass) or die("DB Connection Error");
mysql_select_db("agi_test") or die(mysqlerror()."Error: Cannot open database");
$query = 'SELECT * FROM numbers WHERE ID = '.$id.' LIMIT 0, 30 ';
$result = mysql_query($query) or die(mysql_error());
mysql_close($link);
$row = mysql_fetch_array( $result );
if($row != NULL)
{
$number = $row[1];
}
else
{
$number = "00000";
}
$agiwrapper->say_digits($number) ;
exit();
?>
Nota de edición: en la línea 2 cambie el valor de $pass (YOURPASSWORD) con su contraseña del
usuario root de mysql.
labs
Cambie los permisos y usuario
81
ELASTIX® CERTIFICATION Lab-7
[ect-agi]
exten => 4010,1,Answer
exten => 4010,2,Read(number,speed-enternumber,3,,,2)
exten => 4010,3,AGI(ectagi.php,${number})
exten => 4010,4,Hangup()
vim extensions_custom.conf
Sintaxis: include => ect-agi
Pruebe el AGI marcando 4010, deberíamos marcar el id de cada número en la base de datos:
(1, 2223456),
(2, 7778764),
(3, 8787878),
(4, 34534234);
Si usted marca un número que no existe, ejemplo 12, usted obtendrá una respuesta de 0, 0, 0, 0, 0
labs
82
ELASTIX® CERTIFICATION Lab-7
Asterisk AGI
Laboratorio 7.2
Descripción: Realizar el debugging del AGI creado en la práctica anterior y verificar las variables enviadas
desde y hacia un AGI.
Objetivo: Usar los comandos de debug de un AGI y entender la salida mostrada en la consola de asterisk.
Instrucciones:
Observaremos una salida donde las variables de ectagi.php son mostradas, y la comunicación hacia y
desde el AGI.
labs
<SIP/200-00000059>AGI Tx >> agi_arg_1: 1
<SIP/200-00000059>AGI Tx >>
<SIP/200-00000059>AGI Rx << SAY DIGITS 2223456 ""
-- <SIP/200-00000059> Playing 'digits/2.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/2.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/2.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/3.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/4.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/5.gsm' (language 'en')
-- <SIP/200-00000059> Playing 'digits/6.gsm' (language 'en')
<SIP/200-00000059>AGI Tx >> 200 result=0
-- <SIP/200-00000059>AGI Script ectagi.php completed, returning 0
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.
Instrucciones:
El ejemplo arrojó la contraseña “palosanto”. Es posible que usted haya ingresado una diferente cuando
instaló Elastix.
LOGIN
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
ELASTIX® CERTIFICATION Lab-7
LOGOUT
labs
85
ELASTIX® CERTIFICATION 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.
Instrucciones:
Action: Login
Username: admin
Secret: password - (la misma contraseña que el laboratorio anterior)
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
labs
86
ELASTIX® CERTIFICATION 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.
Instrucciones:
cd /var/lib/asterisk/agi-bin/
vim myfile.agi
#!/usr/bin/php -q
<?php
require_once "/var/lib/asterisk/agi-bin/phpagi-asmanager.php";
$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.
labs
chown asterisk:asterisk 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
ELASTIX® CERTIFICATION Lab-8
Laboratorio 8.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
Instrucciones:
Una vez ahí seleccione “Add SIP Trunk”. Iniciaremos la configuración de la troncal en la ELASTIX A.
labs
88
ELASTIX® CERTIFICATION Lab-8
Definimos los detalles del peer como :
host=dynamic
secret=welcome
trunk=yes
type=friend
Definimos la cadena de registro como sigue (para este ejemplo asumiremos que 192.168.1.239 es la
IP de ELASTIX A y 192.168.1.240 es la IP de ELASTIX B):
elastixB:welcome@192.168.1.240
elastixA:welcome@192.168.1.239
labs
Una vez que hemos completado la configuración debemos hacer clic en submit y aplicar los cambios.
89
ELASTIX® CERTIFICATION Lab-8
labs
comando:
90
ELASTIX® CERTIFICATION Lab-8
El siguiente paso es definir los detalles del usuario, es decir en donde se quiere terminar la
llamada. En este caso queremos que sea accesible a la extensiones local, bastará con
colocar el contexto primario.
context=from-internal
host=192.168.1.240 (la IP de ELASTIX B)
insecure=very
type=friend
Ir a:
En el campo “USER Context” colocaremos contextA para ELASTIX A y contextB para ELASTIX B.
Ruta Saliente
Crearemos una ruta saliente para todas las llamadas que salgan hacia el otro servidor. En este caso
le pondremos como nombre: Elastixremota.
labs
91
ELASTIX® CERTIFICATION Lab-8
Luego escogemos porque troncal debe irse la llamada en este caso escogemos por la troncal PBXA.
En el caso de ELASTIX B seleccionamos PBXB.
Después debemos crear la ruta saliente en ELASTIX B de manera similar. Cuando estemos listos
podemos hacer llamadas entre ambos servidores.
Trate de hacer llamadas desde la extensión 200 en ELASTIX A, a la extensión 200 en ELASTIX B,
para esto es necesario marcar: 2200
labs
92
ELASTIX® CERTIFICATION Lab-8
Instrucciones:
Esquema
El módulo VoIP Provider de Elastix, permite crear una troncal SIP con proveedores embebidos en la
solución. Para este ejemplo debemos crear una troncal con la información de una cuenta existente.
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.com. Un procedimiento detallado de cómo crear la
cuenta se encuentra en el Anexo 1.
• Account Number
• PIN
• Número de teléfono
labs
93
ELASTIX® CERTIFICATION Lab-8
La información requerida es:
• VoIP Provider: la compañía que ofrece el servicio VoIP; para este ejemplo usaremos
Net2Phone
• Nombre de cuenta: un nombre de referencia; para este ejemplo usaremos N2P-ELX
• Username: El número de cuenta
• Secret: PIN
• CallerID de salida: Número de teléfono
Ahora debemos crear una ruta saliente para la nueva cuenta. Cree una con el nombre
INTERNATIONAL y defina el patrón de marcado. En este caso utilizaremos el siguiente patrón:
00.
labs
94
ELASTIX® CERTIFICATION Lab-8
Usted puede hacer llamadas desde cualquier extensión de su Elastix. Intente llamando a las oficina
de Elastix: +1-877-ELASTIX,
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.
Si usted necesita configurar un proveedor de VoIP no enlistado, usted puede crear una troncal SIP
en:
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. 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=from-pstn
allow= ulaw&alaw&gsm&ilbc&g726&adpcm&lpc10 / (the codecs supported by the provider)
trustrpid=no
sendrpid=no
canreinvite=no
myusername:mypassword@voip_provider_IP/myusername
labs
Luego podemos verificar que la troncal está registrada, en la consola de Aterisk (CLI)
95
ELASTIX® CERTIFICATION Lab-9
Descripción: Cree una tarifa de $0.15 usando el SIP ELASTIXA / ELASTIXB que creamos
anteriormente. El valor de la conexión (OFFSET) debe ser $0.01. 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. Para hacer eso ir a:
Una vez ahí seleccione la troncal requerida (SIP/elastixA) y haga clic en "Billing Capable / Habilitar
para facturar".
Ahora vaya a:
labs
Reports → Billing → Rate
Haga clic en "Create New Rate / Crear nueva tarifa" (Nombre referencial: REMOTELASTIX)
96
ELASTIX® CERTIFICATION Lab-9
Guarde la tarifa (rate) y haga dos llamadas para obtener algunos registros de facturación. Intente
llamando a la Elastix con la que hizo conexión en la práctica 8.1
Usted verá un detalle de llamadas con el costo calculado en base a la tarifa que configuramos.
labs
97
ELASTIX® CERTIFICATION Lab-9
Configuración Opcional
Ahora agregaremos una nueva tarifa para registrar las llamadas que se creen en la práctica 8.2. Inicie
el proceso nuevamente: habilitar troncal, crear la tarifa, hacer llamadas.
Realice llamadas a un número cualquiera, puede ser +1-877-3527849 (El número de Elastix) para
registrar esas llamadas en el reporte de facturación.
labs
98
ELASTIX® CERTIFICATION Lab-10
Calidad de Voz
Laboratorio 10.1
Objetivo: Entender y dominar el uso de las fórmulas que nos permiten determinar la calidad de voz
de una manera objetiva.
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. Ingrese a la consola como usuario root, escriba el siguiente comando:
Ie = 0
Packet
G.711 G.723.1 G.729A
Loss %
labs
0 0 11 15
1 3 15 18
2 5 18 20
4 7 20 25
8 9 22 28
16 20 24 30
99
ELASTIX® CERTIFICATION Lab-10
R = 94.2 – 1.2288 - 0
R = 92.9712
Fórmula Rango R
MOS =1 R<0
MOS = 1 + 0.035 * R + 7 * R*(R – 60)*(100 – R)*10-6 0 < R < 100
MOS = 4.5 R >100
MOS
Calidad Esfuerzo
rating
5 Excelente No hace falta esfuerzo alguno
Es necesario prestar atención pero no es necesario un
4 Buena
esfuerzo apreciable
3 Aceptable Esfuerzo moderado
labs
2 Pobre Gran esfuerzo
1 Buena No es posible entender la conversación
100
ELASTIX® CERTIFICATION Lab-11
Laboratorio 11.1
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, etc.
Instrucciones:
labs
Detenemos la captura, ingresando al menú Captura y haciendo clic en “Stop”.
Ingresamos la menú “Statistics” y hacemos clic en la opción “Graph Flow” y veremos lo siguiente:
101
ELASTIX® CERTIFICATION Lab-11
Identifiquemos los métodos y eventos que se intercambian entre los dispositivos y la central Elastix.
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
ELASTIX® CERTIFICATION Lab-11
Laboratorio 11.2
Objetivo: Adiestrar al estudiante al uso de sniffers para analizar tráfico RTP y generar y reproducir
el payload de una captura de paquetes.
Instrucciones:
Con la captura realizada de la práctica anterior, seleccionar el primer paquete RTP de dicha captura.
En el menú “Statistics” escoger la opción “RTP” y luego seleccionar la opción “Stream Analysis”.
Veremos lo siguiente:
labs
103
ELASTIX® CERTIFICATION Lab-11
Luego hacer click en el botón Payload y escoger el formato (.au) y en la opción Channels escoger
(both).
Abrir un reproductor, seleccionar el archivo payload1.au y escuchar la conversación.
labs
104
ELASTIX® CERTIFICATION Lab-12
Diagnóstico Básico
Laboratorio 12.1
Objetivo: Familiarizarse con el uso de la consola de Asterisk CLI, utilizando comandos básicos.
Instrucciones:
labs
105
ELASTIX® CERTIFICATION Lab-12
Use el comando “help”
labs
106
ELASTIX® CERTIFICATION Lab-12
Diagnóstico Básico
Laboratorio 12.2
Descripción: Ingresar a la consola de Asterisk y ejecutar los comandos “queue show”, “features show”,
“uptime show”, “core show version”, “show codecs”.
Objetivo: Familiarizarse con el uso de la consola de Asterisk CLI y con los comandos arriba mencionados.
Además entender la salida de dichos comandos y su utilidad.
Instrucciones:
labs
107
ELASTIX® CERTIFICATION Lab-12
Digitar el comando “uptime show” – (Muestra la información de uptime en segundos)
labs
Comando “sip show registry” – (Enlista el estatus de registro SIP)
108
ELASTIX® CERTIFICATION Lab-13
Instrucciones:
Para crear un nuevo dominio, haga clic en "Crear Dominio / Create Domain". Use el dominio:
elastixtest.com
Email → Accounts
labs
Primero debemos seleccionar el dominio, luego haga clic en "Crear una nueva cuenta / Create
Account"
109
ELASTIX® CERTIFICATION Lab-13
Configuración de RELAY
AntiSpam
Active el AntiSpam, coloque un nivel de seguridad de 6 y seleccione "Capturar Spam / Capture Spam"
como política.
Establezca como opción de eliminación la siguiente: "Eliminar el spam anterior a una semana / Delete
spam messages older than one week".
Remote SMTP
labs
Active la opción "SMTP Remote Delivery" y seleccione una cuenta GMAIL, Hotmail o Yahoo que
usted tenga para habilitación de envíos de mensaje a través de alguno de esos servicios.
Usaremos esta funcionalidad para enviar un correo a través de la interfaz web de correo.
110
ELASTIX® CERTIFICATION Lab-13
RoundCube
Ingrese a la Interfaz Web de Mail con una de las cuentas que creó anteriormente (ej.:
sales@elastixtest.com) y envíe un correo.
para ingresar usted debe escribir el nombre completo de la cuenta, ej.: admin@elastixtest.com
Si usted configuró un servicio SMTP Remoto de envío en Elastix podrá enviar mensajes desde la
interfaz.
Haga clic en "Crear un nuevo mensaje" y envíe un correo con sus datos a training@palosanto.com
labs
111
ELASTIX® CERTIFICATION Lab-13
Vacations
labs
112
ELASTIX® CERTIFICATION Lab-14
Laboratorio 14.1
Descripción: Crear la extensión IAX 300X y asociarla a un fax virtual. Desde el Fax físico del
laboratorio, enviar una fax a cada fax virtual y verificar en el visor de fax la recepción del mismo.
Instrucciones:
Cree las extensiones IAX 301X (301) y 302X (302). Una vez que haya creado las extensiones ir a:
En el campo "email asociado", coloque un email existente para recibir un Fax. (puede ser una cuenta
personal, gmail, hotmail, mail corporativo, etc)
Una vez creada la extensión tomará un par de minutos en inicializar. Como usted puede ver, el
servidor de Fax crea dos dispositivos: ttyIAX1 y ttyIAX2, ambos se encuentran en estado "Running
and idle" a la espera de la llegada de algún Fax.
labs
Ingrese a la consola de Elastix como usuario root e ingrese al Asterisk CLI. Una vez ahí escriba el
comando "iax2 show peers", usted obtendrá la siguiente pantalla:
113
ELASTIX® CERTIFICATION Lab-14
En este ejemplo nuestras extensiones de fax virtual son 301 y 302, deben tener status OK.
Salga del CLI y de la consola.
labs
114
ELASTIX® CERTIFICATION Lab-14
Laboratorio 14.2
Descripción: Enviar un fax utilizando el comando sendfax hacia uno de los faxes virtuales creados
en el laboratorio anterior.
Instrucciones:
Es importante indicar que la opción -h obliga a que los trabajos sean procesados a través de un host
específico y, opcionalmente, usando un modem en particular; en este caso ttyIAX1@127.0.0.1. El
receptor será la extensión 302 (la cual es además el otro fax virtual).
Si usted va a la interfaz de Elastix “Fax → Virtual Fax” usted verá el siguiente proceso:
labs
El dispositivo ttyIAX1 (301X) está enviando un fax y ttyIAX2 (302X) está recibiendo el fax.
115
ELASTIX® CERTIFICATION Lab-14
Una vez que el proceso concluye ir a Fax → Fax viewer y revise el nuevo fax.
Podemos observar un fax enviado desde la extensión 301 a 302X - 302. Usted puede editar el
"Nombre de Compañía" y "Fax de Compañía" para búsquedas futuras.
Si usted configuró los fax virtuales con correos válidos, y la plantilla con la información indicada de
correo, usted debería ver un mensaje de correo de "Elastix Certification Course" con un PDF adjunto.
Abra el PDF adjunto, usted debería ver algo similar a la siguiente imagen:
Vaya a Fax → Fax viewer nuevamente y abra el archivo recibido, usted podrá observar el mismo
archivo. Es importante notar que usted puede revisar un fax en la interfaz de Elastix o en su correo
electrónico.
labs
116
ELASTIX® CERTIFICATION Lab-14
Descripción: Envíe un fax desde la interfaz Elastix hacia una de los fax virtuales creados en el laboratorio
14.1.
Instrucciones:
Ir a:
Envíe un fax desde el dispositivo 301 al número de fax 302. Incluya el siguiente texto:
ElastixWorld is the ideal place where end users, partners, resellers, integrators
and developers will have the opportunity to share experiences, show new products
and create business opportunities with the Elastix community around the world.
labs
117
ELASTIX® CERTIFICATION Lab-14
Vaya a Fax → Fax viewer, ahí observará un nuevo fax, revíselo. Usted recibirá además el fax en su
correo.
La razón se debe a que utilizamos un fax virtual creado en el sistema. El módulo guarda faxes que
son enviados y recibidos a través de la interfaz.
Ahora enviaremos un documentos adjunto. Para este propósito utilizaremos un archivo PDF. Vaya a
http://elx.ec/partners
Envíe el fax desde 301 a 302, seleccione "File Upload" y ubique el pdf
(elastix_reseller_program_esp.pdf)
Espere unos minutos hasta que el fax haya sido enviado y recibido, vaya a Fax → Fax viewer. Si todo
salió bien, usted debe ver 5 faxes:
Abra el último fax recibido y podrá ver el brochure del programa de resellers Elastix en formato de fax.
labs
118
ELASTIX® CERTIFICATION Lab-15
Objetivo: Instalar Openfire con una base de datos Mysql, crear la base de datos y el usuario de
dicha base de datos.
Instrucciones:
Ir al directorio
cd /opt/openfire/resources/database
Una vez en el directorio ejecutar el siguiente comando para crear la base de datos openfire
La clave de root de mysql la ingresamos durante la instalación de Elastix. Para este caso es
“palosanto”
labs
119
ELASTIX® CERTIFICATION Lab-15
Crear el usuario Openfire con todos los privilegios para ejecutar las sentencias SQL en la base de
datos Openfire.
Luego digite:
labs
120
ELASTIX® CERTIFICATION Lab-15
Configuramos el lenguaje
Especificamos el dominio del sistema, coloquemos el mismo dominio que nuestra Elastix.
labs
Una vez que seleccionamos una base de datos externa, tendremos que indicar la información
correspondiente.
121
ELASTIX® CERTIFICATION 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.
labs
122
ELASTIX® CERTIFICATION Lab-15
labs
123
ELASTIX® CERTIFICATION Lab-15
Instrucciones:
Una vez que ingresamos a la interfaz de administración podemos crear cuentas para usuarios e
instalar plugins.
labs
Hacemos clic en el menú “Asterisk-IM” para iniciar la configuración
124
ELASTIX® CERTIFICATION Lab-15
Seleccionamos la opción “Enabled” y colocamos “default” en el campo “Asterisk Context”. Una vez
hecho esto hacemos clic en save.
Inmediatamente observaremos la opción “Add Server”, hacemos clic para configurar la funcionalidad
“Phone Server”.
labs
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
125
ELASTIX® CERTIFICATION 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.
Nota: el hostname es vital para casos que necesiten resolución por DNS
labs
126
ELASTIX® CERTIFICATION Lab-15
Como podemos observar, los campos requeridos obligatorios son el usuario y la contraseña.
Ahora es necesario mapear los usuarios creados con extensiones disponibles en nuestra Elastix.
Tenemos creadas la extensión 200, 201 y 202.
• Username: jdoe
• Device: SIP/200
• Extension: 200
• Caller ID: 200
• Primary: check
labs
Hacemos lo mismo con ggalilei.
127
ELASTIX® CERTIFICATION Lab-15
Objetivo: Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de la
mensajería Instantánea con Elastix.
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.
En el caso de otro cliente IM, 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, 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.
128
ELASTIX® CERTIFICATION Lab-15
En la siguiente imagen podemos observar como se inicia la llamada al hacer clic en el ícono de
teléfono.
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.
labs
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.
129
ELASTIX® CERTIFICATION Lab-18
Seguridad
Laboratorio 18.1
Instrucciones:
1. Para cambiar la configuración de Elastix debemos ingresar a la interfaz web de Elastix como
Administradores.
labs
3. Habilitaremos el acceso a freePBX como se muestra a continuación y cambiaremos su password
130
ELASTIX® CERTIFICATION Lab-18
4. Hacemos clic en “Guardar”
7. Deshabilitaremos el acceso a freePBX sin embeber en el apartado de Advanced Settings dentro del
módulo de seguridad.
passwd
3. Al hacer esto, el equipo nos solicitará la contraseña nueva, la ingresamos y presionamos enter.
labs
Cambiar contraseña del usuario root de mysql
Ej: Si la clave actual es palosanto y queremos cambiarla a worldelastixnow la sentencia debe ser:
131
ELASTIX® CERTIFICATION Lab-18
3. Hacemos clic en enter y si todo salió bien obtendremos únicamente una nueva línea.
mysql -u root –p
vim /etc/amportal.conf
labs
3. Cambiar la clave remplazando la cadena de texto luego del signo "=" , como se muestra a
continuación:
FOPPASSWORD=nuevaclave
132
ELASTIX® CERTIFICATION Lab-18
Seguridad
Laboratorio 18.2
Objetivo: Aprender a cerrar todos los puertos menos los estrictamente necesarios para el
funcionamiento de nuestra Central
Instrucciones:
2. Activar el firewall presionando el botón "Activar Cortafuegos" tal como se muestra a continuación.
labs
133
ELASTIX® CERTIFICATION Lab-18
3. Realizar un escaneo local de puertos utilizando el comando "nmap -v -A localhost"
labs
134
ELASTIX® CERTIFICATION Lab-18
Seguridad
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
Instrucciones:
Ingresamos a la consola de Elastix como usuario root. Una vez en la consola ejecutamos las
siguientes líneas:
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, grabamos la configuración con el siguiente comando:
135
ELASTIX® CERTIFICATION Lab-18
Seguridad
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.
3. Hacer click en el link "Cambiar Clave" que aparecerá a continuación de nuestra extensión
comprometida.
labs
136
ELASTIX® CERTIFICATION Lab-17
Desempeño
Laboratorio 17.1
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.
Instrucciones:
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
labs
Grabar y Salir (Esc → :wq)
vim extensions_custom.conf
137
ELASTIX® CERTIFICATION Lab-17
Agregar las siguientes líneas al archivo
[from-internal-custom]
include => sipp_context
[sipp_context]
exten => 2222,1,Answer
exten => 2222,n,MusicOnHold(default)
exten => 2222,n,Hangup
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.
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.
labs
De la misma manera vamos a PBX → PBX Configuration → Configuración General y activamos la
opción: “Allow Anonymous Inbound SIP Calls?”
138
ELASTIX® CERTIFICATION Lab-17
Ejecutando Sipp
Una vez que hemos completado la configuración inicial estamos listos para ejecutar sipp y generar
llamadas a nuestro servidor.
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
Como podemos observar el comando tiene configuradas 10 llamadas por segundo con un límite
máximo de 10 llamadas.
labs
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.
139
ELASTIX® CERTIFICATION Lab-17
Consola 1: comando sipp
Consola 2: comando top
Consola 3: Asterisk CLI: asterisk –r
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:
labs
Paramos la ejecución de sipp con ctrl-c, y obtenemos un reporte:
140
ELASTIX® CERTIFICATION 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:
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).
labs
En la consola inferior podemos ver el número de llamadas y canales en curso mientras revisamos
nuestros datos.
141
ELASTIX® CERTIFICATION Lab-17
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:
Al ejecutar este comando observaremos en las consolas de la izquierda, que Asterisk no está
generando procesamiento y no hay llamadas activas al momento.
Consola derecha:
sipp -sn uac -d 2000000 -s 2222 -i 127.0.0.1 -p 6000 127.0.0.1 -users 40
Recuerde ejecutar los comandos en las consolas de la izquierda primero y sipp después.
Consumo % de Asterisk
labs
Como era de esperar, el consumo de recursos, por parte de Asterisk, fue mayor con 40 llamadas
concurrentes.
142
ELASTIX® CERTIFICATION 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.
labs
143
ELASTIX® CERTIFICATION Lab-17
Desempeño
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.
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
labs
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.
144
ELASTIX® CERTIFICATION 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.
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.
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
labs
Al ejecutar ./getUSAGE el script demorará alrededor de 30 segundos mientras toma los datos de
procesamiento y memoria.
145
ELASTIX® CERTIFICATION Lab-17
Una vez que el script haya culminado podemos ingresar al archivo txt generado de la siguiente
manera:
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
labs
146
Lab-19
ELASTIX® CERTIFICATION
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
Instrucciones:
#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;
}
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:
labs
147
Lab-19
ELASTIX® CERTIFICATION
NOTA: SIGFPE es una señal enviada a un proceso ó programa cuando se realiza una operación
errónea de punto flotante.
labs
148
Lab-19
ELASTIX® CERTIFICATION
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.
Instrucciones:
Installed:
gdb.i386 0:7.0.1-42.el5.centos
Complete!
labs
149
Lab-19
ELASTIX® CERTIFICATION
Crear el archivo imprime.c en el directorio /opt
#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;
}
Ejecutar el comando gdb con la opción -q para el programa imprime, como sigue:
labs
150
Lab-19
ELASTIX® CERTIFICATION
En el prompt de gdb, crear los “breaks” para el programa imprime, como sigue:
(gdb) run
Vamos avanzando línea por línea con el comando step, como sigue:
--
(gdb) step
labs
151
Lab-19
ELASTIX® CERTIFICATION
Ingresamos un valor y ejecutamos el comando “print a” , para imprimir el valor de la variable “a”:
10 scanf("%d", &a);
(gdb) step
(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.
Quit anyway? (y or n) y
labs
152
ELASTIX® CERTIFICATION 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.
Instrucciones:
Una vez que hemos instalado el addon, dirigirse a PBX → Distributed DialPlan y completar el
formulario inicial.
labs
153
ELASTIX® CERTIFICATION 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.
labs
Presionar el botón "Aceptar"
154
ELASTIX® CERTIFICATION Lab-20
Una vez finalizado el proceso obtendremos el siguiente resultado, y podremos realizar llamadas entre
las dos centrales.
Desde la extensión 200 del servidor 1, marque a la extensión 400. Si todo fue configurado
correctamente debería conectar una llamada.
labs
155
ELASTIX® CERTIFICATION Anexo 1
Anexo 1
labs
156
ELASTIX® CERTIFICATION Anexo 1
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.org
http://n2pelastix.com
labs
Hacemos click en “Regístrate”.
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. Incluimos
una serie de Screenshots con el formulario para su revisión.
157
ELASTIX® CERTIFICATION Anexo 1
Información de monto
labs
158
ELASTIX® CERTIFICATION Anexo 1
Nota importante:
labs
hemos ingresado.
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, el estado y la ciudad. Ver imagen siguiente.
159
ELASTIX® CERTIFICATION Anexo 1
Una vez que completamos todo el llenado de la información de toda la información obligatoria,
hacemos click en “envia el siguiente” y la cuenta se creará.
labs
160
ELASTIX® CERTIFICATION Anexo 1
Su número de Cuenta
Su PIN
Su número de teléfono
labs
161