Professional Documents
Culture Documents
H
ec
lu
ex
c
m
en
te
va
si
a
o
En
z
La
ru
zz
Asterisk PBX
m
en
te
En
z
La
ru
zz
Gua de la configuracon
H
ec
ho
ex
c
lu
si
va
iii
Ttulo
ASTERISK Gua de la configuracin
Por Flavio Eduardo de Andrade Gonalves
Traduccin Oscar Osvaldo Fueyo Alvarez
Copyright 2006 V.Office Networks Ltda., todos los derechos reservados
Primera edicin: Diciembre de 2006
Disclaimer (espaol)
ru
zz
En
z
La
m
en
te
H
ec
ho
ex
c
lu
si
va
iv
Prefacio
ru
zz
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
si
Sobre el Autor
ru
zz
Agradecimientos
En
z
La
m
en
te
Errores
lu
si
va
H
ec
ho
ex
c
oops@voffice.com.br
vi
Sumrio
INTRODUCIN AL ASTERISK .......................................................18
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
ho
H
ec
vii
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
viii
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
4.1 OBJETIVOS................................................................................94
4.2 CONCEPTOS BSICOS ...................................................................94
4.2.1 SEALIZACIN DE SUPERVISIN ...................................................... 95
4.2.2 SEALIZACIN DE DIRECCIONAMIENTO .............................................. 95
4.2.3 SEALIZACIN DE INFORMACIN ..................................................... 96
4.3 INTERFACES DE ACESSO A LA RED PBLICA ........................................96
4.4 USANDO INTERFACES FXS, FXO Y E+M..........................................97
4.4.1 INTERFACES FX (FOREIGN EXCHANGE) .............................................. 97
4.4.2 INTERFACES E & M ..................................................................... 98
4.4.3 SEALIZACIN EN LOS TRONCOS ..................................................... 98
4.5 LINEAS DIGITALES E1/T1, SEALIZACIN CAS Y CCS. .....................99
4.5.1 SEALIZACIN Y ENCUADRAMIENTO E1 ............................................ 100
4.5.2 SEALIZACIN CAS, E1-R2-BRASIL .............................................. 100
4.5.3 SEALIZACIN CCS, E1-ISDN-PRI. ............................................. 100
4.6. CONFIGURANDO UN CANAL DE TELEFONIA EN ASTERISK ........................... 101
4.6.1 PROCEDIMIENTOS GENERALES DE CONFIGURACIN VLIDOS EN LOS TRES CASOS
.................................................................................................. 101
4.7 EJEMPLO 1 - INSTALACIN DE UNA PUERTA FXO Y OTRA FXS ............101
4.7.2 CONFIGURACIN DEL ARCHIVO ZAPTEL.CFG ....................................... 103
4.7.3 CARGAR LOS DRIVERS DEL KERNEL ................................................. 103
4.7.4 USANDO EL UTILITRIO ZTTEST. .................................................... 104
4.7.5 USANDO EL UTILITRIO ZTCFG ...................................................... 104
4.7.6 CONFIGURACIN DEL ARCHIVO ZAPATA.CONF ..................................... 105
4.8 EJEMPLO 2 CARGA DE DOS CANALES E1-ISDN.............................105
4.8.1 INSTALACIN DE LA PLACA TE205P................................................ 105
4.8.2 CONFIGURACIN DEL ARCHIVO ZAPTEL.CONF...................................... 106
4.8.3 CARGA DEL DRIVER DE LA PLACA ZAPTEL ........................................... 107
4.8.4 USANDO EL UTILITRIO ZTTEST ..................................................... 107
4.8.5 VERIFICANDO CONFLICTOS DE INTERRUPCIN ..................................... 107
4.8.6 USANDO EL UTILITRIO ZTCFG ...................................................... 108
4.8.7 CONFIGURACIN DE LOS CANALES ZAPATA.CONF .............................. 109
4.8.8 COMANDOS PARA VERIFICACIN .................................................... 109
4.9 CONFIGURANDO MFC/R2 ..........................................................115
4.9.1 ENTENDIENDO EL PROBLEMA ......................................................... 115
4.9.2 ENTENDENDO EL PROTOCOLO MFC/R2 ............................................ 115
4.9.3 SECUENCIA DE UNA LLAMADA MFC/R2 ........................................... 118
4.9.4 EL DRIVER UNICALL ................................................................118
4.9.5 CONFIGURANDO LA PLACA ZAPTEL PARA OPERAR CON MFC/R2 ........119
4.9.6 INSTALANDO Y COMPILANDO LAS BIBLIOTECAS .............................119
4.9.7 INTEGRANDO EL CANAL UNICALL AL ASTERISK .................................... 120
4.9.8 CONFIGURANDO EL CANAL UNICALL ................................................. 121
4.9.9 RESOLVIENDO PROBLEMAS EN UN CANAL UNICALL. ............................... 125
4.10 OPCINES DE CONFIGURACIN DEL ARCHIVO ZAPATA.CONF ..............130
4.10.1 OPCINES GENERALES, INDEPENDENTES DEL TIPO DE CANAL .................. 131
4.10.2 OPCINES PARA CONEXIONES CON RED ISDN .................................. 131
4.10.3 OPCINES DE IDENTIFICADOR DE LLAMADAS (CALLER ID). ................... 133
4.10.4 OPCINES DE CALIDAD DE UDIO ................................................. 133
4.10.5 OPCINES DE BILLING O REGISTRO PARA COBRO DE LLAMADAS ............... 134
ix
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
5.1 OBJETIVOS..............................................................................138
5.2 INTRODUCCIN ........................................................................138
5.3 BENEFICIOS DE LA VOZ SOBRE IP .................................................138
5.3.1 APLICACIONES PARA CALL-CENTERS ............................................... 139
5.3.2 SISTEMA DE MENSAJERIA UNIFICADO ............................................... 139
5.3.3 LLAMADA BASADA EN TARJETA TELEFNICA ........................................ 139
5.4 ARQUITECTURA DE ASTERISK Y VOZ SOBRE IP.................................140
5.5 COMO ESCOGER UN PROTOCOLO....................................................141
5.5.1 SIP ..................................................................................... 141
5.5.2 IAX..................................................................................... 142
5.5.3 MGCP.................................................................................. 142
5.5.4 H323 .................................................................................. 142
5.6 CONCEPTO DE PEERS, USERS Y FRIENDS ........................................142
5.7 CODECS Y CONVERSIN DE CODECS ...............................................143
5.8 COMO ESCOGER EL CODEC. ........................................................144
5.9 OVERHEAD CAUSADO POR LOS ENCABEZADOS...................................145
5.11 INGENIERA DEL TRFICO .........................................................146
5.10.1 SIMPLIFICACIONES .................................................................. 146
5.10.2 MTODO DE ERLANG B ............................................................. 146
5.11 ESTRATEGIAS DE REDUCCIN DEL USO DE BANDA ANCHA ..................148
5.10.1 IMPACTO DE COMPRESIN DE ENCABEZADO RTP................................ 148
5.10.2 IMPACTO DE MODO TRUNKED EN IAX. ............................................ 149
5.11 SUMARIO ..............................................................................149
5.12 CUESTIONARIO ......................................................................150
EL PROTOCOLO IAX ...................................................................152
H
ec
ho
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
7.1 OBJETIVOS..............................................................................188
7.2 VISIN GENERAL ......................................................................188
7.2.1 TEORA DE OPERACIN DE SIP ..................................................... 189
7.2.2 PROCESO DE REGISTRO DE SIP..................................................... 190
7.2.3 OPERACIN DE SIP EN MODO PROXY. .............................................. 191
7.2.4 OPERACIN EN MODO DE REDIRECT. ............................................... 191
7.2.5 SIP EN MODO ASTERISK ............................................................. 192
7.3 ARCHIVO DE CONFIGURACIN SIP.CONF .........................................194
7.3.1 CONFIGURACIN DE LA SESIN GENERAL [GENERAL] ............................ 194
7.4 CONFIGURANDO UN CLIENTE SIP .................................................196
7.4.1 PASO 1 CONFIGURANDO EL SIP.CONF ........................................... 196
7.4.2 PASO 2 CONFIGURANDO EL TELFONO ............................................. 197
7.4.3 PASO 3 DEFINIR LA EXTENSIN EN EL ARCHIVO SIP.CONF .................... 197
7.4.4 OPCIONES DE CONFIGURACIN PARA LOS TELFONOS ............................ 197
7.4.5 LIMITACIONES Y CUIDADOS CON CLIENTES SIP ................................... 200
7.5 CONECTNDOSE A UN PROVEEDOR SIP. .........................................201
7.5.1 PASO 1: REGISTRAR EL PROVEEDOR (SIP.CONF) ................................. 201
7.5.2 - PASO 2: CONFIGURAR EL [PEER] (SIP.CONF) ................................... 202
7.5.3 PASO 3: CREAR UNA RUTA DE SALIDA EN EL PLANO DE DISCADO. .............. 202
7.5.4 OPCIONES DE CONFIGURACIN ESPECFICAS PARA PROVEEDORES .............. 202
7.6 AUTENTIFICACIN DE LAS LLAMADAS SIP ENTRANTES.......................204
7.7 NOMENCLATURA DE LOS CANALES SIP ...........................................205
7.8 SIP NAT TRAVERSAL ................................................................206
7.8.1 FULL CONE (CLON COMPLETO) ..................................................... 206
7.8.2 RESTRICTED CONE (CONO RESTRITO) ............................................. 207
7.8.3 PORT RESTRICTED CONE (CONO RESTRICTO POR PUERTO)...................... 207
7.8.4 SIMTRICO............................................................................. 208
xi
ru
zz
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
xii
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
9.1 OBJETIVOS..............................................................................252
9.2 INCLUSIN DE CONTEXTOS ..........................................................253
9.2.1 LIMITANDO EL DISCADO PARA NMEROS DDD Y DDI............................ 254
9.3 COMO EL PLANO DE DISCADO ENCUENTRA LA EXTENSIN ...................255
9.3.1 PROCESO ENCUENTRA EN TANTO USTED DISCA. ................................ 256
9.3.2 EJEMPLO ............................................................................... 258
9.3.3 ORDEN DE BUSCA DE LOS ESTANDARES DE EXTENSIN .......................... 259
9.3.4 CONTROLANDO EL ORDENAMIENTO ................................................. 260
9.4 RECIBIENDO UNA LLAMADA EN UN MENU DE VOZ...............................261
9.5 SWITCHES, ENCAMINANDO PARA OTRO ASTERISK .............................267
9.6 MACROS .................................................................................267
9.7 LA BASE DE DATOS DE ASTERISK ..................................................269
9.7.1 FAMLIAS ............................................................................... 269
9.72 FUNCIONES ............................................................................. 269
9.7.3 EJEMPLO DE USO DEL ASTERISK DB................................................ 270
9.8 PROGRAMANDO EL RECURSO DE LISTA NEGRA. .................................271
9.9 CONTEXTOS BASADOS EN HORRIO ...............................................272
9.10 ABRIENDO UN NUEVO TONO DE DISCADO CON DISA. ......................274
9.11 LIMITANDO EL NMERO DE LLAMADAS SIMULTANEAS .......................275
9.12 UN PLANO DE DISCADO EN LA PRCTICA .......................................275
9.12.1 PASO 1 - CONFIGURANDO LOS CANALES. ........................................ 276
9.12.2 PASO 2 - CONFIGURANDO EL PLANO DE DISCADO .............................. 277
9.12.3 RECEPCIN DE LAS LLAMADAS ..................................................... 278
9.13 CUESTIONARIO ......................................................................281
CONFIGURANDO RECURSOS AVANZADOS..................................284
10.1 OBJETIVOS ............................................................................284
10.2 SOPORTE A LOS RECURSOS DE PABX...........................................285
10.2.1 RECURSOS CON SOPORTE PARA TODO TIPO DE CANAL .......................... 285
10.2.2 RECURSOS CON SOPORTE EN TELEFONOS SIP ................................... 286
10.2.3 PARA TELEFONOS ANALGICOS (ZAP). ........................................... 286
10.3 ESTACIONAMENTO DE LLAMADAS ................................................288
xiii
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
xiv
zz
BILLING EN ASTERISK...............................................................328
ex
c
lu
si
va
m
en
te
En
z
La
ru
ho
H
ec
xv
ru
zz
La
si
va
m
en
te
En
z
ex
c
lu
H
ec
ho
xvi
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
xvii
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 1
Introducin al Asterisk
En este captulo vamos aprender que es el Asterisk, cual es su
arquitectura y como puede ser utilizado.
si
va
m
en
te
En
z
La
ru
zz
ex
c
lu
H
ec
ho
zz
ru
En
z
va
m
en
te
La
lu
si
H
ec
ho
ex
c
La
ru
zz
m
en
te
En
z
ex
c
lu
si
va
H
ec
ho
zz
En
z
La
ru
m
en
te
H
ec
ho
ex
c
lu
si
va
Como cualquiera puede ver, con el trabajo dedicado de Mark (un montn
de mi y otras personlas) los drives de Zaptel y el software de Asterisk,
son tecnologias que vienen de un largo tiempo atras y que estan
creciendo y mejorandose dia tras dia.
En
z
La
ru
zz
m
en
te
ex
c
lu
si
va
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 acesso a un mainframe,
cotizada recientemente para un cliente nuestro, cost por lo menos 10
veces el precio que costaria con Asterisk.
ho
H
ec
Este es uno de los benefcios mas citados, en vez de esperar que alguien
configure su PABX proprietrio (algunos ni dan una indicacion para el
cliente final sobre esto), lo configura usted mismo. Total liberdad y
interfaces estandar. En fin de cuentas es LINUX y es libre.
zz
ru
En
z
La
m
en
te
si
va
H
ec
ho
ex
c
lu
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. Entanto que esto permiti que el costo fuese reducido para las
placas E1/T1, el sistema es muy dependiente de la performance de CPU.
Mi reconendacion es preservar al mximo la CPU de Asterisk, corranlo
siempre en una mquina dedicada y prueben el dimensionamiento antes
de implantarlo. En mi opinion, Asterisk debe ser siempre implementado
en una VLAN especfica para VoIP, cualquer tempestad de broadclasts
causada por loops o vrus puede comprometer su funcionamento devido a
el uso de CPU de las placas de red cuando este fenomeno se da.
En
z
La
ru
zz
m
en
te
1.4.1 Canaless
H
ec
ho
ex
c
lu
si
va
zz
Zaptel Wildcard T405P Placa E1/T1 con cuatro puertas (PCI 5 volts
apenlas)
Zaptel TDM400P Placa con cuatro puertas para tel. analgicos y ADSI,
Zaptel - TE110P Placa con E1/T1 con una puerta, medio-comprimido.
Quicknet, - las placas quicknet, tanto PhoneJack como LineJack pueden
ser usadas con Asterisk.
ISDN4Linux Es un driver antiguo para placas ISDN BRI,
acesso bsico. Placas de este standard podran ser usadas en
Asterisk.
ISDN CAPI Es la otra forma de soportar las placas ISDN BRI en Linux.
Placas que soportan este standard podran ser usadas con Asterisk.
Voicetronix: poseen placas con mayor densidad de canales FXS
y FXO que las placas de Digium.
ru
La
En
z
m
en
te
ho
va
si
lu
ex
c
H
ec
zz
ru
La
En
z
m
en
te
1.4.3 Protocolos
ex
c
lu
si
va
ho
SIP
H323
IAXv1 y v2
MGCP
SCCP (Cisco Skinny).
H
ec
1.4.4 Aplicaciones
Para conectar las llamadas de entrada con las llamadas de salida o otros
usurios de asterisk son usadas diversas aplicaciones como es Dial, por
ejemplo. La mayor parte de las funcionalidades de Asterisk son creadas
ru
zz
CISCO IP PHO NE
7905 SERIES
2
AB C
5
JKL
La
CISCO IP PHO NE
7905 SERIES
1
GHI
3
DE F
6
MNO
7
PQ RS
8
TU V
9
WX Y Z
SQ
R
CISCO IP PHO NE
7905 SERIES
1
2
AB C
GHI
JKL
3
DE F
6
MNO
7
PQ RS
8
TU V
9
WX Y Z
SQ
R
2
AB C
GHI
JKL
3
DE F
6
MNO
7
PQ RS
8
TU V
9
WX Y Z
SQ
R
En
z
si
va
m
en
te
lu
H
ec
ho
ex
c
zz
si
va
m
en
te
En
z
La
ru
H
ec
ho
ex
c
lu
CISCO IP PH ONE
7905 SERIES
CISCO IP PHON E
7905 SERIES
1
2
A BC
GHI
JKL
3
D EF
6
MNO
PQ RS
T UV
W X YZ
SR
Q
P
CISCO IP PHON E
7905 SERIES
1
2
ABC
4
GH I
5
JKL
3
DE F
6
MNO
P QR S
T UV
WX Y Z
zz
Q
P
R
2
ABC
4
GH I
5
JKL
3
DE F
6
MNO
P QR S
T UV
WX Y Z
ru
Q
P
R
m
en
te
En
z
La
H
ec
ho
ex
c
lu
si
va
CI SCO IP P HO NE
7905 SERI ES
CI SCO IP P HO NE
7905 SERI ES
2
A BC
4
GH I
5
JKL
3
DE F
6
MNO
P QR S
T UV
W X YZ
Q
P
SR
CI SCO IP P HO NE
7905 SERI ES
1
A BC
GH I
JKL
DE F
6
MNO
P QR S
T UV
W X YZ
Q
P
SR
2
A BC
GH I
JKL
3
DE F
6
MNO
P QR S
T UV
W X YZ
Q
P
SR
En
z
La
ru
zz
va
m
en
te
H
ec
ho
ex
c
lu
si
Conexin
internet
C ISCO I P PHON E
7905 SERIES
2
ABC
5
JKL
3
DE F
6
MN O
P QR S
TUV
WX Y Z
SR
lf
o
no
SI
ru
zz
In
te
r
Te
FX
S
fa
ce
G HI
4
Q
P
En
z
La
e
fac
r
e
Int XO
F
si
va
m
en
te
H
ec
ho
ex
c
lu
Cuidado !
Apenas algunos chipsets funcionan, pruebelos antes de comprar,
yo prob un Ambient MD3200 y funciono bien, si usted no quiere
correr riesgo, compre una placa especfica para Asterisk como las
propias de Digium
Ethernet
2
A BC
4
GH I
5
J KL
7
8
P Q R S TU V
7
PQRS
3
D EF
6
M NO
9
WXYZ
#
n x Telefono
SIP
T100P
zz
Banco de Canales
T1
ru
FX
S
O
FX
En
z
La
Telco
ex
c
lu
si
va
m
en
te
H
ec
ho
En
z
Te
lc
o
La
P
PB ST
X N
ex
is
te
n
te
ru
zz
si
va
m
en
te
H
ec
ho
ex
c
lu
La
ru
zz
1.6 Sumrio | 34
m
en
te
En
z
ex
c
lu
si
va
ho
1.6 Sumrio
H
ec
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
1.7 Questionrio | 36
1.7 Questionrio
1. Marque las opciones correctas.
Asterisk tiene cuatro componentes bsicos de arquitetura
CANALES
PROTOCOLOS
AGENTES
TELEFONOS
CODECS
APLICACIONES
zz
La
ru
En
z
CORRECTA
INCORRECTA
m
en
te
CORRECTA
INCORRECTA
lu
si
va
ex
c
ho
H
ec
CORRECTA
INCORRECTA
6. Es responsable por la atencion automtica de clientes, normalmente
suena um prompt y espera que usurio selecione una opcin. En
algunos casos puede ser usada en conjunto con un banco de datos y
convercion de texto para ser hablado.
Estamos hablando aqui de una:
URA
IVR
DAC
Unified Messaging
E1
T1
FXO
FXS
zz
La
12, 24
30, 24
12,12
1,1
En
z
ru
m
en
te
si
va
H
ec
ho
ex
c
lu
Captulo 2
Bajando e instalando Asterisk
En este captulo vamos abordar la instalacin e ejecucin de Asterisk.
va
m
en
te
En
z
La
ru
zz
si
2.2 Introducion
H
ec
ho
ex
c
lu
PABX un procesador compatible con Intel que sea mejor que un Pentium
300Mhz con 256 MB RAM es lo suficiente. Asterisk no requiere mucho
espacio en disco, cerca de 100 MB compilados, ms cdigo fuente, voicemail, prompts customizados y todos requieren espacio.
Si usted usa apenas VOIP, ningun otro hardware es necesario. Se puede
usar softfones como los de Counterpath (X-Lite) y hacer troncales 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
La
ru
zz
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 que usa
el USB como fuente de temporizacion
m
en
te
En
z
Una pista: Usted puede usar una placa de fax/modem con chipset
Intel 537 o MD3200, ella se comporta como una Digium X100P.
Nosotros conseguimos algunas de estas placas por un precio
bastante accesible, bien ms bajo que importar las de Digium.
ex
c
lu
si
va
H
ec
ho
no debe compartir IRQs con nada. No siempre esto ocurre, pero usted
debe prestar atencin al problema. Se usted est usando un computador
dedicado para Asterisk, desabilite el mayor nmero de dispositivos que
usted no va a usar.
La mayoria de las BIOS permite que usted manualmente designe las
IRQs. Vayase hasta la BIOS y obserbe en la secion de IRQs. Es
posiblemente cierto que usted consiga configurar las interrupciones
manualmente por slot.
ru
B
La
o
En
z
va
m
en
te
#
cat /proc/interrupts
CPU0
0: 41353058 XT-PIC timer
1: 1988 XT-PIC keyboard
2: 0 XT-PIC cascade
3: 413437739 XT-PIC wctdm <-- TDM400
4: 5721494 XT-PIC eth0
7: 413453581 XT-PIC wcfxo <-- X100P
8: 1 XT-PIC rtc
9: 413445182 XT-PIC wcfxo <-- X100P
12: 0 XT-PIC PS/2 Mouse
14: 179578 XT-PIC ide0
15: 3 XT-PIC ide1
NMI: 0
ERR: 0
zz
ex
c
lu
si
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
esten compartiendo las IRQs.
ho
H
ec
La
ru
zz
En
z
si
va
m
en
te
Usamos Debian con Kernel 2.6 para la instalacin de Asterisk con Linux.
Escojemos esta distribuicin por la gran aceptacin que tiene y por ser
una de las distribuciones soportadas por la Digium. Abajo siguen las
instrucciones de instalacin de Asterisk a partir do zero. Junto con el libro
usted puede estar recibiendo un CD (opcional) que es la distribuicin de
Debian con el Asterisk. Si usted pidio el CD y desea instalar ms
rapidamente todos los paquetes y no quisiera conocer los detalles de
compilacin de Asterisk usted puede consultar el apendice B. Instalacin
rpida usando el VTS-CD.
H
ec
ho
ex
c
lu
ru
zz
lu
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
ex
c
H
ec
ho
Cuidado !
Todos las datos de su disco rgido seran perdidos. Instale en un
PC nuevo o que usted pueda formater !!!
ru
zz
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
ru
zz
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
ru
zz
si
va
m
en
te
En
z
La
Paso 15: Siga las opciones presentadas para la configurain del horrio.
H
ec
ho
ex
c
lu
ru
zz
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
ru
zz
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
ru
zz
si
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
La
ru
zz
Paso 26: Y que utilizaremos esta mquina como servidor Asterisk PBX,
no es necesario selecionar ninguna opcin de las presentadas aqui.
Reescriba la contrasea para confirmar.
lu
si
va
m
en
te
En
z
H
ec
ho
ex
c
va
m
en
te
En
z
La
ru
zz
lu
si
ho
ex
c
H
ec
fuente
para
download
de
paquetes
ru
zz
va
m
en
te
En
z
La
H
ec
ho
ex
c
lu
si
zz
La
ru
En
z
m
en
te
#apt-get install bison openssl libssl-dev libasound2-dev libc6-dev libnewtdev libncurses5-dev zlib1g-dev zlib-bin gcc make
va
lu
si
H
ec
ho
ex
c
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.
# cd /usr/src
#wget http://ftp.digium.com/pub/zaptel/zaptel-1.2.4.tar.gz
#wget http://ftp.digium.com/pub/libpri/libpri-1.2.2.tar.gz
#wget http://ftp.digium.com/pub/asterisk/asterisk-addons-1.2.2.tar.gz
#wget http://ftp.digium.com/pub/asterisk/asterisk-sounds-1.2.1.tar.gz
#wget http://ftp.digium.com/pub/asterisk/asterisk-1.2.5.tar.gz
tar
tar
tar
tar
tar
xzvf
xzvf
xzvf
xzvf
xzvf
asterisk-1.2.5.tar.gz
libpri-1.2.2.tar.gz
asterisk-addons-1.2.2.tar.gz
asteriks-sounds-1.2.1.tar.gz
zaptel-1.2.4.tar.gz
La
ru
zz
va
m
en
te
# lsmod
Module Size Used by Not tainted
...
uhci-hcd 29725 0 [unused]
<-- usb-uhci
usbcore 105342 3uhci-hcd
En
z
El driver ztdummy requiere que usted tenga una controladora USB UHCI.
Si usted estubiera usando una controladora USB OHCI, usted tendra que
usar el zaprtc. Usted puede verificar si su placa-madre tiene una
controladora UHCI USB escribiendo lsmod en la linea de comandos.
ex
c
lu
si
H
ec
ho
zz
cd /usr/src/zaptel-1.2.4/
make clean
make install
ru
Se usted usa cualquier distribucin que use el kernel 2.6, usted precisa
hacer un paso adicional antes de hacer el make install.
En
z
La
cd /usr/src/zaptel-1.2.4/
make clean
make linux26
make install
va
lu
si
cd /usr/src/libpri-1.2.2/
make clean
make
make install
m
en
te
ho
ex
c
cd /usr/src/asterisk-1.2.5/
make clean
make
make install
H
ec
Con esta configuracin mnima, ya es posible iniciar Asterisk con con exito
/usr/sbin/asterisk vvvgc
Use el comando stop now para parar Asterisk. Vea los comandos
disponibles en la interface de linea de comando de Asterisk.
CLI>stop now
ru
zz
La
/sbin/asterisk
En
z
/sbin/asterisk r
m
en
te
H
ec
ho
ex
c
lu
si
va
zz
ru
En
z
La
va
m
en
te
lu
si
H
ec
ho
ex
c
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
ru
zz
La
En
z
si
va
m
en
te
ex
c
lu
H
ec
ho
2.13 Sumrio
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
2.14 Questionrio | 60
2.14 Questionrio
1. Cual es la configuracin mnima para Asterisk.
zz
Correcto
Incorrecto
ru
La
Correcto
Incorrecto
En
z
4. Es posible obtener una buena calidad de voz en una red que no este
congestionada con switches de 100 Mbps.
m
en
te
Correcto
Incorrecto
va
ex
c
lu
si
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.
H
ec
ho
de
Asterisk
se
encuentran
en
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 3
Primeros pasos en Asterisk
lu
si
va
m
en
te
En
z
La
ru
zz
ex
c
3.2 Introduccin
H
ec
ho
ru
zz
;
; la primera linea sin comentario debe ser el ttulo de una seccin.
;
[seccin]
llave = valor ; Designacin de variable
[sessao2]
objeto => valor ; Decalracin de objeto
La
En
z
m
en
te
va
[seccin]
objeto1 => op1,op2,op3
objeto2 => op1b,op2b,op3b
lu
si
ex
c
H
ec
ho
op2 = adv
objeto=>1
op1 = int
objeto => 2
Las primeras dos configuran el valor de opcin op1 y op2 para bas y
adv respectivamente. Cuando el objeto 1 es instanciado, este es creado
con su opcin 1 siendo bas y su opcin 2 siendo adv. Despues 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.
zz
En
z
La
ru
m
en
te
[entidad1]
op1=valor1
op2=valor2
[entidad2]
op1=valor3
op2=valor4
lu
si
va
ex
c
H
ec
ho
La
ru
zz
lu
si
va
Motorola 68202-51
Intel 537PU
Intel 537 PG
Intel Ambient MD3200
m
en
te
En
z
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. En sitios de subastas, en tiendas comerciales en
Internet y en foros, usted puede acabar encontrando una. Estas
placas poseen precios ms bajos que las placas de Digium. Los
chipsets que son conocidos y funcionan son:
H
ec
ho
ex
c
zz
B
La
En
z
m
en
te
All T1/E1 spans generate a clock signal on their transmit side. The
<timing source> parameter determines whether the clock signal from the far
end of the T1/E1 is used as the master source of clock timing. If it is, our
own clock will synchronise to it. T1/E1's connected directly or indirectly to
a PSTN provider (telco) should generally be the first choice to sync to. The
PSTN will never be a slave to you. You must be a slave to it.
lu
si
va
Choose 1 to make the equipment at the far end of the E1/T1 link the preferred
source of the master clock. Choose 2 to make it the second choice for the master
clock, if the first choice port fails (the far end dies, a cable breaks, or
whatever). Choose 3 to make a port the third choice, and so on. If you have, say,
2 ports connected to the PSTN, mark those as 1 and 2. The number used for each
port should be different.
ex
c
If you choose 0, the port will never be used as a source of timing. This is
appropriate when you know the far end should always be a slave to you. If the
port is connected to a channel bank, for example, you should always be its
master. Any number of ports can be marked as 0.
ho
Incorrect timing sync may cause clicks/noise in the audio, poor quality or failed
faxes, unreliable modem operation, and is a general all round bad thing.
H
ec
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
ru
zaptel.conf
The line build-out (or LBO) is an integer, from the following table:
0: 0 db (CSU) / 0-133 feet (DSX-1)
1: 133-266 feet (DSX-1)
2: 266-399 feet (DSX-1)
3: 399-533 feet (DSX-1)
4: 533-655 feet (DSX-1)
5: -7.5db (CSU)
6: -15db (CSU)
7: -22.5db (CSU)
The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
# the driver;s ioctl() interface. This file gives you access to specify
# load-time parameters for Radio channels, so that the driver may run
# by itself, and just act like a generic Zaptel radio interface.
#
# Unlike the rest of this file, you specify a block of parameters, and
# then the channel(s) to which they apply. CTCSS is specified as a frequency
# in tenths of hertz, for example 131.8 HZ is specified as 1318. DCS
# for receive is specified as the code directly, for example 223. DCS for
# transmit is specified as D and then the code, for example D223.
#
# The hardware supports a "community" CTCSS decoder system that has
# arbitrary transmit CTCSS or DCS codes associated with them, unlike
# traditional "community" systems that encode the same tone they decode.
#
# this example is a single tone DCS transmit and receive
#
# # specify the transmit tone (in DCS mode this stays constant)
# tx=D371
# # specify the receive DCS code
# dcsrx=223
#
# this example is a "community" CTCSS (if you only want a single tone, then
# only specify 1 in the ctcss list)
#
# # specify the default transmit tone (when not receiving)
# tx=1000
# # Specify the receive freq, the tag (use 0 if none), and the transmit code.
# # The tag may be used by applications to determine classification of tones.
# # The tones are to be specified in order of presedence, most important first.
# # Currently, 15 tones may be specified..
# ctcss=1318,1,1318
# ctcss=1862,1,1862
#
# The following parameters may be omitted if their default value is acceptible
#
# # set the receive debounce time in milliseconds
# debouncetime=123
# # set the transmit quiet dropoff burst time in milliseconds
# bursttime=234
# # set the COR level threshold (specified in tenths of millivolts)
# # valid values are {3125,6250,9375,12500,15625,18750,21875,25000}
# corthresh=12500
# # Invert COR signal {y,n}
# invertcor=y
# # set the external tone mode; yes, no, internal {y,n,i}
# exttone=y
#
# Now apply the configuration to the specified channels:
#
# # We are all done with our channel parameters, so now we specify what
# # channels they apply to
channels=1
Zapata.conf
;
;
;
;
;
;
;
En
z
zz
ru
La
[trunkgroups]
;
; Trunk groups are used for NFAS or GR-303 connections.
;
; Group: Defines a trunk group.
;
group => <trunkgroup>,<dchannel>[,<backup1>...]
;
;
trunkgroup is the numerical trunk group to create
;
dchannel is the zap channel which will have the
;
d-channel for the trunk.
;
backup1
is an optional list of backup d-channels.
;
;trunkgroup => 1,24,48
;trunkgroup => 1,24
;
; Spanmap: Associates a span with a trunk group
;
spanmap => <zapspan>,<trunkgroup>[,<logicalspan>]
;
;
zapspan
is the zap span number to associate
;
trunkgroup is the trunkgroup (specified above) for the mapping
;
logicalspan is the logical span number within the trunk group to use.
;
if unspecified, no logical span number is used.
;
;spanmap => 1,1,1
;spanmap => 2,1,2
;spanmap => 3,1,3
;spanmap => 4,1,4
;
;
H
ec
ho
ex
c
lu
si
va
m
en
te
[channels]
;
; Default language
;
;language=en
;
; Default context
;
context=default
;
; Switchtype: Only used for PRI.
;
; national:
National ISDN 2 (default)
; dms100:
Nortel DMS100
; 4ess:
AT&T 4ESS
; 5ess:
Lucent 5ESS
; euroisdn:
EuroISDN
; ni1:
Old National ISDN 1
; qsig:
Q.SIG
;
switchtype=national
;
; Some switches (AT&T especially) require network specific facility IE
; supported values are currently 'none', 'sdn', 'megacom', 'accunet'
;
;nsf=none
;
; PRI Dialplan: Only RARELY used for PRI.
;
; unknown:
Unknown
; private:
Private ISDN
; local:
Local ISDN
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
; national:
National ISDN
; international: International ISDN
;
;pridialplan=national
;
; PRI Local Dialplan: Only RARELY used for PRI (sets the calling number's numbering plan)
;
; unknown:
Unknown
; private:
Private ISDN
; local:
Local ISDN
; national:
National ISDN
; international: International ISDN
;
;prilocaldialplan=national
;
; PRI callerid prefixes based on the given TON/NPI (dialplan)
; This is especially needed for euroisdn E1-PRIs
;
; sample 1 for Germany
;internationalprefix = 00
;nationalprefix = 0
;localprefix = 0711
;privateprefix = 07115678
;unknownprefix =
;
; sample 2 for Germany
;internationalprefix = +
;nationalprefix = +49
;localprefix = +49711
;privateprefix = +497115678
;unknownprefix =
;
; PRI resetinterval: sets the time in seconds between restart of unused
; channels, defaults to 3600; minimum 60 seconds. Some PBXs don't like
; channel restarts. so set the interval to a very long interval e.g. 100000000
; or 'never' to disable *entirely*.
;
;resetinterval = 3600
;
; Overlap dialing mode (sending overlap digits)
;
;overlapdial=yes
;
; PRI Out of band indications.
; Enable this to report Busy and Congestion on a PRI using out-of-band
; notification. Inband indication, as used by Asterisk doesn't seem to work
; with all telcos.
;
; outofband:
Signal Busy/Congestion out of band with RELEASE/DISCONNECT
; inband:
Signal Busy/Congestion using in-band tones
;
; priindication = outofband
;
; If you need to override the existing channels selection routine and force all
; PRI channels to be marked as exclusively selected, set this to yes.
; priexclusive = yes
;
; ISDN Timers
; All of the ISDN timers and counters that are used are configurable. Specify
; the timer name, and its value (in ms for timers).
;
; pritimer => t200,1000
; pritimer => t313,4000
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
;
; To enable transmission of facility-based ISDN supplementary services (such
; as caller name from CPE over facility), enable this option.
; facilityenable = yes
;
;
; Signalling method (default is fxs). Valid values:
; em:
E&M
; em_w:
E & M Wink
; featd:
Feature Group D (The fake, Adtran style, DTMF)
; featdmf:
Feature Group D (The real thing, MF (domestic, US))
; featdmf_ta:
Feature Group D (The real thing, MF (domestic, US)) through
;
a Tandem Access point
; featb:
Feature Group B (MF (domestic, US))
; fxs_ls:
FXS (Loop Start)
; fxs_gs:
FXS (Ground Start)
; fxs_ks:
FXS (Kewl Start)
; fxo_ls:
FXO (Loop Start)
; fxo_gs:
FXO (Ground Start)
; fxo_ks:
FXO (Kewl Start)
; pri_cpe:
PRI signalling, CPE side
; pri_net:
PRI signalling, Network side
; gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side
; gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side
; sf:
SF (Inband Tone) Signalling
; sf_w:
SF Wink
; sf_featd:
SF Feature Group D (The fake, Adtran style, DTMF)
; sf_featdmf:
SF Feature Group D (The real thing, MF (domestic, US))
; sf_featb:
SF Feature Group B (MF (domestic, US))
; e911:
E911 (MF) style signalling
;
; The following are used for Radio interfaces:
; fxs_rx:
Receive audio/COR on an FXS kewlstart interface (FXO at the
;
channel bank)
; fxs_tx:
Transmit audio/PTT on an FXS loopstart interface (FXO at the
;
channel bank)
; fxo_rx:
Receive audio/COR on an FXO loopstart interface (FXS at the
;
channel bank)
; fxo_tx:
Transmit audio/PTT on an FXO groundstart interface (FXS at
;
the channel bank)
; em_rx:
Receive audio/COR on an E&M interface (1-way)
; em_tx:
Transmit audio/PTT on an E&M interface (1-way)
; em_txrx:
Receive audio/COR AND Transmit audio/PTT on an E&M interface
;
(2-way)
; em_rxtx:
Same as em_txrx (for our dyslexic friends)
; sf_rx:
Receive audio/COR on an SF interface (1-way)
; sf_tx:
Transmit audio/PTT on an SF interface (1-way)
; sf_txrx:
Receive audio/COR AND Transmit audio/PTT on an SF interface
;
(2-way)
; sf_rxtx:
Same as sf_txrx (for our dyslexic friends)
;
signalling=fxs_ks
;
; For Feature Group D Tandem access, to set the default CIC and OZZ use these
; parameters:
;defaultozz=0000
;defaultcic=303
;
; A variety of timing parameters can be specified as well
; Including:
; prewink:
Pre-wink time (default 50ms)
; preflash: Pre-flash time (default 50ms)
; wink:
Wink time (default 150ms)
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
zz
ru
B
La
;
; Whether or not to use caller ID
;
usecallerid=yes
;
; Type of caller ID signalling in use
;
bell
= bell202 as used in US
;
v23
= v23 as used in the UK
;
dtmf
= DTMF as used in Denmark, Sweden and Netherlands
;
;cidsignalling=bell
;
; What signals the start of caller ID
;
ring
= a ring signals the start
;
polarity = polarity reversal signals the start
;
;cidstart=ring
;
; Whether or not to hide outgoing caller ID (Override with *67 or *82)
;
hidecallerid=no
;
; Whether or not to enable call waiting on FXO lines
;
callwaiting=yes
;
; 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
;
; Whether or not use the caller ID presentation for the outgoing call that the
; calling switch is sending.
;
usecallingpres=yes
;
; Some countries (UK) have ring tones with different ring tones (ring-ring),
; which means the callerid needs to be set later on, and not just after
; the first ring, as per the default.
;
;sendcalleridafter=1
;
;
; Support Caller*ID on Call Waiting
;
callwaitingcallerid=yes
; flash:
Flash time (default 750ms)
; start:
Start time (default 1500ms)
; rxwink:
Receiver wink time (default 300ms)
; rxflash:
Receiver flashtime (default 1250ms)
; debounce: Debounce timing (default 600ms)
;
rxwink=300
; Atlas seems to use long (250ms) winks
;
; How long generated tones (DTMF and MF) will be played on the channel
; (in miliseconds)
;toneduration=100
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
;
; Support three-way calling
;
threewaycalling=yes
;
; Support flash-hook call transfer (requires three way calling)
; Also enables call parking (overrides the 'canpark' parameter)
;
transfer=yes
;
; Allow call parking
; ('canpark=no' is overridden by 'transfer=yes')
;
canpark=yes
;
; Support call forward variable
;
cancallforward=yes
;
; Whether or not to support Call Return (*69)
;
callreturn=yes
;
; Stutter dialtone support: If a mailbox is specified without a voicemail
; context, then when voicemail is received in a mailbox in the default
; voicemail context in voicemail.conf, taking the phone off hook will cause a
; stutter dialtone instead of a normal one.
;
; If a mailbox is specified *with* a voicemail context, the same will result
; if voicemail recieved in mailbox in the specified voicemail context.
;
; for default voicemail context, the example below is fine:
;
;mailbox=1234
;
; for any other voicemail context, the following will produce the stutter tone:
;
;mailbox=1234@context
;
; Enable echo cancellation
; Use either "yes", "no", or a 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 a much
; closer idea of the actual echo. Value may be "yes", "no", or a 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
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
;
; Specify whether the channel should be answered immediately or if the simple
; switch should provide dialtone, read digits, etc.
;
immediate=no
;
; Specify whether flash-hook transfers to 'busy' channels should complete or
; return to the caller performing the transfer (default is yes).
;
;transfertobusy=no
;
; CallerID can be set to "asreceived" or a specific number if you want to
; override it. Note that "asreceived" only applies to trunk interfaces.
;
;callerid=2564286000
;
; 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
;
; ADSI (Analog Display Services Interface) can be enabled on a per-channel
; basis if you have (or may have) ADSI compatible CPE equipment
;
;adsi=yes
;
; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D
; etc, it can be useful to perform busy detection either in an effort to
; detect hangup or for detecting busies. This enables listening for
; the beep-beep busy pattern.
;
;busydetect=yes
;
; If busydetect is enabled, it is also possible to specify how many busy tones
; to wait for before hanging up. The default is 4, but better results can be
; achieved if set to 6 or even 8. Mind that the higher the number, the more
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
; time that will be needed to hangup a channel, but lowers the probability
; that you will get random hangups.
;
;busycount=4
;
; If busydetect is enabled, it is also possible to specify the cadence of your
; busy signal. In many countries, it is 500msec on, 500msec off. Without
; busypattern specified, we'll accept any regular sound-silence pattern that
; repeats <busycount> times as a busy signal. If you specify busypattern,
; then we'll further check the length of the sound (tone) and silence, which
; will further reduce the chance of a false positive.
;
;busypattern=500,500
;
; NOTE: In the Asterisk Makefile you'll find further options to tweak the busy
; detector. If your country has a busy tone with the same length tone and
; silence (as many countries do), consider defining the
; -DBUSYDETECT_COMPARE_TONE_AND_SILENCE option.
;
; Use a polarity reversal to mark when a outgoing call is answered by the
; remote party.
;
;answeronpolarityswitch=yes
;
; In some countries, a polarity reversal is used to signal the disconnect of a
; phone line. If the hanguponpolarityswitch option is selected, the call will
; be considered "hung up" on a polarity reversal.
;
;hanguponpolarityswitch=yes
;
; On trunk interfaces (FXS) it can be useful to attempt to follow the progress
; of a call through RINGING, BUSY, and ANSWERING. If turned on, call
; progress attempts to determine answer, busy, and ringing on phone lines.
; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers,
; so don't count on it being very accurate.
;
; Few zones are supported at the time of this writing, but may be selected
; with "progzone"
;
; This feature can also easily detect false hangups. The symptoms of this is
; being disconnected in the middle of a call for no reason.
;
;callprogress=yes
;progzone=us
;
; FXO (FXS signalled) devices must have a timeout to determine if there was a
; hangup before the line was answered. This value can be tweaked to shorten
; how long it takes before Zap considers a non-ringing line to have hungup.
;
;ringtimeout=8000
;
; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF
;
;pulsedial=yes
;
; 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
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
;
; For example, maybe we have some other channels which start out in a
; different context and use E & M signalling instead.
;
;context=remote
;sigalling=em
;channel => 15
;channel => 16
va
m
en
te
En
z
La
;signalling=fxo_ls
;group=1
;callerid="Joe Schmoe" <(256) 428-6131>
;channel => 25
;callerid="Megan May" <(256) 428-6132>
;channel => 26
;callerid="Suzy Queue" <(256) 428-6233>
;channel => 27
;callerid="Larry Moe" <(256) 428-6234>
;channel => 28
;
; Sample PRI (CPE) config: Specify the switchtype, the signalling as either
; pri_cpe or pri_net for CPE or Network termination, and generally you will
; want to create a single "group" for all channels of the PRI.
;
; switchtype = national
; signalling = pri_cpe
; group = 2
; channel => 1-23
ru
zz
;signalling=em_w
;
; All those in group 0 I'll use for outgoing calls
;
; Strip most significant digit (9) before sending
;
;stripmsd=1
;callerid=asreceived
;group=0
;signalling=fxs_ls
;channel => 45
si
H
ec
ho
ex
c
lu
ru
zz
En
z
La
H
ec
ho
ex
c
lu
si
va
m
en
te
allow = ulaw
maxexpirey = 120
defaultexpirey = 80
zz
ru
La
En
z
m
en
te
si
va
ex
c
lu
[general]
bindport=5060
bindaddr=10.1.30.45
context=default
H
ec
ho
[cisco]
type=friend
secret=mysecret
host=10.1.30.50
canreinvite=no
mailbox=8580
context=trusted
[xlite]
type=friend
secret=xlite
host=dynamic
defaultip=10.1.30.17
mailbox=8590
zz
ru
La
Aplicaciones
En
z
Contextos
Extensiones
m
en
te
Prioridads
va
En este captulo vamos a ver como crear un plano de discado bsico, pero
que atiende a nuestras necesidades actuales. Ms adelante usteds tendra
la oportunidad de conocer el plano de discado ms a fondo.
ex
c
lu
si
3.6.1 Contextos
H
ec
ho
ru
zz
Contextos tambim son usados para crear menus de voz que dan al
usurio una lista de extensiones para escojer presionando las teclas de
um telefono multifrequencial. Esta funcionalidad es normalmente conocida
como auto-atencion de llamadas. Auto-atencion de llamadas ser visto en
captulos posteriores.
En
z
La
m
en
te
Todas las instrucciones colocadas depus de esta definicion son partes del
contexto. Para iniciar un nuevo contexto, simplemente escriba el nuevo
contexto [nuevocontexto]. En el incio del archivo extensions.conf existe
un contexto llamado [globals]. El contexto globals es donde las varibles
son definidas y pueden ser usadas por todo el plano de discado.
si
va
3.6.2 Extensiones
ex
c
lu
H
ec
ho
exten=>8580,1,Dial(SIP/8580,20)
exten=>8580,2,voicemail(u8580)
exten=>8580,101,voicemail(b8580)
A instrucin exten=> describe cual es el prximo passo para la
llamada. El 8580 es un conjunto de dgitos que fue recibido (nmero
discado). El 1, 2 y 101 son las prioridads que determinam la orden
de ejecucin de los comandos. En este ejemplo, discando 8580 sonar
el telefone IP registrado como 8580, el cual de no ser atendido en 20
segundos ser desviado para la prioridad 2 en la casilla de correo de voz
con un mensaje no atendida. Si estibiese ocupado es desviado para la
prioridad 101 y va para el correo de voz con el mensaje, ocupado.
zz
3.6.3 Prioridads
La
ru
En
z
3.6.4 Aplicaciones
H
ec
ho
ex
c
lu
si
CLI>show applications
va
m
en
te
En
z
La
ru
zz
O
FX
H
ec
ho
ex
c
lu
si
va
m
en
te
[general]
bindport=5060
bindaddr=10.1.30.45 ; Coloque aqui la direccin IP de su servidor
context=default
allow=all
[2000]
type=friend
secret=2000
host=dynamic
canreinvite=no
Paso 2: Repita el passo 1 ahora para el ramal 2001
Paso 3: Configure los softphone xlite de ramal 2000 para Asterisk.
zz
ru
La
m
en
te
En
z
si
lu
h) Escoja Default
va
ex
c
H
ec
ho
zz
La extensin especial s
La
ru
En
z
m
en
te
ex
c
lu
si
va
H
ec
ho
[entrada]
exten=>s,1,answer()
exten=>s,2,playback(goodbye)
exten=>s,3,hangup()
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 prioridads en el contexto, 1, 2 y 3. Cada prioridad llama un
aplicativo. Vamos a observar de cerca las prioridads:
zz
La
ru
En
z
Un ejemplo ms til
m
en
te
lu
si
va
H
ec
ho
ex
c
En
z
La
ru
zz
[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)
ex
c
lu
si
va
m
en
te
H
ec
ho
exten=>2,2,Dial(ZAP/1)
exten=>3,1,playback(ventas)
exten=>3,2,Dial(IAX/8002)
Al comparar con el ejemplo anterior, apenas creamos un atajo. En ves 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.
ru
zz
La
En
z
3.7 Laboratrio
m
en
te
ex
c
lu
si
va
H
ec
ho
3.7 Laboratrio | 90
[default]
exten=>0,1,Dial(ZAP/1,20,r)
ru
zz
Escriba los comandos que estan abajo, estos van a crear una interface
para que usted pueda grabar los mensajes del menu de atencin
automtica de llamadas. El mensaje puede ser algo como Usted se
comunico con xyz, disque el ramal deseado o aguarde y sera atendido.
Cuando termine de hablar el mensaje disque # para que este sea
grabado. Usted va a oirlo enseguida cuando el comando playback fuese
executado.
En
z
La
[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()
m
en
te
H
ec
ho
ex
c
lu
si
va
[default]
exten=>s,1,Background(menu)
exten=>s,2,Dial(SIP/2000)
exten=>2000,1,Dial(SIP/2000)
exten=>2001,1,Dial(SIP/2001)
3.8 Sumrio
En este captulo usted aprendi que los archivos de configuracin
estan en /etc/asterisk. Para usar Asterisk es preciso en primer lugar
configurar los canales (Ej. sip.conf y zapata.conf). Existen basicamente
tres formatos, el grupo simple, herencia de opciones, entidad compleja.
zz
ru
La
3.9 Questionrio
En
z
zaptel.conf
zapata.conf
sip.conf
iax.conf
m
en
te
va
lu
si
Correcto
Incorrecto
ho
ex
c
H
ec
Correcto
Incorrecto
3.9 Questionrio | 92
Incorrecto
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
substitudo recientemente por el H.323.
Correcto
Incorrecto
ru
zz
m
en
te
En
z
La
[general]
bindport = 5060
bindaddr = 10.1.30.45
context = default
disallow = speex
disallow = ilbc
allow = ulaw
maxexpirey = 120
defaultexpirey = 80
si
lu
ex
c
[8000]
type=friend
secret=8000
host=dynamic
canreinvite=no
va
H
ec
ho
[8001]
type=friend
secret=8000
host=dynamic
canreinvite=no
Correcto
Incorrecto
8. La principal diferencia entre el comando Playback() y el comando
Background() es que el Playback() simplemente toca un mensaje y pasa
En
z
Goto(contexto,extensin,prioridad)
Goto(prioridad, contexto, extensin)
Goto(extensin,prioridad)
Goto(prioridad)
H
ec
ho
ex
c
lu
si
va
m
en
te
La
ru
zz
0
9
s
i
Captulo 4
Canales Analgicos y Digitales
En esta seccin vamos a mostrar como definir los canales de integracon
de comunicacin la redes de telefonia POTS4. Tambin haremos una
revisin sobre conceptos de telefonia y aprenderemos la configurar el
archivo zapata.conf para diversos escenrios.
lu
si
va
m
en
te
En
z
La
ru
zz
4.1 Objetivos
ex
c
H
ec
ho
Sealizacon de supervisin
4
Sealizacin de direcionamiento
Sealizacin de informacin
4.2.1 Sealizacin de supervisin
Puedemos destacar las seales on-hook (colgado), off-hook (descolgar)
y ringing (sonando).
zz
La
ru
Off-Hook El usurio que desea hacer una llamada telefonica debe pasar
para el estado off-hook (descolgar), descolgando el telefono. Este
estado cierra el loop elctrico, el cual indica al PABX que el usurio desea
hacer una llamada telefonica. El PABX entonces, luego de recibir esa
indicacin, genera el tono de discado, indicando la el usurio que est
listo para recibir la direccin de destino (nmero de telefono).
m
en
te
En
z
va
H
ec
ho
ex
c
lu
si
[br]
description=Brazil
ringcadance=1000,4000
dial=425
busy=425/250,0/250
ring=425/1000,0/4000
congestion=425/250,0/250,425/750,0/250
callwaiting=425/50,0/1000
zz
ru
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
En
z
La
ru
zz
m
en
te
va
H
ec
ho
ex
c
lu
si
La
ru
zz
En
z
m
en
te
lu
si
va
Placas E&M para Asterisk no estan disponbles. Estas placas son conocidas
en el mercado de telefonia como tie-lines analgicas. La mayoria 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 el recibir tono. Si
usted precisa usar una interface E&M con Asterisk la mejor opcin es la
integracin de un gateway de voz.
ex
c
H
ec
ho
Loop-Start
Ground-Start
Kool-Start
m
en
te
En
z
La
ru
zz
va
H
ec
ho
ex
c
lu
si
MFC/R2 es una
Sealizacin definida para la ITU
(Q.421/Q.441), usada principalmente en Amrica Latina y
sia. La Sealizacin usa CAS, Ahora pasa las sealizaciones
de cada canal por el canal 16. El R2 pose variaciones
especficas para cada pas. Es la Sealizacin de linea digital
ms comn en Brasil.
En
z
La
ru
zz
m
en
te
H
ec
ho
ex
c
lu
si
va
ru
zz
En
z
La
m
en
te
si
va
lu
http://www.digium.com/index.php?menu=compatibility
ex
c
H
ec
ho
La
ru
zz
12
FX
S
FX
O
En
z
H
ec
ho
ex
c
lu
si
va
m
en
te
La placa TDM 400P contiene mdulos FXS y FXO de una puerta. Cuando
existiesen placas FXS, es preciso alimentar diretamente la placa con una
fuente de energia (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.
En
z
La
ru
zz
m
en
te
va
En la TDM400P los mdulos FXS son verdes y los mdulos FXO son rojos.
ex
c
lu
si
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
H
ec
ho
Placa
Driver
Descripcin
TE410P
TE405P
TDM400P
T100P
E100P
X100P
wct4xxp
wct4xxp
Wctdm
wct1xxp
Wctlxxp
Wcfxo
4xE1/T1-3.3V PCI
4xE1/T1-5V PCI
4 FXS/FXO
1 T1
1 E1
1 FXO
modprobe zaptel
modprobe wctdm
La
ru
zz
En
z
m
en
te
Luego de cargar el driver, usted debe configurar los canales usando ztcfg.
ex
c
lu
si
va
H
ec
ho
#
/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 encima. Un error comn es invertir la Sealizacin entre los
Canales. Si esto sucede usted va a ver algo parecido como:
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 el Asterisk.
En
z
La
signalling=fxs_ks;
group=1;
context=entrada ;
channel => 1;
signalling=fxo_ks;
group=2;
context=rams;
channel=> 2
ru
zz
m
en
te
ho
ex
c
lu
si
H
ec
1.
2.
3.
4.
5.
6.
7.
va
Pasos necesarios:
La
ru
zz
m
en
te
En
z
ex
c
lu
si
va
ho
H
ec
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
zz
B
La
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
En
z
Driver
wct4xxp
wct4xxp
wct2xxp
wct2xxp
Wctdm
wct1xxp
Wctlxxp
Wcfxo
Placa
TE410P
TE405P
TE210P
TE205P
TDM400P
T100P
E100P
X100P
ru
m
en
te
modprobe zaptel
modprobe wct2xxp
va
ex
c
lu
si
H
ec
ho
Para verificar en que interrupcin est cada una de las placas use:
#cat /proc/interrupts
CPU0
3675537
2
0
410705
1694897
36737213
14703
4
36742553
36742513
55631
0
3675478
0
0
ru
zz
XT-PIC timer
XT-PIC keyboard
XT-PIC cascade
XT-PIC eth1
XT-PIC eth0
XT-PIC t1xxp
XT-PIC libata
XT-PIC rtc
XT-PIC wcfxo
XT-PIC wcfxo
XT-PIC ide0
0:
1:
2:
3:
4:
5:
7:
8:
10:
11:
14:
NMI:
LOC:
ERR:
MIS:
La
m
en
te
Zaptel Configuration
======================
En
z
Esta es la salida del comando ztcfg vvv de un servidor Asterisk con una
placa E1 configurada para quince Canales ms dos placas FXO.
H
ec
lu
si
ex
c
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
32:
33:
ho
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
va
Channel map:
18 channels configured.
zz
callerid=<4830258580>
switchtype=euroisdn
signalling = pri_cpe
group = 1
channel => 1-15;17-31
group =2
channel => 32-46;48-62
CRC4
0
0
0
0
bpviol
0
0
0
En
z
La
ru
H
ec
ho
ex
c
lu
si
va
m
en
te
zz
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
ru
en
en
en
en
en
en
en
en
en
en
en
en
en
en
en
en
en
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
default
fax
H
ec
ho
ex
c
lu
si
va
En
z
a
m
en
te
La
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
32
33
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
zz
ru
En
z
La
si
lu
va
m
en
te
H
ec
ho
ex
c
Estado
Idle/Released (libre)
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)
ABCD p/ Frente
1001
0001
0001
0001
0001
1001
ABCD p/ Trs
1001
1001
1101
0101
1101
0101
1001
1101
ABCD p/ Frente
1001
ABCD p/ Trs
1001
Seized (Ocupado)
Seize Ack (Confirmacim de ocupado, Ring)
Llamada en progreso
Atencion de la Llamada
Answered (En conversacin)
Tarifacin
ClearBack (Desconexion por la parte llamada)
ClearFwd (Antes de Clear-Back)
ClearFwd (Confirmain de desconexin)
Desconexin forzada
Blocked (Bloqueado)
Confirmacin de desconexion forzada
Falla
0001
0001
0001
0001
0001
0001
0001
1001
1001
0001
1001
1001
1101
1001
1101
1101
0101
0101
1101
1101
0101
1001
0001
1101
0001
1001
zz
ru
si
va
m
en
te
En
z
Seal enfrente
I-1
I-2
I-3
I-4
I-5
I-6
I-7
I-8
I-9
I-10
I-11
I-12
I-13
I-14
I-15
ex
c
15
Descripcin
Algoritmo 1
Algoritmo 2
Algoritmo 3
Algoritmo 4
Algoritmo 5
Algoritmo 6
Algoritmo 7
Algoritmo 8
Algoritmo 9
Algoritmo 0
Inserseccin semi-supressor de eco
Pedido recusado o indicacin de transito internacional
Acesso aequipamiento de test
Insercin de semi-supressor de eco de destino o
indicacin de transito internacional
Fin de nmero o indicacin de que la llamada curs
enlace via satlite
lu
Seales
1
2
3
4
5
6
7
8
9
10
11
12
13
14
La
ho
Descripcin
Suscriptor comn
Suscriptor con tarifacin especial
Equipamiento de manutencin
Telefono pblico local
Telefonista
Transmisin de datos
Telefono pblico interurbano
Llamada a cobrar
Suscriptor comn servicio entrante internacional
Reservado
Indicativo de llamada transferida
Confuso o Inestable
Confuso o Inestable
H
ec
Seales
1
2
3
4
5
6
7
8
9
10
11
12
13
Seal frente
II-1
II-2
II-3
II-4
II-5
II-6
II-7
II-8
II-9
II-10
II-11
II-12
II-13
14
15
Confuso o Inestable
Confuso o Inestable
II-14
II-15
En
z
m
en
te
va
si
H
ec
ho
9
10
11
12
13
14
15
lu
7
8
Descripcin
Linea de suscriptor libre con tarifacin
Linea de suscriptor ocupada
Linea de suscriptor con nmero cambiado
Congestionamiento
Linea de suscriptor libre sin tarifacin
Linea de suscriptor libre con tarifacin y colocar
retencin sobre control de suscriptor llamado
Nmero confuso
Linea de suscriptor fuera de servio para trfico
terminado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
ex
c
Seales
1
2
3
4
5
6
o
zz
ru
A-3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Seal delante
A-1
A-2
3
4
5
6
7
8
9
10
11
12
13
14
15
Descripcin
Enviar el prximo Algoritmo (n+1)
Necesidad de semi-supressor de eco en destino o
enviar el primero Algoritmo enviado
Preparar recepcin de seales de grupo B
Congestionamiento de red nacional
Enviar categoria y identidad de Suscriptor llamado
Reservado
Enviar Algoritmo N-2
Enviar Algoritmo N-3
Envia Algoritmo N-1
Inestable para uso nacional
Reservado
Reservado
Reservado
Reservado
Reservado
La
Seales
1
2
Seal p/atrs
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
Operadora
Ramal da
Operadora
Ramal
10 Idle(livre) 10
Tom de discagem
10 Idle(livre) 10
10 Idle(livre) 10
10 Idle(livre) 10
Silncio
zz
00 Seized/(Ocupao)
Seize Ack/(Confirma Ocupao) 11
ru
La
...
En
z
Campainha
Off-Hook (Fora do gancho)
Retorno da Campainha
Answer(Conversao) 01
m
en
te
Conversao
Clearback (Trmino) 11
Silncio
va
Sinalizao in-band
Sinalizao audvel
ex
c
lu
si
ho
H
ec
m
en
te
En
z
La
ru
zz
va
lu
ex
c
bash# ztcfg -v
si
Ejecutar ZTCFG.
ho
Zaptel Configuration
==================
H
ec
spandsp
#cd /usr/src
#wget http://www.soft-switch.org/downloads/spandsp/spandsp0.0.2pre25/spandsp-0.0.2pre25.tar.gz
#tar xzvf spandsp-0.0.2pre25.tar.gz
#cd spandsp-0.0.2
# ./configure --prefix=/usr
#make
#make install
En
z
La
ru
#cd /usr/src
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/libmfcr2-0.0.3.tar.gz
#tar xzvf libmfcr2-0.0.3.tar.gz
#cd libmfcr2-0.0.3.tar.gz
# ./configure --prefix=/usr
#make
#make install
zz
libmfcr2
libsupertone
ex
c
libunicall
lu
si
va
m
en
te
#cd /usr/src
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/libsupertone-0.0.2.tar.gz
#tar xzvf libsupertone-0.0.2.tar.gz
#cd libsupertone-0.0.2
# ./configure --prefix=/usr
#make
#make install
H
ec
ho
#cd /usr/src
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/libunicall-0.0.3.tar.gz
#tar xzvf libunicall-0.0.3.tar.gz
#cd libunicall-0.0.3.tar.gz
# ./configure --prefix=/usr
#make
#make install
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/asterisk-1.1.x/chan_unicall.c
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/asterisk-1.1.x/channels_Makefile.patch
#wget http://www.soft-switch.org/downloads/unicall/unicall0.0.3pre9/asterisk-1.1.x/unicall.conf.sample
Copie los archivos para la estrutura donde el asterisk ser compilado.
zz
ru
La
m
en
te
En
z
cd /usr/src/asterisk/
./configure
make
make install
si
va
Asi 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 identicos al
zapata.conf de forma que no ser difcil entenderlo. Vea abajo el archivo
editado.
H
ec
ho
ex
c
lu
;
; 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
;
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
zz
ru
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
;protocolclass=fx
;protocolvariant=ls,hk
;protocolend=cpe
;group = 4
;channel => 284
;
; 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.
;
En
z
La
ru
zz
;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:
;
; 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
m
en
te
H
ec
ho
ANI y DNIS
"ar"
"bh"
"bo"
"br"
"cl"
"cn"
"co-land"
"co-cell"
"cz"
"hn"
"in"
"id"
"kr"
"my"
"mx"
"pa"
"ph"
"sg"
"th"
si
lu
ex
c
Argentina
Bahrain
Bolivia
Brazil
Chile
China
Colombia landlines
Colombia cellular
Czech
Honduras
India
Indonesia
Korea
Malaysia
Mexico
Panama
Philipinnes
Singapore
Thailand
va
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.
ru
zz
En
z
La
m
en
te
si
va
ex
c
lu
asterisk vvvvvvvvvvvvvvv&
asterisk r
En la carga de Asterisk usted ver mensajes semejantes a los siguientes:
H
ec
ho
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]:
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
zz
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
ru
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
En
z
La
Language MusicOnHold
default
default
default
default
default
default
lu
si
va
m
en
te
ho
ex
c
H
ec
40/Group I
/Idle
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 1 on [2/
40/Group I
/DNIS
40/Group I
40/Group I
/DNIS
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 5 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
/DNIS
<- 1 on [2/
En
z
m
en
te
si
va
[2/
ru
[2/
La
/Idle
zz
<- 5 on [2/
lu
/Category
40/Group I
/Category
[2/
40/Group I
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
40/Group I
/ANI
40/Group I
40/Group I
/DNIS
[2/
ho
H
ec
40/Seize
ex
c
Apr 12 08:33:49
Apr 12 08:33:49
Apr 12 08:33:49
]
Apr 12 08:33:49
Apr 12 08:33:50
]
Apr 12 08:33:50
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:51
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
Apr 12 08:33:52
]
Apr 12 08:33:52
/Category
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:52
/Category
]
Apr 12 08:33:52
]
Apr 12 08:33:52
]
Apr 12 08:33:53
]
Apr 12 08:33:53
]
Apr 12 08:33:53
]
Apr 12 08:33:53
]
[2/
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
<- 5 on [2/
40/Group I
[2/
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
40/Group I
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 5 on [2/
40/Group I
/ANI
[2/
En
z
<- 5 on [2/
m
en
te
va
si
lu
ex
c
ho
/ANI
40/Group I
/ANI
/ANI
40/Group I
/ANI
40/Group I
ru
La
40/Group I
zz
H
ec
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
Apr
]
/ANI
40/Group I
/ANI
[2/
40/Group I
/ANI
<- 1 on [2/
40/Group I
/End of
[2/
40/Group I
/End of
40/Group I
/End of
[2/
40/Group I
/End of
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
[2/
40/Group I
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
[2/
40/Group I
/DNIS
<- 1 on [2/
40/Group I
/DNIS
[2/
40/Group I
/DNIS
40/Group I
/DNIS
40/Group I
/DNIS
m
en
te
va
si
lu
ex
c
ho
/DNIS
40/Group I
/DNIS
/DNIS
/DNIS
40/Group I
En
z
[2/
zz
40/Group I
La
[2/
ru
H
ec
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
ANI ]
Apr 12
ANI ]
Apr 12
ANI ]
Apr 12
ANI ]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
Apr 12
]
[2/
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
ru
zz
Channel=>1-15
Channel=>16
Channel=>17,18
En
z
La
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
disponble ser usado. Si fueran telefonos, al comunicarse para el grupo
todos recibiran la campanada de llamada al mismo tiempo. Con comas
usted puede especificar que un canal pertence a ms de un grupo.
m
en
te
group=1
group=3,5
va
lu
si
ex
c
ho
H
ec
switchtype = EuroISDN
pri_dialplan = unknown
ru
zz
La
prilocaldialplan = unknown
En
z
m
en
te
ex
c
H
ec
ho
lu
si
va
ru
zz
En
z
La
m
en
te
si
va
lu
ex
c
H
ec
ho
ru
zz
La
m
en
te
echocancel=yes
echocancelwhenbridged=yes
txgain=-10%
rxgain=10%
En
z
va
lu
si
ex
c
H
ec
ho
accountcode=financiero
amaflags=billing
zz
ru
La
m
en
te
En
z
lu
si
va
callprogress=no
busydetect=yes
ex
c
H
ec
ho
zz
La
ru
En
z
m
en
te
cidsignalling=bell
si
va
ex
c
cidstart=ring
lu
ho
H
ec
zz
ru
Unicall/[g]<identificador>[c][r<cadence>
En
z
La
m
en
te
Ejemplos:
H
ec
ho
ex
c
lu
si
va
Unicall/2
- Canal 2
Unicall/g1 - Primer canal disponible en el grupo 1
Captulo 5
Voz sobre IP
En este captulo vamos a aprender conceptos bsicos sobre voz sobre IP
aplicados a la realidad de Asterisk.
si
lu
5.2 Introduccin
va
m
en
te
En
z
La
ru
zz
5.1 Objetivos
ho
ex
c
H
ec
zz
ru
La
m
en
te
En
z
ex
c
lu
si
va
ho
H
ec
En
z
a
m
en
te
va
ex
c
lu
si
La
ru
zz
ho
H
ec
Aplicao
Asterisk
Apresentao
G.729/G711/GSM/Speex
Sesso
H323/SIP/MGCP/IAX
Transporte
UDP/RTP/SRTP
Frame-Relay/ATM/PPP/Ethernet
ru
Enlace
IP/CBWFQ/WRED/IP Precedence/Diffserv
zz
Rede
Ethernet/V.35/RS-232/xDSL
En
z
Figura 5-2 Distribucin de los protocolos de VoIP dentro del modelo OSI.
La
Fsica
m
en
te
si
va
ex
c
lu
ho
H
ec
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
ru
zz
La
5.5.4 H323
m
en
te
En
z
H
ec
ho
ex
c
lu
si
va
La
ru
zz
ho
ex
c
lu
si
va
m
en
te
En
z
H
ec
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.
La
ru
zz
m
en
te
En
z
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.
g.711
g.729A
(20 ms)
H
ec
ho
Codec
ex
c
lu
si
va
Ancho
Banda
(Kbps)
Costo
de 64
Gratuito
Resistencia a Ningn
prdida
de mecanismo
paquetes
iLBC
(30 ms)
13.33
US$10.00
Gratuito
por
cada
canal
3%
5%
GSM 06.10
RTE/LTP
13
Gratuito
3%
(Frame
Erasure)1
Complejidad
en Mips 2
~0.35
~13
~18
~5
m
en
te
En
z
La
ru
zz
si
va
ex
c
lu
H
ec
ho
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 varia 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
Red PPP (PPP+IP+UDP+RTP+G.711) = 82.4 Kbps
Red Frame-Relay (FR+IP+UDP+RTP+G.711) = 82.8 Kbps
zz
La
ru
En
z
5.10.1 Simplificaciones
m
en
te
lu
si
: 120 ramales
: 30 ramales
: 15 ramales
ex
c
Casa central
Filial 1
Filial 2
va
ho
H
ec
ru
zz
En
z
La
m
en
te
va
Ejemplo 1:
ex
c
lu
si
ho
H
ec
En
z
La
ru
zz
m
en
te
va
ho
ex
c
lu
si
H
ec
ru
zz
La
Filial 1: 11 llamadas
En
z
m
en
te
5.11 Sumario
H
ec
ho
ex
c
lu
si
va
En este captulo usted aprendi que Asterisk trata la voz como un canal,
asi 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 acepto, 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.
5.12 Cuestionario
1. Cite por lo menos cuatro beneficios del uso de voz sobre IP
zz
ru
Correcto
Incorrecto
En
z
La
Correcto
Incorrecto
m
en
te
va
Correcto
Incorrecto
ho
ex
c
Presentacin
Aplicacin
Fsica
Sesin
Enlace
H
ec
lu
si
5. Dentro del modelo OSI, los protocolos SIP, H.323 e IAX2 estn en la
capa de:
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:
zz
La
ru
Correcto
Incorrecto
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
Captulo 6
El Protocolo IAX
En este captulo vamos a aprender un poco sobre el protocolo IAX, sus
puntos fuertes y puntos flacos. Detalles como interfaces trunked y
integracin entre dos Asterisks tambin sern vistos.
ex
c
lu
6.2 Introduccin
si
va
m
en
te
En
z
La
ru
zz
ho
H
ec
intercomunicacin.
ru
zz
En
z
La
H
ec
ho
ex
c
lu
si
va
m
en
te
La
ru
zz
Figura 6.1: Mltiples llamadas sobre una nica asociacin de puerto UDP.
m
en
te
En
z
va
lu
si
H
ec
ho
ex
c
Los mensajes IAX son llamadas frames. Existen varios tipos bsicos de
frames. Cada un de los tipos es descrito en esta seccin. Un bit F es
usado para indicarse que el frame esta completo (Full) o no lo esta. El
valor 0 indica que esta completo. Un nmero de llamada de 15 bits es
usado para identificar el punto final de flujo de media. Un valor de 0
indica que el punto final no es conocido. Una llamada tiene dos nmeros
de llamada asociados con ella en cualquier de las dos direcciones. El
horario (timestamp) puede ser un campo de 32 o 16 bits. De cualquier
forma el campo ocupa 32 bits.
Nmero
Originador
Llamada
de R Nmero de
Llamada
Destino
Frame Type
C Subclasse
de
Timestamp
OSeqno
ISegno
La
ru
zz
En
z
Campo
F
Source Call Number
va
m
en
te
lu
ex
c
6.4.2 MiniFrame
si
ho
1 2 2 2 2 2 2 2 2 2 2 3 3
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
9 0 1 2 3 4 5 6 7 8 9 0 1
H
ec
1 1 1 1 1 1 1 1
Timestamp
Datos
Figura 6-4 Formato binario de un mini-frame
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
zz
La
ru
m
en
te
En
z
lu
si
va
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:
ho
ex
c
H
ec
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)
Sobrecarga estimada IP/IAX2 (1 llamada): 40572 bps (20.3 Kbps)
Nmero estimado de llamadas por megabit: 103
zz
ru
B
La
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
GSM
Una llamada: 70958.16 bps/102.13 pps (35.4 kbps)
Dos llamadas: 100455.23 bps/102.63 pps (50.2 Kbps)
En
z
LPC10
Una llamada: 43855.44 bps/89.94 pps (21.9 kbps).
Dos llamadas: 56059.18 bps/100.81 pps (28.0 kbps)
m
en
te
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
si
va
SPEEX:
Una llamada: 74817.18 bps/101.06 pps (37.14 kbps)
Dos llamadas:109692.68 bps/102.18 pps (54.8 kbps)
ho
ex
c
lu
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
H
ec
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.
ru
zz
La
En
z
IAX2/[<user>[:<secret>]@]<peer>[:<portno>][/<exten>[@<context>]
[/<options>]
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.
ho
ex
c
lu
si
va
m
en
te
<user>
H
ec
IAX2/iaxphone/s/a
En
z
La
ru
IAX2/john:[johnrsa]@somewhere.com
zz
en contexto
default.
llame al
"iaxphone"
pidiendo
respuesta
imediata
llame
somewhere.com,
usando john
como nombre de
usurio y una
llave RSA como
autentificacin.
El formato de un
nombre de canal
IAX usado para
una conexin de
entrada es
simplemente:
m
en
te
IAX2[[<username>@]<host>]/<callno>
El nombre do usuario
El host para conectarse
El nmero de llamada local
va
<username>
<host>
<callno>
si
ex
c
lu
ho
H
ec
Conectando
Conectando
Conectando
Conectando
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
zz
ru
En
z
m
en
te
va
si
ho
ex
c
lu
H
ec
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
La
; You may specify a default account for Call Detail Records in addition
; to specifying on a per-user basis
;
;accountcode=lss0101
;
; You may specify a global default language for users.
; Can be specified also on a per-user basis
; If omitted, will fallback to english
;
;language=en
;
; Specify bandwidth of low, medium, or high to control which codecs are used
; in general.
;
bandwidth=high
;
; You can also fine tune codecs here using "allow" and "disallow" clauses
; with specific codecs. Use "all" to represent all formats.
;
;allow=all
; same as bandwidth=high
;disallow=g723.1
; Hm... Proprietary, don't use it...
;disallow=lpc10
; Icky sound quality... Mr. Roboto.
;allow=gsm
; Always allow GSM, it's cool :)
disallow=all
allow=ulaw
change in delay is measured as twice the measured jitter plus this resync
threshold.
Resyncing can be disabled by setting this parameter to -1.
[This option presently applies only to the new jitterbuffer implementation]
zz
ru
La
En
z
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
va
m
en
te
jitterbuffer=no
forcejitterbuffer=no
;dropcount=2
;maxjitterbuffer=1000
;maxjitterinterps=10
;resyncthreshold=1000
;maxexcessbuffer=80
;minexcessbuffer=10
;jittershrinkrate=1
si
;trunkfreq=20
H
ec
ho
ex
c
lu
; Should we send timestamps for the individual sub-frames within trunk frames?
; There is a small bandwidth use for these (less than 1kbps/call), but they
; ensure that frame timestamps get sent end-to-end properly. If both ends of
; all your trunks go directly to TDM, _and_ your trunkfreq equals the frame
; length for your codecs, you can probably suppress these. The receiver must
; also support this feature, although they do not also need to have it enabled.
;
; trunktimestamps=yes
;
; Minimum and maximum amounts of time that IAX peers can request as
; a registration expiration interval (in seconds).
; minregexpire = 60
; maxregexpire = 60
;
; We can register with another IAX server to let him know where we are
; in case we have a dynamic IP address for example
;
; Register with tormenta using username marko and password secretpass
;
;register => marko:secretpass@tormenta.linux-support.net
;
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
zz
ru
B
;rtupdate=yes
En
z
La
;rtcachefriends=yes
'yes'.
lu
si
;rtignoreexpire=yes
m
en
te
;
;
;
;
;
va
;rtautoclear=yes
H
ec
ho
ex
c
;
[iaxfwd]
type=user
context=default
auth=rsa
inkeys=freeworlddialup
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
zz
ru
;
; Further user sections may be added, specifying a context and a secret used
; for connections with that given authentication name. Limited IP based
; access control is allowed by use of "allow" and "deny" keywords. Multiple
; rules are permitted. Multiple permitted contexts may be specified, in
; which case the first will be the default. You can also override caller*ID
; so that when you receive a call you set the Caller*ID to be what you want
; instead of trusting what the remote user provides
;
; There are three authentication methods that are supported: md5, plaintext,
; and rsa. The least secure is "plaintext", which sends passwords cleartext
; across the net. "md5" uses a challenge/response md5 sum arrangement, but
; still requires both ends have plain text access to the secret. "rsa" allows
; unidirectional secret knowledge through public/private keys. If "rsa"
; authentication is used, "inkeys" is a list of acceptable public keys on the
; local systiene that can be used to authenticate the remote peer, separated by
; the ":" character. "outkey" is a single, private key to use to authenticate
; to the other side. Public keys are named /var/lib/asterisk/keys/<name>.pub
; while private keys are named /var/lib/asterisk/keys/<name>.key. Private
; keys should always be 3DES encrypted.
;
;
; NOTE: All hostnames and IP addresses in this file are for example purposes
;
only; you should not expect any of them to actually be available for
;
your use.
;
;
;[markster]
;type=user
;context=default
;context=local
;auth=md5,plaintext,rsa
;secret=markpasswd
;setvar=foo=bar
;dbsecret=mysecrets/place
; Secrets can be stored in astdb, too
;notransfer=yes
; Disable IAX native transfer
;jitterbuffer=yes
; Override global setting an enable jitter buffer
;
; for this user
;callerid="Mark Spencer" <(256) 428-6275>
;deny=0.0.0.0/0.0.0.0
;accountcode=markster0101
;permit=209.16.236.73/255.255.255.0
;language=en
; Use english as default language
;
; Peers may also be specified, with a secret and
; a remote hostname.
;
;
; Trust callerid delivered over DUNDi/e164
;
;
;[dundi]
;type=user
;dbsecret=dundi/secret
;context=dundi-e164-local
zz
ru
B
Peers can remotely register as well, so that they can be mobile. Default
IP's can also optionally be given but are not required. Caller*ID can be
suggested to the other side as well if it is for example a phone instead of
another PBX.
La
;
;
;
;
;
;
[demo]
type=peer
username=asterisk
secret=supersecret
host=216.207.245.47
;sendani=no
;host=asterisk.linux-support.net
;port=5036
;mask=255.255.255.255
;qualify=yes
; Make sure this peer is alive
;qualifysmoothing = yes
; use an average of the last two PONG
; results to reduce falsly detected LAGGED hosts
; Default: Off
;qualifyfreqok = 60000
; how frequently to ping the peer when
; everything seems to be ok, in milliseconds
;qualifyfreqnotok = 10000
; how frequently to ping the peer when it's
; either LAGGED or UNAVAILABLE, in milliseconds
;jitterbuffer=no
; Turn off jitter buffer for this peer
m
en
te
En
z
;[dynamichost]
;host=dynamic
;secret=mysecret
;mailbox=1234
; Notify about mailbox 1234
;inkeys=key1:key2
;peercontext=local
; Default context to request for calls to peer
;defaultip=216.207.245.34
;callerid="Some Host" <(256) 428-6011>
;
ex
c
lu
si
va
;
;[biggateway]
;type=peer
;host=192.168.0.1
;context=*
;secret=myscret
;trunk=yes
; Use IAX2 trunking with this host
;timezone=America/New_York
; Set a timezone for the date/time IE
;
H
ec
ho
;
; Friends are a short cut for creating a user and
; a peer with the same values.
;
;[marko]
;type=friend
;host=dynamic
;regexten=1234
;secret=moofoo
;context=default
;permit=0.0.0.0/0.0.0.0
[2003]
type=friend
context=default
secret=contrasea
host=dynamic
zz
disallow=all
allow=ulaw
La
ru
m
en
te
En
z
[2003]
type=friend
context=default
secret=contrasea
host=dynamic
si
va
lu
ex
c
ho
H
ec
m
en
te
En
z
La
ru
zz
si
va
ho
ex
c
lu
[default]
exten=>2000,1,Dial(SIP/2000)
exten=>2001,1,Dial(SIP/2001)
exten=>2003,1,Dial(IAX2/2003)
H
ec
La
m
en
te
X
IA
un
Tr
En
z
X
IA
un
Tr
ru
zz
va
lu
si
ex
c
ho
H
ec
La
ru
zz
En
z
m
en
te
va
[general]
register=>621538:contrasea@iax2.fwdnet.net/2003
ex
c
lu
si
H
ec
ho
[621538]
; su nmero en el proveedor
type=peer
secret=contrasea
; su contrasea en el proveedor
host=iax2.fwdnet.net
En las lneas de arriba estamos registrando al proveedor permitiendo el
discado para l.
[iaxfwd]
type=user
context=default
auth=rsa
inkeys=freeworlddialup
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.
zz
ru
La
exten=>612,1,Dial(IAX2/621538:contrasea@iax2.fwdnet.net/612,20,r)
En
z
m
en
te
CLI>reload
CLI>iax2 show register
H
ec
ho
ex
c
lu
si
va
En
z
La
ru
zz
m
en
te
Para configurar un trunk IAX, vamos a usar el concepto de maestroesclavo para tornar ms fcil el aprendizaje.
lu
si
va
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.
H
ec
ho
ex
c
zz
En el archivo iax.conf
B
La
o
En
z
a
m
en
te
va
H
ec
ho
ex
c
lu
[2000]
type=friend
auth=plaintext
context-default
secret=contrasea
callerid=master
si
[maestro]
type=user
auth=plaintext
context-default
secret=contrasea
callerid=master
trunk=yes
notransfer=yes
ru
[maestro]
type=user
auth=plaintext
context-default
secret=contrasea
host=dynamic
callerid=master
trunk=yes
notransfer=yes
[2001]
. ; Definicin de los otros canales IAX (Ramas)
Paso 2. Configurar el archivo iax.conf del maestro
2.1 Recibir y hacer llamados del esclavo y el registro
[esclavo]
type=user
auth=plaintext
context-default
secret=contrasea
host=dynamic
callerid=esclavo
trunk=yes
notransfer=yes
La
ru
zz
[esclavo]
type=user
auth=plaintext
context-default
secret=contrasea
callerid=esclavo
trunk=yes
notransfer=yes
m
en
te
En
z
[2200]
type=friend
auth=plaintext
context-default
secret=contrasea
callerid=master
[2201]
. ; Definicin de los otros canales IAX (Ramas)
si
va
lu
register=>esclavo:contrasea@esclavo.net.br
ex
c
H
ec
ho
[default]
exten => _20XX,Dial(IAX2/master/${EXTEN}
exten=>_22XX,Dial(IAX2/${EXTEN})
Paso 4 Configurar el archivo extensions.conf en el servidor maestro.
[default]
exten => _22XX,Dial(IAX2/master/${EXTEN}
exten=>_20XX, Dial(IAX2/${EXTEN})
zz
ru
La
En
z
m
en
te
si
va
lu
H
ec
ho
ex
c
[guest]
type=user
context=guest
[iaxtel]
type=user
context=incoming
auth=rsa
inkeys=iaxtel
ru
zz
[iax-gateway]
type=friend
allow=192.168.0.1
context=incoming
host=192.168.0.1
En
z
La
[iax-friend]
type=user
secret=this_is_secret
auth=md5
context=incoming
m
en
te
si
va
iax-gateway
lu
iax-friend
ho
ex
c
H
ec
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.
salida
pueden
tomar
sus
informaciones
ru
zz
de
o
En
z
va
si
Entonces el comando:
m
en
te
[iax-gateway]
type=friend
allow=192.168.0.1
context=incoming
host=192.168.0.1
La
[iaxtel-outbound]
type=peer
username=iaxtel_username
secret=iaxtel_secret
host=iaxtel.com
lu
Dial(IAX2/iaxtel-outbound/1234)
ex
c
contrasea
H
ec
ho
El comando:
Dial(IAX2/user2:secret2@iaxtel-outbound/1234)
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.
Dial(IAX2/iaxtel.com/1234)
ru
zz
La
En
z
m
en
te
va
si
ex
c
lu
ho
bindport = <portnum>
H
ec
bindaddr = <ipaddr>
La
ru
zz
bandwidth =
[low|medium|high]
En
z
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
lu
si
va
low delay
high throughput
high reliability
ECT bit set
CE bit set
ho
Ejemplo:
=
=
=
=
=
ex
c
tos=0x10
tos=0x08
tos=0x04
tos=0x02
tos=0x01
m
en
te
H
ec
tos=0x05
usted est diciendo que quiere alta confiabilidad junto con el bit CE
habilitado.
conectarse de determinadas
direcciones IP y no de otras. As 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
ru
zz
La
deny=192.168.0.0/255.255.255.0
permit=0.0.0.0/0.0.0.0
En
z
va
m
en
te
callerid = <callerid>
H
ec
ho
ex
c
lu
si
auth = [md5|plaintext|rsa]
Secret = <secret>
inkeys = key1[:key2...]
Parmetros de billing:
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
(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).
m
en
te
En
z
La
ru
zz
accountcode = <code>
amaflags =
[default|omit|billing|
documentation]:
si
va
ex
c
lu
H
ec
ho
Jitter JitBuf
Status
UNKNOWN
8564
8576
8572
8571
8585
8589
8590
3232
9 iax2 peers
0
0
0
0
0
0
4569
0
UNKNOWN
UNKNOWN
UNKNOWN
UNKNOWN
UNKNOWN
UNKNOWN
OK (16 ms)
UNKNOWN
iax2 debug
ru
zz
La
En
z
m
en
te
va
ho
ex
c
lu
si
H
ec
zz
En
z
La
ru
m
en
te
va
H
ec
ho
ex
c
lu
si
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: 138
Timestamp: 00090ms SCall: 00004 DCall: 26977 [8.8.30.43:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX
Subclass: ACK
Timestamp: 00054ms SCall: 26977 DCall: 00004 [8.8.30.43:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 003 Type: IAX
Subclass: ACK
Timestamp: 00057ms SCall: 26977 DCall: 00004 [8.8.30.43:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: IAX
Subclass: ACK
Timestamp: 00090ms SCall: 26977 DCall: 00004 [8.8.30.43:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: VOICE Subclass: 138
Timestamp: 00210ms SCall: 26977 DCall: 00004 [8.8.30.43:4569]
Tx-Frame Retry[-01] -- OSeqno: 004 ISeqno: 003 Type: IAX
Subclass: ACK
Timestamp: 00210ms SCall: 00004 DCall: 26977 [8.8.30.43:4569]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX
Subclass: PING
Timestamp: 02083ms SCall: 26977 DCall: 00004 [8.8.30.43:4569]
Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 004 Type: IAX
Subclass: PONG
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
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: IAX
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
zz
6.11 Sumario
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
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
ru
zz
Correcta
Incorrecta
La
Frame Completo
Frame Incompleto
Mini-Frame
Trunked Frame
En
z
va
IP
UDP
IAX
RTP
cRTP
si
m
en
te
ex
c
lu
ho
Verdadero
Falso
H
ec
Correcta
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>]]
zz
ru
Correcta
Incorrecta
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
Captulo 7
El protocolo SIP
m
en
te
En
z
La
ru
zz
7.1 Objetivos
va
H
ec
ho
ex
c
lu
si
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
establecimiento
de
conexiones,
redirecionamiento de llamadas.
manutencin
trmino
m
en
te
En
z
La
ru
zz
8500@200.180.1.1
H
ec
ho
ex
c
lu
si
va
Location y
Registrar
Server
INVITE
sip:8500@voffice.com.br
From: sip:2400@sip.com
To: sip:8500@voffice.com.br
Call-ID 2400@sip.com
zz
ru
OK 200
From: sip:2400@sip.com
To: sip:8500@voffice.com.br
Call-ID 2400@sip.com
OK 200
From: sip:2400@sip.com
To: sip:8500@voffice.com.br Proxy
Call-ID 2400@sip.com
INVITE
sip:8500@200.180.4.168
From: sip:2400@sip.com
To: sip:8500@voffice.com.br
Call-ID 2400@sip.com
La
Flujo de Media
sip:8500@200.180.4.168
Location y
Registrar
Server
va
m
en
te
En
z
sip:2400@sip.com
lu
si
INVITE
sip:8500@voffice.com.br
From: sip:2400@sip.com
To: sip:8500@voffice.com.br
Call-ID 2400@sip.com
H
ec
ho
ex
c
Redirect
INVITE 8500@200.180.4.168
OK 200
ACK 8500@200.180.4.168
Flujo de Media
sip:2400@sip.com
sip:8500@200.180.4.168
En
z
La
ru
zz
(s
en S
al IP
iz
ac
i
n)
H
ec
ho
n)
P i
SI zac P
i
al RT dio)
e
u
s
(
(A
TP )
R dio
u
(A
ex
c
lu
si
va
m
en
te
ru
zz
La
180
En
z
m
en
te
va
si
lu
ex
c
ho
H
ec
(100intentando,
ru
zz
[xxx]
Type=xxx
Parametr1=valor
Parmetro2=valor
En
z
La
va
m
en
te
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.
lu
si
ex
c
H
ec
ho
bindaddr=0.0.0.0
bindport=5060
srvlookup=yes
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
ru
zz
tos=lowdelay
La
m
en
te
En
z
va
Para simplificar los valores ms usados para los paquetes de voz son:
si
ex
c
lu
tos=160
ho
H
ec
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:
La
ru
zz
En
z
m
en
te
Configurando um cliente SIP com 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.
Paso 1 Configurar una entrada en el archivo sip.conf para cada
telfono.
ex
c
lu
si
va
ho
H
ec
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
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
musicclass=default
ru
zz
La
En
z
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.
m
en
te
Ejemplo:
lu
si
va
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.
ho
type=friend
ex
c
H
ec
zz
canreinvite=yes
La
ru
En
z
dtmfmode=info
m
en
te
si
va
ex
c
lu
H
ec
ho
dtmfmode=rfc2833. Este rfc permite que los tons DTMF sean pasados
de parte a parte usando el protocolo RTP en la forma de eventos
nombrados. Varios 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
mailbox=1234@default
zz
ru
disallow=all
La
En
z
secret=contrasea
m
en
te
va
si
ex
c
lu
H
ec
ho
zz
language=br
ru
La
rtptimeout=60
por x segundos,
En
z
rtpholdtimeout=120
m
en
te
va
ex
c
lu
si
H
ec
ho
Asterisk no soporto llamadas SIP sobre TCP o TLS, apenas las soporto
sobre UDP.
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.
En
z
La
ru
zz
m
en
te
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.
Para configurar un proveedor SIP son necesarios tres pasos:
Paso 1 Dentro del archivo sip.conf, en la sesin [general] colocar una
lnea de registro en el proveedor SIP.
ex
c
lu
si
va
ho
H
ec
register=>621538:password@fwd.fwdnet.net/4100
register=>ip1140623535:password@gvt.com.br/8573
zz
ru
B
La
o
En
z
[gvt]
context=entrada
type=friend
callerid="ip1140623535" <1140623535>
dtmfmode=inband
canreinvite=no
username=ip1140623535
secret=[omitido por seguridad]
host=gvt.com.br
fromuser=ip1140623535
fromdomain=gvt.com.br
insecure=invite
m
en
te
va
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, disque 10 para el fwd).
ex
c
lu
si
exten=>_010.,1,SetCIDNum(621538})
exten=>_010.,2,SetCIDName(Flavio Goncalves)
exten=>_010.,3,Dial(SIP/${EXTEN:3}@gvt)
exten=>_010.,4,Playback(invalid)
exten=>_010.,5,Hangup
H
ec
ho
zz
ru
La
En
z
username=ip1140623535
m
en
te
va
host=gvt.com.br
lu
si
ex
c
fromuser=ip1140623535
fromdomain=gvt.com.br
H
ec
ho
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
encontrar el [peer] por la direccin IP no importando el puerto. Usted
puede tambin combinar los dos con insecure=invite;port.
m
en
te
En
z
La
ru
zz
va
lu
si
ex
c
ho
allowguest=yes/no
H
ec
zz
En
z
La
ru
m
en
te
va
SIP/[exten@]peer[:portno]
lu
si
peer: El nombre de el peer al cual se conecta. Esto puede ser uno de los
siguientes:
Un peer o friend definido en sip.conf.
ho
H
ec
ex
c
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)
ru
zz
En
z
La
m
en
te
Full Cone
Restricted Cone
Port Restricted Cone
Symmetric
va
H
ec
ho
ex
c
lu
si
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.
Por ejemplo:
Un computador atrs de NAT con IP 10.0.0.1 enviando e recibiendo en el
puerto 8000 es mapeado para la puerta externa IP en el NAT de
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.
ru
zz
La
En
z
m
en
te
Note que en este caso el Firewall tiene control sobre la sesin, esperando
paquetes pertencientes a una sesin, pero una vez abierto, aquel
computador puede iniciar cualquier sesin independiente del puerto
(200.210.1.1:3000, 200.210.1.1:3001...).
va
H
ec
ho
ex
c
lu
si
En
z
La
ru
zz
7.8.4 Simtrico
ex
c
lu
si
va
m
en
te
H
ec
ho
Full Cone
Restricted Cone
Port Restricted Cone
Simtrico
Puerto
IP
determinado
retorno
No
Si
Si
Si
Si
Si
Si
No
bien
para
Restringe la entrada
a
la
direccin
IP:Puerto de Destino
No
Solo la IP
Si
Si
ru
zz
m
en
te
En
z
La
ex
c
lu
si
va
ho
H
ec
El RTP para atravesar un NAT no tiene una solucin tan fcil como la
sealizacin SIP. En este caso de RTP, el cuerpo del mensaje SIP contiene
informaciones sobre los puntos finales, necesarias para permitir la
comunicacin de uno con el otro. Esta informacin es contenida en el
mensaje SDP. Los dispositivos rellenan esta informacin de acuerdo con
lo que ellos saben sobre s mismos.
Un cliente situado atrs de un NAT conoce apenas su puerto interno
IP:Puerto y es esto lo que l coloca en el cuerpo SDP del mensaje SIP.
zz
ru
La
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
En
z
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
va
m
en
te
ho
ex
c
lu
si
H
ec
ru
B
La
En
z
Soluciones Near-End-Nat-Traversal
UPnP
ALG
STUN
Configuracin Manual
ICE
Soluciones Far-End-Nat-Traversal
Comedia (Conexion Oriented Media)
TURN Traversal of UDP using Relay NAT
zz
m
en
te
7.11.1 UPnP
ex
c
lu
si
va
H
ec
ho
zz
ru
La
En
z
va
m
en
te
H
ec
ho
ex
c
lu
si
ru
zz
La
m
en
te
En
z
ex
c
lu
si
va
H
ec
ho
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.
zz
ru
En
z
La
; RTP Configuration
;
[general]
;
; RTP start and RTP end configure start and end addresses
;
rtpstart=10000
rtpend=20000
ho
ex
c
lu
si
va
m
en
te
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 asi (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.
H
ec
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
zz
La
ru
m
en
te
En
z
va
ex
c
lu
si
H
ec
ho
ru
zz
La
En
z
NAT
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).
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
H
ec
ho
ex
c
lu
si
va
m
en
te
QUALIFY
Qualify=yes
o Esta opcin usa el valor estndar de 2 segundos.
Qualify=no
o Deshabilita el chequeo del peer
Qualify=x ms
o Setea el tiempo en ms entre los chequeos
EXTERNIP
ru
zz
La
Ex: externip=200.180.4.168
En
z
Usted solo precisa usar esta opcin si su Asterisk est detrs de NAT
intentndose comunicar con dispositivos fuera de NAT.
LOCALNET
m
en
te
va
Ex: localnet=10.1.0.0/255.255.0.0
lu
si
H
ec
ho
ex
c
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
200.180.4.168
SIP (UDP 5060)
zz
Asterisk
En
z
La
ru
192.168.1.100
m
en
te
lu
si
va
[general]
nat=yes
externip = 200.84.7.1
localnet = 192.168.1.0/255.255.255.0
ho
ex
c
H
ec
ru
zz
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
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
7.14 Cuestionario
1. El SIP es un protocolo de tipo texto similar al ______ e _______.
IAX
HTTP
H323
SMTP
ru
zz
Voz
Correo Electrnico
Vdeo
Chat
Juegos
La
2. El SIP puede tener sesiones de tipo: (marque todos los que se aplican)
User Agent
Media gateway
PSTN Server
Proxy Server
Registrar Server
m
en
te
En
z
va
ex
c
lu
si
ho
Correcto
Incorrecto
H
ec
Correcta
Incorrecta
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
Correcta
Incorrecta
Captulo 8
Recursos bsicos del plano de discado
ru
zz
ho
ex
c
lu
si
va
m
en
te
En
z
La
H
ec
8.2 Introduccin
El plano 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 PABX.
La
ru
zz
En
z
lu
si
va
m
en
te
ex
c
H
ec
ho
zz
La
ru
m
en
te
En
z
ex
c
lu
si
va
Nota:
save
dialplan
sobreescribir
su
archivo
extensions.conf con un nuevo generado por el plano de
numeracin actual. Una copia de su archivo
extensions.conf velho no ser guardado. Todos los
comentrios seran perdidos. El archivo ejemplo de
Asterisk viene con esta configuracin peligrosa,
writeprotect=no, static=yes
ho
H
ec
${nombredevariable}. Las
mayusculas y minusculas.
variables
globales
no
son
sensbles
zz
RINGTIME=>3
ru
VMANNOUNCE=>mysounds/my-vm-annouce
La
En
z
COCINA=>Zap/3
SALA =>Zap/4
CUARTO =>Zap/5
m
en
te
ex
c
lu
si
va
ho
H
ec
La
ru
zz
Contexto "default"
Extension
Descripcin
8580
Flavio
8581
Daniel
8582
Juliano
8583
Verificar el correo
8585
Sala de conferencia
0
Telefonista
m
en
te
lu
si
va
Descricin
Bienvenido a mensajes e instrucciones
Ventas
Suporte
Contabilidad
Directorio
Colgar
ex
c
Extension
s
1
2
3
9
#
En
z
En este ejemplo, que fue dado el nombre de default, las primeras tres
extensiones seran asociadas a telefonos. La cuarta extension (8583) ser
asociada con la aplicacin de correo de voz. La quinta extension (8585)
ser asociada a una sala de conferencia. Finalmente el 0 ser asociado
con el operador.
H
ec
ho
Daytime/Nightime: Usted
dependiendo del horrio.
variar
el
comportamiento
En
z
puede
La
ru
zz
m
en
te
lu
si
va
ex
c
context=incoming
H
ec
ho
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 correo 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.
8.5 Extensiones
Una extension puede ser una de estos tres tipos: literal, estndar, o
especial
8.5.1 Literales
La
ru
zz
Una extension 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 extension vlida.
Algunos teclados de telfono multi - frequencial tienen teclas especiales
A, B,C,D y las extensiones pueden ser definidas con estas letras tambin.
De hecho, el nombre de la extension puede contener cualquier letra o
nmero como as algunos caracteres especiales. Note que muchos
telfonos VoIP consiguen discar nmeros de extension que pueden ser un
string arbitrario, tales como Escritorio en Asterisk. ,
si
lu
8.5.2 Estandares
va
m
en
te
En
z
H
ec
ho
ex
c
La
ru
zz
m
en
te
En
z
va
Ms ejemplos de estandares
H
ec
ho
ex
c
lu
si
_NXXXXXX
Corresponde a un nmero de telefono de 7 dgitos
_021XXXXXXXXX Corresponde a una salida a traves de Embratel
8.5.3 Especiales
Asterisk usa algunos nombres de extension para propsitos especiales.
ru
zz
Invalid
Start
Hangup
Timeout
AbsoluteTimeout
Operator
Called when user press * in voicemail
Used for fax detection
Used with BackgroundDetect
La
:
:
:
:
:
:
:
:
:
En
z
i
s
h
t
T
o
a
fax
Talk
m
en
te
Descripciones:
si
va
ex
c
lu
H
ec
ho
lu
si
va
m
en
te
En
z
La
ru
zz
ex
c
H
ec
ho
zz
Command:
ejecutarse.
Nombre
del
m
en
te
En
z
La
ru
(tambin
llamado
aplicacin)
si
va
ho
ex
c
lu
Ejemplo:
exten=>123,1,Answer
exten=>123,2,Playback(tt-weasels)
exten=>123,3,Voicemail(44)
exten=>123,4,Hangup
H
ec
zz
La
ru
exten=>123/100,1,Answer()
exten=>123/100,2,Playback(tt-weasels)
exten=>123/100,3,Voicemail(123)
exten=>123/100,4,Hangup()
m
en
te
exten=>1234/_256NXXXXXX,1,Answer()
En
z
va
Esto dir en el 1234 si el CallerID comienza con 256. Esto es muy til
para evitar que usuarios locales llamen para 0800 y usted tenga que
pagar por esto.
ex
c
lu
si
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 plano de discado para aquel contexto.
H
ec
ho
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
plano de discado (extensions.conf) usando la sintaxis.
${varname}
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 referieren a la misma
variable. Entretanto las variables definidas por Asterisk diferencian
maysculas y minsculas. ${EXTEN} funciona, pero ${exten} no.
Existen tres tipos de variables:
ru
zz
Variables globales
Variables de canal
Variables de ambiente
La
m
en
te
En
z
ex
c
lu
si
va
H
ec
ho
En
z
m
en
te
La
zz
ru
va
lu
si
Algunas aplicaciones usan entradas de datos extras y proporcionan la salida en la forma de variables de
canal.
ex
c
ChanIsAvail
retorna
${AVAILCHAN}:
El
primer
canal
disponible.
ho
H
ec
Cisco 7960.
Dial
Configura
la
retorno PRI.
zz
ru
lookup.
La
En
z
m
en
te
igual en adelante.
si
va
para
ex
c
lu
${MACRO_OFFSET}:
ho
H
ec
${ENV(nombredelavariable)}.
${ENV(ASTERISK_PROMPT)}: El prompt actual de la linea de
comando CLI .
8.7 Expresiones
Expresiones Asterisk
Operadores Matematicos
Adicion (+), Subtraccin (-), Multiplicacin(*), Division (/), Procentaje (%)
ru
zz
Operatores Logicos
AND logico (&), OR logico (|), negacin (!)
La
Operatores de Comparacin
(=, >, >=, <,<=,!=)
En
z
Operadores Condicionales
expression1 ? expression2 :: expression3
va
m
en
te
El uso de expresiones puede ser muy til para la configuracin del plano
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:
lu
si
$[expresion]
ex
c
ho
$[${SUMA}+100]
H
ec
8.7.1 Operadores
Los siguientes operadores pueden ser usados en la construcin de
expresiones.
Operadores matemticos
Suma (+)
Resta(-)
Multiplicacin(*)
Divisin(/)
Porcentaje(%)
Operadores lgicos
zz
ru
m
en
te
En
z
La
Ejemplo
lu
si
va
ho
ex
c
exten=1000,1,Set(TEST=10)
exten=1000,2,Set(SUMA=$[${TEST}*5])
exten=1000,3,NoOP(${SUMA})
H
ec
8.8 Funciones
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:
CLI>show functions
zz
ru
8.8.2 Substrings
La
${string:offset:length}
En
z
m
en
te
si
va
H
ec
ho
ex
c
lu
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=>_NXX.,1,SetVar(areacode=${EXTEN:0:3})
Toma los primeros tres dgitos de la variable ${EXTEN}
exten=>_516XXXXXXX,1,Dial(${EXTEN:3})
ru
zz
${foo}${bar}
555${Onumero}
${PrefixoLongaDistancia}555${ONumero}
La
m
en
te
En
z
va
lu
si
exten=_4XXX,1,Dial(SIP/${EXTEN})
ex
c
ho
;Discando un canal
Dial(tipo/identificador,timeout,opciones, URL)
H
ec
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
ho
H
ec
exten=_4XXX,1,Dial(SIP/${EXTEN},20,tTm)
En el ejemplo de arriba, el comando Dial discar el canal SIP
correspondiente a la extension. El origen y el destino podrn transferir
(tT) y si hubiera msica en espera en vez de tono de campanilla en el
discado.
ru
zz
La
En
z
exten=_0ZXXXXXXX,1,Dial(Zap/g1/${EXTEN:1},20,tT)
m
en
te
Usando:
exten=_0ZZXXZXXXXXXX,1,Dial(Zap/g1/${EXTEN:1},20,tT)
va
lu
si
ex
c
ho
exten=0,1,Dial(Zap/g1,20,tT)
H
ec
zz
La
ru
[entrada]
exten = s,1,Answer()
exten = s,2,Dial(SIP/4000,115,tT)
exten = s,3,Hangup()
En
z
m
en
te
Si usted posee una lnea digital (E1 con sealizacin RDSI (ISDN) o R2)
usted puede usar un sistema conocido como discado direct0 al ramal que
normalmente dispensa la telefonista. Con este sistema la operadora pasa
los ltimos cuatro nmeros del telfono para su central. Suponga que su
conjunto de DDR va desde 4830258550 hasta 4830258599.
La
configuracin quedara as:
lu
si
va
[entrada]
exten => _85[5-9]X,1,Answer()
exten => _85[5-9]X,2,Dial(SIP/${EXTEN},15,tT)
exten => _85[5-9]X,3,Hangup()
ex
c
H
ec
ho
ru
zz
En
z
La
va
8590/482518888,1,Congestion
8590,1,Dial(Zap/1,20)
8590,2,Voicemail(u8590)
8590,102,Voicemail(b8590)
si
=>
=>
=>
=>
lu
exten
exten
exten
exten
m
en
te
H
ec
ho
ex
c
zz
[mainmenu]
exten => 1,1,Dial(${Daniel}&${Flavio})
exten => 2,1,Dial(${Ana}&${Cristiano})
exten => 3,1,Dial(${Ana}&${Flavio})
La
ru
m
en
te
En
z
H
ec
ho
ex
c
lu
si
va
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 primero
lugar surge la prioridad n de next (prximo), ella permite que usted no
tenga de estar numerando su plano de discado. En segundo lugar usted
puede observar las etiquetas (labels). Ellas permiten marcar un punto en
el plano 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.
zz
ru
m
en
te
En
z
La
1.
2.
3.
4.
5.
6.
ex
c
lu
si
va
H
ec
ho
[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)
;comunicacin para la telefonista
exten=9,1,Dial(SIP/20,20,tT)
B
La
o
En
z
ru
zz
m
en
te
[ramales]
;discado para otros ramales
exten=_40[0-4]X,1,Dial(SIP/${EXTEN},20,tT)
exten=_40[0-4]X,2,Hangup()
;comunicacin externa
exten=_0.,1,Dial(Unicall/g1/${EXTEN:1},20,tT
lu
ex
c
8.12 Sumrio
si
va
H
ec
ho
8.13 Cuestionrio
zz
ru
Verdadero
Falso
La
m
en
te
En
z
si
va
ho
$[varname]
{varname}
$(varname)
${varname}
H
ec
ex
c
lu
Constantes
Variables pblicas
Variables de ambiente
Variables globales
Variables privadas
Variables de canal
zz
Correcta
Incorrecta
m
en
te
En
z
La
ru
H
ec
ho
ex
c
lu
si
va
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 necesrios para forzar el discado por la
operadora 55 desconsiderando la operadora escojida por el usurio.
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 9
Recursos avanzados del plano de discado
Ahora que usted ya aprendi lo bsico del plano de discado, vamos a
sofisticar nuestra configuracin con nuevos comandos y recursos.
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
9.1 Objetivos
En
z
La
ru
zz
m
en
te
Descripcin
Juan da Silva
Jose da Silva
Telefonista
Contexto local
Extensin
_9NXXXXXX
include=>
Descripcin
Llamadas locales
"internal"
ho
ex
c
lu
si
va
Contexto internal
Extensin
4101
4102
0
H
ec
La
ru
zz
En
z
m
en
te
Una extensin solo puede marcar para nmeros que estan dentro
del mismo contexto.
si
va
ex
c
lu
H
ec
ho
[local]
ignorepat => 0
exten => 0,1,Dial(Zap/g2/)
exten => 0,2,Congestion()
include => ramales
[DDD]
ignorepat =>0
exten => _00XXXXXXXXXX.,1,Dial(Zap/g2/${EXTEN:1})
exten => _00XXXXXXXXXX.,2,Congestion()
include => local
La
ru
zz
[DDI]
ignorepat => 0
exten => _00.,1,Dial(Zap/g2/${EXTEN:1})
exten => _00.,2,Congestion()
include => DDD
m
en
te
En
z
va
lu
si
ex
c
ho
H
ec
zz
La
ru
En
z
m
en
te
ex
c
lu
si
va
ho
H
ec
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
ejemplo, la extensin 123999, podra corresponder al segundo estandar
definido.
La
ru
zz
va
m
en
te
En
z
lu
si
H
ec
ho
ex
c
ru
zz
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
menu de ura) y permaneci sin comandos, esperando que el usurio
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 estubiese
definida en este contexto, asterisk colgar.
La
9.3.2 Ejemplo
m
en
te
En
z
Una empresa quiere que sus llamadas telefnicas sean respondidas con
un mensaje de voz dando la bienvenida a quien llamo e invitando a
escojer una extensin. La empresa tiene seis extensiones que son
1,2,21,22,31,32. Entonces el contexto creado para las llamadas entrantes
es:
ex
c
lu
si
va
[incoming]
exten=>s,1,Background(bienbenido a la empresa)
exten=>1,1,Dial(Zap/1)
exten=>2,1,Dial(Zap/2)
exten=>21,1,Dial(Zap/3)
exten=>22,1,Dial(Zap/4)
exten=>31,1,Dial(Zap/5)
exten=>32,1,Dial(Zap/6)
H
ec
ho
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 vrias opciones.
Nmero discado
1
2
21
22
3
31
32
Acino de Asterisk
Inmediatamente hece 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)
Inmediatamente hace el Dial(Zap/6)
Inmediatamente cuelga
zz
En
z
La
ru
m
en
te
Vamos a decir que para el contexto ejemplo, usted deseara que los
nmeros iniciados con 918 salgan por una linea analgica conectada en
Zap/1, y todos los otros nmeros salgan por la Zap/2. Entonces usted
escribe algo como sigue:
ex
c
lu
si
va
[ejemplo]
exten=>_918.,1,Dial(Zap/1/${EXTEN})
exten=>_.,1,Dial(Zap/2/${EXTEN})
exten=>h,1,Hangup
H
ec
ho
En
z
La
ru
zz
va
m
en
te
ex
c
lu
si
[ejemplo]
include=>ejemplo-sub
exten=>h,1,Hangup
exten=>_918.,1,Dial(Zap/1/${EXTEN})
ho
[ejemplo-sub]
exten=>_.,1,Dial(Zap/2/${EXTEN})
H
ec
En
z
La
ru
zz
m
en
te
H
ec
ho
ex
c
lu
si
va
El comando Background()
La
ru
zz
m
en
te
En
z
lu
si
va
H
ec
ho
ex
c
Ejemplo:
ru
zz
[incoming]
exten=>s,1,Answer
exten=>s,2,ResponseTimeout(5)
exten=>s,3,Background(meumenu)
exten=>s,4,Background(escolhaalgo)
exten=>t,1,Goto(s,2)
exten=>i,1,Playback(pbx-invalid)
exten=>i,2,Goto(s,2)
exten=>1,1,DoSomething
exten=>2,1,DoSomethingElse
exten=>3,1,Dial(...)
m
en
te
En
z
La
ex
c
lu
si
va
ho
H
ec
El comando goto()
Descripcin:
Salta para una prioridad en particular, extensin o contexto.
Sintaxis:
Goto([[context|]extension|]priority)
ru
separando
los
zz
Goto(priority)
La
Ejemplo:
En
z
Cdigos de retorno:
m
en
te
si
va
Ejemplo:
exten=>1,1,Goto(submenu,s,1)
exten=>600,4,Goto(s,6)
ex
c
lu
H
ec
ho
[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
[ventas]
exten => s,1,Background(bienvenido-ventas)
exten => 1,1,Goto(default,100,1)
exten => 2,1,Goto(default,101,1)
ru
zz
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
El comando gotoif()
En
z
m
en
te
Ejemplo:
lu
si
va
ex
c
exten=1,1,noop(ejecuta opcin 1)
exten=2,1,noop(ejecuta opcin 2)
H
ec
ho
En
z
ru
La
zz
m
en
te
H
ec
ho
ex
c
si
lu
Definiendo
va
9.6 Macros
Llamando
Macros
ru
zz
La
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.
va
m
en
te
En
z
lu
si
H
ec
ho
ex
c
Ejemplo:
[macro-stdexten]
;Macro extensin estandar
;
;${ARG1}-Telefono 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 incio
exten=>s,102,Voicemail(b${MACRO_EXTEN}) ;Si esta ocupado, envia un
voicemail con o sin anuncio de busy
exten=>s,103,Goto(default,s,1)
;Si fuese presionado #,
retorna al incio
Para llamar esta macro usted usaria:
m
en
te
En
z
La
ru
zz
ex
c
lu
si
va
ho
Los datos son agrupados en famlias e identificados con una llave que es
nica dentro de la famlia.
H
ec
9.7.1 Famlias
cidname: usado por el comando LookupCIDName
blacklist: usado por el comando LookupBlacklist
9.72 Funciones
Existen funciones de acesso al banco de datos de Asterisk que usted
puede usar dentro del plano de discado en el archivo extensions.conf:
zz
Abreviaciones usadas:
ru
En
z
La
[macro-stdexten]
;${ARG1}-Extensin
;${ARG2}-Dispositivo a tocar
m
en
te
lu
si
va
ex
c
exten=s,102,Goto(s,3)
H
ec
ho
exten=s,104,Goto(s,4)
;Si en el passo 3 da ocupado
;Va para sigame si esta ocupado
Exten=s,105,Congestion()
;Como no hay nmero programado cae en
;ocupado.
Exten=s,106,Congestion()
;Si la extensin transferida estubiese
;ocupada
;Cae en ocupado.
Notas:
ru
zz
[apps]
;Sigame
exten=>_*21*X.,1,Set(DB(CFIM/${CALLERIDNUM})=${EXTEN:4})
exten=>_*21*X.,2,Hangup
exten=>#21#,1,DBdel(CFIM/${CALLERIDNUM})
exten=>#21#,2,Hangup
En
z
La
m
en
te
[pbx]
exten=7000,1,Macro(stdexten,7000,SIP/7000)
exten=7001,1,Macro(stdexten,7001,IAX/7001)
si
va
ho
ex
c
lu
H
ec
Ejemplo:
[entrada]
exten =>
exten =>
exten =>
exten =>
s,1,LookupBlacklist(j)
s,2,Dial(SIP/4000,20,tT)
s,3,Hangup()
s,102,Goto(bloqueado,s,1)
[bloqueado]
ru
zz
[apps]
exten=>_*31*X.,1,Set(DB(blacklist/${EXTEN}=1})
exten=>_*31*X.,2,Hangup()
exten=>_#31#,1,DBdel(blacklist/${EXTEN})
exten=>_#31#,2,Hangup()
En
z
La
m
en
te
H
ec
ho
ex
c
lu
si
va
La
ru
zz
m
en
te
En
z
si
va
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.
ex
c
lu
H
ec
ho
ru
zz
<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"
exten=>s,1,GotoIfTime(8:00-18:00|mon-fri|*|*?expediente,s,1)
En
z
La
m
en
te
va
DISA(passcode[|context])
DISA(archivo de contraseas)
lu
si
Ejemplo de uso:
ex
c
H
ec
ho
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 comentrios. Mas haya de eso argumentos pueden
tener un callerid adicionado a el para que un nuevo callerid pueda ser
usado en esta llamada. Ejemplo:
ru
zz
En
z
La
exten=>_214X,1,set(GROUP()=Rio)
exten=>_214X,n,Gotoif($[${GROUP_COUNT()} > 1]?revento)
exten=>_214X,n,Dial(SIP/${EXTEN})
exten=>_214X,n,hangup
exten=>_214X,n(revento),playback(comunicacionesexedidas)
exten=>_214X,n,hangup
H
ec
ho
ex
c
lu
si
va
m
en
te
4 troncos analgicos.
3 clases de ramales.
o restricto (Interno, comunicaciones locales y 0800).
o ddd (comunicaciones nacionales).
zz
ru
En
z
La
m
en
te
lu
ho
ex
c
signalling=fxs_ks
language=en
context=entrada
group=1
channel => 1-4
si
va
Vamos asumir en este caso que los drivers del hardware de la placa de
telefonia (zaptel.conf) ya estan configuradas y cargadas. En el archivo
zapata.conf usted configura los canales zap correspondientes a los
troncos de la central.
H
ec
[general]
disallow=all
allow=gsm
allow=ulaw
bindport = 5060
bindaddr = 0.0.0.0
context = ramales
ru
zz
[2000]
type=friend
username=20
secret=contrasea
host=dynamic
mailbox=20
context=restricto
canreinvite=yes
o
En
z
a
m
en
te
va
si
ho
ex
c
lu
[2060]
type=friend
username=20
secret=contrasea
host=dynamic
mailbox=20
context=puededdd
canreinvite=yes
dtmfmode=rfc2833
La
[2040]
type=friend
username=20
secret=contrasea
host=dynamic
mailbox=20
context=puededdi
canreinvite=yes
dtmfmode=rfc2833
H
ec
exten=>_20XX,1,Dial(SIP/${EXTEN},20,r)
[local]
exten=>_0XXXXXXXX,1,Dial(ZAP/g1/${EXTEN:1},20,Tt) ;
comunicaciones locales
Definiendo la salida para DDD
zz
ru
[ddd]
; Discado para DDD al nmero de 7 dgitos (BrT)
exten=>_00XXXXXXXXX,1,Dial(Zap/g1/${EXTEN:1},20,Tt)
En
z
[ddi]
; Discado para DDI
exten=>_000X.,1,Dial(Zap/g1/${EXTEN:1},20,Tt)
La
m
en
te
va
si
lu
[podeddd]
include=>ramales
include=>local
include=>ddd
[restrito]
include=>ramales
include=>local
H
ec
ho
ex
c
[podeddi]
include=>ramales
include=>local
include=>ddd
include=>ddi
zz
La
o
En
z
m
en
te
[despuesdahora]
exten=>s,1,Background(despuesdahora)
exten=>s,2,hangup()
exten=>i,1,hangup()
exten=>t,1,hangup()
include=>ramales
ru
[expediente]
exten=>s,1,Goto(menuprincipal,s,1)
si
va
ho
ex
c
lu
[globals]
TELEFONISTA=SIP/2060
VENTAS=SIP/2035
SOPORTE=SIP/2004
ENTRENAMIENTO=SIP/2036
H
ec
[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)
[soporte]
exten=>s,1,Dial(${SOPORTE},20,Tt)
[entrenamiento]
exten=>s,1,Dial(${ENTRENAMIENTO},20,Tt)
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
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|*|*
La
8590/482518888,1,Congestion
8590,1,Dial(Zap/1,20)
8590,2,Voicemail(u8590)
8590,102,Voicemail(b8590)
m
en
te
=>
=>
=>
=>
va
exten
exten
exten
exten
3. Los comandos:
En
z
ru
zz
Ejecuta las extensiones de lunes a viernes desde las 08:00 hasta las
18:00.
Ejecutan las opciones todos los dias en todos los meses.
El comando es invlido.
si
ho
ex
c
lu
H
ec
Oracle
MySQL
Berkley DB
PostgreSQL
zz
Falsa
Verdadera
ru
La
Falsa
Verdadera
Goto (context,extension)
Goto(context,extension,priority)
Goto(extension,priority)
Goto(priority)
m
en
te
En
z
va
11. Switches son usados para direccionar para otro PABX. La afirmacin
de arriba es:
lu
si
Correcta
Incorrecta
${ARG1}
${ENV1}
${V1}
${X}
H
ec
ho
ex
c
12. Un macro puede ser usado para automatizar una srie de operaciones
en secuencia para una extensin especfica. El primer argumento pasado
por la llamada del macro es el:
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 10
Configurando recursos avanzados
En este captulo veremos algunos recursos avanzados del Asterisk PBX.
10.1 Objetivos
ru
zz
Objectivos
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
Estacionamiento de llamadas
Capturas de llamada
Transferencia de llamada
Conferencia de llamadas
Grabacin de llamadas
Meetme
Musica en espera
La
En
z
La
ru
zz
m
en
te
ex
c
lu
si
va
H
ec
ho
Estacionamiento de
instalacin estandar.
Captura de llamadas:
estandar (*8).
llamadas:
Soportado
Soportado
en
la
en
la
instalacin
Seguimiento incondicional: *
Transferencia asistida: *
No molestar: *
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
ho
Indicacin de llamada
soportado en el telefono.
en
espera:
*,
debe
ser
la
instalacin
H
ec
Captura de llamadas:
estandar.
Soportada
en
Transferencia a ciegas: *
Seguimiento incondicional: *
Transferncia asistida: *
Rediscado manual: *
No molestar: *
Indicacin de llamada
soportado en el telefono.
Encuentreme: *
m
en
te
va
si
lu
ex
c
ho
H
ec
En
z
La
ru
zz
en
espera:
*,
debe
ser
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
1. Usted transfiere la
llamada para la extension
700.
2. La llamada parking
feature estaciona su
llamada en el primer slot
disponible en el
estacionamiento de
llamadas y le anuncia cual
es el numero de slot.
3. usted llama al numero
anunciado para recobrar la
llamada
La
ru
700
zz
Parking lot
Estacionamento de llamadas
En
z
10.3.1 Descripcin:
m
en
te
Es usado para estacionar una llamada. Esto nos auxilia cuando usted est
atendiendo en un telefono 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.
ho
ex
c
lu
si
va
H
ec
ru
zz
La
En
z
Captura de llamadas
m
en
te
Sales
callgroup=2
pickupgroup=2
lu
si
va
callgroup=1
pickupgroup=1
P&D
H
ec
ho
ex
c
Miembros
capuran
llamadas solo
dentro de su
grupo.
callgroup=3
pickupgroup=1,2,3
(Operador)
El operador
captura
llamadas desde
lo grupos 1,2 y 3
10.4.1 Descripcin
La captura permite que usted empuje un llamado de un colega en el
mismo grupo de llamadas. Esto evita que usted tenga que levantar para
atender un telefono de su vecino que no para de sonar.
ru
zz
[4x00]
callgroup=1
pickupgroup=1,2
La
ho
ex
c
lu
si
va
m
en
te
En
z
H
ec
10.5.1 Descripcin
La transferencia de llamadas puede ser hecha de dos formas. A
transferencia a ciegas (blind transfer) y la transferencia asistida.
En la transferencia a ciegas usted usa los dgitos que estubiesen definidos
en el parametro blindxfer en el archivo features.conf. Por ejemplo, si el
zz
ru
2.
En
z
La
1.
H
ec
ho
ex
c
lu
si
va
m
en
te
10.6.1 Formato:
MeetMe(Confno[|options][|password])
10.6.2 Descripcin:
ru
zz
La
En
z
m
en
te
va
ex
c
lu
si
'v'modo vdeo.
ho
H
ec
el
script
AGI
especificado
en
${MEETME_AGI_BACKGROUND}
el
estandar
es
confbackground.agi (para canales zap solamente, no funciona con
canales que no sean zap en la misma conferencia).
'a'Configura el modo de administracin.
ru
zz
La
En
z
m
en
te
va
si
ex
c
lu
H
ec
ho
favor,
presione
1
para trabar/destrabar
para
esta
10.5.6 Ejemplos
Ejemplo 1: Sala de conferencia simple
1. Coloque en el archivo extensions.conf la sala de conferencia 101.
zz
exten=>500,1,MeetMe(101|123456)
ru
La
m
en
te
En
z
si
va
H
ec
ho
ex
c
lu
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
usados. Si usted no tiene un dispositivo Zaptel use el driver ztdummy
para temporizacin.
;
[rooms]
;Formato: conf=>confno,pincode
;
conf=>9000
conf=>9001,123456
Actualmente no es necesario usar ni el comando reload, ni el comando
restart para que Asterisk note los cambios en el archivo meetme.conf.
zz
MeetMeCount(confno[|var])
La
ru
MeetMeAdmin(confno,command,user):
En
z
'k'
'L'
Traba la conferencia.
'l'
Destraba la conferencia.
'M'
Enmudece la conferencia.
'm'
Desenmudece la conferencia
ex
c
lu
si
va
m
en
te
'K'
H
ec
ho
La
ru
zz
En
z
m
en
te
Ejemplo:
va
exten=>_4XXX,1,Set(DYNAMIC_FEATURES=automon)
exten=>_4XXX,2,Dial(SIP/${EXTEN},20,jtTwW);wW habilitan la
grabacin.
ex
c
lu
si
H
ec
ho
La
ru
zz
En
z
m
en
te
si
lu
[channels]
musiconhold=default
va
ho
ex
c
H
ec
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 tubiese 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
porque
formato
ha
alterado
.raw
en
el
el
archivo
directrio
ru
zz
La
Exten=>100,1,SetMusicOnHold(default)
Exten=>100,2,Dial(Zap/2)
Ejemplos:
H
ec
ho
ex
c
lu
si
va
m
en
te
[local]
exten => 6601,1,WaitMusicOnHold(30)
En
z
10.9 Cuestionrio
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 telefono 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
ru
zz
2. Para que el Call Pickup funcione es preciso que las extensiones esten
en el mismo _____. En el caso de extensiones Zap esto es configurado
en _____.
La
#2
#1
#1
#2
#1,
#2,
#3,
#4,
m
en
te
En
z
si
va
ho
MeetMe()
MeetMeConsole()
MeetMeAdministrator()
MeetmeAdmin()
H
ec
ex
c
lu
Captulo 11
DAC Distribucin automtica de llamadas.
m
en
te
En
z
La
ru
zz
11.1 Objetivos
11.2 Introduccin
lu
Call Queue
ex
c
1-800
si
va
ho
ACD
H
ec
Queueing strategies
Ringall,RoundRobin,Rrmemory,
LeastRecent,Priority
Agente
1
Agente
2
Agente
N
]
Figura 11.1 ACD
zz
ru
La
m
en
te
En
z
ex
c
lu
si
va
ho
11.3 Miembros
H
ec
11.4 Estrategias
Las llamadas son distribudas entre los miembros de una fila de acuerdo
con una entre vrias estratgias.
llamadas.
ru
zz
La
En
z
ltima llamada.
va
m
en
te
lu
si
ex
c
H
ec
ho
Los nuevos recursos permitem que las filas actuen como filas de
prioridad, mas alla 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 cualquer lugar de esta de acuerdo con la prioridad de la
llamada.
Ahora usted puede tener una nica fila atendiendo las llamadas
ordenadas desde las ms importantes para 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).
Ejemplo:
Clientes importantes
exten=>111,1,Playback(welcome)
exten=>111,2,SetVar(QUEUE_PRIO=10)
exten=>111,3,Queue(support)
zz
ru
11.7 Configuracin
ex
c
lu
si
va
m
en
te
En
z
La
H
ec
ho
En
z
La
ru
zz
queues.conf
m
en
te
H
ec
ho
ex
c
lu
si
va
agents.conf
zz
ru
m
en
te
En
z
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)
La
extensions.conf
; Fila telemarketing.
si
va
ex
c
lu
H
ec
ho
;Default, desconectado
;createlink=yes
;Texto a ser adicionado a la grabacin, permite formar un link url.
;urlprefix=http://host.domain/calls/
;En diretrio opcional para salvar las conversaciones
;El estandar es: /var/spool/asterisk/monitor
savecallsin=/var/calls
ru
zz
La
Soporte de Aplicaciones
En
z
m
en
te
CLI commands
va
si
ex
c
la fila.
lu
Dinamicamente
remueve
ho
miembro de la fila.
H
ec
un
La
ru
zz
En
z
m
en
te
La aplicacin agentlogin()
Login en llamada de agentes
lu
si
va
[Description]
AgentLogin([AgentNo][|options]):
ex
c
Opciones:
H
ec
ho
Agentlogin([agentnumber])
Nota: Si el nmero agente no es pasado, un mensaje de login invlido
ser tocado y pedir el nmero de agente y contrasea.
m
en
te
En
z
La
ru
zz
si
va
la fila el telefone del agente ser llamado, en ves de estar todo el tiempo
abierto como el AgentLogin().
lu
H
ec
ho
ex
c
Colgar el telefono,
telemarketing.
agente
ser
desconectado
de
la
fila
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
el
11.9 Cuestionrio
1. Site cuatro estratgias de ruteamiento del sistema de fila de atencin
de llamadas.
los
agentes
usando
La
En
z
ru
zz
m
en
te
Crear la fila
Crear los agentes
Configurar los agentes
Configurar la grabacin
Colocar en le plano de discado
va
entre
los
aplicativos
AgentLogin()
ho
ex
c
lu
si
5. Cual es la diferencia
AgentCallBackLogin().
H
ec
Agente
Menu
Contexto
Aplicativo
el Plano de discado
la interface de linea de comando
en el archivo queues.conf
en el archivos agents.conf
ru
zz
Verdadero
Falso
La
En
z
Verdadero
Falso
m
en
te
10. Una llamada puede ser priorizada dependiendo del CallerID dentro de
una misma fila. La afirmacin es:
H
ec
ho
ex
c
lu
si
va
Correcta
Incorrecta
Captulo 12
El Correo de voz
12.1 Objetivos
m
en
te
En
z
La
ru
zz
Objectivos
va
12.2 Introduccin
H
ec
ho
ex
c
lu
si
En
z
La
ru
zz
Para configurar el correo de voz usted debe seguir los siguintes pasos:
m
en
te
los usurios y
va
H
ec
ho
ex
c
lu
si
3. Configure una extensin para que el usurio pueda oir su correo de voz
y administrarlo.
En
z
La
ru
zz
m
en
te
[general]
cidinternalcontexts = house-admin, house-toll, house-local, houseintercom-only
va
[default]
1234=>1234,SomeUser,email@address.com,pager@address.com,saycid=
yes|dialout=fromvm|callback=fromvm|review=yes|operator=yes
lu
si
ex
c
ho
H
ec
[globals]
PHONE1=Zap/1
PHONE2=SIP/6002
[macro-oneline]
exten=>s,1,Dial(${ARG1},20,t)
exten=>s,2,Voicemail(u${MACRO_EXTEN})
exten=>s,3,Hangup
exten=>s,102,Voicemail(b${MACRO_EXTEN})
exten=>s,103,Hangup
[local]
exten=>6601,1,Macro(oneline,${PHONE1})
exten=>6602,1,Macro(oneline,${PHONE2})
m
en
te
En
z
La
ru
zz
exten=>9000,1,VoiceMailMain()
Menu
ho
ex
c
lu
si
va
H
ec
o
o
o
zz
ru
1 Acepta
La
2 Revisin
3 Regrabar
En
z
0 Va hacia la telefonista
m
en
te
Aplicacin Voicemail
Autoriza un mensaje Voicemail
va
[Description]
si
VoiceMail(mailbox[@context][&mailbox[@context]][...][|options]):
H
ec
ho
ex
c
lu
Opciones:
b - Toca el mensaje 'ocupado' para el calling party.
g(#) - Use the specified amount of gain cuando
graba el mensaje voicemail. Las unides son
numeros enteros para los decibeles (dB).
s Salta la repeticinde instrucciones para
abandonar un mensaje para el calling party.
u - Toca el mensaje de 'no disponible.
j Salta para la prioridad n+101 si la casilla de
correo no funciona o algun otro error ocurre.
ru
zz
La
va
m
en
te
En
z
lu
si
ex
c
ho
/var/spool/asterisk/voicemail/context/boxnumber/INBOX/
H
ec
ru
zz
En
z
exten=>somewhere,5,Playback(Goodbye)
exten=>somewhere,6,Hangup
La
Certifiquese de hacer algo con el originador despues que este vuelva del
voicemail(), asi por lo menos que se deja algo asi:
m
en
te
si
va
attach
ex
c
lu
H
ec
ho
delete
mailcmd
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 linea de comando deseada. El estandar es /usr/sbin/sendmail t
maxsilence
La
ru
zz
En
z
envelope
m
en
te
externnotify
va
si
silencethreshold
ho
ex
c
lu
H
ec
serveremail
maxmessage
Define el tiempo mximo en segundos de un mensaje de entrada. Use
cuando el espacio en disco fuese limitado. El estandar es 0 que significa
sin limites.
minmessage
Esta configuracin puede ser usada para eliminar mensajes que son ms
cortos que un determinado nmero de segundos. El estandar es 0 que
significa sin tiempo mnimo definido.
ru
zz
format
La
En
z
va
m
en
te
si
maxgreet
ho
skipms
ex
c
lu
H
ec
maxlogins
Define el nmero de tentativas de login antes de que Asterisk desconecte
el usuario. El valor debe ser entero y positivo. El estandar es 3.
cidinternalcontexts
Define los contextos internos usados para determinar el tipo de anuncio
de voz a ser tocado cuando sea leido la identificacin de la hamada o
cuando el recurso avanzado saycid estubiese habilitado. Esto altera el
mensaje de llamada de 12345678 por llamada de la extensin .......
review
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.
zz
operator
En
z
La
ru
m
en
te
dialout
va
Especifica el contexto a ser usado para que una llamada de salida pueda
ser usada. Recibe un string con el contexto.
lu
si
callback
ho
dbuser
ex
c
H
ec
dbpass
Especifica la contrasea en la base datos MySQL a ser usada para la
aplicacin de correo de voz
dbhost
dbname
Especifica el nombre de la base de datos MySQL. El valor es un string.
dboption
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.
zz
pbxskip
La
ru
En
z
fromstring
m
en
te
emailsubject
va
si
emailbody
ex
c
lu
ho
exitcontext
H
ec
nextaftercmd
Si es configurado en yes despues de borrar el mensaje de voicemail, el
sistema automaticamente tocar el prximo mensaje.
VM_DUR
VM_MSGNUM
VM_MAILBOX
VM_CIDNUM
VM_CIDNAME
VM_CALLERID
VM_DATE
zz
ru
VM_NAME
La
En
z
m
en
te
[context_section]
extension_number =>
voicemail_password,user_name,user_email_address,user_pager_email_a
ddress,user_option(s)
si
va
lu
ho
ex
c
H
ec
zz
ru
La
Note que el make install no instala esta interface a menos que usted corra
make webvmail separadamente. Este script requiere que el Perl y Perlsuidperl esten instalados en el Web Server.
En
z
m
en
te
chmod +x vmail.cgi
12.6 Sumrio
H
ec
ho
ex
c
lu
si
va
12.7 Cuestionario
1. Los archivos emparentados con en la configuracin del Correo de voz
son:
sip.conf
iax.conf
asterisk.conf
voicemail.conf
vmail.conf
extensions.conf
zz
ru
La
Ocupado, Libre
Ocupado, No atiende
No atiende, Ocupado
Libre, Preso
En
z
m
en
te
si
lu
0
*
#
9999
ex
c
va
H
ec
ho
Correcta
Incorrecta
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 13
Billing en Asterisk
13.1 Introduccin
zz
En
z
La
ru
13.2 Objetivos:
m
en
te
lu
si
va
ex
c
H
ec
ho
CDR
Accountcode
Src
Dst
Dcontext
Clid
Channel
Dstchannel
Lastapp
Lastdata
Start
Answer
Descripcin
Nmero de la cuenta usado
Identificacin da 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
Tipo
String
String
String
String
String
String
String
String
String
Date/Time
Date/Time
Tam.
20
80
80
80
80
80
80
80
80
End
Duration
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
Billsec
Disposition
Amaflags
Integer
String
20
String
20
String
255
User field
Date/Time
Integer
zz
Sigue un ejemplo en dos lneas del archivos csv importado para una tabla.
CallerID No.
Extension
Contexto
CallerID texto
Canal Origen
4830258576
*72*1234*8584
admin
SIP/8576-5f30
Canal Destino
1234
4830258576
*72*1234*8584
admin
SIP/8576-96f5
SIP/8584-3312
1234
4830258576
*72*1234*8584
admin
SIP/8576-74ac
SIP/8584-297b
La
ru
AccountCode
1234
4830258576
2012348584
admin
4830258584
2012348576
default
1234
1234
SIP/8584-9153
SIP/8576-2c5d
SIP/8584-9870
SIP/8584-03fd
SIP/8576-645c
Parmetros
Incio
Atendimento
Fim
Dur.
Bil.
Disposicin
Amaflags
SIP/8584|30|tT
27/3/2006 16:05
27/3/2006 16:05
27/3/2006 16:05
ANSWERED
DOCUMENTATION
Dial
SIP/8584|30|tT
27/3/2006 16:16
27/3/2006 16:16
27/3/2006 16:16
ANSWERED
BILLING
Dial
SIP/8584|30|tT
27/3/2006 16:22
27/3/2006 16:22
27/3/2006 16:22
ANSWERED
BILLING
Dial
SIP/8584|30|tT
27/3/2006 16:37
27/3/2006 16:37
27/3/2006 16:37
ANSWERED
BILLING
Dial
SIP/8576|30|tT
27/3/2006 16:37
27/3/2006 16:37
27/3/2006 16:37
ANSWERED
BILLING
m
en
te
En
z
Aplicacin
Dial
lu
si
va
ho
H
ec
ex
c
Asi 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)
[8576]
amaflags=default
accountcode=Soporte
type=friend
username=8576
m
en
te
En
z
va
Asterisk
Asterisk
Asterisk
Asterisk
Asterisk
Asterisk
Asterisk
Asterisk
La
ru
zz
ex
c
lu
si
H
ec
ho
La
ru
zz
si
va
m
en
te
[global]
hostname=localhost
dbname=asteriskcdrdb
password=secreto
user=asteriskuser
port=3306
;sock=/var/run/mysqld/mysqld.sock
;userfield=1
En
z
para
incluir
la
ex
c
lu
H
ec
ho
carga
del
mdulo
zz
En
z
La
ru
m
en
te
13.6 Aplicaciones
lu
13.6.1 SetAccount
si
va
ho
ex
c
H
ec
Formato:
SetAccount(account)
El cdigo de la cuenta puede ser verificado a travs de la variable
${ACCOUNTCODE}
13.6.2 SetAMAFlags
SetAmaFlags(flags)
13.6.3 NoCDR()
Hace que ningn CDR sea grabado para una cierta llamada.
13.6.4 ResetCDR()
ru
zz
13.6.5 Set(CDR(userfield)=Value)
En
z
La
13.6.6 AppendCDRUserField(Value)
m
en
te
si
va
lu
Formato:
ho
ex
c
Authenticate(password[|options])
Authenticate(/passwdfile|[|options])
Authenticate(</db-keyfamily|d>options)
H
ec
Opciones:
zz
ru
En
z
VMAuthenticate([mailbox][@context][|options])
La
Hace lo mismo que el Authenticate, pero usa la base de datos del correo
de voz para la autentificacin de los usuarios.
m
en
te
H
ec
ho
ex
c
lu
si
va
exten=_000.,1,VMAuthenticate(${CALLERID}@ramales|ajs)
exten=_000.,2,Dial(Zap/g1/${EXTEN:1},20,tT)
exten=_000.,3,Hangup()
exten=_000.,102,Playback(no_autorizado)
exten=_000.,103,Hangup()
13.9 Sumario
En este captulo aprendimos como atribuir cdigos de contabilizacin a los
canales (ramales y troncos) 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.10 Cuestionario
ru
zz
La
Falso
Verdadero
En
z
a
MySQL
Oracle nativo
MSSQL
Archivos texto CSV
Bases de datos por unix_ODBC
m
en
te
va
Falso
Verdadero
ho
ex
c
Default
Omit
Tax
Rate
Billing
Documentation
H
ec
lu
si
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:
ru
zz
Contrasea
Archivos de contraseas
Banco berkley DB (dbput e dbget)
VoiceMail
La
En
z
Falso
Verdadero
va
a
j
d
r
H
ec
ho
ex
c
lu
si
m
en
te
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 14
Integracin de Asterisk usando AGI y AMI
14.1 Introduccin
En
z
La
ru
zz
m
en
te
va
si
lu
H
ec
ex
c
ho
Aplicacin System()
Asterisk Manager Internase - AMI
Asterisk Gateway Internase - AGI
Por ejemplo:
ru
zz
En
z
La
m
en
te
va
lu
si
[Synopsis]
Execute a system command
H
ec
ho
ex
c
[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
ru
zz
exten =>
fax,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${CALLERIDNUM}.tif)
exten =>
fax,n,SetVar(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERIDNUM})
exten => fax,n,rxfax(${FAXFILE})
exten => fax,n,System('/usr/bin/fax2mail ${CALLERIDNUM}
"${CALLERIDNAME}" FaxNum RecipName email@address.com
${FAXFILENOEXT} p')
La
va
m
en
te
En
z
si
H
ec
ho
ex
c
lu
La
ru
zz
m
en
te
En
z
va
lu
si
H
ec
ho
ex
c
bindaddr=127.0.0.1
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
[admin]
secret=contrasea
read=system,call,log,verbose,command,agent,user
write=system,call,log,verbose,command,agent,user
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255
zz
ru
<?php
La
En
z
?>
m
en
te
<?php
lu
si
va
ex
c
?>
ho
H
ec
Cuando usted enva al Asterisk una acin, algunas llaves extras pueden
ser proporcionadas como parmetros. Por ejemplo, un nmero a ser
llamado. Esto es hecho en la forma de pasar los pares llave:valor
despus el Action. Es posible tambin pasar variables para el plano de
discado.
Action: <action type><CRLF>
<Key 1>: <Value 1><CRLF>
<Key 2>: <Value 2><CRLF>
Variable: <Variable 1>=<Value 1><CRLF>
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
Agents
ChangeMonitor
Command
DBGet
DBPut
EventsControl
ExtensionState
Getvar
Hangup
IAXnetstats
IAXpeers
ListCommands
Logoff
MailboxCount
MailboxStatus
Monitor
Originate
ParkedCalls
Ping
QueueAdd
QueuePause
QueueRemove
Queues
QueueStatus
Redirect
SetCDRUserField
Setvar
SIPpeers
zz
ru
AgentLogoff
Sinopse
Set Absolute Timeout
Sets an agent as logged in by
callback
agent,all
Sets an agent as no longer logged
in
agent,all
Lists agents and their status
call,all
Change monitoring filename of a
channel
command,all Execute Asterisk CLI Command
system,all
Get DB Entry
system,all
Put DB Entry
<none>
Event Flow
call,all
Check Extension Status
call,all
Gets a Channel Variable
call,all
Hangup Channel
<none>
Show IAX Netstats
<none>
List IAX Peers
<none>
List available manager commands
<none>
Logoff Manager
call,all
Check Mailbox Message Count
call,all
Check Mailbox
call,all
Monitor a channel
call,all
Originate Call
<none>
List parked calls
<none>
Keepalive command
agent,all
Add interface to queue.
agent,all
Makes
a
queue
member
temporarily unavailable
agent,all
Remove interface from queue.
<none>
Queues
<none>
Queue Status
call,all
Redirect (transfer) a call
call,all
Set the CDR UserField
call,all
Set Channel Variable
System,all
List SIP peers (text format)
Action
Privilege
AbsoluteTimeout
call,all
AgentCallbackLogin agent,all
SIPshowpeer
Status
StopMonitor
System,all
call,all
call,all
m
en
te
En
z
La
ru
zz
si
ex
c
Descripcin:
lu
va
conectados y el cambio de
ho
H
ec
Notas:
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.
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.
zz
Ejemplo:
lu
ex
c
ho
H
ec
B
La
o
PeerStatusEvent
QueueEntryEvent
QueueEvent
QueueMemberAddedEvent
QueueMemberEvent
QueueMemberPausedEvent
QueueMemberRemovedEvent
QueueMemberStatusEvent
QueueParamsEvent
QueueStatusCompleteEvent
RegistryEvent
ReloadEvent
RenameEvent
ResponseEvent
ShutdownEvent
StatusCompleteEvent
StatusEvent
UnholdEvent
UnlinkEvent
UnparkedCallEvent
UserEvent
ZapShowChannelsCompleteEvent
ZapShowChannelsEvent
va
m
en
te
En
z
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
si
AbstractAgentEvent
AbstractParkedCallEvent
AbstractQueueMemberEvent
AgentCallbackLoginEvent
AgentCallbackLogoffEvent
AgentCalledEvent
AgentCompleteEvent
AgentConnectEvent
AgentDumpEvent
AgentLoginEvent
AgentLogoffEvent
AgentsCompleteEvent
AgentsEvent
AlarmClearEvent
AlarmEvent
CdrEvent
ChannelEvent
ConnectEvent
DBGetResponseEvent
DialEvent
DisconnectEvent
DNDStateEvent
ExtensionStatusEvent
FaxReceivedEvent
HangupEvent
HoldedCallEvent
ru
Event: Unlink
Channel1: SIP/101-3f3f
Channel2: Zap/2-1
Uniqueid1: 1094154427.10
Uniqueid2: 1094154427.11
14.7.8 Eventos disponibles en el Asterisk
zz
ru
En
z
La
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.
m
en
te
va
ex
c
make
make install
lu
si
ho
H
ec
vi /etc/asterisk/astmanproxy.conf
; astmanproxy.conf
; Asterisk Manager Proxy Configuration Sample
; (C) 2005-2006 David C. Troy - dave@popvox.com
; 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
zz
vi /etc/asterisk/astmanproxy.users
vi /etc/asterisk/ssl.conf
ru
La
astmanproxy
En
z
m
en
te
va
/usr/local/sbin/astmanproxy
lu
si
H
ec
ho
ex
c
zz
ru
Cliente
va
m
en
te
URA
BANCO
DE
DADOS
En
z
La
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 plano de discado definido en extensions.conf. La aplicacin principal
para el AGI es URA con acceso a banco de datos.
H
ec
ex
c
ho
lu
si
Formato de la aplicacin:
asterisk*CLI> show application agi
asterisk*CLI>
-= Info about application 'AGI' =[Synopsis]
Executes an AGI compliant application
ru
Use the CLI command 'show agi' to list available agi commands
zz
[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.
Using 'EAGI' provides enhanced AGI, with incoming audio available out of
band
on file descriptor 3
La
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
zz
ru
La
En
z
m
en
te
va
lu
si
ex
c
ho
#!/usr/bin/php -q
<?php
H
ec
agi_request:testephp
agi_channel: Zap/1-1
agi_language: en
agi_type: Zap
agi_callerid:
agi_dnid:
agi_context: default
agi_extension: 4000
agi_priority: 1
ru
B
La
o
En
z
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;
}
}
zz
ex
c
lu
si
va
ho
m
en
te
H
ec
ru
zz
Variables de canal pueden ser definidas dentro del AGI, pera las variables
de canal no son pasadas al AGI. El ejemplo de abajo no funciona.
En
z
La
m
en
te
va
ex
c
lu
si
ho
H
ec
m
en
te
En
z
La
ru
zz
function write($line) {
global $debug, $stdlog;
if ($debug) fputs($stdlog, "write: $line\n");
echo $line."\n";
}
ex
c
lu
si
va
ho
// Programa Principal
connect_db();
H
ec
$valor = "$result[0]";
write("EXEC SayDigits \" $valor \"\n");
read();
fclose($in);
fclose($stdlog);
exit;
zz
?>
La
ru
14.9.3 DeadAGI
En
z
m
en
te
14.9.4 FASTAGI
va
El Fast AGI implementa una conexin de AGI va TCP por la puerta 4573
por default. Si usa el FastAGI en el formato (agi://).
si
Ejemplo:
lu
ho
ex
c
H
ec
ru
zz
http://www.asterisk.org/doxygen/
En
z
La
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
H
ec
ho
ex
c
lu
si
va
m
en
te
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()
ru
zz
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.
La
Correcto
Incorrecto
En
z
m
en
te
Verdadero
Falso
si
va
ex
c
lu
ho
Falso
Verdadero
H
ec
Falso
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
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Captulo 15
Asterisk Real-Time
15-1 Introduccin
ru
zz
En
z
La
Podemos citar:
ex
c
lu
si
va
m
en
te
ho
H
ec
zz
En
z
La
ru
m
en
te
va
lu
si
ex
c
H
ec
ho
#wget http://ftp.digium.com/pub/asterisk/releases/asteriskaddons-1.2.3.tar.gz
Paso 2: En Debian baje una de las dependencias de MySQL.
#apt-get install libmysqlclient12-dev
Paso 3: Descomprima y compile los add-ons
#tar xzvf asterisk-addons-1.2.3.tar.gx
#cd asterisk-1.2.3
#make
#make install
Paso 4: Copie el archivo
/etc/asterisk/res_mysql.conf
res_mysql.conf.sample
para
La
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
;
; 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
zz
ru
B
En
z
La
m
en
te
ex
c
lu
si
va
H
ec
ho
informaciones necesarias. El
chan_sip.so y as en adelante.
mismo
es
verdadero
para
el
Ejemplo:
ru
zz
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 usurios 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.
La
En
z
Ejemplo:
m
en
te
ex
c
lu
si
va
ho
H
ec
context=default
context=ramales
Puede ser almacenado en una base de datos en una tabla como la
de abajo
name host
secret
context
ipaddr
port regseconds
4000 dynamic contrasea default;ramales 10.1.1.1 4569 1765432
ru
zz
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.
La
Una tabla SIP debe aparecerse como la de abajo para tener los
campos necesarios.
En
z
name Host
secret
context ipaddr
port regseconds username
4000 dynamic contrasea default 10.1.1.1 5060 1765432
4000
Una tabla de voicemail va se parecer como la de abajo:
m
en
te
si
va
lu
ho
ex
c
H
ec
ru
zz
La
#mysql u root p
En
z
m
en
te
va
lu
si
ex
c
ho
H
ec
voicemail.sql
sip.sql
iax.sql
extensions.sql
#mysql
#mysql
#mysql
#mysql
asteriskdb
asteriskdb
asteriskdb
asteriskdb
-u
-u
-u
-u
asterisk
asterisk
asterisk
asterisk
-p
-p
-p
-p
<iax.sql
<sip.sql
<extensions.sql
<voicemail.sql
lu
si
va
m
en
te
En
z
La
ru
zz
H
ec
ho
ex
c
Pantalla de login
La
ru
zz
En
z
ex
c
lu
si
va
[general]
dbhost = 127.0.0.1
dbname = asteriskdb
dbuser = asterisk
dbpass = asterisk
dbport = 3306
m
en
te
** Cosas de linux **
H
ec
ho
Paso 1:
Asterisk.
Configurar
el
extconfig.conf
zz
ru
B
La
o
En
z
H
ec
ho
ex
c
lu
si
va
m
en
te
el
reinicializar
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
correo de voz, use la instruccin rtcachefriends=yes en el archivo
sip.conf
Paso 4: Coloque el comando rtcachefriends=yes en la
seccin [general] del archivo sip.conf.
zz
ru
La
En
z
15.7 Sumario
si
va
m
en
te
ex
c
lu
15.8 Cuestionario
ho
H
ec
Verdadero
Falso
Libmysqlclient12-dev
Mysql-server-4.1
Perl
Php
extensions.conf
sip.conf
res_mysql.conf
extconfig.conf
ru
zz
La
En
z
m
en
te
Verdadero
Falso
va
H
ec
ho
ex
c
lu
si
ru
zz
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
Verdadero
Falso
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Apndice A
zz
o
La
ru
CANALES
PROTOCOLOS
AGENTES
TELEFONOS
CODECS
APLICACIONES
En
z
m
en
te
lu
si
va
ex
c
CORRECTA
INCORRECTA
H
ec
ho
CORRECTA
INCORRECTA
6. Es responsable por la atencion automtica de clientes,
normalmente suena um prompt y espera que usurio selecione
una opcin. En algunos casos puede ser usada en conjunto con un
banco de datos y convercion de texto para ser hablado.
Estamos hablando aqui de una:
ru
zz
URA
IVR
DAC
Unified Messaging
En
z
E1
T1
FXO
FXS
La
va
12, 24
30, 24
12,12
1,1
si
m
en
te
ex
c
lu
H
ec
ho
CORRECTA
INCORRECTA
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Respuestas do captulo 2
1. Cual es la configuracin mnima para Asterisk.
Pentium 300Mhz
256MB RAM
100 MB de disco
ru
zz
Correcto
Incorrecto
La
En
z
Correcto
Incorrecto
m
en
te
Correcto
Incorrecto
si
va
ho
ex
c
lu
H
ec
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Respuestas do captulo 3
1. Son ejemplos de archivos de configuracin de canales Asterisk.
zaptel.conf
zapata.conf
sip.conf
iax.conf
ru
zz
La
Correcto
Incorrecto
En
z
m
en
te
Correcto
Incorrecto
ex
c
Correcto
Incorrecto
lu
si
va
H
ec
ho
zz
[general]
bindport = 5060
bindaddr = 10.1.30.45
context = default
disallow = speex
disallow = ilbc
allow = ulaw
maxexpirey = 120
defaultexpirey = 80
La
ru
En
z
[8000]
type=friend
secret=8000
host=dynamic
canreinvite=no
va
si
lu
Correcto
Incorrecto
m
en
te
[8001]
type=friend
secret=8000
host=dynamic
canreinvite=no
H
ec
ho
ex
c
9
s
i
10. Los formatos vlidos para el comando Goto() son:
Goto(contexto,extensin,prioridad)
Goto(prioridad, contexto, extensin)
Goto(extensin,prioridad)
Goto(prioridad)
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
Respuestas do Captulo 5
5.12 Cuestionario
ru
zz
La
Correcto
Incorrecto
En
z
m
en
te
Correcto
Incorrecto
si
va
Correcto
Incorrecto
ho
Presentacin
Aplicacin
Fsica
Sesin
Enlace
H
ec
ex
c
lu
5. Dentro del modelo OSI, los protocolos SIP, H.323 e IAX2 estn
en la capa de:
zz
ru
La
Correcto
Incorrecto
En
z
H
ec
ho
ex
c
lu
si
va
m
en
te
Respuestas do capitulo 6
1. Podemos citar como principales beneficios de IAX la economa de
banda ancha y facilidad de pasar por Firewalls con NAT.
Correcto
Incorrecto
ru
zz
Correcta
Incorrecta
La
Frame Completo
Frame Incompleto
Mini-Frame
Trunked Frame
En
z
si
va
IP
UDP
IAX
RTP
cRTP
lu
m
en
te
ex
c
H
ec
ho
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
zz
IAX/[<user>[:<secret>]@]<peer>[:<portno>][/<exten>[@<conte
xt>][/<options>]]
La
ru
En
z
Correcta
Incorrecta
H
ec
ho
ex
c
lu
si
va
m
en
te
Respuestas do capitulo 7
1. El SIP es un protocolo de tipo texto similar al ______ e _______.
IAX
HTTP
H323
SMTP
ru
Voz
Correo Electrnico
Vdeo
Chat
Juegos
La
zz
User Agent
Media gateway
PSTN Server
Proxy Server
Registrar Server
m
en
te
En
z
si
va
ex
c
lu
H
ec
ho
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
zz
.Correcta
Incorrecta
ru
La
Correcta
Incorrecta
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
Respuestas do capitulo 8
1. En la configuracin de la sesin [general] el valor estandar de la
opcin writeprotect=no. Siendo asi si usted emite el comando save
dialplan en la linea de comando CLI>. (Marque todas que se
aplican).
ru
zz
La
En
z
Verdadero
Falso
va
si
m
en
te
ho
ex
c
lu
H
ec
$[varname]
{varname}
$(varname)
${varname}
Constantes
Variables pblicas
Variables de ambiente
Variables globales
Variables privadas
Variables de canal
zz
La
ru
${foo}${bar}
555${Onumero}
${PrefixoLongaDistancia}555${ONumero}
En
z
Correcta
Incorrecta
m
en
te
si
va
exten=4000,1,dial(SIP/4000,15)
exten=4000,2,dial(SIP/4000&SIP/4001,15)
ho
ex
c
lu
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 necesrios para
forzar el discado por la operadora 55 desconsiderando la operadora
escojida por el usurio.
H
ec
[ramais]
exten=_0XXXXXXXXXX,1,Dial(Zap/g1/_055${EXTEN:4},15)
Respuestas do capitulo 9
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|*|*
ru
zz
En
z
La
m
en
te
=>
=>
=>
=>
8590/482518888,1,Congestion
8590,1,Dial(Zap/1,20)
8590,2,Voicemail(u8590)
8590,102,Voicemail(b8590)
va
exten
exten
exten
exten
3. Los comandos:
lu
si
H
ec
ho
ex
c
Oracle
MySQL
Berkley DB
PostgreSQL
zz
8.
Cuando
usted
usa
el
comando
Dial(tipo1/identificar1&tipo2/identificar2) con vrios identificadores,
Asterisk disca para cada una en secuencia y espera 20 segundos o
el tiempo de timeout antes de pasar para el outro nmero. A
afirmacin es:
ru
Falsa
Verdadera
En
z
La
m
en
te
Falsa
Verdadera
si
va
Correcta
Incorrecta
ho
${ARG1}
${ENV1}
${V1}
${X}
H
ec
ex
c
lu
10.9 Cuestionrio
1. Con relacin a Call Parking asigne las afirmaciones verdaderas.
zz
La
ru
#2
#1
#1
#2
#1,
#2,
#3,
#4,
m
en
te
En
z
va
ho
ex
c
MeetMe()
MeetMeConsole()
MeetMeAdministrator()
MeetmeAdmin()
H
ec
lu
si
11.9 Cuestionrio
1. Site cuatro estratgias de ruteamiento del sistema de fila de
atencin de llamadas.
Ringall, Roundrobin, Leastrecent, fewest calls, random, rrmemory
2. Es posble grabar la conversacin de los agentes usando
record=yes en el archivo agents.conf.
zz
3.
Para
loguear
un
agente
se
usa
el
comando
Agentlogin([agentnumber]). Cuando el agente termina la llamada
este puede presionar:
La
ru
m
en
te
Crear la fila
Crear los agentes
Configurar los agentes
Configurar la grabacin
Colocar en le plano de discado
va
En
z
ho
ex
c
lu
si
H
ec
Agente
Menu
Contexto
Aplicativo
el Plano de discado
la interface de linea de comando
en el archivo queues.conf
en el archivos agents.conf
ru
zz
Verdadero
Falso
La
En
z
Verdadero
Falso
m
en
te
H
ec
ho
ex
c
lu
si
va
Correcta
Incorrecta
12.7 Cuestionario
1. Los archivos emparentados con en la configuracin del Correo de
voz son:
sip.conf
iax.conf
asterisk.conf
voicemail.conf
vmail.conf
extensions.conf
zz
Ocupado, Libre
Ocupado, No atiende
No atiende, Ocupado
Libre, Preso
En
z
La
ru
m
en
te
lu
0
*
#
9999
ex
c
si
va
H
ec
ho
zz
Correcta
Incorrecta
La
ru
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
13.10 Cuestionario
1.
Por
default
Asterisk
/var/log/asterisk/cdr-csv.
contabiliza
las
llamadas
en
Falso
Verdadero
2. Asterisk solo permite contabilizar en las bases de datos:
ru
zz
MySQL
Oracle nativo
MSSQL
Archivos texto CSV
Bases de datos por unix_ODBC
La
En
z
Falso
Verdadero
m
en
te
va
Default
Omit
Tax
Rate
Billing
Documentation
si
ex
c
lu
H
ec
ho
Verdadero
8. Los tres mtodos de autentificacin disponibles para la aplicacin
Authenticate() son:
Contrasea
Archivos de contraseas
Banco berkley DB (dbput e dbget)
VoiceMail
zz
ru
Falso
Verdadero
En
z
a
j
d
r
H
ec
ho
ex
c
lu
si
va
m
en
te
La
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()
ru
zz
La
Correcto
Incorrecto
En
z
m
en
te
Verdadero
Falso
lu
si
va
ex
c
ho
Falso
Verdadero
H
ec
Falso
Verdadero
8. El comando show agi muestra todas las aplicaciones disponibles
para uso en AGIs
9 El comando show manager commands muestra todos los
comandos disponibles para uso con AMI
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz
10. Para hacer debug en un AGI usted debe usar el comando agi
debug.
15.8 Cuestionario
1. El Asterisk Real Time es un recurso que hace parte de la
distribucin del Asterisk?
Verdadero
Falso
ru
zz
Libmysqlclient12-dev
Mysql-server-4.1
Perl
Php
En
z
extensions.conf
sip.conf
res_mysql.conf
extconfig.conf
m
en
te
La
ex
c
lu
si
va
H
ec
ho
La
ru
zz
En
z
Verdadero
Falso
m
en
te
lu
si
va
H
ec
ho
ex
c
Verdadero
Falso
H
ec
ho
ex
c
lu
si
va
m
en
te
En
z
La
ru
zz