ELASTIX Lab-5 Descripción Objetivo Instrucciones · ELASTIX Lab-5 Plan de Marcado Avanzado ......

Post on 21-May-2018

226 views 2 download

Transcript of ELASTIX Lab-5 Descripción Objetivo Instrucciones · ELASTIX Lab-5 Plan de Marcado Avanzado ......

ELASTIX

Lab-5

Plan de Marcado Avanzado Laboratorio 5.1

Descripción: Crear un contexto que verifique la fecha y hora del día y reproduzca para días laborables y no laborables.

Objetivo: Familiarizarse con el condicional GotoIfTime().

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-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()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab6-1] dentro del contexto [from-internal-custom] ubicado en el archivo

/etc/asterisk/extensions_custom.conf

vim extensions_custom.conf

Sintaxis: include => custom-lab6-1

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

Desde cualquier extensión marque 4007, usted escuchará el audio "workingday".

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:

[root@elastix ~]#

date -s 'mes/día/2013 18:53:25'

Se despliega captura de pantalla donde se puede ver la ejecución del comando que realiza el cambio de fecha en el sistema.

ELASTIX

Lab-5

Plan de Marcado Avanzado

Laboratorio 5.2

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

Objetivo: Familiarizarse con los operadores matemáticos de una tel�fono IP.

Instrucciones:

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

[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()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab6-2] dentro del contexto [from-internal-custom] ubicado en el archivo

/etc/asterisk/extensions_custom.conf

vim extensions_custom.conf

Sintaxis: include => custom-lab6-2

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.

Haga una prueba dividiendo 4 para 2.

Captura de pantalla donde se puede ver el “tecleado” de la operación matemática sugerida en el laboratorio.

ELASTIX

Lab-5

Plan de Marcado Avanzado

Laboratorio 5.3

Descripción: Cree un contexto que implemente un verificador de número de identidad (algoritmo de verificador de dígito).

Objetivo: Familiarizarse con los operadores matemáticos de una tel�fono IP, la aplicación GotoIf y la aplicación condicional While - EndWhile.

Instrucciones:

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

[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) exten => 4009,n,SayNumber(${VER}) exten => 4009,n,Hangup() exten => 4009,n(error),Playback(custom/incorrectid) exten => 4009,n,Hangup()

Grabar y Salir (Esc → :wq)

Incluir el contexto [custom-lab6-3] dentro del contexto [from-internal-custom] ubicado en el archivo /etc/asterisk/extensions_custom.conf

vim extensions_custom.conf

Sintaxis: include => custom-lab6-3

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

Hay países en que el número de identidad tiene 10 dígitos, el 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 -> Incorrecto1710034065 -> Correcto, ultimo dígito (5) reproducido1790085783 -> Incorrecto0801895186 -> Correcto, ultimo dígito (6) reproducido0932952135 -> Incorrecto

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.

Si usted ingresa un valor no válido obtendrá un audio de "incorrecto".

ELASTIX

Lab-5

Plan de Marcado Avanzado

Laboratorio 5.4 (Práctica recomendada)

Descripción: Crear un archivo .call que realice una llamada a una extensión.

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

Instrucciones: Cree el archivo mycall.call con el siguiente contenido:

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

Cambiar los permisos y propietario del archivo mycall.call

[root@elastix ~]# chmod 777 mycall.call [root@elastix ~]# chown asterisk:asterisk mycall.call

Mover el archivo mycall.call al directorio /var/spool/asterisk/outgoing.

[root@elastix ~]# mv mycall.call /var/spool/asterisk/outgoing

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

ELASTIX Lab-5

Plan de Marcado Avanzado

Laboratorio 5.5 (Práctica recomendada)

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

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

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

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

Cree el archivo mycall.call con el siguiente contenido:

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

Cambiar los permisos y propietario del archivo mycall.call

[root@elastix ~]# chmod 777 mycall.call [root@elastix ~]# chown asterisk:asterisk mycall.call

Mover el archivo mycall.call al directorio /var/spool/asterisk/outgoing.

[root@elastix ~]# mv mycall.call /var/spool/asterisk/outgoing