Академический Документы
Профессиональный Документы
Культура Документы
http://www.irontec.com
http://www.irontec.com
Introduccin
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:
!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
!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
!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
!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!
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:
!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*
!l #ialplan ,C/
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
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
11
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
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
1!
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
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
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
!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
Ls in%ormacin sobre #ial: core shoO application dial ,en el (1I de Asterisk/
19
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!
Pla&back
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/
!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
!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
!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
Aplicaciones N
enerales
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/
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
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/@/
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
!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:
31
$acros
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
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!
!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
!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
Goicemail
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
38
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
Goicemail
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
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:/
IGRs ,A/
!ntrada en el men2 interactivo
7la"ada
Aplicacin Wait!$ten
<o
!$iste e$tensin Y
<o
S+ Aplicacin
1lamar e$tensin
!3
!Bercicio
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
!!
!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
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
Ast#U ,./
*CLI> database put mifamilia miclave mivalor2 Updated database successfully *CLI> database show mifamilia /mifamilia/miclave : mivalor2
!8
Ast#U ,A/
!9
!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
!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
!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
!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
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
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
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
!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
U 59
Asterisk como PU+all1arkin8 9222: ;: #esde otro tel'%ono ( se puede recoger a U del Parking marcando el D90
(. 1lamar D90
U 60
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
1a aplicacin PickKp nos permite hacer una captura JdirigidaJ de una llamada Podemos seleccionar cual de las llamadas "ueremos capturar
#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
63
!scenario *sencillo*
. numeraciones, . departamentos, horario, buzn de voz Seg2n destino (onsulta de buzn, con%erencia
Servicios internos:
65
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
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
69
Solucin *a>toda>prisa*:
sip con%
:plantilla-$e%arios; K! %ontext = $e%arios se%ret = ****** *** :21L; plantilla-$e%arios! :211; plantilla-$e%arios!
70
71
<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
73
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!
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
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
5etc5asterisk5dialplan5salientes dialplan
:salientes-na%ionales; exten => +:HNI9;,,,,,,,,,1,/ial 45=/0I81456,76-8,457IB6.?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
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
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
Precauciones
<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
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/
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