Manual de Asterisk
Manual de Asterisk
Manual de Asterisk
Gonalves
Ex
Tercera Generacin
clu
Como construir y configurar un PBX con software libre Asterisk versin 1.4
siv op
1. Edicin/Janeiro/2007
rev. 8.2
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
ii
Copyright 2005 por Flavio E. Gonalves Todos los derechos reservados Traduccin Oscar Osvaldo Fueyo Alvarez Primera edicin: Diciembre de 2006 Revisin: Hctor Kee Gomez, hkee@voziptelco.com Cover art: Karla Braga
Constato: oops@asteriskguide.com Todos los derechos reservados. Es prohibida la reproduccin total o parcial de esto libro.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
iii
Prefacio
El Asterisk PBX es, en mi opinin, una revolucin en reas de telefona ip y PBX basado en software. Durante muchos aos el mercado de la telefona fue ligado a equipamientos propietarios fabricados por grandes compaas multinacionales. A pesar de tener equipamientos de bajo costo estas arquitecturas tambin presentan baja funcionalidad. La convergencia de datos y voz en poco tiempo va hacer que la telefona sea apenas una aplicacin mas de redes, tornando las actuales PBX obsoletas. Con la entrada de Asterisk, ms y ms empresas van a poder experimentar recursos como URA unidad de respuesta audible, DAC distribucin automtica de llamadas, movilidad, buzn de voz, y conferencia, antes restrictivo solo a grandes compaas debido al alto costo. La telefona IP cuando adquiera masa crtica har con el PBX de cualquier empresa pueda hablar con el PBX de cualquier otra a travs de Internet. A la hora de evaluar los beneficios de Asterisk preciso entrever este horizonte futuro que operadoras IP hacen intercomunicacin automtica con otros PBX. La economa en DDD y DDI es solo la punta del iceberg. Este libro fue creado con el objeto de facilitar la adopcin de AsteriskPBX en pases de lengua Hispana. Uno de los primeros problemas que encontr intentando aprender e implementar Asterisk fue la falta de documentacin. . A pesar del Libro del Asterisk handbook, de asteriskdocs.org y de Wiki (www.voip-info.org) que fueron las principales fuentes de referencia para este material, las informaciones se encuentran desparramadas por aqu y por all lo que torna difcil el aprendizaje. A pesar de usar algunos ejemplos con equipos de mercado, este material no recomienda especficamente ningn equipo o proveedor de servicios. selos por su cuenta y riesgo. No tenemos la pretensin de encinar todo lo que existe sobre Asterisk en este libro, pues esto seria una misin casi imposible, nuevos recursos estn siendo agregados todos los das y Asterisk tiene muchos. Nuestra principal pretensin en este material es de que el lector pueda tener acceso a los principales recursos y a partir de ellos pueda descubrir e implementar recursos mas avanzados. Yo espero que Uds. Se diviertan tanto aprendiendo Asterisk cuanto yo me divert escribiendo sobre el, tiempo y paciencia son requisitos indispensables para probar todos los recursos de este material. Flvio E Goncalves Diretor Geral V.Office Networks flavio@asteriskguide.com
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
iv
Agradecimientos
Tengo aqu que agradecer a mi familia por la paciencia de verme trabajando las madrugadas y fines de semanas para que este material pudiese ser escrito. Agradezco a Clarice mi esposa y compaera por los incentivos y apoyo y a Cristina Gonalves y Cristiano Soares por resolver todos los embates como la publicacin, distribucin, tapa, marketing que posibilitaron que este material llegase a los usuarios y a Oscar Osvaldo Fueyo Alvarez por la traduccin al espaol.
Marcas registradas
Ex
clu
siv
oops@asteriskguide.com
op
ar
Mientras que cada precaucin se ha tomado que escriba este libro, el autor no asume ninguna responsabilidad de errores y de omisiones, o daos resultando del uso de la informacin contenida dentro de este libro. Si usted encuentra cualquier omisin o error, apreciamos que usted nos contacte al e-mail:
aV
ice
nt
eM
Errores
igu
el
Pe
re zP
Las marcas registradas de DIGIUM, de ASTERISK, de IAX y de DUNDi son caracterstica de Digium Inc.
ar ed es
Sumario
INTRODUCCIN AL ASTERISK....................................................................11
1.1 OBJETIVOS DEL CAPTULO ............................................................... 1.2 QUE ES ASTERISK ........................................................................ 1.3 PORQUE ASTERISK? .................................................................... 1.4 ARQUITECTURA DE ASTERISK ........................................................... 1.5 VISIN GENERAL ......................................................................... 1.6 VIEJO Y NUEVO MUNDO .................................................................. 1.7 UN SISTEMA PARA TESTES Y DESARROLLO ............................................. 1.8 ESCENARIOS DE USO DE ASTERISK ..................................................... 1.9 BUSCANDO INFORMACIONES RELATIVAS A ASTERISK................................. 1.10 SUMARIO ................................................................................ 1.11 CUESTIONARIO.......................................................................... 11 11 15 17 20 21 23 24 29 29 30
igu
el
Pe
re zP
ar ed es
3.1 OBJETIVOS DEL CAPTULO ............................................................... 3.2 GRAMTICA DE LOS ARCHIVOS DE CONFIGURACIN .................................. 3.3 GRAMTICA ............................................................................... 3.4 CONFIGURANDO UNA INTERFACE CON LA RED PBLICA O UN PBX. ................. 3.5 CONFIGURACIN DE LOS TELFONOS IP SIP.......................................... 3.6 INTRODUCCIN AL PLAN DE DISCADO .................................................. 3.7 LABORATORIO ............................................................................ 3.8 SUMARIO .................................................................................. 3.9 CUESTIONARIO ...........................................................................
Ex
clu
32 32 34 35 45 47 49 50 50 52 53 54 55
siv
op
ar
aV
ice
nt
eM
vi
6.1 OBJETIVOS DEL CAPTULO ..............................................................135 6.2 INTRODUCCIN ..........................................................................135 6.3 TEORA DE OPERACIN .................................................................136 6.4 FORMATO DE LOS FRAMES ..............................................................137 6.5 USO DE BANDA ANCHA ..................................................................139 6.6 NOMENCLATURA DE LOS CANALES .....................................................141 6.7 ESCENARIOS DE USO ....................................................................142 6.8 AUTENTIFICACIN EN EL IAX ..........................................................151 6.9 CONFIGURACIN DEL ARCHIVO IAX.CONF .............................................154 6.10 COMANDOS DE DEPURACIN DO IAX2. .............................................159 6.11 SUMARIO ...............................................................................162 6.12 CUESTIONARIO.........................................................................163
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
vii
9.1 OBJETIVOS ...............................................................................229 9.2 INCLUSIN DE CONTEXTOS .............................................................229 9.3 COMO EL PLAN DE DISCADO ENCUENTRA LA EXTENSIN ............................231 9.4 RECIBIENDO UNA LLAMADA EN UN MEN DE VOZ.....................................237 9.5 SWITCHES, ENCAMINANDO PARA OTRO ASTERISK ...................................240 9.6 MACROS ..................................................................................241 9.7 LA BASE DE DATOS DE ASTERISK ......................................................242 9.8 PROGRAMANDO EL RECURSO DE LISTA NEGRA........................................243 9.9 CONTEXTOS BASADOS EN HORARIO ...................................................245 9.10 ABRIENDO UN NUEVO TONO DE DISCADO CON DISA. .............................247 9.11 LIMITANDO EL NMERO DE LLAMADAS SIMULTANEAS ..............................247
Ex
clu
siv
8.1 OBJETIVOS DEL CAPTULO ..............................................................202 8.2 INTRODUCCIN ..........................................................................202 8.3 ESTRUCTURA DEL ARCHIVO EXTENSIONS.CONF ......................................202 8.4 CONTEXTOS Y EXTENSIONES ...........................................................205 8.5 EXTENSIONES ............................................................................207 8.6 VARIABLES ...............................................................................212 8.7 EXPRESIONES ............................................................................215 8.8 FUNCIONES ..............................................................................216 8.9 O PLAN DE DISCADO EN LA PRCTICA .................................................218 8.10 EL ESTILO DE LA VERSIN 1.2 .......................................................223 8.11 CREANDO UN PLAN DE DISCADO SIMPLE.............................................224 8.12 SUMARIO ...............................................................................225 8.13 CUESTIONARIO.........................................................................226
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
viii
12.1 OBJETIVOS .............................................................................279 12.2 INTRODUCCIN ........................................................................279 12.3 LISTA DE TAREAS PARA LA CONFIGURACIN ........................................279 12.4 ARCHIVOS DE CONFIGURACIN DEL VOICEMAIL. ..................................283 12.5 INTERFASE WEB PARA EL BUSON DE VOZ. ..........................................288 12.6 SUMARIO ...............................................................................289 12.7 CUESTIONARIO.........................................................................290
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
ix
13.7 APLICACIONES Y FUNCIONES .........................................................296 13.8 USANDO AUTENTIFICACIN DE LOS USUARIOS .....................................297 13.9 USANDO LAS CONTRASEAS DEL BUZN DE VOZ...................................298 13.10 SUMARIO .............................................................................299 13.11 CUESTIONARIO .......................................................................299
Ex
clu
15-1 INTRODUCCIN ........................................................................322 15.2 OBJETIVOS DE ESTE CAPTULO .......................................................322 15.3 MODO DE FUNCIONAMIENTO DE ASTERISK REAL TIME ............................323 15.4 LAB 1 INSTALANDO EL ASTERISK REAL/TIME .....................................324 15.5 COMO CONFIGURAR EL ASTERISK REAL TIME.......................................324 15.6 CONFIGURACIN DE LA BASE DE DATOS ............................................327 15.7 LAB 2 INSTALANDO EL BANCO Y CREANDO LAS TABLAS .........................328 15.8 LAB 3 CONFIGURANDO Y TESTEANDO EL ARA ...................................331 15.9 SUMARIO ...............................................................................333 15.10 CUESTIONARIO .......................................................................333
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
RESPUESTAS DEL CAPTULO 11 .............................................................353 RESPUESTAS DEL CAPTULO 12 .............................................................355 RESPUESTAS DEL CAPTULO 13 .............................................................357 RESPUESTAS DEL CAPTULO 14 .............................................................359 RESPUESTAS DEL CAPTULO 15 .............................................................361
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Asterisk es un software PBX que usa el concepto de software libre (GPL). Digium, empresa que promueve el Asterisk, invierte en ambos aspectos, el desenvolvimiento de cdigo fuente y en hardware de telefona de bajo costo que funciona con Asterisk. El Asterisk corre en plataforma Linux y otras plataformas Unix con o sin hardware conectando a la red pblica de telefona, PSTN (Public Service Telephony Network). El Asterisk permite conectividad en tiempo real entre las redes PSTN y redes Voip. Con Asterisk, usted no tiene apenas un cambio excepcional de su PBX. El Asterisk es mucho ms que un PBX central. Con Asterisk en su red, Usted puede crear cosas nuevas en telefona como:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
streaming de media as como msica en MP3. Filas de llamada donde agentes de forma conjunta atienden las llamadas y monitorean dicha fila. Integracin para sintetizacin de la conversacin (text-tospeech). Registro detallado de llamadas (call-detail-records) para integracin con sistemas de tarificacin. Integracin con reconocimiento de voz (Tal como el software de cdigo abierto para reconocimiento de voz). La habilidad de interfaces con lneas telefnicas normales, ISDN en acceso bsico (2B+D) y primario (30B+D).
Pe
re zP
Asterisk incluye muchos recursos que solo eran encontrados en sistemas de mensajeria unificada sistema encima de la lnea como:
ar ed es
El proyecto ZAPATA fue conducido por Jim Dixon. El es el responsable por el desarrollo del hardware de DIGIUM. Es interesante resaltar que el hardware tambin es abierto y puede ser producido por cualquier empresa. Hoy la placa con 4 E1/T1s es producida por Digium, Sangoma y tambin por Varion. La historia del proyecto zapata puede ser vista en: http://www.asteriskdocs.org/modules/tinycontent/index.php?id=10) Una pequea traduccin puede ser encontrada abajo, Por Jim Dixon Hace 20 o 25 aos atrs, La AT&T comenz a ofrecer una API permitiendo a los usuarios personalizar la funcionalidad de su sistema de buzn de voz y auto-atencin de llamadas el cual recibi el nombre Audix. Audix corra en plataforma Unix y costaba como todo en telefona antes y hasta el momento, millares de dlares por puerta con una funcionalidad bastante limitada. En una tentativa de tornar las colas posibles y atractivas (Especialmente para quien no tenia un PBX AT&T) algunos fabricantes vieron que con una placa que poda ser colocada en un PC que corriera con DOS y responda a una nica lnea telefnica (FXO solamente) habra posibilidades. Las placas no tenan una calidad tan buena en cuanto a las actuales y muchas terminaron como secretarias electrnicas siendo igualmente malas en calidad. Nuevas placas de telefona fueron lanzadas con precios altos y las compaas continuaron gastando una faja de miles de dlares por puerta. Al final de cuentas, con los mrgenes altos de muchos fabricantes, las placas de telefonia poseian mucha capacidad de procesamiento en forma de DSPs, procesadores de seales digitales. Si ud. observa aun hoy un gateway de voz sobre ip, va a ver que buena parte del costo todabia est relacionada a los DSPs. Todava, el poder de procesamiento de los microconputadores continu creciendo. De forma que para probar el concepto inicial compr una placa Mitel89000C ISDN Express Development Card y escrib un driver para el FreeBSD. La placa ocup poco procesamiento de un Pentium III 600Mhz, probando que si no fuese por la limitacin de I/O (La placa trataba de forma ineficiente la I/O exigiendo muchos wait-states) ella podra atender de 50 a 75 canales. Como resultado de este acontecimiento, yo sal y compr lo necesario para crear un nuevo diseo de tarjeta ISA que usase el I/O de forma eficiente. Yo consegu dos T1s (48 canales) de datos transferidos sobre el bus entre memoria y el microprocesador y el PC gerencia esto sin problemas. Entonces ya tena yo las placas ofrecidas para la venta (Unas 50 fueron vendidas) y coloqu el diseo completo (incluyendo archivos de ploteo de la placa) en la web. .
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Como el concepto era revolucionario y sabia que hara repercusiones en la industria, Yo decid colocar un nombre inspirado en el revolucionario Mexicano y di el nombre a la organizacin de Emiliano Zapata y decidiendo llamar a la placa tormenta. As comenz la telefona ZAPATA. Escrib un driver completo y lo coloque en la red. La respuesta que yo obtuve fue casi siempre, Muy bien... y ud. tiene para Linux?. Personalmente yo nunca haba visto Linux correr antes, mas fui rpidamente a el Frys (Una tienda enorme de productos electrnicos, famosa en EUA) y compr una copia de Linux Red Hat 6.0. Di una ojeada a los drivers y us el Vdeo Spigot como base para traducir el driver de BSD para Linux. De cualquier forma mi experiencia con Linux no era buena y comenc a tener problemas en desarrollar el mdulo del kernel en la forma de mdulos cargables. De cualquier forma lo libere en la red sabiendo que algn guru en Linux se reira de l y talvez me ayudara a reformarlo en un Linux apropiado. En 48 horas recib un e-mail de un sujeto de Alabama (Mark Spencer), que se ofreci para hacer exactamente esto. Me entere que, l deca que tenia algo que seria perfecto para a todo esto en conjunto (El Asterisk). En ese momento Asterisk era un concepto funcional, porque no tena una forma real de funcionar de forma prctica e til. El casamiento del sistema de telefona Zapata y el diseo de bibliotecas de hardware/driver y interfaces permitiran a l crecer para ser un PBX real que podra hablar con telfonos y lneas reales. A colacin de esto, Mark era brillante en VOIP, redes, en la parte interna del sistema etc., y tena un gran inters en telfonos y telefona, pero tena experiencia limitada en sistemas de telefona y como estos funcionaban, particularmente en el rea de interfaces de hardware. Desde el inicio yo estaba y siempre estuve para ayudarlo en estas reas, ambos estuvimos proporcionndonos informacin e implementando cdigo de drivers y de switch (PBX). Nosotros y mas recientemente otros, hicimos un buen equipo trabajando en un objetivo comn; el de alcanzar las implementaciones en tecnologa de Telecom al pblico por un costo realista. Desde la tarjeta ISA, yo dise la Tormenta 2 PCI Quad T1/E1, la cual Mark vende como Digium T400P e E400P, y ahora Varion est vendiendo como V400P (Ambos T1 e E1). Todos los archivos del proyecto (incluyendo foto y archivos de ploteo) estn disponibles en zaptelephony.org (http://www.zapatatelephony.org) para uso pblico. Pero diseos de mayor densidad estn en camino,
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Como cualquiera puede ver, con el trabajo dedicado de Mark (un montn de mi tiempo y de otras personas) los drives de Zaptel y el software de Asterisk, son tecnologas que vienen de un largo tiempo atrs y que estn creciendo y mejorndose da tras da.
Este es uno de los beneficios mas citados, en vez de esperar que alguien configure su PBX propietario (algunos ni dan una indicacin para el cliente final sobre esto), lo configura usted mismo. Total libertad e interfaces estndar. En fin de cuentas es LINUX y es libre.
Ex
clu
Cuando usted agrega recursos avanzados como Voz sobre IP, URA e DAC, la diferencia de costo es menor, en diversas oportunidades. Para dar un ejemplo, una nica puerta de URA hoy con acceso a un mainframe, cotizada recientemente para un cliente nuestro, cost por lo menos 10 veces el precio que costara con Asterisk.
siv
op
ar
aV
Si usted compara un PBX tradicional con Asterisk talvez la diferencia sea pequea, principalmente por los costos de hardware y los telfonos IP. Entretanto, Asterisk solo puede ser comparado a un PBX digital. Comparar una central analgica de cuatro lneas FXO y 16 ramales con Asterisk es injusto.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Asterisk usa una CPU de servidor para procesar los canales de voz, en vez de tener un DSP (procesador de seales digitales) dedicado a cada canal. Todava que esto permiti que el costo fuese reducido para las placas E1/T1, el sistema es muy dependiente de la performance de CPU. Mi recomendacin es preservar al mximo la CPU de Asterisk, crranlo siempre en una mquina dedicada y prueben el dimensionamiento antes de implantarlo. En mi opinin, Asterisk debe ser siempre implementado en una VLAN especfica para VoIP, cualquier tempestad de broadcasts causada por loops o vrus puede comprometer su funcionamento debido a el uso de CPU de las placas de red cuando este fenomeno se da.
Ex
clu
siv
op
ar
aV
Una de las cosas mas fantsticas de Linux es la comunidad de software libre. Cuando yo accedo al Wiki, o los foros de software en cdigo abierto yo percibo que la adopcin de nuevos usuarios es muy rpida, millares de preguntas cuestiones y relatos de problemas son enviados todos los das. Asterisk es probablemente uno de los softwares que ms personas tienen disponibles para testear y probar. Esto torna el cdigo estable y permite una rpida resolucin de problemas.
ice
nt
eM
igu
el
Pe
Una vez ms el Asterisk se supera. Si pensamos, la mayora de las centrales, ni siquiera posen la misma ruta de costo menor. Con Asterisk este proceso es simple y prctico.
re zP
ar ed es
Un canal es el equivalente a una lnea telefnica en la forma de un circuito de voz digital. Este generalmente consiste de una seal analgica en un sistema POTS1 o alguna combinacin de CODEC y protocolos de sealizacin (GSM con SIP, Ulaw con IAX). En un principio las conexiones de telefona eran siempre analgicas y por eso, ms susceptibles a ruidos y ecos. Ms recientemente, buena parte de la telefona paso para el sistema digital, donde la seal analgica es codificada en forma digital usando normalmente PCM (Pulse Code Modulation). Esto permite que un canal de voz sea codificado en 64 Kilobits/segundo sin ser compactado. Canales para la red pblica de telefona Digium zaptel. chan_zap TE410P 4xE1/T1 (PCI-X 3.3V) TE412P 4xE1/T1 (PCI-X 3.3V) con supresin de eco
POTS Plain Old Telephony System, sistema de telefona convencional, basado normalmente en lneas analgicas.
1
Ex
clu
siv
op
ar
aV
1.4.1 Canales
ice
La figura de arriba nos muestra la arquitectura bsica de Asterisk. Vamos explicar abajo los conceptos relacionados con este esquema como los canales, los codecs y las aplicaciones.
nt
eM
igu
el
Pe
re zP
ar ed es
chan_phone: Tarjetas quicknet phonejack y linejack. chan_misdn, chan_visdn, chan_capi: Tarjetas ISDN (Eicon,
Beronet, Junghanns) chan_unicall: Tarjetas Digium con sealizacin MFC/R2 chan_ss7: Tarjetas Digium con sealizacin 7 (ISUP). chan_bluetooth: Permite el uso de dispositivos Bluetooth Canales para voz sobre IP
chan_agent:
Un canal de agente DAC. Dial String (Agent/agentnumber) chan_console: Console: Cliente de consola de Linux, driver para placas de sonido (OSS o ALSA). Dial string: console/dsp; chan_local: Pseudo canal. Hace un loop en el plan de discado. Dial string: Local/extension@context
Ex
clu
siv
op
chan_sip: Session Initiation Protocol. chan_iax: Inter-Asterisk Exchange Protocol 2. chan_h323: ITU H.323 chan_mgcp: IETF MGCP. chan_sccp: Cisco SCCP
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
T405P 4xE1/T1 (PCI-X 5V) TE407P - 4xE1/T1 (PCI-X 5V) con supresin de eco TE205P 2xE1/T1 (PCI-X 5V) TE207P - 2xE1/T1 (PCI-X 5V) con supresin de eco TE210P - 2xE1/T1 (PCI-X 3.3V) TE212P - 2xE1/T1 (PCI-X 3.3V) con supresin de eco TE110P 1xE1/T1 (PCI-X 3.3, 5V) B410P - 4 x ISDN BRI TDM400P 4 puertas analgicas FXS o FXO TDM800P - 8 puertas analgicas TDM2400 - 24 puertas analgicas FXS o FXO
una compresin de 8 para 1. Otros ejemplos son ulaw, alaw, gsm, ilbc y g729. Asterisk soporta los siguientes CODECs:
1.4.4 Aplicaciones
Para conectar las llamadas de entrada con las llamadas de salida u otros usuarios de Asterisk son usadas diversas aplicaciones como es Dial, por ejemplo. La mayor parte de las funcionalidades de Asterisk son creadas en forma de aplicaciones como son estas el VoiceMail (buzn de voz), Meetme (conferencia), entre otras. Usted puede ver las aplicaciones disponibles en Asterisk usando el comando core show applications en la interface de lnea de comando del Asterisk. Ms all de las aplicaciones en la versin central existen aplicaciones que pueden ser adicionadas a partir de archivos asterisk-addons y de terceros.
Ex
clu
siv
op
ar
Enviar datos de un telfono a otro seria fcil si los datos encontrasen su propio camino para el otro telfono destino. Desafortunadamente esto no sucede as, es preciso un protocolo de sealizacin para establecer las conexiones, determinar el punto de destino, y tambin cuestiones relacionadas a sealizacin de telefona como el tono y tiempo de campanilla, identificador da llamada, desconexin etc. Hoy es comn el uso de SIP (Session Initiated Protocol), muy usado hoy, y otros protocolos tambin muy en auge en el mercado como lo es el H.323, el MGCP y mas recientemente el IAX que es excepcional cuando se trata de trunking y NAT (Network Address Translation). Asterisk soporta:
aV
ice
nt
eM
igu
el
Pe
1.4.3 Protocolos
re zP
G.711 ulaw (usado en EUA) (64 Kbps). G.711 alaw (usado en Europa y Brasil) (64 Kbps). G.723.1 Modo Pass-through G.726 - 32kbps en Asterisk1.0.3, 16/24/32/40kbps G.729 Precisa adquisicin de licencia, a menos que este siendo usando en modo pass-thru.(8Kbps) GSM (12-13 Kbps) iLBC (15 Kbps) LPC10 - (2.5 Kbps) Speex - (2.15-44.2 Kbps)
ar ed es
3
DE F
4
G HI
4
5
J KL
6
MNO
7
PQ RS
7
8
TUV
9
W XYZ
PRS Q
3
DE F
4
G HI
4
5
J KL
6
MNO
7
PQ RS
7
8
TUV
9
W XYZ
PRS Q
2
AB C
3
DE F
4
G HI
4
5
J KL
6
MNO
7
PQ RS
7
8
TUV
9
W XYZ
PRS Q
TDM TDM - multiplexacin por divisin de tiempo, toda a telefona convencional est basada en este concepto, cuando hablamos en TDM estaremos refirindonos a circuitos T1 e E1. E1 es ms comn en Brasil e Europa, T1 es ms usado en EUA.
Ex
clu
siv
Dentro de una visin general, Asterisk es un PBX hbrido que integra tecnologas como TDM2 y telefona IP con funcionalidad de unidades de respuesta automtica y distribucin automtica de llamadas. En este momento de la lectura del libro es probable que usted no este entendiendo todos estos trminos, pero a lo largo de los captulos, estar cada vez mas familiarizado con ellos. En la figura de arriba podemos ver que Asterisk se puede conectar a una operadora de telecomunicaciones o un PBX usando interfaces analgicas o digitales. Los telfonos pueden ser IP, analgicos o ADSI que es un telfono analgico con display digital.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
3
DEF
4
GHI
4
5
J KL
6
MNO
7
PQ R S
7
8
TUV
9
WX YZ
Q PRS
3
DE F
4
GH I
4
5
JKL
6
MNO
7
P QR S
7
8
TUV
9
WX YZ
QR PS
2
AB C
3
DE F
4
GH I
4
5
JKL
6
MNO
7
P QR S
7
8
TUV
9
WX YZ
QS PR
Ex
clu
siv
op
Es bastante comn en estos das el uso de softswitches o PBXs. Entretanto la forma de comercializacin de estos equipos sigue muchas veces la lgica mostrada en la figura 1.3. Los componentes son hechos de forma separada y muchas veces de diferentes fabricantes. Los costos da adquisicin de cada uno de estos componentes es elevado y la integracin muchas veces es difcil.
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2
A BC
3
DE F
4
G HI
4
5
JKL
6
MNO
7
PQ RS
7
8
TUV
9
W X YZ
QS PR
3
DE F
4
G HI
4
5
JKL
6
MNO
7
PQ RS
7
8
TUV
9
W X YZ
QS PR
2
A BC
3
DE F
4
G HI
4
5
JKL
6
MNO
7
PQ RS
7
8
TUV
9
W X YZ
QS PR
Ex
clu
siv
op
ar
aV
Asterisk realiza todas estas funciones de forma integrada, el licenciamiento es gratuito (GPL General Public License) y puede ser hecho en un nico o en varios servidores de acuerdo con un dimensionamiento apropiado. Es increible decir esto, pero puedo demostrar que es mas fcil implementar Asterisk de que tomar, especificar y licenciar un sistema de telefona convencional.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2
ABC
3
DEF
4
GHI
4
5
JKL
6
MNO
7
PQRS
7
8
TUV
9
W XY Z
PRS Q
e fac ter O In X F
Ex
clu
siv
op
ar
En la figura 1.5, Usted ve un ejemplo de un PBX de un tronco y una lnea. Este es uno de los sistemas ms simples que usted puede construir con Asterisk. A pesar de tener poca utilidad prctica este permite que se conceptualicen algunos puntos importantes. En primer lugar el PBX 1x1 posee una placa FXO (Foreign Exchange Office) para ser ligada a las operadoras o a una interface de ramal. Usted puede adquirir una placa de esta de Digium con nombre TDM400P.
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
In
te r fa ce
Te lf on o
Conexin internet
SI P
FX S
Ex
clu
siv
op
ar
aV
Lo escenario mas comn es lo IP PBX para empresas pequeas y medias. Si usted compara lo Asterisk as los PBX analgicos el es mas dispendioso. Todava los recursos son mucho mas sofisticados. Si usted compara el Asterisk a otros PBX con los mismos recursos (buzn de voz, distribuidor automtico de llamadas) Asterisk es menos costoso.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
Te
lc o
P PB ST X N ex is t
en te
siv
op
ar
aV
ice
nt
Otro escenario mucho comn es el Asterisk lo Asterisk integrado con un PBX que esta previamente instalado. Normalmente es menos costoso poner la telefona IP con Asterisk que actualizar lo PBX convencional.
eM
igu
el
Pe
re zP
ar ed es
Asterisk posee funcionalidad de un gateway de media. El puede convertir las seales analgicas (FXS, FXO) o digitales (ISDN) viniendo de la central telefnica, o de los telfonos de cliente en voz sobre IP y transmitir por la red corporativa de datos. La convergencia propicia la reduccin del nmero de circuitos y un mejor aprovechamiento de los recursos. Los proyectos ms comunes son conocidos como Toll-Bypass (Contorneando la tarificacin), pues se eliminan los costos de operadora de langa distancia de los telfonos de las filiales de la empresa.
Sistema de mensajeria unificada Es un sistema donde todas los mensajes son encaminadas para un nico lugar, por ejemplo, la casilla de buzn de un usuario. En este caso los mensajes de e-mail, junto con los mensajes do buzn de voz y fax serian encaminados para la casilla postal del usuario. En Asterisk tambin se da la posibilidad de hacerlo. Unidad de respuesta automtica Para mi este es uno de los puntos mas altos de Asterisk, el permite crear una URA muy fcil de personalizar. Esto permite que usted, por ejemplo, cree un sistema de consulta de stock y precios para los vendedores, un sistema de atencin a disposicin de los pedidos e innumerables aplicaciones. Es bueno recordar que al
Ex
Buzn de voz Permite que cuando el usuario no atiende el telfono por estar ocupado o ausente, reciba un prompt" solicitando que deje un mensaje. Es semejante a una secretaria electrnica o caja de mensajes de un celular. Asterisk presenta esta funcionalidad, sin costo adicional.
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
contrario de los EUA y Europa, la cantidad de computadoras por latinoamericanos es relativamente pequea y el telfono aun es uno de los medios de acceso mas universales. Sala de Conferencia Permite que varios usuarios hablen en conjunto. Usted escoge un ramal para armar la sala de conferencia y todos los que discan para ella estn inmediatamente conectados. Estas son algunas de las funcionalidades actuales de Asterisk, nuevas aplicaciones estn surgiendo a cada da. Usando recursos como AGI (Asterisk Gateway Interface) que es muy semejante al CGI (Conmon Gateway Interface), las posibilidades de programacion son muy amplias, el lenguaje de programacion puede ser escogido por el desarrollador. Creo que sern cada vez ms comunes los portales de voz, para diseminar la informacin por un conjunto aun mayor de personas.
Media Gateway Un media gateway permite que sus conexiones en telefona analgica puedan ser convertidas en Voz sobre IP, por ejemplo, y transmitidas por la red de datos ante otra oficina sin pasar por la tarificacin de la red pblica. Este es el punto nmero uno de la implementacin de voz sobre IP, reducir la cuenta. Si usted tiene un Asterisk en cada filial, usted puede interconectarlos usando IAX trunked, una de las mejores tecnologas de conexin de PBX por IP. Esto es lo que me da miedo, que todava de ser un software libre, este recurso de protocolo en particular es superior al que yo tengo conocido como equipos basados en tecnologas propietarias
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Distribuidor automtico de llamadas y fila de atencin de llamadas Este es uno de los conceptos menos obvios de la telefona. La primera vez que yo vi. Esto, yo pens: pero yo ya tengo esto en mi central telefnica, ella distribuye para varios ramales, el primero que se atiende deja de hacer sonar los otros, porque tanto OOHH para esta cosa de DAC. La respuesta es simple, en un DAC, las personas normalmente se autentifican en una fila de atencin de llamadas para recibir dichas llamadas, el distribuidor verifica que usuario est con el telfono libre antes de pasar la llamada. Si ningn operador estuviese libre este asegura la llamada en una fila con aquella musiquita y un mensaje como Usted esta comunicado con...... Su llamada es muy importante..... (Que nosotros lo adoramos a Ud!!) etc. Cuando el primer telefonista es liberado, es DAC quien pasa la comunicacin. DAC es fundamental en cualquier sistema de atencin. Hay mucho mas sobre DAC de lo que aqu esta escrito, el sistema de llamada rotativa puede ser mucho mas sofisticado. Un DAC normalmente tiene un costo elevado en la mayora de las plataformas convencionales. Dialer automtico Esto es muy til en telemarketing, se puede programar el sistema para discado automtico y distribuir en una fila. Pero esta es una tecnologa que es vendida separadamente en otros PBX. En Asterisk usted puede programar un discado y existen diversos ejemplos de dialers disponibles en Internet.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
1.10 Sumario
que son responsables por la sealizacin de telefona. CODECs que hacen la codificacin de voz de un formato para otro, permitiendo que sea transmitida con compresin de hasta ocho veces (G729a). APLICACIONES que son responsables por la funcionalidad del PBX. Asterisk puede ser usado en innumerables aplicaciones, desde un PBX para una pequea empresa hasta sistemas de respuesta automtica de alta densidad.
Ex
CANALES que pueden ser analgicos, digitales y/o Voip. PROTOCOLOS de comunicacin como SIP, H323, MGCP y IAX
clu
siv
op
ar
Asterisk es un software con licenciamiento GPL, que transforma un PC comn en una poderosa central telefnica. Fue creado por Mark Spencer de Digium que comercializa el hardware de telefona. El Hardware de telefona tambin es abierto y fue desarrollado por Jim Dixon en el proyecto Zapata Telephony.
aV
ice
nt
eM
igu
6. http://svn.digium.com/view/asterisk/branches/1.4/doc/
el
Pe
re zP
ar ed es
1.11 Cuestionario | 30
1.11 Cuestionario
1. Marque las opciones correctas. Asterisk tiene cuatro componentes bsicos de arquitectura CANALES PROTOCOLOS AGENTES TELEFONOS CODECS APLICACIONES
5. Para tener msica en espera Asterisk necesita de un CD Player conectado en un ramal FXO. La afirmacin es: CORRECTA INCORRECTA 6. Es responsable por la atencin automtica de clientes, normalmente suena un prompt y espera que usuario seleccione una opcin. En algunos casos puede ser usada en conjunto con un banco de datos y conversin de texto para ser hablado. Estamos hablando aqu de una:
Ex
clu
Unidad de Respuesta Automtica Distribucin automtica de llamadas Telfonos IP Telfonos Analgicos Telfonos digitales de cualquier fabricante.
siv
op
ar
aV
ice
CORRECTA INCORRECTA
nt
eM
3. Un canal FXS genera tono de discado, en cuanto un canal FXO recibe el tono desde la red pblica o de algn otro PBX. La afirmacin es:
igu
el
CORRECTA INCORRECTA
Pe
re zP
2. Si fuera necesario crear un PBX con 4 enlaces y ocho telfonos, ud. puede usar un PC con Linux y 3 placas TDM400P una con cuatro canales FXO y 2 con cuatro canales FXS cada una. La afirmacin es:
ar ed es
URA IVR DAC Unified Messaging 7 Marque las opciones correctas, Un banco de canales es conectado al Asterisk a travs de una interface: E1 T1 FXO FXS
Asterisk puede ser la central telefnica para todos los usuarios. Asterisk puede integrar una central telefnica existente Pueden ser usados apenas telfonos IP ligados a un Asterisk centralizado Redundancia y confiabilidad no son importantes cuando se conectan IP phones.
Ex
clu
siv
op
10 Marque las opciones correctas, Es posible intercomunicar, usando Asterisk, varias filiales a travs de voz sobre IP reduciendo el uso de comunicaciones de larga distancia. En una filial:
ar
aV
ice
CORRECTA INCORRECTA
nt
eM
9 En las plataformas de telefona convencional, normalmente URA, DAC y Buzn de voz estn incluidos en el PBX. Esta afirmacin es:
igu
el
Pe
re zP
8 Marque a opcin correcta. Un canal E1 soporta ___ canales de telefona en cuanto un T1 soporta ___ canales.
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Si usted usa apenas VOIP, ningn otro hardware es necesario. Se puede usar softphones como los de Counterpath (X-Lite) y hacer enlaces con operadoras de voz sobre IP. Una lista de las operadoras de voz sobre IP en Brasil puede ser encontrada en: http://www.voipcharges.com/providers.php?_filter=1&country_sid=31 Cuidado! Algunas aplicaciones de Asterisk como el Meetme requieren una fuente de clock para proveer la temporizacin. Normalmente la fuente de clock de Asterisk es una placa TDM. Si su sistema no tiene una placa TDM, usted puede usar un driver ztdummy.
Muchas placas de telefona como la X100P pueden generar grandes cantidades de interrupciones, atenderlas toma tiempo. Los drivers pueden no conseguir hacerlo a tiempo si otro dispositivo estuviese procesando la misma IRQ compartida y la lnea de IRQ no podr recibir otra interrupcin. Tiende a funcionar mejor en sistemas multiprocesador. En sistemas monoprocesados usted puede tener muchas perdidas de interrupcin y clock desfasado. Cualquiera de las placas de Digium y otras placas de telefona pueden estar sujetas al mismo problema. Como la entrega precisa de IRQs es una necesidad primaria en telefona, usted no debe compartir IRQs con nada. No siempre esto ocurre, pero usted debe prestar atencin al problema. Si usted est usando un computador dedicado para Asterisk, deshabilite el mayor nmero de dispositivos que usted no va a usar. La mayora de las BIOS permite que usted manualmente designe las IRQs. Vyase hasta la BIOS y observe en la seccin de IRQs. Es posiblemente cierto que usted consiga configurar las interrupciones manualmente por ranuras.
Ex
clu
siv
op
ar
aV
ice
nt
eM
El hardware necesario para Asterisk no es muy complicado. Usted no precisa de una placa de vdeo sofisticada o perifricos. Puertos seriales, paralelos y USB pueden ser completamente deshabilitados. Una buena tarjeta de red es esencial. Si usted estuviese usando una de las placas de Digium, seria bueno verificar las instrucciones de su placa-madre para determinar si los Slots PCI soportan estas placas. Muchas placas-madres compartirn interrupciones en slots PCI. Conflicto de interrupciones es una fuente potencial de problemas de calidad de audio en Asterisk. Una manera de liberar IRQs es deshabilitar desde el BIOS todo lo que no fuera necesario.
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
Varias distribuciones como RedHat, Mandrake, Fedora, Debian, Slackware y Gentoo fueron usadas con Asterisk.
op
ar
aV
Asterisk fue originalmente desarrollado para correr en Linux, Ahora puede ser usado en BSD y OS X. Todava esto, las placas PSTN de Digium fueron diseadas para trabajar con Linux i386. Si usted fuese nuevo con Asterisk procure usar Linux.
ice
nt
eM
igu
el
Arriba usted puede ver las tres placas de Digium cada una en su IRQ. Si este fuera el caso, usted puede ir en frente e instalar los drivers de hardware. Si no fuera el caso, vuelva a la BIOS hasta que las placas no estn compartiendo las IRQs.
Pe
re zP
ar ed es
ncurses-development son necesarios si usted quisiera construir nuevas herramientas (Como el astman). Las bibliotecas zlib y zlib-devel son necesarias ahora para compilar. Esto se debe a la adhesin del protocolo DUNDi (Distributed Universal Number Discovery).
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Cuidado ! Todos las datos de su disco rgido sern perdidos. Instale en un PC nuevo o que usted pueda formatear !!!
Pe
re zP
Paso 7: Ser hecha la configuracin de particionamiento de disco del equipo, apenas confirme las opciones presentadas.
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
Paso 15: Siga las opciones presentadas para la configuracin del horrio.
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 26: Ya que utilizaremos esta mquina como servidor Asterisk PBX, no es necesario seleccionar ninguna opcin de las presentadas aqu. Reescriba la contrasea para confirmar.
Paso 27: Apenas confirme la opcin presentada para la terminacin de las configuraciones de Debian
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
#apt-setup
aV
ice
fuente
nt
eM
La instalacin de Debian est completa, vamos ahora instalar los paquetes necesarios para la instalacin/compilacin de los drivers de las placas zaptel y del propio Asterisk.
igu
para
el
Pe
download
re zP
ar ed es
de
paquetes
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
Para obtener las fuentes de Asterisk y drivers de Zaptel para el uso con hardware de digium, usted debe bajar los paquetes de Digium. Baje los archivos usando el comando wget. Cree el diretrio /usr/src se este no existe. En el momento de finalizacin de este libro estas eran las versiones corrientes, substituya los comandos abajo con los archivos de las versiones ms actuales.
el
Pe
re zP
ar ed es
Ahora que usted ya instalo Linux y las bibliotecas necesarias, vamos hacer la instalacin de Asterisk.
Ex
clu
siv
op
ar
aV
ice
nt
Use el comando make menuselect para escoger los mdulos necesarios. Screenshot del comando make menuselect:
eM
igu
cd /usr/src/zaptel-1.4.x/ make clean ./configure make menuselect make install make install-udev make config update-rc.d zaptel defaults
el
Pe
re zP
ar ed es
cd /usr/src/libpri-1.4.x/ make clean make make install cd /usr/src/asterisk-1.4.0 make clean ./configure make menuselect make make install make samples make config
CLI>stop now
#/sbin/asterisk r
Ex
Usted puede acceder a la consola de un proceso de Asterisk que ya este en ejecucin usando el comando escrito debajo. Ms de una consola puede ser conectada al Asterisk simultneamente.
clu
siv
#/sbin/asterisk
op
El proceso de ejecutar Asterisk es fcil. Si Asterisk fuese corrido sin argumentos, el es lanzado como un daemon (Processo que espera conexiones en un puerto TCP o UDP).
ar
aV
ice
nt
eM
igu
Use el comando stop now para parar Asterisk. Vea los comandos disponibles en la interface de lnea de comando de Asterisk.
el
Pe
re zP
ar ed es
;use to create sample configuration files ;use para start asterisk at boot time
; Changing the following lines may compromise your security. ;[files] ;astctlpermissions = 0660 ;astctlowner = root ;astctlgroup = apache ;astctl = asterisk.ctl ;[options] ;internal_timing = yes
Ex
clu
[directories] astetcdir => /etc/asterisk astmoddir => /usr/lib/asterisk/modules astvarlibdir => /var/lib/asterisk astdatadir => /var/lib/asterisk astagidir => /var/lib/asterisk/agi-bin astspooldir => /var/spool/asterisk astrundir => /var/run astlogdir => /var/log/asterisk
siv
op
ar
aV
asterisk.conf
ice
Asterisk es instalado en diversos directorios. Usted puede alterar los directorios editando lo archivo asterisk.conf
nt
eM
igu
-C <configfile> -G <group> -U <user> -c -d -f -F -g -h -i -I -L <load> -M <value> -m -n -p -q -r -R -t after they are done. -T output to the CLI. -v -x <cmd>
Increase verbosity (multiple v's = more verbose) Execute command <cmd> (only valid with -r)
el
Pe
re zP
Use an alternate configuration file Run as a group other than the caller Run as a user other than the caller Provide console CLI Enable extra debugging Do not fork Always fork Dump core in case of a crash This help screen Initialize crypto keys at startup Enable internal timing if Zaptel timer is available Limit the maximum load average before rejecting new calls Limit the maximum number of calls to the specified value Mute the console from debugging and verbose output Disable console colorization Run as pseudo-realtime thread Quiet mode (suppress output) Connect to Asterisk on this machine Connect to Asterisk, and attempt to reconnect if disconnected Record soundfiles in /var/tmp and move them where they belong
ar ed es
; ; ; ; ; ; ; ;
Logging Configuration In this file, you configure logging to files or to the syslog system. "logger reload" at the CLI will reload configuration of the logging system.
[general] ; Customize the display of debug message time stamps ; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS) ; see strftime(3) Linux manual for format specifiers ;dateformat=%F %T ; ; This appends the hostname to the name of the log files. ;appendhostname = yes ; ; This determines whether or not we log queue events to a file ; (defaults to yes). ;queue_log = no ; ; This determines whether or not we log generic events to a file ; (defaults to yes). ;event_log = no ; ; ; For each file, specify what to log. ; ; For console logging, you set options at start of ; Asterisk with -v for verbose and -d for debug ; See 'asterisk -h' for more information. ; ; Directory for log files is configures in asterisk.conf ; option astlogdir ; [logfiles] ; ; Format is "filename" and then "levels" of debugging to be included: ; debug ; notice ; warning ; error ; verbose ; dtmf ; ; Special filename "console" represents the system console ; ; We highly recommend that you DO NOT turn on debug mode if you are simply ; running a production system. Debug mode turns on a LOT of extra messages, ; most of which you are unlikely to understand without an understanding of ; the underlying code. Do NOT report debug messages as code issues, unless ; you have a specific issue that you are attempting to debug. They are ; messages for just that -- debugging -- and do not rise to the level of ; something that merit your attention as an Asterisk administrator. Debug ; messages are also very verbose and can and do fill up logfiles quickly; ; this is another reason not to have debug mode on a production system unless ; you are in the process of debugging a specific issue. ; ;debug => debug console => notice,warning,error
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
;console => notice,warning,error,debug messages => notice,warning,error ;full => notice,warning,error,debug,verbose ;syslog keyword : This special keyword logs to syslog facility ; ;syslog.local0 => notice,warning,error ;
Ex
clu
#man logrotate
siv
op
/var/log/asterisk/messages /var/log/asterisk/*log { missingok rotate 5 weekly create 0640 asterisk asterisk postrotate /usr/sbin/asterisk -rx 'logger reload' endscript }
ar
aV
ice
nt
eM
/etc/logrotate.d/asterisk.
igu
el
Pe
re zP
ar ed es
2) Retire los comentarios de las siguientes lneas del archivo removiendo el # del inicio de cada lnea: 3)
AST_USER="asterisk" AST_GROUP="asterisk"
4) Para alterar los derechos de usuario asterisk en las tareas utilizadas para la ejecucin de Asterisk, digite:
#cd / #chown --recursive asterisk:asterisk /etc/asterisk #chmod --recursive u=rwX,g=rX,o= /etc/asterisk #chown --recursive asterisk:asterisk /var/lib/asterisk #chown --recursive asterisk:asterisk /var/log/asterisk #chown --recursive asterisk:asterisk /var/run/asterisk #chown --recursive asterisk:asterisk /var/spool/asterisk #chown --recursive asterisk: asterisk /dev/zap #chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk #chmod --recursive u=rwX,g=rX,o= /var/log/asterisk #chmod --recursive u=rwX,g=rX,o= /var/run/asterisk #chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk #chmod --recursive u=rwX,g=rX,o= /dev/zap
De una forma general Asterisk es un sistema sensible a variaciones en el perfomance de la mquina. Esto significa que en un sistema en produccin lo ideal es no usar interfaces grficas como es KDE o GNOME.
Ex
Si Asterisk fue instalado en un ambiente de produccin, se debe prestar atencin en el proyecto del sistema. El servidor debe ser optimizado de forma que las funciones de telefona tengan prioridad sobre otros procesos de sistema. En la mayora de los casos Asterisk no debe correr otros procesos, principalmente si fueran intensivos en CPU. Si fueran necesarios procesos que utilizan mucha CPU como las bases de datos, por ejemplo, estos deben ser instalados eventualmente en un servidor separado.
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2.12 Sumario | 54
QoS extremo-a-extremo, lo que es inviable principalmente en telefona sobre Internet. De esta forma es que estn las siguientes recomendaciones. Implemente QoS extremo-a-extremo siempre que pueda. Lo mismo en switches de 100Mbps donde es raro tener un congestionamiento, vale la pena, un virus o una condicin de red inesperada puede colocar todo a perder. Sea conservador, use, por ejemplo, una conexin de Internet exclusiva para softfones y telfonos IP. En la mayora de las veces los backbones tienen bajo trfico, pero una conexin de acceso es congestionada por el propio usuario con descargas, navegacin, e-mail entre otras cosas. Evite concentradores de 10 y 100 Mbps, las colisiones en estos equipos, causan variacin de atraso (jitter). Jitter es uno de los peores enemigos de telefona IP. Oriente a los usuarios de telefona sobre Internet donde no es posible garantizar la calidad. Mantener las expectativas en un nivel realista evita problemas futuros y comentarios como Si yo hubiese sabido que era as..... Cuando usa una red IP privada con equipos que soportan QoS extremo-aextremo, si la calidad de voz estuviese baja, verifique inmediatamente, es probable que exista algn problema en su red. Con QoS bien implementado la calidad de voz es perfecta, sin disculpas.
Ex
clu
En este captulo usted aprendi que el requisito mnimo de hardware de Asterisk es un Pentium 300 Mhz con 256 MB RAM y poco ms de 100 MB de espacio libre en disco para instalar Asterisk. Por fin aprendimos a inicializar Asterisk con un usuario diferente de root.
siv
op
ar
2.12 Sumario
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2.13 Cuestionario
1. Cual es la configuracin mnima para Asterisk.
2. Las placas de telefona para Asterisk tienen un procesador prpio (DSP), no siendo necesario de mucha CPU del servidor. Correcto Incorrecto
3. Para que la telefona IP funcione con perfeccin es necesario que la red posea QoS extremo-a-extremo. Correcto Incorrecto
7. Cuando usted hace una instalacin de Asterisk, lo mejor es no instalar los paquetes grficos como KDE y GNOME, pues Asterisk es sensible a cuestiones de CPU y las interfaces grfica roban muchos ciclos de CPU al servidor. Correcto Incorrecto 8. Los archivos de configuracin ____________________.
Ex
clu
6. Si usted no tiene una placa zaptel, usted precisa una fuente de tiempo. El driver ztdummy desempea este papel aprovechando una biblioteca USB. Esto es necesario, pues algunas aplicaciones como _______ y ______ precisan de una referencia de tiempo.
siv
op
ar
aV
ice
nt
eM
Correcto Incorrecto
igu
4. Es posible obtener una buena calidad de voz en una red que no este congestionada con switches de 100 Mbps.
el
de
Pe
re zP
Asterisk se
ar ed es
encuentran
en
9. Para instalar los archivos de configuracin de ejemplo usted precisa ejecutar los siguientes comandos.
2.13 Cuestionario | 56
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Captulo 3
Asterisk es controlado a travs de archivos de configuracin localizados en el directorio /etc/asterisk. El formato de los archivos de configuracin de Asterisk es semejante a la de los archivos (.ini) de Windows. El punto y coma es el caracter para los comentarios. El signo (=) y el signo (=>) pueden ser usados de forma idntica, las lneas en blanco sern ignoradas. Archivo de ejemplo:
; ; la primera lnea sin comentario debe ser el ttulo de una seccin. ; [seccin] llave = valor ; Designacin de variable [sessao2]
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
El interprete de Asterisk toma (=) y (=>) de forma idntica. La sintaxis sirve para tornar el cdigo ms legible. Ahora los archivos comparten la misma sintaxis, existen por lo menos tres tipos distintos de gramtica.
3.3 Gramtica
Gramtica
Grupo Simples
Ejemplo
exten=>4000,1,Dial(SIP/4000)
Herencia de Opciones
zapata.conf
Entidad Compleja
sip.conf, iax.conf
En este ejemplo, el objeto1 es creado con opciones op1, op2 y op3 en cuanto el objeto 2 es creado con op1b, op2b y op3b.
Ex
clu
El formato de grupo simple es la ms bsico y usado por archivos de configuracin donde los objetos son declarados con todas las opciones en la misma lnea. Los archivos extensions.conf, meetme.conf y voicemail.conf siguen este formato.
siv
op
ar
aV
ice
[channels] context=default signalling=fxs_ks group=1 channel => 1 [cisco] type=friend secret=mysecret host=10.1.30.50 context=trusted [xlite] type=friend secret=xlite host=dynamic
nt
eM
igu
el
Pe
re zP
ar ed es
contienen declaraciones de uno o ms canales u objetos. Las para el objeto son especificadas encima de la Declaracin de pueden ser cambiadas para la Declaracin de otro objeto. Es un difcil de entender, ms muy fcil de usar. Considere el expresado aqu abajo:
[seccin] op1 = bas op2 = adv objeto=>1 op1 = int objeto => 2
La entidad [entidad1] tiene valores valor1 y valor2 para opciones op1 y op2 respectivamente. La entidad [entidad2] tiene valores valor3 y valor4 para las opciones op1 y op2.
Ex
clu
siv
op
ar
aV
El formato objeto entidad compleja es usado por el iax.conf , sip.conf y otras interfaces las cuales existen numerosas entidades con muchas opciones y que tpicamente no comparten un gran volumen de configuraciones comunes. Cada entidad recibe su propio contexto (A veces existe un contexto reservado tal como [general] para las configuraciones globales). Las opciones entonces son especificadas en la Declaracin de contexto. Considere esto:
ice
nt
eM
igu
el
Pe
re zP
Las primeras dos configuran el valor de opcin op1 y op2 para bas y adv respectivamente. Cuando el objeto 1 es inicializado, este es creado con su opcin 1 siendo bas y su opcin 2 siendo adv. Despus de declarar el objeto 1, cambiamos el valor de opcin 1 en int. Y entonces creamos el objeto 2, ahora el objeto 2 es creado con su opcin 1 siendo int y su opcin 2 permaneciendo adv.
ar ed es
En trminos generales, una placa FXO es usada para unir la red pblica a un PBX, esta placa recibe as tono. Una placa FXS en cambio puede ser usada para unir un aparato telefnico comn, una lnea FXS dar tono.
Antes de instalar una placa X100P en su computadora, es recomendable que usted deshabilite todas las interrupciones y hardware que no est siendo usadas en este momento, como puertos seriales, paralelos, interrupcin para vdeo etc... Para instalar su placa X100P usted debe encajarla en un slot PCI y configurar dos archivos de configuracin:
zaptel.conf
Ex
clu
No hay ninguna garanta de que estas placas funcionen con su PC y que as mismo funcionando no presenten problemas como ECO debido a diferencias de impedancia. Use las por su propia cuenta y riesgo, si usted no quisiera correr riesgos las placas de Digium son una excelente opcin.
siv
op
ar
aV
Una pista: Otra forma es conseguir una placa FXO clon de una X100P. Algunas placas de modem con chipset Motorola y Intel pueden ser usadas. Ellas son difciles de ser encontradas, pues ya no son fabricadas. Los chipsets que funcionan son, Motorola 68202-51, Intel 537PU, Intel 537 PG, Intel Ambient MD3200
ice
nt
eM
igu
el
Pe
re zP
ar ed es
En este captulo vamos a dar una visin general de como configurar los telfonos SIP. El objetivo en este momento es que usted pueda configurar un PBX simple. Ms adelante usted va a tener una seccin entera dedicada a SIP y podremos ver en detalles la configuracin. SIP es configurado desde el archivo /etc/asterisk/sip.conf y contiene parmetros relacionados con la configuracin de los telfonos y operadoras SIP. Los clientes SIP deben estar configurados antes que puedan hacer y recibir llamadas.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
zapata.conf
re zP
ar ed es
zaptel.conf
allow: Permite que un determinado codec sea usado. bindaddr: Direccin IP donde Asterisk ir a esperar por las
[name]: Es la parte usernamede SIP URI. peer: Entidad para la cual Asterisk envia llamadas. user: Entidad que hace llamadas a travs de Asterisk. friend: las dos interiores al mismo tiempo. type: Configura la clase de conexin, las opciones son peer, user y friend. host: Configura la direccin IP o el nombre de host. Se puede usar tambin la opcin dynamic donde se espera que el telfono se registre, es la opcin ms comn. secret: Un secreto compartido usado para autentificar los peers y users haciendo una llamada.
Ex
clu
siv
op
ar
aV
ice
[general] bindport = 5060 bindaddr = 10.1.30.45 context = default disallow = all allow = ulaw maxexpirey = 120 defaultexpirey = 80
nt
eM
igu
el
Ejemplo:
Pe
conexiones SIP. El comportamiento general es esperar en todas las interfaces y direcciones secundarias. context: Configura el contexto general donde todos los clientes sern colocados, a menos que sea sobrescrito en la definicin de entidad. disallow: Prohbe un determinado codec. bindport: Puerto que Asterisk debe esperar por conexiones de entrada SIP. El ms general o usado es el puerto 5060. maxexpirey: Tiempo mximo para registro en segundos. defaultexpirey: Tiempo por defecto para registrarse en segundos. register: Registra Asterisk con otro host. El formato es una direccin SIP opcionalmente seguido por una barra normal (/) y una extensin.
re zP
ar ed es
Ejemplo:
[cisco] type=friend secret=mysecret host=10.1.30.50 context=trusted [xlite] type=friend secret=xlite host=dynamic
Si usted instal los archivos de ejemplo, ya existe el extensions.conf. En nuestro caso ser ms interesante comenzar de cero. Esto va a ayudar al aprendizaje y podremos abordar paso a paso cada parte del archivo de plan de discado.
3.6.1 Extensiones
Dentro de cada contexto sern definidas diversas extensiones. En Asterisk, una extensin es un string que dispara un evento. Una extensin puede ser una de estos tres tipos: literal, estndar, o especial.
Ex
clu
siv
En este captulo vamos a ver como crear un plan de discado bsico, pero que atiende a nuestras necesidades actuales. Ms adelante usted tendr la oportunidad de conocer el plan de discado ms a fondo.
op
ar
aV
ice
nt
eM
La mayor parte del plan de discado est contenida en el archivo extensions.conf en el directorio /etc/asterisk. El archivo puede ser separado en cuatro partes:
igu
el
Pe
El plan de discado es el corazn de Asterisk, en la medida, que este define como Asterisk ir a gestionando las llamadas. Este consiste de una lista de instrucciones o pasos que Asterisk debera seguir. Esas instrucciones son disparadas a partir dos dgitos recibidos de un canal o aplicacin. Es fundamental para configurar Asterisk, que se entienda el plan de discado.
re zP
ar ed es
Las extensiones determinan el flujo de las llamadas. Ahora las extensiones podrn ser usadas para especificar las extensiones, ellas pueden ser usadas para ms que esto en Asterisk. Una extensin puede ser creada con la sintaxis definida abajo:
exten=> nmero (nombre), prioridad, aplicacin
El comando exten=> es seguido por un nmero de extensin, una coma, la prioridad, otra coma y finalmente la aplicacin.
3.6.2 Prioridades
Prioridades son pasos numerados de ejecucin de cada extensin. Cada prioridad llama a una aplicacin especfica. Normalmente estos nmeros de prioridad comienzan con 1 y aumentan de uno en uno en cada
Ex
clu
siv
A instruccin exten=> describe cual es el prximo paso para la llamada. El 8580 es un conjunto de dgitos que fue recibido (nmero discado). El 1, 2 y 101 son las prioridades que determinan la orden de ejecucin de los comandos. En este ejemplo, discando 8580 sonar el telfono IP registrado como 8580, el cual de no ser atendido en 20 segundos ser desviado para la prioridad 2 en la casilla de buzn de voz con un mensaje no atendida. Si estuviese ocupado es desviado para la prioridad 101 y va para el buzn de voz con el mensaje, ocupado.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
extensin. Los nmeros de prioridad como usted vio arriba no siempre son consecutivos. Las prioridades son corridas en orden numrica.
3.6.3 Aplicaciones
Las aplicaciones son parte fundamental de Asterisk, ellas tratan al canal de voz, tocando sonidos, aceptando dgitos o cortando una llamada. Las aplicaciones son llamadas con opciones que afectan a su forma de funcionamiento. Usted puede usar core show applications en la interface de lnea de comando de Asterisk. En la medida en que usted construye su primer plan de discado usted va a aprender a usar las aplicaciones de forma apropiada. Usted puede ver las opciones de aplicacin instaladas en Asterisk usando el comando:
CLI>core show applications
3.6.4 Contextos
Los contextos tienen un papel importante en Asterisk en lo que respecta a organizacin y seguridad del plan de discado. Los contextos tambin definen el objetivo y permiten separar diferentes partes del plan de discado. Un punto que llama la atencin es que los contextos estn ligados directamente a los canales. Cada canal existe dentro de un contexto. Cuando una llamada entra al Asterisk por un canal ella es procesada dentro de un contexto. Ejemplificando, vamos a suponer que usted tenga dos clases de ramales, aquellos que pueden hacer llamadas de larga distancia y aquellos que no. Usted puede crear dos contextos, [gerente] y [funcionario]. Dentro del
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
contexto [gerentes] cuando el dgito 0 es discado, se oye el tono de discado de la red pblica. Dentro del contexto [funcionario] cuando el dgito 0 es discado es recibida, por ejemplo, por una grabacin llamada no autorizada. Por otro lado, una llamada es recibida dentro del contexto del canal. Con esto diferentes canales pueden ser recibidos en diferentes telfonos dependiendo del contexto seleccionado. Esto puede ser til para tener una recepcin diferente para cada compaa compartiendo un mismo servidor Asterisk. Contextos tambin son usados para crear mens de voz que dan al usuario una lista de extensiones para escoger presionando las teclas de un telfono multi frequencial. Esta funcionalidad es normalmente conocida como auto-atencin de llamadas. Auto-atencin de llamadas ser visto en captulos posteriores. Los contextos reciben su nombre dentro de llaves ([]s). Por ejemplo, si nosotros hiciramos la creacin de un contexto para la entrada de llamadas, podramos definir esta como sigue:
[entrada]
Ex
clu
siv
op
ar
aV
Todas las instrucciones colocadas despus de esta definicin son partes del contexto. Para iniciar un nuevo contexto, simplemente escriba el nuevo contexto [nuevocontexto]. En el inicio del archivo extensions.conf existe un contexto llamado [globals]. El contexto globals es donde las variables son definidas y pueden ser usadas por todo el plan de discado.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
La manera mas econmica de testear Asterisk es conectarse a un proveedor (en www.voipcharges.com usted puede encontrar una lista de proveedores que actan en cualquier pas del mundo), vamos a ver como se conecta a un proveedor en el captulo relativo a los canales SIP. Otra forma es usar una placa FXO. Para hacer el laboratorio descrito usted va a precisar de dos PCs, Pentium 300 Mhz o mayores con 256 MB RAM por lo menos. Si usted tuviera un nico PC puede usar el vmware (no es freeware) y usted precisara por lo menos 512 MB RAM. Vamos a usar el softphone gratuito de counterpath el xlite. Usted puede bajarlo de www.counterpath.com. Existen otros softphones gratuitos como el Sjphone de SJLabs www.sjlabs.com. Ciertamente usted encontrar otros buscando en Internet. Puede ser tambin que los dos citados arriba no existan ms cuando usted estuviese leyendo este material. Usted puede tambin crear este laboratorio usando un equipamiento para Asterisk y un adaptador de telefona analgico de dos canales. Paso 1: Edite el archivo sip.conf y agregue la configuracin de un ramal con nmero 2000.
[general] bindport=5060 bindaddr=10.1.30.45 ; Coloque aqu la direccin IP de su servidor context=default allow=all [2000] type=friend secret=2000
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
host=dynamic canreinvite=no
Paso 2: Repita el paso 1 ahora para el ramal 2001 Paso 3: Configure los softphone xlite de ramal 2000 para Asterisk. a) Ejecute el programa de instalacin b) Presione next en la primera pantalla
d) Acepte las prximas ventanas en general hasta terminar la instalacin. En otras palabras NEXT->NEXT->FINISH. e) Entre en el menu de X-LITE presionando el icono mostrado abajo:
h) Escoja Default
j) Cierre el XLITE y bralo de nuevo. k) Confirme que el telfono fue registrado por Asterisk con el comando sip show peers. Paso 4: Repita la configuracin de XLITE para el softphone 2001.
Ex
Display Name: 2000 Username: 2000 Authorization User: 2000 Password: 2000 Domain/Realm: Direccin IP del servidor SIP Proxy: Direccin IP del servidor
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
aplicacin. Note que en este ejemplo tenemos apenas una extensin creada con SIP. En estos ejemplos se asume que usted tiene una placa FXO. Vamos a mostrar los ejemplos y explicar paso a paso. Ahora estamos listos para crear el extensions.conf de la forma mas simple posible. En este ejemplo todo lo que Asterisk ir a hacer es responder a una llamada, tocar un sonido que dice adis y colgar. La extensin especial s Vamos a comenzar viendo la extensin especial s que significa inicio (start). De una forma general la llamada inicia un contexto al cual el canal pertenece. La extensin s es inmediatamente ejecutada al entrar en un canal. En nuestro ejemplo vamos a crear un plan de discado con la extensin s Las aplicaciones Answer(), Hangup() y Playback()
Ahora, estamos listos para nuestro primer ejemplo de plan de discado. Por favor, presten atencin a la manera que cada prioridad llama una aplicacin. Note que en este ejemplo tenemos apenas una extensin creada con SIP. En estos ejemplos asumimos que usted tiene una placa FXO. Vamos a mostrar los ejemplos y explicar paso a paso.
[entrada] exten=>s,1,answer() exten=>s,2,playback(goodbye) exten=>s,3,hangup()
Ex
clu
La aplicacin Hangup() hace exactamente lo que su nombre dice. Ella cuelga un canal activo. Usted debera usarla en el fin de contexto una vez que usted quiera colgar a quien no precise estar conectado al sistema.
siv
op
La aplicacin Playback() es usada para hacer sonar un archivo de sonido previamente grabado sobre un canal. Cuando la aplicacin Playback() est siendo ejecutada, cualquier dgito presionado por el usuario es simplemente ignorado. El formato es Playback(nombredearchivo), este hace sonar el archivo con la extensin .gsm en el directorio de sonido por defecto.
ar
aV
ice
nt
eM
Si vamos a responder a una llamada, es mejor que conozcamos las aplicaciones que van a hacer esto. La aplicacin Answer() es usada para responder a un canal que est sonando. Esta hace la configuracin inicial de llamada y puede hacer otras funciones. Pocas aplicaciones no requieren que necesariamente se responda (Answer()) al canal antes de hacer cualquier otra cosa
igu
el
Pe
re zP
ar ed es
Una llamada que entre por la FXO es enviada dentro del contexto [entrada] (Este contexto [entrada] debe estar configurado en el archivo zapata.conf para el canal FXO) y es enviada para la extensin s. Tenemos tres prioridades en el contexto, 1, 2 y 3. Cada prioridad llama un aplicativo. Vamos a observar de cerca las prioridades: La prioridad 1 llama a la aplicacin Answer(), Asterisk toma cuenta de la lnea y configura la llamada. Despus de responder la lnea, Asterisk va para la prxima prioridad. Prioridad 2, Asterisk llama a la aplicacin Playback() para tocar el archivo de sonido goodbye.gsm (por tanto vamos usar los mensajes en ingles), este mensaje dar un saludo de adis al usuario. Por fin la prioridad 3 ir a desconectar al usuario.
Un ejemplo ms til
En este ejemplo, vamos asumir que somos una empresa de soporte, entrenamiento y ventas. Vamos a crear un sistema interactivo que permita al usuario seleccionar para que rea de la empresa esta quiera ser redireccionado. En primer lugar vamos a usar el comando
Ex
clu
Otra aplicacin muy til es el goto(). Como su nombre lo explica, este salta de un contexto actual, extensin y prioridad para un contexto especfico y prioridad especifica. La aplicacin goto() torna fcil el movimiento entre diferentes partes del plan de discado. El formato del comando goto() precisa un contexto de destino y prioridad como argumentos.
siv
op
ar
aV
La llave para sistemas interactivos basados en Asterisk est en la aplicacin Background(). Ella permite que usted grabe un archivo de sonido, pero cuando la origen presiona una tecla eso interrumpe la grabacin y manda para la extensin correspondiente a los dgitos discados.
ice
nt
eM
igu
Ahora que ya comenzamos con algo simple, vamos a incrementar aprendiendo un poco de los aplicativos background() y goto(). Estas dos aplicaciones van a permitirnos crear planes de discado, con mucho ms funcionalidad.
el
Pe
re zP
ar ed es
Background() para tocar un mensaje llame 1 para soporte, 2 para entrenamiento y 3 para ventas, en este momento todava no vamos a explorar el tratamiento de dgitos invlidos. En cada contexto vamos a tocar una grabacin como usted fue redireccionado para soporte (entrenamiento o ventas).
[entrada] exten=>s,1,Answer() exten=>s,2,Background(saludos) exten=>s,3,hangup() exten=>1,1,playback(soporte) exten=>1,2,goto(soporte,s,1) exten=>2,1,playback(entrenamiento) exten=>2,2,goto(entrenamiento,s,1) exten=>3,1,playback(ventas,) exten=>3,2,goto(ventas,s,1)
Al comparar con el ejemplo anterior, apenas creamos un atajo. En vez de enviar para otro contexto para el tratamiento de la llamada, enviamos directamente a un canal SIP del ramal 8000 o a un canal Zaptel (FXS Analgico) o tambin a un canal IAX del ramal 8002. En este punto usted ya debe estar entendiendo el uso de varias aplicaciones como el Answer(), Background(), Goto(), Hangup() y
Ex
clu
siv
op
ar
aV
ice
nt
Vamos a seguir este ejemplo paso a paso. Cuando alguien se comunica en la interface FXO (configurada para el contexto [entrada]), la comunicacin es pasada para la extensin s dentro del contexto [entrada]. La extensin s atiende la comunicacin y usando el comando Background() hace sonar un saludo y aguarda por el discado de un dgito. Despus de discar el dgito 1 por ejemplo, el sistema va para la extensin 1 en la prioridad 1 y toca un mensaje del archivo soporte.gsm (Algo como, usted se comunico con el rea de soporte tcnico lo atendemos en breve). Enseguida tenemos el comando goto() que manda la comunicacin para el contexto (soporte) donde ella ser tratada.
eM
igu
el
Pe
re zP
ar ed es
Playback() y lo bsico del comando Dial(). Esto es fundamental para el aprendizaje de aqu en adelante. Si algo no esta claro todava vuelva y lea de nuevo, es fundamental que haya entendido el proceso antes de seguir adelante. Con un entendimiento bsico de las extensiones, prioridades y aplicaciones es simple crear un plan de numeracin bsico. En los prximos captulos vamos hacer un plan de discado ms poderoso.
3.7 Laboratorio
[default] exten=>0,1,Dial(ZAP/1,20,r)
Ex
Coloque las siguientes lneas en el archivo extensions.conf. Para testear marque 0 (cero) seguido de un nmero externo.
clu
siv
op
ar
aV
ice
nt
eM
igu
1 (uno) 8000 ser el ramal para grabacin de men de atencin automtica de llamadas.
el
Pe
Los ramales van desde 2000 hasta 2100 Para salir para la red pblica se disca el nmero 0 (cero) Para salir para la red pblica a travs de un proveedor se disca
re zP
ar ed es
En este laboratorio vamos a crear una pequea central telefnica capaz de discar entre ramales, para la red pblica por la placa PSTN o por un proveedor VoIP y recibiendo llamadas usando atencin automtica de llamadas. Para crear este PBX vamos hacer algunas consideraciones:
3.7 Laboratorio | 74
sea grabado. Usted va a orlo enseguida cuando el comando Playback fuese ejecutado.
[default] exten=>8000,1,Wait(2) exten=>8000,2,Record(menu:gsm) exten=>8000,3,Wait(2) exten=>8000,4,Playback(menu) exten=>8000,5,Hangup()
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Abajo el comando Background va a tocar un mensaje que usted grab y esperar que usted digite algo. Digite 2001 y usted va a ver que la comunicacin ser desviada para el ramal 2001. Si nada fuera discado la comunicacin ser automticamente transferida para el ramal 2000.
3.8 Sumario
En este captulo usted aprendi que los archivos de configuracin estn en /etc/asterisk. Para usar Asterisk es preciso en primer lugar configurar los canales (Ej. sip.conf y zapata.conf). Existen bsicamente tres formatos, el grupo simple, herencia de opciones, entidad compleja. El plan de discado es creado en el archivo extensions.conf, en el son creados contextos, aplicaciones, extensiones y prioridades. Las aplicaciones que usamos han sido Playback(), Background(), Dial(), Goto(), Hangup() e Answer(). Background() es un comando importante en la creacin de una URA. Dial() es el principal comando del plan de discado
3.9 Cuestionario
Correcto Incorrecto 4. Todava sea considerado una lnea digital, el E1 puede ser configurado con sealizacin asociada al canal (CAS) en este caso cada timeslot puede comportarse como un canal analgico FXS o FXO, por ejemplo. Esto es til para la conexin a channel-banks (bancos de canales). Correcto Incorrecto
Ex
3. El parmetro switchtype del archivo zapata.conf define El tipo de PBX al cual Asterisk est ligado. Esto es vlido para conexiones no Estndar E1 con sealizacin ISDN PRI. Normalmente en Brasil y en Europa este Estndar debe ser definido como National.
clu
siv
op
Correcto Incorrecto
ar
aV
2. Es importante definir el contexto de los archivos de canales, pues cuando nos llega una comunicacin de este canal (sip, iax, zap) al Asterisk este ser tratado en el archivo extensions.conf en este contexto.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
3.9 Cuestionario | 76
5. SIP Session Initiated Protocol es el protocolo de la ITU usado para conexiones de voz sobre IP. Este es bastante antiguo y viene siendo substituido recientemente por el H.323. Correcto Incorrecto 6. Dado la configuracin de abajo del archivo sip.conf, en la seccin [general] est definido la direccin IP 10.1.30.45, donde SIP estar esperando por conexiones. Si fuera necesario que todas las placas de red de la mquina esperasen por una conexin SIP, bindaddr debera estar configurado para: ___.___.___.___
[general] bindport = 5060 bindaddr = 10.1.30.45 context = default disallow = speex disallow = ilbc allow = ulaw maxexpirey = 120 defaultexpirey = 80
Correcto Incorrecto
8. La principal diferencia entre el comando Playback() y el comando Background() es que el Playback() simplemente toca un mensaje y pasa al comando siguiente, en cambio el Background aguarda que usted digite algo y desva para algn lugar en el plan de discado basndose en los dgitos discados. Correcto Incorrecto
Ex
clu
siv
op
ar
aV
ice
nt
7. En el archivo de abajo, los telfonos 8000 y 8001 fueron definidos con la opcin canreinvite=no. Con esto, cuando una comunicacin es hecha de un telfono para el otro, el audio va directamente de un telfono para otro sin pasar por Asterisk.
eM
igu
el
Pe
re zP
ar ed es
9. Cuando una comunicacin entra en Asterisk por una interface de telefona (FXO) sin identificacin de llamada, esta comunicacin es desviada para la extensin especial: 0 9 s i 10. Los formatos vlidos para el comando Goto() son:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
3.9 Cuestionario | 78
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Sealizacin de supervisin
POTS, Plain Old Telephony System, sistema de telefonia convencional basado en redes de par metlico y lneas TDM.
3
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
4.1 Objetivos
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
La sealizacin de informacin muestra el progreso de la llamada y los diferentes eventos. Estos eventos, pueden ser:
Tono de discado Seal de ocupado Tono de retorno (ringback) Congestionamiento (congestion) Nmero invlido Tono de confirmacin
Ex
clu
siv
op
ar
aV
ice
nt
En la mayora de los casos usted a la comunicarse con su PBX a la red pblica de telefona. En los captulos posteriores vamos a mostrar como hacer esto. Bsicamente existen tres opciones de lneas telefnicas hoy en el mercado. Las lneas analgicas, que son las ms comunes y son entregadas usando un par metlico de hilos. Las lneas Digitales son usadas cuando son necesarias muchas lneas analgicas. La lnea digital es normalmente entregada la travs de un MODEM HDSL de 2 Mbps el la travs de una lnea de fibra ptica con un MUX Digital. La tercera opcin, la ms reciente, es la entrega de la lnea telefnica usando voz sobre IP normalmente travs del protocolo SIP. En Brasil por ejemplo, hasta este momento, Embratel, GVT y Brasil Telecom ya entregan nmeros de telfono a travs del protocolo SIP.
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
Son las conocidas lneas residenciales estndar. Pueden ser utilizadas para conectar dispositivos bsicos: telfonos, MODEM y faxes. Debe proveer voltaje, generar tono de campanilla, deteccin de descolgado e indicar llamadas en progreso.
igu
el
Pe
re zP
ar ed es
Son tambin interfaces analgicas. El termino E & M viene de Ear (receive) and Mouth (transmit). Usadas principalmente en las comunicaciones entre PBXs el entre Switches de red-a-red. Placas E&M para Asterisk no estn disponibles. Estas placas son conocidas en el mercado de telefona como tie-lines analgicas. La mayora de las centrales no vienen con este tipo de interface, mucha de las centrales de marcas conocidas posean E&M como un opcional. Las placas E&M permiten una comunicacin bi-direcional, pueden dar y recibir tono. Si usted precisa usar una interface E&M con Asterisk la mejor opcin es la integracin de un gateway de voz.
analgicas digitales. Permite al telfono indicar los estados de on hook/offhook, al switch indicar los estados de ring/no ring. es el que usted tiene en casa. Cada lnea viene en un par separado de hilos, pudiendo ser utilizada tanto para hacer como recibir llamadas. Posee este nombre pues es una lnea abierta y la manera para iniciarse las llamadas es cerrndose un loop, as la central telefnica le proporciona el dial tone. De la misma manera una llamada entrante es sealizada por 100 V "ringing voltaje" a travs de el par abierto, y para responder la llamada, el loop Debe ser cerrado.
usted quiere hacer una llamada, uno de los lados del circuito es colocado en corto, cuando la Central identifica este estado, revierte el voltaje la travs de el par abierto, solamente de es que el loop es cerrado. De esta forma, la lnea primeramente se torna ocupada en la Central antes de ser proporcionada para la realizacin de una llamada.
Ex
clu
siv
op
ar
aV
ice
nt
eM
Es casi un estndar en Asterisk el uso de Sealizacin koolstart. Koolstart no es un estndar de supervisin conocido en la industria, lo que koolstart hace es adicionar inteligencia dando a los circuitos la habilidad de monitorear lo que del otro lado se est haciendo. Como koolstart incorpora el loopstart e el groundstart, es prcticamente solo el que se usa.
igu
el
Pe
re zP
ar ed es
koolstart incorpor las ventajas loopstart y groundstart y siendo superior a ambos, usted probablemente ir a utilizarlo a no ser que haya algn problema de compatibilidad. Koolstart se torn, informalmente, como el estndar para el uso con Asterisk.
En un encuadramiento E1, 30 de los 32 Canales disponibles son usados para voz, las informaciones de frame usan el primer DS0 y las
Ex
clu
siv
op
ar
aV
ice
nt
MFC/R2
es una Sealizacin definida para la ITU (Q.421/Q.441), usada principalmente en Amrica Latina y Asia. La Sealizacin usa CAS, ahora pasa las sealizaciones de cada canal por el canal 16. El R2 posee variaciones especficas para cada pas. Es la sealizacin de lnea digital ms comn en Brasil.
eM
nueva forma de entroncamiento (desde 1990) Un simple par de Hilos pueden transportar dos lneas y ms un circuito de datos de 16kbps usados como sealizacin. ISDN permite una forma bastante elegante de meter mano a las llamadas. Por ejemplo, servicios como: Caller-ID, llamada en espera, servicios de SMS, entre otros fueran originalmente desarrollados para ISDN.
igu
el
Pe
re zP
ar ed es
informaciones de sealizacin siguen por el DS0 16. El formato de sealizacin es conocido como CAS pues los bits del canal 16 son exclusivamente reservados para el propsito de sealizar cada canal.
Ex
clu
Conexin analgica usando una puerta FXS y otra puerta FXO Conexin digital usando Sealizacin ISDN Conexin digital usando Sealizacin R2/Brasil
siv
op
ar
Para configurar una placa de telefona varios pasos son necesarios. En este captulo vamos a mostrar tres casos comunes.
aV
ice
nt
La Sealizacin ISDN est disponible para Asterisk en diversas variaciones. Estas variaciones son configuradas en el archivo zapata.conf. La red pblica en Brasil cuando proporciona el ISDN normalmente usa switchtype como EuroISDN. Varias operadoras venden lneas ISDN en Brasil dependiendo de la central telefnica instalada en la ciudad. En centrales telefnicas Digitales, es posible usar ISDN, muchos fabricantes exigen upgrade de hardware y software para esto.
eM
igu
el
Pe
re zP
ar ed es
y el uso del Kernel 2.6 de Linux con motherboards que suportan APIC ayuda bastante en estos casos. Evite hardware incompatible con las placas ZAPTEL. De una ojeada en la lista de la pgina de Digium. Una lista puede ser encontrada en el link de abajo. http://www.digium.com/index.php?menu=compatibility
Pasos necesarios: 1. 2. 3. 4. 5. 6. 7.
ar
aV
ice
eM
Instalacin de una placa analgica FXO, FXS o ambas Configuracin del archivo zaptel.conf Carga del driver de la placa zaptel Ejecucin del utilitario zttest Ejecucin del utilitrio ztcfg Configuracin del archivo zapata.conf Carga de Asterisk
igu
el
Pe
re zP
nt
op
clu
siv
FX S 12 V
Ex
FX
ar ed es
Usaremos como ejemplo la configuracin de una placa Digium TDM400P con una interface FXO y otra interface FXS.
La placa TDM 400P contiene mdulos FXS y FXO de una puerta. Cuando existiesen placas FXS, es preciso alimentar directamente la placa con una fuente de energa (semejante al conector de hard disk). Use proteccin electroesttica para evitar daos en la placa o la de su computador. Conecte la placa a un slot PCI y conecte su mquina. Conecte los mdulos FXS (S110M) y FXO (X100M) a la placa TDM400P. Si la placa tiene interfaces FXS alimente el conector de 12V usando un de los cabos de la fuente del PC.
fxsks=1 # una puerta FXO, certifiquese que el mdulos rojo est ms prximo al tornillo de fijacin de la placa. fxoks=2 # una puerta FXS defaultzone=br loadzone=br
Nota: La sealizacin de telefona analgica puede ser una fuente de confusin. Canales FXS son sealizados con Sealizacin FXO y Canales FXO son sealizados con FXS. Asterisk habla con los dispositivos internos como si estuviese del lado opuesto.
Ex
En la TDM400P los mdulos FXS son verdes y los mdulos FXO son rojos.
clu
Para cada placa es preciso configurar el archivo zaptel.conf. Este archivo se encuentra en el directorio /etc al contrario de todos los otros que se encuentran en le directorio /etc/asterisk.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Como usted ya vio en el captulo 2, usted debe cargar el modulo zaptel y un mdulo correspondiente a la placa que usted est instalando.
Tabla de los drivers de Digium
El comando ztcfg es usado para configurar la sealizacin usada para la interface fsica FX. Ztcfg ir a usar la configuracin de sealizacin en zaptel.conf. Para ver la salida del comando usted debe usar vv para colocar el programa en modo verbo.
#/sbin/ztcfg -vv Zaptel Configuration ====================== Channel map: Channel 01: FXS Kewlstart (Default) (Slaves: 01) Channel 02: FXO Kewlstart (Default) (Slaves: 02) 2 channels configured.
Si los canales se cargasen con xito, usted va a ver una salida similar al recuadro de arriba. Un error comn es invertir la sealizacin entre los canales. Si esto sucede usted va a ver algo parecido como:
Ex
clu
siv
Luego de cargar el driver, usted debe configurar los canales usando ztcfg.
op
ar
aV
El zttest permite verificar la cantidad de interrupciones perdidas. un nmero abajo de 99.98% indica posibles problemas.
ice
nt
eM
#cat /proc/interrupts
igu
Un utilitrio importante es el zttest que puede ser usando para verificar conflictos de interrupcin y interrupt misses (interrupciones perdidas). Es muy comn problemas en la calidad de audio por causa de conflictos y prdidas de interrupcin. Usted puede usar el comando:
el
Pe
re zP
ar ed es
ZT_CHANCONFIG failed on channel 1: Invalid argument (22) Did you forget that FXS interfaces are configured with FXO signalling and that FXO interfaces use FXS signalling?
Luego que los canales hayan sido configurados con xito, usted est listo para iniciar el uso de su hardware con Asterisk.
Instalacin de una placa digital TE205P o TE210P Configuracin del archivo zaptel.conf Carga de driver de placa zaptel Ejecucin del utilitrio zttest Ejecucin del utilitrio ztcfg Configuracin del archivo zapata.conf Carga y teste con Asterisk
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
Cuidado al especificar: Certifquese de estar comprando la placa correcta. Es muy comn que las personas especificasen las placas de 3.3V (TE210P, TE410P, TE211P e TE411P) y devuelvan estas placas por no encontrar una motherboard compatible. Como ya dijimos estos slots de 3.3V 64 bits PCI-X solo son encontrados en motherboard para servidores.
siv
op
ar
aV
En primer lugar es importante entender las implicaciones de escoger una placa Digium TE205P o TE210P. La placa TE210P es una placa que usa un bus de datos de 64 bits de 3.3 volts. Este bus solo es encontrado en PCs servidores de red. Cuidado al especificar esta placa, certifquese que su hardware va operar normalmente. La placa TE205P usa un bus PCI comn de 5 volts y el hardware disponible es mucho mayor. Escogemos una placa con dos interfaces E1 para el ejemplo, pues es fcil reducirlo para los casos de una interface E1 apenas.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
span=1,1,0,ccs,hdb3,crc4 # no siempre crc4 es necesario, ver operadora span=2,0,0,ccs,hdb3,crc4 bchan=1-15, 17-31 dchan=16 bchan=33-47, 49-63 dchan=48 defaultzone=br loadzone=br
Opened pseudo zap interface, measuring accuracy... 99.987793% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 99.987793% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% 100.000000% --- Results after 26 passes --Best: 100.000000 -- Worst: 99.987793 -- Average: 99.999061
Ex
Un utilitario importante es el zttest que puede ser usado para verificar conflictos de interrupcin e interrupt misses. Es muy comn problemas de calidad de audio por causa de conflictos y prdidas de interrupcin. Usted puede usar el comando zttest dentro de /usr/src/asterisk. el nmero de interrupciones no debe ser peor que 99.987793%.
clu
siv
op
ar
aV
ice
nt
eM
Descripcin 4xE1/T1-3.3V PCI 4xE1/T1-5V PCI 2XE1/T1-3.3V PCI 2xE1/T1-5V PCI 4 FXS/FXO 1 T1 1 E1 1 FXO
igu
el
Pe
re zP
ar ed es
Como usted ya vio en el captulo 2, usted debe cargar el modulo zaptel y un mdulo correspondiente a la placa que usted est instalando.
Para verificar en que interrupcin est cada una de las placas use:
#cat /proc/interrupts CPU0 0: 3675537 XT-PIC timer 1: 2 XT-PIC keyboard 2: 0 XT-PIC cascade 3: 410705 XT-PIC eth1 4: 1694897 XT-PIC eth0 5: 36737213 XT-PIC t1xxp 7: 14703 XT-PIC libata 8: 4 XT-PIC rtc 10: 36742553 XT-PIC wcfxo 11: 36742513 XT-PIC wcfxo 14: 55631 XT-PIC ide0 NMI: 0 LOC: 3675478 ERR: 0 MIS: 0
Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel Channel
01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 32: 33:
Clear channel (Default) (Slaves: 01) Clear channel (Default) (Slaves: 02) Clear channel (Default) (Slaves: 03) Clear channel (Default) (Slaves: 04) Clear channel (Default) (Slaves: 05) Clear channel (Default) (Slaves: 06) Clear channel (Default) (Slaves: 07) Clear channel (Default) (Slaves: 08) Clear channel (Default) (Slaves: 09) Clear channel (Default) (Slaves: 10) Clear channel (Default) (Slaves: 11) Clear channel (Default) (Slaves: 12) Clear channel (Default) (Slaves: 13) Clear channel (Default) (Slaves: 14) Clear channel (Default) (Slaves: 15) D-channel (Default) (Slaves: 16) FXS Kewlstart (Default) (Slaves: 32) FXS Kewlstart (Default) (Slaves: 33)
18 channels configured.
Ex
clu
siv
op
ar
aV
Channel map:
ice
nt
eM
igu
Esta es la salida del comando ztcfg vvv de un servidor Asterisk con una placa E1 configurada para quince canales ms dos placas FXO.
el
Pe
re zP
ar ed es
callerid=<4830258580> switchtype=euroisdn signalling = pri_cpe group = 1 channel => 1-15;17-31 group =2 channel => 32-46;48-62
OK OK RED
ar ed es
0 0 0
vtsvoffice*CLI> zap show status Description CRC4 Digium Wildcard E100P E1/PRA Card 0 Wildcard X100P Board 1 Wildcard X100P Board 2
Alarms
IRQ
bpviol 0 0 0 0 0 0
clu
siv
op
ar
aV
ice
nt
Language en en en en en en en en en en en en en en en en en en
eM
MusicOnHold default default default default default default default default default default default default default default default default default default
Ex
igu
el
Pe
re zP
-- Making new call for cr 32833 > Protocol Discriminator: Q.931 (8) len=57 > Call Ref: len= 2 (reference 65/0x41) (Originator) > Message type: SETUP (5) > [04 03 80 90 a3] > Bearer Capability (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer capability: Speech (0) > Ext: 1 Trans mode/rate: 64kbps, circuitmode (16) > Ext: 1 User information layer 1: A-Law (35) > [18 03 a9 83 81] > Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 > ChanSel: Reserved > Ext: 1 Coding: 0 Number Specified Channel Type: 3 > Ext: 1 Channel: 1 ] > [28 0e 46 6c 61 76 69 6f 20 45 64 75 61 72 64 6f] > Display (len=14) @h@>[ Flavio Eduardo ] > [6c 0c 21 80 34 38 33 30 32 35 38 35 39 30] > Calling Number (len=14) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) > Presentation: Presentation permitted, user number not screened (0) '4830258590' ] > [70 09 a1 33 32 32 34 38 35 38 30] > Called Number (len=11) [ Ext: 1 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '32248580' ]
Ex
clu
siv
op
ar
aV
debug pri span x: Habilita un debugging detallado de las llamadas ISDN. Note que es posible verificar exactamente que nmeros estn siendo discados y el identificador de llamada. Abajo sigue el debug de una llamada que procedi normalmente, esta puede ser til en la comparacin con una comunicacin con problemas. Una pista es desconectar el modo verbo (set verbose=0) antes de emitir el comando para tener apenas los mensajes Q.931 de ISDN.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
> [a1]fice*CLI> > Sending Complete (len= 1) < Protocol Discriminator: Q.931 (8) len=10 < Call Ref: len= 2 (reference 65/0x41) (Terminator) < Message type: CALL PROCEEDING (2) < [18 03 a9 83 81] < Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 < ChanSel: Reserved < Ext: 1 Coding: 0 Number Specified Channel Type: 3 < Ext: 1 Channel: 1 ] -- Processing IE 24 (cs0, Channel Identification) < Protocol Discriminator: Q.931 (8) len=9 < Call Ref: len= 2 (reference 65/0x41) (Terminator) < Message type: ALERTING (1) < [1e 02 84 88] < Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the remote user (4) < Ext: 1 Progress Description: Inband information or appropriate pattern now available. (8) ] -- Processing IE 30 (cs0, Progress Indicator) < Protocol Discriminator: Q.931 (8) len=64 < Call Ref: len= 2 (reference 5720/0x1658) (Originator) < Message type: SETUP (5) < [04 03 80 90 a3] < Bearer Capability (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer capability: Speech (0) < Ext: 1 Trans mode/rate: 64kbps, circuitmode (16) < Ext: 1 User information layer 1: A-Law (35) < [18 03 a1 83 82] < Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Preferred Dchan: 0 < ChanSel: Reserved < Ext: 1 Coding: 0 Number Specified Channel Type: 3 < Ext: 1 Channel: 2 ] < [1c 15 91 a1 12 02 01 bc 02 01 0f 30 0a 02 01 01 0a 01 00 a1 02 82 00] < Facility (len=23, codeset=0) [ 0x91, 0xa1, 0x12, 0x02, 0x01, 0xbc, 0x02, 0x01, 0x0f, '0', 0x0a, 0x02, 0x01, 0x01, 0x0a, 0x01, 0x00, 0xa1, 0x02, 0x82, 0x00 ] < [1e 02 82 83] < Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the local user (2) < Ext: 1 Progress Description: Calling equipment is non-ISDN. (3) ] < [6c 0c 21 83 34 38 33 32 32 34 38 35 38 30] < Calling Number (len=14) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) < Presentation: Presentation allowed of network provided number (3) '4832248580' ] < [70 05 c1 38 35 38 30] < Called Number (len= 7) [ Ext: 1 TON: Subscriber Number (4) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '8580' ] < [a1] < Sending Complete (len= 1) -- Making new call for cr 5720 -- Processing Q.931 Call Setup -- Processing IE 4 (cs0, Bearer Capability) -- Processing IE 24 (cs0, Channel Identification) -- Processing IE 28 (cs0, Facility) Handle Q.932 ROSE Invoke component -- Processing IE 30 (cs0, Progress Indicator) -- Processing IE 108 (cs0, Calling Party Number) -- Processing IE 112 (cs0, Called Party Number) -- Processing IE 161 (cs0, Sending Complete) > Protocol Discriminator: Q.931 (8) len=10
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
> Call Ref: len= 2 (reference 5720/0x1658) (Terminator) > Message type: CALL PROCEEDING (2) > [18 03 a9 83 82] > Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 > ChanSel: Reserved > Ext: 1 Coding: 0 Number Specified Channel Type: 3 > Ext: 1 Channel: 2 ] > Protocol Discriminator: Q.931 (8) len=14 > Call Ref: len= 2 (reference 5720/0x1658) (Terminator) > Message type: CONNECT (7) > [18 03 a9 83 82] > Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 > ChanSel: Reserved > Ext: 1 Coding: 0 Number Specified Channel Type: 3 > Ext: 1 Channel: 2 ] > [1e 02 81 82] > Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Private network serving the local user (1) > Ext: 1 Progress Description: Called equipment is non-ISDN. (2) ] < Protocol Discriminator: Q.931 (8) len=5 < Call Ref: len= 2 (reference 5720/0x1658) (Originator) < Message type: CONNECT ACKNOWLEDGE (15) < Protocol Discriminator: Q.931 (8) len=9 < Call Ref: len= 2 (reference 65/0x41) (Terminator) < Message type: PROGRESS (3) < [1e 02 84 82] < Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the remote user (4) < Ext: 1 Progress Description: Called equipment is non-ISDN. (2) ] -- Processing IE 30 (cs0, Progress Indicator) < Protocol Discriminator: Q.931 (8) len=5 < Call Ref: len= 2 (reference 65/0x41) (Terminator) < Message type: CONNECT (7) > Protocol Discriminator: Q.931 (8) len=5 > Call Ref: len= 2 (reference 65/0x41) (Originator) > Message type: CONNECT ACKNOWLEDGE (15) NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Active, peerstate Connect Request > Protocol Discriminator: Q.931 (8) len=9 > Call Ref: len= 2 (reference 65/0x41) (Originator) > Message type: DISCONNECT (69) > [08 02 81 90] > Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Private network serving the local user (1) > Ext: 1 Cause: Unknown (16), class = Normal Event (1) ] < Protocol Discriminator: Q.931 (8) len=5 < Call Ref: len= 2 (reference 65/0x41) (Terminator) < Message type: RELEASE (77) NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Release Request > Protocol Discriminator: Q.931 (8) len=9 > Call Ref: len= 2 (reference 65/0x41) (Originator) > Message type: RELEASE COMPLETE (90) > [08 02 81 90] > Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Private network serving the local user (1) > Ext: 1 Cause: Unknown (16), class = Normal Event (1) ] NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null < Protocol Discriminator: Q.931 (8) len=9 < Call Ref: len= 2 (reference 5720/0x1658) (Originator) < Message type: DISCONNECT (69) < [08 02 82 90]
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
La placa usada para la Sealizacin R2 es la misma usada para la sealizacin ISDN. El propio Digium posee dentro del cdigo de canal zapata sealizacin R2, ms de acuerdo con Mark Spencer est lejos de estar implementado. Para usar la sealizacin R2 vamos usar el driver Unicall desarrollado por Steve Underwood y esta disponible en www.softswitch.org. Lo ideal es usar ISDN que es ms estable y posee soporte de Digium, la dificultad es que no siempre est disponible. La gran mayora de las lneas en Amrica del Sur usan Sealizacin R2, tambin conocida como R2-Digital.
nt
eM
igu
el
Pe
re zP
ar ed es
< Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the local user (2) < Ext: 1 Cause: Unknown (16), class = Normal Event (1) ] -- Processing IE 8 (cs0, Cause) NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Disconnect Indication, peerstate Disconnect Request > Protocol Discriminator: Q.931 (8) len=9 > Call Ref: len= 2 (reference 5720/0x1658) (Terminator) > Message type: RELEASE (77) > [08 02 81 90] > Cause (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Private network serving the local user (1) > Ext: 1 Cause: Unknown (16), class = Normal Event (1) ] < Protocol Discriminator: Q.931 (8) len=5 < Call Ref: len= 2 (reference 5720/0x1658) (Originator) < Message type: RELEASE COMPLETE (90) NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
Seized (Ocupado) Seize Ack (Confirmacin de ocupado, Ring) Answered (En conversacin) ClearBack (Desconexion por la parte llamada) ClearFwd (Antes de Clear-Back) ClearFwd (Despues de Clear-Back) Blocked (Bloqueado)
Diferencias para el estndar brasilero. A pesar de R2 ha sido definido por la ITU existen variaciones en relacin a la implementacin hecha en cada pas. Siguen abajo las tablas referentes al Brasil.
Estado Idle/Released (libre) Seized (Ocupado) Seize Ack (Confirmacin de ocupado, Ring) Llamada en progreso Atencion de la Llamada Answered (En conversacin) Tarificacin ClearBack (Desconexin por la parte llamada) ClearFwd (Antes de Clear-Back) ClearFwd (Confirmacin de desconexin) Desconexin forzada Blocked (Bloqueado) Confirmacin de desconexin forzada Falla ABCD p/ Frente 1001 0001 0001 0001 0001 0001 0001 0001 1001 1001 0001 1001 1001 1101
ar ed es
I-15
Seales 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Descripcin Algoritmo 1 Algoritmo 2 Algoritmo 3 Algoritmo 4 Algoritmo 5 Algoritmo 6 Algoritmo 7 Algoritmo 8 Algoritmo 9 Algoritmo 0 Interseccin semi-supresor de eco Pedido recusado o indicacin de transito internacional Acceso equipamiento de test Insercin de semi-supresor de eco de destino o indicacin de transito internacional Fin de nmero o indicacin de que la llamada curs enlace va satlite
siv
Ex
clu
op
La Sealizacin MFC usa combinaciones de dos tonos conforme la tabla a continuacin. El cuadro de abajo presenta los significados para la norma brasilea.
ar
aV
ice
nt
eM
ABCD p/ Trs 1001 1001 1101 1101 0101 0101 1101 1101 0101 1001 0001 1101 0001 1001
igu
el
Pe
re zP
Seales 1 2 3 4 5 6 7 8 9 10 11 12 13
Descripcin Lnea de suscriptor libre con tarificacin Lnea de suscriptor ocupada Lnea de suscriptor con nmero cambiado Congestionamiento Lnea de suscriptor libre sin tarificacin Lnea de suscriptor libre con tarificacin y colocar retencin sobre control de suscriptor llamado Nmero confuso Lnea de suscriptor fuera de servio para trfico terminado Reservado Reservado Reservado Reservado Reservado
clu
Ex
siv
Descripcin Enviar el prximo Algoritmo (n+1) Necesidad de semi-supresor de eco en destino o enviar el primero Algoritmo enviado Preparar recepcin de seales de grupo B Congestionamiento de red nacional Enviar categora y identidad de Suscriptor llamado Reservado Enviar Algoritmo N-2 Enviar Algoritmo N-3 Enva Algoritmo N-1 Inestable para uso nacional Reservado Reservado Reservado Reservado Reservado
Pe
re zP
igu
el
op
ar
aV
ice
nt
eM
ar ed es
A-3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
14 15
Reservado Reservado
B14 B15
Ramal
...
Retorno da Campainha
eM
Assinante sem prioridade (II-1)1 Usurio Livre, Bilhetar (B-6)2 Campainha Off-Hook (Fora do gancho)
ice
op
ar
Silncio
aV
Clearback (Trmino) 11
nt
igu
el
Pe
Sinalizao audvel
En el driver Unicall la secuencia es un poco diferente y el conjunto de recursos es como sigue abajo:
Ex
La secuencia de arriba es de una llamada de un ramal de un PBX para una Terminal de red pblica que enseguida desconecta el telfono y finaliza la comunicacin.
clu
siv
re zP
ar ed es
10 Idle(livre) 10
Para instalar el R2 es preciso bajar y compilar las bibliotecas spandsp, libsupertone, libmfcr2 y libunicall a partir de ftp.soft-switch.org. En la versin 1.4 Steve Underwood no est mas manteniendo lo cdigo. Existe un patch en Internet que compila en la versin 1.4, (gracias a Moiss Humberto Silva Salmern). Instalando las dependencias
#apt-get install libtiff4-dev #apt-get install libxml2-dev
Ex
clu
siv
op
62 channels configured.
ar
aV
SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1) SPAN 2: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
ice
nt
eM
Ejecutar ZTCFG.
igu
el
Colocar los bits en bloqueado es importante para que la operadora no entienda que en la carga de la placa de Asterisk esta listo para recibir llamadas. La placa simplemente esta conectada, pero no lista para recibir llamadas.
Pe
re zP
ar ed es
spandsp
#cd /usr/src #wget http://www.moythreads.com/unicall/soft-switch/r1b1/spandsp/spandsp0.0.3pre27.tgz #tar xzvf spandsp-0.0.3pre27.tar.gz #cd spandsp-0.0.3 # ./configure --prefix=/usr #make #make install
libsupertone
#cd /usr/src #wget http://www.moythreads.com/unicall/soft-switch/r1b1/unicall/libsupertone0.0.2.tar.gz #tar xzvf libsupertone-0.0.2.tar.gz #cd libsupertone-0.0.2 # ./configure --prefix=/usr #make #make install
libunicall
Ex
#cd /usr/src #wgethttp://www.moythreads.com/unicall/soft-switch/r1b1/unicall/libmfcr20.0.3_1.4.tar.bz2 #tar xvf libmfcr2-0.0.3_1.4.tar.bz2 #cd libmfcr2-0.0.3_1.4 # ./configure --prefix=/usr #make #make install
clu
siv
op
ar
libmfcr2
aV
#cd /usr/src #wget http://www.moythreads.com/unicall/soft-switch/r1b1/unicall/libunicall0.0.3_1.4.tar.bz2 #tar xvf libunicall-0.0.3_1.4.tar.bz2 #cd libunicall-0.0.3_1.4 # ./configure --prefix=/usr #make #make install
ice
nt
eM
igu
el
Pe
re zP
ar ed es
; ; Unicall telephony channel driver ; ; Sample configuration file ; ; $Id: unicall.conf.sample,v 1.1 2005/05/28 11:17:02 steveu Exp $ ; [channels] ; ; Default language ; language=br ; ; Default context ; context=default ; ; Whether or not to use caller ID ; usecallerid=yes ; ; Whether or not to hide outgoing caller ID ; hidecallerid=no ; ; Whether or not restrict outgoing caller ID (will be sent as ANI only, not available for the user) ; Mostly use with FXS ports ; ;restrictcid=no ; ; Support Caller*ID on Call Waiting ; callwaitingcallerid=yes ;
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
As como para configurar los Canales zaptel, usted editaba un archivo llamado zapata.conf, ahora para los Canales R2 usted editar el archivo unicall.conf. Este archivo tiene sintaxis y atributos casi idnticos al zapata.conf de forma que no ser difcil entenderlo. Vea abajo el archivo editado.
Pe
re zP
ar ed es
; Support three-way calling ; threewaycalling=yes ; ; Support flash-hook call transfer (requires three way calling) ; transfer=yes ; ; Support call forward variable ; cancallforward=yes ; ; Whether or not to support Call Return (*69) ; callreturn=yes ; ; Enable echo cancellation ; Use either "yes", "no", or la power of two from 32 to 256 if you wish ; to actually set the number of taps of cancellation. ; echocancel=yes ; ; Generally, it is not necessary (and in fact undesirable) to echo cancel ; when the circuit path is entirely TDM. You may, however, reverse this ; behavior by enabling the echo cancel during pure TDM bridging below. ; echocancelwhenbridged=yes ; ; In some cases, the echo canceller doesn't train quickly enough and there ; is echo at the beginning of the call. Enabling echo training will cause ; asterisk to briefly mute the channel, send an impulse, and use the impulse ; response to pre-train the echo canceller so it can start out with la much ; closer idea of the actual echo. Value may be "yes", "no", or la number of ; milliseconds to delay before training (default = 400) ; ;echotraining=yes ;echotraining=800 ; ; If you are having trouble with DTMF detection, you can relax the ; DTMF detection parameters. Relaxing them may make the DTMF detector ; more likely to have "talkoff" where DTMF is detected when it ; shouldn't be. ; ;relaxdtmf=yes ; ; You may also set the default receive and transmit gains (in dB) ; rxgain=0.0 txgain=0.0 ; ; Logical groups can be assigned to allow outgoing rollover. Groups ; range from 0 to 31, and multiple groups can be specified. ; group=1 ; ; Ring groups (a.k.a. call groups) and pickup groups. If la phone is ringing ; and it is la member of la group which is one of your pickup groups, then ; you can answer it by picking up and dialing *8#. For simple offices, just ; make these both the same
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
; ; Set up E1s 2 and 3 to work in China MFC/R2 mode. la maximum of 20 ANI digits ; will be accepted. 7 DNIS digits are expected. MFC/R2 uses the E1s in CAS mode, ; so time slot 16 of each E1 must be skipped when allocating the channels. ; ;loglevel=255 protocolclass=mfcr2 ; For MFC/R2 an optional fourth parameter for the variant is composed of bits, ; which must be OR'ed together, as follows: ;
Ex
clu
siv
; callgroup=1 pickupgroup=1 ; ; Specify whether the channel should be answered immediately or ; if the simple switch should provide dialtone, read digits, etc. ; immediate=no ; ; CallerID can be set to "asreceived" or la specific number ; if you want to override it. Note that "asreceived" only ; applies to trunk interfaces. ; callerid=asreceived ; ; AMA flags affects the recording of Call Detail Records. If specified ; it may be 'default', 'omit', 'billing', or 'documentation'. ; ;amaflags=default ; ; Channels may be associated with an account code to ease ; billing ; ;accountcode=lss0101 ; ; For fax detection, uncomment one of the following lines. The default is *OFF* ; ;faxdetect=both ;faxdetect=incoming ;faxdetect=outgoing ;faxdetect=no ; ; Select which class of music to use for music on hold. If not specified ; then the default will be used. ; ;musiconhold=default ; ;protocolclass=fx ;protocolvariant=ls,hk ;protocolend=co ;group = 3 ;channel => 280-283
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
clu
siv
op
protocolvariant=pas,digitos-ANI,digitos-DNIS
ar
aV
ice
; 1: Play progress tones. These are usually handled by the far end switch, but ; may need to be sent as audio through the channel on some systems. ; 2: Play disconnect tone. The disconnect tone is usually handled by the far end ; switch, but may need to be sent as audio through the channel on some systems. ; 4: Play ringback tone. The ringback tone is usually generated by something ; downstream of the MFC/R2 software, but may need to be generated here on some ; systems. ; 8: Get ANI after DNIS. The usual behaviour for incoming calls is to get the ; calling party category and the ANI as soon as possible, and to get the DNIS ; afterwards. This doesn't work on all systems, so the option to reverse the ; behaviour is provided. ; 16: Use immediate accept. Most variants of MFC/R2 offer la way to go directly to ; the call accepted state, bypassing the use of group B and II tones. This option ; enables the use of that feature for incoming calls. ; protocolvariant=br,20,4 protocolend=cpe group = 1 channel => 1-15 ;skip time slot 16 channel => 17-31 channel => 33-47 ;skip time slot 48 channel => 49-63
nt
Ex
eM
igu
"ar" "bh" "bo" "br" "cl" "cn" "co-land" "co-cell" "cz" "hn" "in" "id" "kr" "my" "mx" "pa" "ph" "sg"
el
Pe
re zP
ar ed es
Thailand
"th"
ANI y DNIS ANI quiere decir Automatic Number Identificatin, en otras palabras el nmero de la persona que est originando la llamada. DNIS quiere decir Dialed Number Identification Service, en otras palabras el nmero discado. Cuando una llamada entra, normalmente cuatro nmeros (dgitosdnis=4) son pasados a la central telefnica para la llegada a un ramal en un proceso conocido como DDR, discado direct al ramal tambin conocida por la sigla en ingles DID Direct Inward Dial. El nmero de ANI en este caso el nmero de identificacin de quien origin la llamada tambin conocido como nmero de A. En una llamada saliente el nmero de ANI va a contener el nmero de identificacin del ramal que gener la comunicacin. Y DNIS ir a identificar el nmero de destino de la llamada. La importancia de configurar correctamente estos parmetros reside en el hecho de que algunas centrales envan apenas los cuatro ltimos nmeros, otras entregan el nmero completo. En el ejemplo de abajo estamos configurando la central para DNIS=4, o sea recibir apenas los ltimos cuatro dgitos. Asterisk en este caso aceptar una identificacin del origen de no mximo de 20 dgitos.
protocolvariant=br,20,4
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Haciendo un debug de una llamada. Una de las formas de verificar que est ocurriendo en una llamada es proceder un debug. Para esto es preciso editar el archivo unicall.conf, tirar el comentrio de lnea loglevel=255 y reiniciar Asterisk. En la lnea del comando de Asterisk use set verbose=0 para eliminar los mensajes de Asterisk y estar solamente con los mensajes de R2. Abajo sigue un ejemplo que usted puede usar de base de comparacin con una conexin que fue completada normalmente. El nmero de (ANI) es 1149295000 y el nmero de destino (DNIS) es 0154830258576.
Apr Apr Apr CRN 12 08:33:49 WARNING[4417]: MFC/R2 UniCall/1 Call control(1) 12 08:33:49 WARNING[4417]: MFC/R2 UniCall/1 Make call 12 08:33:49 WARNING[4417]: MFC/R2 UniCall/1 Making la new call with 32769
Ex
clu
Todos los canales deben estar en idle (vacio). Si el comando no aparece la causa probable es que chan_unicall no ha sido correctamente compilado o cargado.
siv
op
ar
vtsvoffice*CLI>UC show channels Channel Extension Context 1 e1-incoming 2 e1-incoming 3 e1-incoming 4 e1-incoming 5 e1-incoming 6 e1-incoming
nt
eM
UC show channels: Usted puede verificar el estado de las lneas usando este comando:
Status Idle Idle Idle Idle Idle Idle Language MusicOnHold default default default default default default
aV
ice
igu
el
Estos indican que los Canales estan y pasaran de estado bloqueado original (11) para el estado idle (10). Local end unblocked quiere decir que el lado de Asterisk fue desbloqueado, Far end inblocked quiere decir que el lado de la operadora fue desbloqueado. Si uno de los lados no aparece desbloqueado la lnea puede no haber sido activada.
Pe
re zP
ar ed es
Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07 06:45:07
WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]: WARNING[24876]: VERBOSE[24876]:
Unicall/4 event Far end unblocked -- Unicall/4 far unblocked Unicall/4 event Local end unblocked -- Unicall/4 local unblocked Unicall/5 event Far end unblocked -- Unicall/5 far unblocked Unicall/5 event Local end unblocked -- Unicall/5 local unblocked Unicall/6 event Far end unblocked -- Unicall/6 far unblocked Unicall/6 event Local end unblocked -- Unicall/6 local unblocked Unicall/7 event Far end unblocked -- Unicall/7 far unblocked Unicall/7 event Local end unblocked -- Unicall/7 local unblocked Unicall/8 event Far end unblocked -- Unicall/8 far unblocked Unicall/8 event Local end unblocked -- Unicall/8 local unblocked
Apr 12 08:33:49 1/Idle Apr 12 08:33:49 Apr 12 08:33:50 40/Seize Apr 12 08:33:50 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:51 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:52 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I
WARNING[4417]: MFC/R2 UniCall/1 0001 -> /Idle ] WARNING[4417]: Unicall/1 event Dialing WARNING[4417]: MFC/R2 UniCall/1 <- 1101 /Idle ] WARNING[4417]: MFC/R2 UniCall/1 0 on -> /Idle ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 on /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 0 off -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 off /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 1 on -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 on /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 1 off -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 off /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 5 on -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 on /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 5 off -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 1 off /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 4 on -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 on /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 4 off -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 off /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 Calling party WARNING[4417]: MFC/R2 UniCall/1 1 on -> /DNIS ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 on /Category ] WARNING[4417]: MFC/R2 UniCall/1 1 off -> /Category ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 off /Category ] WARNING[4417]: MFC/R2 UniCall/1 1 on -> /Category ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 on /ANI ] WARNING[4417]: MFC/R2 UniCall/1 1 off -> /ANI ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 off /ANI ] WARNING[4417]: MFC/R2 UniCall/1 1 on -> /ANI ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 on /ANI ] WARNING[4417]: MFC/R2 UniCall/1 1 off -> /ANI ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 off /ANI ] WARNING[4417]: MFC/R2 UniCall/1 4 on -> /ANI ] WARNING[4417]: MFC/R2 UniCall/1 <- 5 on /ANI ] WARNING[4417]: MFC/R2 UniCall/1 4 off -> /ANI ]
[1/ [1/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ category 0x0 [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/ [2/
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:53 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:54 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:55 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I
WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /ANI WARNING[4417]: /End of ANI WARNING[4417]: /End of ANI WARNING[4417]: /End of ANI WARNING[4417]: /End of ANI
MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ]
UniCall/1 9 on UniCall/1
ar ed es
UniCall/1
<- 5 on
UniCall/1
re zP
igu
el
UniCall/1
Pe
UniCall/1 5 on
eM
ice
nt
aV
op
ar
siv
clu
Ex
Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:56 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:57 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:33:58 40/Group I Apr 12 08:34:01 40/Group I Apr 12 08:34:01 40/Group I
WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS WARNING[4417]: /DNIS
MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ] MFC/R2 ]
UniCall/1
<- 1 on
[2/ [2/
UniCall/1
re zP
UniCall/1 2 on
ar ed es
<- 1 on
igu
UniCall/1 5 on UniCall/1
el
UniCall/1
Pe
nt
eM
aV
ice
op
ar
clu
siv
Ex
context: Define el contexto para aquel canal: Este es el contexto para entrada de llamadas por el canal. Ejemplo:
context=default
channel: Define el canal o faja de Canales. Cada definicin de canal ir a heredar todas las opciones colocadas al frente del archivo. Los canales pueden ser especificados individualmente, separados por comas o como una faja separada por un guin.
Channel=>1-15 Channel=>16 Channel=>17,18
Ex
clu
siv
Existen diversas opciones de configuracin en el archivo zapata.conf. Describir todas estas opciones seria cansado y poco productivo. Vamos a detallar los principales grupos de opciones para facilitar el entendimiento.
op
ar
aV
ice
Apr 12 08:34:01 WARNING[4417]: MFC/R2 UniCall/1 <- 3 off [2/ 40/Group I /DNIS ] Apr 12 08:34:01 WARNING[4417]: MFC/R2 UniCall/1 1 on -> [2/ 40/Group I /DNIS ] Apr 12 08:34:01 WARNING[4417]: MFC/R2 UniCall/1 <- 5 on [2/ 40/Group II /Category ] Apr 12 08:34:01 WARNING[4417]: MFC/R2 UniCall/1 1 off -> [2/ 40/Group II /Category ] Apr 12 08:34:01 WARNING[4417]: MFC/R2 UniCall/1 <- 5 off [2/ 40/Group II /Category ] Apr 12 08:34:01 WARNING[4417]: Unicall/1 event Alerting Apr 12 08:34:04 WARNING[4417]: MFC/R2 UniCall/1 <- 0101 [1/ 200/Await answer /Category ] Apr 12 08:34:04 WARNING[4417]: Unicall/1 event Connected Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 <- 1101 [1/ 400/Answered /Category ] Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 Far end disconnected(cause=Normal Clearing [16]) - state 0x400 Apr 12 08:34:25 WARNING[4417]: Unicall/1 event Far end disconnected Apr 12 08:34:25 WARNING[4417]: CRN 32769 - far disconnected cause=Normal Clearing [16] Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 Call control(6) Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 Drop call(cause=Normal Clearing [16]) Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 Clearing fwd Apr 12 08:34:25 WARNING[4417]: MFC/R2 UniCall/1 1001 -> [1/ 800/Clear back /Category ] Apr 12 08:34:28 NOTICE[4417]: Peer '2222' is now TOO LAGGED! Apr 12 08:34:30 WARNING[4417]: MFC/R2 UniCall/1 <- 1001 [1/ 800/Clear fwd D /Idle ] Apr 12 08:34:30 WARNING[4417]: MFC/R2 UniCall/1 Call disconnected(cause=Normal Clearing [16]) - state 0x800 Apr 12 08:34:30 WARNING[4417]: Unicall/1 event Drop call Apr 12 08:34:30 WARNING[4417]: MFC/R2 UniCall/1 Call control(7) Apr 12 08:34:30 WARNING[4417]: MFC/R2 UniCall/1 Release call Apr 12 08:34:30 WARNING[4417]: MFC/R2 UniCall/1 Destroying call with CRN 32769 Apr 12 08:34:30 WARNING[4417]: Unicall/1 event Release call
nt
eM
igu
el
Pe
re zP
ar ed es
group: Permite que un nmero de canales sea tratado como uno para el propsito de discado. Si usted disca usando un grupo, el primer canal disponible ser usado. Si fueran telfonos, al comunicarse para el grupo todos recibirn la campanada de llamada al mismo tiempo. Con comas usted puede especificar que un canal pertenece a ms de un grupo.
group=1 group=3,5
pri_dialplan: Configura una opcin necesaria para algunos switches (centrales y operadoras) que requieren que un plan de discado sea pasado. Esta opcin es ignorada por la mayora de los equipos. Opciones vlidas son private, national y international
pri_dialplan = unknown
prilocaldialplan: Configura una opcin necesaria para algunos switches (centrales y operadoras). Puede ser necesario en canales de tipo EuroISDN
prilocaldialplan = unknown
Ex
clu
Pista: Todas las implementaciones que hice en Brasil, principalmente usando ruteadores Cisco caern en EuroISDN y Qsig. Las conexiones a la red pblica, normalmente son no estndar EuroISDN.
siv
op
ar
switchtype = EuroISDN
aV
5ess: Lucent 5ESS euroisdn: EuroISDN national: National ISDN dms100: Nortel DMS100 4ess: AT&T 4ESS Qsig: Q.SIG
ice
nt
eM
igu
el
switchtype: Configura el tipo de Sealizacin usado para la lnea PRI. Los valores aceptables son:
Pe
re zP
ar ed es
language: Conecta la internacionalizacin y configura el lenguaje. Este recurso ir a configurar los mensajes del sistema para un dado lenguaje. Ahora el recurso esta ya preparado, Ingles es el nico lenguaje que fue completamente grabado para la instalacin estndar de Asterisk.
Pista: Normalmente usamos unknown. en algunos casos cuando no configuramos unknown la operadora recibe unos ceros de ms. overlapdial: el overlap dial es usado cuando se desea pasar dgitos luego del establecimiento de la conexin. Normalmente esta asociado a pasajes de nmero en bloque (overlapdial=no) o dgito a digito (overlapdial=yes). Normalmente es usada la opcin en bloque con la operadora. signaling: Configura el tipo de sealizacin para los siguientes tipos de definicin de canal. Estos parmetros deben coincidir con los definidos en el archivo /etc/zaptel.conf. Las correctas a escoger son las basadas en el hardware disponible. En una red ISDN Existen dos tipos de sealizacin.
usecallerid: Habilita o deshabilita la transmisin del identificador de llamadas para los siguientes Canales. (Si/No). Pista: Si su sistema precisa de dos timbrazos antes de atender, experimente usar usecallerid=no este va a atender de inmediato. hidecallerid: Configura si va a ocultar el CallerID. (Si/No) calleridcallwaiting: Configura si va a recibir la identificacin de llamadas durante una indicacin de espera de llamada.
Ex
clu
Existen varias opciones de identificacin de llamada. Algunas opciones pueden ser desconectadas. La mayor parte est habilitada por default.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
pri_cpe: Use la sealizacin PRI como CPE/Client/User/Slave. es usado para terminar una lnea PRI en canales de Asterisk. Esta es la sealizacin ms simple. Si usted pidi el circuito de una red pblica, debe funcionar de inmediato. Si usted se va a conectar a una central, cuidado, es comn que la central estaa configuradas como CPE tambin, pues es el caso ms comn. En este caso pesara al tcnico responsable por la central para que l configure la central telefnica a la cual usted se va a interconectar como Master (La nomenclatura cambia de fabricante a fabricante, algunos se refieren como Master/Slave, otros como Host/User y otros como Network/Client, asegure se de que usted consiga hablar la misma lengua que el tcnico de la central).
ar ed es
callerid: Configura el string de callerID para un dado canal. Esta llave recibe un string formateado apropiadamente conteniendo el nombre y el telfono a ser suprimido como CallerID. El originador puede ser configurado como asreceived en interfaces de tronco para pasar el CallerID recibido adelante.
usecallerid => yes hidecallerid => no
Explicacin: Como el supresin del eco funciona? La mayora de los algoritmos de supresin de eco opera generando mltiples copias de Seal recibiendo, cada una atrasada por un pequeo espacio de tiempo. Este pequeo flujo es conocido como tap. El nmero de taps determina el tamao de atraso de eco que puede ser cancelado. Estas copias atrasadas son entonces ajustadas y substradas de la seal original recibida. El truco es ajustar la seal atrasada para exactamente el necesario, de forma de remover el eco y nada ms que eso. Los mtodos usados en determinar el peso de tap o factores de escalonamiento y el que distingue uno de otro. echocancelwhenbridged: Habilita o deshabilita el supresin de eco durante una llamada, puramente TDM. En principio, las llamadas puramente TDM no deberian requerir supresin de eco, ms frecuentemente el desempeo del audio es mejorado. Formato: yes/no. rxgain: Ajusta el loop de recibimiento. Esto puede ser usado para aumentar o disminuir el volumen de entrada y compensar diferencias de hardware. Formato: Porcentual de capacidad -100% 100%.
Ex
clu
siv
op
ar
aV
ice
echocancel: Deshabilita o habilita supresin de eco. Es recomendable que permanezca conectado. Acepta yes (128 taps) , no o el nmero de taps que pueden ser 16, 32, 64, 128 o 256. Cada tap es una muestra de un flujo de datos. En un T1 esto es 1/8000 en un segundo. De acuerdo con el nmero de taps esto es igual a 2,4,6,8,16 o 32 ms de compresin.
nt
eM
igu
el
Estas opciones ajustan ciertos parmetros de Asterisk que afectan la calidad del audio en Canales zapata.
Pe
re zP
ar ed es
Importante: Apenas lneas como PRI pueden transmitir la identificacin de llamadas. Las operadoras exigen que usted configure su CallerID de acuerdo con la numeracin que usted recibe de 10 dgitos. Si usted no pasa el CallerID con la numeracin correcta su llamada no es completada, mas ahora usted consigue recibir llamadas.
txgain: Ajusta la transmisin. Esto puede ser usado para levantar o disminuir el volumen de salida para compensar diferencias de hardware. Recibe el mismo argumento de rxgain.
echocancel=yes echocancelwhenbridged=yes txgain=-10% rxgain=10%
Normalmente cuando yo proyecto una intercomunicacin entre ruteadores (podemos extrapolar este concepto para Asterisk) y centrales telefnicas con la red pblica yo procuro usar la sealizacin PRI. Normalmente la integracin es simple y rpida. Si usted tuviera disponible PRI, no escoja otra. Si usted no tuviera esta disponible, vea el que es preciso para conseguirlo, Algunas centrales precisan de placas especficas y licenciamiento de software. Asterisk se comporta exactamente como un ruteador en el momento de integrar la red pblica o a otras centrales telefnicas.
Ex
clu
siv
op
accountcode=financiero amaflags=billing
ar
aV
accountcode: Configura el cdigo de cuenta para las llamadas colocadas en el canal. El cdigo de cuenta puede ser cualquier string alfanumrico.
ice
nt
eM
igu
el
Pe
re zP
amaflags: Configura las AMA flags afectando la categorizacin de las entradas al registro de llamadas. Acepta estos valores:
ar ed es
Estas opciones cambian la manera en que las llamadas son grabadas en un registro detallado de llamadas (CDR Call Detail Records).
busydetect: Intenta detectar una seal estndar en lneas analgicas FXO, FXS e E+M. (En lneas Digitales T1 y E1 usando CAS (Channel Associated Signaling) sealizaciones analgicas como E+M, immediate start e wink start). callprogress: Al habilitar call progress el Asterisk ir a intentar monitorear el estado de la llamada y detectar ocupado, campanilla y lnea activa. Este recurso solo funciona con tonos de telfonos americanos.
callprogress=no busydetect=yes
Estas opciones habilitan o deshabilitan recursos avanzados en lneas FXS. adsi: (Analog Display Services Interface). Es un conjunto de estndar de la industria de Telecom. Fue usado por algunas compaas telefnicas para ofrecer servicios como compras de pasajes. Poco comn en Brasil, la opcin habilita o deshabilita el soporte a ADSI. cancallforward: Habilita o no el siga-me de llamadas. Siga-me es habilitado con *72 e desactivado con*73. immediate: Cuando el Asterisk est en el modo immediate, en vez de proveer el tono de discado, este inmediatamente salta para la extensin s. Este recurso puede ser usado para crear una hotline. threewaycalling: Configura si va a ser permitido conferencia de a tres de aquel canal
mailbox: Este comando puede dar un mensaje avisando al usuario de que hay un mensaje esperando en el buzn de voz. Este mensaje puede venir por medio de una Seal audible, o visual si el telfono lo soporta. Tiene como argumento el nmero de casilla de buzn de voz.
Ex
clu
siv
transfer: Habilita o deshabilita la transferencia usando la tecla flash. Para usar esta opcin, threewaycalling debe estar configurado para yes.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
v23 dtmf
cidsignalling=bell
cidstart: Especifica lo que sealiza el identificador de llamada, inversin de polaridad o campanilla. ring = un tono de campanilla sealiza el incio polarity = Inversin de polaridad sealiza el incio
Ejemplos:
Unicall/[g]<identificador>[c][r<cadence> <identificador>- Identificador numrico para el nmero de canal fsico del canal selecionado. [g] Identificador de grupo en vez de canal [c] Peide confirmacin de respuesta. Un nmero no es considerado respondido Hasta que la parte llamada presione # [r] Campanilla personalizada. [cadence] un entero de uno a cuatro.
Ejemplos:
Unicall/2 Unicall/g1 - Canal 2 - Primer canal disponible en el grupo 1
Ex
clu
Los Canales UNICALL son configurados en el archivo unicall.conf usan el siguiente formato:
siv
op
ar
aV
ice
nt
<identificador>- Identificador numrico para el nmero de canal fsico del canal selecionado. [g] Identificador de grupo en vs de canal [c] Pide confirmacin de respuesta. Un nmero no es considerado respondido hasta que la parte llamada presione # [r] Campanilla personalizada. [cadence] un intero de uno a cuatro.
eM
igu
el
Pe
Zap/[g]<identificador>[c][r<cadence>
re zP
ar ed es
cidstart=ring
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
5.1 Objetivos
5.2 Introduccin
Ex
En este captulo vamos a aprender algunos conceptos generales sobre VoIP. Esto es importante, pues de aqu en adelante parte de la telefona, principalmente basada en Asterisk ser canalizada por voz sobre IP. Por eso es importante que exista un entendimiento bsico de esta tecnologa.
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
remocin de puestos son ms simples que con la telefona tradicional. Algunas personas han dicho que escogern telefona IP usando Asterisk por la libertad de hacer las configuraciones ellas mismas, sin tener que depender de un servicio externo, lo que es comn con centrales de telefona tradicionales. Otro punto importante es el uso de aplicaciones de telefona. Este es, en mi opinin, el motivo nmero uno de la adopcin de VoIP. Movilidad, Unidad de Respuesta Audible, Llamada en espera y la Integracin Telefona- Ordenador, son econmicos y fciles de implementar. El poder de estas aplicaciones en un pas, en donde el telfono llega en zonas en que Internet todava no ha llegado es de extrema importancia. Algunas aplicaciones que estn creciendo rpidamente en telefona IP son:
Ex
clu
siv
Otro punto interesante es la posibilidad de integrar Call-Centers distantes, permitiendo el uso optimizado de los agentes de telefona, independiente de la Zona. Es posible tambin usar agentes trabajando en casa ligados al mismo Call-Center. Piense, usted puede tener un Call-Center que habla 10 lenguas, con personas en 10 lugares diferentes del mundo atendiendo para usted.
op
ar
aV
ice
Usted puede reducir drsticamente el costo de un Call-Center usando voz sobre IP. Mas all de que Asterisk posea los recursos principales para Call-Centers activos, tales como: discado, grabacin y billing, Asterisk posee una grande gama de recursos para implementar Call-Centers receptivos y CRM, como son las llamadas en espera, grabacin, unidad de respuesta automtica, sintetizacin y reconocimiento de voz y billing avanzado. Incluso hasta una interface TAPI (Microsoft Telephony API) est disponible.
nt
eM
igu
el
Pe
re zP
ar ed es
principalmente las operadoras de telefona celular ofrecen ese servicio. Este tipo de servicio depende de reglamentaciones, pero pensando en VoIP, es posible establecer un nmero en cada ciudad (0800) donde el usuario llama, coloca el nmero de su tarjeta y habla con cualquier lugar del mundo usando VoIP, sin tener que discar 0800.
el
Pe
re zP
ar ed es
Formato de Archivo API
El punto fundamental de la arquitectura de Asterisk es que esta funciona como un gateway de media entre todos estos protocolos y no solamente como un proxy de sealizacin. Con esto, un canal puede estar configurado en IAX2 con codec GSM y se puede comunicar con otro canal configurado con SIP y Codec G.711. En los captulos siguientes vamos a explicar un poco de las caractersticas de cada uno de estos protocolos, analizar en que momento es aplicado cada uno de ello y cuando es recomendable. En los prximos dos captulos daremos un mayor nfasis a los dos ms utilizados que son el SIP (Sesin Initiated Protocol) y el IAX (Inter Asterisk Exchange).
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
Figura 5-2 Distribucin de los protocolos de VoIP dentro del modelo OSI.
Ex
En la capa de sesin los CODECs definen el formato de presentacin de voz con sus diferentes variaciones de compresin.
clu
siv
En la capa de sesin entran los protocolos de voz sobre ip propiamente dichos, H323, SIP, MGCP, IAX e SCCP.
op
ar
En la capa de transporte, la mayor parte de estos protocolos usa el RTP/RTCP, siendo el primero un protocolo de media y el segundo un protocolo de control. La excepcin es IAX, que implementa un transporte de medio propio. Todos ellos usan UDP para transportar la voz.
aV
ice
nt
Como se puede ver en la figura de arriba, la voz sobre IP esta compuesto de diversos protocolos envolviendo varias capas del modelo OSI. De cualquier forma, VoIP es en verdad una aplicacin que funciona sobre las redes IP actuales. Estaremos aqu tratando principalmente las capas de transporte, sesin, presentacin y aplicacin.
eM
igu
el
Pe
re zP
ar ed es
5.5.2 IAX
Protocolo abierto de Asterisk todava no ratificado como una RFC. El IAX es eficiente en ancho de banda, su modo conocido como trunked permite que este use una nica cabecera para el pasaje de varias llamadas. Otro punto fuerte de IAX es el hecho de usar apenas el puerto UDP 4569 para sealizacin y audio. Con esto se torna simple la configuracin de los Firewalls y de NAT.
5.5.3 MGCP
Es un protocolo para ser usado en conjunto con el H323, SIP y IAX. gran ventaja es la escalabilidad. Toda la inteligencia es implementada los Call Agent contrarrestando a los gateways. Simplifica mucho configuracin. Puntos fuertes: manejo centralizado, puntos flacos, protocolo es poco adoptado todava.
siv
Hace
op
ar
Ex
clu
llama
aV
ice
nt
Muy usado en voz sobre ip. Esencial en la conectividad con proyectos ms antiguos usando ruteadores Cisco o gateways de voz. H323 todava es estndar para proveedores de PBX y ruteadores, hoy ellos comienzan a adoptar el SIP. Excelente para videoconferencia. Puntos fuertes, larga adopcin en el mercado, estandarizacin por la ITU. Puntos flacos: complejo, poco adoptado en telefona IP.
eM
igu
el
Pe
5.5.4 H323
re zP
ar ed es
Su en la el
Existen tres tipos de clientes SIP y IAX. El primero es el user. Los Usuarios pueden hacer llamadas a travs de un servidor Asterisk, pero no pueden recibir llamadas del servidor. Esto es til en una situacin donde usted puede proveer algunos servicios telefnicos al cliente, pero nunca debe poder llamar a ciertos telfonos, tal como es el caso para un proveedor de larga distancia. El segundo es el peer. Un peer es un cliente para el cual usted puede pasar las llamadas, pero que usted nunca va ha recibir llamadas de este. Esto puede ser til para tener un telfono que solo reciba llamadas, o pasar llamadas a un servidor Asterisk de uso especial como por ejemplo un buzn de voz. Normalmente, el servidor o dispositivo ir precisar ser ambos un user y un peer al mismo tiempo, en este caso, usted lo definira como un friend, que es un atajo para user e peer. Un friend puede ser ambos, enviar y recibir llamadas de un servidor. Un telfono probablemente caer en esta categora, as mismo como un servidor remoto que precise de acceso a sus extensiones.
Los Codecs son usados para convertir una seal analgica de voz en una versin codificada digitalmente. Los Codecs varan en calidad de sonido, banda ancha necesaria y requisitos computacionales. Cada servicio, programa, telfono o gateway, tpicamente, soporta varios codecs diferentes y cuando van a hablar uno con otro negocian que codec es el que van a usar. Algunos codecs como el G.729 necesitan de pagos de royalties para su uso.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
GSM: 13 Kbps iLBC: 13.3 Kbps ITU G.711: 64 Kbps, tambin conocido como alaw/ulaw. ITU G.723.1: 5.3/6.3 Kbps.
ITU G.729: 8 Kbps Speex - 2.15 to 44.2 Kbps LPC10 - 2.5 Kbps
Ex
clu
La eleccin de CODEC depende de varios factores a tener en cuenta, como la calidad de llamada, costo de licenciamiento, uso de banda ancha, resistencia a perdidas de paquetes y necesidad de procesamiento basado en mips (millones de instrucciones por segundo), disponibilidad en Asterisk y en los telfonos. A continuacin presentamos una tabla que compara los principales codecs segn estos parmetros. La calidad de los cuatro codecs abajo es conocida como Toll, en otras palabras semejantes a la red pblica. g.711 8
siv
op
ar
aV
ice
nt
eM
Los Codecs pueden ser traducidos de uno para otro, pero existen casos donde esto no funciona muy bien. Es posible tambin usar el modo passthru donde Asterisk, no se encarga de traducir los flujos de media que siguen directamente de un telfono para otro. En esta opcin no es posible, grabar, o usar el VoiceMail.
igu
el
Pe
re zP
iLBC (30 ms) 13.33
ar ed es
GSM 06.10 RTE/LTP 13 Gratuito 3%
de 64 Gratuito
~0.35
~13
~18
~5
igu
RTP Header (12)
el
Ethernet Type (2) Voice Payload G.729 coded (20) UDP Header (8) IP Header (20)
Pe
A pesar de los codecs usasen poca banda ancha, tenemos una sobrecarga causada por las cabeceras IP, UDP y RTP de los paquetes de voz. De esta forma podemos decir que la necesidad de ancho de banda vara de acuerdo con los tipos de cabecera comprometidos. Si estamos en una red Ethernet tenemos que adicionar el encabezado Ethernet al clculo, si estamos en una red WAN normalmente vamos a sumarle el encabezamiento Frame-Relay o PPP. Esto aumenta la cantidad de banda ancha utilizada en hasta incluso tres veces. Para ejemplificar vamos a tomar los siguientes ejemplos: Codec g.711 (64 Kbps) Red Ethernet (Ethernet+IP+UDP+RTP+G.711) = 95.2 Kbps
re zP Ex clu
Figura 5.5 Overhead causado por los encabezados
siv
op
ar
aV
ice
nt
eM
ar ed es
Resistencia a perdida de paquetes se refiere a una tasa en la cual el MOS es aproximadamente 0.5 peor que la calidad pico para el CODEC. 2 Uso de CPU se refiere a la cantidad en millones de instrucciones por segundo para codificar y decodificar usando un DSP TI TMS320C54x. Existe una relacin casi directa entre MIPS y la frecuencia del procesador del PC, estos valores sirven como comparativo, pero no es posible hacer una relacin precisa entre nmero de canales y complejidad de CODEC con la frecuencia de la CPU necesaria al servidor Asterisk.
Red PPP (PPP+IP+UDP+RTP+G.711) = 82.4 Kbps Red Frame-Relay (FR+IP+UDP+RTP+G.711) = 82.8 Kbps Codec G.729 (8 Kbps) Red Ethernet (Ethernet+IP+UDP+RTP+G.729) = 31.2 Kbps Red PPP (PPP+IP+UDP+RTP+G.729) = 26.4 Kbps Red Frame-Relay (FR+IP+UDP+RTP+G.729) = 26.8 Kbps Usted puede fcilmente calcular otros codecs usando la calculadora provista por asteriskguide.com. http://blog.asteriskguide.com/bandcalc/bandcalc.php
Por la simplificacin tendramos 33 llamadas simultneas en la casa central, 6 en la filial 1 y 3 en la filial 2: Suponga que estamos usando el CODEC g.729 en las filiales podramos estimar Ancho de banda necesaria para filial 1 (Frame-relay): 26,8*6 = 160,8 Kbps Banda necesaria para a filial 2 (Frame-relay): 80,4 Kbps
Ex
clu
siv
op
ar
PBX en empresas (1 llamada simultnea por 5 ramales) PBX para usuarios residenciales (1 llamada simultnea para 16 ramales)
aV
ice
Una de las simplificaciones ms usadas es estimar el nmero de llamadas simultneas por tipo de usuario. Por ejemplo:
nt
eM
5.10.1 Simplificaciones
igu
Uno de los puntos importantes en el uso de voz sobre IP es determinar la cantidad de banda ancha necesaria para un determinado destino como una filial o un escritorio remoto. Esto tambin es importante en la determinacin de cantidad de llamadas simultneas de Asterisk (que determina el dimensionamiento del propio Asterisk).
el
Pe
re zP
ar ed es
Erlang es una unidad de medida de trfico en telecomunicaciones. En la prctica es usado para describir el volumen de trfico de una hora. Por ejemplo, un grupo de usuarios hacen 20 llamados en una hora con una duracin media de cinco minutos por llamada. Entonces el nmero de erlangs usado para representar es como sigue abajo: Minutos de trfico en una hora: 20 x 5 = 100 minutos Horas de trfico en una hora = 100/60 = 1,66 Erlangs Estas medidas son hechas de forma de permitir a los proyectistas de red entender sus estndares de trfico y establecer el tamao de los entroncamientos necesarios. Nuestro objetivo es normalmente determinar la banda ancha necesaria en un canal de datos o el nmero de enlaces necesarios. Vamos a usar el modelo Erlang B que es el ms comn y determinar cuantas lneas son necesarias en la hora ms ocupada. Uno de los puntos importantes es que el modelo Erlang requiere que se sepa cuantos minutos de llamadas existen en la hora ms ocupada BHT (Busy Hour Traffic). Esto puede ser obtenido de dos maneras: Tarificacin por hora (la ms precisa) o simplificacin (BHT=17% del nmero de minutos llamados durante el da). Otra variable importante es el GoS (grade of service). El GoS define la probabilidad de las llamadas sean bloqueadas por falta de lneas. Podemos arbitrar 5 en 100 (0,05), 1 en 100 (0,01) u otra mtrica deseada.
Ex
clu
Datos de tarificacin: Para la filial A, en la hora ms ocupada fue posible determinar a travs del tarifador que el volumen de trfico es de 100 llamadas con una media de 3 minutos. O GoS (Blocking) arbitrado es de 0,01.
siv
op
ar
Ejemplo 1:
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Para este ejemplo son necesarios 11 enlaces. Codec Seleccionado: g.729 Tipo de canal: PPP Banda estimada para filial 1 : 26.4 X 11 = 290.4 Kbps Ejemplo 2: Para la filial 2, los datos proporcionados por el cliente incluyen apenas el volumen diario de llamadas. En el da ms ocupado tuvimos 1200 llamadas en el lapso de dos minutos y veinte segundos. En este caso vamos a precisar estimar la hora ms ocupada (BHT). Vamos a asumir que la hora ms ocupada es 17% del total del da (es bastante comn el uso del porcentual 17%). El GoS en este caso ser de 0,01. Volumen diario total: 1200 * 140s = 168000 s por da = 46,66 horas Hora ms ocupada = 17% * 46,66 = 7,93
Ex
Usted puede reducir el uso de banda ancha en la red usando compresin de encabezado RTP y el modo IAX Trunked. El cRTP tiene como principal limitacin el soporte apenas en links de WAN como PPP y Frame-Relay, esto significa que en Internet este no puede ser usado. El modo IAX Trunked solo puede ser habilitado entre dos servidores Asterisk y no vale para la comunicacin de un telfono directamente ligado al Asterisk.
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
En este caso la filial 1 precisara de 11.2x11 = 123,2 Kbps en contrapartida de los 290.4 Kbps. Note que esto no es posible en links ADSL, solamente en links frame-relay, mpls (con capa de enlace, framerelay) y canales PPP.
http://blog.asteriskguide.com/bandcalc/bandcalces.php
Ex
clu
En este captulo usted aprendi que Asterisk trata la voz como un canal, as como un canal TDM. Aprendi como todo encaja dentro del modelo OSI. Aprendi a comparar los protocolos H.323 el ms viejo, IAX2 el ms eficiente, y todava poco adoptado y SIP el ms aceptado, pero con problemas serios con NAT. Entendi como diferenciar users (client), peers(server) y friends(ambos). Entendi el concepto de codecs y traduccin de codecs.
siv
op
ar
aV
ice
5.12 Sumario
nt
eM
igu
La primer llamada ocupa 30 Kbps las llamadas siguientes cerca de 9.6 Kbps. Use la calculadora de banda ancha.
el
Pe
re zP
ar ed es
5.13 Cuestionario
1. Cite por lo menos cuatro beneficios del uso de voz sobre IP
6. SIP es hoy el protocolo ms abierto (IETF) siendo implementado por la mayora de los fabricantes. Correcto Incorrecto 7. H.323 es un protocolo sin expresin, poco usado fue abandonado por el mercado en favor de SIP.
Ex
clu
siv
op
5. Dentro del modelo OSI, los protocolos SIP, H.323 e IAX2 estn en la capa de:
ar
aV
Correcto Incorrecto
ice
nt
eM
igu
Correcto Incorrecto
el
Pe
3. Asterisk no puede usar simultneamente recursos de PSTN (Red pblica de telefona y de voz sobre IP, pues los codecs no son compatibles).
re zP
Correcto Incorrecto
ar ed es
2. Convergencia es la unificacin de las redes de voz, vdeo y datos en una nica red y su principal beneficio es la reduccin con los costos de manutencin de redes separadas.
Correcto Incorrecto 8. IAX2 es un protocolo propietario de Digium, a pesar de tener poca adopcin por fabricantes de telfono el IAX es excelente en las cuestiones de: Uso de banda ancha Uso de vdeo Pasaje por redes que poseen NAT Estandarizado por rganos como la IETF e ITU. 9. Users pueden recibir llamadas Correcto Incorrecto
10. Sobre los codecs asignarle lo que es verdadero G711 es el equivalente al PCM (Pulse Code Modulation) y usa 64 Kbps de banda ancha. G.729 es gratuito por esto es el ms utilizado, usa apenas 8 Kbps de banda ancha. GSM viene creciendo, pues ocupa 12 Kbps de banda ancha y no precisa de licencia. G711 u-law es comn en los EUA en tanto a-law es comn en Europa y en Brasil. G.729 es leve y ocupa poca CPU en su codificacin.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Inter-Asterisk eXchange Protocol proporciona control y transmisin de voz sobre redes IP. El IAX puede ser usado con cualquier tipo de medio como voz y vdeo, pero fue pensado principalmente para llamadas de voz. Los objetivos del proyecto do IAX derivarn de la experiencia con los protocolos de voz sobre ip como el SIP (Sesin Initiated Protocol) y el MGCP (Media Gateway Control Protocol) para control y el RTP para el flujo-multimedia (streaming media) y son:
Ex
Todas las referencias al IAX en este documento corresponden a la versin 2, normalmente llamado IAX2.El IAX2 substituyo al IAX y como tal nos vamos a referir a el como apenas IAX de aqu en adelante.
clu
siv
6.2 Introduccin
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Proveer transparencia a NAT (Network Address Translation). Tener la posibilidad de transmitir informaciones sobre el plan
de discado.
Ex
clu
El abordaje del proyecto bsico de IAX multiplexa la sealizacin y mltiples flujos sobre una nica asociacin UDP entre dos hosts de Internet. En esta faceta del proyecto, este se torna de los protocolos, el primero es el protocolo de sealizacin de las sesiones, el segundo el protocolo para transportar los flujos de media. Este abordaje difiere de la arquitectura general de los protocolos basados en la IETF con los protocolos separados para, sealizacin (MGCP e SIP) y flujo de media (RTP/RTCP). Como el IAX usa el mismo protocolo para sealizacin y media en un mismo puerto UDP, este no sufre de los problemas de atravesar dispositivos que realizan NAT (Network Address Translation), como, por ejemplo, ruteadores ADSL.(Caracterstica fundamental para operadoras de telefona IP). El IAX usa el puerto UDP 4569 para comunicar todos los paquetes. El IAX entonces usa un nmero de llamada de 15 bits para multiplexar los flujos sobre una nica asociacin UDP.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
IAX es un protocolo de media y sealizacin peer-to-peer. Eso significa que los dispositivos mantienen conexiones asociadas con las operaciones de protocolo. Con respecto a los componentes de sealizacin de IAX, este tiene ms parecido con el SIP que con el MGCP, que es un protocolo de control de tipo maestro-esclavo.
re zP
ar ed es
intercomunicacin.
IAX protocol
llamada #1 llamada #2
Ex
clu
siv
op
ar
El protocolo IAX emplea un proceso similar de registro y autenticacin al que usa SIP.
aV
ice
El valor 0 es un nmero especial de llamada reservado en cada host. Cuando intenta hacer una llamada, el nmero de llamada de destino todava no es conocido. Un nmero de llamada cero es usado en esta situacin. IAX es un protocolo binario. El diseo fue hecho para mejorar la eficiencia en el uso de banda ancha. Ms all de eso, el protocolo es optimizado para hacer un uso eficiente de banda ancha para cada llamada individual.
nt
eM
igu
el
Pe
Figura 6.1: Mltiples llamadas sobre una nica asociacin de puerto UDP.
re zP
ar ed es
llamada #n
es transmitido de forma confiable. Esto significa que el recipiente debe retornar algn tipo de mensaje al emisor despus del recibimiento. 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
F Nmero
Originador
Llamada
Timestamp OSeqno ISegno
de R Nmero de Llamada
Frame Type
Destino
de
C Subclasse
La figura de arriba ilustra el formato binario de un frame completo. La tabla de abajo describe cada uno de los campos. El bit R es marcado para indicar que un frame est siendo retransmitido. La retransmisin ocurre despus de un perodo de timeout y las retransmisiones son intentadas varias veces, dependiendo del contexto. El nmero de secuencia del flujo de salida OSeqno inicia con 0 y se incrementa de uno en uno. El campo OSeqno es usado para identificar el orden de los frames de media. ISeqno es lo mismo solo que en el sentido de entrada (Inbound).
6.4.2 MiniFrame
El miniframe es usado para enviar el audio o vdeo (media) con un mnimo de sobrecarga de protocolo. El formato del miniframe se describe abajo.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
Descripcin Marcado en 1 indica que es un frame completo Nmero de llamada originador del lado de transmisin del frame Marcado en uno indica que el frame est siendo retransmitido y el valor 0 que es transmisin inicial. Nmero de llamada de destino del lado receptor del frame. Timestamp completo 32-Bits Nmero de secuencia del flujo de salida Nmero de secuencia del flujo de entrada Tipo de Frame Formato de valor de la subclase Subclase
el
1 8
Timestamp
Datos
Figura 6-4 Formato binario de un mini-frame
El timestamp del Mini Frame esta truncado. El cliente generalmente mantiene el timestamp completo de 32 bits. Cuando es enviando el mini frames, los 16 bits de orden ms bajo son enviados en el campo
Pe
re zP
1 2 2 2 2 2 2 2 2 2 2 3 3 9 0 1 2 3 4 5 6 7 8 9 0 1
ar ed es
timestamp. Cuando el timestamp de 16 bits da la vuelta (imprevisto) un frame completo es enviado para permitir que el otro lado sincronice.
Campo F Source Call Number Timestamp Datos Descripcin Marcado en 0 indica que es un frame incompleto Nmero de llamada originador del lado de transmisin del frame completo Timestamp 16-Bits Datos
Una descripcin completa del protocolo IAX puede ser encontrada en http://www.cornfed.com/iax.pdf
ILBC: (veja nota abajo) Una llamada: 56134,91 bps/67.45 pps (28 kbps) Dos llamadas: 98679.11 bps/102.41 pps (49.3 Kbps) De este modo: Para cada llamada adicional: 42544 bps (21.2 Kbps) Sobrecarga estimada IP/IAX2 (1 llamada): 13590 bps (6.7 Kbps) Nmero estimado de llamadas por megabit: 47 G.729 Una llamada: 60124.33 bps/101.26 pps (30.0 Kbps). Dos llamadas: 79496.23 bps/102.85 pps (39.7 Kbps). De este modo: Para cada llamada adicional: 19732 bps (9.6 Kbps)
4
Ex
clu
Para cada llamada adicional: 131837 bps (65.9 Kbps) Sobrecarga estimada de IP/IAX (1 llamada) 32495 bps (16.0 Kbps) Nmero de llamadas por megabit (15)
siv
op
G.711 (ulaw) Una llamada:164333.75 bps /94.26 pps (82.1 kbps) Dos llamadas: 296171.60 bps / 101.46pps (148 Kbps) De este modo:
ar
aV
ice
nt
El IAX permite el uso del modo Trunked. En este caso, cuando ms de una llamada es hecha, el overhead de los encabezados IP es disminuido, encaminando mltiples paquetes de voz de diferentes llamadas en un nico paquete. Con esto la necesidad de banda ancha es reducida. Uno de los buenos estudios sobre la banda ancha usada por el IAX fue publicada por John Todd da Loligo en http://www.voip-info.org/wikiAsterisk+bandwidth+iax2 y es reproducido abajo:4
eM
igu
el
Pe
re zP
El uso de banda ancha en voz sobre IP es modificado por una serie de factores. Desde el CODEC, hasta cuestiones como compresin de encabezados.
ar ed es
Sobrecarga estimada IP/IAX2 (1 llamada): 40572 bps (20.3 Kbps) Nmero estimado de llamadas por megabit: 103 GSM Una llamada: 70958.16 bps/102.13 pps (35.4 kbps) Dos llamadas: 100455.23 bps/102.63 pps (50.2 Kbps) De este modo: Para cada llamada adicional: 29497 bps (14.7 Kbps) Sobrecarga estimada IP/IAX2 (1 llamada): 41461 bps Nmero estimado de llamadas por megabit: 68 LPC10 Una llamada: 43855.44 bps/89.94 pps (21.9 kbps). Dos llamadas: 56059.18 bps/100.81 pps (28.0 kbps) De este modo: Para cada llamada adicional:12203 bps (6.1 Kbps) Sobrecarga estimada IP/IAX2 (1 llamada):31561 bps (15.8 kbps) Nmero estimado de llamadas por megabit: 164 SPEEX: Una llamada: 74817.18 bps/101.06 pps (37.14 kbps) Dos llamadas:109692.68 bps/102.18 pps (54.8 kbps)
Los datos relativos al ILBC difieren un poco de la realidad, porque el ILBC enva frames cada 30 ms y el trunking cada 20 ms. Corrigiendo los resultados (vea ms detalles en el estudio original) se llega a los siguientes nmeros: Para cada llamada adicional 14.6 Kbps, sobrecarga estimada con los encabezados IP/IAX2: 13.4 Kbps, nmero de llamadas por megabit 67. El mejor uso de banda ancha fue obtenido por el LPC10 sin tener en cuenta la calidad de sus llamadas. Ya el G729 mostr que tiene un excelente uso de banda ancha manteniendo una calidad de voz impecable.
Ex
clu
siv
op
Una medicin de 74817.18 bps es reportada como 37.15 kbps pues el link Ethernet del servidor donde esto fue medido es Ethernet FullDuplex (posee un canal de entrada y salida). En una Wan que normalmente es full-duplex tambin la banda ancha va a variar un poco por causa del cambio de encabezado de capa 2. Normalmente en Wan el encabezado es un poco menor que en una LAN.
ar
aV
El uso de banda ancha es influenciado por muchas variables como el nmero de llamadas simultneas, tipo de protocolo de capa 2, el hecho de que la red sea half o full-duplex.
ice
nt
eM
igu
De este modo: Para cada llamada adicional:34875 bps (17.4 kbps) Sobrecarga estimada IP/IAX2 (1 llamada): 39941 bps (19.9 kbps) Nmero estimado de llamadas por megabit:57
el
Pe
re zP
ar ed es
<user>
IAX2/mark:asdf@myserver/6275@default Llame "myserver" usando "mark" como nombre de usuario y adsf como contrasea y pida la extensin 6275 en contexto default. IAX2/iaxphone/s/a llame al "iaxphone" pidiendo respuesta inmediata IAX2/john:[johnrsa]@somewhere.com Llame somewhere.com, usando john como nombre de usuario y una llave RSA como autentificacin. El formato de un nombre de canal
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Identificacin de usuario en punto remoto, o nombre de cliente configurado en iax.conf (opcional) <secret> Contrasea (opcional). Como alternativa puede ser el nombre de archivo de una llave RSA sin la extensin (.key, ou .pub), y dentro de [llaves] como por ej. [elnombredearchivo] <peer> Nombre de servidor al cual se conecta <portno> Nmero de puerto para la conexin en el servidor(opcional). <exten> Extensin en el servidor Asterisk remoto(opcional) <context>: Contexto para usar en el servidor asterisk remoto (opcional) La nica opcin disponible es a que significa pedido <options> para auto-responder.
Pe
re zP
ar ed es
Asterisk soporta telfonos IP basados en IAX como el SNOM y el AIXy y tambin softfones como el idefisk. Para configurar un telfono IAX basta con configurar el archivo iax.conf y el propio telfono. Vamos a abordar en este captulo el IDEFISK que es gratuito y puede ser bajado de Internet a partir de www.asteriskguru.com.
[general] bindport=4569 bindaddr=0.0.0.0 bandwidth=high disallow=all allow=ulaw
Ex
clu
siv
Conectando un softphone IAX al Asterisk Conectando el IAX a un proveedor VoIP basado en IAX Conectando dos servidores a travs de IAX Conectando dos servidores a travs de IAX2 en modo trunking Debugeando una conexin IAX
op
ar
aV
ice
Los escenarios de uso nos van a permitir mostrar el archivo de configuracin de IAX con ms detalles y ensea a configurar el Asterisk en cada una de las situaciones. Las configuraciones relacionadas al IAX son ejecutadas en el archivo iax.conf del directorio /etc/asterisk. Las configuraciones que vamos a mostrar son:
nt
eM
igu
el
Pe
IAX2[mark@192.168.0.1]/14 llame al nmero 14 de usuario mark en la ip 192.168.0.1 IAX2[192.168.10.1]/13 llame al nmero 13 de ip 192.168.10.1
re zP
ar ed es
[guest] type=user context=default callerid="Guest IAX User" ; ; Trust Caller*ID Coming from iaxtel.com ; [iaxtel] type=user context=default auth=rsa inkeys=iaxtel ; ; Trust Caller*ID Coming from iax.fwdnet.net ; [iaxfwd] type=user context=default auth=rsa inkeys=freeworlddialup [2003] type=friend context=default secret=contrasea host=dynamic
En los comandos de arriba deshabilitamos todos los codecs y habilitamos apenas el ulaw (g.711 ulaw). En redes locales es el codec ms indicado pues consume poca cpu de Asterisk. La cuestin de banda ancha con 100 Mbps es secundaria cuando se considera una red local. En una red WAN difcilmente seleccionaramos ulaw
[2003] type=friend context=default secret=contrasea host=dynamic
En los comandos de arriba definimos un friend de nombre [2003], el contexto es el default (por el momento vamos a usar apenas el default).
Ex
clu
disallow=all allow=ulaw
siv
op
Este comando hace que codecs de banda alta como el G711 puedan ser seleccionados. Si usted usa bandwidth=low y selecciona como codec ulaw (g.711 ulaw) el Asterisk dar un mensaje de que ningn codec est disponible.
ar
aV
ice
bandwidth=high
nt
eM
igu
el
Pe
re zP
ar ed es
Host=dynamic va a indicar que el telfono se va a registrar para informar que direccin IP est usando. Hecho esto basta configurar el softphone.
Ex
clu
siv
op
ar
aV
Paso 4: Configure la cuenta de Asterisk haciendo click con el botn derecho sobre el icono de idefisk en la barra de herramientas, o usando ALT+A.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 5: Configure el archivo extensions.conf de forma que usted pueda testear su cliente IAX
[default] exten=>2000,1,Dial(SIP/2000) exten=>2001,1,Dial(SIP/2001) exten=>2003,1,Dial(IAX2/2003)
Ahora usted puede discar entre telfonos basados en SIP y telfonos basados en IAX2.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 2: Habilite el protocolo IAX2 si es necesario en su proveedor En el freeworld dialup entre en extra features (Recursos extras) y haga click en el cuadro de texto de IAX como abajo se muestra:
Ex
clu
Paso 1: Abra una cuenta en su proveedor favorito. Use el freeworlddialup si usted no conoce ninguno, este es gratuito.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
En la lnea de arriba usted se estar registrando con el proveedor con su nombre y contrasea. En el momento de recibir una llamada esta ser encaminada para el ramal 2003.
op
ar
[general] register=>621538:contrasea@iax2.fwdnet.net/2003
aV
ice
Paso 3: Configure el archivo iax.conf para registrar su Asterisk en el proveedor. Adicione las siguientes lneas al archivo. La lnea de abajo debe ser colocada dentro de la seccin [general].
nt
eM
igu
Aviso: Las pantallas y urls frecuentemente cambian de layout y posicin. Navegue para hallar el lugar correcto para habilitar el IAX2.
el
Pe
re zP
ar ed es
Retire el comentario de la seccin [iaxfwd] del archivo iax.conf. Esto es necesario para que ocurra la autentificacin. A travs del uso de llave pblica usted puede tener certeza de que la llamada est siendo recibida de freeworlddialup. Si alguien intenta usar este mismo camino las llaves de autentificacin no van a dar. Paso 4: Testeando la conexin con el proveedor. Para testear la conexin vamos a usar un servicio de proveedor FreeWorldDialup llamado hora correcta. Discando 612 en el proveedor podremos or una URA que dir la hora exacta (en ingls). Para esto vamos a configurar el archivo extensions.conf y adicionar la siguiente lnea en el contexto default.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
Entre a la interfase de lnea de comando de Asterisk, haga un reload y enseguida use el comando:
re zP
exten=>612,1,Dial(IAX2/621538:contrasea@iax2.fwdnet.net/612,20,r)
ar ed es
Paso 1: Configurar el archivo iax.conf del servidor esclavo para: 1.1. Registrarse en el maestro. 1.2. Recibir llamadas del maestro. Paso 2: Configurar el archivo iax.conf del servidor maestro para: 1.3. Recibir llamadas del esclavo. 1.4. Registrarse en el esclavo. Paso3: Configurar el archivo extensions.conf del esclavo: 1.5. Para discar para el maestro. 2. Configurar el archivo extensions.conf del maestro 2.1. Para discar para el esclavo. Vamos a suponer para el ejemplo de abajo que todos los ramales en el servidor maestro comienzan con 20xx y todos los ramales del esclavo comienzan con 22xx.
Ex
clu
siv
Los siguientes pasos tienen que ser hechos para que el servidor esclavo pueda hacer y recibir llamadas del servidor maestro. Para mostrar un ejemplo colocamos todas las llamadas en el contexto [default]. Ms tarde en este material usted va a aprender a colocar las llamadas en contextos ms apropiados.
op
ar
aV
ice
Para configurar un enlace IAX, vamos a usar el concepto de maestroesclavo para tornar ms fcil el aprendizaje.
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 1 - iax.conf del servidor esclavo 1.1 Registrarse en el maestro En el archivo iax.conf
register=>maestro:contrasea@maestro.net.br
Paso 2. Configurar el archivo iax.conf del maestro 2.1 Recibir y hacer llamadas del esclavo y el registro
[esclavo] type=user auth=plaintext context-default secret=contrasea host=dynamic callerid=esclavo trunk=yes notransfer=yes [esclavo]
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
En el archivo iax.conf
type=user auth=plaintext context-default secret=contrasea callerid=esclavo trunk=yes notransfer=yes [2200] type=friend auth=plaintext context-default secret=contrasea callerid=master
register=>esclavo:contrasea@esclavo.net.br
Ex
Vamos a analizar la autentificacin del IAX desde el punto de vista prctico y aprender a escoger las mejores opciones dependiendo de las necesidades de seguridad de la configuracin.
clu
siv
op
exten=>_20XX, Dial(IAX2/${EXTEN})
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
1. Busca el iax.conf para una entrada type-user (o type=friend) con la sesin nombre ([username]); si no la encuentra, recusa la conexin. 2. Si la entrada encontrada tiene configuraciones de tipo deny/allow (negar/permitir), compara la direccin IP del originador de la llamada. Si la conexin no fuese permitida, recusa la conexin. 3. Hace el chequeo de la contrasea (secret) (plaintext, md5 o rsa); si falla, recusa a conexin. 4. Acepta la conexin y enva para el originador para el contexto especifico en la configuracin context= de la entrada en el archivo iax.conf. Si un nombre de usuario no es proporcionado, Asterisk hace lo siguiente: 1. Busca por un type=user (o type=friend) en archivo iax.conf sin un secreto especificado y tambin en las restricciones de tipo deny/allow. Si una entrada es encontrada, acepta la conexin y usa el nombre de la entrada del iax.conf como el nombre de usuario que se esta conectando. 2. Busca por un type=user (o type=friend) en el iax.conf con un secret o llave RSA especificado y tambin verifica restricciones deny/allow . Si una entrada es encontrada, intenta autenticar al que llama usando el secreto especificado o la llave, y si esta es correcta, acepta la conexin y usa el nombre encontrado en el iax.conf como nombre de usuario.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
auth=md5 context=incoming
Si una llamada de entrada tiene un nombre de usuario especificado como: guest iaxtel iax-gateway
Una entrada type=peer o friend en el archivo iax.conf. Una combinacin de los dos.
Ex
clu
op
siv
salida
ar
aV
Usar llaves RSA como sus secretos es una forma de evitar este problema sin crear un usuario guest. Entradas RSA no son adivinbles, otro mtodo es usar restricciones de IP en tantas entradas como sea posible.
ice
pueden
nt
Si ningn usuario ha sido especificado, Asterisk autenticar la conexin como usuario guest (invitado). Entretanto si usted no tuviese un usuario guest en su archivo iax.conf, el usuario que se estuviese conectando, puede especificar el secreto asociado con cualquier otro iax.conf que no tenga una direccin IP restricta. En otras palabras, si usted no tiene una entrada guest en su iax.conf, usted tiene varias entradas con contraseas que pueden ser adivinadas y que van a permitir que el usuario se conecte en el sistema.
eM
igu
el
Pe
tomar
re zP
Entonces el Asterisk intentar autenticar la conexin usando la entrada correspondiente en iax.conf. Si cualquier otro nombre de usuario fuese especificado, la conexin ser recusada.
ar ed es
sus
iax-friend
informaciones
de
Entonces el comando:
Dial(IAX2/iaxtel-outbound/1234)
Conectara al host iaxtel.com, usando el usuario y especificados en el archivo iax.conf para la autentificacin. El comando:
Dial(IAX2/user2:secret2@iaxtel-outbound/1234)
contrasea
Dial(IAX2/iaxtel.com/1234)
El archivo iax.conf posee una gran cantidad d configuraciones y discutirlas una por una seria tedioso y poco til. Vamos a discutir algunas opciones importantes de la sesin [general] las sesiones por peer, user o friend. El archivo de configuracin de IAX es una coleccin de secciones, cada cual representa una entidad dentro del objetivo de IAX (a excepcin de la sesin general). La primera sesin es tpicamente la sesin general. En esta rea, un nmero de parmetros pueden ser configurados afectando todo el
Ex
clu
siv
Si se conectasen al host 192.168.0.1, sin especificar ningn nombre, y si el host pide un secreto, ningn secreto ser proporcionado. Presumiblemente este tipo de entrada seria usada para conexiones entre hosts con alto grado de confianza.
op
ar
aV
Dial(IAX2/iax-gateway/5678)
ice
Nuevamente la conexin seria hecha al host iaxtel.com, aunque ningn nombre de usuario fue especificado. Como ninguna de las entradas en el archivo iax.conf da con la descripcin del canal iaxtel.com la conexin es rechazada.
nt
eM
igu
el
Pe
Tambin se ir a conectar con el host iaxtel.com, pero especificar user2:secret2 como nombre y contrasea respectivamente y esto sobrescribe las entradas en el iax.conf.
re zP
ar ed es
sistema. Especficamente los codecs default, puertos, direcciones, ancho del jitter, bits de TOS y registros.
bindaddr = <ipaddr>
Ex
clu
siv
op
ar
aV
ice
nt
eM
bandwidth = [low|medium|high]
La seleccin de banda ancha inicializa la seleccin de codecs a valores apropiados para una dada banda. Escogiendo High habilita todos los codecs y es recomendado para conexiones de 10Mbps para arriba. Escogiendo mdium elimina los codecs U-law A-law dejando apenas los codecs con 32Kbps o menos (Como MP3 como un caso especial). Esto puede ser usado en conexiones de ancha larga si se desea. El low elimina el ADPCM y MP3, dejando apenas el G723, GSM y LPC10. allow/disallow=[gsm|lpc10|g72 Los comandos "allow" y "disallow" 3.1|adpcm|ulaw|alaw|mp3|slne permiten hacer una sintona fina en la ar|all] seleccin de codecs.
igu
La seleccin de los codecs puede ser hecha en la sesin [general] o en cada entidad individualmente.
el
Pe
re zP
ar ed es
Ex
jitterbuffer=<yes/no> Habilita o deshabilita el buffer de jitter. Dropcount=<nmero> - Esto representa el nmero mximo de frames que pueden estar atrasados en los ltimos dos segundos. Se recomienda setear este nmero abajo de 3 (1,5% dos frames dropeados). Maxjitterbuffer=<nmero> - El tamao de buffer del jitter. Normalmente esta abajo de 100 ms. Maxexcessbuffer=<nmero> - Si el atraso de la red mejora despus de un perodo de jitter alto, es posible que el buffer sea mayor que lo necesario. Entonces si el buffer estuviese por encima del maxexcessbuffer, Asterisk empezar a reducirlo
clu
siv
op
Jitter tambin conocido como variacin de atraso es uno de los grandes responsables en la reduccin de calidad de voz. Un buffer de jitter es usado para compensar estas variaciones de atraso. Un jitter pequeo de menos de un frame de compresin (en ms) normalmente no es un problema, pero un jitter excesivo puede sin un buffer de jitter causar fallas en el audio. El buffer de jitter permite reducir estas variaciones a causa de un atraso mayor. De una forma general es importante mantener el atraso abajo de 150 ms y el delay abajo de 20 ms. Cuando usted configura un buffer de jitter el naturalmente va a atrasar el paquete en el exacto tamao del buffer. Es importante pensar en un embotellamiento de atraso que usted puede consumir en la configuracin de un buffer de jitter.
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Minexcessbuffer=<nmero> - Este parmetro representa e espacio mnimo reservado para el buffer del jitter, si el buffer bajara de este nmero, Asterisk comenzar a aumentarlo.
El parmetro de abajo permite que los paquetes de Asterisk sean marcados para tratamiento especial en switches y ruteadores. Este parmetro es parte del campo TOS del encabezado IP que es seteado bit a bit. Para setear el TOS usted usa una combinacin de los siguientes, por ejemplo: tos=0x10 tos=0x08 tos=0x04 tos=0x02 tos=0x01 Ejemplo:
tos=0x05
Ex
clu
siv
op
ar
aV
ice
nt
eM
Las reglas para permitir y negar (permit y deny) pueden ser aplicadas a usuarios, permitiendo a ellos conectarse de determinadas direcciones IP y no de otras. Las reglas son interpretadas en secuencia y son todas evaluadas en una dada direccin IP, con el resultado final siendo la decisin (Diferente de las listas de control de acceso Cisco y de la mayor parte de los Firewalls). Ejemplo: permit=0.0.0.0/0.0.0.0 deny=192.168.0.0/255.255.255.0 Esto negar a cualquier en una 192.168.0.0 con mascara de 24 bits (clase C) deny=192.168.0.0/255.255.255.0 permit=0.0.0.0/0.0.0.0
igu
Usted est diciendo que quiere alta confiabilidad junto con el bit CE habilitado.
el
Pe
re zP
ar ed es
= = = = =
low delay high throughput high reliability ECT bit set CE bit set
callerid = <callerid>
inkeys = key1[:key2...]
Parmetros de billing: accountcode = <code> amaflags = [default|omit|billing| documentation]: Estos parmetros afectan la generacin de detalles de llamadas. El primero configura el cdigo de contabilizacin para registros recibidos con el IAX. El cdigo de contabilizacin puede sobrescribir la base por usuario para llamadas entrantes. El amaflags controla como el registro es etiquetado
Ex
clu
siv
op
ar
aV
ice
Secret = <secret>
nt
eM
igu
el
Pe
re zP
ar ed es
auth = [md5|plaintext|rsa]
Esto no negar a nadie ya que la regla final permite todos, de este modo sobrepasa la negacin. Si ninguna regla estuviese listada, cualquiera puede conectarse de cualquier lugar. Usted puede sobrescribir el identificador de llamada pasado por el usuario para usted (Si el elige enviarlo) de manera que el siempre este correcto desde el punto de vista de su servidor. Usted puede seleccionar que mtodos de autentificacin son permitidos. Mltiples mtodos pueden ser especificados, separados por comas. Si md5 o texto simple (plaintext) es seleccionado un secreto (secret) debe ser proporcionado. Si la autentificacin RSA fuera especificada, entonces uno o ms nombres de llaves deben ser especificados con inkeys. Si ningn secreto y ningn mtodo de autentificacin fuera especificado, entonces ninguna autentificacin es necesaria. La lnea secret especifica el secreto compartido para los mtodos md5 o autentificacin en texto simple. No sugerimos la autentificacin en texto simple excepto para debugging La lnea "inkeys" especifica que llaves nosotros podemos usar para autenticar un peer remoto. Los archivos de llave estn en /var/lib/asterisk/keys/<name>.pub y son llaves pblicas.
(omit hace que ningn registro sea escrito. billing y documentacinetiquetan los registros como registros para cobranza y documentacin respectivamente y defaultselecciona el default del sistema).
ar ed es
----Jit 60
igu
Username 8590
el
ID (Lo/Rem) 00002/26968
Pe
re zP
vtsvoffice*CLI> iax2 show peers Name/Username Host Mask 8584 (Unspecified) (D) 255.255.255.255 UNKNOWN 8564 (Unspecified) (D) 255.255.255.255 UNKNOWN 8576 (Unspecified) (D) 255.255.255.255 UNKNOWN 8572 (Unspecified) (D) 255.255.255.255 UNKNOWN 8571 (Unspecified) (D) 255.255.255.255 UNKNOWN 8585 (Unspecified) (D) 255.255.255.255 UNKNOWN 8589 (Unspecified) (D) 255.255.255.255 UNKNOWN 8590 8.8.30.43 (D) 255.255.255.255 ms) 3232 (Unspecified) (D) 255.255.255.255 UNKNOWN 9 iax2 peers [1 online, 8 offline, 0 unmonitored]
aV
ice
nt
eM
op
ar
Port 0 0 0 0 0 0 0 4569 0
Status
Ex
clu
siv
OK (16
iax2 debug
Observe en el debug destacado el inicio y el fin de una llamada. Entre las llamadas observe las comunicaciones de registro de canal y el sistema de control da atraso y jitter (poke, pong) de donde vienen las estadsticas vistas en show channels.
vtsvoffice*CLI> iax2 debug IAX2 Debugging Enabled Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ Timestamp: 00003ms SCall: 26975 DCall: 00000 [8.8.30.43:4569] USERNAME : 8590 REFRESH : 60 Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGAUTH Timestamp: 00009ms SCall: 00003 DCall: 26975 [8.8.30.43:4569] AUTHMETHODS : 2 CHALLENGE : 137472844 USERNAME : 8590 Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: REGREQ Timestamp: 00016ms SCall: 26975 DCall: 00003 [8.8.30.43:4569] USERNAME : 8590 REFRESH : 60 MD5 RESULT : f772b6512e77fa4a44c2f74ef709e873 Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: REGACK Timestamp: 00025ms SCall: 00003 DCall: 26975 [8.8.30.43:4569] USERNAME : 8590 DATE TIME : 2006-04-17 16:03:00 REFRESH : 60 APPARENT ADDRES : IPV4 8.8.30.43:4569 CALLING NUMBER : 4830258590 CALLING NAME : Flavio Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: Timestamp: 00025ms SCall: 26975 DCall: 00003 [8.8.30.43:4569] Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: Timestamp: 00003ms SCall: 00006 DCall: 00000 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: Timestamp: 00003ms SCall: 26976 DCall: 00006 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: Timestamp: 00003ms SCall: 26976 DCall: 00006 [8.8.30.43:4569] RR_JITTER : 0 RR_LOSS : 0 RR_PKTS : 1 RR_DELAY : 40 RR_DROPPED : 0 RR_OUTOFORDER : 0 Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: Timestamp: 00003ms SCall: 00006 DCall: 26976 [8.8.30.43:4569]
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
ACK
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW Timestamp: 00003ms SCall: 26977 DCall: 00000 [8.8.30.43:4569] VERSION : 2 CALLING NUMBER : 8590 CALLING NAME : 4830258590
: : : : :
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ Timestamp: 00007ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] AUTHMETHODS : 2 CHALLENGE : 190271661 USERNAME : 8590 Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW Timestamp: 00003ms SCall: 26977 DCall: 00000 [8.8.30.43:4569] VERSION : 2 CALLING NUMBER : 8590 CALLING NAME : 4830258590 FORMAT : 2 CAPABILITY : 1550 USERNAME : 8590 CALLED NUMBER : 8580 DNID : 8580 Tx-Frame Retry[-01] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: ACK Timestamp: 00003ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP Timestamp: 00063ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] MD5 RESULT : 57cc5c48affba14106c29439944413a1 Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACCEPT Timestamp: 00054ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] FORMAT : 1024 Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 002 Type: CONTROL Subclass: ANSWER Timestamp: 00057ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 002 Type: VOICE Subclass: Timestamp: 00090ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: Timestamp: 00054ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 003 Type: IAX Subclass: Timestamp: 00057ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: IAX Subclass: Timestamp: 00090ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: VOICE Subclass: Timestamp: 00210ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Tx-Frame Retry[-01] -- OSeqno: 004 ISeqno: 003 Type: IAX Subclass: Timestamp: 00210ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX Subclass: Timestamp: 02083ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 004 Type: IAX Subclass: Timestamp: 02083ms SCall: 00004 DCall: 26977 [8.8.30.43:4569] RR_JITTER : 0 RR_LOSS : 0 RR_PKTS : 1 RR_DELAY : 40 RR_DROPPED : 0 RR_OUTOFORDER : 0
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
op
Ex
clu
siv
Subclass: ACK
Timestamp: 02083ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: IAX Subclass: HANGUP Timestamp: 08693ms SCall: 26977 DCall: 00004 [8.8.30.43:4569] CAUSE : Dumped Call
6.11 Sumario
En este captulo usted aprendi a diferenciar los puntos fuertes y flacos del IAX. Fue posible demostrar los escenarios de uso do Asterisk como cliente usando un softphone y entroncamiento de dos PBX con IAX trunked. Fue demostrado que el modo trunked economiza banda ancha enviando diversas llamadas en un mismo paquete evitando la creacin de nuevos paquetes y encabezados. Fue posible ver que la cantidad de banda ancha usada depende de los codec, como tambin de las configuraciones. Aprendi a configurar el archivo iax.conf para conectarse a telfonos y proveedores y pudo usar algunos de los comandos de consola relacionados al Asterisk.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
6.12 Cuestionario
1. Podemos citar como principales beneficios de IAX la economa de banda ancha y facilidad de pasar por Firewalls con NAT. Correcto Incorrecto 2. En el protocolo IAX los canales de sealizacin y media pasan separados. Esta afirmacin es: Correcta Incorrecta 3. El IAX emplea los siguientes tipos de frames Frame Completo Frame Incompleto Mini-Frame Trunked Frame
Verdadero Falso
6. Cuando el IAX es usado en modo trunk, apenas un encabezado es usado para transmitir mltiples llamadas. La afirmacin de arriba es: Correcta Incorrecta 7. El protocolo IAX2 es el ms comn para conectar proveedores de telefona IP, pues pasa fcil a travs de NAT. La afirmacin de arriba es: Correcta
Ex
clu
5. Es importante tener la misma configuracin para el payload de codec (20 30 ms) que la sincronizacin de los frames en el modo trunked (20 ms estndar)
siv
op
ar
aV
ice
nt
eM
4. La banda ancha usada por el protocolo IAX es la suma de la carga de voz (payload) ms los encabezados (Marque todas las que se aplican)
igu
el
Pe
re zP
ar ed es
Incorrecta 8. En un canal IAX como el de abajo, la opcin <secret> puede ser tanto una contrasea como una ___________________.
IAX/[<user>[:<secret>]@]<peer>[:<portno>][/<exten>[@<context>][/<options>]]
9. El contexto es adicionado para cada cliente IAX, esto permite que diferentes clientes posean diferentes contextos. Se puede pensar en un contexto como una clase de ramal donde el cliente ser colocado. La afirmacin es: Correcta Incorrecta
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
SIP (Sesin Initiated Protocol) es un protocolo basado en texto, similar al HTTP y SMTP, diseado para iniciar, mantener y terminar sesiones de comunicacin interactiva entre usuarios. Tales sesiones incluyen, voz, vdeo, chat, juegos interactivos y realidad virtual. Fue definido por la IETF y se viene tornando el estndar de facto en telefona IP.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Servidor Proxy Recibe pedidos de conexin de un UA y transfiere este para otro servidor proxy si la estacin en particular no est en su administracin. Servidor de Redireccionamiento Recibe pedidos de conexin y los enva de vuelta al emisor incluyendo los datos de destino en vez de enviarlos directamente l a la parte llamada.
Servidor de localizacin recibe pedidos de registro de un UA y actualiza la base de datos de terminales con ellos. Todas las sesiones del servidor (Proxy, Redirect y Location) estn tpicamente disponibles en una nica mquina fsica llamada proxy server, que es responsable por la manutencin de la base de datos de clientes,
Ex
clu
siv
UA (user agent) terminal de red SIP (telfonos SIP, o gateway para otras redes), contiene UAC y UAS.
op
ar
UAS (user agent server) servidor que responde la sealizacin SIP de un UAC.
aV
ice
UAC (user agent client) cliente o terminal que inicia la sealizacin SIP.
nt
eM
igu
el
Pe
re zP
ar ed es
manutencin
trmino
8500@200.180.1.1
Ex
clu
siv
op
Antes que un telfono pueda recibir llamadas, este precisa registrarse en una base de localizacin. Es en este lugar donde el nombre ser asociado a la direccin IP donde el telfono se encuentra. En nuestro caso usamos como nombre el ramal 8500. Podra ser tambin una direccin con formato sip:flavio@voffice.com.br.
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Pe nt eM igu op ar aV ice
INVITE 8500@200.180.4.168 OK 200 ACK 8500@200.180.4.168 Flujo de Media
clu
siv
Ex
el
Location y Registrar Server sip:8500@200.180.4.168
re zP
ar ed es
sip:8500@200.180.4.168
siv
op
Es importante resaltar que Asterisk no es en si un SIP Proxy ni un SIP Redirector. Asterisk es un Media Gateway. l podra ser ms bien descrito como un B2BUA, (back-to-back user agent). En otras palabras l conecta dos canales SIP como si fuesen canales de un PBX. Es posible usar en conjunto con Asterisk un SIP Proxy como es el SIP Express Router http://www.iptel.org/ser/.
Ex
n) P i SI zac P ) li T a R udio se ( (A
ar
aV
ice
nt
eM
igu
el clu
(s e na SIP liz ac i n)
Pe
TP ) R dio u (A
re zP
ar ed es
Los mensajes bsicos enviados en un ambiente SIP son: INVITE pedido de establecimiento de conexin. ACK reconocimiento de INVITE por el receptor final del mensaje. BYE trmino de la conexin. CANCEL trmino de una conexin no establecida.
2XX pedido completado con xito (200 OK). 3XX encaminamiento de llamada, el pedido debe ser diseccionado para otro lugar. (302 Moved temporarily movido, 305 usa proxy).
Ex
clu
siv
op
5XX error de servidor (500 Error interno del servidor, 501 No implementado).
ar
aV
ice
nt
eM
igu
el
Pe
re zP
Las respuestas a los mensajes de SIP son en formato texto como en el protocolo http. Aqu estn las respuestas ms importantes. (100intentando, 180
ar ed es
Los parmetros bindaddr y bindport son opcionales y controlan el puerto y la interfase IP donde el Asterisk ir a recibir sus conexiones. Si usted configura bindaddr=0.0.0.0 el servidor recibir conexiones en todas sus interfaces.
realm=voffice.com.br
Ex
bindaddr=0.0.0.0 bindport=5060
clu
siv
Abajo sigue una explicacin sobre los parmetros ms comunes en la sesin [general] del archivo sip.conf.
op
ar
aV
La otra manera en que las llamadas SIP de entrada se inicien con las sesiones [xxx] de este archivo, es examinar la direccin IP de pedido que est llegando y ojear la sesin peer [xxx] que tenga el valor de host correspondiente. Si host=dynamic, entonces ninguna correspondencia ser encontrada hasta que el cliente SIP este registrado.
ice
nt
eM
igu
Donde xxx es el nombre de usuario asociado con el cliente SIP, o es un nombre arbitrario usado por otros archivos de configuracin para referirse, a este dispositivo SIP. Tpicamente si un telfono SIP tiene un nmero de extensin de 123, entonces su entrada correspondiente en este archivo ir a iniciarse con [123]. Note que usted todava tiene que habilitar la extensin 123 en su plan de discado para alcanzar este telfono.
el
Pe
re zP
ar ed es
Este parmetro habilita el uso de registros SRV en el DNS. Asterisk usa apenas el primer registro retornado. Para acceder servidores por el nombre de dominio usted precisar colocar este parmetro en yes.
useragent=Asterisk PBX 1.2.7
Este comando altera el campo useragent de encabezado SIP identificando el tipo de agente usuario usado.
tos=lowdelay
Los parmetros lowdelay, throughput, reliability, mincost y none estn obsoletos porque setean el tipo de servicio de acuerdo con el antiguo modelo de precedencia definidos en las RFC 791 y RFC 1349. Los parmetros TOS setean bytes correspondientes al tipo de servicio en el encabezado del paquete IP. Este campo es responsable de informar a los ruteadores como se debe tratar estos paquetes en la red y aplicar QoS (calidad de servicio). Este campo ya sofri varias modificaciones. Ms recientemente la nomenclatura conocida como DSCP (Differentiated Services Code Point RFC 2474 y RFC 2475) ha sido la ms usada. Usando valores numricos (decimales) usted puede setear cualquier valor en el sistema antiguo o nuevo.
tos=160
tos=160
Como usted puede notar existe una compatibilidad de la nueva RFC con la antigua. S usted setea auto-qos voip en un switch Cisco (que soporte el recurso) el automticamente priorizar paquetes con este marcado en los encabezados. Existe una excelente explicacin de los valores http://www.cisco.com/warp/public/105/dscpvalues.html de tos en:
Ex
clu
siv
op
ar
aV
ice
Para simplificar los valores ms usados para los paquetes de voz son:
nt
eM
igu
el
Pe
re zP
ar ed es
Telfono Tpico
[4101] type=friend context=default callerid=Flvio E. Goncalves<8550> host=dynamic canreinvite=yes dtmfmode=info mailbox=1234@default disallow=all allow=ulaw allow=g729 secret=contrasea
Ex
clu
siv
op
ar
aV
ice
nt
Configurando un cliente SIP con el SIP Server: Esto significa que clientes SIP (telfonos, softones) se registran para el servidor Asterisk y configuran sesiones SIP con el servidor, llamadas y respuestas a llamadas.
eM
igu
el
Pe
re zP
ar ed es
Ejemplo:
exten=> _41XX,1, Dial(SIP/${EXTEN},10,t)
type=friend
Usted puede configurar un identificador de llamadas para cada telfono lo que puede ser muy til a la hora de leer los registros de billing y en la identificacin del que llama en los displays de los telfonos.
host=dynamic
Para telfonos usted probablemente definir el host como dinmico. Esto permite que el usuario se registre informando su direccin IP actual.
Ex
Es el contexto usado para recibir llamadas de este telfono. Este telfono solo podr llamar a nmeros incluidos. En este contexto de plan de discado.
clu
siv
context=default
op
ar
aV
ice
nt
Si alguien llama a una extensin que empieza con 41 y dos dgitos ms, el cliente sip logueado ser discado de forma de recibir la llamada.
eM
igu
el
Pe
re zP
Despus que usted defina las cuentas de clients sip en sip.conf, usted est apto a loguearse en el servidor Asterisk dos clientes y hacer y recibir llamadas. Usted precisar configurar las extensiones en extensions.conf.
ar ed es
Usted puede informar el parmetro defaultip=a.b.c.d si desea que sea posible contactar un mismo telfono antes de registrarse. Host=a.b.c.d es usado normalmente apenas para conexin a proveedores.
canreinvite=yes
El protocolo SIP intenta conectar los puntos finales directamente. Entretanto si Asterisk quisiera detectar el DTMF por ejemplo este deber estar en el medio del flujo RTP entre los user agents. Varios recursos como transferencia funcionan apenas con canreinvite=no.
Ex
clu
mailbox=1234@default
El comando mailbox permite que usted asocie una cuenta de buzn de voz al telfono. Cuando esto es hecho el buzn de voz enva a los telfonos (agentes usuario de una forma ms genrica) un evento MWI de
siv
op
dtmfmode=rfc2833. Este rfc permite que los tonos DTMF sean pasados de parte a parte usando el protocolo RTP en la forma de eventos nombrados. Varias seales como DTMF, FAX, Lnea entre otros. Abajo esta la tabla de eventos relacionados a DTMF. Codificacin do evento(decimal) _________________________ 0--9 0--9 * 10 # 11 A--D 12--15 Flash 16 Tabla 1 - DTMF named events
ar
aV
ice
dtmfmode=inband. Cuando es configurado de esta forma el DTMF pasa como una seal de audio normal. Solamente funciona adecuadamente con CODECs sin compresin como el G711 (ulaw o alaw).
nt
eM
igu
dtmfmode=info. Cuando es configurado de esta forma las informaciones de DTMF son pasadas por la sealizacin SIP. Este mtodo es definido por la RFC 3265 (eventos de sealizacin). Esta RFC define varias formas de pasajes de eventos por la sealizacin SIP como DTMF y MWI (Indicador de mensajes en espera) por ejemplo.
el
Pe
re zP
El dtmfmode es esencial para que el telfono pase el DTMF necesario a operaciones como transferencia, captura de llamada entre otras cosas. Este puede ser seteado como uno de los siguientes parmetros:
ar ed es
dtmfmode=info
mensajes en espera. En muchos telfonos esto va hacer que se encienda una luz avisando al usuario de que un mensaje en esta en el buzn.
disallow=all
El comando disallow=all deshabilita todos los codecs. Este es normalmente seguido por la autorizacin de los codecs necesarios (Ex. allow=ulaw). En general es importante controlar que codecs estn en uso limitndolos apenas a los necesarios.
secret=contrasea
Este parmetro configura la contrasea para la autentificacin. Si usted no quisiera que las contraseas aparezcan en el archivo de texto puede usar el comando md5secret=contrasea criptogrfica en MD5. Para generar la contrasea en MD5 usted puede usar el comando de lnea:
#echo n username:realm:secret |md5sum
musicclass=default
El parmetro de arriba permite establecer que directorio de msica MP3 ser ejecutado para msica en espera. Las clases son definidas en el archivo musiconhold.conf. Tenga cuidado en el hecho que en la definicin de los peers este parmetro puede estar como musiconhold y no en musicclass como en ejemplo del archivo sip.conf. Ver bug: http://bugs.digium.com/view.php?id=5521
videosupport=yes/no
Este parmetro habilita llamadas entre dos usuarios con capacidad de vdeo.
Ex
clu
siv
Los comandos de arriba van a negar todos las direcciones IP y permitir el registro de telfonos solo de la red local 192.168.1.0/24.
op
ar
deny=0.0.0.0/0.0.0.0 permit=192.168.1.0/255.255.255.0
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
language=br
El cdigo de lenguaje definido en indications.conf Define el lenguaje para los prompts y seales locales de telefona.
rtptimeout=60
Termina las llamadas si no se tuviese actividad RTP cuando no estuviera en espera (hold).
rtpholdtimeout=120
por x segundos,
Termina la llamada si no hubiera actividad RTP cuando esta en espera (hold) (debe ser mayor que el rtptimeout).
Ex
clu
siv
op
Asterisk usa la entrada de un flujo RTP como fuente de sincronizacin de tiempo para enviar el flujo de salida. Si el flujo de entrada es interrumpido debido a la supresin de silencio entonces la msica en espera tendr cortes. En resumen, usted no puede usar supresin de silencio en telfonos SIP.
ar
aV
ice
nt
Asterisk no soporto llamadas SIP sobre TCP o TLS, apenas las soporto sobre UDP.
eM
igu
el
Enva peridicamente un mensaje para medir el tiempo de respuesta de peer. Cuando sea mayor que 2000 ms o el tiempo es especificado en el comando, considera al peer fuera de alcance.
Pe
re zP
ar ed es
Ex
clu
siv
Paso 2 Crear una entrada de tipo [peer] para el proveedor de modo de simplificar el discado.
op
ar
Paso 1 Dentro del archivo sip.conf, en la sesin [general] colocar una lnea de registro en el proveedor SIP.
aV
ice
nt
SIP client: Esto significa que Asterisk se registra como un cliente para otro servidor SIP y recibe y coloca llamadas para este servidor. La recepcin de llamadas es ruteada para una extensin de Asterisk.
eM
igu
el
Pe
re zP
ar ed es
register=>621538:password@fwd.fwdnet.net/4100
El comando register en la sesin [general] del archivo sip.conf es usado para hacer el registro en el proveedor. En este es informado el nombre y contrasea del usuario, bien como el proveedor y el puerto UDP. Adems de eso en el final despus de / es colocado el ramal para recibir llamados de este proveedor. Tcnicamente hablando este ramal es colocado en el campo Contact del paquete SIP de forma que el proveedor sepa como llamar al Asterisk. Por default este valor es la extensin s del contexto definido en la sesin general.
Ex
clu
siv
op
ar
aV
ice
nt
En este ejemplo, vamos escoger el digito 010 como ruta de salida para el FWD. Para discar para el 610000, usted debe discar 010610000. (Como si fuese una nueva operadora, marque 10 para llamar el fwd).
eM
igu
el
Pe
re zP
ar ed es
Cuando usted se conecta a un proveedor de voz sobre IP y hace una llamada, el proveedor pide de usted sus credenciales. En el caso inverso, cuando el proveedor encamina una llamada para Asterisk, este pide autentificacin del proveedor enviando un mensaje con cdigo 407 (Proxy Authentication Required). Es simple de entender que un proveedor no podr tener la contrasea de acceso para todos sus clientes Asterisk. Este comando es usado para evitar que Asterisk envi el paquete (407 Proxy Autenticacin Required). Si usted usa insecure=invite Asterisk no pedir autentificacin en las llamadas que llegan del proveedor. Si usa insecure=port, Asterisk
Ex
insecure=very
clu
Fromuser y Fromdomain son parmetros a veces necesarios para autentificacin en proveedores de voz sobre IP. Ellos son colocados en el campo From del paquete SIP.
siv
op
ar
aV
ice
nt
host=gvt.com.br
eM
Es el nombre usado en la creacin del digest de autenticacin. El digest es un valor computado a partir del username, secret y realm (dominio).
igu
el
Pe
username=ip1140623535
re zP
El comando SIP show registry permite que usted vea si su Asterisk se registr correctamente a su proveedor.
ar ed es
Nmero de tentativas de registro antes de desistir. Colocando este parmetro en cero har que Asterisk intente indefinidamente siempre hasta que este acepte el registro.
encontrar el [peer] por la direccin IP no importando el puerto. Usted puede tambin combinar los dos con insecure=invite;port.
allowguest=yes/no
Este comando controla si un usuario sin un peer correspondiente se puede autenticar sin un nombre y contrasea. Puede parecer extrao, pero la filosofa de protocolo SIP seria tener una red mundialmente direccionable que a travs de DNS permitiese que cualquier agenteusuario SIP pudiese alcanzar cualquier otro agente sin necesidad de autentificacin (S as fuese no serian ms necesarias operadoras de telefona convencional o VoIP).
insecure=invite;port
Ya se discuta mas arriba, impide que Asterisk genere un mensaje 407 Proxy Authentication Required.
autocreatepeer=yes/no
Ex
clu
siv
op
ar
aV
ice
Cuando Asterisk recibe una llamada SIP entrante en el mdulo de canal SIP. l sigue el flujo mostrado en la figura de arriba:
nt
eM
igu
el
Pe
re zP
ar ed es
Este es uno de los comandos ms difciles de entenderse y es usado bsicamente cuando Asterisk es integrado a un servidor SIP Proxy (Como SER por ejemplo). Si esta opcin estuviese habilitada, cualquier usuario-agente SIP se podr registrar con su Asterisk PBX como un peer. Esta configuracin de el peer estar basada en las opciones globales. El nombre de el [peer] estar basado en la parte usuario del campo Contact de la URL. Cuidado: Por una cuestin de seguridad es muy importante colocar el contexto de la sesin general para un contexto que no pueda comunicarse para a red pblica, o un usuario no autenticado podr hacer llamadas externas sin ninguna restriccin y causar un perjuicio considerable en su factura.
portno: Es el puerto UDP a ser usada. Si es omitido Asterisk usar 5060. exten: Si es definido, entonces el asterisk ir a pedir al peerque se conecte a la extensin exten Ejemplos:
exten=>s,1,Dial(SIP/ipphone) exten=>s,1,Dial(SIP/info@voffice.com.br) exten=>s,1,Dial(SIP/192.168.1.8:5060,20) exten=>s,1,Dial(SIP/8500@sip.com:9876)
Ex
clu
siv
Un nombre de dominio. Para nombres de dominio Asterisk primero revisar en los registros DNS SRV para aquel dominio.
op
ar
aV
ice
peer: El nombre de el peer al cual se conecta. Esto puede ser uno de los siguientes:
nt
eM
SIP/[exten@]peer[:portno]
igu
el
Pe
El formato de el nombre de un canal SIP usado para una conexin de salida es:
re zP
ar ed es
En el caso de Full Cone, el mapeamiento es bien establecido y cualquiera desde ip publica que quiera alcanzar un cliente atrs de NAT, precisar apenas saber el esquema de mapeamiento de forma a mandar paquetes para este.
Por ejemplo: Un computador atrs de NAT con IP 10.0.0.1 enviando y recibiendo en el puerto 8000 es mapeado para la puerta externa IP en el NAT de
Ex
clu
Para una dada direccin interna, los tres primeros tipos de NAT mantienen un mapeamiento de su direccin interna que es independerte de la direccin de destino siendo visto. El cuarto tipo de NAT ir a localizar un nuevo mapeamiento para cada direccin de destino independiente. A menos que haya una tabla de mapeamiento esttico. El mapeamiento que se abre cuando el primer paquete es enviado de un cliente a travs de NAT puede ser vlido apenas por cierta cantidad de tiempo, (tpicamente algunos minutos), a menos que los paquetes continen, siendo enviados y recebitos en un puerto IP.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
200.180.4.168:1234. Cualquiera desde Internet puede enviar paquetes para este direccin y puerto IP y estos paquetes sern pasados para el cliente en la mquina de direccin ip 10.0.0.1:8000. Es el caso de Firewalls sin control de sesin. Normalmente implementado a travs de filtrado de paquetes y es el tipo ms inseguro de Firewall y cada vez menos comn en los das de hoy.
En este caso el Firewall tiene un control mayor de sesin, solo permitiendo que paquetes pertenecientes a aquella sesin puedan retornar, al final de la sesin, si el computador de destino resuelve enviar paquetes de un puerto diferente (200.210.1.1:10000) estos no sern aceptados.
Ex
clu
siv
Un NAT de tipo port restricted es casi idntico al Restricted Cone, pero en este caso el NAT bloquear todos los paquetes a menos que el cliente tenga enviado previamente un paquete para la IP y puerto que est enviando para el NAT. De esta forma, si el cliente enviara para un computador externo para el puerto 1010, el NAT apenas permitirn paquetes de vuelta si estos viniesen de 200.180.4.168 en el puerto 1010.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
7.8.4 Simtrico
Ex
clu
El ltimo tipo de NAT es el simtrico, este es diferente de los tres primeros. Un mapeamiento especfico de IP:Puerto para un NAT pblico IP:Puerto es dependiente de la direccin de destino para el cual el paquete es enviado. Entonces por ejemplo, si un cliente enva de 10.0.0.1:8000 para el computador B, este puede ser mapeado como 200.180.4.168:1234. Si enviara del mismo puerto para una direccin IP diferente, este es mapeado de forma diferente 200.180.4.168:5678. El computador A y B pueden responder apenas para este mapeamiento. Si cualquiera intentara enviar para otro puerto mapeado, estos paquetes son descartados como en el caso de Cono Restricto. El par externo IP:puerto es abierto solo cuando el computador interno enva datos para un destino especfico.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
llamada. La segunda es realmente el flujo de media. Los paquetes de RTP viajan directamente entre los dispositivos finales. La sealizacin SIP puede atravesar el NAT de una forma bastante directa, desde que exista un proxy, a un salto de distancia de NAT, que reciba los mensajes SIP del cliente (a travs de NAT) y entonces retorne los mensajes para el mismo lugar. El proxy precisa retornar los paquetes de SIP para el mismo puerto de donde este recibi los paquetes (En el puerto SIP 5060). El SIP tiene etiquetas (tags) que le dicen al proxy para hacer esto La etiqueta recibida dice al proxy para retornar un paquete para una IP especfica y la etiqueta rport guarda el puerto a donde retornar. La mayora de los proxys todava no implementan la etiqueta rport, y algunos clientes no van a procesar los mensajes SIP correctamente. Si estas etiquetas estuviesen presentes, por lo menos en principio el mecanismo existe para atravesar el NAT. Otro modo simple de atravesar el NAT es usar TCP para la sealizacin SIP entre el cliente y el proxy. Desde que la conexin TCP es abierta a travs de NAT directamente de el cliente para el proxy. La sealizacin proceder sin bloqueo. Nuevamente, muchos proxies todava no implementarn todava la opcin TCP y trabajan apenas usando UDP. Note que la sealizacin SIP debera estar apta a atravesar cualquiera de los cuatro tipos de NAT si el proxy retorne los mensajes de SIP en el mismo puerto fuente que l recibi el mensaje inicial. El mensaje inicial SIP, enviado para el proxy IP:Port, abre el mapeamiento de NAT, y el proxy retorna los paquetes de NAT para el mismo IP:Puerto. Esto es permitido en cualquier escenario de NAT. Registrar un cliente que est atrs de un NAT requiere o un Registrar que pueda salvar el IP:Puerto en la informacin de registro basada en el puerto e IP que la ve como fuente de mensajes SIP o un cliente que sepa de su direccin mapeada externamente y puerto y pueda as insertarlo en la informacin de contacto como IP:Puerto de forma de recibir los mensajes SIP. Es preciso tener cuidado en usar un intervalo de registro menor que el keepalive para el mapeamiento de NAT.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
originador, el usar la informacin SDP recibida conteniendo la direccin IP interna del originador y los paquetes nunca van a llegar all. Aqu va un ejemplo de un trace de un mensaje INVITE de un cliente SIP atrs de un NAT como recibida por el gateway. Existe un proxy en el medio del camino.
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 INVITE sip:12125551212@211.123.66.222 SIP/2.0 Via: SIP/2.0/UDP 211.123.66.223:5060;branch=a71b6d57-507c77f2 Via: SIP/2.0/UDP 10.0.0.1:5060;received=202.123.211.25;rport=12345 From: <sip:2125551000@211.123.66.223>;tag=108bcd14 To: sip: 12125551212@211.123.66.222 Contact: sip: 2125551000@10.0.0.1 Call-ID: 4c88fd1e-62bb-4abf-b620-a75659435b76@10.3.19.6 CSeq: 703141 INVITE Content-Length: 138 Content-Type: application/sdp User-Agent: HearMe SoftPHONE v=0 o=deltathree 0 0 IN IP4 10.0.0.1 s=deltathree c=IN IP4 10.0.0.1 t=0 0 m=audio 8000 RTP/AVP 4 a=ptime:90 a=x-ssrc:00aea3c0
Si el cliente estuviese atrs de uno de los tres primeros tipos de NAT, entonces la solucin de atravesar el NAT es simple. El cliente debe descubrir como su IP:Puerto aparece para el mundo y entonces debe colocar esta informacin en los mensajes SDP en vez de la informacin de su IP:Puerto interno. Existen dos mtodos para un cliente de determinar la direccin pblicamente mapeado para el IP:Puerto. el primero es preguntar al ruteador con NAT, el segundo es preguntar a alguien fuera de NAT en la red pblica.
Ex
Mas a informacin que es usada de forma de pasar los datos de voz (A conexin RTP) es mantenida ms abajo en el mensaje de las lneas 014 e 016. El cliente espera recibir en el puerto 8000 (m=) en la IP 10.0.0.1 (c=), que es puerto que el ve propio, y como existe un segundo punto final retornar los paquetes. El resultado es que una vez que a llamada este establecida (La sealizacin SIP pasa) el audio no es recibido.
clu
siv
op
ar
aV
En el trace de arriba, la Direccin IP en la lnea 003 de encabebezado SIP es la direccin IP donde el cliente piensa que est (10.0.0.1). Pero el Proxy sabe que direccin IP el realmente recibi el paquete. Entonces el adicionar las etiquetas receivedy rport con la direccin IP y el puerto despus el mapeamiento de NAT. Estas etiquetas permiten al proxy encaminar los mensajes SIP de vuelta al cliente va NAT.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
7.11.1 UPnP
Ex
clu
Un cliente puede preguntar al NAT como es que est mapeado para un par IP:Puerto a travs de un protocolo llamado Universal Plug and Play. Esta es una solucin que est siendo promovida por Microsoft (entre otros). El cliente pregunta al NAT va UPnP que mapeamiento el debe usar si el quisiera recibir en el puerto x. NAT responde con el par IP:Puerto que alguien en la red pblica debera usar para alcanzar el cliente en aquel puerto. Muchos fabricantes de dispositivos NAT ya incluyen UPnP en sus productos. Un problema es que el UPnP no va a funcionar en el caso de NATs cascadeados.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
1. Si el est atrs de un NAT (El par IP:Puerto contenido es diferente del par IP:Puerto que el piensa que est) 2. Cual par IP:Puerto publico l debera usar para colocar en el mensaje SDP de forma que el punto final lo alcance Por ejemplo, si el cliente quiere ser alcanzado en 10.0.0.1:8000, el ir primero va enviar una consulta a NAT por el puerto 8000. NAT ir realmente a recibir una consulta del paquete 200.180.4.168:1234 y as va a responder para el par IP:puerto con el paquete contenido 200.180.4.168:1234. El cliente entonces podr colocar esto en su SDP m=AUDIO 1234 y c=200.180.4.168, el cliente continua escuchando en el puerto 10.0.0.1:8000. Esto ir a funcionar en las siguientes situaciones:
1. El cliente debe enviar y recibir el RTP en el mismo puerto. 2. El cliente debe enviar un mensaje SIP logo despus de enviar la consulta para la prueba de NAT. Si existe un largo atraso NAT puede tener un timeout. 3. En el caso de Restricted Cone y Port Restricted Cone, el cliente debe enviar el paquetes para el punto final antes que el NAT permita paquetes del punto final para el cliente. Esto no va a funcionar en el caso de NAT simtrico, porque la direccin de la prueba de NAT es diferente de aquel punto final y de este modo el mapeamiento de NAT que se ve es diferente de aquel que el punto final usa para enviar paquetes hasta el cliente en aquel par IP:Puerto. STUN - Simple Traversal de UDP a travs de NAT (Travesia simple de UDP sobre el NAT). es un protocolo para configurar el tipo de prueba NAT como fue descrito. El realmente hace un poco ms que apenas retornar el par IP:Puerto pblico, el puede tambin determinar el tipo de NAT del que usted est detrs. Clientes que usan el protocolo STUN ya existen como el XTEN, por ejemplo. Los pedidos de STUN especifican los siguientes parmetros: RESPONSE-ADDRESS - El servidor STUN enviar su respuesta para el par IP:Puerto especificado en el atributo RESPONSE-ADDRESS. Si este campo no estuviese presente, entonces el servidor enva su respuesta en el par IP:Puerto de donde el recibi el pedido. Si ambas flags Change IP y Change Port no estuviesen seteadas, el STUN responde de el par IP:Puerto que el paquete inicial fue enviado. Si el Change IP estuviese seteado, el servidor responde de un IP diferente y si el Change Port estuviese seteado entonces el responde de un puerto diferente.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
La respuesta del STUN contiene las siguientes informaciones: MAPPED-ADDRESS El par IP:Puerto del cliente como visto en el primer servidor STUN fuera de NAT para recibir el pedido. CHANGED-ADDRESS La Direccin IP que debera ser la fuente de respuesta retornada si el pedido fue hecho con el flag Change IP seteado. SOURCE-ADDRESS El Par IP:Puerto de donde la respuesta STUN fu enviada. Usando una combinacin de diferentes pedidos el servidor STUN, un cliente puede determinar si el est en la Internet abierta o si est atrs de un Firewall que bloquea el UDP o si el est atrs de un NAT y de que tipo.
En este mtodo el cliente es manualmente configurado con los detalles de las direcciones pblicas IP y puertos que el NAT ir a usar para la sealizacin y media. En este caso el NAT debe ser configurado manualmente con mapeamientos estticos en el ruteador. Asterisk permite ser configurado de forma manual cuando est atrs de un NAT. En el archivo sip.conf en la sesin general, las instrucciones:
Externip=Direccin IP Externo Localnet=Direccin da Red Local Interna
Ex
clu
siv
Pista: Varios ruteadores ADSL ya poseen ALG. Tuve la infelicidad de tomar algunas implementaciones con bugs. En este caso el sntoma fue que el ruteador se trab y fue preciso reiniciarlo. El problema fue corregido deshabilitando el ALG por la interfase telnet del ruteador. Por la interfase Web no tenia esta opcin. Dos equipamientos con chipset GlobeSpan Virata nos presentaron este problema en nuestros laboratorios.
op
ar
aV
ice
nt
Esta tcnica se vale de la instalacin de un Firewall/NAT mejorado llamado un gateway de capa de aplicacin (ALG) que entiende la relacin entre los flujos de media y los mensajes de sealizacin. El ALG procesa los flujos de media y sealizacin de forma a reflejar la direccin pblica y puertos en la comunicacin para fuera del Firewall, en otras palabras toda la traduccin necesaria es hecha en el gateway. Ruteadores Cisco ms recientes con IOS/Firewall y el Pix Firewall permiten estos recursos.
eM
igu
el
Pe
re zP
ar ed es
Permiten que cuando Asterisk est enviando paquetes SIP para afuera de la red la direccin sea substituida por la direccin definida en el comando Externip. La lnea Localnet define cual es direcciones pertenecen a la red local. Todas las redes que no estuviesen en la franja definida en localnet son externas. Con esto el Asterisk sabe cuando debe sustituir las direcciones de los encabezados dependiendo del peer de destino. En el archivo RTP.CONF es posible definir en que puertos RTP el Asterisk va a trabajar.
Si es deseado que ambos, los UACs que estn atrs de NATs y los UACs en la Internet abierta se comuniquen, entonces ellos deben saber si pueden confiar en el mensaje SDP que ellos reciben en el mensaje SIP y cuando ellos precisan esperar recibir un paquete directamente antes que el cliente abra un canal de vuelta para el par IP:puerto fuente de aquel paquete. Una propuesta para informar el punto final para esperar un paquete de entrada y adicionar una lnea en el mensaje SDP (Viniendo de clientes detrs de NAT). a=direction:active Cuando el dispositivo esta en lnea, el entiende que el cliente esta iniciando e ir activamente a establecer el par IP:Puerto para el cual el
Ex
clu
siv
La solucin de arriba funciona bien (Servidor STUN) para los tres primeros tipos de NAT. El cuarto caso (NAT simtrico) no va a permitir este esquema, pues este tiene diferentes mapeamientos dependiendo de la direccin IP objeto. De esta forma el mapeamiento que el NAT design entre el cliente y la prueba NAT es diferente de aquella entre el cliente y el gateway. En el caso de NAT simtrico el cliente deber enviar y recibir el RTP de vuelta de la misma direccin IP. Cualquier conexin RTP entre un punto final fuera de NAT y uno dentro de NAT debe ser establecido punto a punto y as (Mismo se una conexin SIP ya fue establecida) el punto final fuera de NAT debe esperar hasta recibir un paquete de un cliente antes que l pueda saber para donde responder. Esto es conocido como Media orientada a conexin.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
; RTP Configuration ; [general] ; ; RTP start and RTP end configure start and end addresses ; rtpstart=10000 rtpend=20000
ar ed es
dispositivo debe retornar el RTP, y que el par IP:Puerto encontrado en el mensaje SDP debe ser ignorado. La mayora de los clientes SIP no soportan la directiva a=. Hasta estos soportes deben existir en algn tipo de traductor en el medio de flujo SIP.
ICE define una estandarizacin para los clientes SIP de forma de determinar que tipo de firewall existe entre ellos y los servidores y determinar una direccin IP en la cual ellos se puedan comunicar. Usando mecanismos como STUN, TURN, RSIP direcciones localmente configuradas que van a proveer una direccin donde el cliente se podr comunicar. La gran ventaja del ICE es la unificar de los mtodos de pasajes por NAT. El ICE usa un proceso interactivo donde es hecho el descubrimiento del mejor mtodo a ser usado.
Ex
clu
siv
El ICE est siendo desarrollado por la IETF en el grupo de trabajo MMUSIC y experimenta la forma de unificar varias tcnicas de atravesar NAT. Esto va a permitir que el cliente VoIP atraviese con xito una gran variedad de firewalls que existiesen entre el usuario remoto y la red.
op
ar
aV
ice
nt
eM
En cualquiera de los dos casos, una solucin es tener un Relay de RTP en el medio del flujo entre los puntos finales. El Relay RTP acta como un segundo punto final para el cual los dispositivos reales se intentan comunicar uno con el otro. Tpicamente, existira un servidor en el medio del flujo que va a manipular el SDP de forma de instruir los puntos finales para enviar el RTP para el Relay en vez de directamente desde uno hacia el otro. El Relay establecer su propio mapeamiento de una sesin, guardando el par IP:puerto de cada punto final para donde el debera enviar los paquetes RTP.
igu
el
Pe
re zP
ar ed es
1. Si el punto final soporta la directiva a=direction:active tag. 2. Si ambos de los puntos finales estn atrs de NATs simtricos.
individualmente. En primer lugar vamos a tratar esto como dos soluciones separadas. Asterisk detrs de NAT Clientes detrs de NAT
QUALIFY
Esta opcin tiene dos funciones, mantener el NAT abierto y certificarse que el Asterisk no intente enviar una llamada para un telfono que est inalcanzable. Qualify=yes o Esta opcin usa el valor estndar de 2 segundos.
Ex
clu
siv
op
ar
aV
nat=rfc3581 o Este es el estndar, el Asterisk va a adicionar el rport al encabezado SIP informando al cliente en que puerto recibi el pedido y va a encaminar el flujo de los mensajes para el cliente en la direccin de donde vino y no en la direccin descripta en los encabezados. El cliente en este punto tiene condiciones de saber su direccin externa (campo Via received) y ahora su puerto externo. Ver rfc3581. nat=never o En este caso el Asterisk no va a adicionar el rport en la lnea VIA del encabezado como en la RFC3581
ice
nt
eM
igu
nat=route o El Asterisk enviar el audio para el puerto y la ip de donde l recibi el audio en vez de confiar en las informaciones contenidas en los encabezados SIP y SDP. Esto solo va a funcionar si el telfono detrs de NAT enva y recibe el audio del mismo puerto (RTP).
el
Pe
nat=yes (puede ser true, t, y, 1 y on) o Es la combinacin de los modos route + modo rfc3581
re zP
NAT
ar ed es
Obviamente existen diversas situaciones intermediarias y la cosa se complica pensando que tenemos diferentes tipos de NAT (Full Cone, Restricted Cone,Port Restricted Cone e Simtrico). Para aumentar la complejidad tenemos clientes que soportan diferentes tipos de soluciones para NAT (TURN, STUN, ICE, ALG). Esto puede tornar el problema realmente complejo.
Qualify=no o Deshabilita el chequeo del peer Qualify=x ms o Setea el tiempo en ms entre los chequeos
EXTERNIP
Esta es la opcin usada dentro de la sesin [general] del archivo sip.conf y puede ser colocada o como una ip o como un hostname apuntando para la direccin externo de su dispositivo NAT.
Usted solo precisa usar esta opcin si su Asterisk est detrs de NAT intentndose comunicar con dispositivos fuera de NAT.
LOCALNET
Ex
clu
siv
op
Para simplificar, vamos a usar dos situaciones que son las ms tpicas. Asterisk est detrs de un Firewall sub dominio del rea tcnica de la empresa. Los clientes son externos y no tienen dominio sobre la configuracin de los firewalls de estos clientes
ar
aV
ice
nt
eM
Ex: localnet=10.1.0.0/255.255.0.0
igu
Usada dentro de la sesin [general] del archivo sip.conf. Indica la red privada interna donde el Asterisk no va a usar la direccin externa provista por el parmetro externip.
el
Pe
re zP
ar ed es
Ex: externip=200.180.4.168
Ex
Ms all de esto, es preciso redirecionar los puertos UDP 5060 y RTP de 10000 a 20000 en el Firewall. Si usted quisiera reducir esta franja puede editar el archivo rtp.conf.
clu
siv
op
ar
aV
Cuando el Asterisk est detrs de NAT podemos usar las configuraciones localnet y externip en el archivo sip.conf ms alla de redirecionar los puertos en el Firewall. Supongo que la direccin IP externa fuese 200.184.7.1 y que la red local interna fuese 192.168.1.0/24. Esto quedara as:
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Cuando opera un cliente detrs de un NAT y configura STUN en el cliente, se coloca los siguientes parmetros en la configuracin del cliente en el archivo sip.conf. Los clientes tienen obligatoriamente que registrarse.
nat=yes ; Ignora el encabezado VIA y usa la direccin de donde llega el paquete. canreinvite=no ; Fuerza el flujo de media por el Asterisk. qualify=500 ; Fuerza a que un paquete exploratorio que mantiene el NAT abierto
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
7.14 Cuestionario
1. El SIP es un protocolo de tipo texto similar al ______ e _______. IAX HTTP H323 SMTP 2. El SIP puede tener sesiones de tipo: (marque todos los que se aplican) Voz Buzn de voz Vdeo Chat Juegos
Correcto Incorrecto
6. En el modo PROXY el flujo de media y la sealizacin pasan por el SIP proxy y no directamente de un cliente para otro. Correcto Incorrecto
Ex
clu
5. El SIP puede operar en modo PROXY y en modo REDIRECT, a diferencia entre ellos es que en el caso de PROXY la sealizacin Siempre pasa por el computador intermediario (SIP Proxy) en tanto en modo REDIRECT los clientes sealizarn directamente.
siv
op
ar
aV
ice
User Agent Media gateway PSTN Server Proxy Server Registrar Server
nt
eM
igu
el
3. Podemos citar como componentes de SIP a: (marque todos los que se aplican)
Pe
re zP
ar ed es
7. El Asterisk acta como un SIP Proxy. Correcto Incorrecto 8. La opcin canreinvite=yes/no es de importancia fundamental, pues va a definir si el flujo de media va a pasar por el Asterisk o no. Esta afirmacin es: Correcta Incorrecta
9. Asterisk soporta sin problemas la supresin de silencio en canales SIP. La afirmacin es: Correcta Incorrecta
Ex
clu
siv
op
ar
aV
ice
nt
eM
10. El tipo ms difcil de NAT para transportar es el: Full Cone Restricted Cone Port Restricted Cone Symmetric
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
ar ed es
El plan de discado es lo ms importante en la configuracin de Asterisk y este es configurado en el archivo /etc/asterisk/extensions.conf. Este controla como todas las llamadas de entrada y salida son encaminadas y configuradas. En el archivo extensions.conf usted controla el comportamiento de todas las conexiones a travs de su PBX.
Ex
clu
siv
8.2 Introduccin
op
(general, globales y contextos). Crear un plan de discado simple incluyendo contextos, extensiones y prioridades. Entender los estndares de extensin y como usarlos. Saber como definir y usar variables, funciones y expresiones. Usar las aplicaciones Dial(), Answer() y Hangup(). Configurar a recepcin de llamadas. Configurar el discado de llamadas externas.
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
son especiales, las restantes son denominadas contextos y tambin comienzan con []. Para algunos esta sintaxis puede parecer extraa, en la versin 1.2 existe el concepto de AEL application extension language o lenguaje de extensiones y aplicaciones que se asemejan mucho a los lenguajes de programacin y puede ser usada en vez del extensions.conf. En este libro no abordaremos en detalle al AEL, visto que su utilizacin prctica aun es muy limitada.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Nota: save dialplan sobrescribir su archivo extensions.conf con uno nuevo generado por el plano de numeracin actual. Una copia de su archivo extensions.conf viejo no ser guardada. Todos los comentarios sern perdidos. El archivo ejemplo de Asterisk viene con esta configuracin peligrosa, writeprotect=no, static=yes
VMANNOUNCE=>mysounds/my-vm-annouce
Cuando nosotros queremos hacer una llamada externa que lneas debemos usar La creacin de estas definiciones, por si solas no tienen efecto alguno. Asterisk no sabe por si solo que hacer con estas variables. Es de su responsabilidad saber que hacer con ellas en su plan de discado.
Ex
clu
siv
op
ar
aV
ice
nt
ENTRADA=>Zap/3&Zap/4
eM
igu
En verdad las variables globales de Asterisk son normalmente usadas como constantes y no como variables. Ellas son usadas para simplificar mudanzas futuras en la configuracin del PBX. El valor actual de las variables globales puede ser cambiado usando el comando Set. El valor de la variable global puede ser referenciado, usando la sintaxis: ${nombredevariable}. Las variables globales no son sensibles a maysculas y minsculas.
el
Pe
re zP
ar ed es
Enseguida en la sesin [globals], usted puede definir las variables globales (o constantes) y sus valores iniciales.
En este ejemplo, las variables globales, fueron todas escritas con nombres en mayscula. Nombres de variables globales no diferencian maysculas de minsculas. Ellas son colocadas en maysculas, por conveniencia, para diferenciarse de las variables de canal que normalmente tienen maysculas y minsculas. Las variables globales pueden ser configuradas dentro del plan de discado usando el comando:
exten => 4000,1,Set(global(teste)=0)
En este ejemplo, que fue dado el nombre de default, las primeras tres extensiones sern asociadas a telfonos. La cuarta extensin (8583) ser asociada con la aplicacin de buzn de voz. La quinta extensin (8585) ser asociada a una sala de conferencia. Finalmente el 0 ser asociado con el operador. Aqu est otro ejemplo de un contexto: Context "men": Extensin s Descripcin Bienvenido a mensajes e instrucciones
Ex
clu
Contexto "default" Extensin Descripcin 8580 Flavio 8581 Daniel 8582 Juliano 8583 Verificar el buzn 8585 Sala de conferencia 0 Telefonista
siv
op
ar
aV
ice
nt
eM
Un plan de discado consiste de una coleccin de contextos. Estas definiciones de contexto son la parte ms importante del archivo extensions.conf y la parte ms importante de la configuracin de Asterisk.
igu
el
Pe
re zP
Despus de las secciones [general] y [globals], el resto del archivo extensions.conf es usado en la definicin del plan de discado. El plan de discado consiste de una coleccin de contextos. Cada contexto consiste de una coleccin de extensiones.
ar ed es
1 2 3 9 #
PBX Multihost: Usted puede tener hosts virtuales en su PBX. Daytime/Nightime: Usted puede variar el comportamiento dependiendo del horario. Macros: Crear scripts para funciones normalmente usadas.
Ex
clu
siv
Privacidad: Colocar en lista negra, personas a las cuales usted no quiere atender.
op
ar
aV
ice
nt
eM
Atencin automtica: Recibe quien disco y pide para entrar a las extensiones.
igu
el
Pe
re zP
Los contextos pueden ser usados para programar un nmero importante de recursos incluyendo:
ar ed es
En este ejemplo de contexto, con el nombre de men tenemos apenas extensiones de un dgito. La extensin s es la extensin de inicio, donde el usuario inicia. Esta extensin ir a tocar un mensaje del tipo Gracias por comunicarse con nuestra empresa, presione 1,ventas, 2, soporte, 3, contabilidad, 9 para en directorio de la empresa o # para colgar. Cada opcin del men es de hecho una extensin y podra o discar una extensin real o hacer algo como enviar para quien disco hacia otro men.
que contexto una llamada de aquel canal va a ser colocada, usando una definicin como:
context=incoming
Las extensiones llevan en consideraciones minsculas o maysculas? Bien, la respuesta es si y no. Ellas consideran minsculas o maysculas en el sentido de que, cuando Asterisk est intentando encontrar la extensin que el usuario disc encuentra las extensiones que estn en el contexto, la extensin debe decir inclusive considerando maysculas y minsculas. Entonces si el usuario disca la extensin ESCRITORIO usando su telfono VoIP, el Asterisk no ejecutar los comandos que usted defini para la extensin Escritorio. Por otro lado el Asterisk no permite que usted defina extensiones diferentes con el mismo nombre diferenciando solo por mayscula y minscula.
8.5.2 Estndares
Cuando usted define las extensiones dentro de un contexto, usted puede no solamente usar nmeros literales, ni nombres alfanumricos, pero tambin puede definir extensiones que correspondan a conjuntos de
Ex
clu
siv
op
Una extensin literal puede ser un nmero, como el 123, y este puede tambin contener smbolos estndar como * y # que aparecen en telfonos normales. De forma que 12#89* es una extensin vlida. Algunos teclados de telfono multi - frecuencial tienen teclas especiales A, B,C,D y las extensiones pueden ser definidas con estas letras tambin. De hecho, el nombre de la extensin puede contener cualquier letra o nmero como as algunos caracteres especiales. Note que muchos telfonos VoIP consiguen discar nmeros de extensin que pueden ser un string arbitrario, tales como Escritorio en Asterisk. ,
ar
aV
ice
nt
eM
igu
8.5.1 Literales
el
Pe
Una extensin puede ser una de estos tres tipos: literal, estndar, o especial
re zP
8.5 Extensiones
ar ed es
Entonces la primer forma en que los contextos son usados es hacer que el Asterisk se comporte de forma diferente dependiendo de donde este viniendo la llamada. Con certeza usted va a tener por lo menos un contexto definido. En este contexto usted va a definir que hacer con la llamada, si va ha sonar una de las extensiones, entrar en el buzn de voz o tocar un anuncio de voz. Si usted quiere que Asterisk trate las conexiones de sus extensiones internas de forma diferente, por ejemplo, poder hacer ddi, usted puede definir que diferentes canales entren en diferentes contextos.
nmeros discados usando estndares. Un nombre de extensin es un estndar si este inicia con un carcter subrayado _. Los siguientes caracteres tienen un significado especial: X corresponde a cualquier dgito de 0-9 Z corresponde a cualquier dgito de 1-9 N corresponde a cualquier dgito de 2-9 [1237- corresponde a cualquier dgito o 9] letra entre llaves (En este ejemplo, 1,2,3,7,8,9) . punto, corresponde a uno o ms caracteres Considere el contexto routing
Extensin _61XX _63XX _62XX _7[1-3]XX _7[04-9]XX Descripcin Escritorio Son Paulo Escritorio Rio de Janeiro Escritorio Salvador Escritorio Recife Escritorio Curitiba
8.5.3 Especiales
Asterisk usa algunos nombres de extensin para propsitos especiales. i : Invalid (Invlido). s :Start (Inicio). h: Hangup (Colg). t : Timeout (tiempo de espera).
Ex
clu
_NXXXXXX _021XXXXXXXXX
siv
Ms ejemplos de estndares
op
ar
Este contexto, tiene el nombre routing, y enva llamadas para varios servidores de acuerdo con su extensin. Esta organizacin decidi que todas las extensiones de telfono tendrn cuatro dgitos. Si un usuario disca una extensin comenzando con 61 o 63, esto ser enviado al escritorio de Sao Paulo; 62 para el escritorio de Rio, 71,72 y 73 para Recife y 70, 74, 75, 76, 77, 78, 79 van para el escritorio de Curitiba.
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
T: AbsoluteTimeout (tiempo de espera absoluto). o: Operator (Telefonista). a : Llamado cuando el usuario presiona * durante un mensaje inicial del buzn de voz. fax: usado para deteccin de fax en canales ZAP. talk: usado en conjunto con la aplicacin BackgroundDetect.
Descripciones:
Los usos de estas extensiones pueden alterar el contenido de sus registros de facturacin (CDR Call Detail Record). En particular el campo dst no contendr ms que el nmero discado! Para perfeccionar el problema usted puede ver dentro del Dial() con la opcin g (va en el contexto) y considerar el uso del ResetCDR(w) y/o NoCdr(). hint: mapea una extensin para un canal (usado para la luz de ocupado). En Asterisk, un canal puede estar ocupado o sonando, pero una extensin es apenas un string de nmeros que activan una o ms aplicaciones. o: Extensin del operador, usado para la salida presionando 0 en el voicemail.
Ex
clu
siv
i: Invalid. Usado cuando discando para una extensin desconocida en el contexto o entrada desconocida en un men de URA (Unidad de Respuesta Audible).
op
ar
h: Hangup. Usado para limpiar una llamada. Puede ser usado para hacer sonar un mensaje de adis antes de colgar.
aV
ice
T: AbsoluteTimeout. Usado para llamadas que hayan sido colgadas debido a que el AbsoluteTimeout() las haya alcanzado. Es til, por ejemplo, para hacer sonar una notificacin con Playback().
nt
eM
igu
t: Timeout. Usado cuando las llamadas estn inactivas despus un prompt haya sido tocado. Tambin usado para colgar una lnea que estuviese ociosa.
el
Pe
re zP
s: Start. Usado para planos de discado que entran en un contexto sin otras informaciones como el identificador de llamada. As mismo si usted conoce el identificador de llamada, usted an tiene un lugar para comenzar.
ar ed es
Priority: Nmero interior. Llamarlo prioridad no es totalmente correcto, es apenas el nmero del comando, usado para numerar los comandos relacionados a una extensin. Asterisk comenzar la ejecucin en la prioridad 1, si no existiese una lnea con prioridad 1, entonces la extensin no ir a dar nmero discado. Despus de ejecutar el comando de prioridad 1, Asterisk ejecutar el comando definido con prioridad 2. Si no existiese comando definido con prioridad 2, entonces asterisk termina el procesamiento para esta extensin, As ser lo mismo si existiese otro comando con prioridad 3 o ms. Entretanto, algunos comandos, cuando son ejecutados, hacen al Asterisk saltar para una nueva prioridad en vez de ir para la prxima. Command: ejecutarse. Nombre
Ex
clu
siv
del
op
ar
aV
comando
ice
Extensin: Nombre de la extensin, o el nombre literal de la extensin o un estndar. Usted repite exactamente el mismo nombre para cada comando para la extensin
nt
eM
igu
(tambin
el
Pe
re zP
ar ed es
llamado
aplicacin)
Parameters: Los parmetros dependen del comando. Algunos comandos no tienen parmetros. Ejemplo:
exten=>123,1,Answer exten=>123,2,Playback(tt-weasels)
exten=>123,3,Voicemail(44) exten=>123,4,Hangup
Esta es la definicin de una extensin con el nombre 123. Cuando una llamada es hecha para la extensin 123, Asterisk responder la llamada l mismo, har sonar un archivo de audio llamado tt-weasels, dando al usuario la oportunidad de dejar un mensaje de voz para la casilla 44 y entonces colgar. Note que Asterisk no da importancia al orden en que usted coloca las lneas en el archivo extensions.conf. Usted puede mezclar las lneas en un orden diferente como en el siguiente ejemplo, y esto no da diferencia porque Asterisk usa la prioridad de cada lnea para determinar el orden de ejecucin.
exten=>1234/_256NXXXXXX,1,Answer()
Esto dir en el 1234 si el CallerID comienza con 256. Esto es muy til para evitar que usuarios locales llamen al 0800 y usted tenga que pagar por esto. Un punto importante por ser entendido es que cada canal VoIP (SIP, H323) o PSTN (Zap, ISDN) es configurado dentro de un contexto. Por lo tanto, cada canal pertenece a un nico contexto. Que extensiones o que servicios va ha usar este canal depender de las instrucciones contenidas en el plan de discado para aquel contexto.
Ex
y as de aqu en adelante.
clu
siv
op
Esto dir en la extensin 123 y ejecutar las siguientes opciones solamente si el identificador de llamada del usuario es 100. Esto tambin puede ser hecho con un estndar en vez de hacerlo con un literal.
ar
aV
ice
nt
eM
Otras opciones para definir extensiones incluyen la opcin normalmente llamada de lgica de la ex-novia. La lgica dir la extensin discada viniendo de afuera o de adentro, basndose en la identificacin de llamada (callerid) de la persona que est llamando. Por ejemplo:
igu
el
Pe
re zP
ar ed es
8.6 Variables
En Asterisk las variables pueden ser globales, variables asociadas a un canal y variables de ambiente. Las variables pueden ser vistas en la consola de Asterisk usando el comando NoOP. Aunque el comando no ejecute nada con la variable, su resultado es mostrado en consola. Asterisk puede hacer uso de variables globales o especficas por un canal como argumentos para los comandos. Variables son referenciadas en el plan de discado (extensions.conf) usando la sintaxis.
8.6.3 Variables de ambiente proporcionar un medio de acceder variables de ambiente Unix de dentro de Asterisk. Existe una lista ms abajo en esta pgina. Si usted define una variable de canal con el mismo nombre de una variable global (recuerde variables definidas por los usuario, no se importan con maysculas y minsculas), las referencias al nombre de la variable van devolver el valor de la variable de canal. Hay variables de canal predefinidas donde existen algunas variables de canal configuradas por Asterisk que usted puede referrseles como
Ex
8.6.2 Variables de canal son configuradas usando el comando Set(). Cada canal recibe su propio espacio de variables, de forma que no hay chancee de colisiones entre diferentes llamadas, y la variable es automticamente destruida cuando el canal es desconectado.
clu
siv
op
8.6.1 Variables globales pueden ser configuradas en la categora [globals] del archivo extensions.conf o usando el comando Set(global(var)=variable)GlobalVar. Una vez definido, estas pueden ser referenciadas por cualquier canal a cualquier hora.
ar
aV
ice
nt
eM
igu
el
Pe
Donde varname es el nombre de la variable. Un nombre de variable puede ser un string alfanumrico iniciado con una letra. Los nombres de variables definidos por el usuario no son sensibles a maysculas y minsculas. ${VarName} y ${varname} se refieren a la misma variable. Entretanto las variables definidas por Asterisk diferencian maysculas y minsculas. ${EXTEN} funciona, pero ${exten} no.
re zP
ar ed es
${varname}
definiciones del plan de discado. Variables definidas por Asterisk diferencian cajas alta y baja. ${CDR(accountcode)}:Cdigo de contabilizacin ${ANSWEREDTIME}: Horario cuando la llamada fue atendida ${CALLERID(all)}: El identificador de llamada (nombre y nmero) ${CALLERID(name)}: El nombre de id de la llamada ${CALLERID(num)}: El nmero de id de la llamada ${CALLINGPRES}: Variable de presentacin PRI Call ID para llamadas de entrada ${CHANNEL}: Nombre del canal actual ${CONTEXT}: Nombre del contexto actual ${DATETIME}: Fecha y hora en formato YYYY-MM-DD_HH:MM:SS. ${DIALEDPEERNAME}: Nombre de quien fue llamado ${DIALEDPEERNUMBER}: Nmero de quien fue llamado. ${DIALEDTIME}: Hora en que el nmero fue discado. ${DIALSTATUS}: Status de la llamada. ${DNID}: Identificador del nmero discado. ${EPOCH}: poca al estilo de Unix (Nmero de segundos desde 1970). ${EXTEN}: La extensin actual. ${HANGUPCAUSE}: El ltimo cdigo de trmino de llamada en un canal Zap conectado a una interface PRI. ${INVALID_EXTEN}: La extensin pedida cuando es redireccionada para a extensin i (invlida). ${LANGUAGE}: La lengua actual. ${MEETMESECS}: El nmero de segundos que un usuario particip de una conferencia en una sala de MeetMe. ${PRIORITY}: La prioridad actual. ${RDNIS}: El redireccionamiento actual DNIS, Caller ID que redireccion la llamada. ${SIPDOMAIN}: Dominio de destino SIP de una llamada de entrada. ${SIP_CODEC}: Usada para Setear o codec SIP para una llamada. ${SIPCALLID}: El encabezado SIP dialog Call-ID. ${SIPUSERAGENT}: El encabezado SIP user agent. ${TIMESTAMP}: Fecha y hora en formato: YYYYMMDD-HHMMSS. ${TXTCIDNAME}: Resultado de la aplicacin TXTCIDName. ${UNIQUEID}: Identificador nico de llamada actual.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Dial retorna ${DIALSTATUS}: Texto con el cdigo de status de EnumLookup retorna ${ENUM}: El resultado de la busqueda.
script de AGI para correr.
igual en adelante.
${MACRO_EXTEN}: La extensin que dispar la macro. ${MACRO_OFFSET}: Configurado por una macro para
influenciar la prioridad de ejecucin al salir de la macro.
Ex
clu
siv
op
ar
aV
ice
lookup.
nt
eM
retorno PRI.
igu
el
Pe
re zP
ar ed es
8.7 Expresiones
$[expresin]
Operadores matemticos
Suma (+) Resta(-) Multiplicacin(*) Divisin(/) Porcentaje(%)
Operadores lgicos
Ex
clu
8.7.1 Operadores
siv
Cuando Asterisk encuentra una expresin en el plan de discado, esta substituye la expresin entera con el valor resultante.
op
ar
$[${SUMA}+100]
aV
Vamos a suponer que tengamos una variable llamada SUMA. Y que queremos adicionar un valor a esta variable.
ice
nt
eM
igu
El uso de expresiones puede ser muy til para la configuracin del plan de discado. Las expresiones combinan variables, valores y operadores para llegar a un resultado. Expresiones son usadas para manipular strings, y realizar operaciones matemticas y lgicas. Una expresin sigue la sintaxis definida abajo:
el
Pe
re zP
ar ed es
Operador Y lgico (&) Operador O lgico (|) Operadores de comparacin (=, >, >=, <,<=,!=)
Ex
A partir da versin 1.2 las funciones ganarn importancia y algunas aplicaciones estn siendo substituidas por funciones. Ellas permiten procesar las variables de una forma todava mas avanzada que los operadores. Usted puede verificar que funciones estn disponibles en Asterisk usando el comando de consola:
clu
siv
op
ar
8.8 Funciones
aV
ice
nt
eM
Usted puede usar el comando Set que substituye el antiguo comando SetVar (versin 1.0x) para testear sus variables. Vamos a usar la aplicacin NoOP() como una forma de mandar los resultados para la pantalla de la consola.
igu
el
Pe
Ejemplo
re zP
Vale la pena explicar un poco que es una expresin regular. En una expresin regular comparamos un string con un estndar, esta comparacin puede ser falsa o verdadera, dependiendo si el string encaja en el estndar o no. Expresiones regulares son muy comunes en lenguajes de scripts como Perl y PHP y son muy usadas para manipular strings. Es importante que antes de usar expresiones regulares usted pueda leer algn tutorial, sobre el asunto, varios estn disponibles en Internet. Explicar detalladamente las expresiones regulares escapa de este libro.
ar ed es
El primer NoOp debera mostrar un valor igual a 5 ( La Compresin del string fruta). La segunda operacin NoOp debera mostrar el valor de 4 (La compresin del string pera). Esta es una buena manera de verificar por un string vaco o nulo.
8.8.2 Substrings
${string:offset:length}
Retorna un substring de string, iniciando en la posicin definida por offset y retornando la compresin de caracteres definidos en length. Si el offset es negativo, esto es tomar de la derecha hacia la izquierda a partir del final del string. Si la compresin es omitida, o es negativa, entonces todo el resto del string a partir del punto de inicio (offset) es retornado.
Ejemplos: ${123456789:1}-retorna el string 23456789 ${123456789:-4}-retorna el string 6789 ${123456789:0:3}-retorna el string 123 ${123456789:2:3}-retorna el string 345 ${123456789:-4:3}-retorna el string 678
Ejemplos de uso:
exten=>_516XXXXXXX,1,Dial(${EXTEN:3})
Setea ${foo} para una nica letra U 8.8.3 Concatenacin de Strings Para concatenar dos strings, simplemente escrbalas juntas.
${foo}${bar} 555${elnumero} ${PrefixoLongaDistancia}555${ONumero}
Ex
clu
siv
op
exten=>_NXX.,1,Set(areacode=${EXTEN:0:3})
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Si usted desea especificar ms de un canal para que el comando Dial intente recuerde que este discar todos simultneamente Seprelos con el smbolo &. Timeout: Este parmetro es opcional. Si no fuese especificado, el comando Dial esperar indefinidamente. Opciones: Este parmetro, que es opcional, cero o ms de una de las siguientes flags. es un string conteniendo
Ex
clu
Identificador: especifica el nmero de telfono a ser discado en este canal. El formato de nmero de telfono depende del canal y puede contener parmetros adicionales (Ej. un toque de campanilla personalizado).
siv
op
ar
Tipo: especifica el tipo de canal. Debe ser uno de los canales registrados como Zap, SIP, IAX2 y as en adelante.
aV
ice
Parmetros:
nt
eM
igu
el
Pe
re zP
exten=_4XXX,1,Dial(SIP/${EXTEN})
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
usar el comando NoCDR. d: Permite que una extensin de un dgito sea discada en tanto la otra parte no atienda al llamado. Esto permite que usted salte hacia otra prioridad en el medio de la comunicacin. D(dgitos): Despus aparte de responder la llamada, enva dgitos como un flujo de DTMF, entonces conecta la llamada al canal originador. f: Fuerza el callerid para ser configurado como una extensin de la lnea que esta haciendo o redireccionando la llamada. Por ejemplo, algunas operadoras no permiten callerids de otras extensiones de aquellas que estn designadas para usted. g: Cuando la persona llamada cuelga, sale a ejecutar ms comandos en el contexto actual. G(contexto^extensin^prioridad): Si una llamada es atendida, este comando transfiere ambas comunicaciones para un contexto y extensin especficos. La parte originadora es transferida para la prioridad x y la parte llamada para la prioridad x+1. Esto permite al plan de discado distinguir entre el origen y destino de la llamada (versin 1.2). h: Permite al usuario llamado colgar discando *. H: Permite al usuario originador colgar discando *. j: Salta n+101 prioridades de todos los canales solicitados si estuviesen ocupados. (comportamiento estndar de la versin 1.0). es un recurso nuevo de la versin 1.2. L(x[:y][:z]): Limita la llamada a x ms, enviando cuando restan y ms, repetidos a cada z ms). Solo x es necesario. Las siguientes variables especiales son opcionales para limitar las llamadas . LIMIT_PLAYAUDIO_CALLER yes|no (default yes) Toca un sonido para el originador. LIMIT_PLAYAUDIO_CALLEE yes|no (default yes) Toca un sonido para el que fue llamado. LIMIT_TIMEOUT_FILE Archivo para tocar cuando el tiempo expira. LIMIT_CONNECT_FILE Archivo para tocar cuando la llamada inicia. LIMIT_WARNING_FILE Archivo para tocar como aviso si y est definido. Si LIMIT_WARNING_FILE no estuviese definido, entonces una macro de sonido especial para decir automticamente cuanto tiempo resta (Usted tiene [XX] minutos [YY] segundos). m: Provee msica en espera para el originador hasta que el usuario llamado responda. Esto es mutuamente exclusivo con la opcin r.
igu
el
Pe
re zP
ar ed es
M(x): Ejecuta la macro(x) en la conexin de la llamada. P(x): Usa el PrivacyManager, usando el X como banco de
El comando de arriba permite el discado para un nmero local (O Z no permite el discado de un segundo 0). Observe que la comunicacin podr
Ex
clu
En el ejemplo de arriba, el comando Dial discar el canal SIP correspondiente a la extensin. El origen y el destino podrn transferir (tT) y si hubiera msica en espera en vez de tono de campanilla en el discado.
siv
op
ar
exten=_4XXX,1,Dial(SIP/${EXTEN},20,tTm)
aV
ice
nt
El parmetro opcional URL tambin ser enviado a la parte llamada cuando de conexin con xito. Si la tecnologa de canal soporta el envi de URLs de esta forma.
eM
igu
el
Pe
datos. r: Genera un tono de campanilla para el origen, no pasando ningn audio de canal llamado hasta que alguien responda. S(n): Cuelga la llamada n segundos despus que la persona llamada atiende. t: permite al usuario llamado transferir la llamada. T: permite al usuario de origen transferir la llamada. o: restaura el comportamiento de la identificacin de llamadas de Asterisk 1.0 (enviar el identificador de llamada original), en Asterisk 1.2 (enva este nmero de extensin). w: Permite al usuario de destino iniciar una grabacin presionando *1 o el que estuviese definido en el archivo features.conf (1.2). Requiere el siguiente comando, Set(DYNAMIC_FEATURES=automon) W: Permite a la parte que origin la llamada iniciar la grabacin despus de presionar *1 o el que estuviese definido en features.conf. (1.2). Requiere el siguiente comando, Set(DYNAMIC_FEATURES=automon)
re zP
ar ed es
salir apenas por el primer canal de la placa zaptel. Si hubiese ms canales disponibles y el primer canal estuviese ocupado la comunicacin no se completar. Observe tambin la expresin ${EXTEN:1} que es igual al nmero discado menos el primero dgito. Si colocsemos el comando como de abajo:
exten=_0ZXXXXXXX,1,Dial(Zap/g1/${EXTEN:1},20,tT)
El parmetro g1 busca el grupo de canales 1 permitiendo as el uso de todos los canales. Usando:
exten=_0ZZXXZXXXXXXX,1,Dial(Zap/g1/${EXTEN:1},20,tT)
exten=0,1,Dial(Zap/g1,20,tT)
Ex
Observe que en este ejemplo yo use un nuevo concepto, el estndar . (punto) que permite un nmero variable de dgitos (algunos nmeros en Brasil an poseen 7 dgitos).
clu
siv
exten=_0ZZ.,1,Dial(Zap/g1/055{EXTEN:3},20,tT)
op
ar
Usando un poco los conceptos de concatenacin y substrings es posible forzar una operadora cuando da ejecucin de un DDD. Si yo quisiese forzar una ficticia operadora nacional (cdigo 55).
aV
ice
nt
eM
igu
Si usted no tiene ninguna restriccin en relacin a la que el usuario puede discar usted puede simplemente dar al usuario el tono de lnea externa.
el
Pe
re zP
ar ed es
En este ejemplo, si una llamada es recibida sin identificacin de llamada, entonces es ejecutada la aplicacin Zapateller (Esta toca un tono familiar especial, aquel que usted oye cuando llama a un nmero que no est en servicio, frecuentemente haciendo que discadores automticos, normalmente usados en tele marketing desconecten). Si el identificador de llamadas CallerID fuera proporcionado, entonces el aplicativo .Wait() es ejecutado por 0 segundos (en otras palabras no hace nada). En cualquier caso, el canal Zap/1 toca entonces indefinidamente (Sin timeout).
Ex
clu
siv
op
En este ejemplo, cuando alguien disca 9 para la telefonista, primero es intentado con el canal Zap/1 que es el telfono de la recepcionista. (Si el canal estuviese ocupado o no responde despus de 15 segundos, intentamos tocar un grupo de telfonos, incluyendo el de la telefonista) por ms de 15 segundos.
ar
aV
ice
nt
eM
igu
Frecuentemente es deseado que una extensin dada, en primer lugar toque un telfono, y entonces si no existiese respuesta, toque otro telfono (o conjunto de telfonos).
el
Pe
re zP
ar ed es
[mainmenu] exten => 1,1,Dial(${Daniel}&${Flavio}) exten => 2,1,Dial(${Ana}&${Cristiano}) exten => 3,1,Dial(${Ana}&${Flavio})
Organizando el plan de discado de esta forma se torna fcil la mudanza de interfaces fsicas para cualquier usuario en particular. Esto muda todas las referencias en el plan de discado instantneamente.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
En este ejemplo, hecho en base al ejemplo anterior, fue adicionando una regla especial, donde si el originador es 482518888 (ruteamiento por el callerid es indicado colocando un ./. y el identificador de la llamada) este recibe inmediatamente el tono de ocupado. Otros originadores son atendidos normalmente. Un ejemplo ms comn de ruteamiento por el identificador de llamada es:
ar ed es
el uso de la prioridad n (prximo) y por el uso de etiquetas (labels) en las prioridades. Vea el ejemplo de abajo de instruccin dial:
exten=2000,1,Dial(SIP/2000) exten=2000,n,goto(${DIALSTATUS}) exten=2000,n,hangup() exten=2000,n(BUSY),voicemail(b2000) exten=2000,n,hangup exten=2000,n(NOANSWER),voicemail(u2000) exten=2000,n,hangup exten=2000,n(CHANUNAVAILABLE),hangup exten=2000,n(CANCEL),hangup exten=2000,n(CONGESTION),hangup
Usted puede observar arriba diversas construcciones nuevas. En primer lugar surge la prioridad n de next (prximo), ella permite que usted no tenga que estar numerando su plan de discado. En segundo lugar usted puede observar las etiquetas (labels). Ellas permiten discar un punto en el plan de discado y por fin el comando goto salta para las etiquetas de acuerdo con el retorno de la variable ${DIALSTATUS}. Usted puede observar que los resultados de la variable ${DIALSTATUS} permiten un control mucho ms rpido del estado de la llamada. En la versin 1.2 usted puede usar tambin la variable ${HANGUPCAUSE} que permite retornar las causas de conexin de acuerdo con el protocolo q.931 usado en canales ISDN.
Vamos a suponer que si fuese a construir un PBX con cuatro puertas analgicas y 16 telfonos IP SIP. Consideremos para esto el ejemplo de abajo: Instalada la placa TDM400P en un PC corriendo Asterisk zaptel.conf configurado correctamente zapata.conf configurado correctamente sip.conf configurado correctamente Grupo de canales = 1 (group=1 en zapata.conf) Contexto de las FXO = entrada (context=entrada en zapata.conf) Contexto de los canales SIP = ramales Numeracin de los ramales de 20 a 35 Telefonista en el ramal 20 o discando 9
Ex
clu
siv
op
La idea de esta sesin es mostrar como podra ser creado el plan de discado en el archivo /etc/asterisk/extensions.conf en dos situaciones bastante comunes.
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
;Recepcin de llamadas en la telefonista [entrada] exten=s,1,Answer() exten=s,2,Dial(SIP/20,20,tT) exten=s,3,Hangup() [ramales] ;discado para otros ramales exten=_[2-3]X,1,Dial(SIP/${EXTEN},20,tT) exten=_[2-3]X,2,Hangup() ;comunicacin externa exten=0,1,Dial(Zap/g1,20,tT)
8.12 Sumario
En este captulo usted aprendi que el plan de discado es la pieza principal de configuracin del Asterisk. Este esta formado de contextos
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
extensiones y prioridades. Usted aprendi a conectar dos aparatos de PBX usando el comando Switch. Aprendi a usar variables de tipo global de canal y de ambiente. Entendi como funciona el procesamiento de las extensiones y el sistema de inclusin de contextos. Aprendi a crear macros para simplificar el trabajo de configurar las extensiones. Y por fin entendi como funcionan y para que sirvan las extensiones estndares y las prioridades.
8.13 Cuestionario
5. Para usar una variable en el plan de discado en Asterisk usted debe usar el siguiente formato: $[varname] {varname} $(varname)
Ex
clu
En la entrada de una llamada sin CallerID Como entrada de un men llamado por comando Background(). En la entrada de una llamada con CallerID Como entrada de un contexto que fue direccionado por el Goto().
siv
op
ar
aV
3. Y extensin s es usada como extensin de inicio dentro de un contexto, este es normalmente usado en los siguientes casos.
ice
Verdadero Falso
nt
eM
2. Normalmente las variables globales van a estar escritas en maysculas en tanto las variables de canal estarn comenzando con mayscula y restantes en minsculas. Esto no es obligatorio, pero facilita la lectura.
igu
el
Pe
Asterisk sobrescribir el extensions.conf con la configuracin actual. Todos los comentarios sern perdidos. Ser hecho un backup de extensions.conf en extensions.bak. La opcin static=yes debe estar configurada para poder salvar el plan de discado.
re zP
ar ed es
1. En la configuracin de la sesin [general] el valor estndar de la opcin writeprotect=no. Siendo as si usted emite el comando save dialplan en la lnea de comando CLI>. (Marque todas que se aplican).
${varname} 6. Las variables disponibles en el Asterisk son: (Escoja 3) Constantes Variables pblicas Variables de ambiente Variables globales Variables privadas Variables de canal
10. Suponga que usted tenga una central telefnica digital. Coloque en el espacio de abajo los comandos necesarios (extensions.conf) para permitir el discado externo solo para nmeros DDD en el contexto [ramales]. Coloque tambin los comandos necesarios para forzar el discado por la operadora 55 desconsiderando la operadora escogida por el usuario.
Ex
clu
siv
op
ar
9. Suponga que usted tenga una central telefnica analgica. Coloque en el espacio de abajo los comandos necesarios para direccionar la recepcin de las llamadas para una telefonista en el ramal SIP/4000. Si el ramal SIP/4000 no atiende, El sistema debe direccionar despus de 15 segundos para los ramales SIP/4000 y SIP/4001 simultneamente.
aV
ice
nt
eM
Correcta Incorrecta
igu
el
Pe
re zP
8. Para concatenar strings basta colocar una al lado de la otra como en el ejemplo abajo. La afirmacin est:
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
9.1 Objetivos
Un contexto de extensiones puede incluir el contenido de otro. Por ejemplo, considere los siguientes contextos. Contexto default
Extensin 4101 4102 0 Descripcin Juan da Silva Jose da Silva Telefonista
Contexto local
Extensin _9NXXXXXX Descripcin Llamadas locales
Ex
clu
inclusin de contextos. Alterar la prioridad de como Asterisk encuentra una extensin. Usar el concepto de Macros para evitar la digitalizacin repetitiva de comandos. Configurar un men de URA para recepcin de llamadas. Programar seguimiento incondicional y seguimiento para ocupado usando la base de datos de Asterisk AstDB. Usar contextos basados en horarios y el comando gotoiftime() para crear mensajes fuera del horario de expediente. Programar el recurso de lista negra de telfonos que no deben ser atendidos. Programar una central ms sofisticada con men de URA, seguimiento y seguimiento incondicional, restriccin de DDD y DDI, autenticacin de los usuarios y lista negra. Entender los principales pasos en la configuracin de un PBX basado en Asterisk. Usar el concepto de Switches para pasar comunicaciones para otro servidor Asterisk.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
include=>
"default"
Aqu definiremos tres extensiones: El contexto default permite discar tres extensiones: Juan, Jos y el telefonista. El contexto local tiene un estndar de extensiones para permitir el discado de nmeros de siete dgitos (llamadas locales). El contexto larga distancia tiene un estndar de extensiones para permitir un discado de larga distancia, y este tambin incluye el contexto local, de este modo permitiendo al usuario hacer llamadas locales y tambin discar las extensiones de Juan, Jos o la telefonista. Usando contextos de extensin usted puede cuidadosamente controlar quien tiene acceso a los servicios de discado Si ms de un estndar corresponde al nmero discado, el Asterisk puede no usar el que usted espera. Vea la seccin, correspondiente al orden de bsqueda de las extensiones del asterisk. Cuando el Asterisk recibe una llamada de entrada en un canal, el Asterisk mira en el contexto definido por el canal por comandos diciendo al Asterisk lo que este debera hacer. El contexto define diferentes conjuntos de comandos dependiendo de que extensin el usuario disc. Por ejemplo, el contexto puede dar un conjunto de comandos para definir cual usar si el usuario disc 123 y otro conjunto de comandos si el usuario disco 9 y otro si el usuario disc cualquier nmero iniciado con 555. Para cada contexto, usted debe definir una o ms extensiones. El Asterisk las usa para comparar contra el nmero discado. Para cada extensin, usted dice al Asterisk que hacer listando un conjunto de comandos. Las dos reglas de oro sobre contextos: Una extensin solo puede discar para nmeros que estn dentro del mismo contexto. El contexto de una comunicacin es definida por el canal de entrada de comunicacin (zapata.conf, iax.conf, sip.conf).
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
la instruccin context= en la definicin del telfono en el archivo sip.conf. Si usted define el contexto como ramales el usuario solo podr discar para otros ramales. Si se define local el usuario podr discar para los ramales y para nmeros locales porque el contexto ramales est incluido en el contexto local. Las instrucciones [DDD] y [DDI] complementan el concepto.
[ramales] exten => _4XXX,1,Dial(SIP/${EXTEN}) exten => _4XXX,2,Congestion() [local] ignorepat => 0 exten => 0,1,Dial(Zap/g2/) exten => 0,2,Congestion() include => ramales
Esta es una situacin donde usted levanta el telfono, recibe la tonalidad y comienza a discar el nmero para llamar.
Ex
clu
La lnea ignorepat manda a los canales del Asterisk a no dar el tono de discado hasta que el estndar este siendo discado, de la misma forma despus de discar 0, este todava recibe el tono de discado como si estuviese tomando una lnea externa.
siv
op
ar
Siempre es bueno mantener en un PBX nuevo la misma experiencia que en un PBX anterior. Cuando usted disca 0 en su PBX actual, este da el tono de lnea externa. Cuando usted disca 0 en Asterisk, este permanece mudo esperando que usted disque todo el resto. Para resolver esto tenemos un comando muy til, la instruccin ignorepat.
aV
ice
nt
eM
[DDI] ignorepat => 0 exten => _00.,1,Dial(Zap/g2/${EXTEN:1}) exten => _00.,2,Congestion() include => DDD
igu
el
Pe
[DDD] ignorepat =>0 exten => _00XXXXXXXXXX.,1,Dial(Zap/g2/${EXTEN:1}) exten => _00XXXXXXXXXX.,2,Congestion() include => local
re zP
ar ed es
Considere una lnea telefnica tradicional conectada en la compaa telefnica. Cuando usted levanta el tubo y comienza a discar, cada digito es enviado y procesado inmediatamente, (encuentra en cuanto disca). En contraste, considere un telfono celular, usted digita el nmero de telfono y al final presiona el botn enva y el telfono enva todo de una vez. Una vez que la llamada tenga completado, ambos telfonos funcionan de la misma forma. Si por ejemplo, usted disca para una compaa y es recibido por el sistema de buzn de voz, cualquier dgito que usted disque, ya sea usando un telfono celular o uno comn son enviados a medida que usted marca. Para Asterisk, el estilo todo de una vez de discar es ms fcil de procesar: Asterisk solo verifica si el nmero discado condice con cualquier estndar de extensin en el contexto actual del plan de discado. El estilo encuentra en cuanto disca es un poco ms difcil porque no est claro cuando usted va a terminar el discado. De un lado usted no quiere que Asterisk permanezca esperando; usted quiere que este procese el nmero lo ms rpido posible, por otro lado Asterisk tiene que esperar si algn dgito adicional va a afectar como esta gerencia su llamada. Entender como el encuentra en tanto usted disca funciona, lo ayudara a decidir como colocar sus nmeros de extensin y como definir los padrones de extensin usados.
Cuando usted teclea otro dgito, existirn padrones de extensin que podrn dar con el nmero? Asterisk considera el nmero que usted disc hasta el momento y busca los padrones de extensin definidos en aquel contexto. Si la respuesta a la cuestin es que si, entonces el Asterisk va a esperar para ver si usted va a teclear otro dgito, lo mismo si existe un nmero de telfono completo que corresponda al que usted ya digit. Por ejemplo, vamos a decir que usted tenga:
exten=>123,1,DoSomething(...) exten=>_XXX.,1,DoSomethingElse(...)
Si usted digit 123, Asterisk esperar para ver si usted va a digitar otro dgito, porque no est claro que usted quiere la extensin 123. Por
Ex
clu
siv
Cuando el Asterisk est procesando el nmero discado, la primer cosa que Asterisk considera es:
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
ejemplo, la extensin 123999, podra corresponder al segundo estndar definido. Asterisk verificar todos los estndares de extensin definidos para el contexto actual. Si existe por lo menos un estndar posible, que puede ocurrir en el caso que usted tecle un nuevo dgito, Asterisk esperar. Cunto tiempo Asterisk esperar? Eso Va a depender de dos factores. Primero, si es una nueva llamada de entrada o una conexin establecida. Nuevas llamadas de entrada son aquellas en que Asterisk no inicio el procesamiento de cualquier comando del plan de discado. Para canales Zap, esto significa que alguien levanto el tubo y comenz a discar y Asterisk est procesando cada dgito en la medida en que este es discado. Para nuevas llamadas, el segundo factor que afecta cuanto tiempo Asterisk espera por ms dgitos antes de desistir es el tipo de canal de donde la llamada esta viniendo. Cada tipo de canal determina su propio perodo de timeout. Un canal Zap tiene un tiempo fijo de 3 segundos y esto no puede ser mudado a no ser modificando el cdigo fuente y recompilando el mdulo Zap. Conexiones establecidas son aquellas donde Asterisk ya hizo la conexin inicial, fue para la extensin (al igual que la extensin s), inici el procesamiento de comandos y permaneci sin comandos para procesar y est esperando ahora que algo sea discado. Tpicamente, uno de los comandos que el Asterisk podra haber ejecutado es el comando Background para tocar un mensaje grabado, presentando un men de URA y Asterisk quedara esperando que sea discada la eleccin del men. Para conexiones establecidas, el factor que afecta el perodo de timeout es el valor DigitTimeout. El valor estndar de digittimeout es de 5 segundos, pero esto puede ser cambiado usando el comando del mismo nombre. Lo que enseguida hace Asterisk Si asterisk esper, pero no recibi ningn dgito en el perodo de timeout, o el Asterisk no encontr cualquier estndar de extensin, si usted disco mas dgitos, podra discar con su nmero. Es entonces que Asterisk va a considerar la cuestin: el nmero se marca con cualquier extensin en el contexto actual? Si: Salta para la primer extensin que marca. Si ms de una extensin se marca, asterisk salta para la primera que este encuentra. Asterisk no considera los estndares de extensin en el orden en que usted los define, de forma que la extensin encontrada puede no ser la que usted desea.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
No: Si el nmero que usted disc es invlido en el contexto actual, entonces la accin que asterisk toma depende en que situaciones ella esta. 1. Si esta es una conexin de entrada nueva, entonces Asterisk retornar una seal apropiada de nmero invlido para quien disc. Si fuera un canal Zap el usuario recibir un tono de discado invlido, si fuera un telfono IP podr eventualmente recibir un mensaje de discado invlido. En esta situacin, ningn comando del plan de discado fue ejecutado y no existe control sobre el comportamiento de Asterisk en el modo que el gerencia un nmero invlido. Asterisk no salta para la extensin i en esta situacin. 2. Si por otro lado, esta una conexin establecida, Asterisk salto para una extensin, inici la ejecucin de comandos (ej. tocando un mensaje de un men de ura) y permaneci sin comandos, esperando que el usuario disque alguna cosa. En este caso el discado de un nmero invlido hace que Asterisk salte para la extensin i. Si la extensin i no estuviese definida en este contexto, asterisk colgar.
Cuando usted llama a la empresa, asterisk tocar el archivo bienvenido-ala-empresa.gsm. Despus de esto, permanece sin comandos para ejecutar y espera que usted disque algo. Esto es lo que este har si usted disca varias opciones. Nmero discado 1 2 21 22 3 31 Accin de Asterisk Inmediatamente hace el discado Dial(Zap/1) Espera por el timeout y entonces hace Dial(Zap/2) Inmediatamente hace el Dial (Zap/3) Inmediatamente hace el Dial (Zap/4) Espera por el timeout entonces cuelga Inmediatamente disca para Dial(Zap/5)
Ex
clu
siv
op
ar
aV
ice
Una empresa quiere que sus llamadas telefnicas sean respondidas con un mensaje de voz dando la bienvenida a quien llamo e invitando a escoger una extensin. La empresa tiene seis extensiones que son 1,2,21,22,31,32. Entonces el contexto creado para las llamadas entrantes es:
nt
eM
igu
9.3.2 Ejemplo
el
Pe
re zP
ar ed es
32 4
Note que cuando alguien intenta discar la extensin 2, este no es conectado inmediatamente. Asterisk espera para ver si quien disco va a teclear ms dgitos para determinar cual extensin es deseada 2,21 o 22. Como todo el mundo le gustara ser atendido inmediatamente, lo ideal es no usar un plan de discado ambiguo. Si la compaa no quisiera perder llamadas si fuera discado un nmero invlido, el ideal es definir una extensin i (invalida) para este contexto y t (timeout).
Solo que no funciona. Usted descubre que no importa el nmero que usted disca, todos los nmeros son enviados va Zap/2. Esto ocurre porque Asterisk ordena las extensiones y toma la primera que corresponda. Para ver el orden por el cual Asterisk ordena las extensiones, digite el comando dialplan show ejemplo en la consola. Usted va a descubrir que el orden es:
_ _918 h
Note que este es un orden diferente del cual usted defini en su archivo extensions.conf. La lnea con _. es ahora la primera, incluyendo aquellas
Ex
clu
siv
op
ar
aV
Vamos a decir que para el contexto ejemplo, usted deseara que los nmeros iniciados con 918 salgan por una lnea analgica conectada en Zap/1, y todos los otros nmeros salgan por la Zap/2. Entonces usted escribe algo como sigue:
ice
nt
eM
Problema ejemplo:
igu
el
Pe
re zP
ar ed es
que comienzan con 918. Note tambin que la extensin h no puede ser alcanzada, porque ella tambin corresponde al _.
Asterisk (cuando en el contexto ejemplo) procesar los nmeros discados en el siguiente orden.
_918 h _
Reloading
Con la instruccin #include <nombre de archivo> en extensions.conf, otros archivos son incluidos. De esta forma usted puede configurar el sistema donde extensions.conf es el archivo principal, users.conf contiene los usuarios locales, services.conf contiene varios servicios como conferencia. De esta forma el plan de discado puede ser ms fcil de mantener, dependiendo del tamao de su setup. No confunda el #include <nombre de archivo> con la instruccin include <context>. El #include funciona en todos los archivos de configuracin de Asterisk.
Ex
clu
Si usted quisiera recargar el plan de discado despus de cambios, sin recargar toda la configuracin de Asterisk. Use el comando de consola dialplan reload.
siv
op
ar
aV
Las entradas exten=> dentro del contexto ejemplo son ordenadas y testeadas primeras. El contenido de cada contexto incluido es ordenado y testeado enseguida. Los contextos incluidos son testeados en el orden de las lneas incluidas en extensions.conf.
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Un uso del comando Background() es tocar un mensaje de men (Presione 1 para ventas, 2 para soporte,...), sin tener ningn comando adicional. De este modo el Asterisk, no teniendo comandos para ejecutar, espera por cualquier dgito DTMF que el usuario pueda discar en tanto esta continua tocando el archivo de audio. Si el usuario disca un nmero de extensin que es valido en el contexto actual, el archivo de audio ser interrumpido y Asterisk saltar para la extensin discada. Si el usuario no disca una extensin, entonces el Asterisk terminar de tocar el archivo de audio de fondo y esperar silenciosamente por un tiempo en segundos definido por la variable ResponseTimeout hasta que el usuario disque algo. Si termina el tiempo de control va para la extensin t (defendindose en este contexto, seal colgar). Si el usuario disca una extensin que es invalida en el contexto actual, el control salta para la extensin i (Definida en este contexto, seal colgar). Ejemplo:
[incoming] exten=>s,1,Answer
Ex
clu
siv
op
ar
aV
Si el Asterisk permanece ejecutar comandos para una extensin dada, pero la conexin todava estuviese activa (El usuario todava no descolg), El Asterisk terminar de tocar el audio en background antes de activar el temporizador ResponseTimeout.
ice
nt
eM
Comienza tocando un archivo de audio dado, pero inmediatamente retorna, permitiendo al archivo de audio tocar de fondo entre tanto los prximos comandos (cualesquiera sean) se ejecuten. (Comparando con el comando Playback, que tambin toca un archivo de audio, pero que espera hasta que el audio este terminando antes de retornar el control). Si usted hiciese una segunda llamada al aplicativo Background, en tanto el primer todava estuviese sonando, el segundo archivo ser alineado para tocar despus del trmino del primero.
igu
el
Pe
re zP
ar ed es
Sintaxis:
Descripcin:
Goto([[context|]extension|]priority)
Configura la prioridad para un valor especfico opcionalmente, configurando opcionalmente tambin la extensin del contexto. La extensin BYEXTENSIN es especial, porque usa la extensin actual, de este modo permitiendo que usted va para un contexto diferente sin especificar una extensin dada. Variantes vlidas del comando:
Ex
clu
siv
op
El comando goto()
ar
Note que si usted usa el comando Background en un macro este va siempre a llamar a una extensin fuera del contexto de quien llam.
aV
ice
Si el usuario disca cualquier otro nmero, Asterisk salta para la extensin i y toca el audio del archivo pbx-invalid.gsm entonces vuelve para el inicio. Si el usuario no digita ninguna extensin de fin de 5 segundos de silencio, entonces Asterisk saltar para la extensin t, y de esta siguen a Goto para volver al inicio nuevamente.
nt
eM
igu
el
En este ejemplo, una llamada llegada de un contexto de entrada es inmediatamente respondida por Asterisk (paso s,1). Nosotros configuramos el tiempo de respuesta en 5 segundos (paso s,2). Entonces comenzamos a tocar el audio del archivo mimenu.gsm (paso s,3). Entonces alineamos hacia el audio del archivo escojaalgo.gsm para tocar una vez que el primer audio haya terminado. (paso s,4). Como no existe paso s,5, El Asterisk continua tocando mimenu.gsm y escojaalgo.gsm hasta estar terminado y entonces silenciosamente espera cinco segundos ms por una respuesta. Si en cualquier momento, con el audio sonando o no, el usuario disca una extensin entonces el Asterisk para de tocar el audio y salta para la extensin. Si esta disca 1, 2o 3, entonces Asterisk saltar para la extensin apropiada.
Pe
re zP
ar ed es
Goto(context,extension,priority) Goto(extension,priority) Goto(priority) Aviso: Insertando un espacio despus de las comas separando los parmetros podr producir resultados inesperados. Ejemplo:
Cdigos de retorno: Siempre retorna 0, lo mismo para un prioridad sea invlido. Ejemplo:
exten=>1,1,Goto(submenu,s,1) exten=>600,4,Goto(s,6)
Un anuncio normalmente es tocado en la extensin s, al entrar en el men. Entonces la aplicacin Background toca un mensaje, mientras espera que el usuario disque una extensin. El ejemplo de arriba presenta dos mens, uno llamado men principal y otro llamado ventas. Cuando alguien entra en el contexto men principal oir un anuncio (Como presione 1 ventas, 2 soporte, 9 directorio y 0 telefonista). Al discar 1, el originador es transferido para ventas, discando 2 sonar Zap/2, har sonar el Zap/3 y 9 presentar el directorio de la empresa. Ejemplos de discado:
Ex
clu
[ventas] exten => s,1,Background(bienvenido-ventas) exten => 1,1,Goto(default,100,1) exten => 2,1,Goto(default,101,1)
siv
op
[menuprincipal] exten => s,1,Background(bienvenido-menuprincipal) exten => 1,1,Goto(ventas,s,1) exten => 2,1,Dial,Zap/2 exten => 9,1,Directory(default) exten => 0,1,Dial,Zap/3
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
El tipo de extensin ms comn es aquella la que disca para otra interfase. El hecho de llamar con otra interfase es realizado con la aplicacin Dial. En este ejemplo usamos el comando Dial en su forma ms simple.
exten => 8590,1,Dial(Zap/1,20) exten => 8590,2,Voicemail(u8590) exten => 8590,102,Voicemail(b8590)
Cuidado en las expresiones pues se precisa que haya espacio antes y despus de la seal de igual.
Ex
clu
siv
op
ar
Ejemplo:
aV
GotoIf(condition?label1[:label2])
ice
nt
Sintaxis:
eM
El comando gotoif() permite un salto condicionando la resolucin de una expresin. Vea el ejemplo de abajo:
igu
el
El comando gotoif()
Pe
En este ejemplo, es una de las pocas excepciones para la ejecucin de una extensin estando fuera de orden. Cuando esta extensin es discada, la primer cosa que Asterisk intenta discar es la interfase Zap/1, por un mximo de 20 segundos. Si la interfase est ocupada, esta saltara para la prioridad n+101 si tal prioridad existe en esta extensin. En este caso, tenemos nosotros prioridad (102), la cual enva el originador para la caja postal de buzn de voz 8590 con un mensaje de ocupado (busy). Si simplemente nadie atiende, entonces la ejecucin continuar en el paso siguiente, donde el originador ser colocado en el buzn de voz con el mensaje de nadie atendi (unavailable).
re zP
ar ed es
Especifica el encaminamiento para otro servidor. El usuario y clave precisan ser definidos en el archivo iax.conf del servidor que es llamado. El contexto es el contexto del servidor de destino.
9.6 Macros
Un macro es un conjunto de comandos que van ha ser ejecutados en secuencia. Los macros son usados primariamente para procesar las extensiones, de forma que no sea necesario en el plan de discado digitar varias lneas de comando para cada extensin. Programacin del Macro. Descripcin: Macro(macroname,arg1,arg2...)
Cdigos de retorno: El Macro retorna 1 si cualquier paso en el macro retorna -1, sino retorna 0. Ejemplo:
[macro-stdexten] ;Macro extensin estndar ; ;${ARG1}-Telfono por sonar (ring) exten=>s,1,Dial(${ARG1},20,j) exten=>s,2,Voicemail(u${MACRO_EXTEN}) exten=>s,3,Goto(default,s,1) ;Si fuese presionado #, retorna al inicio exten=>s,102,Voicemail(b${MACRO_EXTEN}) ;Si esta ocupado, enva un voicemail con o sin anuncio de busy
Ex
clu
La extensin que fue llamada, contexto, y prioridad son almacenadas en ${MACRO_EXTEN}, ${MACRO_CONTEXT} y ${MACRO_PRIORITY} respectivamente. Los argumentos se tornan ${ARG1} y ${ARG2} etc en el contexto del macro. Si usted usa el comando Goto para afuera del contexto del Macro, este terminar y el control ser retornado al local indicado por Goto (Ver comandos y aplicaciones). Si usted coloca ${MACRO_OFFSET} en el trmino, el macro intentar continuar en la prioridad MACRO-OFFSET+N+1, si tal paso existe y N+1 en el caso contrario.
siv
op
ar
aV
ice
nt
Note que usted no puede usar cualquier otra extensin diferente de s para construir el macro, de forma que el control es retornado al contexto de la llamada cuando termina el procesamiento del macro.
eM
igu
Ejecuta un macro usando el contexto macro-<macroname>, saltando para la extensin s de aquel contexto y ejecutando cada paso, as entonces para ir retornando al final.
el
Pe
re zP
ar ed es
exten=>s,103,Goto(default,s,1) al inicio
retorna
Ex
clu
siv
op
Existen funciones de acceso al banco de datos de Asterisk que usted puede usar dentro del plan de discado en el archivo extensions.conf:
ar
aV
9.72 Funciones
ice
nt
eM
igu
9.7.1 Familias
el
Pe
re zP
ar ed es
[macro-stdexten] ;${ARG1}-Extension exten=>s,1,gotoif(${DB_EXISTS(CFIM/${ARG1})?cfim) exten=>s,n(dial),Dial(SIP/${ARG1},20) exten=>s,n,goto(${DIALSTATUS}) exten=>s,n,hangup() exten=>s,n(BUSY),gotoif(${DB_EXISTS(CFBS/${ARG1)?cfbs:end) exten=>s,n(cfbs),Dial(SIP/${DB(CFBS/${ARG1})},20) exten=>s,n,hangup() exten=>s,n(cfim),Dial(SIP/${DB(CFIM/${ARG1})},20) exten=>s,n,hangup()
Notas:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
prioridad 102.
el
Pe
re zP
ar ed es
Ejemplo:
[entrada] exten => s,1,LookupBlacklist(j) exten => s,2,Dial(SIP/4000,20,tT) exten => s,3,Hangup() exten => s,102,Goto(bloqueado,s,1) [bloqueado] exten => s,1,Answer() exten => s,2,Playback(llamadabloqueada) exten => s,3,Hangup()
Ex
clu
siv
op
ar
aV
Note que el valor asociado a la clave es 1 y puede ser cualquier valor. La aplicacin LookupBlackList buscar la llave y no el valor.
ice
nt
eM
Los nmeros pueden ser colocados en banco de datos usando comandos de consola en la interfase de lnea de comando CLI.
igu
el
Pe
re zP
ar ed es
Para insertar un nmero en la lista negra podemos usar el mismo recurso usado anteriormente en sgame. Usando *31* seguido de la extensin. Para remover de la lista negra basta usar #31# seguido del nmero a ser removido de esta lista.
De forma que uno de los dos va a tener la extensin s (Start) estos van a tocar la llamada apropiada y transferir para el menuprincipal. Despus del anuncio del men principal el sistema esperar por el discado de 1 dgito, pudiendo transferir para ventas o para cualquier ramal en el contexto default. Note que no es posible transferir para una lnea externa, pues el contexto discar externo, no est incluido en el contexto men principal.
Ex
clu
siv
Por ejemplo:
op
ar
aV
En la figura de arriba tenemos un plan de discado hecho de varios contextos. Cuando una llamada est entrando, esta viene por un canal. Este canal pertenece a un contexto. En el caso de arriba el canal pertenece al contexto menuprincipal. Dentro del contexto menuprincipal, tenemos dos contextos que fueron incluidos fueradeexpediente y expediente. Estos dos contextos fueron incluidos usando el comando:
ice
nt
eM
igu
el
Pe
re zP
ar ed es
GotoifTime().
<timerange>=<hour>':'<minute>'-'<hour>':'<minute> |"*" <daysofweek>=<dayname>|<dayname>'-'<dayname>|"*" <dayname>="sun"|"mon"|"tue"|"wed"|"thu"|"fri"|"sat" <daysofmonth>=<daynum>|<daynum>'-'<daynum> |"*" <daynum>=un nmero de 1 a 31 <hour>=un nmero de 0 a 23 <minute>=un nmero de 0 a 59 <months>=<monthname>|<monthname>'-'<monthname>|"*" <monthname>="ene"|"feb"|"mar"|"abr"|"may"|"jun"|"jul"|"ago"|"sep"| "oct"|"nov"|"dic" Nombres de da y de mes no diferencian maysculas y minsculas.
exten=>s,1,GotoIfTime(8:00-18:00|mon-fri|*|*?expediente,s,1)
Ex
clu
siv
op
ar
aV
Si la hora actual corresponde al tiempo especificado, el comando saltar para la extensin especificada. Cada uno de los tems podr ser rellenados con * (siempre) o como una faja. Si el tiempo actual no indica con una hora especificada el prximo comando deber ser ejecutado.
ice
nt
eM
GotoIfTime(<timerange>|<daysofweek>|<daysofmonth>|<months>?[[context|]exten sin|]pri)
igu
el
Pe
re zP
Los mensajes dependientes de horario pueden tambin ser programados usando la aplicacin:
ar ed es
Por otro lado si analizamos la salida de llamadas, vamos a imaginar que un canal haya sido colocado en el contexto [discarexterno] (Muy semejante a las clases de ramales de los PBX convencionales), este puede discar un nmero externo, y tambin discar cualquier ramal en el contexto default que tambin fue incluido en el contexto [discarexterno]. Es importante entender que el que define el contexto de un canal no es la entrada exten=> en el archivo extensions.conf, lo que define el contexto de un canal es la configuracin del canal (sip.conf o zapata.conf dependiendo del tipo de canal). Por esto un canal que haya sido definido como contexto default puede discar apenas los otros ramales y uno que haya sido definido como [discarexterno], puede discar externamente y tambin para todos los ramales, pues el contexto default fue incluido en el contexto discarexterno.
Transfiere para el contexto expediente la extensin s prioridad 1 si la llamada llega entre las 08:00 hasta las 18:00, no verificando el da del mes o el mes.
Ejemplo de uso:
exten => s,1,DISA(no-password|default)
Con este comando por ejemplo el usuario disca para la central y sin pasar una contrasea, recibe un tono de discado. Cualquier llamada colocada en DISA en este caso ser procesada en el contexto default. Los argumentos para esta aplicacin permiten una contrasea global o contraseas individuales dentro de un archivo. Si ningn contexto fuese especificado ser usado el contexto disa. Si fuera usado un archivo de contrasea (especificado el camino completo del archivo) el archivo puede contener # y ; para comentarios. Mas alla de esos argumentos pueden tener un callerid adicionado a el para que un nuevo callerid pueda ser usado en esta llamada. Ejemplo:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
4 enlaces analgicos.
o ddd (comunicaciones nacionales). o ddi (comunicaciones internacionales). Mensaje cuando se esta fuera de expediente Atencin Automtica de llamada
Ex
clu
siv
op
3 clases de ramales.
ar
aV
ice
nt
Vamos a construir un plan de discado en la prctica para una pequea central telefnica. La central posee las siguientes caractersticas y requisitos:
eM
igu
el
Pe
re zP
ar ed es
T400P o cuatro placas modem Motorola o Intel (Aquellas de las que s se compran cada 5 una sale buena). Vamos asumir en este caso que los drivers del hardware de la placa de telefona (zaptel.conf) ya estn configurados y cargados. En el archivo zapata.conf usted configura los canales zap correspondientes a los enlaces de la central.
signalling=fxs_ks language=en context=entrada group=1 channel => 1-4
[2040] type=friend username=20 secret=contrasea host=dynamic mailbox=20 context=puededdi canreinvite=yes dtmfmode=rfc2833 [2060] type=friend username=20 secret=contrasea host=dynamic mailbox=20
Ex
clu
siv
op
ar
aV
[general] disallow=all allow=gsm allow=ulaw bindport = 5060 bindaddr = 0.0.0.0 context = ramales
ice
nt
eM
igu
Vamos a escoger el rango de numeracin del nmero 2000 al nmero 2100. Dos codecs van a ser utilizados, GSM y G711 ulaw. El primero es para telfonos conectados a Internet o en lneas de baja velocidad, el segundo para los telfonos locales. Vamos hacer una convencin que ramales de los nmeros 2000 hasta el 2039 son restrictos, de los ramales 2040 hasta el 2059 pueden hacer DDD y del nmero 2060 en adelante pueden hacer DDI.
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Para recibir las llamadas, vamos a usar dos contextos uno para comunicaciones durante el expediente y otra para comunicaciones fuera del expediente. La comunicacin va a ser atendida por un contestador automtico y transferida directamente para un ramal o para algn otro men. Mens: Expediente y fuera de expediente En los mens de abajo, el sistema tocar un mensaje avisando al originador de la llamada que la empresa se encuentra fuera de expediente, pero permitiendo que el usuario disque un ramal (eventualmente alguien est haciendo horas-extras).
[entrada] include=>expediente|08:00-18:00|mon-fri|*|* ; Este es el horario fuera de expediente include=>fueradeexpediente|18:00-23:59|*|*|* include=>fueradeexpediente|00:00-07:59|*|*|* include=>fueradeexpediente|*|sat-sun|*|* [expediente] exten=>s,1,Goto(menuprincipal,s,1) [fueradeexpediente] exten=>s,1,Background(fueradeexpediente) exten=>s,2,hangup() exten=>i,1,hangup() exten=>t,1,hangup() include=>ramales
[menuprincipal] exten=> s,1,Background(bienvenido-menuprincipal) exten=>1,1,Goto(ventas,s,1) exten=>2,1,Goto(soporte,s,1) exten=>3,1,Goto(entrenamiento,s,1) exten=>i,1,Playback(Invalido) exten=>i,2,hangup() exten=>t,1,Dial(${TELEFONISTA},20,Tt) include=>ramales [ventas] exten=>s,1,Dial(${VENTAS},20,Tt)
Ex
clu
siv
Durante el expediente el usuario es recibido por el men con contestador automtico. El mensaje ser algo como: Bienvenido, usted se comunica con la NombredelaEmpresa, Disque 1 para ventas, 2 para soporte y 3 para entrenamiento o el ramal deseado.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Con esto la mayor parte de la funcionalidad de su plan de discado est lista y ahora usted puede comenzar a testear y mejorar su configuracin. En la prxima seccin vamos a ver ms detalles sobre las aplicaciones ms comunes.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
9.13 Cuestionario
1. Para incluir un contexto que depende del horario, usted puede usar: include=> context|<times>|<weekdays>|<mdays>|<months> El comando que sigue: include=>expediente|08:00-18:00|mon-fri|*|*
4. Para concatenar varias extensiones basta separarlas con la sea ___. 5. Un men de voz normalmente es creado con el comando inicial __________. 6. Usted puede incluir archivos dentro de sus archivos de configuracin con el comando ___________. 7. Asterisk permite que se use el plan de discado una base de datos basada en:
Ex
Reciba una seal de ocupado si el CallerID=482518888 Reciba una seal de ocupado independientemente del nmero discado Va para el canal ZAP/1 Va para el VoiceMail() si el canal ZAP/1 estuviese ocupado o no atiende, excepto en el caso donde el CallerID fuera 482518888
clu
siv
op
ar
aV
ice
nt
eM
3. Los comandos:
igu
2. Cuando el usuario disca 0 para automticamente corta el audio. Esto es acostumbrado a discar el 0 y or el tono este comportamiento que el usuario est comando ___________.
el
tomar la lnea el Asterisk malo, porque el usuario est externo de discado. Para crear acostumbrado, se puede usar
Pe
re zP
ar ed es
Ejecuta las extensiones de lunes a viernes desde las 08:00 hasta las 18:00. Ejecutan las opciones todos los das en todos los meses. El comando es invlido.
Oracle MySQL Berkley DB PostgreSQL 8. Cuando usted usa el comando Dial(tipo1/identificar1&tipo2/identificar2) con varios identificadores, Asterisk disca para cada una en secuencia y espera 20 segundos o el tiempo de timeout antes de pasar para el otro nmero. La afirmacin es: Falsa Verdadera
9. En el comando Background la msica de fondo tiene que ser tocada enteramente antes que el usuario pueda digitar algo. La afirmacin es: Falsa Verdadera
Ex
clu
12. Un macro puede ser usado para automatizar una serie de operaciones en secuencia para una extension especfica. El primer argumento pasado por la llamada del macro es el:
siv
op
Correcta Incorrecta
ar
aV
11. Switches son usados para direccionar para otro PBX. La afirmacin de arriba es:
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
10.1 Objetivos
Gerenciamiento de llamadas.
Sala de conferencia.
En esta seccin vamos a ver una serie de recursos que fueron introducidos en la versin 1.0 de Asterisk para el tratamiento de llamadas. El archivo features.conf controla la mayor parte de estos recursos. Es importante entender que algunos recursos son implementados por el telfono y otros por Asterisk. Otro punto importante es el caso de telfonos IP basados en SIP con la configuracin canreinvite=yes. En este caso la comunicacin de media ocurre entre los dos telfonos, si el usuario presiona #, quien va a interpretar es el otro telfono y no necesariamente el Asterisk.
Ex
clu
siv
op
ar
Msica en espera.
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Al final de este captulo usted debe estar apto para configurar los siguientes recursos.
Estacionamiento de llamadas: Soportado en la instalacin estndar. Captura de llamadas: Soportado en la instalacin estndar (*8). Grabado de llamadas: Usando la aplicacin Monitor(). Conferencia: Usando la aplicacin MeetMe().
Llamada en espera: Normalmente implementado por el telfono. Transferencia a ciegas: Implementado en el * opcional del telfono. Llamada en espera con consulta: Implementado en el telfono
Rediscado automtico: Es posible usando AGI. Rediscado manual: Telfono No molestar: * Mensaje en espera: *, pero debe ser soportado en el telfono. Indicacin de llamada en espera: *, debe ser soportado en el telfono.
Ex
clu
siv
op
ar
aV
ice
nt
eM
Seguimiento incondicional: *
igu
el
Pe
re zP
ar ed es
Transferencia asistida: * Llamada de a tres: Normalmente implementado por el telfono. Filtrado de las llamadas: Creado en el plan de discado.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Es usado para estacionar una llamada. Esto nos auxilia cuando usted est atendiendo en un telfono fuera de su sala. Estaciona la llamada en una determinada extensin y cuando se mueve de vuelta hacia su sala digita la extensin donde la llamada est estacionada. Por default la extensin 700 es usada para estacionar una llamada. En el medio de una conversacin, presione # para iniciar una transferencia, entonces disque 700. Asterisk ahora anunciar la extensin de estacionamiento, pero probablemente 701 o 702. Cuelgue, y el originador de la llamada ser colocado en espera en la extensin anunciada. Vaya para un telfono diferente y disque 701 (la extensin anunciada) y entonces podr continuar conversando. Si el originador permanece estacionado por ms tiempo que el lmite entonces Asterisk har sonar la extensin discada originalmente.
Ex
clu
Notas:
siv
op
ar
aV
ice
nt
eM
3. Configure el archivo features.conf si usted quisiera alterar los estndares de funcionamiento del estacionamiento de las llamadas.
igu
el
Pe
re zP
ar ed es
En la transferencia a ciegas usted usa los dgitos que estuviesen definidos en el parmetro blindxfer en el archivo features.conf. Por ejemplo, si el blindxfer fuese configurado como #1, usted disca este nmero y el nmero de destino y cuelga el telfono. El atxfer permite la transferencia asistida o con supervisin. Funciona de la siguiente manera: Durante una conversacin, usted disca la secuencia de transferencia asistida #2, El asterisk pronuncia transfer y entonces le da a usted un tono de discado, en tanto coloca el originador en msica de espera. Usted disca para quien va a transferir y habla con l para introducir la llamada, entonces cuelga, la transferencia queda as completa. Si la persona transferida no quisiese atender, ella simplemente cuelga el telfono y usted recibir la llamada.
Ex
clu
siv
La transferencia de llamadas puede ser hecha de dos formas. A transferencia a ciegas (blind transfer) y la transferencia asistida.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
1. Configure el grupo para que sus extensiones pertenezcan dentro de uno de los siguientes archivos sip.conf, iax.conf, zapata.conf (obligatorio).
ar ed es
MeetMe(Confno[|options][|password])
10.6.2 Descripcin:
'i' Anuncia la entrada y salida de usuario. 'p'Permite al usuario salir de la conferencia presionando #. 'X'Permite al usuario salir de la conferencia discando una
extensin vlida de un dgito.
'v'modo vdeo.
Ex
clu
siv
op
ar
aV
ice
Coloca al usuario en una sala de conferencia especfica. Si el nmero de conferencia fuese omitido, ser pedido uno al usuario.
nt
eM
igu
el
10.6.1 Formato:
Pe
re zP
ar ed es
'q'modo quieto (no toca los sonidos de entrada y salida). 'd'adiciona dinmicamente la conferencia. 'D'dinmicamente adiciona la conferencia, pidiendo por pin
(personal identification number). Cuando oye el pedido del pin, si el usuario no quisiese un pin designado para la conferencia l deber discar #.
nico usuario.
's' Presenta un men (usuario o administrador) cuando * es 'x'Fecha la conferencia y cuelga en todos los otros cuando el 'w'Espera hasta que el usuario marcado entre en la
conferencia antes de permitir que alguien hable. Todos los otros usuarios conectados van a or msica en espera hasta que el usuario marcado entre.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2 Defina en el archivo meetme.conf las contraseas para cada extensin. Nota importante: La aplicacin MeetMe precisa de un temporizador para funcionar. Existen diferentes maneras de hacer un temporizador para que funcione, pero no va a funcionar por default si usted no tiene un hardware Digium Zaptel instalado. En este momento, apenas dispositivos zaptel pueden ser
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
10.5.6 Ejemplos
re zP
ar ed es
el driver ztdummy
MeetMeCount(confno[|var])
MeetMeAdmin(confno,command,user):
Aplicaciones avanzadas. Si usted desea, es posible todava usar la aplicacin MeetMe2 que posee una interfase grfica para el control de la
Ex
Traba la conferencia.
clu
siv
'K'
op
ar
aV
ice
Toca el nmero de usuarios en una conferencia MeetMe. Si la variable fuese especificada, el mensaje no ser tocado y la variable recibir el valor de cuenta de usuarios.
nt
eM
igu
el
Pe
Actualmente no es necesario usar ni el comando reload, ni el comando restart para que Asterisk note los cambios en el archivo meetme.conf.
re zP
ar ed es
conferencia, o tambin el app_conference que no precisa de un temporizador y es ms eficiente en trminos de traduccin de codecs.
/var/spool/asterisk/monitor
Una cosa importante es descompactar los archivos en MP3 para el formato RAW. Esto va a reducir bastante la carga de CPU usada por la msica en espera porque no ser necesaria decodificacin MP3 en tiempo real.
Ex
En la versin 1.2 permaneci bastante simplificado el uso de msica en espera. Ya no es necesario usar el mpg123 como en la versin 1.0.x. Siga los pasos de abajo para habilitar la msica en espera.
clu
siv
op
ar
[globals] DYNAMIC_FEATURES=>automon
aV
ice
Si usted no quisiese usar la aplicacin Set antes de cada comando Dial() usted puede usar la seccin globals.
nt
eM
igu
el
Pe
re zP
Los canales de audio de entrada (IN) y salida (OUT) sern separados en dos archivos y estarn disponibles en su servidor Asterisk en el siguiente directorio.
ar ed es
Si usted compila el sox con soporte a MP3 usted puede usar los comandos de abajo. sox -c 1 ejemplo.mp3 -t raw -r 8000 -c 1 -s -w ejemplo.raw Si usted tuviese el sox sin soporte a mp3 usted puede usar: $lame --decode ejemplo.mp3 ejemplo.wav $ sox -V ejemplo.wav -r 8000 -c 1 -w ejemplo.raw
Ex
clu
siv
op
ar
aV
Ejemplos:
ice
Exten=>100,1,SetMusicOnHold(default) Exten=>100,2,Dial(Zap/2)
nt
eM
En el plan de discado, usted debe configurar la msica en espera como en el ejemplo de abajo:
igu
el
asterisk en
porque
re zP
ar ed es
ha alterado en el el
archivo directorio
formato
Pe
.raw
10.9 Cuestionario
1. Con relacin a Call Parking asigne las afirmaciones verdaderas. Por Default la extensin 800 es usada para Call Parking Cuando fuese para el otro telfono la comunicacin disque 700 para recuperar a llamada Por Default la extensin 700 es usada para Call parking Digite la extensin anunciada para recuperar la llamada
Ex
clu
siv
6. Si fuese necesario administrar una conferencia, usted puede usar el aplicativo _______ y tirar un usuario de la sala.
op
ar
aV
ice
#2 #1 #1 #2
nt
eM
igu
4. Para hacer una transferencia asistida usted usa el __ en tanto para hacer una transferencia a ciegas (blind) usted usa ___.
el
Pe
3. En el caso de transferencia de llamadas existen las transferencias __________, donde el ramal de destino no es consultado antes y la transferencia __________ donde es posible verificar si el usuario est en la extensin.
re zP
ar ed es
2. Para que el Call Pickup funcione es preciso que las extensiones estn en el mismo _____. En el caso de extensiones Zap esto es configurado en _____.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
11.2 Introduccin
Fila de Clientes
ar
aV
ice
0800
op siv
nt
eM
igu
Las Filas de atencin de llamadas permiten que estas llamadas de entrada en el PBX puedan ser tratadas de forma ms eficiente. De una forma general los siguientes pasos son ejecutados en una fila de distribucin de llamadas.
el
Pe
re zP
DAC
Ringall,RoundRobin,Rrmemory, LeastRecent,Priority Agente1 Agente2
Ex
clu
ar ed es
AgenteN
1. Las llamadas de entrada son colocadas en la fila. 2. Miembros de la fila atienden (extensiones que autenticarn como agentes). 3. Una estrategia de gerenciamiento y distribucin de la fila es usada.
4. Se hace sonar msica en tanto el usuario espera en la fila. 5. Son hechos anuncios para miembros y para quien est en la fila. La principal aplicacin para filas es la atencin de llamadas dentro de una empresa o Call Center. Usando filas usted se evita de perder llamadas cuando sus agentes estn ocupados y mejora la productividad en la medida en que solo se distribuye para aquellos que estn listos para atender. Otro punto clave de las filas de atencin de llamadas y distribucin automtica de llamadas son las estadsticas que pueden ser generadas como TME (tiempo medio de espera), TMA (tiempo medio de atencin de llamadas), llamadas abandonadas, que permiten que usted pueda dimensionar cientficamente su atencin. Las filas son definidas en el archivos queues.conf. Los agentes son personas que responden a las llamadas que fueron colocadas en una fila especfica. Un agente se autentica indicando que est listo para recibir una llamada, los agentes son definidos en el archivos agents.conf. El Asterisk transfiere una llamada recibida para la fila, que es as transferida para un agente disponible.
Ex
clu
Las llamadas son distribuidas entre los miembros de una fila de acuerdo con una entre varias estrategias.
siv
11.4 Estrategias
op
ar
Miembros son aquellos canales que estn activos y respondiendo a la fila. Los miembros pueden ser canales directos (ej. Telfonos conectados al Asterisk). Usted puede definir tambin miembros como individuos que se autentican de cualquier conexin para recibir una llamada. Los Agentes son definidos en el archivo agentes.conf. El login de los agentes es hecho a travs de la aplicacin agentlogin.
aV
ice
nt
eM
11.3 Miembros
igu
el
Pe
re zP
ar ed es
random: Toca una interface aleatria. rrmemory: Round-robin con memoria, recuerda donde dejo la
ltima llamada.
11.7 Configuracin
11.7.1 Lista de Tareas
1. Crear la fila de atencin de llamadas (obligatorio).
Ex
clu
Clientes importantes
siv
Ejemplo:
op
Ahora usted puede tener una nica fila atendiendo las llamadas ordenadas desde las ms importantes hacia las menos importantes. La prioridad de una llamada entrando en la fila es determinada por una variable especial, QUEUE_PRIO. Valores ms altos de la variable significan mayor prioridad. Si la variable no recibe un valor, todas las llamadas tienen la misma prioridad, por default (FIFO).
ar
aV
ice
nt
eM
Los nuevos recursos permiten que las filas acten como filas de prioridad, mas all del modo actual FIFO (primero que entra es el primero que sale). Esto da la habilidad de enfilar una llamada no en el fin de la fila, pero en cualquier lugar de esta de acuerdo con la prioridad de la llamada.
igu
el
Pe
re zP
Queue() ahora tiene opciones para penalidad (penalty), tiempo para ordenarse (wrapuptime) y prioridad (priority). Estos recursos fueron adicionados al sistema de filas de Asterisk.
ar ed es
2. Configurar los agentes (opcional). 3. Crear los agentes de atencin de llamadas (opcional). 4. Colocar la fila en el plan de discado (obligatorio). 5. Configurar el grabado de los agentes (opcional). 6. Verificar el funcionamiento con agent show y queue show.
queues.conf
[telemarketing] music = default ;announce = queue-markq ;context = qoutcon timeout = 2 retry = 2 maxlen = 0 member => Agent/300 member => Agent/301 [auditoria] music = default ;announce = queue-markq ;context = qoutcon timeout = 15 retry = 5 maxlen = 0 member => Agent/600 member => Agent/601
[agents] ;Define autologoff si es apropiado. Esto es cuanto tiempo el telfono va ha tocar sin ;respuesta antes que el agente sea automticamente desconectado de la fila (en ;segundos).Note que si este valor fuese mayor que el valor de timeout de la fila,los ;agentes no sern removidos. autologoff=15 ; Define ackcall para pedir una confirmacin por '#' cuando un ; agente se loguea sobre agentcallpark. Por default es "yes". ;ackcall=yes ; Define el tiempo de wrapuptime. Esta es la cantidad mnima de tiempo que ; el agente tiene despus de desconectar antes que posea recibir una nueva comunicacin. ;Es el tiempo que el agente tiene por ejemplo para dar marcha al pedido ; del cliente. (En milisegundos). ;wrapuptime=5000 ;Define la msica en espera para los agentes. ;musiconhold => music_class musiconhold => default ;Un beep opcional para hacer sonar para los agentes con conexin ;permanente ;custom_beep=beep
Ex
clu
siv
agents.conf
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
;Grupos para agentes (puede cambiar en el medio del archivo apenas); group=1
extensions.conf
; Fila telemarketing. exten=>_0800XXXXXXX,1,Answer exten=>_0800XXXXXXX,2,SetMusicOnHold(default) exten=>_0800XXXXXXX,3,DigitTimeout,5 exten=>_0800XXXXXXX,4,ResponseTimeout,10 exten=>_0800XXXXXXX,5,Background(welcome) exten=>_0800XXXXXXX,6,Queue(telemarketing)
;Formato usado para grabar las llamadas (wav, gsm, wav49). El default es ;"wav". recordformat=gsm ;Inserte en el campo usuario del CDR el nombre de la grabacin creada ;Default, desconectado ;createlink=yes ;Texto a ser adicionado a la grabacin, permite formar un link url. ;urlprefix=http://host.domain/calls/ ;En directorio opcional para salvar las conversaciones ;El estandar es: /var/spool/asterisk/monitor savecallsin=/var/calls
Ex
clu
siv
queues.conf
op
ar
aV
; Login de los agentes para la fila telemarketing (0800) y auditoria (8000) exten => 9000,1,Wait,1 ; levemente pausada, no necesria exten => 9000,2,AgentLogin() ;recibir login invlido entre con el nmero de agente.
ice
nt
eM
; Transfiere para la fila auditoria exten => 8000,1,Queue,(Auditoria) ; Conecta a auditoria exten => 8000,2,Playback(demo-echotest) ; Ningun auditor est disponble exten => 8000,3,Goto(8000,1) ; Verifica el auditor nuevamente
igu
el
Pe
re zP
ar ed es
Sintaxis:
Agentlogin([agentnumber])
la fila el telfono del agente ser llamado, en vez de estar todo el tiempo abierto como el AgentLogin(). Ejemplo: Discado de salida pasado a los agentes, basado en filas. Parte 1: Login del agente Un agente de la fila telemarketing descuelga el telfono y disca #9000, l oye un mensaje de login invlido (y es pedido el nmero y la contrasea). La fila auditoria sigue el mismo proceso. La fila en la cual el termina depende de la separacin en agentes.conf. Parte 2: Fila
Ex
clu
Puede ser usado tambin el aplicativo AgentCallBackLogin(), en este caso el agente colocar el telfono para colgarlo y cuando alguien estuviese en
siv
op
Nota: Si el nmero agente no es pasado, un mensaje de login invlido ser tocado y pedir el nmero de agente y contrasea.
ar
aV
ice
nt
La aplicacin de AgentLogin es usada para lograr los agentes. A travs del uso de filas, usted puede enviar llamadas para quienes las atienden.
eM
igu
el
Pe
re zP
ar ed es
Una vez en la fila, el agente oir una MOH (msica en espera, si fue definida), o nada en caso contrario. Cuando una conexin ocurre, la llamada es conectada a un agente en la fila telemarketing. El agente oir un beep (la MOH dejara de sonar si estuviese tocando), y ser conectada a esa llamada. Parte 3: Trmino de la llamada Cuando un agente termina con la llamada el puede: Presionar * para desconectar y permanecer en la fila telemarketing.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
11.9 Cuestionario
1. Cite cuatro estratgias de ruteamiento del sistema de fila de atencin de llamadas.
los
agentes
usando
3. Para loguear un agente se usa el comando Agentlogin([agentnumber]). Cuando el agente termina la llamada este puede presionar: * para desconectarse y permanecer en la fila Colgar el telfono y ser desconectado de la fila Presionar #8000 y la llamada ser transferida para la fila de auditoria Presionar # para colgar.
6. Cuando en una fila de atencin de llamadas, usted puede definir un determinado nmero de opciones que el usuario puede discar. Esto es factible incluyendo un __________ en la fila. Agente Men Contexto Aplicativo
Ex
clu
siv
op
ar
aV
Crear la fila Crear los agentes Configurar los agentes Configurar la grabacin Colocar en el plan de discado
ice
entre
nt
eM
igu
4. Las tareas obligatorias para configurar una fila de atencin de llamadas son:
el
los
Pe
re zP
aplicativos
ar ed es
AgentLogin()
7. Las aplicaciones de apoyo AddQueueMember(), AgentLogin() , AgentCallBackLogin y RemoveQueueMember() deben ser incluidas en: __________ el Plan de discado la interfase de lnea de comando en el archivo queues.conf en el archivo agents.conf 8. Es posible grabar los agentes, pero para esto e preciso de un grabador externo. Verdadero Falso
Ex
clu
siv
op
ar
aV
ice
Correcta Incorrecta
nt
eM
10. Una llamada puede ser priorizada dependiendo del CallerID dentro de una misma fila. La afirmacin es:
igu
Verdadero Falso
el
Pe
re zP
9. Wrapuptime es el tiempo que el agente precisa despus del trmino de una llamada para prepararse para la prxima o completar procesos en relacin a la llamada atendida
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
12.2 Introduccin
Para configurar el buzn de voz usted debe seguir los siguientes pasos: 1. Configure el archivo voicemail.conf contraseas del voicemail (obligatorio).
siv
op
ar
aV
El recurso de buzn de voz permite que una llamada ocupada o no atendida sea enviada para una secretaria electrnica o contestador automtico. Un mensaje de aviso con audio anexado es enviado para el receptor del mensaje. Es uno de los recursos estndar de Asterisk. Es interesante que sistemas en una arquitectura de conmutacin de circuitos fueran antes mucho ms costosos y ahora con telefona IP se tornan estndar.
ice
nt
eM
igu
el
Pe
para crear
re zP
ar ed es
los usuarios
2. Configure el archivo extensions.conf para que una llamada ocupada o no atendida sea direccionada para el utilitario VoiceMail(). (Obligatorio). 3. Configure una extensin para que el usuario pueda or su buzn de voz y administrarlo.
Ex
clu
1234=>1234,SomeUser,email@address.com,pager@address.com,saycid=yes|dialout= fromvm|callback=fromvm|review=yes|operator=yes
o o o o o o
0 Opciones de casilla postal 1 Graba su mensaje de no disponible 2 Graba su mensaje de ocupado 3 Graba su nombre 4 Graba su mensaje temporneo 5 Cambia su contrasea * Retorna al men principal 1 Lee los mensajes de voicemail o 3 Opciones avanzadas 1 Reply 2 Call Back 3 Envelope 4 llamada de salida o 4 Toca el mensaje anterior o 5 Repite el mensaje actual o 6 Toca el prximo mensaje o 7 Apaga el mensaje actual o 8 Reencamina el mensaje para otra casilla o 9 Salva el mensaje para un folder (carpeta)
Ex
clu
siv
op
ar
Men
aV
ice
Cuando usted configura esta lnea en los archivos extensions.conf, o VoiceMailMain() va a llevarlo para un men de opciones donde usted podr ejecutar una serie de opciones:
nt
eM
exten=>9000,1,VoiceMailMain()
igu
el
Pe
re zP
ar ed es
b: La letra b, si esta presente, hace que el mensaje de ocupado sea tocado. Por default el mensaje dice: La persona en la extensin 1234 est ocupada Usted no puede especificar ambos la u y la b juntos. Usted puede en tanto si, combinarlos con s, dando seis posibilidades. s: No hace sonar nada (Sin opciones): Toca instrucciones
Ex
u: La letra u, si esta presente , hace que el mensaje no disponible sea tocado. Por default, el mensaje dice, La persona en la extensin .... 1234.... no est disponible pero el propietario de la casilla postal puede grabar su propio mensaje de no disponible con el comando Voicemailmain.
clu
siv
op
ar
s: La letra s, si esta presente, hace que las instrucciones ("Please leave your message after the tone. When done, hang up, or press the pound key.") no sea ejecutada. (En Castellano Por favor, deje su mensaje despus del bip, cuando termina, cuelgue o presione la tecla sosteniendo)
aV
ice
nt
eM
Graba el canal, salvando un archivo de audio en un nmero dado de casilla postal, que debe estar configurado en el archivo voicemail.conf. El nmero de casilla postal debe estar precedido por una o ms opciones.
igu
el
VoiceMail([flags]boxnumber[@context][&boxnumber2[@context]][&boxnumber3])
Pe
re zP
ar ed es
2 Revisin
su: Toca mensaje de no disponible u: Toca mensaje de no disponible, entonces instrucciones sb: Toca un mensaje de ocupado b: Toca un mensaje de ocupado, entonces instrucciones.
En todos los casos, el archivo beep.gsm ser tocado, antes de comenzar a grabar.
/var/spool/asterisk/voicemail/context/boxnumber/INBOX/ Si el originador presiona 0 (cero) durante el anuncio, este ser movido para la extensin o(Out) en el contexto actual del voicemail. Esto puede ser usado como salida para la recepcionista. Si usted no quiere esto, apenas configure la extensin para volver al voicemail, sino la llamada ser colgada.
Si la caja postal no existe, y existe la prioridad n+101, entonces esta prioridad ser la prxima. Si durante la grabacin el originador presiona # o el limite definido de silencio que este definido, la grabacin es parada y la llamada continua en la prioridad+1. Certifquese de hacer algo con el originador despus que este vuelva del voicemail(), seria algo as:
exten=>somewhere,5,Playback(Goodbye) exten=>somewhere,6,Hangup
Ex
clu
Cuando se usa el cero 0 y la estrella * es importante notar que el contexto que usted coloc la aplicacin voicemail es irrelevante, el contexto donde fue colocada la casilla postal del buzn de voz ser usada para saltar para las extensiones a u o.
siv
op
ar
'#'El mensaje de bienvenida y/o instrucciones son paradas y la grabacin comienza inmediatamente.
aV
ice
'*'La llamada salta para la extensin a en el contexto actual del buzn de voz.
nt
eM
igu
el
Pe
re zP
ar ed es
Los mensajes de buzn de voz sern grabados en el directorio inbox para aquellos nmeros de caja postal de buzn de voz.
attach
maxsilence
Maxsilence define cuanto tiempo Asterisk esperar por un perodo continuo de silencio antes de terminar una llamada para el voicemail. El valor estndar es 0, lo que significa que el detector de silencio permanece deshabilitado y el tiempo de espera es infinito. Maxsilence recibe un nmero entero que es el nmero de segundos que este esperar antes de desconectar.
envelope
Envelope controla si Asterisk tocar o no tocar un mensaje de envelope (data/hora) antes de tocar el mensaje de voicemail. (yes/no).
externnotify
Ex
clu
siv
op
Mailcmd permite al administrador, alterar el comando de e-mail por un comando definido por el usuario. Mailcmd recibe como comando un string con la lnea de comando deseada. El estndar es /usr/sbin/sendmail t
ar
aV
mailcmd
ice
nt
Nota: Esta configuracin no siempre funciona como una configuracin global. Es recomendado que usted coloque esto en cada casilla postal que el mensaje debe ser borrado despus de ser enviado por e-mail.
eM
igu
Si se ha configurado yes el mensaje ser borrado de la casilla de voicemail (despus de haber sido enviada por e-mail).
el
Pe
delete
re zP
hace que asterisk copie un mensaje de voicemail para un archivo de audio y lo enve al usuario como un anexo en un e-mail. El estndar es no (no).
ar ed es
Quiere correr un programa externo siempre que un llamador deja un mensaje en el buzn de voz para el usuario. Existe el comando externnotify. Recibe el valor de un string con el comando a ser ejecutado.
silencethreshold
Las veces cuando usamos el maxsilence, es necesario ajustar la deteccin de silencio para eliminar un disparo falso causado por ruido de fondo. Nmeros mayores permiten ms ruido de fondo. Es necesario experimentar hasta llegar a los valores apropiados.
maxmessage
Permite la seleccin de formato de audio usado para almacenar los mensajes de buzn de voz. El formato es un string y puede ser wav49|gsm|wav. wav49: En este formato el tamao de los archivos es pequeo y
la calidad buena. Es una buena opcin para mandar mensajes de notificacin por e-mail, pues tiene ms soporte en las estaciones con Windows.
Ex
format
clu
siv
Esta configuracin puede ser usada para eliminar mensajes que son ms cortos que un determinado nmero de segundos. El estndar es 0 que significa sin tiempo mnimo definido.
op
ar
aV
minmessage
ice
Define el tiempo mximo en segundos de un mensaje de entrada. Use cuando el espacio en disco fuese limitado. El estndar es 0 que significa sin limites.
nt
eM
igu
el
Esta configuracin puede ser usada para identificar la fuente de una notificacin de mensaje de voz. El valor es un string que puede ser codificado de una de dos formas. Si el string est en la forma alguien@host.com, entonces el string ser usado con direccin fuente en las notificaciones por e-mail. Si el string estuviera en la forma de alguien, entonces el nombre del host de la mquina que corre asterisk ser adicionado al final del string despus de la insercin de @.
Pe
re zP
ar ed es
serveremail
gsm: Bsicamente el mismo tamao y calidad de voz, pero es menos soportado por el cliente. wav: Formato no compactado, grande en el tamao y no es recomendado.
maxgreet
Permite al administrador limitar la compresin de un saludo de usuario grabado por el usuario. El valor es un entero definiendo el tiempo mximo en segundos. El estndar es 0 que significa sin limite.
skipms
cidinternalcontexts
review
operator
Permite a los usuarios ir para la telefonista mientras el mensaje est siendo grabado o una vez que el mensaje haya sido enviado, si la opcin review estuviese configurada. La telefonista debe ser configurada en la extensin o en el contexto de voicemail en el archivo extensions.conf. saycid
Vuelve a leer el nmero del llamado antes de tocar el mensaje de entrada, despus de ser tocado el mensaje de fecha y hora.
Ex
clu
A veces es interesante dejar al que llama reveer sus mensajes antes de pasar a los mensajes de su casilla postal. Los valores pueden ser yes/no.
siv
op
ar
Define los contextos internos usados para determinar el tipo de anuncio de voz a ser tocado cuando sea ledo la identificacin de llamada o cuando el recurso avanzado saycid estuviese habilitado. Esto altera el mensaje de llamada de 12345678 por llamada de la extensin.......
aV
ice
nt
eM
igu
Define el nmero de tentativas de login antes de que Asterisk desconecte el usuario. El valor debe ser entero y positivo. El estndar es 3.
el
Pe
maxlogins
re zP
Define el intervalo en milisegundos para usar cuando se pasa adelante o hacia atrs un mensaje est siendo tocado. El valor ingresado debe ser positivo y entero. El estndar es 3000 (3 segundos)
ar ed es
dialout
Especifica el contexto a ser usado para que una llamada de salida pueda ser usada. Recibe un string con el contexto.
callback
Especifica el contexto a ser usado en el recurso devolver la llamada. Recibe un string especificando el contexto de salida a ser usado.
dbuser
Especifica el nombre de usuario en la base de datos MySQL a ser usado en la aplicacin de buzn de voz. El valor es un string, el estndar es test. Note que Asterisk debe ser compilado con soporte para MySQL.
dbpass
dbhost
pbxskip
Esta configuracin cambia la lnea del asunto Subject:.en un mensaje de notificacin. Esta configuracin recibe yes/no. El estndar es no. Cuando esta en yes la lnea del asunto Subject: quedar: Subject: New message M em Mailbox B. Cuando este seteado en no la lnea del asunto quedara: Subject: [PBX]: New message M in mailbox B.
fromstring
Esta configuracin permite al administrador sustituir la porcin de la lnea From: en el mensaje de notificacin. Recibe un string.
Ex
clu
Especifica la opcin de base de datos Postgres. El valor es un string. Note que el Asterisk tiene que ser compilado para el Postgres para que esta opcin funcione.
siv
op
dboption
ar
aV
ice
dbname
nt
eM
igu
el
Especifica la contrasea en la base datos MySQL a ser usada para la aplicacin de buzn de voz
Pe
re zP
ar ed es
emailsubject
Esta configuracin substituye completamente la lnea asunto Subject: . El valor pasado es un string.
emailbody
Substituye el mensaje normal de texto vista en el cuerpo del mensaje de notificacin del voicemail. Tambin soporta la substitucin de variables. para tornarla ms legibles. Las variables son abordadas ms adelante.
Contexto de salida para dejar al usuario despus de tener presionado * o 0 para salir del voicemail.
nextaftercmd
VM_CALLERID VM_DATE
Ex
clu
VM_CIDNAME
siv
op
ar
aV
ice
nt
eM
igu
el
Si es configurado en yes despus de borrar el mensaje de voicemail, el sistema automticamente tocar el prximo mensaje.
Pe
re zP
ar ed es
exitcontext
Despus, la definicin en la seccin contexto de una entrada para cada buzn debe existir en este contexto. Los parmetros estn descriptos abajo: extensin_number: es el nmero de la extensin que ser designado para esta casilla de buzn de voz. Existen cinco parmetros que definen la configuracin de buzn de voz para esta entrada: voicemail_password: Contiene la contrasea numrica para esta casilla de buzn de voz. user_name: Campo alfanumrico con el primer y ultimo nombre de usuario. user_email_address: Direccin de e-mail para notificacin. pager_email_address: puede ser configurado para la direccin de e-mail de un pager de forma que cuando reciba un buzn de voz sea notificado en un celular. user_option(s):Campo a ser usado para sustituir valores definidos en la seccin general. Existen 9 pares del tipo configuracin=valor que pueden ser especificados. Las opciones deben ser separadas por la barra vertical (|). Las nueve configuraciones son: attach, serveremail,tz,saycid, review, operator, callback, dialout, e exitcontext.
Note que el make install no instala esta interfase a menos que usted corra make webvmail separadamente. Este script requiere que el Perl y Perlsuidperl estn instalados en el Web Server. Este script puede requerir alguna edicin antes de funcionar en su instalacin. Copie /usr/asterisk/images/*.gif para el path /asterisk en el rbol html. El script precisa pasar a ejecutable:
chmod +x vmail.cgi
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
12.6 Sumario
En este captulo usted aprendi los pasos necesarios para la configuracin de buzn de voz. Conoci tambin los archivos de configuracin y los principales archivos relacionados.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
12.7 Cuestionario
1. Los archivos emparentados con la configuracin del Buzn de voz son: sip.conf iax.conf asterisk.conf voicemail.conf vmail.conf extensions.conf 2. En la aplicacin VoiceMail(), los parmetros uyb son ___________ y __________ respectivamente. Estos sirven para determinar que tipo de mensaje el buzn de voz tocar para el usuario. Ocupado, Libre Ocupado, No atiende No atiende, Ocupado Libre, Ocupado
6. En la seccin [general] del archivo voicemail.conf, el parmetro attach=yes va hacer que una notificacin por e-mail sea enviada al usuario con el archivo de audio anexado. La afirmacin es: Correcta Incorrecta
Ex
clu
siv
0 * # 9999
op
ar
aV
ice
Correcta Incorrecta
nt
eM
3. La aplicacin VoiceMailMain() es usada para que el usuario que llam deje su mensaje. La afirmacin es correcta:
igu
el
Pe
re zP
ar ed es
7 La opcin delete hace que todas los mensajes sean borrados de la casilla postal antes de que hayan sido enviadas para lo buzn del usuario. Correcta Incorrecta 8. El formato ms adecuado para los mensajes de audio es el WAV, pues tienen ms soporte de estaciones Windows. Correcta Incorrecta 9. Es posible personalizar los mensajes de buzn con emailsubject y emailbody. Que variables pueden ser usadas para indicar el CallerID en el mensaje:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
10. El nombre de CGI para instalar la interfase Web del voicemail es el ____________.
re zP
ar ed es
Al final de este captulo el lector deber estar apto para: Entender donde y en que formato son generados los informes de contabilidad de llamadas Generar los informes de contabilidad de llamada de Asterisk en una base de datos MySQL Implantar un sistema de autentificacin de discado
Los principales campos CDR son: CDR Accountcode Src Dst Dcontext Clid Channel Dstchannel Lastapp Lastdata Start Answer Descripcin Nmero de la cuenta usado Identificacin de origen Extensin de destino Contexto de destino Texto de identificacin de llamada Canal usado Canal de destino ltima aplicacin ltimos parmetros de la aplicacin Inicio de llamada Respuesta de llamada
Ex
clu
siv
El Asterisk genera los informes de contabilidad de llamadas, tambin conocidos como CDR (Call Detail Records, o, registro detallado de llamadas), para cada llamada. Los registros son almacenados en un archivo de texto separado por comas, tambin conocido como CSV (comma separated value), en el directorio /var/log/asterisk/cdr-csv.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
13.2 Objetivos:
ar ed es
Tipo String String String String String String String String String Date/Time Date/Time
Tam. 20 80 80 80 80 80 80 80 80
Fin de la llamada Tiempo total desde el discado,en segundos Tiempo total contabilizado, en segundos Lo que sucedi con la llamada: ANSWERED (atendida), NO ANSWER (no atendida), BUSY (ocupada), FAILED (fall) Indicador, DOCUMENTATION (documentar), BILLING (Contabilizar), OMMIT (omitir), IGNORE (ignorar). Campo definido por el usuario
20 20 255
Sigue un ejemplo en dos lneas del archivo csv importado para una tabla.
AccountCode 1234 1234 1234 1234 1234 Aplicacin Dial Dial Dial Dial Dial CallerID No. 4830258576 4830258576 4830258576 4830258576 4830258584 Parmetros SIP/8584|30|tT SIP/8584|30|tT SIP/8584|30|tT SIP/8584|30|tT SIP/8576|30|tT Extensin *72*1234*8584 *72*1234*8584 *72*1234*8584 2012348584 2012348576 Inicio 27/3/2006 16:05 27/3/2006 16:16 27/3/2006 16:22 27/3/2006 16:37 27/3/2006 16:37 Contexto admin admin admin admin default Atendido 27/3/2006 16:05 27/3/2006 16:16 27/3/2006 16:22 27/3/2006 16:37 27/3/2006 16:37 CallerID texto Canal Origen Canal Destino SIP/8584-9153 SIP/8584-3312 SIP/8584-297b SIP/8584-9870 SIP/8576-645c Amaflags DOCUMENTATION BILLING BILLING BILLING BILLING
"Alexandre Keller" <4830258576> "Alexandre Keller" <4830258576> "Alexandre Keller" <4830258576> "Luiz Eduardo Dagios" <4830258584>
re zP
5 6 9 5 9
Pe
igu
Fin
el
ar ed es
Dur. Bil. 3 4 5 2 5
SIP/8576-5f30 SIP/8576-96f5 SIP/8576-74ac SIP/8576-2c5d SIP/8584-03fd Disposicin ANSWERED ANSWERED ANSWERED ANSWERED ANSWERED
27/3/2006 16:05 27/3/2006 16:16 27/3/2006 16:22 27/3/2006 16:37 27/3/2006 16:37
Default: Configura el estndar del sistema Omit: No registrar las llamadas Billing: Marca el registro para Contabilizar Documentation: Marca el registro para documentacin
As como usted puede configurar los amaflags, usted puede configurar para cada canal un cdigo de contabilizacin. El cdigo de la cuenta puede ser un string de hasta 20 caracteres. Con l usted puede contabilizar por departamento por ejemplo: ventas, produccin, asistencia tcnica. Ejemplo: (sip.conf)
Ex
clu
Para cada canal usted puede especificar los indicadores de CDR (amaflags)
siv
op
Usted puede especificar cdigos de cuenta y los indicadores de CDR (AMA Automated Message Accounting) en cada uno de los canales (sip.conf, iax.conf y zapata.conf).
ar
aV
ice
nt
eM
Ex
clu
siv
op
ar
La contabilidad de llamadas puede ser almacenada de diversas formas. Las formas ms importantes en nuestra opinin son los CSV, pues puede ser importada para planillas y para software de contabilidad de llamadas de forma fcil. El almacenamiento en MySQL tambin es muy comn y permite el uso de interfaces grficas de visualizacin de contabilidad. La tercera forma de almacenamiento de gran inters es el odbc, pues permite almacenar en diversos bancos de datos corporativos principalmente en Oracle.
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
#apt-get install mysql-server-4.1 #apt-get install libmysqlclient12-dev #cd /usr/src #wget http://ftp.digium.com/pub/asterisk/releases/asterisk-addons1.4.1.tar.gz #tar -xzvf asterisk-addons-1.4.1.tar.gz #cd asterisk-addons-1.4.1 #make clean #make #make install
ice
nt
eM
para
igu
el
incluir la
Pe
re zP
ar ed es
carga
del
mdulo
GRANT INSERT ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'asterisk'; USE asteriskdb; CREATE TABLE `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' ); ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
13.7.1 CDR(accountcode)
Formato:
Set(CDR(accountcode)=accountcode)
13.7.2 SetAMAFlags
Set(CDR(amaflags)=flags)
Ex
clu
siv
op
ar
aV
ice
nt
eM
Un consejo de uso es copiar y pegar estos comandos SQL en un archivo de texto como cdr.sql , entonces ejecutar el siguiente comando.
igu
el
Pe
re zP
ar ed es
Configura el indicador de billing, las opciones son: default, omit, documentation, billing.
13.7.3 NoCDR()
Hace que ningn CDR sea grabado para una cierta llamada.
13.7.4 ResetCDR()
Apaga el CDR, opcionalmente almacenando el CDR actual antes de cerrarlo si es que la opcin w fuese especificada.
13.7.5 Set(CDR(userfield)=Value)
Opciones: a - Configura el cdigo de la cuenta en el CDR con la contrasea que fuese ingresada. Esto es til si fuese deseado Contabilizar estas comunicaciones. d Interpreta el camino como una familia de llaves en el banco de datos r Remueve la llave de la base de datos despus de una tentativa de autentificacin con xito (funciona apenas con la opcin d). j Empuja para la prioridad n+101 en el caso de autentificacin invlida.
Ex
clu
siv
Formato:
op
Esta aplicacin permite autenticar un usuario antes de hacer una comunicacin. La autentificacin puede ocurrir con una contrasea colocada directamente en el comando, con un archivo de contraseas cuando es precedido por / o usando el AstDB.
ar
aV
ice
nt
eM
igu
13.7.6 AppendCDRUserField(Value)
el
Pe
Este comando configura el campo definido por el usuario de CDR. Si usted estuviese usando el cdr_addon_mysql certifquese de tener userfield=1 en el cdr_mysql.conf. Si estuviera usando cdr_csv.c, edite el archivo fuente recompile para habilitar el campo de usuario. El comando no tiene efecto si no estuviese habilitado.
re zP
ar ed es
VMAuthenticate([mailbox][@context][|options])
Ex
clu
siv
op
ar
aV
ice
nt
eM
Si una casilla postal fuera especificada, apenas la contrasea de la casilla postal ser considerada vlida. Si la casilla postal no fuese especificada, la variable de canal AUTH_MAILBOX ser configurada con la casilla postal autenticada. Si la opcin contiene s ningn prompt ser ejecutado.
igu
el
Pe
re zP
Hace lo mismo que el Authenticate, pero usa la base de datos del buzn de voz para la autentificacin de los usuarios.
ar ed es
13.10 Sumario
En este captulo aprendimos como atribuir cdigos de contabilizacin a los canales (ramales y enlaces) de Asterisk. Aprendimos como configurar el billing de llamadas para ser almacenada en archivos de texto y tambin en bases de datos. Por fin entendemos los mecanismos de autentificacin que permiten un control mayor de la contabilizacin en Asterisk.
13.11 Cuestionario
1. Por default Asterisk contabiliza las llamadas en /var/log/asterisk/cdrcsv.
5. Si usted desea asociar un departamento o un cdigo de contabilizacin al CDR, usted debe usar el comando ____________. El cdigo de la cuenta puede ser verificado por la variable_________________. 6. La diferencia entre las aplicaciones NoCDR() y ResetCDR() es que el NoCDR() no genera ningn billing, en tanto que el ResetCDR() cierra el tiempo de la llamada en el registro.
Ex
clu
siv
op
ar
aV
ice
nt
MySQL Oracle nativo MSSQL Archivos texto CSV Bases de datos por unix_ODBC
eM
igu
el
Pe
re zP
Falso Verdadero
ar ed es
Falso Verdadero 7. Para usar un campo definido por el usuario (UserField) es necesario recompilar el Asterisk. Falso Verdadero 8. Los tres mtodos de autentificacin disponibles para la aplicacin Authenticate() son: Contrasea Archivos de contraseas Banco berkley DB (dbput e dbget) VoiceMail
Ex
clu
siv
op
ar
a j d r
aV
ice
nt
10. La opcin del comando Authenticate __ hace que la contrasea sea colocada en el cdigo de contabilizacin del cdr.
eM
igu
Falso Verdadero
el
Pe
9. Las contraseas de buzn son especificadas en otra parte del archivo voicemail.conf y no son las mismas del buzn de voz.
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
Describir las opciones de acceso al Asterisk por programas externos Usar el comando asterisk rx para ejecutar un comando de consola Usar la aplicacin System() para llamar a programas externos en el plan de discado Explicar que es y como funciona el AMI Configurar los archivos manager.conf y habilitar la interfase de gerenciamiento. Ejecutar un comando en el Asterisk a travs de AMI usando PHP. Instalar y configurar el Asterisk Manager Proxy Describir los diversos tipos de AGI (DeadAGI, AGI, EAGI, FastAGI) Ejecutar un AGI simple.
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Por ejemplo:
#asterisk rx stop now
re zP
ar ed es
Ex
clu
[Description] System(command): Executes a command by using system(). If the command fails, the console should report a fallthrough. Result of execution is returned in the SYSTEMSTATUS channel variable: FAILURE Could not execute the specified command SUCCESS Specified command successfully executed
siv
op
ar
aV
asterisk*CLI> core show application system asterisk*CLI> -= Info about application 'System' =-
ice
nt
eM
La aplicacin System() permite la llamada de una aplicacin externa a partir del plan de discado.
igu
el
Pe
Status Unmonitored
Hoy es muy difcil seleccionar un lenguaje de programacin, pues estos son muchos. Existen ejemplos de programacin de AMI en Java, Perl, Python, PHP, C, C# entre muchas otras. Es posible programar el AMI en cualquier lenguaje que suporte una interfase sockets o que simule Telnet. Para este documento, escogemos PHP por la popularidad y por la facilidad de integracin con un Web-browser.
Ex
clu
siv
op
ar
El AMI (Asterisk Manager Interfase) permite a un programa cliente conectarse a una instancia de Asterisk y emitir comandos o leer eventos del PBX sobre un flujo TCP/IP. Integradores van encontrar esos recursos particularmente tiles cuando intentasen rastrear el estado de los telfonos dentro del Asterisk. Un protocolo de lnea simple basado en el concepto de llave: el valor es utilizado sobre un socket tcp. Las lneas son terminadas usando CRLF. El Asterisk en si no est preparado para recibir muchas conexiones sobre la interfase del Manager, por esto si usted posee dos o ms clientes de AMI considere usar un proxy de AMI como AstManProxy.
aV
ice
nt
eM
igu
el
Pe
re zP
exten => fax,1,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}.tif) exten => fax,n,Set(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERID(num)}) exten => fax,n,rxfax(${FAXFILE}) exten => fax,n,System('/usr/bin/fax2mail ${CALLERID(num)} "${CALLERID(name)}" FaxNum RecipName email@address.com ${FAXFILENOEXT} p')
ar ed es
Para acceder al AMI es necesario establecer una conexin TCP/IP escuchando una puerta TCP (normalmente 5038). Para esto es necesario configurar el archivo /etc/asterisk/manager.conf y crear una cuenta de usuario. Adems de la cuenta es necesario configurar un conjunto de permisos. Existe un conjunto finito de permisos: read para lectura, write para escritura o ambos. Estos permisos son definidos en el archivo /etc/asterisk/manager.conf .
[general] enabled=yes port=5038 bindaddr=127.0.0.1 [admin] secret=contrasea
Ex
clu
siv
op
ar
Los paquetes de eventos son usados en dos contextos diferentes. De un lado ellos informan al cliente sobre cambios en el Asterisk (como nuevos canales siendo creados y desconectados o agentes entrando y saliendo de una fila). La segunda forma de uso de los eventos es transportar las respuestas a pedidos de los clientes.
aV
ice
nt
eM
Al enviar paquetes de tipo Action para Asterisk los clientes incluyen un parmetro ActionID. Como no existe ninguna garanta en la orden de las respuestas, el ActionID es usado para garantizar que una respuesta corresponde a una determinada accin.
igu
el
Pe
re zP
ar ed es
<?php
<?php
?>
Ex
clu
siv
op
$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: admin\r\n"); fputs($socket, "Secret: contrasea\r\n\r\n"); fputs($socket, "Events: off\r\n\r\n");
ar
aV
ice
nt
eM
?>
igu
$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: admin\r\n"); fputs($socket, "Secret: contrasea\r\n\r\n");
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ejemplo:
Event: Link Channel1: SIP/101-3f3f Channel2: Zap/2-1 Uniqueid1: 1094154427.10 Uniqueid2: 1094154427.11
Evento de tipo unlink Descripcin: Disparado cuando un link entre dos canales de voz es descolgado, un poco antes de completar la llamada.
Ex
clu
Varios eventos de link pueden ser vistos para una nica llamada. Esto puede ocurrir cuando el Asterisk falla en configurar un puente nativo para una llamada. En estos casos Asterisk esta entre los dos telfonos y configura normalmente una traduccin de Codecs.
siv
op
ar
Notas:
aV
nt
Descripcin:
eM
igu ice
conectados y el cambio de
el
Pe
re zP
ar ed es
Ejemplo:
Event: Unlink Channel1: SIP/101-3f3f Channel2: Zap/2-1 Uniqueid1: 1094154427.10 Uniqueid2: 1094154427.11 14.7.8 Eventos disponibles en el Asterisk
AbstractAgentEvent AbstractParkedCallEvent AbstractQueueMemberEvent AgentCallbackLoginEvent AgentCallbackLogoffEvent AgentCalledEvent AgentCompleteEvent AgentConnectEvent AgentDumpEvent AgentLoginEvent AgentLogoffEvent AgentsCompleteEvent AgentsEvent AlarmClearEvent AlarmEvent CdrEvent ChannelEvent ConnectEvent DBGetResponseEvent DialEvent DisconnectEvent DNDStateEvent ExtensinStatusEvent FaxReceivedEvent HangupEvent HoldedCallEvent HoldEvent JoinEvent LeaveEvent LinkageEvent LinkEvent LogChannelEvent ManagerEvent MeetMeEvent MeetMeJoinEvent MeetMeLeaveEvent MeetMeStopTalkingEvent MeetMeTalkingEvent MessageWaitingEvent NewCallerIdEvent NewChannelEvent NewExtenEvent NewStateEvent OriginateEvent OriginateFailureEvent OriginateSuccessEvent ParkedCallEvent ParkedCallGiveUpEvent ParkedCallsCompleteEvent ParkedCallTimeOutEvent PeerEntryEvent PeerlistCompleteEvent PeerStatusEvent QueueEntryEvent QueueEvent QueueMemberAddedEvent QueueMemberEvent QueueMemberPausedEvent QueueMemberRemovedEvent QueueMemberStatusEvent QueueParamsEvent QueueStatusCompleteEvent RegistryEvent ReloadEvent RenameEvent ResponseEvent ShutdownEvent StatusCompleteEvent StatusEvent UnholdEvent UnlinkEvent UnparkedCallEvent UserEvent ZapShowChannelsCompleteEvent ZapShowChannelsEvent
Asterisk no fue hecho para gerenciar un gran nmero de conexiones a la interfase del Manager. Por ejemplo, si cada supervisor o agente de un call-center usa el AMI para login y logout de agentes, esto puede tornar al Asterisk inestable. Fue desarrollado un Proxy llamado astmanproxy para resolver este problema. Las principales ventajas de Astmanproxy son: Una conexin nica y persistente en el Asterisk Una interfase TCP ms segura (no root) Habilidad de filtrar entrada / salida Menor nmero de conexiones y carga para el Asterisk Mltiples medios de acceso (estndar, http, xml, csv) Soporte para SSL Conexin a mltiples servidores Asterisk
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Usted puede usar el Astmanproxy como base para que una aplicacin basada en Web o XML permita acceso por aplicaciones Windows usando HTTP POST o HTTP GET y recibiendo la salida en HTML. Usted puede usar el Astmanproxy como un alimentador XML para un programa .NET que mantiene el registro del estado de Asterisk.
; Number of times to retry connecting to a given server ; use 0 for infinitely, or some finite number maxretries = 10
Paso 4 Opcionalmente editar otros archivos de configuracin vi /etc/asterisk/astmanproxy.users vi /etc/asterisk/ssl.conf Paso 5 Inicie el programa astmanproxy
Ex
; Server reconnect interval (in seconds); how often to retry ; Connecting to an asterisk server whose connection was lost retryinterval = 2
clu
siv
; List of asterisk host(s) you want to proxy ; host = ip_addr, port, user, secret, events, use_ssl host = localhost, 5038, admin, contrasea, on, off
op
ar
; astmanproxy.conf ; Asterisk Manager Proxy Configuration Sample ; (C) 2005-2006 David C. Troy - dave@popvox.com
aV
ice
vi /etc/asterisk/astmanproxy.conf
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 6 Para ver la salida del output, inicie el astmanproxy en el modo debug astmanproxy -dddddd Paso 7 Para iniciar el astmanproxy en tiempo de inicializacin: Coloque el siguiente archivo en /etc/rc.d/rc.local
Mas informaciones sobre el Astmanproxy pueden ser encontradas en el archivo README de la distribucin de astmanproxy.
asterisk*CLI>core show application agi asterisk*CLI> -= Info about application 'AGI' =[Synopsis] Executes an AGI compliant application [Description] [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant program on a channel. AGI allows Asterisk to launch external programs written in any language to control a telephony channel, play audio, read DTMF digits, etc. by communicating with the AGI protocol on stdin and stdout. Returns -1 on hangup (except for DeadAGI) or if application requested hangup, or 0 on non-hangup exit.
Ex
clu
Formato de la aplicacin:
siv
op
ar
aV
AGI Normal: llamado directamente en el servidor Asterisk. FastAGI: que llama al AGI en otro servidor a partir de una interfase sockets. EAGI: da a la aplicacin la posibilidad de acceder y controlar el canal de sonido mas all de la interaccin con el plan de discado. DEADAGI: que da acceso a un mismo canal despus de hangup().
ice
nt
eM
AGI es una interfase de gateway para el Asterisk similar al CGI usado por los servidores Web. Este permite el uso de diferentes lenguajes de programacin como el Perl, PHP, C a su eleccin. AGI es llamado a partir del plan de discado definido en extensions.conf. La aplicacin principal para el AGI es URA con acceso a banco de datos.
igu
el
Pe
re zP
ar ed es
/usr/local/sbin/astmanproxy
Using 'EAGI' provides enhanced AGI, with incoming audio available out of band on file descriptor 3 Use the CLI command 'agi show' to list available agi commands
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Paso 1: Los scripts de agi son colocados en el directorio /var/lib/asterisk/agi-bin. Paso 2: Coloque permisos de ejecucin en sus archivos php.
chmod 755 *.php
Paso 3: Usando una interfase con el shell (especfico para el php) Las primeras lneas del script tienen que ser:
#!/usr/bin/php -q <?php
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; } }
Esto va a dejar un array llamado $agivar. Las opciones disponibles son: agi_request El nombre del archivos AGI
Ex
clu
siv
agi_request:testephp agi_channel: Zap/1-1 agi_language: en agi_type: Zap agi_callerid: agi_dnid: agi_context: default agi_extensin: 4000 agi_priority: 1
op
ar
aV
ice
nt
El Asterisk siempre enva un conjunto de informaciones cada vez que el AGI es llamado.
eM
igu
el
Pe
re zP
ar ed es
agi_channel El canal que origin el AGI agi_language El lenguaje configurado en el momento agi_type El tipo de canal que origin el agi (Ex. Sip, Zap) agi_uniqueid Identificacin nica de llamada agi_callerid Identificador de llamada (Ex. Flavio <8590>) agi_context Contexto de origen agi_extensin Extensin llamada agi_priority Prioridad agi_accountcode Cdigo de la cuenta del canal de origen (billing)
Para llamar una variable use $agivar[agi_extensin]. Paso 6 Usando el canal AGI
Paso 8: Respuestas del Asterisk. En seguida es necesario verificar las respuestas de Asterisk.
$msg = fgets($stdin,1024); fputs($stdlog,$msg . "\n");
Ex
clu
Variables de canal pueden ser definidas dentro del AGI, pero las variables de canal no son pasadas al AGI. El ejemplo de abajo no funciona.
siv
op
ar
aV
Las opciones del comando en el AGI no son opcionales, ellas deben aparecer en el string de comando. Algunas opciones deben ser pasadas en comillas <escape digits>. Algunas opciones no deben ser pasadas en comillas <digit string> Algunas opciones pueden ir de los dos modos Usted puede usar comillas simples cuando sea necesario
ice
nt
eM
igu
el
Pe
re zP
En este punto usted puede comenzar a hablar con el Asterisk. Use el comando fputs para enviar comandos agi. Usted puede usar el comando echo tambin.
ar ed es
Paso 9: Mate los procesos que estn trabados; Si su script falla por alguna razn, este va a permanecer trabado. Use el comando killproc para limpiarlo antes de testear de nuevo.
eM
igu
BANCO DE DATOS
URA
el
Pe
re zP
ar ed es
Cliente
// Habilita modo debugging (mas verbose) $debug = true; // Do function definitions before we start the main loop function read() { global $in, $debug, $stdlog; $input = str_replace("\n", "", fgets($in, 4096)); if ($debug) fputs($stdlog, "read: $input\n"); return $input; } function write($line) { global $debug, $stdlog; if ($debug) fputs($stdlog, "write: $line\n"); echo $line."\n";
Ex
#!/usr/bin/php -q <?php ob_implicit_flush(true); set_time_limit(6); error_reporting(0); $in = fopen("php://stdin","r"); $stdlog = fopen("/var/log/asterisk/agi.log", "w");
clu
siv
op
ar
El Agi de abajo captura el valor de una variable del plan de discado y utiliza este valor para realizar una consulta en un banco de datos MySQL. La consulta retorna una
aV
ice
nt
} // Colocamos headers AGI dentro de un array while ($env=read()) { $s = split(": ",$env); $agi[str_replace("agi_","",$s[0])] = trim($s[1]); if (($env == "") || ($env == "\n")) { break; } } // Funcin que conecta al banco de datos function connect_db() { $db_connection = mysql_connect('localhost','root','senha') or die (mysql_error()); $db_select = mysql_select_db('estoque') or die (mysql_error()); } // Programa Principal connect_db(); // Almacena valor de la variable OPCAO en write("GET VARIABLE OPCAO"); $c = read(); $produto = substr($c,14); $produto = substr($call,0,-1);
$valor = "$result[0]";
?>
14.9.3 DeadAGI
Si usa el DeadAGI cuando usted no tiene un canal vivo, en general usted ejecuta un DeadAgi en la extensin h (hangup). En este caso usted debe usar el aplicativo deadagi() en vez de AGI.
14.9.4 FASTAGI
El Fast AGI implementa una conexin de AGI va TCP por la puerta 4573 por default. Si usa el FastAGI en el formato (agi://).
Ex
clu
siv
op
ar
aV
ice
nt
eM
$query = "SELECT quantidade FROM produtos WHERE produto='$produto'"; $query_result = @mysql_query($query); $result = mysql_fetch_row($query_result);
igu
el
Pe
re zP
ar ed es
Ejemplo: exten => 0800400001, 1, Agi(agi://192.168.0.1) Cuando la conexin TCP es perdida o desconectada, el comando AGI termina y la conexin TCP es cerrada siguiendo la desconexin de la llamada. Este recurso puede auxiliarlo a reducir la carga de CPU de su servidor de telefona corriendo scripts pesados en otro servidor linux. Usted puede obtener ms detalles de FastAGI en el directorio fuente, vea los archivos agi/fastagi-test.
Para aquellos que estn familiarizados con C puede ser interesante alterar aplicaciones existentes. No es preciso destacar los cuidados y peligros de esta prctica.
14.11 Sumario
En este captulo usted aprendi como usar programas externos a travs de interfaces con el Asterisk. Iniciamos con el comando asterisk rx que permite pasar comandos para la consola. Enseguida vimos la aplicacin System() que llama aplicaciones externas. AMI, Asterisk Manager Interface es uno de los mecanismos ms poderosos de Asterisk y la que ms se aproxima de una interfase de CTI existente en las centrales digitales. Para llamar una aplicacin desde dentro del plan de discado,
Ex
clu
http://www.asterisk.org/doxygen/
siv
En este sitio hay buenos consejos de como aplicar patches de correccin al Asterisk y principalmente tiene una documentacin de las APIs generadas por el software Doxygen
op
ar
aV
www.asterisk.org/developers
ice
nt
eM
El Asterisk es desarrollado en lenguaje C (no C++). Ensear como programar en C es como alterar el cdigo fuente de Asterisk est fuera del escape de este libro. De cualquier forma para aquellos que le interese esto tienen algunas pginas que pueden ayudarlo.
igu
el
Pe
re zP
La empresa OrderlyCalls posee un servidor JAGI que implementa el FastAGI para el JAVA. Ms informaciones en www.orderlycalls.com.
ar ed es
usamos el AGI. Descubrimos tambin sus diferentes variaciones, tales como: Deadagi, para canales muertos, EAGI (que pasa el flujo de audio junto), FastAGI (uso de programas remotos) y el AGI simple que corre los programas en una misma mquina de Asterisk.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
14.12 Cuestionario
1. Cual de los siguientes no es un mtodo de uso de interfase con el Asterisk AMI AGI Asterisk rx System() External() 2. AMI, que quiere decir que Asterisk Manager Interfase permite que comandos puedan ser pasados al Asterisk va puerto TCP. Este recurso es habilitado por default. Correcto Incorrecto
Falso Verdadero
6. El Deadagi es usado en canales activos de tipo Zap, Sip pero no puede ser usado con IAX. Falso Verdadero 7. Aplicaciones que usan el AGI solo pueden ser programadas usando PHP. Falso
Ex
clu
5. El FastAGI permite el uso de aplicaciones remotas va socket TCP, normalmente en el puerto 4573.
siv
op
ar
aV
ice
4. Para compensar por la falta de seguridad y escalabilidad de la Interfase AMI podemos usar:
nt
eM
Verdadero Falso
igu
el
Pe
re zP
ar ed es
Verdadero 8. El comando _____________ muestra todas las aplicaciones disponibles para uso en AGIs 9 El comando ________________ disponibles para uso con AMI muestra todos los comandos
10. Para hacer debug en un AGI usted debe usar el comando __________________________.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Al final de este captulo el lector debe estar apto para: Entender las ventajas y limitaciones de Asterisk Real Time. Instalar y configurar el ARA usando como base de datos MySQL.
Ex
clu
siv
El ARA como es conocido el sistema Real-Time fue creado por Anthony Minessale II, Mark Spencer y Constantine Filin y fue proyectado para permitir una integracin transparente entre la estructura de configuracin interna y otras bases de datos SQL. Drivers para LDAP tambin estn disponibles. Este sistema tambin es conocido como Asterisk External Configuration y es configurado en el archivo etc/asterisk/extconfig.conf, permitiendo a usted mapear cualquier archivo de configuracin (mapeos estticos) para una base de datos, o mapear entradas en tiempo real que permitan la creacin dinmica de objetos (peers) sin la necesidad de hacer un reload.
op
ar
aV
ice
nt
eM
igu
el
Necesidad de recarga del sistema a cada alteracin. Creacin de gran volumen de usuarios. Dificultad en la creacin de interfaces de aprovisionamiento. Imposibilidad de integracin con las bases existentes.
Pe
re zP
Podemos citar:
ar ed es
El soporte de banco de datos en el canal no fue alterado. Existen los peers/users llamados normales o estticos y los peers y users en banco de datos. Los estticos, no importan si estn cargados de un banco de datos o en un archivo de texto, son mantenidos en memoria y en el canal SIP podemos tener soporte en NAT para estos. Los peers/users de banco de datos no son mantenidos en la memoria. Estos solamente son cargados cuando nosotros tenemos una llamada y entonces esta es borrada, de forma que no existe soporte para NAT keep-alives o indicaciones de buzn de voz. Usted puede habilitar Real Time Caching usando rtcachefriends=yes en el archivo sip.conf y permitir que sea usado NAT y MWI, de cualquier forma en este caso usted va a precisar hacer un reload si hubiera alguna alteracin.
Ex
clu
siv
op
ar
aV
STATIC: Es usado para configurar una configuracin esttica cuando un mdulo es cargado REALTIME: Es usado para buscar objetos durante una llamada, u otro evento. UPDATE: Es usado para actualizar los objetos.
ice
nt
En la nueva arquitectura RealTime, todo el cdigo especfico para bancos de datos fue movido para drivers de canal. El canal apenas llama a una rutina genrica que hace una bsqueda en la base de datos. Esto en fin es mucho ms simple y limpio desde el punto de vista del cdigo fuente. El banco de datos es accedido con tres funciones:
eM
igu
el
Pe
re zP
ar ed es
iaxusers => mysql,asteriskdb,iax_buddies iaxpeers => mysql,asteriskdb,iax_buddies sipusers => mysql,asteriskdb,sip_buddies sippeers => mysql,asteriskdb,sip_buddies voicemail => mysql,asteriskdb,voicemail extensions => mysql,asteriskdb,extensions_table
El ARA es configurado en el archivo extconfig.conf. En este pueden ser notadas ntidamente dos secciones, una esttica que substituye
Ex
clu
siv
op
ar
aV
ice
nt
eM
#tar xzvf asterisk-addons-1.4.1.tar.gz #cd asterisk-1.4.1 #make #./configure #make menuselect ;Selecione apenas o mdulo realtime #make install #make samples
igu
el
Pe
re zP
ar ed es
Paso 2: En Debian baje una de las dependencias de MySQL, se esto no ha sido hecho en lo captulo 13.
los archivos de configuracin. La segunda seccion es la relacionada al Real Time que va a crear dinmicamente las entidades necesarias a su funcionamiento. Formato del archivos extconfig.conf
; ; Static and realtime external configuration ; engine configuration ; ; Please read doc/README.extconfig for basic table ; formatting information. ; [settings] ; ; Static configuration files: ; ; file.conf => driver,database[,table] ; ; maps a particular configuration file to the given ; database driver, database and table (or uses the ; name of the file as the table if not specified) ; ;uncomment to load queues.conf via the odbc engine. ; ;queues.conf => odbc,asterisk,ast_config ; ; The following files CANNOT be loaded from Realtime storage: ; asterisk.conf ; extconfig.conf (this file) ; logger.conf ; ; Additionally, the following files cannot be loaded from ; Realtime storage unless the storage driver is loaded ; early using 'preload' statements in modules.conf: ; manager.conf ; cdr.conf ; rtp.conf ; ; Realtime configuration engine ; ; maps a particular family of realtime ; configuration to a given database driver, ; database and table (or uses the name of ; the family if the table is not specified ; ;example => odbc,asterisk,alttable ;iaxusers => odbc,asterisk ;iaxpeers => odbc,asterisk ;sipusers => odbc,asterisk ;sippeers => odbc,asterisk ;voicemail => odbc,asterisk ;extensins => odbc,asterisk ;queues => odbc,asterisk ;queue_members => odbc,asterisk
La configuracin esttica es donde usted almacena los archivos *.conf regulares en la base de datos. Estas configuraciones son
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
ledas en la carga de Asterisk. Algunos mdulos tambin releen esto cuando hace un reload. Formato de la configuracin esttica: Ejemplo:
<conf filename> => <driver>,<databasename>[,table_name] queues.conf => odbc,asterisk,ast_config sip.conf => mysql,asterisk iax.conf => ldap,MyBaseDN,iax
Ejemplo:
sippeers => mysql,asterisk,sip_peers sipusers => mysql,asterisk,sip_users queues => mysql,asterisk,queue_table queue_members => mysql,asterisk,queue_member_table voicemail => mysql,test
Ex
La configuracin RealTime (segunda parte del archivos extconfig.conf) es donde configuramos la parte que va a ser cargada, actualizada y descargada en tiempo real. Por ejemplo, vamos a decir que usted tenga varios usuarios Sip definidos en su archivo sip.conf y usted quiere adicionar un tercero. Usted los adiciona al archivo y entonces ejecuta el comando sip reload. Entonces el chan_sip.so relee el archivo y hace las modificaciones, as el tercer telfono puede loguearse. Con el RealTime no es ms necesario hacer el reload.
clu
siv
op
ar
aV
ice
nt
Ejemplo:
eM
Usando los ejemplos de arriba, cuando la aplicacin app_queue.so carga, el driver ODBC RealTime ejecutar una consulta y tirar las informaciones necesarias. El mismo es verdadero para el chan_sip.so y as en adelante.
igu
el
Pe
El segundo ejemplo ir a la tabla sip.conf (Como fue omitido el nombre de la tabla, esta tiene como estndar el nombre de archivo) en la base de datos asterisk usando un driver MySQL. La tercera ir a configurar el archivo iax.conf a la tabla iax.conf usando un driver LDAP. MyBaseDN es la base BN para la bsqueda.
re zP
ar ed es
Encima tenemos tres ejemplos. El primer ejemplo colar queues.conf en la tabla ast_config localizada en el contexto del banco de datos llamado asterisk usando un driver odbc.
Arriba tenemos cinco lneas. En la primer lnea, nosotros estamos conectando el nombre de la familia sippeers para la tabla sip_peers en la base de datos asterisk usando un driver MySQL. En la ltima lnea ligamos la familia voicemail a la tabla voicemail en la base de datos test usando MySQL. Las familias sip_users y sip_peers se pueden referir a la misma tabla, si usted as lo desea.
name Host secret context ipaddr port regseconds username 4000 dynamic contrasea default 10.1.1.1 5060 1765432 4000 Una tabla de voicemail se parecer como a la de abajo: fullname uniqueid mailbox context password Email 1 4000 default 4000 juan@silva.com Juan Silva
Ex
Una tabla SIP debe aparecerse como la de abajo para tener los campos necesarios.
clu
siv
Para el uso con el IAX, la tabla tiene que poseer por lo menos los siguientes campos name, port, regseconds. Para los otros campos usted puede configurar una columna para cada campo deseado. Si usted desear colocar el CallerID, adicione la columna correspondiente a la tabla.
op
ar
aV
ice
name host secret context ipaddr port regseconds 4000 dynamic contrasea default;ramales 10.1.1.1 4569 1765432
nt
eM
Puede ser almacenado en una base de datos en una tabla como la de abajo
igu
el
Pe
re zP
ar ed es
El uniqueid debe ser nico para cada usuario de buzn de voz y debe ser auto incrementado. El uniqueid no puede tener cualquier relacin con lo buzn o el contexto. Una tabla de extensines se debe parecer como la que esta abajo: context Exten priority app appdata Ramales 4000 1 dial SIP/4000&IAX2/4000
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
Paso 5: Salga del mysql con el comando quit y entre nuevamente con el siguiente comando:
el
Pe
re zP
ar ed es
Pantalla de login
Pantalla de una de las tablas Paso 8: Configure el Asterisk para acceder al banco de datos creado:
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Ex
clu
siv
op
ar
aV
ice
nt
eM
;example => odbc,asterisk,alttable iaxusers => mysql,asteriskdb,iax_buddies iaxpeers => mysql,asteriskdb,iax_buddies sipusers => mysql,asteriskdb,sip_buddies sippeers => mysql,asteriskdb,sip_buddies voicemail => mysql,asteriskdb,voicemail extensions => mysql,asteriskdb,extensions_table
igu
el
Pe
re zP
Paso 1: Asterisk.
Configurar
el
extconfig.conf
ar ed es
y
En este laboratorio a vamos configurar el archivo extconfig.conf para la configuracin de nuestro banco de datos. reinicializar el
Vamos a crear un ramal 4001 con contrasea 4001 en el ARA e intentar autenticar en la estacin. Paso 3: Testee una conexin de telfono 4000 al 4001 Verifique con sip show peers el ramal. Usted va a notar que el ramal en tiempo real no aparece en la lista de peers como los estticos. Si usted precisa usar soporte de NAT o indicador de mensajes de buzn de voz, use la instruccin rtcachefriends=yes en el archivo sip.conf
use asteriskdb; insert into extensions_table(id, context, exten, priority, app, appdata) VALUES ('1','teste', '40007','1','Dial','SIP/40007');
Paso 8: Cree las extenses real-time no plano de discagem Cree la siguiente lnea del contexto default.
switch => realtime/teste@extensions
CLI>extensions reload
Ex
clu
Utilice o phpmyadmin para incluir la extensin en lo banco de datos o directamente en mysql como abajo.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
15.9 Sumario
En este captulo usted aprendi que el Asterisk Real Time permite colocar las configuraciones de Asterisk en un banco de datos. Los bancos soportados son MySQL, cualquier base de datos que soporte unixODBC y LDAP. La configuracin del ARA posee dos partes, esttica, que substituye los archivos de configuracin en texto y realtime que permite la creacin dinmica de objetos en el Asterisk. Enseguida fue hecha la instalacin, configuracin y tests del sistema Realtime.
15.10 Cuestionario
1. El Asterisk Real Time es un recurso que hace parte de la distribucin del Asterisk? Verdadero Falso
4 - El archivo exteconfig.conf es donde configuramos que tablas sern usadas por el RealTime. En este archivo tenemos dos reas distintas para configurar Archivos de configuracin esttica Configuracin del Realtime Configuracin de las rutas de salida Configuracin de los puertos y direcciones IP del banco de datos
Ex
clu
siv
3 LA configuracin de las direcciones y puertos de acceso al banco de datos MySQL es hecha en el archivo:
op
ar
aV
ice
nt
eM
2 Para compilar el Asterisk Real Time y usarlo con Mysql es preciso bajar que bibliotecas?
igu
el
Pe
re zP
ar ed es
5 En la configuracin esttica, una vez hecha la carga de los objetos contenidos en la configuracin estos son creados dinmicamente en el Asterisk cuando es necesario. Verdadero Falso 6 Cuando un canal SIP (ramal) es configurado Realtime, no es posible usar recursos como qualify o mwi indicador de mensaje en espera porque simplemente el canal no existe hasta ser usado. Esto causa los siguientes problemas: Este telfono solamente podr llamar, pero no va a recibir llamadas No es posible usar NAT, pues el qualify es usado para mantener el NAT abierto. No es posible indicar al telfono mensajes en espera en el buzn de voz. No es posible usar el ramal pues la configuracin del SIP es siempre esttica 7 Si yo quisiera usar la configuracin Realtime con ramales SIP, pero quisiera tener soporte en NAT y MWI yo debo usar: El realtime no fue creado para usar con NAT Usted puede usar el comando rtcachefriends=yes en el archivo sip.conf Apenas MWI es posible Para usar NAT es preciso que la configuracin sea esttica. 8 Usted puede continuar usando los archivos de texto de configuracin, mismo despus de configurar el Asterisk Real Time. Verdadero Falso
9 El phpmyadmin es obligatorio en el uso de Asterisk Real Time Verdadero Falso 10 El banco de datos tiene que ser creado obligatoriamente con todos los campos contenidos en el archivo de configuracin correspondiente? Verdadero Falso
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Unidad de Respuesta Automtica Distribucin automtica de llamadas Telfonos IP Telfonos Analgicos Telfonos digitales de cualquier fabricante. 5. Para tener msica en espera Asterisk necesita de un CD Player conectado en un ramal FXO. La afirmacin es: CORRECTA INCORRECTA
Ex
clu
siv
CORRECTA INCORRECTA
op
ar
3. Un canal FXS genera tono de discado, en cuanto un canal FXO recibe el tono desde la red pblica o de algn otro PBX. L afirmacin es:
aV
ice
nt
CORRECTA INCORRECTA
eM
igu
2. Si fuera necesario crear un PBX con 4 enlaces y ocho telfonos, ud. puede usar una PC con Linux y 3 placas TDM400P una con cuatro canales FXO y 2 con cuatro canales FXS cada una. La afirmacin es:
el
Pe
re zP
ar ed es
6. Es responsable por la atencin automtica de clientes, normalmente suena un prompt y espera que usuario seleccione una opcin. En algunos casos puede ser usada en conjunto con un banco de datos y conversin de texto para ser hablado. Estamos hablando aqu de una: URA IVR DAC Unified Messaging
7 Disque las opciones correctas, Un banco de canales es conectado al Asterisk a travs de una interface: E1 T1 FXO FXS
10 Disque las opciones correctas, Es posible intercomunicar, usando Asterisk, varias filiales a travs de voz sobre IP reduciendo el uso de comunicaciones de larga distancia. En una filial: Asterisk puede ser la central telefnica para todos los usuarios. Asterisk puede integrar una central telefnica existente Pueden ser usados apenas telfonos IP ligados a un Asterisk centralizado Redundancia y confiabilidad no son importantes cuando se conectan IP fones.
Ex
CORRECTA INCORRECTA
clu
siv
9 En las plataformas de telefona convencional, normalmente URA, DAC y Buzn de voz estn incluidos en el PBX. Esta afirmacin es:
op
ar
aV
ice
nt
eM
8 Disque a opcin correcta. Un canal E1 soporta ___ canales de telefona en tanto un T1 soporta ___ canales.
igu
el
Pe
re zP
ar ed es
gcc, ncurses, ncurses-devel, bison, Termcap, openssl, openssl-devel 6. Si usted no tiene una placa zaptel, usted precisa una fuente de tiempo. El driver ztdummy desempea este papel aprovechando una biblioteca USB. Esto es necesario, pues algunas aplicaciones como MEETME() y MUSICONHOLD() precisan de una referencia de tiempo. 7. Cuando usted hace una instalacin de Asterisk, lo mejor es no instalar los paquetes grficos como KDE y GNOME, pues Asterisk es sensible a cuestiones de CPU y las interfaces grfica roban muchos ciclos de CPU al servidor. Correcto Incorrecto 8. Los archivos de configuracin de Asterisk se encuentran en /etc/asterisk.
Ex
clu
siv
op
ar
aV
ice
Correcto Incorrecto
nt
eM
4. Es posible obtener una buena calidad de voz en una red que no este congestionada con switches de 100 Mbps.
igu
el
Correcto Incorrecto
Pe
re zP
3. Para que la telefona IP funcione con perfeccin es necesario que la red posea QoS extremo-a-extremo.
ar ed es
9. Para instalar los archivos de configuracin usted precisa ejecutar los siguientes comandos. #make samples
10. Porque es importante iniciar Asterisk con un usuario diferente de root. Seguridad
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
5. SIP Session Initiated Protocol es el protocolo de la ITU usado para conexiones de voz sobre IP. Este es bastante antiguo y viene siendo substituido recientemente por el H.323. Correcto Incorrecto 6. Dado la configuracin de abajo del archivo sip.conf, en la seccin [general] est definido la direccin IP 10.1.30.45, donde SIP estar esperando por conexiones. Si fuera necesario que todas las placas
Ex
clu
Correcto Incorrecto
siv
4. A pesar de ser considerado una lnea digital, el E1 puede ser configurado con sealizacin asociada al canal (CAS) en este caso cada timeslot puede comportarse como un canal analgico FXS o FXO, por ejemplo. Esto es til para la conexin a channel-banks (bancos de canales).
op
ar
aV
ice
Correcto Incorrecto
nt
eM
3. El parmetro switchtype del archivo zapata.conf define el tipo de PBX al cual Asterisk est ligado. Esto es vlido para conexiones no estndar E1 con sealizacin ISDN PRI. Normalmente en Brasil y en Europa este estndar debe ser definido como National.
igu
el
Pe
re zP
Correcto Incorrecto
ar ed es
de red de la mquina esperasen por una conexin SIP, bindaddr debera estar configurado para: 0.0.0.0
[general] bindport = 5060 bindaddr = 10.1.30.45 context = default disallow = speex disallow = ilbc allow = ulaw maxexpirey = 120 defaultexpirey = 80
Correcto Incorrecto
9. Cuando una comunicacin entra en Asterisk por una interfase de telefona (FXO) sin identificacin de llamada, esta comunicacin es desviada para la extensin especial: 0 9 s i 10. Los formatos vlidos para el comando Goto() son:
Ex
clu
8. La principal diferencia entre el comando Playback() y el comando Background() es que el Playback() simplemente toca un mensaje y pasa al comando siguiente, en cambio el Background aguarda que usted digite algo y desva para algn lugar en el plan de discado basndose en los dgitos discados.
siv
op
ar
aV
Correcto Incorrecto
ice
nt
eM
igu
el
Pe
re zP
ar ed es
7. En el archivo de abajo, los telfonos 8000 y 8001 fueron definidos con la opcin canreinvite=no. Con esto, cuando una comunicacin es hecha de un telfono para el otro, el Audio va directamente de un telfono para otro sin pasar por Asterisk.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
2. Convergencia es la unificacin de las redes de voz, vdeo y datos en una nica red y su principal beneficio es la reduccin con los costos de manutencin de redes separadas. Correcto Incorrecto
6. SIP es hoy el protocolo ms abierto (IETF) siendo implementado por la mayora de los fabricantes. Correcto Incorrecto 7. H.323 es un protocolo sin expresin, poco usado fue abandonado por el mercado en favor de SIP. Correcto
Ex
clu
siv
op
5. Dentro del modelo OSI, los protocolos SIP, H.323 e IAX2 estn en la capa de:
ar
aV
Correcto Incorrecto
ice
nt
eM
igu
Correcto Incorrecto
el
Pe
3. Asterisk no puede usar simultneamente recursos de PSTN (Red pblica de telefona y de voz sobre IP, pues los codecs no son compatibles).
re zP
ar ed es
Incorrecto 8. IAX2 es un protocolo propietario de Digium, a pesar de tener poca adopcin por fabricantes de telfono el IAX es excelente en las cuestiones de: Uso de banda ancha Uso de vdeo Pasaje por redes que poseen NAT Estandarizado por rganos como la IETF y ITU.
Correcto Incorrecto
10. Sobre los codecs asignarle lo que es verdadero G711 es el equivalente al PCM (Pulse Code Modulation) y usa 64 Kbps de banda ancha. G.729 es gratuito por esto es el ms utilizado, usa apenas 8 Kbps de banda ancha. GSM viene creciendo, pues ocupa 12 Kbps de banda ancha y no precisa de licencia. G711 u-law es comn en los EUA en tanto a-law es comn en Europa y en Brasil. G.729 es leve y ocupa poca CPU en su codificacin.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Verdadero Falso
6. Cuando el IAX es usado en modo trunk, apenas un encabezado es usado para transmitir mltiples llamadas. La afirmacin de arriba es: Correcta Incorrecta
Ex
clu
5. Es importante tener la misma configuracin para el payload de codec (20 30 ms) que la sincronizacin de los frames en el modo trunked (20 ms estndar)
siv
op
ar
aV
ice
nt
4. La banda ancha usada por el protocolo IAX es la suma de la carga de voz (payload) ms los encabezados (Disque todas las que se aplican)
eM
igu
el
Pe
re zP
ar ed es
7. El protocolo IAX2 es el ms comn para conectar proveedores de telefona IP, pues pasa fcil a traves de NAT. La afirmacin de arriba es: Correcta Incorrecta 8. En un canal IAX como el de abajo, la opcin <secret> puede ser tanto una contrasea como una digital key
IAX/[<user>[:<secret>]@]<peer>[:<portno>][/<exten>[@<context>][/<opti ons>]]
Correcta Incorrecta
10. Es comando IAX2 show registry muestra informaciones sobre: Los usuarios registrados Los proveedores a los cuales el Asterisk se conecto.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
9. El contexto es adicionado para cada cliente IAX, esto permite que diferentes clientes posean diferentes contextos. Se puede pensar en un contexto como una clase de ramal donde el cliente ser colocado. La afirmacin es:
ar ed es
Correcto Incorrecto
6. En el modo PROXY el flujo de media y la sealizacin pasan por el SIP proxy y no directamente de un cliente para otro. Correcto Incorrecto
Ex
clu
5. El SIP puede operar en modo PROXY y en modo REDIRECT, a diferencia entre ellos es que en el caso de PROXY la sealizacin Siempre pasa por el computador intermediario (SIP Proxy) en tanto en modo REDIRECT los clientes sealizarn directamente.
siv
op
ar
aV
ice
User Agent Media gateway PSTN Server Proxy Server Registrar Server
nt
eM
igu
3. Podemos citar como componentes de SIP a: (disque todos los que se aplican)
el
Pe
re zP
ar ed es
7. El Asterisk acta como un SIP Proxy. Correcto Incorrecto 8. La opcin canreinvite=yes/no es de importancia fundamental, pues va a definir si el flujo de media va a pasar por el Asterisk o no. Esta afirmacin es: .Correcta Incorrecta
9. Asterisk soporta sin problemas la supresin de silencio en canales SIP. La afirmacin es: Correcta Incorrecta
Ex
clu
siv
op
ar
aV
ice
nt
eM
10. El tipo ms difcil de NAT para transportar es el: Full Cone Restricted Cone Port Restricted Cone Symmetric
igu
el
Pe
re zP
ar ed es
4. Cite cuatro situaciones donde contextos pueden ser utilizados: Seguridad Ruteamiento Mens Aislamiento 5. Para usar una variable en el plan de discado en Asterisk usted debe usar el siguiente formato: $[varname] {varname} $(varname) ${varname} 6. Las variables disponibles en el Asterisk son: (Escoja 3)
Ex
clu
siv
op
ar
En la entrada de una llamada sin CallerID Como entrada de un men llamado por comando Background(). En la entrada de una llamada con CallerID Como entrada de un contexto que fue direccionado por el Goto().
aV
ice
nt
3. La extensin s es usada como extensin de inicio dentro de un contexto, esta es normalmente usado en los siguientes casos.
eM
igu
Verdadero Falso
el
Pe
re zP
ar ed es
Constantes Variables pblicas Variables de ambiente Variables globales Variables privadas Variables de canal 7. Para obtener la compresin de un string usted puede usar la funcin ${LEN(string)}. 8. Para concatenar strings basta colocar una al lado de la otra como en el ejemplo abajo. La afirmacin est: ${foo}${bar} 555${elnumero} ${PrefijoLargaDistancia}555${elNumero} Correcta Incorrecta
exten=4000,1,dial(SIP/4000,15) exten=4000,2,dial(SIP/4000&SIP/4001,15)
[ramais] exten=_0XXXXXXXXXX,1,Dial(Zap/g1/_055${EXTEN:4},15)
Ex
10. Suponga que usted tenga una central telefnica digital. Coloque en el espacio de abajo los comandos necesarios (extensions.conf) para permitir el discado externo solo para nmeros DDD en el contexto [ramales]. Coloque tambin los comandos necesarios para forzar el discado por la operadora 55 desconsiderando la operadora escogida por el usuario.
clu
siv
op
ar
aV
ice
9. Suponga que usted tenga una central telefnica analgica. Coloque en el espacio de abajo los comandos necesarios para direccionar la recepcin de las llamadas para una telefonista en el ramal SIP/4000. Si el ramal SIP/4000 no atiende, El sistema debe direccionar despus de 15 segundos para los ramales SIP/4000 y SIP/4001 simultneamente.
nt
eM
igu
el
Pe
re zP
ar ed es
4. Para concatenar varias extensiones basta separarlas con la sea &. 5. Un men de voz normalmente es creado con el comando inicial Background() 6. Usted puede incluir archivos dentro de sus archivos de configuracin con el comando #include.
Ex
Reciba una seal de ocupado si el CallerID=482518888 Reciba una seal de ocupado independientemente del nmero Va para el canal ZAP/1 Va para el VoiceMail() si el canal ZAP/1 estuviese ocupado o no atiende, excepto en el caso donde el CallerID fuera 482518888
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
7. Asterisk permite que se use el plan de discado una base de datos basada en: Oracle MySQL Berkley DB PostgreSQL 8. Cuando usted usa el comando Dial(tipo1/identificar1&tipo2/identificar2) con varios identificadores, Asterisk disca para cada una en secuencia y espera 20 segundos o el tiempo de timeout antes de pasar para el otro nmero. La afirmacin es: Falsa Verdadera
Ex
clu
11. Un macro puede ser usado para automatizar una serie de operaciones en secuencia para una extensin especfica. El primer argumento pasado por la llamada del macro es el:
siv
op
Correcta Incorrecta
ar
aV
ice
10. Switches son usados para direccionar para otro PBX. La afirmacin de arriba es:
nt
eM
Falsa Verdadera
igu
el
9. En el comando Background la msica de fondo tiene que ser tocada enteramente antes que el usuario pueda digitar algo. La afirmacin es:
Pe
re zP
ar ed es
Ex
clu
siv
6. Si fuese necesario administrar una conferencia, usted puede usar el aplicativo _______ y tirar un usuario de la sala.
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
6. Cuando en una fila de atencin de llamadas, usted puede definir un determinado nmero de opciones que el usuario puede discar. Esto es factible incluyendo un __________ en la fila. Agente Menu Contexto Aplicativo
Ex
clu
siv
op
ar
aV
Crear la fila Crear los agentes Configurar los agentes Configurar la grabacin Colocar en el plan de discado
ice
nt
eM
igu
4. Las tareas obligatorias para configurar una fila de atencin de llamadas son:
el
Pe
re zP
ar ed es
7. Las aplicaciones de apoyo AddQueueMember(), AgentLogin() , AgentCallBackLogin y RemoveQueueMember() deben ser incluidas en: __________ el Plan de discado la interfase de lnea de comando en el archivo queues.conf en el archivo agents.conf 8. Es posible grabar los agentes, pero para esto es preciso de un grabador externo. Verdadero Falso
Ex
clu
siv
op
ar
aV
ice
Correcta Incorrecta
nt
eM
10. Una llamada puede ser priorizada dependiendo del CallerID dentro de una misma fila. La afirmacin es:
igu
Verdadero Falso
el
Pe
9. Wrapuptime es el tiempo que el agente precisa despus del trmino de una llamada para prepararse para la prxima o completar procesos en relacin a la llamada atendida
re zP
ar ed es
6. En la seccin [general] del archivo voicemail.conf, el parmetro attach=yes va hacer que una notificacin por e-mail sea enviada al usuario con el archivo de audio anexado. La afirmacin es: Correcta Incorrecta
Ex
clu
siv
op
ar
aV
Correcta Incorrecta
ice
nt
3. La aplicacin VoiceMailMain() es usada para que el usuario que llam deje su mensaje. La afirmacin es correcta:
eM
igu
el
Pe
re zP
2. En la aplicacin VoiceMail(), los parmetros uyb son ___________ y __________ respectivamente. Estos sirven para determinar que tipo de mensaje el buzn de voz tocar para el usuario.
ar ed es
7 La opcin delete hace que todas los mensajes sean borrados de la casilla postal antes de que hayan sido enviadas para lo buzn del usuario. Correcta Incorrecta 8. El formato ms adecuado para los mensajes de audio es el WAV, pues tienen ms soporte de estaciones Windows. Correcta Incorrecta
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
10. El nombre de CGI para instalar la interfase Web del voicemail es el vmail.cgi.
Pe
re zP
9. Es posible personalizar los mensajes de buzn con emailsubject y emailbody. Que variables pueden ser usadas para indicar el CallerID en el mensaje: VM_CallerID
ar ed es
6. La diferencia entre las aplicaciones NoCDR() y ResetCDR() es que el NoCDR() no genera ningn billing, en tanto que el ResetCDR() cierra el tiempo de la llamada en el registro. Falso Verdadero 7. Para usar un campo definido por el usuario (UserField) es necesario recompilar el Asterisk. Falso
Ex
clu
5. Si usted desea asociar un departamento o un cdigo de contabilizacin al CDR usted debe usar el comando Set(CDR(accountcode)=accountcode). El cdigo de la cuenta puede ser verificado por la variable ${CDR(accountcode)}.
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
Verdadero 8. Los tres mtodos de autentificacin disponibles para la aplicacin Authenticate() son: Contrasea Archivos de contraseas Banco berkley DB (dbput e dbget) VoiceMail 9. Las contraseas de buzn son especificadas en otra parte del archivo voicemail.conf y no son las mismas del buzn de voz. Falso Verdadero
Ex
clu
siv
op
ar
aV
ice
nt
eM
a j d r
igu
el
Pe
10. La opcin del comando Authenticate __ hace que la contrasea sea colocada en el cdigo de contabilizacin del cdr.
re zP
ar ed es
Falso Verdadero
6. El Deadagi es usado en canales activos de tipo Zap, Sip pero no puede ser usado con IAX. Falso Verdadero 7. Aplicaciones que usan el AGI solo pueden ser programadas usando PHP.
Ex
clu
5. El FastAGI permite el uso de aplicaciones remotas va socket TCP, normalmente en el puerto 4573.
siv
op
ar
aV
ice
4. Para compensar por la falta de seguridad y escalabilidad de la Interfase AMI podemos usar:
nt
eM
Verdadero Falso
igu
el
Pe
re zP
ar ed es
Falso Verdadero 8. El comando agi show muestra todas las aplicaciones disponibles para uso en AGIs 9 El comando manager show commands muestra todos los comandos disponibles para uso con AMI 10. Para hacer debug en un AGI usted debe usar el comando agi debug.
Ex
clu
siv
op
ar
aV
ice
nt
eM
igu
el
Pe
re zP
ar ed es
5 En la configuracin esttica, una vez hecha la carga de los objetos contenidos en la configuracin estos son creados dinmicamente en el Asterisk cuando es necesario. Verdadero Falso 6 Cuando un canal SIP (ramal) es configurado Realtime, no es posible usar recursos como qualify o mwi indicador de mensaje en espera porque simplemente el canal no existe hasta ser usado. Esto causa los siguientes problemas:
Ex
clu
datos
siv
Archivos de configuracin esttica Configuracin del Realtime Configuracin de las rutas de salida Configuracin de los puertos y direcciones IP del banco de
op
ar
aV
4 - El archivo exteconfig.conf es donde configuramos que tablas sern usadas por el RealTime. En este archivo tenemos dos reas distintas para configurar
ice
nt
eM
igu
el
Pe
3 LA configuracin de las direcciones y puertos de acceso al banco de datos MySQL es hecha en el archivo:
re zP
ar ed es
Este telfono solamente podr llamar, pero no va a recibir llamadas No es posible usar NAT, pues el qualify es usado para mantener el NAT abierto. No es posible indicar al telfono mensajes en espera en el buzn de voz. No es posible usar el ramal pues la configuracin del SIP es siempre esttica 7 Si yo quisiera usar la configuracin Realtime con ramales SIP, pero quisiera tener soporte en NAT y MWI yo debo usar: El realtime no fue creado para usar con NAT Usted puede usar el comando rtcachefriends=yes en el archivo sip.conf Apenas MWI es posible Para usar NAT es preciso que la configuracin sea esttica. 8 Usted puede continuar usando los archivos de texto de configuracin, mismo despus de configurar el Asterisk Real Time. Verdadero Falso
Ex
Verdadero Falso
clu
siv
10 El banco de datos tiene que ser creado obligatoriamente con todos los campos contenidos en el archivo de configuracin correspondiente?
op
ar
aV
Verdadero Falso
ice
nt
eM
igu
el
Pe
re zP
ar ed es