Вы находитесь на странице: 1из 97

 

Configuración Básica de Elastix


LABORATORIO CAPITULO 06

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 6.1
Capítulo:
Configuración Básica de Elastix

Descripción: En este laboratorio haremos la configuración básica de nuestra central, se configurará la red con 1 IP
estático, se creará una extensión sip y se probará la misma

Objetivo: Familiarizarse con la configuración básica de Elastix

Tiempo Máximo: 20 minutos.

Instrucciones:

• Elastix por defecto se configura con ip dinámico a través de dhcp, lo más probable es que tengamos que
asignar un ip estático a nuestra central. Para esto ingresamos a la central y nos vamos al menú sistema-red.
Una vez ahí seleccionamos la interfase de red que queremos configurar (ej. Ethernet 1). Obtendremos la
siguiente pantalla:

• Es muy probable que debamos cambiar la configuración de host, dns y puerta de enlace. Esto lo hacemos
entrando a la opción modificar parámetros de red la pantalla principal de configuración de red.

• Lo siguiente que haremos es crear una extensión para poder probar nuestra configuración. Para esto nos
vamos al menú pbx y creamos una extensión sip;
 

• Ahora configuramos una extensión con la configuración básica. Para este ejemplo hemos creado la
extensión 200 con el nombre “Usuario de Pruebas” y la contraseña “secreto123”.

• Para este ejercicio utilizaremos ekiga que es un softphone libre disponible para Windows y Linux. Algo
similar debería hacer usted para configurar un teléfono IP u otro softphone. Para más información visite
(http://www.ekiga.net).

• La primera vez que corramos ekiga nos aparecerá un asistente de configuración con 10 pasos para
configurar. En el tercer paso nos aseguramos de seleccionar no quiero registrarme en el servicio gratuito de
ekiga.net.
 

• En el paso 4 seleccionamos el tipo de red en la que estamos trabajando. Para el laboratorio lo más probable
es que trabaje en una red lan.

• En el paso 5 seleccionamos stun si nuestro softphone debe pasar a través de nat para llegar al servidor.
Esto es útil si usamos el softphone desde una laptop en un lugar remoto con IP privada.

• En los siguientes 5 pasos seguimos la configuración que se adapte a nuestros requerimientos de pc y


sistema operativo y creamos una cuenta nueva en ekiga. Para esto en el menú de ekiga vamos al menú
editar y seleccionamos cuentas. Luego seleccionamos añadir:

Ahora probamos marcando al número *43 y hacer una prueba de eco con nuestra central como se puede ver en la
imagen:
 

Laboratorio 6.2
Capítulo:
Configuración Básica de Elastix

Descripción: En este laboratorio se harán configuraciones adicionales a elastix como son salas de conferencias y
colas. Es importante para este laboratorio tener 3 o más extensiones configuradas en nuestro equipo de prueba.

Objetivo: Familiarizarse con la configuración básica de Elastix

Tiempo Máximo: 20 minutos.

Instrucciones:

• Crearemos una cola de atención que timbrará a las extensiones 200, 201 y 203 cuando se marque la
extensión 202. Para esto ingresamos al menú Elastix -> PBX -> Colas.

• Crearemos una sala de conferencia con el número 300 donde al llamar a este número 3 o más personas
podrán hablar a la vez. Para esto nos vamos a Sistema -> PBX -> Conferencias.

• Ahora intente llamar a esta conferencia desde varios teléfonos y podrán hablar varias personas
simultáneamente.
 
 

Asterisk
LABORATORIO CAPITULO 08

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 8.1
Capítulo:
Asterisk

Descripción: Crear su propio archivo de plan de marcado.

Objetivo: Entender el funcionamiento de un plan de marcado, familiarizarse con los archivos de configuración y
practicar la sintaxis de la gramática de un plan de marcado.

Tiempo Máximo: 5 minutos.

Instrucciones:

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


• Incluir al final del archivo la siguiente linea:

#include extensions_custom_XXXXX.conf, donde XXXXX es su primer nombre.

• Grabar y Salir.
• Crear el archivo extensions_custom_XXXXX.conf

[root@elastix asterisk]# vi extensions_custom_XXXXX.conf

• Grabar y Salir.
• Cambiarle los permisos y propietario al archivo extensions_custom_XXXXX.conf

[root@elastix asterisk]# chmod 644 extensions_custom_XXXXX.conf


[root@elastix asterisk]# chown asterisk:asterisk extensions_custom_XXXXX.conf

• Recargar asterisk:

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


 

Laboratorio 8.2
Capítulo:
Asterisk

Descripción: Crear un plan de marcado para llamar a las extensiones 502 y 503, crear un plan de marcado para
marcar hacia una PSTN.

Objetivo: Entender el funcionamiento de una plan de marcado, familiarizarse con los archivos de configuración y
practicar la sintaxis de la gramática de un plan de marcado.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom_XXXXX.conf.


• Agregar las siguientes lineas al archivo extensions_custom_XXXXX.conf

[custom-lab4]
exten=>502,1,Dial(SIP/502)•
exten=>503,1,Dial(SIP/503)
exten=>9,1,Dial(ZAP/g0,20,r)•

• Grabar y Salir.
• Incluir el contexto [custom-lab4] dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
• Recargar asterisk:

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


 

Laboratorio 8.3
Capítulo:
Asterisk

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.

Objetivo: Familiarizarse con la creación de contextos y las funciones Record y Playback.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom_XXXXX.conf.


• Agregar las siguientes líneas al archivo extensions_custom_XXXXX.conf

[custom-recordme]
exten => 5678,1,Wait(2)•
exten => 5678,2,Record(custom/bienvenidocurso:gsm,0)•
exten => 5678,3,Wait(2)•
exten => 5678,4,Playback(custom/bienvenidocurso)•
exten => 5678,5,Wait(2)•
exten => 5678,6,Hangup

• Grabar y Salir.
• Incluir el contexto creado dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
• Recargar asterisk:

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


 

Laboratorio 8.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().

Objetivo: Familiarizarse con la creación de contextos y las aplicaciones Background(), WaitExten() y Dial().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom_XXXXX.conf.


• Agregar las siguientes lineas al archivo extensions_custom_XXXXX.conf

[custom-lab6]
exten => 3998,1,Background(custom/bienvenidocurso)•
exten => 3998,n,WaitExten(,)
exten => 1,1,Dial(SIP/501)•
exten => 2,1,Dial(SIP/502)•

• Grabar y Salir.
• Incluir el contexto creado dentro del contexto [from-internal-custom] ubicado en el archivo
/etc/asterisk/extensions_custom.conf
• Recargar asterisk:

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


 

Laboratorio 8.5
Capítulo:
Asterisk

Descripción: Crear un contexto que implemente un IVR de 3 opciones en donde la primera opción sea marcar a
una extensión, la segunda opción reproducir un audio y la tercera opción marcar a dos extensiones
simultáneamente.

Objetivo: Familiarizarse con la creación de contextos y las funciones Background, WaitExten.

Tiempo Máximo: 20 minutos.

Instrucciones:

• Crear el audio “hoyeslaborable”.


• Editar el archivo /etc/asterisk/extensions_custom.conf.
• Escribir el siguiente contexto al final del archivo

[custom-ivr]
exten => 3999,1n,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/bienvenidocurso)
exten => 3999,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Dial(SIP/503)
exten => 1,n,Hangup()
exten => 2,1,Playback(custom/hoyeslaborable)
exten => 2,n,Hangup()
exten => 3,1,Dial(SIP/501&SIP/503)
exten => 3,n,Hangup()
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
exten => t,1,Hangup()

• Incluir el contexto [custom-ivr] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.6
Capítulo:
Asterisk

Descripción: Crear el contexto del laboratorio anterior pero usando las aplicación Goto().

Objetivo: Familiarizarse con la creación de contextos y la aplicación Goto().

Tiempo Máximo: 20 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.


• Agregar el siguiente contexto al final del archivo.

[custom-lab8]
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/bienvenidocurso)
exten => 4000,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Goto(ext-503,s,1)
exten => 2,1,Goto(toca-audio,s,1)
exten => 3,1,Goto(ext-doble,s,1)
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
exten => t,1,Hangup()
[ext-503]
exten => s,1,Dial(SIP/503)
exten => s,n,Hangup()
[toca-audio]
exten => s,1,Playback(custom/hoyeslaborable)
exten => s,n,Hangup()

[ext-doble]
exten => s,1,Dial(SIP/501&SIP/503)
exten => s,n,Hangup()

• Incluir el contexto [custom-lab8] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.7
Capítulo:
Asterisk

Descripción: Crear un contexto que solicite una autenticación antes de marcar una extensión usando la aplicación
Authenticate().

Objetivo: Familiarizarse con la creación de contextos y la aplicación Authenticate().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.


• Agregar el siguiente contexto al final del archivo.

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

• Incluir el contexto [custom-lab9] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.8
Capítulo:
Asterisk

Descripción: Crear un contexto que requiera autenticación antes de dar tono de marcado por medio de la
aplicación DISA.

Objetivo: Familiarizarse con la creación de contextos y la aplicación Disa().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.


• Agregar el siguiente contexto al final del archivo.

[custom-lab10]
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()

• Incluir el contexto [custom-lab10] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.9
Capítulo:
Asterisk

Descripción: Crear un contexto que solicite una extensión y luego reproduzca la extensión ingresada usando la
aplicación SayDigits().

Objetivo: Familiarizarse con la creación de contextos y la aplicación SayDigits().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Utilizar la aplicación record() para grabar el audio “ingrese4digitos”.


• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.
• Agregar el siguiente contexto al final del archivo.

[custom-lab11]
exten => 4003,1,Answer
exten => 4003,n,Set(CHANNEL(language)=es)
exten => 4003,n,Background(custom/ingrese4digitos)
exten => 4003,n,WaitExten(,)
exten => _X.,1,SayDigits(${EXTEN})
exten => _X.,n,Hangup()

• Incluir el contexto [custom-lab11] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.10
Capítulo:
Asterisk

Descripción: Crear un contexto que solicite un número y luego reproduzca el número ingresado usando la
aplicación SayNumber().

Objetivo: Familiarizarse con la creación de contextos y la aplicación SayNumber().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Utilizar la aplicación record() para grabar el audio “ingresenumero”.


• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.
• Agregar el siguiente contexto al final del archivo.

[custom-lab12]
exten => 4004,1,Answer
exten => 4004,n,Set(CHANNEL(language)=es)
exten => 4004,n,Background(custom/ingresenumero)
exten => 4004,n,WaitExten(,)
exten => _X.,1,SayNumber(${EXTEN})
exten => _X.,n,Hangup()

• Incluir el contexto [custom-lab12] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.11
Capítulo:
Asterisk

Descripción: Crear un contexto que solicite una extensión y luego deletree su nombre usando la aplicación
SayAlpha().

Objetivo: Familiarizarse con la creación de contextos y la aplicación SayAlpha().

Tiempo Máximo: 10 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.


• Agregar el siguiente contexto al final del archivo.

[custom-lab13]
exten => 4005,1,Answer
exten => 4005,n,Set(CHANNEL(language)=es)
exten => 4005,n,SayAlpha(Alfredo)
exten => 4005,n,Hangup()

• Incluir el contexto [custom-lab13] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.12
Capítulo:
Asterisk

Descripción: Crear un contexto que solicite una extensión a espiar y luego intervenga una conversación actual
usando la aplicación ChanSpy().

Objetivo: Familiarizarse con la creación de contextos y la aplicación ChanSpy().

Tiempo Máximo: 10 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.


• Agregar el siguiente contexto al final del archivo.

[custom-lab14]
exten => 4006,1,Read(puerto,conf-getchannel,4)
exten => 4006,n,ChanSpy(SIP/${puerto})
exten => 4006,n,Hangup

• Incluir el contexto [custom-lab14] dentro del contexto [from-internal-custom]


• Recargar asterisk:

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


 

Laboratorio 8.13
Capítulo:
Asterisk

Descripción: Realizar una llamada desde la consola de asterisk usando el módulo chan_oss.so y el comando dial.

Objetivo: Familiarizarse con la consola de asterisk y usar el módulo chan_oss.so como herramienta de testeo.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Ingresar al asterisk CLI

[root@elastix opt]# asterisk -r

• Cargar el módulo chan_oss.so con el siguiente comando:

elastix*CLI> module load chan_oss.so


== Parsing '/etc/asterisk/oss.conf': Found
== Registered channel type 'Console' (OSS Console Channel Driver)
Loaded chan_oss.so => (OSS Console Channel Driver)

• Marcar a una extensión desde la consola:

elastix*CLI> dial 500

• Transferir la llamada a otra extensión:

elastix*CLI> console transfer 503@from-internal

 
 

Configuración de Hardware
LABORATORIO CAPITULO 09

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 9.1
Capítulo:
Configuración de Hardware

Descripción: Se configurará una tarjeta análoga y una digital a través de la interfaz web de Elastix

Objetivo: Configurar Hardware con Elastix

Tiempo Máximo: 10 minutos

Instrucciones

• Ingresar a la interfaz web de Elastix y seleccionar el menú de Detección de Hardware dentro de la categoría
Sistema.
• Seleccionar detectar Hardware.
• Selecciona la opción remplazar zapata.conf
• Listo su hardware ya está configurado

• Ahora desmontar la tarjeta de la ranura PCI y coloca una tarjeta E1/T1 y sigue los pasos anteriores, pero
seleccionando la opción: “Detección de hardware ISDN”.

 
 

Elastix Configuración Avanzada


LABORATORIO CAPITULO 10

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 10.1
Capítulo:
Elastix Configuración Avanzada

Descripción:
Crear una tarifa de $0.15 para el uso de la troncal Zap/g0 con un valor de conexión de $0.01. Hacer una llamada
por la troncal y verificar los datos registrados en el reporte de tarifación.

Objetivo:
Familiarizarse con el uso del módulo de Tarifación de Elastix.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Configurar la tarifación con los siguientes valores:

• Crear la Tarifa con los siguientes valores:

• Realizar una llamada por la troncal Zap/g0

• Verificar en el Reporte de Facturación el valor facturado.

 
 

Interconexión con Elastix


Remotos
LABORATORIO CAPITULO 12

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 12.1
Capítulo:
Interconexión con Elastix Remotos

Descripción: Inteconectar dos centrales Elastix en la que se podrán comunicar extensiones de la central A con las
extensiones de la central B

Objetivo: Practicar la creación de troncal SIP.

Tiempo Máximo: 30 minutos.

Instrucciones:

• Esquema

Central A Central B
ELX-3000 ELX-3000

Teléfono A Teléfono B

• Logonearse en la interface Elastix, hacer “click” en la pestaña “PBX”, uego escoger en el menú izquierdo la
opción “Trunk” y hacemos “click” en “Add SIP Trunk”.

• Definimos el nombre de la troncal el cual en nuestro caso servirá de username para el proceso de registro.
A la troncal de la central A le llamaremos elastixA y la troncal de la central B le llamaremos elastixB y
definimos los detalles del peer como :

host=dynamic
secret=welcome
trunk=yes
type=friend

Configuración que se repite en ambos elastix. Como se ve hemos definido como “secret” la palabra “welcome”.

• Definimos el register string con sigue:

Para la central A debería ser:

elastixB:welcome@192.168.1.240

y para la central B debería ser:

elastixA:welcome@192.168.1.239

• Verificamos en el asterisk cli si se encuentran registradas las troncales mediante el comando: sip show
registry y deberíamos ver algo como esto:
 

elastix*CLI> sip show registry


Host Username Refresh State Reg.Time
192.168.1.240:5060 elastixB 105 Registered Fri,11 Apr 2008 10:29:43

• El siguiente paso es definir los detalles del user, 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
insecure=very
type=friend

• Determinamos la ruta saliente. En este caso le pondremos: HaciaOtraElastix y definimos el patrón de


marcado, en este caso usaremos el siguiente patrón de marcado:

2|XXX.

• Luego escogemos la troncal por que debe salir la llamada en este caso escogemos por la troncal
sip/elastixA. Lo mismo aplica para la central B.
 

Laboratorio 12.2
Capítulo:
Interconexión con Elastix Remotos

Descripción: Interconectar la central Elastix con el proveedor de llamadas internacionales VoicePulse y realizar
llamadas hacia otros países.

Objetivo: Practicar la implementación de conexiones SIP con VSP.

Tiempo Máximo: 30 minutos.

Instrucciones:

• Esquema

• Definimos el nombre de la troncal en este caso le llamaremos: VP-SIP-NYC

• Luego definimos las características del peer. En nuestro caso deberá ser de la siguiente forma:

allow=ulaw&alaw&gsm&ilbc&g726&adpcm&lpc10
canreinvite=no
disallow=all
dtmfmode=info
fromuser=myusername
host=nyc.voicepulse.com
qualify=5000
secret=mypassword
sendrpid=yes
type=peer
username=myusername

• Luego agregamos la cadena de registro que en nuestro caso sería:

myusername:mypassword@nyc.voicepulse.com

• Verificamos que la troncal se encuentre registrada por medio de la consola de asterisk:

elastix*CLI> sip show registry


Host Username Refresh State Reg.Time
nyc.voicepulse.com:5060 myusername 105 Registered Fri,11 Apr 2008
10:29:43

• Creamos la ruta saliente con nombre INTERNACIONAL y definimos el patrón de marcado, en este caso
usaremos el siguiente patrón de marcado:
00.

• En tercer lugar escogemos la troncal por la que debe salir la llamada en este caso escogemos por la troncal
SIP/VP-SIP-NYC.
 

Calidad de Voz
LABORATORIO CAPITULO 13

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 13.1
Capítulo:
Calidad de Voz

Descripción:
Calcular el parámetro R del modelo E usando la fórmula simplificado y la tabla Ie vs pérdida de paquete para la
red del laboratorio y obtener el respectivo valor de la escala MOS. Usar el codec g.711.

Objetivo:
Entender y dominar el uso de las fórmulas que nos permiten determinar la calidad de voz de una manera objetiva.

Tiempos Máximo: 15 minutos.

Instrucciones:

• Determinar el retardo de un punto de un punto específico de la red usando el comando “ping” como se
muestra en el gráfico:

• Calcular el valor de Ie de acuerdo a la tabla con un valor de porcentaje paquetes perdidos igual al 0%. En
este caso el valor es 0.

Ie = 0

Packet Loss % G.711 G.723.1 G.729A


0 0 11 15
1 3 15 18
2 5 18 20
4 7 20 25
8 9 22 28
16 20 24 30
 

• Calcular el valor de Id con la fórmula respectiva reemplazando el valor de retardo, en este caso 2.70 ms.

Id = 0.024 · 2.70 + 0.11 · (2.70 – 177.3) · H(2.70 – 177.3)

Id = 0.0648

• Calcular el valor de R reemplazando los valores obtenidos en la fórmula correspondiente.

R = 94.2 – 0.0648 – 0

R = 94.1352

• Traducir a la escala MOS reemplazando el valor obtenido de R en la fórmula correspondiente.

MOS = 1 + 0.035 · 94.1352 + 7 · 94.1352 · (94.1352 – 60) · (100 – 94.1352) · 10-6

MOS = 1 + 3.2947 + 0.1319

MOS = 4.4266

• Este resultado indica que la calidad está muy cerca a la excelencia.

 
 

SIP y RTP al descubierto


LABORATORIO CAPITULO 14

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 14.1
Capítulo:
SIP y RTP al descubierto

Descripción:
Usar la herramienta wireshark para capturar la conversación entre su extensión y la de otro compañero del curso y
obtener el gráfico de intercambio de eventos y métodos de dicha conversación.

Objetivo:
Ver de manera gráfico el intercambio de métodos de una conversación e identificar los eventos de contestación,
colgado de una llamada, etc.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Iniciar el wireshark e iniciar la captura en la interface eth0.

• Iniciar una llamada hacia alguna extensión de un compañero de curso.

• Veremos que wireshark empezará a capturar paquetes como se muestra en el gráfico:

• Detenemos la captura, ingresando al menú Captura y haciendo click en “Stop”.

• Ingresamos la menú “Statistics” y hacemos click en la opción “Graph Flow” y veremos lo siguiente:
 

• 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 la menú “Statistics” y hacer click en la opción “SIP”. Veremos algo como sigue:
 

Laboratorio 14.2

Capítulo:
SIP y RTP al descubierto

Descripción:
Usar la herramienta wireshark para capturar la conversación entre su extensión y la de otro compañero del curso y
analizar los paquetes RTP, generar un archivo (.au) y reproducir el payload de los paquetes que forman esa
conversación.

Objetivo:
Adiestrar al estudiante al uso de sniffers para analizar tráfico RTP y generar y reproducir el payload de una captura
de paquetes.

Tiempo Máximo: 10 minutos.

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:
 

• Luego hacer click en el botón Payload y escoger el formato (.au) y en la opción Channels escoger (both).
Colocar como nombre de archivo payload1.au

• Abrir un reproductor, seleccionar el archivo payload1.au y escuchar la conversación.

 
 

Diagnóstico básico
LABORATORIO CAPITULO 15

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 15.1
Capítulo:
Diagnóstico Básico

Descripción: Ingresar a la consola de asterisk y ejecutar los comandos “?”, “help”.

Objetivo: Familiarizarse con el uso de la consola de asterisk CLI, utilización de ciertos comandos básicos.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Ingresar a la consola de asterisk

root@elastix:~$ asterisk -r

• Obteniendo el prompt de la consola

Asterisk 1.4.17, Copyright (C) 1999 - 2006 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for
details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it
under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.4.17 currently running on extranet (pid = 12312)
Verbosity is at least 3
elastix*CLI>

• Listando los comandos con “?”

elastix*CLI>
! abort add ael agent agi cb
cdr clear convert core database debug
dialplan dnsmgr dont dump dundi extensions
feature file group help http iax2
include indication init keys load local
logger manager meetme mgcp mixmonitor module moh
no originate queue realtime reload remove
restart rtcp rtp say set show sip
sla soft stop stun udptl unload voicemail

• Usando el comando “help”

elastix*CLI> help
! Execute a shell command
abort halt Cancel a running halt
ael debug contexts Enable AEL contexts debug (does nothing)
ael debug macros Enable AEL macros debug (does nothing)
ael debug read Enable AEL read debug (does nothing)
ael debug tokens Enable AEL tokens debug (does nothing)
ael nodebug Disable AEL debug messages
ael reload Reload AEL configuration
agent logoff Sets an agent offline
agent show Show status of agents
 

Laboratorio 15.2
Capítulo:
Diagnóstico Básico

Descripción: Ingresar a la consola de asterisk y ejecutar los comandos “show queues”, “show features”, “show
uptime”, “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.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Digitar el comando “show queues”

elastix*CLI> show queues


900 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime),
W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers

default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime),


W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers

• Digitar el comando “show features”

elastix*CLI> show features


Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # ##
Attended Transfer *2
One Touch Monitor *1
Disconnect Call * **
Park Call

Dynamic Feature Default Current


--------------- ------- -------
(none)

Call parking
------------
Parking extension : 700
Parking context : parkedcalls
Parked call extensions: 701-750

• Digitar el comando “show uptime”

elastix*CLI> show uptime


System uptime: 12 minutes, 32 seconds

• Digitar el comando “show version”


 

elastix*CLI> show version


Asterisk 1.4.22 built by root @ centos5-rpmbuilder.palosanto.com on a i686
running Linux on 2008-11-10 05:26:43 UTC

• Comando “show codecs”

elastix*CLI> show codecs


Disclaimer: this command is for informational purposes only.
It does not indicate anything about your configuration.
INT BINARY HEX TYPE NAME DESC
-----------------------------------------------------------------------------
---
1 (1 << 0) (0x1) audio g723 (G.723.1)
2 (1 << 1) (0x2) audio gsm (GSM)
4 (1 << 2) (0x4) audio ulaw (G.711 u-law)
8 (1 << 3) (0x8) audio alaw (G.711 A-law)
16 (1 << 4) (0x10) audio g726aal2 (G.726 AAL2)
32 (1 << 5) (0x20) audio adpcm (ADPCM)
64 (1 << 6) (0x40) audio slin (16 bit Signed Linear
PCM)
128 (1 << 7) (0x80) audio lpc10 (LPC10)
256 (1 << 8) (0x100) audio g729 (G.729A)
512 (1 << 9) (0x200) audio speex (SpeeX)
1024 (1 << 10) (0x400) audio ilbc (iLBC)
2048 (1 << 11) (0x800) audio g726 (G.726 RFC3551)
4096 (1 << 12) (0x1000) audio g722 (G722)
65536 (1 << 16) (0x10000) image jpeg (JPEG image)
131072 (1 << 17) (0x20000) image png (PNG image)
262144 (1 << 18) (0x40000) video h261 (H.261 Video)
524288 (1 << 19) (0x80000) video h263 (H.263 Video)
1048576 (1 << 20) (0x100000) video h263p (H.263+ Video)
2097152 (1 << 21) (0x200000) video h264 (H.264 Video)
 

Asterisk AGI
LABORATORIO CAPITULO 16

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 16.1
Capítulo:
Asterisk AGI

Descripción: Crear un agi que consulte una la tabla cedula 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. Es necesario grabar los audios que solicitan el ingreso
del código y un mensaje de despedida que “gracias por su consulta”.

Objetivo: Practicar la creación de AGI, familiarizarse con las funciones STREAM FILE, GET DATA, SAY DIGITS e
implementar un consulta básica a una base de datos.

Tiempo Máximo: 45 minutos.

Instrucciones:

• Crear la Base de datos cedula.db como sigue:

[root@elastix opt]# sqlite3 /var/www/db/cedula.db


sqlite> CREATE TABLE cedula (cedula varchar(255), id INTEGER PRIMARY KEY);
sqlite> INSERT INTO cedula Values('0909625741',1);
sqlite> .quit

• Construir un contexto que llame al agi, ubicarlo en el archivo /etc/asterisk/extensions_custom_XXXX.conf

[from-internal-custom]
include => custom-agi

[custom-agi]
exten => 123,1,Answer()•
exten => 123,2,AGI(agi-test.agi)
exten => 123,3,Hangup()

• Recargar asterisk

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


 

• Construir el AGI en PHP usando su editor preferido (vi) y ubicarlo en la carpeta /var/lib/asterisk/agi-bin.

#!/usr/bin/php -q
<?php
dl('sqlite3.so');
require_once 'DB.php';
set_time_limit(60);
ob_implicit_flush(false);
error_reporting(0);
$stdin = fopen( 'php://stdin', 'r' );
$stdout = fopen( 'php://stdout', 'w' );
while (!feof($stdin)) {
$temp=fgets($stdin);
$temp=str_replace("\n", "", $temp);
$s=explode(":",$temp);
$agivar[$s[0]]=trim($s[1]);
if (($temp=="")||($temp=="\n")) {
break;
}
}
do{
$data=execute_agi("GET DATA custom/ingrese_codigo 5000");
$codigo=isset($data['result'])?$data['result']:"0";
}while($codigo=="");
$ok = NULL;
$dbConn =& DB::connect("sqlite3:////var/www/db/cedula.db");
if (DB::isError($dbConn)) {
//error de conexion
echo "error:".$dbConn->getMessage();
}
$recordset =& $dbConn->query("SELECT cedula FROM cedula where id=".$codigo);
if (DB::isError($recordset)) {
echo "error:".$recordset->getMessage();
}else{
while ($tupla = $recordset->fetchRow(DB_FETCHMODE_OBJECT)) {
$numero = trim($tupla->cedula);
execute_agi("SAY DIGITS $numero X");
execute_agi("STREAM FILE custom/gracias \"\"");
}
}function execute_agi($command) {
GLOBAL $stdin, $stdout;
fputs( $stdout, $command . "\n" );
fflush( $stdout );
$resp = fgets( $stdin, 4096 );
if (preg_match("/^([0-9]{1,3}) (.*)/", $resp, $matches)) {
if (preg_match('/result=([-0-9a-zA-Z]*)(.*)/', $matches[2], $match)) {
$arr['code'] = $matches[1];
$arr['result'] = $match[1];
if (isset($match[3]) && $match[3])
$arr['data'] = $match[3];
return $arr;
} else {
$arr['code'] = $matches[1];
$arr['result'] = 0;
return $arr;
}
} else {
$arr['code'] = -1;
$arr['result'] = -1;
return $arr;
}
}
?>

• Verificar los permisos del agi que debe ser:

-rwxrwxr-x 1 asterisk asterisk 1742 Nov 10 00:27 agi-test.agi

• Probar el agi marcado “123”


 

Laboratorio 16.2
Capítulo:
Asterisk AGI

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.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Habilitar el debugging de un AGI con el comando “agi debug”.

elastix*CLI> agi debug


AGI Debugging Enabled

• Veremos la salida donde se muestran las variables de un AGI y la comunicación desde y hacia el agi.

-- Executing AGI("Zap/1-1", "temperature.php") in new stack

-- Launched AGI Script /var/lib/asterisk/agi-bin/temperature.php


AGI Tx >> agi_request: temperature.php
AGI Tx >> agi_channel: Zap/1-1
AGI Tx >> agi_language: en
AGI Tx >> agi_type: Zap
AGI Tx >> agi_uniqueid: 1116732890.8
AGI Tx >> agi_callerid: 101
AGI Tx >> agi_calleridname: Tom Jones
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: unknown
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: incoming
AGI Tx >> agi_extension: 141
AGI Tx >> agi_priority: 2
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
AGI Rx << STREAM FILE temperature ""
AGI Tx >> 200 result=0 endpos=6400
AGI Rx << STREAM FILE is ""
AGI Tx >> 200 result=0 endpos=5440
AGI Rx << SAY NUMBER 67 ""
-- Playing 'digits/60' (language 'en')
-- Playing 'digits/7' (language 'en')
AGI Tx >> 200 result=0
AGI Rx << STREAM FILE degrees ""
AGI Tx >> 200 result=0 endpos=6720
AGI Rx << STREAM FILE fahrenheit ""
AGI Tx >> 200 result=0 endpos=8000
-- AGI Script temperature.php completed, returning 0

• Para deshabilitar el debugging de un AGI, usar el comando “agi debug off”.

elastix*CLI> agi debug off


AGI Debugging Disabled
 

Laboratorio 16.3
Capítulo:
Asterisk AMI

Descripción: Conectarse vía TELNET con AMI, enviar el comando LOGIN y enviar el comando LOGOFF

Objetivo: Familiarizarse con la conexión con AMI y ejecutar comandos básicos y ver la respuesta obtenida.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Conectarse vía telnet al asterisk manager interface como sigue:

[root@elastix asterisk]# telnet 127.0.0.1 5038


Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Asterisk Call Manager/1.0

• Ejecutar el comando Login

Connected to localhost.localdomain (127.0.0.1).


Escape character is '^]'.
Asterisk Call Manager/1.0
Action: Login
Username: admin
Secret: elastix456
Response: Success
Message: Authentication accepted

• Ejecutar el comando Logoff

Connected to localhost.localdomain (127.0.0.1).


Escape character is '^]'.
Asterisk Call Manager/1.0
Action: Logoff
Response: Success
Message: See ya
Connection closed by foreign host.

Nota: No olvidar dar “doble enter” al final de cada evento


 

Laboratorio 16.4
Capítulo:
Asterisk AMI

Descripción: Conectarse vía TELNET con AMI, y ejecutar la acción “Originate” para realizar una llamada a otra
extensión.

Objetivo: Familiarizarse con la conexión con AMI y ejecutar comandos básicos y ver la respuesta obtenida.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Conectarse vía telnet al asterisk manager interface como sigue:

[root@elastix asterisk]# telnet 127.0.0.1 5038


Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Asterisk Call Manager/1.0

• Copie las siguientes líneas en su sesión telnet

Action: Originate
Channel: SIP/503
Context: from-internal
Exten: 500
Priority: 1

• Ejecutar el comando Logoff

Connected to localhost.localdomain (127.0.0.1).


Escape character is '^]'.
Asterisk Call Manager/1.0
Action: Logoff
Response: Success
Message: See ya
Connection closed by foreign host.

Nota: No olvidar dar “doble enter” al final de cada evento


 

Laboratorio 16.5
Capítulo:
Asterisk AMI

Descripción: Construir un AGI que permita conectar una llamada hacia la extensión XXXX, utilizando la librería
“php-asmanager.php” y la función Originate.

Objetivo: Utilizar la librería “php-asmanager” y la función Originate y estimular el ingenio para la creación de
funcionalidades usando AGI y AMI.

Tiempo Máximo: 30 minutos.

Instrucciones:

• Construir un agi que utilice la función Originate como sigue:

[root@elastix agi-bin]# vim miarchivo.agi

• Cambiar los permisos y propietario al archivo miarchivo.agi:

[root@elastix agi-bin]# chmod 777 miarchivo.agi


[root@elastix agi-bin]# chown asterisk:asterisk miarchivo.agi

• Adicionar al archivo miarchivo.agi las siguientes líneas:

#!/usr/bin/php -q
<?php
require_once "/var/lib/asterisk/agi-bin/phpagi-asmanager.php";
$astman = new AGI_AsteriskManager();
$resultado= $astman->connect("127.0.0.1", "admin", "elastix456");
$salida = $astman->Originate("SIP/500","503","from-internal","1");
$astman->disconnect();
?>

• Ejecutar el siguiente comando desde el shell

[root@elastix agi-bin]# php miarchivo.agi

 
 
 

Plan de Marcado Avanzado


LABORATORIO CAPITULO 17

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 17.1
Capítulo:
Plan de Marcado Avanzado

Descripción: Crear un contexto que verifique la fecha y hora del día y reproduzca un audio si matchea y
reproduzca otro audio si no matchea.

Objetivo: Familiarizarse con el condicional GotoIfTime().

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.

• Agregar el siguiente contexto al final del archivo.

[custom-lab51]
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/hoyeslaborable)
exten => s,n,Hangup()
[closed]
exten => s,1,Wait(1)
exten => s,n,Playback(custom/hoynoeslaborable)
exten => s,n,Hangup()

• Incluir el contexto [custom-lab51] dentro del contexto [from-internal-custom]

• Recargar asterisk:

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

• Usar el comando date para cambiar la fecha del sistema:

[root@elastix opt]# date -s '05/13/2009 18:53:25'


 

Laboratorio 17.2
Capítulo:
Plan de Marcado Avanzado

Descripción: Crear un contexto que implemente una calculador matemática básica.

Objetivo: Familiarizarse con los operadores matemáticos.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.

• Agregar el siguiente contexto al final del archivo.

[custom-lab52]
exten => 4008,1,Answer()
exten => 4008,n,Set(CHANNEL(language)=es)
exten => 4008,n,Read(OPERA1,custom/ingrese1opera,3)
exten => 4008,n,Read(OPERA2,custom/ingrese2opera,3)
exten => 4008,n,background(custom/ingreseopera)
exten => 4008,n,WaitExten(,)
exten => 1,1,Playback(custom/resultadoes)
exten => 1,n,SayNumber($[${OPERA1}+${OPERA2}])
exten => 1,n,Hangup()
exten => 2,1,Playback(custom/resultadoes)
exten => 2,n,SayNumber($[${OPERA1}-${OPERA2}])
exten => 2,n,Hangup()
exten => 3,1,Playback(custom/resultadoes)
exten => 3,n,SayNumber($[${OPERA1}*${OPERA2}])
exten => 3,n,Hangup()
exten => 4,1,Playback(custom/resultadoes)
exten => 4,n,SayNumber($[${OPERA1}/${OPERA2}])
exten => 4,n,Hangup()

• Incluir el contexto [custom-lab52] dentro del contexto [from-internal-custom]

• Recargar asterisk:

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


 

Laboratorio 17.3
Capítulo:
Plan de Marcado Avanzado

Descripción: Crear un contexto que implemente un verficador de número de cédula (algoritmo dígito verificador).

Objetivo: Familiarizarse con los operadores matemáticos, la aplicación GotoIf y la aplicación condicional While -
EndWhile.

Tiempo Máximo: 25 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al final del archivo.

• Agregar el siguiente contexto al final del archivo.

[custom-lab53]
exten => 4009,1,Answer()
exten => 4009,n,Set(CHANNEL(language)=es)
exten => 4009,n,Set(TOT=0)
exten => 4009,n,Read(CEDULA,custom/ingresecedula,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/correcto)
exten => 4009,n,Goto(salto4)
exten => 4009,n(error),Playback(custom/incorrecto)
exten => 4009,n(salto4),SayNumber(${VER})
exten => 4009,n,Hangup()

• Incluir el contexto [custom-lab53] dentro del contexto [from-internal-custom]

• Recargar asterisk:

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


 

Laboratorio 17.4
Capítulo:
Plan de Marcado Avanzado

Descripción: Crear un archivo .call que realice una llamada a una extensión y en el momento de contestar
reproduzca un audio.

Objetivo: Familiarizarse con el funcionamiento de los archivos .call.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Cree el archivo millamda.call con el siguiente contenido:

Channel: local/503@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: from-internal
Extension: 500
Priority: 1

• Cambiar los permisos y propietario del archivo millamada.call:

[root@elastix opt]# chmod 777 millamada.call


[root@elastix opt]# chown asterisk:asterisk millamada.call

• Mover el archivo millamada.call al directorio /var/spool/asterisk/outgoing:

[root@elastix opt]# mv millamada.call /var/spool/asterisk/outgoing


 

Laboratorio 17.5
Capítulo:
Plan de Marcado Avanzado

Descripción: Crear un archivo .call que realice una llamada a una extensión, conecte la llamada a un contexto y
reproduzca un audio.

Objetivo: Familiarizarse con el funcionamiento de los archivos .call.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Crear un audio.

• Crear un contexto que reproduzca un audio en su archivo extensions_custom_XXXXX.conf

[custom-tocaudio]
exten => s,1,Answer()
exten => s,n,Playback(custom/bienvenidocurso)
exten => s,n,Hangup()

• Cree el archivo millamda.call con el siguiente contenido:

Channel: local/500@from-internal
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: custom-tocaudio
Extension: s
Priority: 1

• Cambiar los permisos y propietario del archivo millamada.call:

[root@elastix opt]# chmod 777 millamada.call


[root@elastix opt]# chown asterisk:asterisk millamada.call

• Mover el archivo millamada.call al directorio /var/spool/asterisk/outgoing:

[root@elastix opt]# mv millamada.call /var/spool/asterisk/outgoing

 
 

Sistema de Email en Elastix


LABORATORIO CAPITULO 18

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 18.1
Capítulo:
Elastix Email System

Descripción: Cada estudiante crear un dominio denominado pruebaX.com en donde X es un número secuencial y
crear una cuenta de correo para ese dominio usando el módulo de Email.

Objetivo: Familiarizarse con el módulo Email de Elastix.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Ingresamos en la opción Mail de nuestra central.

• Procedemos a crear el dominio que usaremos para el envío y recepción de correos electrónicos, podemos
crear tantos dominios como necesitemos

• Ahora debemos crear las cuentas de correo de los usuarios, para la cual seleccionamos el dominio dentro
del cual deseamos crear nuestra cuenta de correo.
 

• Llenamos los campos necesarios para crear nuestro usuario.

• Ahora debemos configurar el RELAY para nuestro servicio de correo en la central Elastix.

• Elastix nos da la facilidad de revisar las cuentas de correo mediante clientes webmail en este caso el
RoundCube.

 
 

Sistema de Fax en Elastix


LABORATORIO CAPITULO 19

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 19.1
Capítulo:
Sistema de Fax en Elastix.

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.

Objetivo: Familiarizarse con el módulo Fax de Elastix.

Tiempo Máximo: 15 minutos.

Instrucciones:

• Ingresamos a la opción de Fax de la central Elastix y seleccionamos nuevo fax virtual.

• Una vez creado el fax podremos modificarlo o eliminarlo según nuestra necesidad

• La opción Fax Clients nos permitirá especificar las direcciones IP de los equipos que podrán enviar fax por
medio de la elastix
 

• La opción Template Email nos permite configurar los parámetros del email que será enviado con el fax.

• El visor de Fax nos permitirá visualizar todos los fax que hayamos recibido en nuestra central elastix
 

Laboratorio 19.2
Capítulo:
Sistema de Fax en Elastix.

Descripción: Enviar un fax utilizando el comando sendfax hacia uno de los faxes virtuales creados en el laboratorio
anterior.

Objetivo: Familiarizarse con el comando sendfax

Tiempo Máximo: 15 minutos.

Instrucciones:

• Primero hay que crear un archivo en este caso llamado pruebattsX.txt con un texto.

[root@elastix opt]# vi pruebatts1.txt

• Luego ejecutar el comando sendfax desde el shell como sigue:

[root@elastix opt]# sendfax -h ttyIAX1@127.0.0.1 -n -d 701 pruebatts1.txt


request id is 3 (group id 3) for host 127.0.0.1 (1 file)

• Revisar en el visor de fax el fax recibido.

 
 

Mensajería Instantánea en
Elastix
LABORATORIO CAPITULO 20

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 20.1
Capítulo:
Mensajería Instantánea en Elastix.

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: 20 minutos.

Instrucciones:

Datos:
La clave de root de mysql es: eLaStIx.2oo7

• Ubicarse en el directorio /opt/openfire/resources/database

[root@elastix opt]# cd /opt/openfire/resources/database


[root@elastix database]#

• Ejecutar el siguiente comando para crear la base de datos openfire.

[root@elastix database]# mysqladmin create openfire -p


Enter password:

• Revisar si la base de datos fue creada correctamente:

[root@elastix database]# mysql -u root -p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3472 to server version: 5.0.22
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| asterisk |
| asteriskcdrdb |
| mya2billing |
| mysql |
| openfire |
| roundcubedb |
+--------------------+
7 rows in set (0.14 sec)
mysql> quit
Bye
 

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

[root@elastix database]# cat openfire_mysql.sql |mysql openfire -p


Enter password:
[root@elastix database]#

• Crear el usuario openfire con todos los privilegios para ejecutar las sentencias SQL en la base de datos
openfire.

[root@elastix database]# mysql -u root -p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3474 to server version: 5.0.22
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use openfire;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost'
IDENTIFIED BY 'openfire';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye

• Ir a la interface de Elastix y hacer click en la pestaña “IM” y seguir los pasos de instalación vistos en clase
escogiendo conectarse a una base de datos externa de tipo MySql.
 

Laboratorio 20.2
Capítulo:
Mensajería Instantánea en Elastix.

Descripción:
Integración de Openfire con Elastix.

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: 20 minutos.

Instrucciones:

• Se debe instalar el plugin “Asterisk-IM”.

• Si el plugin “Asterisk-IM”.se instaló correctamente, veremos una pestaña llamada “Asterisk-IM”.


 

• Se ingresan los valores del Phone Manager.

• Se ingresan los valores correspondientes al servidor Asterisk.

• Se ingresan los valores correspondiente al servidor Asterisk

Server Name: elastix.yourdomain.local


Server Address: 127.0.0.1
Port: 5038
Username: admin
Password: elastix456
 

• Si vemos listado nuestros servidores la configuración fue exitosa.

• Es necesario tener creado los usuarios.


 

• Cómo último paso hacer el “mapping” entre usuario y dispositivo.

• Veremos listado los “mappings” ingresados correctamente.


 

Sintetización y Reconocimiento
de Voz
LABORATORIO CAPITULO 21

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 21.1
Capítulo:
Sintetización y Reconocimiento de Voz

Descripción:
Usar el comando text2wave para implementar la sintetización de un texto almacenado en un archivo y reproducirlo
por medio de un contexto

Objetivo:
Practicar el uso del comando text2wave.

Tiempo Máximo: 10 minutos.

Instrucciones:

• Primero hay que crear un archivo en este caso llamado pruebattsX.txt con un texto.

[root@elastix opt]# vi pruebatts1.txt

• Luego ejecutar el comando text2vave desde el shell como sigue:

[root@elastix opt]# text2wave pruebatts1.txt -o pruebatts1.ulaw -otype ulaw

• Copiar el archivo pruebatts1.ulaw a la carpeta /var/lib/asterisk/sounds/custom

[root@elastix opt]# cp -p pruebatts1.ulaw /var/lib/asterisk/sounds/custom

• Cambiar el propietario y permisos del archivo pruebatts1.ulaw a asterisk y 664

[root@elastix opt]# chown asterisk:asterisk pruebatts1.ulaw


[root@elastix opt]# chmod 664 pruebatts1.ulawc

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al plan de marcado:

[from-internal-custom]
include => prueba-tts
[prueba-tts]
exten => 4466,1,Answer
exten => 4466,2,Wait(1)
exten => 4466,3,Playback(custom/pruebatts1)
exten => 4466,4,Hangup

• Recargar asterisk

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

• Probar marcando 4466 desde su teléfono. Deberá escuchar la reproducción del texto contenido en el
archivo pruebatts1.txt.
 

Laboratorio 21.2
Capítulo:
Sintetización y Reconocimiento de Voz

Descripción:
Usar la función Festival para implementar la sintetización de un texto desde un contexto.

Objetivo:
Practicar el uso de la función Festival

Tiempo Máximo: 10 minutos.

Instrucciones:

• Editar el archivo /etc/asterisk/extensions_custom.conf y agregar el siguiente contexto al plan de marcado:

[from-internal-custom]
include => prueba-festival
[prueba-festival]
exten => 4467,1,Answer
exten => 4467,2,Wait(1)
exten => 4467,3,Festival('Hola mundo','any')
exten => 4467,4,Hangup

• Recargar asterisk

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

• Probar marcando 4467 desde su teléfono. Deberá escuchar la reproducción del texto contenido en el
archivo pruebatts1.txt.

 
 

Desempeño
LABORATORIO CAPITULO 22

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 22.1
Capítulo:
Desempeño.

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: 45 minutos.

Instrucciones:

• Instalar el rpm del Programa Sipp. Utilizar el paquete sipp-3.1-2.el5.i386.rpm.

[root@elastix opt]# rpm -ivh sipp-3.1-2.el5.i386.rpm


warning: sipp-3.1-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID
217521f6
Preparing... ###########################################
[100%]
1:sipp ###########################################
[100%]

• Definir un peer sip adicionando en el archivo /etc/asterisk/ sip_custom.conf siguiente:

[sipp]
type=friend
context=sipp_context
host=dynamic
port=6000
user=sipp
canreinvite=no
disallow=all
allow=ulaw

• Creamos una extensión adicionando un contexto en el archivo /etc/asterisk/extensions_custom.conf como


sigue:

[sipp_context]
exten => 4010,1,Answer()
exten => 4010,n,Playback(custom/bienvenidocurso)
exten => 4010,n,SetMusicOnHold(default)
exten => 4010,n,WaitMusicOnHold(20)
exten => 4010,n,Hangup()

• Recargar asterisk:

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

• Ejecutamos el siguiente comando en donde el último parámetro indica el número de llamadas a generar:

[root@elastix1 /]# sipp -sn uac -d 200000 -s 4010 -i 127.0.0.1 -p 6000


ip.de.su.elastix -l 10
 

• Veremos la siguiente salida:

Resolving remote host 'ip.de.su.elastix'... Done.


------------------------------ Scenario Screen -------- [1-9]: Change Screen
--
Call-rate(length) Port Total-time Total-calls Remote-host
10.0(200000 ms)/1.000s 6000 3.49 s 10
192.168.1.251:5060(UDP)

0 new calls during 0.499 s period 0 ms scheduler resolution


10 calls (limit 10) Peak was 10 calls, after 1 s
0 Running, 10 Paused, 0 Woken up
0 dead call msg (discarded) 0 out-of-call msg (discarded)
3 open sockets
Messages Retrans Timeout Unexpected-Msg
INVITE ----------> 10 0 0
100 <---------- 10 0 0 0
180 <---------- 0 0 0 0
183 <---------- 0 0 0 0
200 <---------- E-RTD1 10 0 0 0
ACK ----------> 10 0
Pause [ 3:20] 10 0
BYE ----------> 0 0 0
200 <---------- 0 0 0 0

• Una vez concluido el test veremos un reporte como sigue:

----------------------------- Test Terminated -------------------------------

--------------------------- Statistics Screen ------- [1-9]: Change Screen -


Start Time | 2008-08-10 12:58:29:884 1218391109.884891
Last Reset Time | 2008-08-10 12:58:32:891 1218391112.891017
Current Time | 2008-08-10 12:58:33:390 1218391113.390150
-----------------------+---------------------------+-------------------------
Counter Name | Periodic value | Cumulative value
-----------------------+---------------------------+-------------------------
Elapsed Time | 00:00:00:499 | 00:00:03:505
Call Rate | 0.000 cps | 2.853 cps
-----------------------+---------------------------+-------------------------
Incoming call created | 0 | 0
OutGoing call created | 0 | 10
Total Call created | | 10
Current Call | 10 |
-----------------------+---------------------------+-------------------------
Successful call | 0 | 0
Failed call | 0 | 0
-----------------------+---------------------------+-------------------------
Response Time 1 | 00:00:00:000 | 00:00:00:003
Call Length | 00:00:00:000 | 00:00:00:000
---------------------------- Test Terminated --------------------------------
 

• Si ejecutamos el comando “top” veremos el uso del CPU, como sigue:

• Ahora ejecutamos el comando sipp pero con 100 llamadas:

[root@elastix1 /]# sipp -sn uac -d 200000 -s 4010 -i 127.0.0.1 -p 6000


ip.de.su.elastix -l 100

• Si ejecutamos el comando “top” veremos el incremento en uso del CPU, como sigue:

 
 

Seguridad
LABORATORIO CAPITULO 23

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 23.1
Capítulo:
Seguridad

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 Clave de Elastix

1. Para cambiar la configuración de Elastix debemos ingresar a la interfaz web de Elastix como
administradores.
2. Luego vamos a: Sistema -> Administrar Usuarios
3. Seleccionamos el usuario admin
4. Se selecciona la opción editar y podemos cambiar la contraseña del usuario

• Cambiar la contraseña de freePBX

1. Acceder a la versión no embebida del freePBX https://ip-de-mi-elastix/admin


2. Seleccionar la opción Administrators
3. Seleccionar el usuario admin
4. Cambiar la Contraseña

• Cambiar contraseña de mysql

1. Desde la línea de comando de Linux escribimos:


mysqladmin -u root -p password nuevo_password
2. Ingresamos la clave por defecto eLaStIx.2oo7

• Cambiar la contraseña del Flash Operator Panel

1. Abrir el archivo /etc/amportal.conf


2. Buscar la línea FOPPASSWORD=eLaStIx.2oo7
3. Cambiar la clave remplazando la línea anterior por: FOPPASSWORD=nuevaclave
 

Laboratorio 23.2
Capítulo:
Seguridad

Descripción: Asegurar Elastix utilizando el Firewall en el mismo servidor. 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:

• 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 ṔOP3


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

• Grabar la Configuración
iptables-save > /etc/sysconfig/iptables
 

Debugging
LABORATORIO CAPITULO 24

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 24.1
Capítulo:
Debugging Avanzado

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:

• Utilizar el código fuente divide.c ubicado en /opt y compilarlo con la opción -g para debugging:

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

• Ejecutar el comando strace con la opción -o para enviar la salida al archivo salida.divideXXX.txt:

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

• Se ejecutará el programa y pedirá dos números para dividir. En el segundo número ingresar 0:

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


Introduce el primer número
4
Introduce el segundo número
0

• Revisar el archivo salida-divideXXX.txt como sigue:

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

• Al revisar el archivo veremos una línea como sigue:

--- SIGFPE (Floating point exception) @ 0 (0) ---


+++ killed by SIGFPE +++

NOTA: SIGFPE es una señal enviada a un proceso ó programa cuando se realiza una operación errónea de punto
flotante.
 

Laboratorio 24.2
Capítulo:
Debugging Avanzado

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.i386 0:6.5-37.el5_2.2 utilizando el comando yum:

[root@elastix opt]# yum install gdb


--> Populating transaction set with selected packages. Please wait.
---> Downloading header for gdb to pack into transaction set.
gdb-6.5-37.el5_2.2.i386.r 100% |=========================| 59 kB 00:07
---> Package gdb.i386 0:6.5-37.el5_2.2 set to be updated
--> Running transaction check
Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
gdb i386 6.5-37.el5_2.2 updates 3.1 M

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 3.1 M


Is this ok [y/N]: y
Downloading Packages:
(1/1): gdb-6.5-37.el5_2.2 100% |=========================| 3.1 MB 09:39
Is this ok [y/N]: y
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: gdb ######################### [1/1]
Installed: gdb.i386 0:6.5-37.el5_2.2
Complete!

• Utilizar el código fuente imprime.c ubicado en /opt y compilarlo con la opción -g para debugging:

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


 

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

[root@elastix opt]# gdb -q imprime


Using host libthread_db library "/lib/libthread_db.so.1".
(gdb)

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

(gdb) break imprime.c:1


Breakpoint 1 at 0x80483b4: file imprime.c, line 1.
(gdb) break imprime.c:2
Note: breakpoint 1 also set at pc 0x80483b4.
Breakpoint 2 at 0x80483b4: file imprime.c, line 2.
(gdb) break imprime.c:3
Note: breakpoints 1 and 2 also set at pc 0x80483b4.
Breakpoint 3 at 0x80483b4: file imprime.c, line 3.
(gdb) break imprime.c:4
Note: breakpoints 1, 2 and 3 also set at pc 0x80483b4.
Breakpoint 4 at 0x80483b4: file imprime.c, line 4.
(gdb) break imprime.c:5
Note: breakpoints 1, 2, 3 and 4 also set at pc 0x80483b4.
Breakpoint 5 at 0x80483b4: file imprime.c, line 5.
(gdb) break imprime.c:6
Breakpoint 6 at 0x80483c5: file imprime.c, line 6.
(gdb) break imprime.c:7
Note: breakpoint 6 also set at pc 0x80483c5.
Breakpoint 7 at 0x80483c5: file imprime.c, line 7.
(gdb)

• Ejecutamos el comando RUN, como sigue:

(gdb) run
Starting program: /opt/imprime

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


5 main(){
(gdb)

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

(gdb) step
Breakpoint 6, main () at imprime.c:7
7 printf("Ingrese primer valor: ");
(gdb) step
8 scanf ("%d",&a);
(gdb) step
Ingrese primer valor:

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

Ingrese primer valor: 7


9 printf("Ingrese segundo valor: ");
(gdb) print a
$1 = 7
(gdb)
 

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

(gdb) step
10 scanf ("%d",&b);
(gdb) step
Ingrese segundo valor: 8
12 c=a+b;
(gdb) print c
$2 = 0
(gdb) step
14 printf("\n\tLa suma de %d y %d es %d \n",a,b,c);
(gdb) print c
$3 = 15
(gdb) step

La suma de 7 y 8 es 15
15 }
(gdb)

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

(gdb) quit
The program is running. Exit anyway? (y or n) y
[root@elastix opt]#

 
 

Dundi
LABORATORIO CAPITULO 25

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 25.1
Capítulo:
Dundi

Descripción:
Implementar Dundi entre dos centrales de tal forma que se tenga un plan de marcado único en donde en la central
A estén registradas las extensiones 1000, 1001, 1002 y en la central B estén registradas las extensiones 2000,
2001, 2002. Una vez realizado esto, registrar la extensión 1002 con la central B y la extensión 2002 con la central
A y verificar si es posible la comunicación entre ambas extensiones de manera dinámica.

Objetivo:
Aplicar las configuraciones vistas en clase en un ejemplo real y demostrar el funcionamiento de Dundi.

Tiempo Máximo: 45 minutos.

Instrucciones:

• Agruparse en pareja para implementar DUNDI con su compañero.

• Identificar las direcciones IP y la dirección MAC de cada servidor Elastix.

ELASTIX1:
IP: 192.168.1.251
MAC: 00:19:D1:82:2E:C8

ELASTIX2:
IP:192.168.1.83
MAC:00:0C:29:19:04:EF

• Ubicarse en la ruta /var/lib/asterisk/key y generar los certificados como sigue (donde X será un número que
identifique a cada servidor):

[root@elastix keys]# astgenkey -n SERVERX

• Compartir los certificados, copiándolos en la carpeta /var/lib/asterisk/keys del otro servidor Elastix.

[root@elastix keys]# scp SERVERX.* 192.168.1.83:/var/lib/asterisk/keys

• Editar el archivo /etc/asterisk/dundi.conf y crear la identificación del servidor.

[general]
department=ELASTIXX
organization=Certificacion
locality=CiudadX
stateprov=ProvinciaX
country=PaisX
email=estudianteX@palosanto.com
phone=59342290244
bindaddr=0.0.0.0
port=4520
entityid=00:19:D1:82:2E:C8
ttl=12
autokill=yes
 

• En la sección mappings definimos las respuestas a las consultas para números locales:

[mappings]
priv => dundi-priv-canonical,0,IAX2,dundi:${SECRET}@192.168.1.251/$
{NUMBER},nopartial
priv => dundi-priv-customers,100,IAX2,dundi:${SECRET}@192.168.1.251/$
{NUMBER},nopartial
priv => dundi-priv-via-pstn,400,IAX2,dundi:${SECRET}@192.168.1.251/$
{NUMBER},nopartial

• Definimos los peers que podrán hacer consultas y que serán a su vez consultados, creando una sección
cuyo nombre es la dirección MAC del otro servidor Elastix, como sigue:

[00:0C:29:19:04:EF]
model= symmetric
host=192.168.1.83
inkey=SERVER01
outkey=SERVER02
include=priv
permit=priv
qualify=yes
order=primary

• Definimos la troncal IAX que recibirá las llamadas autenticadas de la red dundi. Para esto editamos el
archivo /etc/asterisk/iax_custom.conf y agregamos lo siguiente:

[dundi]
type=user
dbsecret=dundi/secret
context=ext-local

• Definimos los contextos para la búsqueda de extensiones locales y extensiones en otros equipos. Para esto
editamos el archivo /etc/asterisk/extensions_custom.conf y agregamos las siguientes líneas:

[dundi-priv-canonical]
include => ext-local

[dundi-priv-via-pstn]
include => outbound-allroutes

[dundi-priv-lookup]
exten => _X.,1,Macro(user-callerid)•
exten => _X.,2,Macro(dundi-priv,${EXTEN})•
exten => _X.,3,Goto(bad-number,${EXTEN},1)•

[macro-dundi-priv]
exten => s,1,Goto(${ARG1},1)•
switch => DUNDi/priv

• Modificamos el archivo /etc/asterisk/extensions.conf para incluir el contexto dundi-priv-lookup en el contexto


from-internal, como sigue:

[from-internal]
include => from-internal-xfer
;include => bad-number
include => dundi-priv-lookup
 

• Reiniciar asterisk

[root@elastix opt]# asterisk -rx “restart now”

• Probar si está correctamente establecida la red dundi ejecutando los siguientes comandos:

elastix*CLI>dundi query MAC:00:0C:29:19:04:EF@priv


DUNDi Query EID succeeded:
Department: ELASTIXX
Organization: Certificacion
City/Locality: CiudadX
State/Province: ProvinciaX
Country: PaisX
E-mail: estudianteX@palosanto.com
Phone: 59342290244
IP Address: 1.2.2.2

elastix*CLI>dundi lookup XXXX@priv


1. 0 IAX2/dundi:5Occfx8Tmx+rbwYtyx4mbQ@192.168.1.83/XXXX (EXISTS|CANMATCH)
from 00:0C:29:19:04:EF, expires in 3600 s
DUNDi lookup completed in 10 ms

• Probar marcando a las extensiones del compañero con el implementó la mini-red DUNDI.

 
 

Call-Center
LABORATORIO CAPITULO 26

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 26.1
Capítulo:
Call-Center

Descripción:
Crear una campaña entrante con 3 agentes que tenga de duración 30 minutos, logonearse en una consola de
agente y recibir llamadas usando un script de saludos.

Objetivo:
Aprender y comprender el funcionamiento del call-center tanto como administrador así como agente. Además
familiarizarse con los reportes y consola de agente.

Tiempo Máximo: 15 minutos

Instrucciones:

• Crear 3 agentes que se utilizaran en la campaña entrante y saliente: Agente1-1001, Agente2-1002,


Agente3-1003.

• NOTA: Ya debe existir una cola con los agentes que van a participar de esta campaña. A continuación se
muestra la pantalla de creación de la cola para nuestro Laboratorio
 

• Crear un campaña entrante con los siguientes datos

• Logonearse con el número de un Agente valido en una extensión previamente creada en nuestro PBX y
esperar recibir llamadas, simulando una llamada entrante.
 

Laboratorio 26.2
Capítulo:
Call-Center

Descripción:
Crear una campaña saliente con 3 agentes y cargar un archivo de números que contengan 10 números de destino
reales y crear un formulario con una encuesta de 4 preguntas.

Objetivo:
Aprender y comprender el funcionamiento del call-center tanto como administrador así como agente. Además
familiarizarse con los reportes y consola de agente.

Tiempo Máximo: 15 minutos

Instrucciones:

• Vamos a utilizar las agentes antes creados, así como la cola de los agentes. Y debe existir una troncal
creada a por medio de la cual se realizaran las llamadas.

• Creamos un formulario con los siguientes Datos

• Debemos tener un archivo en formato CSV, para realizar nuestras llamadas en nuestro caso usaremos el
siguiente formato
 

• Crear la campaña saliente con los siguientes datos:

• Logonearse y esperar que se conecte una llamada.

 
 

Extender Elastix
LABORATORIO CAPITULO 27

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 27.1
Capítulo:
Extendiendo Elastix

Descripción: Se creará un pequeño módulo que permitirá cambiar el idioma de todos los servicios que usan la
tecnología SIP desde la interfaz web. Para esto desde la interfaz web llamaremos a un script del shell que
modificará el archivo de de configuración de sonidos sip.

Objetivo: Familiarizarse con el módulo Developer de Elastix para aprender a desarrollar nuevos módulos y
extender Elastix

Tiempo Máximo: 45 minutos.

Instrucciones:

• Descargar la versión más reciente del módulo Developer de Elastix.


• Descargar la versión más actualizada del módulo desde sourceforge:
http://sourceforge.net/project/showfiles.php?group_id=161807&package_id=237861&release_id=645184
• Instalar el módulo developer
• Ir al menú Sistema → Cargar Menú
• Subir el módulo descargado previamente al servidor
• Salir y volver a Entrar al servidor
• En las pestañas principales de la interfaz web de Elastix ahora tendremos una que dice Developer.
• Antes de crear nuestro módulo, crearemos un pequeño script de shell que modificará el archivo de
configuración /etc/asterisk/sip_general_custom.conf
• Crear el archivo /usr/local/sbin/cambiar_idioma
vim /usr/local/sbin/cambiar_idioma
Utilizamos el directorio /usr/local/sbin porque este directorio es un estándar en Linux para ejecutar
programas propios, que no pertenecen a la distribución, y tienen privilegio solo de administrador. Es
importante notar que este directorio esta en el path del shell por lo que se podrá ejecutar el comando
cambiar_idioma desde cualquier lugar
• Añadir la siguiente información al archivo

#!/bin/bash
#idioma en $1
archivo=/etc/asterisk/sip_general_custom.conf
path=/etc/asterisk
#busco si existe
grep -e "language[[:space:]]*=[[:space:]]*" -i $archivo
exists=$?
#cambio o añado
if [ $exists = 0 ]; then #existe
sed -ie "s/language[[:space:]]*=[[:space:]]*/language=$1/" $archivo
else
echo "language=$1" >> $archivo
fi

• Dar permisos de ejecución al archivo


chmod 755 /usr/local/sbin/cambiar_idioma
• Le damos permisos de ejecución al script que hemos creado, sino no lo podremos llamar directamente
desde la interfaz web.
 

• Podemos probar si el script funciona desde la línea de comandos. Por ejemplo cambiando el idioma a
español
• Ahora utilizamos este script para escribir el /etc/asterisk/archivo sip_general_custom.conf con el valor
language=es.
• cambiar_idioma es /etc/asterisk/archivo sip_general_custom.conf
• Para ver si el script funciona podemos revisar el contenido del archivo /etc/asterisk/sip_general_custom.conf
y verificar si dice “language=es”. También podríamos ver si funcionó utilizando una extensión SIP y llamar al
buzón de voz por ejemplo. Deberíamos escuchar el audio en español. Pruebe cambiando el idioma a varios
idiomas.
• Una vez creado el script se debe darle privilegios de sudo para que pueda ser ejecutado por el usuario
asterisk que es con el que trabaja la interfaz web de Elastix
• El comando sudo se utiliza para que un usuario del sistema pueda ejecutar aplicaciones con privilegio de
administrador
• Editamos la configuración de sudo
visudo
• Añadimos la siguiente línea, guardamos y salimos asterisk ALL = NOPASSWD:
/usr/local/sbin/cambia_idioma
• Creamos el módulo utilizando el módulo developer e ingresar a la interfaz en la sección módulo
• En la sección “General Information” Ingresamos la siguiente información

• En la sección “Location” debemos definir en qué lugar de la interfaz donde aparecerá el menú de nuestro
módulo.
• En esta sección definimos el tipo de módulo. Este podría ser grid para crear reportes o form para crear
formularios. En nuestro caso crearemos un formulario simple que solo aceptará un parámetro en una caja
de texto llamada idioma.

• Verificar la creación del módulo


• Enlazar la lógica del módulo con su interfaz. Para esto modificamos el archivo principal de nuestro módulo
que podría ser algo como: /var/www/html/modules/cambiar_sonido/index.php
• Abrimos el archivo con nuestro editor de texto preferido y cambiamos las siguientes líneas:
 

Compilando Asterisk
LABORATORIO CAPITULO 29

PaloSanto Solutions
2010

© 2010, PALOSANTO SOLUTIONS todos los


derechos reservados. Esta documentación es
confidencial y su propiedad intelectual
pertenece a PaloSanto Solutions. Cualquier
uso no autorizado, reproducción, preparación
de otros trabajos en base a este documento,
difusión o representación de software
presentado en este documento, sin el permiso
expreso y por escrito de PaloSanto Solutions
está estrictamente prohibido. PaloSanto
Solutions, el logotipo de PaloSanto Solutions y
el logotipo de Elastix son propiedad de
Megatelcon S.A. Otras marcas, servicios y
nombres de negocios pertenecen a sus
respectivas compañías. 
 
 

Laboratorio 29.1
Capítulo:
Compilando de Asterisk

Descripción:
Compilar Asterisk sobre una máquina con Centos 5 usando el paquete asterisk-1.4.23-1.tar.gz.

Objetivo:
Practicar el proceso de compilación de asterisk e identificar las dependencias.
Tiempo Máximo: 30 minutos

Instrucciones:

• Copiar el archivo elastix.repo en la carpeta /etc/yum.repos.d el cual contiene lo siguiente:

[elastix]
name=Elastix RPM Repository for CentOS
baseurl=http://repo.elastix.org/centos/$releasever/updates/RPMS/
gpgcheck=0
enabled=1
exclude=elastix-mysqldbdata

[elastix-beta]
name=Elastix-Beta RPM Repository for CentOS
baseurl=http://repo.elastix.org/centos/$releasever/updates/beta/RPMS/
gpgcheck=0
enabled=0
exclude=elastix-mysqldbdata

[elastix-extras]
name=Elastix-Extras RPM Repository for CentOS
baseurl=http://repo.elastix.org/centos/$releasever/updates/extras/RPMS/
gpgcheck=0
enabled=0
exclude=elastix-mysqldbdata

• Instalar las dependencias de asterisk ejecutando el comando “yum” como sigue:

[root@srv4 ~]# yum install gcc-c++ m4 openssl-devel newt-devel libtermcap-


devel ncurses-devel postgresql-devel zlib-devel libtiff-devel libogg-devel
libvorbis-devel unixODBC-devel libtool sqlite-devel opal-devel alsa-lib-devel
net-snmp-devel wget curl-devel libxml2-devel libpri-devel spandsp-devel gsm-
devel speex-devel

• Crear el grupo y usuario asterisk como sigue:

[root@srv4 ~]# /usr/sbin/useradd -r -c "Asterisk PBX" -s /sbin/nologin -d


/var/lib/asterisk asterisk

• Descargar el paquete asterisk-1.4.23-1.tar.gz

[root@srv4 ~]# cd /usr/src


[root@srv4 src]# wget
http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.23.1.tar.gz
 

• Descromprimir el paquete:

[root@srv4 src]# tar xvzf asterisk-1.4.23.1.tar.gz

• Ubicar en la carpeta asterisk -1.4.23.1.tar.gz

[root@srv4 src]# cd asterisk-1.4.23.1

• Ejecutar el comando “./configure”:

[root@srv4 asterisk-1.4.23-1]# ./configure

• Si la ejecución fue exitosa verá un logo como el que sigue:

.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.

• Ejecutar el comando “make”:

[root@srv4 asterisk-1.4.23-1]# make

• Si la ejecución fue exitosa veremos lo siguiente al finalizar:

+--------- Asterisk Build Complete ---------+


+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
[root@srv4 asterisk-1.4.23-1]#

• Ejecutar el comando “make install”:

[root@srv4 asterisk-1.4.23-1]# make install


 

• Si la ejecución fue exitosa veremos lo siguiente al finalizar:

+---- Asterisk Installation Complete -------+


+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ make samples +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
[root@srv4 asterisk-1.4.23-1]#

• Ejecutamos el comando “make samples”:

[root@srv4 asterisk-1.4.23-1]# make samples

• Al final ya estaremos en capacidad de ejecutar “asterisk -r” para ingresar al cli

[root@srv4 asterisk-1.4.23-1]# asterisk -r


Asterisk 1.4.23-1, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for
details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it
under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.4.23-1 currently running on srv4 (pid = 10996)
srv4*CLI>