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

Introduccin a la VoIP y Asterisk

http://www.irontec.com

Parte III: Dialplan

http://www.irontec.com

Curso: Introduccin a la VoIP y Asterisk

Introduccin

Hasta el momento, hemos aprendido a:


Registrar terminales contra Asterisk Realizar enlaces SIP contra otros Asterisk Realizar enlaces SIP contra proveedores IP

Pero la lgica de llamadas implementada hasta el momento es bsica !n este blo"ue vamos a sumergirnos en el #ialplan de Asterisk:

Su sinta$is Sus aplicaciones Sus %unciones

!l #ialplan hace de Asterisk el software potente & verstil "ue es


3

Dialplan: El corazn de Asterisk

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan

#etermina "u' hacer con una llamada (omo una )tabla de enrutado* para las llamadas entrantes (uando Asterisk recibe una peticin, independientemente de la tecnolog+a ,SIP, IA-., #AH#I/, identi%ica el origen & mete la llamada a su conte$to en la e$tensin marcada & prioridad 0 Se organiza en conte$tos, e$tensiones & prioridades

exten => extensin, prioridad, aplicacin

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan ,./

1a extensin puede ser cual"uier cosa, no solo valen n2meros: e$ten 34 saul,0,#ial,SIP5saghul/ Se utilizan )patrones de marcado* para las e$tensiones ,6no vamos a meter todos los n2meros del mundo7/ 8: (omienzo del patrn -: (ual"uier d+gito del 9 al : ;: (ual"uier d+gito del 0 al : <: (ual"uier d+gito del . al : =0>?@: (ual"uier d+gito entre los corchetes, 0,.,A,? ,punto/: (ual"uier cosa

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan ,A/

!Bemplos de patrones: 1lamadas nacionales ,empiezan por :/: 8:------- 1lamadas a mviles ,empiezan por C o D/: 8=CD@------- 1lamadas Internacionales: 899 1lamadas a n2meros especiales SI< n2meros de pago ,E9C, E9A, :9C, :9A/ 8=E:@9=9>.?FD>:@-----Ger el dialplan desde el (1I:
*CLI> dialplan show *CLI> dialplan show desde-usuarios *CLI> dialplan show 943943943@desde-usuarios
7

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan ,?/

1as prioridades sirven para decidir el orden de las acciones al entrar en el dialplan Pueden utilizarse n2meros:
exten => 1234,1,Answer ! exten => 1234,2,"la#$a%& de'o-%on(rats!

H la prioridad )n*, "ue va sumando 0 automticamente:


exten => 1234,1,Answer ! exten => 1234,n,"la#$a%& de'o-%on(rats!

Si utilizamos n2meros es %cil saltar:


exten => 123,1,)oto 1234,1!

Si usamos la prioridad )n* podemos hacer )marcas* en el dialplan, para luego poder saltar a ellas:
exten => 1234,n 'i-&osa!,***

I podemos hacer:

exten => 123,1,)oto 1234,'i-&osa!

Para no repetir la e$tensin, se puede utilizar JsameJ a partir de la segunda prioridad:


exten => +9,,,,,,,,,1,-o.p Lla'ada na%ional! sa'e => n,/ial 0I"1sare2o31456,76-8!
8

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan ,F/

1as e$tensiones se agrupan en contextos. (ada dispositivo SIP, IA- o entrada de #AH#I se de%ine para un conte$to Kn dispositivo solo puede )llamar* a los n2meros "ue tiene de%inidos en su conte$to Kn conte$to puede incluir a otro: =miconte$to@ include 34 de%ault Ahora aun"ue mi dispositivo este de%inido en el conte$to )miconte$to* tiene acceso a todo el conte$to )de%ault*

Curso: Introduccin a la VoIP y Asterisk

!l #ialplan ,C/

Ha& )e$tensiones especiales*, "ue no son para "ue nadie mar"ue:


s: !$tensin start (uando entramos en un conte$to SI< e$tensin Lacros, IGRs, entrantes #AH#I h: !$tensin hangup Se llega a esta e$tensin al %inalizar la llamada i: !$tensin invlida Hpciones incorrectas en IGRs T: Mimeout absoluto en #ial t: Mimeout en IGRs fax: #eteccin de %a$ en canales #AH#I

10

Curso: Introduccin a la VoIP y Asterisk

Aplicaciones

Ia hemos visto algunas: #ial, Noto, Se eBecutan directamente desde el dialplan Para una lista completa de las aplicaciones disponibles:
*CLI>%ore show appli%ations

Para obtener la descripcin de una aplicacin:


*CLI> %ore show appli%ation /ial

1as aplicaciones en general hacen algo con un canal

11

Curso: Introduccin a la VoIP y Asterisk

Gariables

Asterisk tiene distintos tipos de variables Nlobales: A%ectan a todos los canales #e canal: Solo a%ectan al canal actual #el entorno ,entorno K<I-/ Kna lista completa de las variables: http:55OOO voip>in%o org5Oiki>AsteriskPvariables 1as variables se pueden )recortar*: QRvariable:desplazamiento:longitudS por eBemplo: QRvariableS3voiprocks >4 QRvariable:0S 34 oiprocks QRvariable:9:.S3vo Se soportan e$presiones bsicas, encerrndolas entre corchetes: e$ten 34 0.A?,0,Set,kosa3Q=CTF@/ Gariables globales: e$ten 34 0.A?,0,Set,N1HUA1,kosa/3algo/ Seccin =globals@ de e$tensions con%
1

Curso: Introduccin a la VoIP y Asterisk

Gariables ,./
Varia les de canal definidas a!to"#tica"ente

1istado de variables ms importantes: QR(A11!RI#S: (aller I# actual, nombre & n2mero QR(H<M!-MS: (onte$to actual QR!-M!<S: !$tensin actual QR(HA<<!1S: (anal actual QR#IA1SMAMKSS: !stado de la llamada QR#AM!MIL!S: Hora actual Kna aplicacin 2til para ver el contenido es <oHp: <oHp , QRGARIAU1!S / <os mostrar en el (1I el valor de la variable Para ver todas las variables de un canal: #ump(han,/

13

Curso: Introduccin a la VoIP y Asterisk

JMeor+a de las patasJ


Suele ser habitual hablar de Jla primera pataJ & Jla segunda pataJ: Por Jprimera pataJ se entiende el canal "ue se genera cuando le entra a Asterisk una peticin de un peer Se buscar el peer Se meter la llamada en su conte$to Se seguir la lgica "ue dicta el dialplan Se irn seteando variables, consultando, etc Probablemente, en alg2n momento el dialplan llegar a un #ial Ah+ nace Jla segunda pataJ !sta segunda pata no tendr #ialplan, salvo "ue sea un chan local (uando conteste el llamada, Asterisk har el bridge de ambas patas para "ue puedan hablar

1!

Curso: Introduccin a la VoIP y Asterisk

Vunciones

Se utilizan en el dialplan, pero dentro de las aplicaciones, sirven para trabaBar con datos: 1!<: #evuelve la longitud de una cadena <oop,1!<,kosa// 55devuelve ? (A11!RI#: ViBa o lee el valor del callerid: Set,numero3(A11!RI#,number// Para obtener una lista completa de %unciones podemos eBecutar:
*CLI>%ore show 9un%tions

!n general <H act2an sobre un canal & pueden ir en cual"uier sitio en el "ue pueda ir una variable

15

Curso: Introduccin a la VoIP y Asterisk

1a aplicacin #ial

1a aplicacin #ial permite realizar una llamada a un dispositivo Su %ormato ms sencillo es: #ial,Mecnolog+a5dispositivo,timeout,opciones/ #onde opciones puede ser: t: Permitir "ue el usuario lla"ado trans%iera la llamada M: Permitir "ue el lla"ante trans%iera la llamada r: Nenerar un tono de ring arti%icial O: Permite al usuario llamado grabar la llamada W: Permite "ue el llamante grabe la llamada

16

Curso: Introduccin a la VoIP y Asterisk

1a aplicacin #ial ,./

Mras un #ial correcto ,se contesta la llamada/, se termina la eBecucin de acciones en el dialplan & se pasa a la e$tensin h ,si e$iste/:
exten => 1234,1,/ial 0I"1user1! exten => 1234,n,-o.p Al(o ha ido 'al***! exten => h,1,-o.p La lla'ada ha ido $ien***!

1a variable #IA1SMAMKS contiene in%ormacin acerca del 2ltimo #ial realizado Puede tomar los siguientes valores, entre otros: UKSI, <HA<SW!R, (HA<K<AGAI1, <os puede servir para hacer distintas cosas dependiendo del estado de la 2ltima llamada

17

Curso: Introduccin a la VoIP y Asterisk

1a aplicacin #ial ,./

!Bemplo #IA1SMAMKS:
:'a%ro-lla'ar; exten => s,1,-o.p <o# a lla'ar! exten => s,n,/ial 45A=)18,4>,7t! exten => s,n,)oto s-45/IAL07A7?08,1! exten => s-@?0A,1,<oi%e'ail 45BAC=.+6,76-8,$! exten => s-@?0A,n,Can(up exten => s--.A-0D6=,1,<oi%e'ail 45BAC=.+6,76-8,u! exten => s--.A-0D6=,n,Can(up exten => +s-*,1,Answer ! exten => +s-*,n,"la#tones $us#! exten => +s-*,n,@us# >!

18

Curso: Introduccin a la VoIP y Asterisk

1a aplicacin #ial ,A/

Ls in%ormacin sobre #ial: core shoO application dial ,en el (1I de Asterisk/

http:55OOO voip>in%o org5Oiki>AsteriskPcmdP#ial http:55OOO voip>in%o org5Oiki5vieO5AsteriskPvariableP#IA1SMAMKS

19

Curso: Introduccin a la VoIP y Asterisk

1a aplicacin Noto

Permite realizar saltos dentro del dialplan Se pueden realizar saltos en base a: Prioridad o eti"ueta ,dentro del mismo conte$to & e$tensin/ !$tensin & prioridad ,o eti"ueta/ ,dentro del mismo conte$to/ (onte$to, e$tensin & prioridad ,o eti"ueta/ Por eBemplo:
exten => 1234,1,)oto ser2i%ios,1234,1!

Curso: Introduccin a la VoIP y Asterisk

Pla&back

!sta aplicacin reproduce un %ichero de audio ,o v+deo/ al usuario Sinta$is


"la#$a%& no'$re-del-9i%hero-sin-extension!

Asterisk buscar el archivo en 5var5lib5asterisk5sounds5 Rcodigo de idiomaS !l cdigo de idioma se setea: asterisk con% ,de%aultlanguage/ (on%iguracin del canal, seccin =general@ ,sip con%, por eBemplo/ (on%iguracin del peer con setvar !n dialplan: Set,1A<NKAN!3es/

Curso: Introduccin a la VoIP y Asterisk

!cho

Reproduce el sonido de entrada por el canal de salida Lu& 2til para comprobar si ha& audio bidireccional, a la hora de depurar problemas

Curso: Introduccin a la VoIP y Asterisk

!Bercicio

Receta: (rear un conte$to )internas* donde se indica como llamar a las e$tensiones internas (rear un conte$to )servicios* con los servicios de eco & demo (rear el conte$to )tel%>internos* "ue inclu&a los . conte$tos anteriores & hacer "ue los dispositivos SIP utilicen este conte$to Incluir el conte$to )internas* en el conte$to de%ault, para "ue si permitieramos llamadas entrantes, solo pudieran llamar a los tel'%onos, pero no usar los servicios

Curso: Introduccin a la VoIP y Asterisk

!Bercicio ,solucin/
extensions.conf
=de%ault@ include 34 internas =servicios@ e$ten 34 ?99,0,AnsOer,/ e$ten 34 ?99,n,Pla&back,beep/ e$ten 34 ?99,n,!cho,/ e$ten 34 ?90,0,AnsOer,/ e$ten 34 ?90,n,Pla&back,demo>congrats/ e$ten 34 ?90,n,Hangup =internas@ e$ten 34 .99,0,#ial,SIP5so%tphone,?F,Mt/ e$ten 34 .99,n,Noto,.99>QR#IA1SMAMKSS,0/ e$ten 34 .99>UKSI,0,Uus&,F/ e$ten 34 8.99> ,0,(ongestion,F/ e$ten 34 .90,0,#ial,SIP5hardphone,?F,Mt/ e$ten 34 .90,n,Noto,.90>QR#IA1SMAMKSS,0/ e$ten 34 .90>UKSI,0,Uus&,F/ e$ten 34 8.90> ,0,(ongestion,F/ =tel%>internos@ include 34 internas include 34 servicios

Curso: Introduccin a la VoIP y Asterisk

!Bercicio ,solucin/ ,./


=general@ conte$t3de%ault =so%tphone@ t&pe3%riend secret30.A? conte$t3tel%>internos host3d&namic disalloO3all alloO3alaO =hardphone@ t&pe3%riend secret30.A? conte$t3tel%>internos host3d&namic disalloO3all alloO3alaO
sip.conf

$#s aplicaciones del Dialplan

Curso: Introduccin a la VoIP y Asterisk

Aplicaciones N

enerales

1as aplicaciones generales ms importantes son:

Wait ,n/

!spera n segundos, ignorando los d+gitos marcados durante !spera n segundos, pero gestionando los d+gitos marcados Reproduce m2sica en espera durante n segundos Imprime el mensaBe en el (1I

Wait!$ten ,n/

LusicHnHold,clase, n/

<oHp ,mensaBe/

Curso: Introduccin a la VoIP y Asterisk

Aplicaciones de gestin de llamadas

1os comandos de gestin de llamadas ms importantes: AnsOer,/ Acepta la llamada entrante por el canal Uus&,/ !nv+a la seXal de ocupado al origen (ongestion,/ !nv+a la seXal de congestin al origen Hangup,/ (uelga la llamada Ringing,/ !nv+a la seXal de tono de llamada

Curso: Introduccin a la VoIP y Asterisk

Aplicaciones de control de %luBo

Algunos comandos de control de %luBo & temporizacin: Noto ,conte$to, e$tension, prioridad/ Salta al conte$to, e$tensin & prioridad del argumento NotoI% , e$presin Y prioridad0 : prioridad. / Salta a la prioridad0 si la e$presin es verdadera Salta a la prioridad. si la e$presin es %alsa NotoI%Mime,Ztimes4,ZOeekda&s4,Zmda&s4,Zmonths4Y 1abelI%Mrue:1abelI%Valse/ !$ecI%,e$pressionYappi%true,args/=:appi%%alse,args/@/

Curso: Introduccin a la VoIP y Asterisk

Aplicaciones de reproduccin de sonidos

Algunas aplicaciones para la reproduccin:

Pla&Uack ,%ichero /

Reproduce el %ichero, continua la eBecucin cuando %inaliza Reproduce el %ichero, pero continua la eBecucin inmediatamente Reproduce los d+gitos Reproduce los tonos indicados

Uackground ,%ichero/

Sa&#igits ,d+gitos/

Pla&Mones ,tonos/

30

Curso: Introduccin a la VoIP y Asterisk

Asterisk PU-: !$presiones


%intaxis de las Expresiones

!s posible utilizar e$presiones en las llamadas a aplicaciones ,principalmente: NotoI%/ S&nta$is: &'expr( operador expr)* Hperadores 1gicos: [,or/ , \,A<#/ Hperadores de (omparacin: 3, 73, Z, 4, Z3, 43 Hperadores Aritm'ticos: P, >, T, 5, ] = @ , !Bemplos:

e$ten 34 0,0,Set,total3Q=0 P 0@/ e$ten 34 0,.,NotoI%,Q=QR(A11!RI#,num/S30.A?FC@Y09:.9/

31

$acros

Curso: Introduccin a la VoIP y Asterisk

Lacros

Son conte$tos con un comportamiento distinto Admiten parmetros !mpiezan sie"pre con la e$tensin )s* Son como subprogramas, se utilizan para no repetir cdigo en el dialplan !Bemplo de macro "ue muestra en el (1I el parmetro "ue se le pasa: :'a%ro-prue$a; exten => s,1,Answer ! exten => s,n,"la#$a%& de'o-%on(rats! exten => s,n,-oop 45A=)18! exten => s,n,Can(up Para llamar a la macro: exten => 1234,1,Ba%ro prue$a,452ar8! Para llamar a la macro si se cumple condicin:
exten => 1234,1,Ba%roI9 4: 45<A=18 = > ;E prue$a,452ar8!

33

Curso: Introduccin a la VoIP y Asterisk

Lacros

Modos los argumentos son accesibles mediante ARN0, ARN., ARNA, ^ Gariables especiales $A+,-.E/TE0: !$tensin desde la "ue se llam a la macro !-M!< contendr+a JsJ7 $A+,-.+-0TE/T: (onte$to desde el "ue se llam a la macro (H<M!-M contendr+a el nombre de la macro7 $A+,-.1,2-,2T3: Prioridad desde la "ue se llam a la macro PRIHRIMI contendr+a la prioridad dentro de la macro7 1as macros %inalizan al "uedarse sin ms prioridades para eBecutar Guelven al conte$to desde el "ue %ueron llamadas Lacro!$it provoca una salida inmediata

3!

Curso: Introduccin a la VoIP y Asterisk

!Bercicio

#iseXar una macro para llamar a los usuarios tal "ue si esta ocupado le mandaremos al buzn dando un mensaBe de ocupado & si no responde le mandaremos al buzn dando un mensaBe de no disponible Si ha& alg2n error ,ni UKSI ni <HA<SW!R/ le damos tonos de ocupado

35

Curso: Introduccin a la VoIP y Asterisk

!Bercicio
=macro>prueba@ e$ten 34 s,0,#ial,QRARN0S,A9,Mt/ e$ten 34 s,n,Noto,s>QR#IA1SMAMKSS,0/ e$ten 34 s>UKSI,0,Goicemail,QRLA(RH8!-M!<S,b/ e$ten 34 s>UKSI,n,Hangup e$ten 34 s><HA<SW!R,0,Goicemail,QRLA(RH8!-M!<S,u/ e$ten 34 s><HA<SW!R,n,Hangup e$ten 34 8s> ,0,AnsOer,/ e$ten 34 8s> ,n,Pla&tones,bus&/ e$ten 34 8s> ,n,Uus&,F/

36

4!zones de 5oz

Curso: Introduccin a la VoIP y Asterisk

Goicemail

Asterisk dispone de un completo sistema de buzones de voz gestionable mediante . aplicaciones:

Voice"ail$ain: Len2 interactivo desde el "ue podemos escuchar los mensaBes, grabar nuestos mensaBes personalizados, cambiar la contraseXa, ^ Voice"ail: Aplicacin para deBar un mensaBe en el buzn de un usuario

Se con%iguran en el %ichero 5oice"ail.conf

38

Curso: Introduccin a la VoIP y Asterisk

Goicemail

!structura del %ichero 5oice"ail.conf :(eneral; .p%iones (enerales F :3one'essa(es; /e9ini%iGn de 9or'atos de hora por 3ona F :%ontexto de $u3ones; @u3ones F
39

Curso: Introduccin a la VoIP y Asterisk

Goicemail

5oice"ail.conf _ parmetros importantes


1anguage: Idioma del sistema de buzones Vormat: %ormato en el "ue se guardarn los mensaBes de voz Attach: Indica si se enviar el %ichero de audio como un adBunto en el email de noti%icacin

#e%inicin de un buzn: 06"ero => cla5e, no" re, e"ail 0.A? 34 0.A?, Sa2l Ibarra, saul`irontec com

!0

2V,s

Curso: Introduccin a la VoIP y Asterisk

IGRs

Kn IGR ,Interactive Goice Response/ es un men2 con el "ue el usuario puede interactuar mediante pulsaciones #MLV Mradicionalmente comienza con la e$tensin )s* Se comprueba la hora para decidir la siguiente accin Se reproduce un mensaBe de bienvenida & se esperan las pulsaciones del usuario Se controlan las e$tensiones )t* e )i*, por si el usuario no pulsa nada en el tiempo %iBado o realiza una pulsacin incorrecta Para "ue no se entre en un bucle in%inito, se suelen %iBar . tipos de retardo: tiempo inter>digito & el tiempo de respuesta total Set,MIL!HKM,digit/3A/ Set,MIL!HKM,response/3:/

Curso: Introduccin a la VoIP y Asterisk

IGRs ,A/
!ntrada en el men2 interactivo

7la"ada

Aplicacin Wait!$ten

Mimeout Y S+ Aplicacin Salta a !-M t

<o

!$iste e$tensin Y

<o

Aplicacin Salta a !-M i

S+ Aplicacin
1lamar e$tensin

!3

Curso: Introduccin a la VoIP y Asterisk

!Bercicio

#iseXar un IGR con las siguientes caracter+sticas:


Al pulsar 0 llame al so%tphone Al pulsar . llame al hardphone Al pulsar A reproduzca la locucin de los monos Al pulsar ? reproduzca m2sica en espera de manera in%inita Al pulsar F deBemos un mensaBe en el buzn del so%tphone

!!

Curso: Introduccin a la VoIP y Asterisk

!Bercicio
:i2r; exten exten exten exten exten exten exten exten exten exten exten => => => => => => => => => => => s,1,Answer s,n,0et 7IB6.?7 di(it!=3! s,n,0et 7IB6.?7 response!=H! s,n,@a%&(round $ien2enida! s,n,Dait6xten 3! 1,1,/ial 0I"1so9tphone! 2,1,/ial 0I"1hardphone! 3,1,"la#$a%& tt-'on&e#s! 3,n,Can(up 4,1,Busi%.nCold ! >,1,<oi%e'ail 1234,s!

!5

AstD4: Asterisk Data ase

Curso: Introduccin a la VoIP y Asterisk

Ast#U

Asterisk incorpora una U# tipo Uerkele& #U v. !n ella el propio Asterisk guarda diversos valores: Registros SIP, IA In%ormacin sobre colas <osotros tambi'n podemos guardar in%ormacin en ella & consultarla desde el dialplan Se organiza en %amilias, & dentro de una %amilia puedes tener diversas claves, & para cada clave un solo valor )Kna especie de arbol con valores solo en las hoBas*

!7

Curso: Introduccin a la VoIP y Asterisk

Ast#U ,./

!Bemplo desde el (1I:


*CLI> database show *CLI> database put mifamilia miclave mivalor Updated database successfully *CLI> database show mifamilia /mifamilia/miclave : mivalor

*CLI> database put mifamilia miclave mivalor2 Updated database successfully *CLI> database show mifamilia /mifamilia/miclave : mivalor2
!8

Curso: Introduccin a la VoIP y Asterisk

Ast#U ,A/

#esde el dialplan: Set,var3QR#U,%amilia5clave/S/ Set,#U,%amilia5clave/3QRvarS/

!9

Curso: Introduccin a la VoIP y Asterisk

!Bercicio

#esarrollar una macro "ue implemente #<# ,#o <ot #isturb/ Si la e$tensin a la "ue llamamos tiene el #<# activado reproducimos un mensaBe de )e$tensin no disponible* Si no lo tiene activado, le llamamos Si no contesta o esta ocupado, le mandamos al buzn Pistas: Vuncin #U8!-ISMS Aplicacin NotoI% Gariable LA(RH8!-M!<

50

Curso: Introduccin a la VoIP y Asterisk

!Bercicio
=macro>llamar@ e$ten 34 s,0,NotoI%,Q=QR#U8!-ISMS,#<#5QRLA(RH8!-M!<S/S 3 9@Ys,llamar/ e$ten 34 s,n,Pla&back,vm>e$tension/ e$ten 34 s,n,Pla&back,vm>isunavail/ e$ten 34 s,n,Hangup e$ten 34 s,n,llamar/,#ial,QRARN0S,?F,Mt/ e$ten 34 s,n,Noto,s>QR#IA1SMAMKSS,0/ e$ten 34 s>UKSI,0,Goicemail,QRLA(RH8!-M!<S[b/ e$ten 34 s>UKSI,n,Hangup e$ten 34 s><HA<SW!R,0,Goicemail,QRLA(RH8!-M!<S[u/ e$ten 34 s><HA<SW!R,n,Hangup e$ten 34 8s> ,0,AnsOer,/ e$ten 34 8s> ,n,Pla&tones,bus&/ e$ten 34 8s> ,n,Uus&,F/

51

Curso: Introduccin a la VoIP y Asterisk

!Bercicio

Ampliar la macro anterior para "ue implemente (V ,(all VorOard/ Primero se comprueba el #<#, & luego el (V !l desv+o puede realizarse a cual"uier n2mero "ue los tel'%onos internos puedan marcar ,conte$to tel%>internos/ Pistas: Vuncin #U8!-ISMS Gariable #U8R!SK1M

Curso: Introduccin a la VoIP y Asterisk

!Bercicio
=macro>llamar@ e$ten 34 s,0,NotoI%,Q=QR#U8!-ISMS,#<#5QRLA(RH8!-M!<S/S 3 9@Ys,comp>c%/ e$ten 34 s,n,Pla&back,vm>e$tension/ e$ten 34 s,n,Pla&back,vm>isunavail/ e$ten 34 s,n,Hangup e$ten 34 s,n,comp>c%/,NotoI%,Q=QR#U8!-ISMS,(V5QRLA(RH8!-M!<S/S 3 9@Ys,llamar/ e$ten 34 s,n,Noto,tel%>internos,QR#U8R!SK1MS,0/ e$ten 34 s,n,llamar/,#ial,QRARN0S,?F,Mt/ e$ten 34 s,n,Noto,s>QR#IA1SMAMKSS,0/ e$ten 34 s>UKSI,0,Goicemail,QRLA(RH8!-M!<S[b/ e$ten 34 s>UKSI,n,Hangup e$ten 34 s><HA<SW!R,0,Goicemail,QRLA(RH8!-M!<S[u/ e$ten 34 s><HA<SW!R,n,Hangup e$ten 34 8s> ,0,AnsOer,/ e$ten 34 8s> ,n,Pla&tones,bus&/ e$ten 34 8s> ,n,Uus&,F/

53

-tras f!ncionalidades de 14/

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU-

Asterisk co"o 14/

Moda la secuencia & programacin del dialplan es el verdadero n2cleo del sistema centralita, si bien, las siguientes %uncionalidades se con%iguran en %eatures con%:

Mrans%erencias de llamadas: trans%erencia de llamadas entre diversos usuarios, independientemente de la tecnolog+a "ue usen (all Parking: Parking de llamadas (all PickKp: Auto>trans%erencia ,o robo de llamada/ de un tel'%ono "ue est' sonando

55

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PUTransferencias !n caso de SIP e IA-.: 1a trans%erencia #!U! ser nativa !l usuario SIP es el dueXo de su llamada7 !n %eatures con% se especi%ica: blind$%er 34 secuencia Permite realizar una trans%erencia de llamada a ciegas marcando la secuencia

at$%er 34 secuencia Permite realizar una trans%erencia de llamada atendida !l origen es puesto en espera, mientras el destino se comunica con el nuevo destino para anunciarle la llamada Si el nuevo destino cuelga, la llamada no se trans%iere pickupe$ten 34 secuencia !speci%ica como coger una llamada del grupo ,callgroup/

56

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU$6sica en Espera Asterisk puede poner un canal dado en espera ,JHH1#J/, principalmente en las siguientes situaciones: #urante una trans%erencia #urante una llamada si se ha especi%icado el parmetro JmJ, "ue indica "ue no se oir tono de llamada sino m2sica en espera #urante una espera en el parking Si la aplicacin LusicHnHold ha sido llamada desde el #ialPlan Si el destino de la llamada ha solicitado e$pl+citamente "ue la llamada sea puesta en espera !s posible tener distintos tipos de m2sica en espera 1a m2sica en espera se con%igura en el %ichero "!siconhold.conf

57

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU+all1arkin8 92:

!l callparking es una %uncionalidad "ue permite trans%erir la llamada a un JparkingJ virtual Pudiendo colgar sin "ue la llamada origen sea desconectada de Asterisk, &a "ue se encontrar aparcada Ksuario: )Mienes una llamada por la A* Para operar, el usuario trans%iere la llamada a una e$tensin especial ,parke$t en %eatures con%/, Asterisk aparca la llamada & anuncia la posicin en el parking (ual"uier usuario "ue tenga incluido en su conte$to el conte$to especial JparkedcallsJ puede recuperar la llamada aparcada llamando directamente a su posicin en el parking

58

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU-

+all1arkin8 922: (: A & U estn en conversacin

): A trans%iera al D99 & JaparcaJ a U en el Parking D90

(. 1lamar D99 ). Anuncio de T: U aparcado en D90

;. !sts aparcado L2sica en espera

U 59

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU+all1arkin8 9222: ;: #esde otro tel'%ono ( se puede recoger a U del Parking marcando el D90

(. 1lamar D90

<: ( & U estn en conversacin

U 60

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU+all1ick!p J(allPickupJ es el hecho de poder descolgar & responder a la llamada entrante a un tel'%ono o grupo de tel'%onos determinado desde un tercer tel'%ono "ue no est sonando 1a con%iguracin de los cdigos #MLV para J(allPickupJ se con%igura en %eatures con% Se de%inen dos conceptos: callgroup: Moda llamada "ue entra a una e$tensin determinada pertenece al5los callgroups de la e$tensin pickupgroup: !s el5los callgroups de llamadas entrantes "ue el usuario puede hacer JpickupJ !n cada usuario de la centralita se pueden de%inir esos dos parmetros

61

Curso: Introduccin a la VoIP y Asterisk

Asterisk como PU+all1ick!p 922:

1a aplicacin PickKp nos permite hacer una captura JdirigidaJ de una llamada Podemos seleccionar cual de las llamadas "ueremos capturar

exten => *I,,,,1,"i%&?p 456,76-J28@usuarios!

Curso: Introduccin a la VoIP y Asterisk

#ISA D2%A

1a aplicacin #ISA nos permite o%recer un tono de marcado al usuario para "ue 'ste ,opcionalmente/ se autenti"ue & llame desde el conte$to indicado

exten => 1234,1,/I0A no-password, desde-disa!

63

+onstr!=endo !n dialplan sosteni le

Curso: Introduccin a la VoIP y Asterisk

!scenario *sencillo*

Lu& t+pico, una o%icina con:


Mele%on+a SIP interna !ntrantes v+a PSM<:

. numeraciones, . departamentos, horario, buzn de voz Seg2n destino (onsulta de buzn, con%erencia

Salientes v+a PSM< & proveedor GoIP:

Servicios internos:

65

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,I/

sip con%
:plantilla-usuarios; K! t#pe = 9riend host = d#na'i% se%ret = **** %anrein2ite = #es %ontext = usuarios :2LL; plantilla-usuarios! :2L1; plantilla-usuarios! :2L2; plantilla-usuarios! ***

66

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,II/

e$tensions con%
:usuarios; M A usuarios internosJ exten => +2,,,1,/ial 0I"1456,76-8,IL,t7! M -a%ionalesJ exten => +:HNI9;,,,,,,,,,1,/ial 'I0/-1(J$ri1456,76-8,IL,7! M 6xtranOeroJ exten => +LL*,1,/ial 0I"1pro2eedor-2oip1456,76-8,IL,7! M ?r(en%iasJ exten => 112,1,/ial 'I0/-1(J$ri1112,,7! M -P'eros %ortosJ exten => +1,,,,1,/ial 'I0/-1(J$ri1456,76-8,IL,7! M Consulta $u3Gn de 2o3J exten => >LL,1,<oi%eBailBain $u3on-entrantes! M 0ala de %on9eren%iaJ exten => >L1,1,BeetBe >L1!

67

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,III/


:entrantes-rdsi; M /eparta'ento de 2entasJ exten => 999LLL111,1,Ba%ro %o'prue$a-horario-2entas! exten => 999LLL111,n,)oto 999LLL111-45C.=A=I.8,1! exten => 999LLL111-/6-7=.,1,Queue 2entasRwtRRR4>! exten => 999LLL111-S?6=A,1,"la#@a%& 9uera-de-horario! exten => 999LLL111-S?6=A,n,<oi%eBail $u3on-entrantes,s! M /eparta'ento tT%ni%oJ exten => 999LLL222,1,Ba%ro %o'prue$a-horario-te%ni%os! ...dem... :'a%ro-%o'prue$a-horario-2entas; *** :'a%ro-%o'prue$a-horario-te%ni%os; *** 68

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,G/

Pero las cosas cambian con el tiempo:


<umeraciones 1+neas Personas <ecesidades etc

666 I esto nos lo piden estando Asterisk en produccin 777

69

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,GI/

abu' desemboca un m+nimo cambioY


!B: (ontratan . becarios & no "uieren "ue llamen al e$tranBero ,aY


aY

pero el cliente manda/

Solucin *a>toda>prisa*:
sip con%
:plantilla-$e%arios; K! %ontext = $e%arios se%ret = ****** *** :21L; plantilla-$e%arios! :211; plantilla-$e%arios!

70

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,GII/ e$tensions con%


:$e%arios; M A usuarios internosJ exten => +2,,,1,/ial 0I"1456,76-8,IL,t7! M -a%ionalesJ exten => +:HNI9;,,,,,,,,,1,/ial 'I0/-1(J$ri1456,76-8,IL,7! M 6xtranOeroJ exten => +LL*,1,/ial 0I"1pro2eedor-2oip1456,76-8,IL,7! M ?r(en%iasJ exten => 112,1,/ial 'I0/-1(J$ri1112,,7! M -P'eros %ortosJ exten => +1,,,,1,/ial 'I0/-1(J$ri1456,76-8,IL,7! M Consulta $u3Gn de 2o3J exten => >LL,1,<oi%eBailBain $u3on-entrantes! M 0ala de %on9eren%iaJ exten => >L1,1,BeetBe >L1!

71

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,GIII/

Ahora nos piden alargar la duracin de la llamada

Ala, a cambiarlo en A9 sitios 1o mismo AXadir en ambos conte$tos:


exten => +L,,,1,/ial 'I0/-1(J$ri1456,76-8,,7!

<os piden otra sala de con%erencia F9.

6 Se nos olvid los n2meros de emergencias 9-- 7

I puede ser peor

Curso: Introduccin a la VoIP y Asterisk

#ialplan poco mantenible ,I-/

<os piden conectar una V(M por V-H para llamadas v+a NSL ,ahorro de coste/

A duplicar cdigo otra vez Moca modi%icar muchas l+neas #uplicar cdigo o la *super>Xapa*:
:entrantes-tra%; exten => s,1,)oto entrantes-rdsi,999LLL111,1! UUU ahhhhhh KKK

(ambian los n2meros R#SI

Permitir entrantes v+a NSL al dept ventas

73

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,I/

sip con%
M 6'pleadosJ :plantilla-e'pleados; K! *** %ontext = desde-e'pleados :2LL; plantilla-e'pleados! :2L1; plantilla-e'pleados! :2L2; plantilla-e'pleados! M @e%ariosJ :plantilla-$e%arios; K! %ontext = desde-$e%arios :21L; plantilla-$e%arios! :211; plantilla-$e%arios!

7!

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,II/

e$tensions con%
M "or %o'odidad lo di2idi'os en 2arios 9i%herosJ Vin%lude dialplan1**dialplan :(lo$als; M CanalesJ =/0I = 'I0/-1(J$ri <.I" = 0I"1pro2eedor-2oip M ConstantesJ 7IB6.?7 = IL

75

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,III/

5etc5asterisk5dialplan5usuarios dialplan
:desde-e'pleados; in%lude in%lude in%lude in%lude in%lude => => => => => a-usuarios salientes-na%ionales salientes-interna%ionales salientes-otras ser2i%ios

:desde-$e%arios; in%lude in%lude in%lude in%lude => => => => a-usuarios salientes-na%ionales salientes-otras ser2i%ios

:a-usuarios; exten => +2,,,1,/ial 0I"1456,76-8,457IB6.?78,t7! 76

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,IG/

5etc5asterisk5dialplan5salientes dialplan
:salientes-na%ionales; exten => +:HNI9;,,,,,,,,,1,/ial 45=/0I81456,76-8,457IB6.?78,7!

:salientes-interna%ionales; exten => +LL*,1,/ial 45<.I"81456,76-8R457IB6.?78,7!

:salientes-otras; M ?r(en%iasJ exten => 112,1,/ial 45=/0I81112,,7! exten => +L,,,1,/ial 45=/0I81456,76-8,,7! M -P'eros %ortosJ exten => +1,,,,1,/ial 45=/0I81456,76-8,457IB6.?78,7!

77

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,G/

5etc5asterisk5dialplan5entrantes dialplan
:entrantes-rdsi; exten => 999LLL111,1,)oto entrantes-2entas,s,1! exten => 999LLL222,1,)oto entrantes-te%ni%os,s,1! :entrantes-(s'; exten => s,1,)oto entrantes-2entas,s,1! :entrantes-2entas; exten => s,1,Ba%ro %o'prue$a-horario-2entas! exten => s,n,)oto 45C.=A=I.8,1! exten => /6-7=.,1,Queue 2entas,wt,,,4>! exten => S?6=A,1,"la#@a%& 9uera-de-horario! exten => S?6=A,n,<oi%eBail $u3on-entrantes,s! :entrantes-te%ni%os; ...dem... 78

Curso: Introduccin a la VoIP y Asterisk

#ialplan mantenible ,GI/

5etc5asterisk5dialplan5servicios dialplan
:ser2i%ios; M Consulta $u3Gn de 2o3J exten => >LL,1,<oi%eBailBain $u3on-entrantes! M 0alas de %on9eren%iaJ exten => >L1,1,BeetBe >L1! exten => >L2,1,BeetBe >L2!

79

Curso: Introduccin a la VoIP y Asterisk

Precauciones

<umeraciones de !spaXa ,"ue no se nos olvide ning2n n2mero/:


httpJ11en*wi&ipedia*or(1wi&i17elephone+nu'$ers+in+0pain httpJ11es*wi&ipedia*or(1wi&i1-P'eros+de+telT9ono+de+e'er(en%ias

(uidado con los parmetros *#ial*:

<o poner *t* en una llamada al e$terior ,estamos dando permiso al llamado para "ue nos trans%iera a cual"uier n2mero >4 6 pagamos nosotros 7/

80

AE7

Curso: Introduccin a la VoIP y Asterisk

A!1.

AEL (Asterisk Extension Language) es una forma diferente de escribir el dialplan. Ms orientado a programadores: switch while for ... !tili"a el m#dulo pbx$ael.so (pbx$config.so carga el dialplan normal) %nternamente Asterisk traba&a con el dialplan clasico' (parsea) * con+ierte el AEL. Mu* ,til' * mucho ms legible. Ms informaci#n: http: www.+oip-info.org wiki +iew Asterisk.AEL/

Curso: Introduccin a la VoIP y Asterisk

A!1. ,./

Ejemplo: context prueba { 1234 => { Dial(SIP/saghul,45); switch (${DIALSTATUS}) { case BUSY: Voicemail(b200); break; case NOANSWER: Voicemail(u200); break; default: Noop(Algo raro ha pasado); Hangup; } } }

83

Вам также может понравиться