Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Asterisk Tesis PDF
Asterisk Tesis PDF
Sistemas Informticos
Estudio y Montaje a
medida de Centralita
Telefnica VoIP Asterisk
Autor:
Directores:
Agradecimientos
Resumen
En este trabajo, por una parte, se realiza un estudio sobre las centralitas telefnicas
Asterisk, as como, su ventaja frente a cualquier centralita por su flexibilidad, potencia
y proteccin de la inversin.
Mientras que por otra parte, se trata la implantacin de estas centralitas en empresa
con el diseo, montaje y configuracin a medida para la empresa Yet Informtica S.L.
ii
Organizacin
La documentacin del proyecto se divide en dos partes no establecidas.
Una primera parte la forman los antecedentes, en los que se da informacin sobre la
empresa en la que se sita el proyecto, as como, la necesidad de realizacin de dicho
proyecto, los objetivos, a partir de los que se decide qu problema se quiere solucionar
y cmo hacerlo y la viabilidad del proyecto, que refleja las panificaciones inicial y real
del proyecto y el presupuesto del mismo.
La segunda parte est constituida por la memoria del proyecto, la bibliografa, los
anexos, el glosario, la conclusin y lneas futuras.
La memoria del proyecto est dividida en 4 captulos:
Como ayuda se incluye un glosario en el que se aclaran los significados de las siglas. Los
anexos permitirn conocer ms sobre algunos temas especficos, as como, disponer
de algunos manuales de instalacin.
Por ltimo, se comparten los resultados generales que resuelven los objetivos, se
elaboran las conclusiones y se plantea el trabajo futuro.
iii
ndice de Contenidos
AGRADECIMIENTOS................................................................................................... I
RESUMEN Y ORGANIZACIN DEL PROYECTO............................................................. II
RESUMEN ......................................................................................................................................II
ORGANIZACIN ............................................................................................................................. III
iv
ANTECEDENTES ........................................................................................................ 1
EMPRESA EN LA QUE SE SITA EL PROYECTO ....................................................................................... 1
CMO SURGE LA NECESIDAD DEL PROYECTO A REALIZAR ....................................................................... 2
xi
ndice de Figuras
PlanFig1
PlanFig2
PlanFig3
PlanFig4
PlanFig5
PlanFig6
PlanFig7
PlanFig8
PlanFig9
PlanFig10
PlanFig11
xii
PlanFig12
PlanFig13
PlanFig14
PlanFig15
PlanFig16
PlanFig17
PlanFig18
PlanFig19
PlanFig20
PlanFig21
PlanFig22
PlanFig23
PlanFig24
PlanFig25
PlanFig26
PlanFig27
PlanFig28
PlanFig29
PlanFig30
PlanFig31
PlanFig32
PlanFig33
PlanFig34
PlanFig35
PlanFig36
PlanFig37
PlanFig38
PlanFig39
PlanFig40
PlanFig41
PlanFig42
PlanFig43
PlanFig44
PlanFig45
PlanFig46
PlanFig47
PlanFig48
PlanFig49
PlanFig50
PlanFig51
PlanFig52
PlanFig53
PlanFig54
xiii
PlanFig55
PlanFig56
PlanFig57
PlanFig58
PlanFig59
PlanFig60
PlanFig61
Capitulo 1
Cap1Fig1
Cap1Fig2
Cap1Fig3
Cap1Fig4
Cap1Fig5
Cap1Fig6
Cap1Fig7
Cap1Fig8
Cap1Fig9
Cap1Fig10
Cap1Fig11
Cap1Fig12
Cap1Fig13
Cap1Fig14
Cap1Fig15
Cap1Fig16
Cap1Fig17
Cap1Fig18
Cap1Fig19
Cap1Fig20
Cap1Fig21
Cap1Fig22
Cap1Fig23
Cap1Fig24
Cap1Fig25
Cap1Fig26
Cap1Fig27
Cap1Fig28
Cap1Fig29
Cap1Fig30
Cap1Fig31
Cap1Fig32
Cap1Fig33
xiv
Cap1Fig34
Cap1Fig35
Cap1Fig36
Cap1Fig37
Cap1Fig38
Cap1Fig39
Cap1Fig40
Cap1Fig41
Cap1Fig42
Cap1Fig43
Cap1Fig44
Capitulo 2
Cap2Fig1
Cap2Fig2
Cap2Fig3
Cap2Fig4
Cap2Fig5
Cap2Fig6
Cap2Fig7
Cap2Fig8
Cap2Fig9
Cap2Fig10
Cap2Fig11
Cap2Fig12
Cap2Fig13
Cap2Fig14
Cap2Fig15
Cap2Fig16
Cap2Fig17
Cap2Fig18
Cap2Fig19
Cap2Fig20
Cap2Fig21
Cap2Fig22
Cap2Fig23
Cap2Fig24
Cap2Fig25
Cap2Fig26
Cap2Fig27
Cap2Fig28
Cap2Fig29
xv
Cap2Fig30
Cap2Fig31
Cap2Fig32
Cap2Fig33
Cap2Fig34
Cap2Fig35
Capitulo 3
Cap3Fig1
Cap3Fig2
Cap3Fig3
Cap3Fig4
Cap3Fig5
Cap3Fig6
Cap3Fig7
Cap3Fig8
Cap3Fig9
Cap3Fig10
Cap3Fig11
Cap3Fig12
Cap3Fig13
Cap3Fig14
Cap3Fig15
Cap3Fig16
Cap3Fig17
Cap3Fig18
Cap3Fig19
Cap3Fig20
Cap3Fig21
Cap3Fig22
Cap3Fig23
Cap3Fig24
Cap3Fig25
Cap3Fig26
Cap3Fig27
Cap3Fig28
Cap3Fig29
Capitulo 4
xvi
Cap4Fig1
Cap4Fig2
Cap4Fig3
Cap4Fig4
Cap4Fig5
Cap4Fig6
Cap4Fig7
Cap4Fig8
Cap4Fig9
Cap4Fig10
Cap4Fig11
Cap4Fig12
Cap4Fig13
Cap4Fig14
Cap4Fig15
Cap4Fig16
Cap4Fig17
Cap4Fig18
Cap4Fig19
Cap4Fig20
Cap4Fig21
Cap4Fig22
Cap4Fig23
Cap4Fig24
Cap4Fig25
Cap4Fig26
Cap4Fig27
Cap4Fig28
Cap4Fig29
Cap4Fig30
Cap4Fig31
Cap4Fig32
Cap4Fig33
Cap4Fig34
Cap4Fig35
Cap4Fig36
Cap4Fig37
Cap4Fig38
Cap4Fig39
Cap4Fig40
Cap4Fig41
Cap4Fig42
Cap4Fig43
xvii
Cap4Fig44
Cap4Fig45
Cap4Fig46
Cap4Fig47
Cap4Fig48
Cap4Fig49
Cap4Fig50
Cap4Fig51
Cap4Fig52
Cap4Fig53
Cap4Fig54
Cap4Fig55
Cap4Fig56
Cap4Fig57
Cap4Fig58
Cap4Fig59
Cap4Fig60
Cap4Fig61
Cap4Fig62
Cap4Fig63
Cap4Fig64
Cap4Fig65
Cap4Fig66
Cap4Fig67
Cap4Fig68
Cap4Fig69
Cap4Fig70
Cap4Fig71
Cap4Fig72
Cap4Fig73
Cap4Fig74
Cap4Fig75
Cap4Fig76
Cap4Fig77
Cap4Fig78
Cap4Fig79
Cap4Fig80
Cap4Fig81
Cap4Fig82
Cap4Fig83
Cap4Fig84
Cap4Fig85
Cap4Fig86
xviii
Cap4Fig87
Cap4Fig88
Cap4Fig89
Cap4Fig90
Cap4Fig91
Cap4Fig92
Cap4Fig93
Cap4Fig94
Cap4Fig95
Cap4Fig96
Cap4Fig97
Cap4Fig98
Cap4Fig99
Cap4Fig100
Cap4Fig101
Cap4Fig102
Cap4Fig103
Cap4Fig104
Cap4Fig105
Cap4Fig106
Cap4Fig107
Cap4Fig108
Cap4Fig109
Cap4Fig110
Cap4Fig111
Cap4Fig112
Cap4Fig113
Cap4Fig114
Cap4Fig115
Cap4Fig116
Cap4Fig117
Cap4Fig118
Cap4Fig119
Cap4Fig120
Cap4Fig121
Cap4Fig122
Cap4Fig123
Cap4Fig124
Cap4Fig125
Cap4Fig126
Cap4Fig127
Cap4Fig128
Cap4Fig129
xix
Cap4Fig130
Cap4Fig131
Cap4Fig132
Cap4Fig133
Cap4Fig134
Cap4Fig135
Cap4Fig136
Cap4Fig137
Cap4Fig138
Anexos
AnexoFig1
AnexoFig2
AnexoFig3
AnexoFig4
AnexoFig5
AnexoFig6
AnexoFig7
AnexoFig8
AnexoFig9
AnexoFig10
AnexoFig11
AnexoFig12
AnexoFig13
AnexoFig14
AnexoFig15
AnexoFig16
AnexoFig17
AnexoFig18
AnexoFig19
AnexoFig20
AnexoFig21
AnexoFig22
AnexoFig23
AnexoFig24
AnexoFig25
AnexoFig26
AnexoFig27
AnexoFig28
AnexoFig29
AnexoFig30
AnexoFig31
xx
AnexoFig32
AnexoFig33
AnexoFig34
AnexoFig35
AnexoFig36
AnexoFig37
AnexoFig38
AnexoFig39
AnexoFig40
xxi
ndice de Tablas
PlanTabla1
PlanTabla2
PlanTabla3
PlanTabla4
PlanTabla5
PlanTabla6
PlanTabla7
PlanTabla8
Capitulo 1
Capitulo 2
xxii
Cap2Tabla1
Cap2Tabla2
Cap2Tabla3
Capitulo 3
Capitulo 4
Cap4Tabla1
Cap4Tabla2
Cap4Tabla3
Cap4Tabla4
Cap4Tabla5
Cap4Tabla6
Cap4Tabla7
Cap4Tabla8
Cap4Tabla9
Cap4Tabla10
Cap4Tabla11
Cap4Tabla12
Cap4Tabla13
Cap4Tabla14
Cap4Tabla15
Cap4Tabla16
Cap4Tabla17
Cap4Tabla18
Cap4Tabla19
Cap4Tabla20
Cap4Tabla21
Cap4Tabla22
Anexos
AnexoTabla1
AnexoTabla2
xxiii
Antecedentes
Resumiendo esta tabla, cuando se realiz la planificacin inicial, la idea era realizar la
formacin necesaria en los meses de Julio y Agosto, sin contar las semanas de
vacaciones (del 4 al 16 de Agosto) y durante los dos siguientes meses montar la
centralita para la empresa Yet Informtica.
Planificacin Real Temporal
Como se puede ver en la imgenes anteriores la planificacin real comienza con una
tarea repetitiva en la que cada semana se har un planing del trabajo a realizar
durante esta.
A continuacin se pueden definir tres partes en la planificacin: el estudio de las
tecnologas y pruebas iniciales, el montaje de la centralita para Yet Informtica S.L. y la
elaboracin de la documentacin.
Desvio Temporal
El desvo temporal es de 2 meses y 20 das, el estudio de las tecnologas fue uno de los
culpables en este contratiempo, tambin la integracin de la centralita con Verbio y
Nagios supuso un tiempo no planificado y por ltimo la elaboracin de la agenda de
contactos Yetbook, que surgi al final del proyecto.
Planificacin real del proyecto y herramientas a utilizar en su elaboracin
Estructura de Descomposicin del Trabajo
Tras ver la Planificacin Real Temporal se generar una ficha para cada tarea
identificada, donde se anotar su nmero, nombre, una breve descripcin y el
esfuerzo estimado:
Especificacin de la tarea
Nmero: 1
Duracin: 26 h
Especificacin de la tarea
Nmero: 2
Duracin: 240 h
Especificacin de la tarea
Nmero: 3
Duracin: 240 h
Especificacin de la tarea
Nmero: 4
Duracin: 240 h
10
Especificacin de la tarea
Nmero: 5
Duracin: 160 h
Especificacin de la tarea
Nmero: 6
Duracin: 80 h
Especificacin de la tarea
Nmero: 7
Duracin: 20 h
11
Especificacin de la tarea
Nmero: 8
Duracin: 160 h
Especificacin de la tarea
Nmero: 9
Duracin: 10 h
Especificacin de la tarea
Nmero: 10.1
Duracin: 160 h
12
Especificacin de la tarea
Nmero: 10.2
Duracin: 30 h
Especificacin de la tarea
Nmero: 10.3
Duracin: 10 h
Especificacin de la tarea
Nmero: 10.4
Duracin: 10 h
13
Especificacin de la tarea
Nmero: 12
Duracin: 15 h
Especificacin de la tarea
Nmero: 13
Duracin: 5 h
Especificacin de la tarea
Nmero: 14
Duracin: 30 h
14
Especificacin de la tarea
Nmero: 15
Duracin: 30 h
Especificacin de la tarea
Nmero: 16
Duracin: 60 h
Especificacin de la tarea
Nmero: 17
Duracin: 120 h
15
Especificacin de la tarea
Nmero: 18
Duracin: 20 h
Especificacin de la tarea
Nmero: 19
Duracin: 15 h
Especificacin de la tarea
Nmero: 20
Duracin: 30 h
16
Especificacin de la tarea
Nmero: 21
Duracin: 16 h
Especificacin de la tarea
Nmero: 22
Duracin: 5 h
Especificacin de la tarea
Nmero: 23
Duracin: 30 h
17
Especificacin de la tarea
Nmero: 24
Duracin: 3 h
Especificacin de la tarea
Nmero: 25
Nombre: Pruebas I
Duracin: 5 h
Especificacin de la tarea
Nmero: 26
Duracin: 16 h
18
Especificacin de la tarea
Nmero: 27
Duracin: 60 h
Especificacin de la tarea
Nmero: 29
Duracin: 30 h
Especificacin de la tarea
Nmero: 30
Duracin: 16 h
19
Especificacin de la tarea
Nmero: 31
Nombre: Pruebas II
Duracin: 30 h
Especificacin de la tarea
Nmero: 32.1
Duracin: 10 h
Especificacin de la tarea
Nmero: 32.2
Duracin: 20 h
20
Especificacin de la tarea
Nmero: 32.3
Duracin: 150 h
Especificacin de la tarea
Nmero: 32.4
Duracin: 20 h
Especificacin de la tarea
Nmero: 33
Duracin: 35 h
21
Especificacin de la tarea
Nmero: 34
Duracin: 30 h
Especificacin de la tarea
Nmero: 35
Duracin: 20 h
Especificacin de la tarea
Nmero: 36
Duracin: 15 h
22
Especificacin de la tarea
Nmero: 37
Duracin: 25 h
Especificacin de la tarea
Nmero: 38
Duracin: 20 h
Especificacin de la tarea
Nmero: 39
Nombre: Pruebas IV
Duracin: 15 h
23
Especificacin de la tarea
Nmero: 40
Duracin: 15 h
Especificacin de la tarea
Nmero: 41
Duracin: 20 h
Especificacin de la tarea
Nmero: 42
Duracin: 15 h
24
Especificacin de la tarea
Nmero: 43
Duracin: 40 h
Especificacin de la tarea
Nmero: 44
Duracin: 20 h
Especificacin de la tarea
Nmero: 45
Duracin: 30 h
25
Recurso
Descripcin
Precio
Unidades
300,00
600,00
500,00
Ordenadores
Las caractersticas
tcnicas del PC son las
HP PROLIANT ML110 G5
(Servidor)
HP Compaq
(Ordenador)
Las caractersticas
tcnicas del PC son las
siguientes: Intel Pentium
4CPU 280GHz, 504MB
de RAM.
Las caractersticas
tcnicas del PC son las
siguientes: Intel Core 2
Duo P8600,320GB de
disco y 4GB de RAM
26
Telfonos
Telfono IP (SIP)
149,97
ALLNET ALL7960
(ALLNET)
61,89
Inalmbrico Alcatel
Versatis 620 Duo
(Telefono1)
(Telefono2)
Telefono Analgico
49,00
Cisco 7941
Telfono IP (SCCP)
163,85
TDM400P
(Tarjeta)
Tarjeta de Telefona
135,00
SPA 3000
(ATA)
Adaptador de Telefona
Analgico(1FXS y 1FXO)
44,53
54,90
Switch
(Switch1)
(Switch2)
54,69
Otros
27
Router
(Router1)(Router2)
Router ADSL
150,00
Precio
Unidades
300,00
00,00
Recurso
Descripcin
Microsoft Office
Profesional 2007
Commpilador de
Netbeans 6.7.1
Lenguajes de
Programacin
Putty
00,00
WinSCP
00,00
MySQL 5.0.27
Gestor de Bases
de Datos
00,00
Skype
Softphone
00,00
Licencia chan_skype
Canal de conexion
con Asterisk
45,92
Firefox 3.5
Navegador Web
00,00
Zoiper
Softphone
00,00
28
Recurso
Trabajo
(horas)
Costo ()
2.522
983,58
26
10,14
Iniciacin en Linux
240
93,60
240
94,60
240
93,60
Elaboracin de la memoria I:
Introduccin a la VoIP
160
62,40
Pruebas de montaje de
centralitas Asterisk
80
31,20
20
7,80
160
62,40
Pruebas de funcionamiento de
Elastix
1,95
Pruebas de configuracin
de funcionalidades
30
11,70
Tareas asociadas
David
29
15
5,85
Pruebas de integracin
con Call Center Stats
10
3,9
10
3,9
Montaje de centralita de
pruebas II con TDM400P
15
5,85
Pruebas TDM400P
1,95
30
11,70
30
11,70
60
23,40
120
46,80
20
7,80
Anlisis de requerimientos y
requisitos
15
5,85
30
11,70
16
6,24
30
Instalacin de Asterisk
1,95
Programacin de ficheros de
configuracin y Dialplan
30
11,70
Integracin de ficheros de
configuracin
Pruebas I
1,95
Solucin de errores I
16
6,24
Elaboracion de la memoria V:
Aplicacon
60
23,40
Tratamiento de
funcionalidades extra
30
11,70
16
6,24
Pruebas II
30
11,70
10
3,90
20
7,80
150
58,50
Pruebas de funcionamiento
(Agenda)
20
7,80
35
13,65
1,17
31
30
11,70
Integracin Verbio-Asterisk
20
7,80
Pruebas III
15
5,85
25
9,75
Integracin Asterisk-Nagios
20
7,80
Pruebas IV
15
5,85
15
5,85
20
7,80
15
5,85
40
15,60
20
7,80
Elaboracin de la Presentacin
30
11,70
26
32,50
1,25
Servidor
32
Pruebas de funcionamiento de
Elastix
1,25
Pruebas de configuracin
de funcionalidades
1,25
1,25
Pruebas de integracin
con Call Center Stats
1,25
1,25
Montaje de centralita de
pruebas II con TDM400P
1,25
Pruebas TDM400P
1,25
1,25
1,25
Instalacin de Asterisk
1,25
Programacin de ficheros de
configuracin y Dialplan
1,25
Integracin de ficheros de
configuracin
1,25
Pruebas I
1,25
33
Solucin de errores I
1,25
Tratamiento de
funcionalidades extra
1,25
1,25
Pruebas II
1,25
Integracin Verbio-Asterisk
1,25
Pruebas III
1,25
Integracin Asterisk-Nagios
1,25
Pruebas IV
1,25
1,25
1,25
1,25
1,25
27
33,75
1,25
Ordenador
Pruebas de montaje de
centralitas Asterisk
34
1,25
Pruebas de funcionamiento de
Elastix
1,25
Pruebas de configuracin
de funcionalidades
1,25
1,25
Pruebas de integracin
con Call Center Stats
1,25
1,25
Montaje de centralita de
pruebas II con TDM400P
1,25
Pruebas TDM400P
1,25
1,25
1,25
Instalacin de Asterisk
1,25
Programacin de ficheros de
configuracin y Dialplan
1,25
Integracin de ficheros de
configuracin
1,25
35
Portatil1
Pruebas I
1,25
Solucin de errores I
1,25
Tratamiento de
funcionalidades extra
1,25
1,25
Pruebas II
1,25
Integracin Verbio-Asterisk
1,25
Pruebas III
1,25
Integracin Asterisk-Nagios
1,25
Pruebas IV
1,25
1,25
1,25
1,25
1,25
17
21,25
36
Iniciacin en Linux
1,25
Estudio y aprendizaje
sobre telefona y VoIP
1,25
1,25
Elaboracin de la memoria I:
Introduccin a la VoIP
1,25
1,25
1,25
1,25
1,25
1,25
Anlisis de requerimientos y
requisitos
1,25
37
1,25
Elaboracion de la memoria V:
Aplicacon
1,25
1,25
1,25
Instalacin y Estudio de
Nagios y servicio SNMP
1,25
1,25
Elaboracin de la Presentacin
1,25
7,5
Anlisis de requisitos
1,25
1,25
Programacin Web
1,25
Pruebas de funcionamiento
1,25
1,25
Portatil2
38
1,25
20
5,00
0,25
Pruebas de funcionamiento
de Elastix
0,25
Pruebas de configuracin
de funcionalidades
0,25
0,25
0,25
0,25
0,25
0,25
Pruebas TDM400P
0,25
Sipura1
39
Sipura2
0,25
0,25
Pruebas I
0,25
Solucin de errores I
Tratamiento de funcionalidades
extra
0,25
0,25
0,25
Pruebas II
0,25
Pruebas III
0,25
0,25
0,25
0,25
1,25
40
0,25
Pruebas I
0,25
Solucin de errores I
0,25
Tratamiento de
funcionalidades extra
0,25
0,25
0,75
0,25
Pruebas I
0,25
Solucin de errores I
0,25
0,75
0,25
Pruebas I
0,25
Solucin de errores I
0,25
0,50
Sipura3
ALLNET
Telefono1
41
Montaje de centralita de
pruebas II con TDM400P
0,25
Pruebas TDM400P
0,25
0,25
0,25
0,25
0,25
1,00
Montaje de centralita de
pruebas II con TDM400P
0,50
Pruebas TDM400P
0,50
0,15
0,15
28
7,00
0,25
Telefono2
ATA
Tarjeta
sebi
Switch1
42
Pruebas de funcionamiento
de Elastix
0,25
Pruebas de configuracin
de funcionalidades
0,25
0,25
Pruebas de integracin
con Call Center Stats
0,25
Pruebas de integracin
con CDR Reports
0,25
Montaje de centralita
de pruebas II con TDM400P
0,25
Pruebas TDM400P
0,25
0,25
0,25
0,25
0,25
Instalacin de Asterisk
0,25
Programacin de ficheros de
configuracin y Dialplan
0,25
43
Integracin de ficheros
de configuracin
0,25
Pruebas I
0,25
Solucin de errores I
0,25
Tratamiento de
funcionalidades extra
0,25
0,25
Pruebas II
0,25
Integracin Verbio-Asterisk
0,25
Pruebas III
0,25
Integracin Asterisk-Nagios
0,25
Pruebas IV
0,25
0,25
0,25
0,25
0,25
44
0,25
0,50
0,25
0,25
36
9,00
Pruebas de montaje
de centralitas Asterisk
0,25
Estudio y aprendizaje
sobre el mundo Asterisk
0,25
Estudio y aprendizaje
sobre telefona y VoIP
0,25
0,25
Pruebas de funcionamiento
de Elastix
0,25
Pruebas de configuracin
de funcionalidades
0,25
0,25
Pruebas de integracin
con Call Center Stats
0,25
Switch2
Router1
45
Pruebas de integracin
con CDR Reports
0,25
Montaje de centralita de
pruebas II con TDM400P
0,25
Pruebas TDM400P
0,25
0,25
0,25
0,25
Anlisis de requerimientos
y requisitos
0,25
0,25
Instalacin de Asterisk
0,25
Programacin de ficheros de
configuracin y Dialplan
0,25
Integracin de ficheros
de configuracin
0,25
Pruebas I
0,25
Solucin de errores I
0,25
46
Elaboracin de la memoria V:
Aplicacin
0,25
Tratamiento de
funcionalidades extra
0,25
0,25
Pruebas II
0,25
0,25
0,25
Integracin Verbio-Asterisk
0,25
Pruebas III
0,25
0,25
Integracin Asterisk-Nagios
0,25
Pruebas IV
0,25
0,25
0,25
0,25
47
0,25
1,75
Iniciacin en Linux
0,25
Anlisis de requisitos
0,25
0,25
Programacin Web
0,25
Pruebas de funcionamiento
0,25
0,25
0,25
0,50
1,75
Router2
CISCO
Diagrama de GANTT:
Este diagrama nos indica cmo ser el proceso de elaboracin del proyecto, indicando
cundo empezarn y acabarn las tareas.
Y es que la duracin total del proyecto es algo que nos interesa optimizar, y es este
diagrama la herramienta perfecta para ello.
48
49
50
a)Hardware
Servidor
300,00
Ordenador
600,00
Portatil1
500,00
Portatil2
500,00
Sipura1
149,97
Sipura2
149,97
Sipura3
149,97
ALLNET
61,89
Telefono1
49,00
Telefono2
49,00
ATA
44,53
Tarjeta
135,00
Sebi (Huawei)
54,90
Switch1
54,69
Switch2
54,69
Router1
150,00
Router2
150,00
Cisco
163,85
3317,46
b)Software
Microsoft Office Profesional 2007
300,00
Netbeans 6.7.1
00,00
Putty
00,00
51
WinSCP
00,00
MySQL 5.0.27
00,00
Skype
00,00
Licencia Chan_Skype
45,92
Firefox 3.5
00,00
Zoiper
00,00
345,92
Concepto
Importe ()
Recursos Humanos
David
2.522
0,39
983,58
Servidor
26
1,25
32,50
Ordenador
27
1,25
33,75
Portatil1
17
1,25
21,25
Portatil2
1,25
7,50
Sipura1
20
0,25
5,00
Sipura2
0,25
1,25
Sipura3
0,25
0,75
ALLNET
0,25
0,75
Telefono1
0,25
0,50
Telefono2
0,25
0,25
ATA
0,25
0,25
Tarjeta
0,50
1,00
sebi
0,15
0,15
Switch1
28
0,25
7,00
Switch2
0,25
0,50
Router1
36
0,25
9,00
52
Router2
0,25
1,75
CISCO
0,50
0,50
123,65
Concepto
Coste
Unitario
()
Tiempo de
Amortizacin
(horas)
Coste Unitario
de
Amortizacin
(/h)
Tiempo
de Uso
(horas)
Importe
()
Servidor
300,00
4800
0,0625
26
1,63
Ordenador
600,00
4800
0,1250
27
3,38
Portatil1
500,00
4800
0,1042
17
1,77
Portatil2
500,00
4800
0,1042
0,63
Sipura1
149,97
4800
0,0312
20
0,62
Sipura2
149,97
4800
0,0312
0,16
Sipura3
149,97
4800
0,0312
0,09
ALLNET
61,89
4800
0,0129
0,03
Telefono1
49,00
4800
0,0102
0,02
Telefono2
49,00
4800
0,0102
0,01
ATA
44,53
4800
0,009
0,01
Tarjeta
135,00
4800
0,0281
0,06
sebi
54,90
4800
0,011
0,01
Switch1
54,69
4800
0,011
28
0,31
Switch2
54,69
4800
0,011
0,02
Router1
150,00
4800
0,031
36
1,15
Router2
150,00
4800
0,031
0,22
CISCO
163,85
4800
0,034
0,03
SUBTOTAL
Microsoft
Office
Profesional
2007
Netbeans
6.7.1
10,15
300,00
4800
0,0625
525
32,81
Gratuito
4800
0,00
53
Putty
Gratuito
4800
0,00
WinSCP
Gratuito
4800
0,00
MySQL
5.0.27
Gratuito
4800
0,00
Skype
Gratuito
4800
15
0,00
Licencia
chan_skype
45,92
4800
0,0096
15
0,14
Firefox 3.5
Gratuito
4800
0,00
Zoiper
Gratuito
4800
0,00
SUBTOTAL
32,95
TOTAL
43,10
Presupuesto
Concepto
Importe ()
1.107,23
123,65
43,10
1.273,98
127,40
15% Beneficio
191,10
SUBTOTAL
1.592,48
16%IVA
254,80
PRESUPUESTO
1.847,28
Por tanto, el presupuesto asciende a veintisiete mil seiscientos ochenta y siete con
cincuenta y nueve.
Estimando que los datos aportados en el siguiente presupuesto son suficientes, se
somete al proyecto a su aprobacin por los organismos oficiales correspondientes.
Firma: David Escauela Alonso
54
55
Captulo
Introduccin a VoIP
56
Sistemas abiertos dnde nos encontramos con los estndares abiertos basados
en SIP, H.323 o IAX.
Este sistema permite convivir con los sistemas tradicionales de comunicacin. Las
lneas telefnicas PSTN entrantes, pueden ser convertidas a VoIP, a travs de una
pasarela (Gateway) que permite recibir y hacer llamadas en la red telefnica normal.
equipos informticos con aplicaciones muy especficas. Aunque las reglas que
gobiernan la telefona (los estndares) son relativamente abiertas, no es el caso de los
equipos informticos que los implementan. Al contrario de los estndares, el
funcionamiento interno siempre se mantiene en secreto.
Historia de VoIP
1995 Inicio de la Voz sobre IP
o La VoIP empieza con pequeas aplicaciones gratuitas y de cdigo abierto
a raz de la posibilidad de enviar pequeos fragmentos de voz
codificados.
1997 Aparecen los primeros PBX software
o El protocolo H.323 se hace el dueo y seor de la VoIP ofreciendo voz
y video aunque con mala calidad debido al ancho de banda: limitado y
poco econmico.
1999 La revolucin de la banda ancha
o Netmeeting y CUSeeMe se afianzan como aplicaciones de voz y video
ms utilizadas hasta el momento.
o Aparece el protocolo SIP evolucin del arcaico H.323.
o Comienzo de Asterisk de la mano de Mark Spencer.
2001 La revolucin llega a la Voz sobre IP
o Asterisk comienza como un software abierto y con un gran nmero de
seguidores.
o Las empresas aun no se fan de este software ni de GNU/Linux y
continan utilizando software y hardware propietario.
2003 Lanzamiento de Skype
o El primer producto VoIP gratis de calidad se ha convertido en objeto de
culto de usuarios residenciales.
2005 Asterisk se afianza como smbolo de VoIP
o Asterisk gana ms y ms adeptos.
o La empresa de Mark Spencer, Linux Support Services, se convierte en
Digium especializada en la venta de hardware para Asterisk.
58
Caractersticas Principales
-
Se utiliza una nica red. Si dos empresas estn unidas a travs de Internet.
Por qu no aprovecharlo?
Ventajas de VoIP
Funcionales
o Provee movilidad a nuestros empleados. Permite a los usuarios conectar
su telfono en cualquier parte en la oficina. Los usuarios simplemente
cogen su telfono y lo conectan al puerto Ethernet ms cercano y
mantienen su nmero existente.
o Permite comunicacin unificada integrando otros servicios disponibles
en Internet como son video, mensajes instantneos, etc.
o Escalable. Podemos trasmitir ms de una llamada sobre la misma lnea
telefnica. La transmisin de VoIP hace ms fcil aumentar las lneas
telefnicas cuando se incorporan nuevos empleados.
De Gestin
o Mucho ms fcil de instalar y configurar que una central telefnica
propietaria.
o Nos facilita la administracin por Web de forma fcil e intuitiva, frente a
otros sistemas como por ejemplo centralita Siemens Hipath que
necesitan de un software especfico y nada intuitivo para ser
59
configurado.
o Mejor reporte.
Econmicas
o Tenemos voz y datos en una misma infraestructura. No hay necesidad de
cableado telefnico separado.
o Reduccin significativa de costes al aprovechar Internet.
o Proporciona servicios que normalmente son muy difciles y costosos de
implementar usando la red tradicional de voz PSTN. Funcionalidades que
normalmente son facturadas con cargo extra por las compaas
telefnicas, como identificacin de llamada, transferencia de llamadas,
remarcado automtico, conferencias,, son fciles de implementar y sin
coste alguno.
o El estndar SIP elimina telfonos propietarios y costosos.
o Llamadas entre sedes gratuitas.
Problemas
NAT: El cncer de la VoIP. Distintos tipos, no es fcilmente manejable.
QoS: Necesidad de ofrecer calidad de servicio, al ser la voz crtica en tiempo
real.
Latencia: Tiempo que tarda la voz en llegar al destino.
Jitter: Variacin de la latencia.
60
61
Transporte:
La mayora de los datos de una red usan el protocolo TCP en la capa de
transporte, mientras que en VoIP se utiliza el UDP.
El TCP es ms lento que el UDP. Utiliza ms tiempo en la entrega de
paquetes en el destino para asegurar que llegan correctamente. Pero al
tratarse de un sistema que funciona en tiempo real es ms importante la
velocidad de entrega de paquetes, que no la seguridad en que llegan
todos los paquetes. Por eso se usa el UDP.
Un Foreign Exchange Station (FXS) es lo que est situado al otro lado de una lnea
telefnica tradicional (la estacin). Un FXS enva el tono de marcado, la seal de
llamada que hace sonar los telfonos y los alimenta. En lneas analgicas, un FXS
alimenta al FXO. El FXS utiliza alrededor de 48 voltios DC para alimentar al telfono
durante la conversacin y hasta 80 voltios AC (20 Hz) cuando genera el tono de llamada
(ring).
Para operar con lneas analgicas, se necesitan tarjetas con interfaces FXO.
Para operar con telfonos analgicos o centralitas clsicas, se requieren interfaces FXS.
Una PBX que integra perifricos FXO y FXS puede conectarse a la RTB e incorporar
telfonos analgicos. Las lneas telefnicas que vienen del operador se tienen que
conectar a una interfaz FXO. Los telfonos se deben conectar a las interfaces FXS de la
centralita.
En resumen, dos reglas fciles que hay que recordar son:
1. Un FXS necesita estar conectado a un FXO (como una lnea telefnica
necesita estar conectada a un telfono) o viceversa.
2. Un FXS suministra energa (elemento activo) a un telfono FXO (elemento
pasivo).
Ejemplos de conexiones:
64
Cada vez que usas una lnea telefnica se intercambian un conjunto de seales. Las
seales sirven para ofrecer informacin del estado de la llamada al usuario. Algunas de
esas seales son el tono de marcado o el tono de lnea ocupada. Estas seales se
transmiten entre el FXS y el FXO haciendo uso de un protocolo conocido como
sealizacin.
Por desgracia, existen muchas maneras de generar este tipo de seales. Cada uno de
los mecanismos es conocido como mtodo de sealizacin. Los mtodos de
sealizacin son diferentes de un lugar a otro, as que debes conocer de antemano el
mtodo de sealizacin que se usa en tus lneas telefnicas. Dos de los mtodos de
sealizacin ms conocidos son el loop start y el ground start.
Si desconoces el mtodo de sealizacin que debes usar puedes empezar probando
con loop start. Una consecuencia de configurar tu PBX con un mtodo de
sealizacin equivocado es que la lnea telefnica se cuelga de manera inesperada.
Sealizacin digital
La Red Digital de Servicios Integrados (RDSI) utiliza, en principio, dos tipos de
capacidades de acceso.
o Acceso Bsico (2 canales de voz + 1 de sealizacin)
Adems del tipo de sealizacin, las interfaces RDSI pueden funcionar en modo NT
(Network Termination) o TE (Terminal Equipment).
o Modo TE: En este modo, la centralita se puede conectar con interfaces RDSI
(BRI o PRI) o con Centrales Digitales Tradicionales que tengan conexin RDSI de
forma esclava.
o Modo NT: En este modo la centralita telefnica puede conectarse con Centrales
Digitales Tradicionales que tengan conexin RDSI de forma Maestro o con
extensiones Digitales.
65
EndPoint : Son los usuarios finales que hacen uso de los servicios
proporcionados dentro de la zona H.323.
66
Conexin de Asterisk con un Operador IP (Sistema de Voz Ip) a travs del protocolo H.323
67
68
Ejemplo de los 2 roles que puede tomar Asterisk usando este protocolo.
Capacidades de SIP:
o Localizacin del usuario
o Disponibilidad del usuario: determinacin de la voluntad del receptor de la
llamada de participar en las comunicaciones.
o Capacidad del usuario: determinacin del medio y de sus parmetros.
o Gestin de la sesin: transferencia, terminacin de sesiones, modificacin de
los parmetros de la sesin desde el propio User Agent.
En el protocolo SIP el usuario es el dueo de su sesin.
Movilidad:
SIP permite implementar dos tipos de movilidad diferentes:
69
intermediario es capaz de indicar a las partes dnde se encuentran los telfonos. Este
servidor intermedio en SIP aprende la posicin de sus usuarios durante un proceso que
se conoce como registro.
El proceso de registro entre clientes y el servidor proxy. La sealizacin (SIP) y las
conversaciones de voz (RTP) viajan por caminos diferentes.
71
72
El proceso de NAT no es nada sencillo: varios tipos de NAT suponen varios tipos de
soluciones e infinidad de problemas.
No son problemas fciles de solucionar.
diferentes:
Servidor: Como Servidor, Asterisk admite registros de clientes IAX, pudiendo ser
estos clientes Hardware, Software u otros Asterisk.
Soportan una serie de codecs, el famoso G.729 casi siempre est entre ellos.
Se configuran desde los mens del propio telfono o por interfaz web:
Caractersticas Avanzadas :
76
Manos Libres
Conector auriculares/micrfono
Display LCD: Caller ID / Agenda
Autoprovisioning: Autoconfiguracin automtica de los parmetros de
configuracin desde un servidor remoto.
Hay todo tipo de terminales normales o inalmbricos en gamas baja, media y alta.
Algunos ejemplos:
Gama Alta:
Gama Media:
Gama Baja:
77
WiFi:
Micrfono Incorporado.
Entrada de lnea (Micrfono Externo).
Dispositivos de entrada de audio USB.
Dispositivos Bluetooth.
Caractersticas Principales:
Tipos de SoftPhones:
o Propietarios :
Protocolos estndar: SIP, H323, IAX/IAX2
Protocolos propios abiertos.
Protocolos propios cerrados.
78
o Libres :
Protocolos estndar.
Protocolos propios abiertos.
X-Lite
-
Configuracin:
Cuando se descarga el telfono no se preocupe por el mensaje de error que
aparece en la parte superior de la
pantalla. Login failed! Contact Network Admin.
79
Configuracin:
En Domain debe poner la
direccin IP del servidor
Asterisk.
En Username, Password y
en Caller ID Name se
deben poner los datos de
configuracin del archivo
sip.conf.
Ekiga
-
Configuracin:
80
Cubix
-
Diax
-
Kiax
-
Adaptadores IP
Los adaptadores IP son dispositivos (hardware) que permiten conectar un telefno
analgico a la red IP utilizando protocolos de VoIP.
Tipos de Adaptadores :
ATA (Analog Telephone Adapter) es un adaptador FXS, tiene un puerto RJ11
(phone jack) y un RJ45 (Ethernet jack).
Por un lado habla analgico con el telfono y por otro lado habla digital con
la red IP.
Caractersticas de ATA:
82
Gateways VoIP
Dispositivos que permiten interconectar la telefona tradicional con la VoIP.
Se integran con la red telefnica pblica con interfaces analgicos o enlaces digitales.
Los adaptadores tambin pueden ser considerados como gateways, a pequea escala.
Generalmente, los adaptadores que realizan funciones de routing/NAT IP, son
considerados gateways.
Caractersticas Principales:
Parmetros de VoIP
Calidad de Servicio
La calidad de servicio o Quality of Service (QoS) es la capacidad de la red para ofrecer
mejoras en el servicio de cierto tipo de trfico de red.
Para ofrecer una buena calidad en la conversacin, el ancho de banda que necesitan
los dos flujos de trfico se debe garantizar con independencia del estado del resto de
las conexiones (incluso si la conexin a Internet est altamente ocupada).
En el diseo de una red de voz IP debes intentar optimizar el ancho de banda,
controlar las fluctuaciones de la red (jitter), y minimizar la latencia.
Codecs
Para poder transmitir la voz sobre una red IP, necesitamos codificarla y para ello,
empleamos algoritmos de compresin/descompresin de audio, llamados codecs.
Segn el cdec que utilicemos ocupar ms o menos ancho de banda y esto influir
mucho en la calidad de los datos transmitidos.
Existen muchas formas de digitalizar audio y cada una de esas formas resulta en un
tipo de cdec.
En general puedes asumir que a mayor compresin vas a obtener mayor distorsin
(peor calidad).
Un cdec se considera mejor que otro cuando es capaz de ofrecer mejor calidad de voz
usando la misma cantidad de ancho de banda.
Los codecs ms habitualmente empleados son:
84
Latencia
Latencia es sinnimo de retraso, y mide el tiempo que tarda un paquete en viajar de
un punto a otro.
Para mejorar la calidad de las conversaciones de voz sobre IP es necesario reducir los
retrasos al mximo, dando la mxima prioridad al trfico de voz. Dar ms prioridad a
los paquetes de voz significa que se les deja saltarse la cola de salida y as ocupar una
mejor posicin que el resto de los paquetes que estn esperando para ser
transmitidos.
Jitter (Fluctuaciones de velocidad)
En VoIP, el jitter es la variacin del tiempo entre la llegada de distintos paquetes. Estas
variaciones son debidas a la congestin de la red, la falta de sincronizacin o los
cambios de enrutamiento del trfico.
En redes con grandes cambios de velocidad se puede usar un jitter buffer para
mejorar la calidad de la conversacin.
Un buffer es un espacio intermedio donde se almacenan los paquetes hasta su
procesamiento.
La idea bsica del jitter buffer es retrasar deliberadamente la reproduccin del
sonido para garantizar que los paquetes ms lentos hayan llegado. Los paquetes se
almacenan en el buffer, se reordenan si es necesario y se reproducen a una velocidad
constante. La calidad de voz mejora al precio de incrementar la latencia total.
Existen dos tipos de jitter buffers:
o Un buffer esttico est implementado como parte del equipo y configurado de
manera fija por el fabricante.
o El dinmico se configura usando un programa y lo puede cambiar el usuario.
85
Infraestructura de soporte:
o Redes inalmbricas con gran latencia y jitter.
o Redes en general que no han sido diseadas para priorizar servicios
de tiempo real.
Marco regulatorio:
o Servicio ilegal.
o Necesidad de licencias.
Recomendaciones
Infraestructura de soporte:
o Redes inalmbricas: Uso de la banda UNI 5.4 Ghz (IEEE 802.11a). Uso
de protocolos con TDMA en zonas urbanas (WiMAX).
o Incorporar QoS.
86
Captulo
Qu es Asterisk?
Asterisk es una centralita digital diseada en Software libre que integra las
funcionalidades de telefona clsica con nuevas capacidades derivadas de su flexible y
potente arquitectura.
Su nombre viene del smbolo asterisco (*) en ingls.
Asterisk se cre, originariamente, para funcionar sobre el sistema operativo
GNU/Linux. Y actualmente puede funcionar en toda una variedad de sistemas como
OpenBSD, FreeBSD, MacOSX, Windows, Solaris,, pero Linux sigue siendo el que ms
soporte presenta.
87
Asterisk permite conectividad en tiempo real entre las redes PSTN y redes VoIP.
Para poder utilizar telfonos convencionales en un servidor Linux o para conectar la
central a una lnea de telfono analgica se suele necesitar Hardware especial, como
adaptadores analgicos de telefona (ATAs) o tarjetas de telefona.
Como se ha comentado es una PBX hbrida (TDM y VoIP).
Por una parte apoya una amplia gama de protocolos TMD para el manejo y
transmisin de interfaces de telefona tradicional.
Por otra parte soporta y traduce distintos protocolos de sealizacin de VoIP como SIP,
IAX2, MGCP o H.323.
Qu NO es Asterisk?
Asterisk no es un proxy SIP. Aunque posea funcionalidades de estos, carece de la
mayor parte de la implementacin SIP necesaria.
Asterisk no es una solucin de MultiVideoConferencia. Al menos a corto plazo, no se
espera transcoding de video en tiempo real.
Asterisk no es un servidor de faxes. Puede interactuar con productos de terceros para
enviar y recibir faxes, pero no incluye esa funcionalidad de serie.
89
Por qu Asterisk?
Utilizando Asterisk en su entorno es posible olvidar las limitaciones tradicionales de las
centralitas telefnicas: no ms problemas de alcanzar el mximo de extensiones
posibles, dejar de pagar cantidades exorbitantes por mdulos propietarios para
ampliar la capacidad de la centralita.
Algunos de los motivos de la eleccin de Asterisk son:
-
Puede crecer sin lmite: un sistema Asterisk puede crecer con usted, con su
negocio. Desde un entorno pequeo es posible aumentar la capacidad y
posibilidades sin lmite. Se acab el cambiar de centralita cada pocos aos.
90
Econmico:
Asterisk es ms econmico principalmente por dos motivos, por qu utiliza
equipos estndar y est basado en cdigo abierto.
Los servidores y los telfonos usados son estndar, los producen multitud de
fabricantes, que compiten entre ellos en prestaciones y precio.
Robusto:
Asterisk se ejecuta sobre servidores Linux, sistema operativo de gran robustez y
estabilidad.
Flexible:
Asterisk se configura y adapta a la medida de cada organizacin como ninguna
otra centralita del mercado como se ha comentado.
91
Protege la inversin:
La eleccin de una centralita IP basada en Asterisk tiene una ventaja
importante ms, protege la inversin. La inversin en Software y equipos que
se realiza por parte de la empresa no depende de la continuidad que un
fabricante quiera dar al producto que ha comprado. Utilizando Asterisk la
empresa puede aprovechar de nuevo los servidores.
Ventajas Competitivas:
Historia de Asterisk
Mark Spencer empez en el mundo Linux con Slackware en 1994 (kernel versin 1.09).
Uno de los pocos en Auburn, Alabama por aquellos tiempos que conoca cualquier
cosa sobre Linux. Despus de una temporada con Adtran (un proveedor global de
equipos de telecomunicaciones) cre su propia compaa "Linux Support Services" con
el objetivo de dar soporte a usuarios de Linux.
Para ello necesitaba una centralita telefnica, pero ante la imposibilidad de adquirirla
dados sus elevados precios, decidi construir una con un PC bajo Linux, utilizando el
lenguaje C.
Este fue el principio del fenmeno mundialmente conocido como Asterisk, la
centralita telefnica construida por Mark, despus de su experiencia desarrollando
GAIM (ahora llamado Pidgin) entre otros proyectos de software libre.
entender lo que Mark y Jim haban hecho se ofreci a ayudarles. A partir de este punto
empezaron a ver un incremento en las ventas, y acabaron el ao con beneficios.
Despus de grandes ingresos durante largo tiempo Mark fue capaz de hacer crecer el
negoci sin recabar mucho en los beneficios.
Cuando Mark empez con Asterisk hizo una cosa muy inteligente. Cada desarrollador
que contribua en el cdigo debera firmar un acuerdo para que el Copyright se
asignara a Asterisk y el compromiso de que no hubiera encumbramientos gracias a
dicho cdigo. Esto le permiti sentirse confortable con su proyecto que era
completamente Open Source y le permita a su compaa re licenciar el cdigo a
vendedores como 3COM y NTT.
Digium tambin ha hecho las cosas bien al mantener la versin de la comunidad con la
funcionalidad completa y no crear una escisin entre ellos y los que les apoyan.
La primera release fue Asterisk 0.1 (Diciembre de 1999), y el tarball ocupaba tan slo
124.3KB, que una vez descomprimido venan a ser unos 506 KB en 96 archivos.
Para correr Asterisk necesitbamos bsicamente Linux y libaudiofile:
Esta primera release fue liberada en 1999 bajo licencia GPL2 pero tena clausulas
adicionales que indicaban que en todos los productos derivados deba constar el
nombre de Linux Support Services, LLC o Adtran Inc., tambin advertan sobre cdecs
cubiertos por patentes de Software, y la ms curiosa es que si emprendamos acciones
legales por infringir patentes en referencia a algn Software Open Source nuestro
derecho a usar o distribuir el Software se terminaba de inmediato.
94
De todos modos estas clausulas duraron bien poco, ya que en los primeros cambios
que se hicieron para la release 0.1.1 aparte de arreglar numerosos bugs se revis la
licencia que pas a ser GPL pura.
95
En la primera release, Libpri 0.1 Mark nos relataba que libpri era la implementacin en
C de la especificacin para primarios RDSI basado en la especificacin de Bellcore (12
de Mayo de 2001), por aquel entonces Asterisk pas a ofrecer soporte para conexiones
digitales:
96
97
Paralelamente a Asterisk fue lanzado Zaptel 1.0.0 (Setiembre 2004), tena soporte para
udev (kernel Linux 2.6), zttool tena como dependencia a libnewt, parte del software
tambin necesitaba la librera Zapata. Por aquel entonces existan problemas con la
directiva PROSLIC_POWERSAVE, donde el audio se cortaba despus de cuatro
segundos:
98
Libpri 1.0.0 (Septiembre 2004) traa algunas mejoras para Q.931 entre otros:
250.463
66,03 -792,30
2,63
25,08
8.919.128 $
Lenguaje
ANSI C
sh
cpp
perl
yacc
asm
tcl
PHP
Lneas de cdigo
232.514
7.550
5.815
2.259
1.508
642
113
62
Porcentaje
92,83%
3,01%
2,32%
0,90%
0,60%
0,26%
0,05%
0,02%
100
101
Realtime LDAP: Si bien Asterisk 1.4 tena herramientas y parches para dotar a
esta aplicacin de soporte LDAP para gestionar los usuarios y contraseas,
parece ser que en Asterisk 1.6 vendr de serie el soporte para Realtime en
LDAP. Este es un sistema de directorios que nos permitir mantener
perfectamente clasificado y ordenado cualquier tipo de datos
correspondientes a personas, recursos, empresas, etc., es un directorio
especialmente creado para este tipo de informacin y son muchos los sistemas
operativos y sus aplicaciones los que suelen utilizar este tipo de servicio de
forma transparente para el usuario. Actualmente estn corrigiendo muchos
bugs en el soporte LDAP en Asterisk relativos a este sistema para poder dotar a
Asterisk 1.6 de un control integro de usuarios mediante LDAP.
SIP bajo TCP: Este es otro de los aadidos que traer Asterisk 1.6 tras 3 aos
de pruebas (el bug comenz en 2005) y es sin duda una de las mejoras que, de
funcionar correctamente, podra convertirse en la STAR FEATURESde
Asterisk 1.6.
SIP bajo TLS: Otro de los grandes avances en cuanto a seguridad en el
protocolo SIP.
DAHDI en vez de Zaptel.
Mejorado el soporte NAT en el protocolo SIP.
Chan_Mobile (Bluetooth y mviles).
102
En la actualidad a pesar que Digium trabaja para estabilizar Asterisk 1.6 ,para
produccin la versin 1.4 es la ms estable y recomendable.
Funcionalidad de Asterisk
El sistema Asterisk incorpora muchsimas funcionalidades avanzadas que tendran un
elevado coste en sistemas tradicionales propietarios.
Funciones bsicas:
Funciones de llamada:
Reglas de salida (OutBound Rules): definen las rutas que tomar una llamada
saliente.
DiD (Direct In Dial): son reglas que definen dnde ir una llamada de un
determinado nmero telefnico.
103
Grupo de timbrado (Ring Group o Call Group): permite llamar al mismo tiempo
a todos los telfonos de un grupo. Los telfonos del grupo tambin pueden
consistir en nmeros telefnicos externos como telfonos mviles.
Colas (Queue): almacenes de llamadas entrantes. As, las personas que llaman
pueden esperar la respuesta de alguien en lugar de obtener una seal de
ocupado o ser forzadas a dejar un mensaje. Esta extensin tambin puede decir
a la persona que llama su lugar en la cola y el tiempo estimado de espera. Es
posible establecer prioridades de forma que ciertas personas no esperen tanto.
Espiar llamadas (Call snooping): permite escuchar una llamada, sin que la
persona que ha llamado se d cuenta.
Call Whisper: permite intervenir en una llamada de forma que la persona que
ha llamado no escucha nada.
104
Funciones avanzadas:
Sistema DISA. (mtodo por el cual una persona externa a la oficina puede
realizar llamadas a travs de la centralita).
105
Acciones a realizar segn horarios y fechas (horario laboral, das festivos, etc.).
Posibilidad de integracin con Google Calendar.
Modificacin de funciones:
En el caso de que se desee cambiar horarios o mensajes, aadir nuevas extensiones,
modificar los desvos, cambiar los buzones de correo para los mensajes de voz, o
cualquier otra funcionalidad, solamente habra que modificar los archivos de
configuracin (extensions.conf, sip.conf, features.conf, meetme.conf, manager.conf e
iax.conf) y hacer las pruebas necesarias.
Funcionalidad en servidores SIP:
Desde el punto de vista de la clasificacin funcional de servidores SIP, las
funcionalidades de Asterisk son varias:
Por una parte, hace funcin de Registro y Localizacin de Servidor, ya que
acepta peticiones de registro de los usuarios y suministra un servicio de
localizacin y traduccin de direcciones en el dominio que controla.
Por otro lado, tambin hace funcin de Proxy Server con estado (Stateful
Proxy), ya que conoce en todo momento el estado de la llamada y posee
funcionalidades que dependen del estado de la llamada como servicios de
respuesta automtica (Interactive Voice Response, IVR) que le permiten actuar
sobre el flujo RTP (Real Time Protocol), que es el que contiene la comunicacin
de voz.
106
Cabe recordar que en contraste con este tipo de Proxy nos encontramos los
Proxy server sin estado (Stateless Proxy) como SER (SIP Express Router), que no
tienen sentido ms que para redes completamente SIP, ya que solo conocen y
actan sobre los paquetes SIP que negocian las direcciones IP, los puertos a
utilizar, el cdec a utilizar,, pero no sobre el flujo RTP.
Arquitectura de Asterisk
Esquema:
Partes de Asterisk :
107
Arquitectura de Asterisk:
Est formada por cuatro APIs: API de Canales, de Aplicaciones, de Traduccin
de Codecs y de Formatos de Ficheros.
Un API es el conjunto de funciones y procedimientos que ofrece cierta
biblioteca para ser utilizado por otro Software como una capa de abstraccin.
Usando este sistema basado en APIs, la base del Asterisk no tiene porqu
preocuparse por detalles como, que llamada est entrando, que cdec se est
utilizando, etc.
108
Concepto de Canal:
Canal: Es una conexin que conduce una llamada entrante o saliente en el sistema
Asterisk. La conexin puede venir o salir hacia telefona tradicional analgica o
digital o VoIP.
Asterisk soporta una serie de canales, los ms importantes:
109
Dialplan de Asterisk
El Dialplan es realmente el corazn de cualquier sistema Asterisk, ya que define de la
configuracin de la centralita indicando el itinerario que sigue una llamada desde que
entra o sale del sistema hasta que llega a su punto final. En pocas palabras, consiste
en una lista de instrucciones o pasos que componen el comportamiento lgico de la
centralita.
A diferencia de los sistemas de telfono tradicionales, el Dialplan de Asterisk es
plenamente personalizable.
Para poder crear tu propio sistema de Asterisk, se necesita entender el Dialplan.
La Sintaxis del Dialplan
El Dialplan de Asterisk se especifica en el archivo de configuracin extensions.conf que
reside en el directorio /etc/asterisk/ pero su ubicacin puede variar dependiendo de la
instalacin de Asterisk.
Otros lugares comunes para incluir este archivo:
/usr/local /asterisk/etc/
/opt/asterisk/etc/
Puede encontrar los archivos de configuracin de ejemplo (extensions.conf.sample) en
el fichero configs de la carpeta /usr/src/asterisk/asterisk-1.4.26.1.
El Dialplan se compone de cuatro conceptos principales:
Contextos
Extensiones
Prioridades
Aplicaciones
Contextos
El Dialplan se divide en uno o varios contextos. Un contexto es una coleccin de
extensiones.
Los contextos existen para poder diferenciar el 'lugar' donde se encuentra una
llamada, por ejemplo para aplicar polticas de seguridad. Y es que Asterisk no se
comporta igual cuando llama un usuario y marca el 1 que cuando un usuario local
marca el 1. En general, es una forma de diferenciacin.
Una extensin definida en un contexto est completamente aislada de las extensiones
de cualquier otro contexto. Es posible una iteracin entre contextos a travs de la
palabra include.
110
Los contextos se caracterizan por colocar el nombre del contexto dentro de corchetes
([]).El nombre puede estar formado por las letras desde la A hasta la Z (maysculas y
minsculas), los nmeros del 0 al 9, el guion de subrayado (_) y el punto (.) (No use
espacios en los nombres de su contexto).La longitud mxima es de 79 caracteres (80
caracteres -1 de terminacin nula). Por ejemplo: [incoming]
Todas las instrucciones despus de la definicin de un contexto son parte de ese
contexto, hasta que el siguiente contexto se define.
Al comienzo del Dialplan, hay dos contextos especiales:
El [general] que contiene una lista de ajustes generales del Dialplan (que
probablemente no tenga que preocuparse por el).
El [globals], la seccin de "variables globales" por ahora es importante saber
que estos dos contextos son especiales.
Debemos evitar nombrar a nuestros contextos con esos nombres.
Cuando se define un canal, uno de los parmetros que se define en el canal es el
contexto. En otras palabras, el contexto es el punto donde las conexiones de canal van
a comenzar.
Otro uso importante de los contextos (quizs el ms importante) es para garantizar la
seguridad. Mediante el uso correcto de contextos, puede tener acceso a ciertas
caractersticas que no estn a disposicin de los dems.
Si su Dialplan no ha sido diseado cuidadosamente, puede permitir que otras personas
inadvertidamente utilicen fraudulentamente el sistema.
En /usr/src/asterisk/asterisk-1.4.26.1/doc/ se encuentra un archivo muy importante,
security.txt, que describe varios pasos que debes tomar para mantener su sistema
seguro de Asterisk.
Es de vital importancia que se lea y entienda este archivo.
Include
Asterisk tiene una caracterstica que nos permite utilizar las extensiones de un
contexto dentro de otro contexto, a travs de la directiva include.
Este es usado para controlar el acceso a diferentes secciones del Dialplan.
include => contexto
Cuando se incluyen otros contextos dentro de nuestro contexto actual, tenemos que
ser conscientes de l orden en el que estamos incluyndolos.
111
[empleados]
include => context1
Extensiones
En el mundo de las telecomunicaciones, la palabra extensin se refiere generalmente a
un nmero identificador que posibilita que un telfono particular suene en una lnea.
En Asterisk, una extensin es una lista de comandos a ejecutar.
Dentro de cada contexto, podemos definir muchas (o pocas) extensiones, segn sea
necesario.Se accede a las extensiones cuando:
[incoming]
exten => s, 1, aplicacion()
exten => s, 2, aplicacion()
exten => s, 3, aplicacion()
Manejo de las entradas no validas (i) y tiempos (t)
En primer lugar, necesitamos una extensin de las entradas no validas, cuando se pulsa
una tecla no valida, la llamada se enva a la extensin i.
En segundo lugar, necesitamos una extensin para manejar situaciones cuando la
persona que llama no pulsa a tiempo ,(el tiempo de espera predeterminado es de 10
segundos) la llamada se enva a la extensin t:
[incoming]
exten => 123,1, Answer()
exten => 123, 2, Background(entrar-ext-de-persona)
exten => 123, 3, WaitExten()
exten => i, 1, Playback(pbx-invalid)
exten => i, 2, Goto(incoming, 123,1)
exten => t, 1, Playback(vm-adios)
exten => t, 2, Hangup()
El uso de la i y la t hace que nuestro Dialplan sea un poco ms robusto y fcil de usar.
Prioridades
Cada extensin puede tener varias etapas, llamadas prioridades.
Cada prioridad esta numerada empezando con 1, y ejecuta una aplicacin especifica.
Por ejemplo, la prorroga Answer (de prioridad 1) y, a continuacion, Hangup (de
prioridad 2):
exten => 123,1, Answer()
exten => 123,2, Hangup ()
El punto clave a recordar aqu es que una extensin de Asterisk sigue las prioridades en
orden.
No numerar las prioridades
En emisiones mayores de Asterisk, la numeracin de las prioridades ha causado
muchos problemas.
Imagine tener una extensin que tenia 15 prioridades, y luego tener que aadir algo en
la 8. Todas las prioridades desde la posterior tendran que ser modificadas
manualmente.
Asterisk no maneja los pasos que faltan o renombra prioridades, y la depuracin de
estos tipos de errores es intil y frustrante. A partir de la versin 1.2, en Asterisk se
113
115
Variables de canal:
Una variable de canal es una variable que se asocia slo con una llamada en
particular.
Hay muchas variables predefinidas de canal disponibles para su uso en el
Dialplan, que se explican en el channelvariables.txt en usr/src/asterisk/asterisk1.4.26.1/doc.
Se definen a travs de la aplicacin SET() :
exten => 125,1, Set (MAGICNUMBER = 42)
Algunas de las variables ms importantes son:
-
Variables de entorno
Variables de entorno son una forma de acceder a variables de entorno Unix en
Asterisk. Estas son referenciadas mediante la aplicacin ENV() .
La sintaxis :
ENV {$ (var)}, donde var es la variable de entorno Unix que desee referenciar.
Las variables de entorno no son comnmente utilizadas en Dialplans de
Asterisk, pero estn disponibles si las necesitas.
Coincidencia de patrones
Los patrones permiten crear una extensin en su Dialplan que coincide con muchos
nmeros diferentes.
Sintaxis:
Los patrones siempre empiezan con un guion bajo (_).
Despus puede utilizar uno o ms de los siguientes caracteres:
X : Coincide con cualquier digito del 0 al 9.
116
117
En sip.conf tambin se definen tanto los clientes que se conectarn a Asterisk, como
los proveedores que se utilizaran para encaminar llamadas. Conceptualmente, se
distinguen:
user: Envia llamadas a Asterisk
peer: Recibe llamadas de Asterisk (proveedor).
friend: Recibe y Enva llamadas (usuario).
Un ejemplo bsico del archivo sip.conf:
[general]
context=default
port=5060 ; Puerto UDP en el que responder el Asterisk .
bindaddr=0.0.0.0 ; Si queremos especificar que Asterisk est en una IP (si un
; equipo tiene 3 IPs .por ej.) 0.0.0.0 vale para cualquiera.
srvlookup=yes ; Habilita servidor DNS SRV.
[david]
type=friend ;puede recibir y hacer llamadas.
secret=1234
qualify=yes ;Tiempo de latencia no superior a 2000 ms.
nat=no
host=dynamic ; El dispositivo se registra con una IP variante .
canreinvite=no ; Asterisk por defecto trata de redirigir.
context=internal ; El contexto que controla todo esto.
Igual que tenemos para el protocolo SIP el fichero sip.conf, tambin tenemos el fichero
iax.conf para el protocolo IAX2.
En este fichero se definen:
Variables generales de IAX.
Clientes IAX.
Servidores IAX.
Un ejemplo bsico del archivo iax.conf:
[general]
bindport = 4569 ;Puerto de IAX
bindaddr = 0.0.0.0
disallow=all ;Para permitir la utilizacion de codecs primero hay que
;desabilitar todos
allow=ulaw
allow=alaw
allow=gsm
[david]
type=friend
120
username=david
secret=1234
host=192.168.1.30
context=fromiax
qualify=yes
Verificacin de la configuracin con el CLI.
Para ver los usuarios sip e iax:
*CLI>sip show peers
*CLI>iax show peers
Buzones de voz (Voicemail)
Uno de los servicios ms interesantes de las PBX, Asterisk implementa un sistema de
buzones de voz bastante flexible.
Algunas caractersticas de este servicio:
-
Si aparece algn tipo de error significa que el modulo no ha sido compilado y tenemos
que volver a la compilacin de Asterisk.
Festival tiene como idioma predefinido el ingles. Para agregarle el idioma espaol hay
que seguir estos pasos:
cd /usr/share/festival/voices
wget http://www.voztovoice.org/tmp/festival-spanish.zip
yum install unzip
unzip festival-spanish.zip
Ahora modificamos el archivo de configuracin de festival
nano /usr/share/festival/festival.scm
aadimos estas lneas:
;(language__spanish)
(set! voice_default 'voice_el_diphone)
(define (tts_textasterisk string mode)
"(tts_textasterisk string mode)
apply tts to string. this function is specifically designed for
use in server mode so a single function call may synthesize the string.
this function name may be added to the server safe functions."
(let ((wholeutt (utt.synth (eval (list 'utterance 'text string)))))
(utt.wave.resample wholeutt 8000)
(utt.wave.rescale wholeutt 5)
(utt.send.wave.client wholeutt)))
[general]
host=localhost
port=1314
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
Bandwidth Ethernet(Kbps)
87.2 Kbps
G.729 (8 Kbps)
31.2 Kbps
21.9 Kbps
20.8 Kbps
55.2 Kbps
125
47.2 Kbps
31.5 Kbps
Los proveedores VoIP suelen trabajar en G.729, que consume muy poco ancho de
banda y no sera viable utilizar G.711 por ejemplo. El cdec G.729 no es libre, cada
licencia de G.729 para un canal es de 10$ pero hay una implementacin que puede
utilizarse con fines no lucrativos o educacionales, tanto de este cdec como del
G.723.1, en el siguiente enlace:
http://asterisk.hosting.lv/.
Para comprobar cuntos codecs soporta Asterisk :
*CLI> core show codecs audio
Para comprobar el coste de transcoding :
*CLI> core show translation
Asterisk no soporta por defecto la reproduccion de mp3, puedes activarla compilando
el paquete de addons y activando el soporte para MP3, o instalando el paquete de tu
distribucion.
Definir un idioma
Un idioma en Asterisk es un conjunto de sonidos colocados en el directorio de sonidos
de Asterisk (revisa /etc/asterisk/asterisk.conf). Se puede definir un lenguaje en
el archivo de configuracion del canal (por ejemplo sip.conf o iax.conf) o utilizando
Set(CHANNEL(language)=idioma) que cambia el idioma para la llamada en curso.
Esto permite que aplicaciones que reproducen sonidos, como Playback(), SayDigits() o
SayNumber() puedan hacerlo en el idioma del llamante.
Es bastante comun definir un idioma global (espaol , por ejemplo) y para ciertos
contextos, (entrantes-internacionales) ponerlo a un idioma ms apropiado como
ingles.
Castellanizar Asterisk
Por defecto las voces que incluye Asterisk estn en Ingls, el lenguaje universal, pero a
veces para la perfecta compresin de algunas de las diversas funcionalidades de
Asterisk, como el buzn de voz, es necesario tener las voces en Castellano.
Con estos sencillos pasos lo conseguiremos:
languageprefix = yes
http://www.voipnovatos.es/voces/
Descargamos en formato gsm, alaw, g729, ...
Editar rbol de directorios (todo cuelga de es)
Copiar a /var/lib/asterisk/sounds/es/
Grabacin
Para la grabacin no hace falta ninguna aplicacin especial, podramos coger cualquier
aplicacin de audio como Audacity o una grabadora de sonidos. No obstante, Asterisk
incorpora una serie de aplicaciones para la grabacin en el sistema telefnico. Esto
puede utilizarse para crear una macro que reproduzca un mensaje de bienvenida
personalizado por el usuario.
Aplicacin para la grabacin
La aplicacion Record() graba en un archivo la voz del llamante.
Sintaxis: Record(nombre.formato[,silencio,duracion_maxima,opciones])
Podemos utilizar %d en el nombre del fichero, as se utilizar un ndice autoincremental, para no sobrescribir grabaciones. El nombre del fichero queda guardado
en la variable ${RECORDED_FILE}.
exten => ext1,n,Record(sonido-asterisk%d.alaw)
Legalidad en la grabacin de llamadas
La legislacin actual en Espaa determina que:
127
usted reconocer que las macros son similares a las subrutinas en muchos lenguajes de
programacin modernos.
Definicin de macros
Los contextos de toda macro deben ser [macro-nombreMacro]. Esto les distingue de
los contextos ordinarios y facilita su llamada.
Los comandos de la macro se construyen casi igual a cualquier otra cosa en el Dialplan,
el nico factor limitante es que solo se usan en la extensin s.
Llamadas a macros
Para utilizar una macro en nuestro dialplan, utilizamos Macro() .
exten => 101,1, Macro (nombreMacro)
Macro () define varias variables especiales para nuestro uso. Son:
${MACRO_CONTEXT}: El contexto original en el que se llama a la macro.
${MACRO_EXTEN}: La extensin original en la que se llama a la macro.
${MACRO_PRIORITY}: La prioridad inicial en el que se llama a la macro.
${ARG n }: El ensimo argumento pasado a la macro .
Aplicando al ejemplo:
exten => 101,1, Macro (voicemail)
[macro-voicemail]
exten => s,1,Dial(${JOHN},10)
exten => s,n,VoiceMail(${MACRO_EXTEN}@default)
exten => s,n,Hangup()
Si todo el que llame va a realizar la llamada a travs del mismo canal y extensin que
define la variable JOHN ya hemos terminado sino es necesario el uso de argumentos.
Utilizacin de argumentos en macros
Vamos a pasar el canal como argumento:
exten => 101,1,Macro(voicemail,${JOHN})
[macro-voicemail]
exten => s,1,Dial(${ARG1},10)
exten => s,n,VoiceMail(${MACRO_EXTEN}@default)
exten => s,n,Hangup()
129
130
131
atxfer => *2
parkcall => *7
Para visualizar estos datos desde la linea de commandos CLI:
*CLI> show parkedcalls
Para ilustrar como usar el Call Parking, supongamos que David marca la extensin 103
para hablar con Pedro. Despus de un tiempo, Pedro transfiere la llamada a la
extensin 700 aparcando la llamada de David en la posicin 701. Pedro marca la
extensin 104 para llamar a John , y le dice que el que la llamada de David se
encuentra en la extensin 701. John entonces marca de extensin 701 y comienza a
hablar David.
CallPickup
CallPickup es la auto-transferencia de un telfono que esta sonando, en otras palabras,
el hecho de poder descolgar y responder a la llamada entrante a un telfono o grupo
de telfonos determinado desde un tercer telfono que no est sonando.
La configuracin para el 'Callpickup' se configura en features.conf.
En cada usuario de la centralita se definen estos dos parmetros:
Directed pickup: Permite que descolgar una llamada segn una extensin
especifica, suena el telefono y si descuelgas y marcas una secuencia ms tu
extensin se transfiere la llamada a tu extensin.
Ejemplo:
features.conf
[general]
.
pickupexten=*8
133
sip.conf
[100] ; 100 puede coger llamadas de 101 ya que pickupgroup abarca el
; callgroup de 101
callgroup=1
pickupgroup=1-3
[101] ;101 tambien puede coger llamadas de 100
.
callgroup=2
pickupgroup=1
Para ver estos datos desde el CLI:
*CLI>feature show
Manejo de Colas
Una llamada entrante puede ser enviada a una cola de llamadas, que ser distribuida
entre los agentes disponibles, miembros que contestan las llamadas.
Las colas se utilizan mucho en entornos tipo 'Call Center', con los canales tipo de
Agente (que hacen 'login en el sistema').
El sistema de colas se compone de:
-
Una estrategia sobre cmo manejar la cola y repartir las llamadas entre
los miembros.
134
el concepto de agente dinmico por si cualquier usuario quiere agregarse a una cola.
Para esto se utilizan las aplicaciones AddQueueMember() y RemoveQueueMember().
Los miembros son aquellos canales disponibles que estn activamente atendiendo la
cola. Pueden ser tanto agentes como tambin canales regulares (SIP/105).
Las llamadas son distribuidas entre los miembros de una cola siguiendo alguna de las
siguientes estrategias:
-
ringall: hace sonar todos los canales disponibles hasta que alguno
responda (configuracin por defecto).
rrmemory: igual que el round robin pero recuerda cual fue el ltimo
telfono que atendi una llamada y contina con el siguiente.
135
Registro de llamadas(CDR)
Asterisk permite llevar un control exhaustivo de todas las llamadas que se han
realizado o recibido. Este control es interesante para el propio control de facturacin,
137
Existen muchas aplicaciones que permite gestionar el CDR. Desarrollar una propia no
es realmente muy complejo. Para la aplicacin se utilizar Asternic CDR Reports de
Nicols Gudio.
Sala de conferencias
Una conferencia en Asterisk permite que varias personas estn incluidas en una misma
conversacin, Asterisk trabaja esto de una manera fcil y flexible mediante las
Aplicaciones MeetMe (conferencia,opciones,password) para crear conferencias y para
contar los participantes MeetMeCount(conferencia,variable_contador).
Algunas de las cosas que se pueden hacer en conferencias son:
138
El 95% del xito del diseo de los sistemas IVR de Asterisk se basa en trabajar junto al
cliente desarrollando casos de uso consistentes y probar (y rehacer) prototipos con
usuarios finales "reales" (a los cuales, incluidos nosotros mismos, les fastidia "hablar"
con una maquina). Si la transaccin promedio es corta y amigable, la ventaja frente al
acceso Web es que no todos tienen Internet en todo momento, aunque si un telfono.
El 5% restante es solo programacin.
Principales errores de "ergonoma":
140
Volver atrs.
Men principal.
Repetir.
Ayuda (si lo necesita la aplicacin).
Si existe una opcin de paso al operador, debe ser la ltima.
No hay que cortar nunca la comunicacin si el usuario se equivoca. Es
preciso dar caminos alternativos.
Ordenar las opciones de las ms especficas a las mas generales.
Preguntas Si/No:
Se usan para recuperar errores y para confirmar acciones.
141
Tienen que ser preguntas directas que induzcan a decir de forma natural
solo Si o No:
Incorrecto:
Por favor, confirme si su DNI es: XXXXXXXX
Correcto:
DNI: XXXXXXXX. Es correcto?
Debe ser una nica pregunta, no dos en una.
Si adems de la pregunta hay texto informativo, poner la pregunta al final
de la frase. Ejemplo: Para obtener ms informacin sobre las condiciones
del contrato, desea que pase la llamada a un agente?.
Discado automtico (Auto-dial out)
Los Call Files (.call) se utilizan para iniciar llamadas desde una aplicacin externa. Son
archivos de texto que al copiarse en el directorio /var/spool/asterisk/outgoing,
Asterisk notar su presencia e inmediatamente activar la extensin en la prioridad
especificada en el archivo .call. Generalmente, se combinan con el programador de
tareas de Linux: el cron.
Algunos ejemplos de uso son: soluciones de callback, despertador telefnico, anuncios
automticos.
La estructura de un Call File es la siguiente:
Channel: <channel> ; La extensin que queremos llamar.
Callerid: <callerid> ; El identificativo de llamada que queremos enviar a la
;extensin llamada.
WaitTime: <number> ; Cuantos segundos esperamos antes de considerar la
;llamada sin xito.
Maxretries: <number> ; Numero de veces que intentaremos llamar la
;extensin
RetryTime: <number> ; Cuantos segundos debe esperar asterisk para volver a
; marcar
Account: <account> ; El nombre de la cuenta con la cual queremos grabar
; esta llamada (CDR)
Una vez que la extensin llamada conteste tenemos que decirle a asterisk lo que tiene
que hacer. Esto tambin se define en el mismo archivo. Hay dos opciones:
142
extensions.conf
[mensajes-salida]
exten => 84,1,Playback(anuncio)
exten => 84,2,Playback(vm-goodbye)
exten => 84,3,Hangup
Sistema de logs
En el archivo /etc/asterisk/logger.conf se encuentra la configuracin del sistema de
logging de Asterisk.
Los distintos niveles de informacin a capturar en los logs son:
Verbose: mensajes generales sobre lo que est ocurriendo en el sistema (por
ejemplo si el valor de verbosity es mayor a 3, muestra las instrucciones del plan
de marcacin).
Debug: mensajes con informacin extendida, en general utilizados por
programadores.
Notice: notificaciones no crticas.
Warning: mensajes de alerta posiblemente crticos.
143
144
146
Hay tres archivos que necesitan ser configurados para DUNDi: dundi.conf,
extensions.conf, y iax.conf. El archivo dundi.conf controla la autentificacin de los
compaeros que nos permiten realizar bsquedas a travs de nuestro sistema. Dado
que es posible ejecutar varias
arias redes diferentes en la misma caja, es necesario definir
una seccin diferente para cada interlocutor, a continuacin, configurar las redes de
pares en el que se permiten realizar bsquedas. Adems, tenemos que definir los
compaeros que desea utilizar
utiliza para realizar bsquedas.
Configuracion del archivo dundi.conf:
[general]
; puerto mediante el cual se comunica el protocolo dundi.
dundi
port=4520
; identificador de mi Asterisk en la nube dundi, se recomienda sea la MAC de la
; tarjeta de red eth0.
eth0
entityid=00:0C:29:0C:AB:C2
; Tiempo que permanece en cache la ruta para ir a las extensiones aprendidas ;
; mediante dundi .
cachetime=5
; Mximo nmero de saltos que se harn buscando el destino dentro de la red ;
; dundi .
ttl=12
; si al preguntar a un par, el ACK tarda ms de 2 segundos, se cancela la
;bsqueda
bsqueda a travs de ese peer; es ;til cuando no est activo el peer o cuando
;hay
hay una conexin ;mala hacia el peer
autokill=yes
Publicacin de mis nmeros en la red dundi (contextos dundi):
Los contextos
tos en esta seccin se enlazan con los contextos de
extensions.conf.
147
Contextos dundi:
nombre_contexto => contexto_extensions,peso,proto,destino[,opciones]]
nombre_contexto: Nombre del contexto al que se hace referencia en una
peticin dundi.
contexto_extensions. Nombre del contexto en el extensions.conf, donde se
buscarn los nmeros que son solicitados en la nube dundi.
peso. Deber ser 0 en caso de que nuestro conmutador publique directamente
los nmeros, en caso contrario, deber tener el valor del nmero de saltos que
necesita para llevar al destino.
proto. Cualquiera de los protocolos IP (sip, iax,323) con el cual el peer remoto
se debe comunicar con nosotros.
destino. Es la informacin que se entrega al peer para que pueda llegar al
nmero que est marcando.
opciones. Pueden ser varios argumentos los cuales indican el comportamiento
que se tendr cuando no tengamos nosotros el nmero que se est solicitando.
-
[mappings]
priv =>dundi-priv-local,0,IAX2,priv:${SECRET}@162.248.175.91/${NUMBER}
,nounsolicited,nocomunsolicit,nopatial
Variables:
${SECRET}. Es reemplazado por el password almacenado en la base de datos.
${NUMBER}. Es el nmero solicitado.
${IPADDR}. Es la IP de nuestro Asterisk. No se recomienda su uso.
Generacin de llaves:
La autenticacin en una red dundi normalmente se hace mediante llave
pblica/privada:
cd /var/lib/asterisk/keys
astgenkey -n dundi_ext_44xx
148
149
; Contexto para llamadas salientes, aqu nos comunicamos con la red dundi,
pero ;agregamos 4 dgitos
[pares-dundi]
exten => _XXXX,1,Macro(dundi-lookup,${EXTEN})
[internos]
include => pares-dundi
Configuracion del archivo iax.conf:
[priv]
type=user
dbsecret=dundi/secret
context=internos
disallow=all
allow=ulaw
allow=alaw
allow=gsm
Aspectos avanzados de Asterisk:
Qu es AGI?
AGI (Asterisk Gateway Interface) nos permite ejecutar en Asterisk software de terceros
escrito en casi cualquier lenguaje (C, C#, Bourne Shell, PHP, Ruby, Python, Perl, Java).
Permite extender al infinito las posibilidades de Asterisk, juntando su potencia, con las
posibilidades que ofrece un lenguaje de programacin.
El programa debe cumplir:
Ser ejecutable (chmod 755 script.php).
Localizado por defecto en /var/lib/asterisk/agi-bin
Asociado con alguna extensin en el Dial Plan:
exten => 200,1,AGI(programa.php|argumentos)
El intercambio de informacin del script con Asterisk se realiza va los canales de
comunicacin: STDIN, STDOUT y STDERR.
ANSWER: atiende.
150
HANGUP: cuelga.
SAY [NUMBER | DIGITS | ALPHA |
| PRIORITY]: establece un nuevo contexto, extensin o prioridad luego de
finalizada la ejecucin de script.
VERBOSE: imprime un mensaje en el log.
WAIT FOR DIGIT: PHONETICS]: dice un nmero, dgito, caracter o una
cadena fonticamente.
SET [CONTEXT | EXTENSION espera que se presione un dgito.
[SET | GET] VARIABLE: asigna u obtiene el valor de una variable del plan de
marcacin.
Qu es AMI?
AMI (Asterisk Manager TCP/IP API) permite que programas cliente se conecten a
Asterisk mediante TCP/IP y sean capaces de ejecutar comandos y leer eventos, como
por ejemplo crear o monitorizar llamadas ,canales y colas. Por cada cosa que Asterisk
realiza se generan eventos que pueden ser ledos mediante una sesin de manager, y
el usuario puede tratarlos a su gusto.
Adems, AMI permite la ejecucin de comandos, lo que proporcina la posibilidad de
alterar el comportamiento de Asterisk desde un programa hecho a medida.
Funcionamiento:
Para trabajar con AMI es necesario tener un usuario definido en el fichero
manager.conf. A partir de aqu hay que establecer una comunicacin TCP/IP con el
servidor de Asterisk en el puerto 5038, y una vez conectado y autentificado, se puede
comenzar a leer los eventos o ejecutar comandos.
Las cuentas de usuario se configuran en /etc/asterisk/manager.conf.
Ejemplo:
[general]
enabled=yes
[admin]
secret = 1234
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
En este caso, "admin" es el nombre de usuario, la clave es "1234" y slo se permiten
conexiones para este usuario va localhost. El resto de las lneas establecen permisos
(r,w,r/w) para cada clase (system, call, etc.).
151
http://192.168.1.200:8088/asterisk/rawman?action=status
Qu es AEL2?
AEL2 (Asterisk Extension Language versin 2) tiene como objetivo proporcionar una
forma diferente de escribir el Dialplan ,una forma ms flexible.
Para utilizar AEL2, lo nico que tiene que hacer es tener cargado el modulo
pbx_ael2.so. Esto se har de forma automtica si se utiliza 'autoload = yes "en
/etc/asterisk/modules.conf. Cuando se carga el mdulo, se busca 'extensions.ael2' en
/etc/asterisk/. Algunos usuarios pueden mantienen el archivo extensions.conf para
conservar las caractersticas que se configuran en la seccin "general" de
extensions.conf.
Para volver a cargar extensions.ael2:
*CLI> ael2 reload
Hacer un debug de los Contextos:
*CLI> ael2 debug contexts
Hacer un debug de las macros:
*CLI> ael2 debug macros
Ejemplo:
context prueba {
1234 => {
Dial(SIP/${EXTEN},45);
switch (${DIALSTATUS}) {
case BUSY:
Voicemail(b200);
break;
case NOANSWER:
Voicemail(u200);
break;
default:
Noop(Algo raro ha pasado);
Hangup;
}
}
}
Qu es ARA?
Asterisk permite ser configurado en una Base de Datos, mediante Asterisk Realtime
Architecture.
Por ejemplo soporta MySQL, podiendo migrar a la base de datos lo siguiente:
Configuracin de dispositivos SIP e IAX.
Configuracin de buzones de voz.
Configuracin de colas.
El fichero a configurar es extconfig.conf. El fichero res_mysql.conf contiene la
configuracin de la base de datos.
ARA dispone de 2 tipos de Realtime: esttico y dinmico:
Esttico: La configuracin esta almacenada en la BD, pero Asterisk la carga al
arrancar como si fuera un fichero. Si se realiza algn cambio, es necesario hacer
un reload.
Dinmico: La configuracin esta almacenada en la BD y Asterisk realiza una
consulta a esa BD cada vez que necesita un dato. No es necesario hacer reload
si se han realizado cambios. Mucha carga para el servidor...
Todos los ficheros no soportan Realtime Dinmico como el fichero de colas
(queues.conf).
Ejemplo de configuracin (extconfig.conf):
[settings]
;;RealTime Dynamic
;file => driver,database,table
;sipusers => mysql,asterisk,dispositivos_sip
;iaxpeers => mysql,asterisk,dispositivos_iax
;voicemail => mysql,asterisk,buzones
;;RealTime Static
;file => driver,database,table
;sip.conf => mysql,asterisk,sip_conf
;extensions.conf => mysql,asterisk,extensions_conf
;iax.conf => mysql,asterisk,iax_conf
;queues.conf => mysql,asterisk,queues_conf
;voicemail.conf => mysql,asterisk,voicemail_conf
154
Administracin de Asterisk
La administracin de Asterisk se hace por interfaz web o por la lnea de comandos CLI
en modo administrador.
Interfaces web para Asterisk:
Asterisk GUI:
155
En /etc/asterisk/http.conf:
[general]
enabled=yes
enablestatic=yes
En /etc/asterisk/manager.conf:
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
;httptimeout = 60
bindaddr = 0.0.0.0
[admin]
secret = clave
read = system,call,log,verbose,command,agent,config
write = system,call,log,verbose,command,agent,config
Una vez guardados, comprobamos que todo ha ido bien:
make checkconfig
Con este ltimo comando (el make checkconfig) confirmaremos que la configuracin
es la correcta, sino nos dar algn mensaje de error. Tan solo deberemos asegurarnos
que est habilitado el manager en el puerto 5038 as como que existe un usuario valido
en el manager.conf y haber des comentado los parmetros en el archivo http.conf,
reiniciamos Asterisk y listo.
Arrancamos asterisk:
./asterisk -vvvgc
Ahora ya podemos ir a arrancar el script para finalizar la configuracin:
http://ipServidor:8088/asterisk/static/config/cfgbasic.html.
FreePBX:
FreePBX es una completa aplicacin web de PBX. Asterisk no viene con ninguna
Interfaz y no podemos conectar un telfono en ella y hacerlo funcionar sin editar
archivos de configuracin y crear un Dialplan para su uso.
FreePBX simplifica esto ofreciendo funcionalidades pre-programados accesibles a
156
travs de una interfaz web amigable que le permite tener un PBX completamente
funcional casi de inmediato sin necesidad de programacin.
FreePBX se basa en la pila LAMPA (Linux, Apache, MySQL, PHP y Asterisk). Es un
sistema modular, con clic para instalar plugins descargables a travs de Internet desde
el repositorio de mdulo en lnea.
Algunas de las caractersticas de FreePBX son:
-
157
158
159
qualify=yes
canreinvite=no
13.) Aadir extra codecs a la configuracion:
nano /etc/asterisk/sip_custom.conf
allow=gsm
allow=h261
allow=h263
allow=h263p
videosupport=yes
nano /etc/asterisk/iax_custom.conf
allow=gsm
allow=h261
allow=h263
allow=h263p
videosupport=yes
14.) Editar Configuracion de Correo:
nano /etc/amportal.conf
//Si la interface web de la PBX sera accedida desde internet o localmente.
AMPWEBADDRESS=pbx.DOMAIN.com o IpPublica o ip Privada
nano /etc/asterisk/vm_email.inc
remove "Visit http://AMPWEBADDRESS/cgi- bin/vmail.cgi?action=login
&mailbox=${VM_MAILBOX} to check your voicemail with a web browser.\n"
nano /etc/asterisk/vm_general.inc
serveremail=pbx@DOMAIN.com ;
// El email desde donde la notificacion pudo venir
fromstring=DOMAIN PBX ; // Nombre Real o email Sender
15.) Configuracion para Music on Hold:
chown asterisk /var/lib/php/session/
sed -i "s|upload_max_filesize = 2M|upload_max_filesize = 20M|"
/etc/php.ini
En /etc/httpd/conf.d/php.conf echo "LimitRequestBody 20000000"
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
16.) Iniciar FreePBX
160
161
Nivel de Verbose: Este valor indica la cantidad de mensajes que se recibirn sobre los
eventos generales del sistema. Cuanto ms alto, ms informacin sobre lo que sucede
en la centralita se recibir.
Este nivel, se puede establecer de varias formas:
Al arrancar el demonio:
sudo asterisk vvvvvv
Al conectarse al demonio:
sudo asterisk -rvvvvvvvv
Nivel de Debug: Este valor indica la cantidad de mensajes que se recibirn sobre los
eventos generales del sistema, pero utilizado normalmente para depurar problemas de
drivers o de aplicaciones.
Este nivel, se puede establecer de varias formas:
162
Al arrancar el demonio:
sudo asterisk dddd
Al conectarse al demonio:
sudo asterisk rdddd
*CLI>dialplan
dialplan save
A travs de la lnea de comandos CLI tambin podemos controlar por ejemplo los
usuarios SIP e IAX2, el estado de las tarjetas de telefona o los buzones de voz
existentes en la centralita Asterisk:
*CLI>sip
sip show peers
*CLI>iax2
iax2 show peers
*CLI>zap
zap show status
*CLI>voicemail
voicemail show users
Para obtener informacin detallada sobre todos los comandos del CLI basta con poner:
*CLI>help
Asterisk Appliance
Descripcin:
El Asterisk Appliance (AA50) es un PBX basado y dirigido
hacia las PyMES (2-50
50 usuarios), oficinas remotas de
grandes organizaciones (2--50 usuarios por sitio), y los
proveedores de servicios gestionados para la premisa
CPE con las soluciones basadas en SIP o IAX trunking.
El AA50 tambin ofrece una solucin hbrida alternativa (una combinacin de las
aplicaciones de VoIP usando legado de equipo de telecomunicaciones) para los clientes
empresariales que todava no estn preparados para migrar a una solucin de VoIP.
El Asterisk Appliance 50 tiene las caractersticas de la licencia comercial Asterisk
Aste
Business Edition , as como de la Digium AsteriskGUI 1.0 desarrollados.
El AA50 est disponible en las siguientes configuraciones: Slo VoIP (S800i), ocho FXO
(S808B), y cuatro FXS y cuatro FXO (S844B).
Caractersticas:
164
-Servidor
Servidor Asterisk completo con
con AsteriskGUI.
- Asterisk Business Edition con licencia comercial.
-Built-in
in Router Ideal para pequeas oficinas.
oficinas.
-Hasta
Hasta ocho puertos analgicos.
-Apoyo
Apoyo a una combinacin de mdulos FXO y FXS.
-1GB
1GB Compact Flash Card .
-Hardware
Hardware base de Cancelacin de eco.
-8
8 MB Onboard Flash.
-64
64 MB de RAM Onboard.
-5
5 Puertos Ethernet (4 LAN, 1 WAN)
Beneficios:
Software Digium
Digium ofrece Asterisk Business Edition, una versin
perfeccionada de la versin de fuente abierta Asterisk PBX,
para el sistema operativo Linux. Digium Partner tambin
ofrece productos que se integran con Asterisk Business
Edition y de fuente abierta Asterisk.
Descripcin:
Por qu Asterisk Business Edition?
Asterisk es una completa plataforma de telecomunicaciones y representa una muy
valiosa pieza de software por una serie de razones:
-
165
Asterisk Business Edition incluye soporte rPath distribucin de Linux con una mejor
instalacin, un manual tcnico Asterisk, y una gua rpida; hace que Asterisk sea an
ms fcil de instalar, configurar y utilizar.
Para mejorar la interactividad del cliente con un Asterisk PBX, Asterisk Business Edition
se integra con el reconocimiento LumenVox Engine y Cepstral Texto-a-Habla. Una
versin de prueba de la Cepstral producto est incluido, y un puerto libre de Lumenvox
Lite tambin est disponible la solicitud a Asterisk Business Edition clientes. La compra
de una licencia es necesaria para activar funciones adicionales de estos productos.
Rendimiento, interoperabilidad y fiabilidad
El programa de pruebas de Digium asegura la fiabilidad, el rendimiento y la
interoperabilidad de Asterisk Business Edition con los principales equipos, software y
protocolos. Digium hardware tarjetas se realizarn las pruebas de la total
compatibilidad con Asterisk Business Edition, como son varios modelos de seleccionar
los servidores, VoIP, y los dispositivos TDM. Todas las principales funciones de
software en Asterisk Business Edition son testeadas para la funcionalidad y la
fiabilidad. Banco de pruebas de sistemas tambin son sometidos a extremas
condiciones de estrs Empirix utilizando equipos de prueba para simular cientos de
miles de llamadas en el mundo real con diversas combinaciones y configuraciones.
Como resultado, los clientes pueden confiar en su probada combinacin de Asterisk
Digium software y hardware que trabajan juntos para proporcionar una caracteristicarica VoIP PBX o sistema.
Caractersticas:
-Soporte de Asterisk Bussiness Ed.
-AbsoluteTimeout
-AddQueueMember
-ADSIprog
-AgentCallbackLogin
-AgentLogin
-AgentMonitorOutgoing
-AGI
-Answer
-AppendCDRUserField
-Authenticate
-Background
-BackgroundDetect
-Busy
-ChangeMonitor
-ChanIsAvail
-ChanSpy
-CheckGroup
-Congestion
-ControlPlayback
-Cut
-Hangup
-HasNewVoicemail
-HasVoicemail
-IAX2Provision
-ImportVar
-LookupBlacklist
-LookupCIDName
-Macro
-MacroExit
-MacroIf
-MailboxExists
-Math
-MD5
-MD5Check
-MeetMe
-MeetMeAdmin
-MeetMeCount
-Milliwatt
-Monitor
-MP3Player
-MusicOnHold
-SayUnixTime
-SendDTMF
-SetAccount
-SetAMAFlags
-SetCallerID
-SetCallerPres
-SetCDRUserField
-SetCIDName
-SetCIDNum
-SetGlobalVar
-SetGroup
-SetLanguage
-SetMusicOnHold
-SetRDNIS
-SetVar
-SIPAddHeader
-SIPDtmfMode
-SIPGetHeader
-SoftHangup
-StartMusicOnHold
-StopMonitor
166
-DateTime
-DBDel
-DBdeltree
-DBGet
-DBPut
-Dial
-DigitTimeout
-Directory
-DISA
-DumpChan
-DUNDiLookup
-Echo
-Endwhile
-EnumLookup
-Eval
-Exec
-ExecIf
-ExecIfTime
-Flash
-ForkCDR
-GetCPEID
-GetGroupCount
-GetGroupMatchCount
-Goto
-GotoIf
-GotoIfTime
-NoCDR
-NoOp
-Park
-ParkAndAnnounce
-ParkedCall
-PauseQueueMember
-Playback
-PlayTones
-Prefix
-PrivacyManager
-Progress
-Queue
-Random
-Read
-ReadFile
-RealTime
-RealTimeUpdate
-RemoveQueueMember
-RetryDial
-ResetCDR
-ResponseTimeout
-Ringing
-SayAlpha
-SayDigits
-SayNumber
-SayPhonetic
-StopMusicOnHold
-StopPlayTones
-StripLSD
-StripMSD
-Suffix
-System
-TestClient
-TestServer
-Transfer
-TryServer
-TXTCIDName
-UnpauseQueueMember
-UserEvent
-Verbose
-VMAuthenticate
-VoiceMail
-VoiceMailMain
-Wait
-WaitExten
-WaitForRing
-WaitForSilence
-WaitMusicOnHold
-While
-Zapteller
-ZapBarge
-ZapScan
Beneficios:
Control
167
Personalizacin
De la misma forma que los servidores web como Apache permitir a los
usuarios desplegar contenido dinmico, como la informacin de la cuenta, la
pelcula muestra los tiempos, etc, en la web, Asterisk permite desplegar esos
contenidos dinmicos a travs del telfono, con la misma facilidad como CGI.
169
VoIP Gateway
Skype Gateway
IP PBX
Call Center ACD
Conferencia de
Puente
Servidor IVR
Sistema de buzn de voz
Call Recorder
Servidor de fax
Speech Server
170
Actualidad:
El 1 de Abril Digium public la versin estable de AsteriskNOW 1.5.0.
Digium public su primera beta de esta versin en Octubre de 2008 y
ya iba siendo hora de que lo actualizaran. Los principales cambios:
171
Asterisk
Apache
MySQL
SugarCRM
ARI
FreePBX
Principales caractersticas
Trixbox es una completsima y poderosa plataforma. Los productos que incluye son:
TrixBox dashboard
Asterisk (tm) Open Source PBX
FreePBX herramienta web de administracin
SugarCRM
Munin (en paquete administrador)
HUDLite server/admin (en paquete administrador)
IVRGraph (en paquete administrador)
phpMyAdmin (en paquete administrador)
Webmin (en paquete administrador)
ADPCM
G.711 (A-Law & -Law)
G.722
G.723.1 (pass through)
G.726
G.729 (through purchase of a commercial license)
GSM
iLBC
172
Versiones de TrixBox:
Trixbox posee dos tipos de versiones:
1) TrixBox CE (Community Edition)
Comenz en el ao 2004 como un proyecto popular PBX denominado
Asterisk@Home. Desde ese momento se convirti en la distribucin ms
popular, con ms de 65.000 descargas al mes. Dicha versin se caracteriza por
dos pilares importantes: su flexibilidad para satisfacer las necesidades de los
clientes y, sobre todo, por ser gratuita.
Por qu utilizar TrixBox CE?
Como se acaba de comentar TrixBox CE es una versin muy flexible, que no solo
permite configurar funciones y mdulos parametrizables para las necesidades
de cada cliente, sino que tambin es posible acudir a la comunidad de TrixBox
para ayudar o ser ayudado. Esta es una de las ms grandes y ms activas del
mundo y sus miembros trabajan entre ellos da a da con el fin de responder
consultas, resolver problemas, fallos y en seguir desarrollando la herramienta.
Quin utiliza TrixBox CE?
Empresas de todo el mundo, desde aquellas que posen muy pocas estaciones
de trabajo, hasta medianas compaas que poseen cientos de empleados.
2) TrixBox Pro (Versin comercial de pago)
Es una solucin denominada "hibrid-hosted", que significa que el cliente puede
realizar una monitorizacin 24 horas al da los 7 das de la semana, administrar la
central desde cualquier lugar y recibir actualizaciones del software de manera
automtica. Trixbox Pro es una versin empresarial que se ejecuta sobre
tecnologas PBXtra, comercializada desde el 2004 permitiendo enviar/recibir ms
de 120 millones de llamadas por da. La familia trixbox Pro posee 3 versiones:
173
Caractersticas y beneficios:
1. Gratis y flexible:
Las 3 versiones poseen las siguientes caractersticas:
174
Elastix
Elastix es un software aplicativo que integra las mejores herramientas disponibles para
PBXs basados en Asterisk en una interfaz simple y fcil de usar. Adems aade su
propio conjunto de utilidades y permite la creacin de mdulos de terceros para hacer
de este el mejor paquete de software disponible para la telefona de cdigo abierto.
Elastix implementa gran parte de su funcionalidad sobre 4 programas de software muy
importantes como son Asterisk, Hylafax, Openfire y Postfix. Estos brindan las funciones
de PBX, Fax, Mensajera Instantnea y Correo electrnico respectivamente.
La meta de Elastix son la confiabilidad, modularidad y fcil uso. Estas caractersticas
aadidas a la robustez para reportar hacen de l, la mejor opcin para implementar un
PBX basado en Asterisk.
176
Caractersticas:
Es difcil hacer una lista con todas las caractersticas de Elastix en un simple listado,
pero las ms importantes son:
VoIP PBX:
Fax:
General:
Email:
Colaboracin:
Extras:
Centro de llamadas:
Mensajera instantnea:
OpenVox
Digium
Sangoma
Rhino Equipment
Xorcom
Yeastar
Polycom
Atcom
Aastra
Linksys
Snom
Cisco
Nokia
UTstarcom
181
182
183
Solucin Uno: Ampliacin de la PBX con los mdulos apropiados, siempre que
ese modelo no se encuentre descatalogado por el fabricante, asumiendo el
elevado coste de este tipo de hardware y exponindonos a la misma situacin
en crecimientos futuros.
Solucin Dos: Compra de nueva PBX, con mayores prestaciones y mdulo de
VoIP para acercar la empresa a la nueva tecnologa. Lo que supone costes
elevadsimos, dependencia del fabricante y poca flexibilidad en las aplicaciones
disponibles.
Solucin Asterisk: Instalacin de una centralita Asterisk que aprovechando la
PBX antigua, ofrece nuevas extensiones analgicas y/o digitales con hardware
de menor coste. Pero que, sobretodo, ofrece un nmero mucho mayor de
extensiones VoIP sin hardware adicional, y con gran escalabilidad para
prximas ampliaciones.
184
185
Sistema Distribuido
Cada delegacin tiene su propia centralita Asterisk conectada a la red WAN de la
empresa (A travs de internet o lneas dedicadas) y a la red telefnica.
Entre los Asterisk, a travs del protocolo IAX (Inter-Asterisk eXchange) intercambian
informacin de rutado, permitiendo una gestin del sistema de telefona de la
compaa y un rutado inteligente de llamadas.
La revolucin Asterisk
Cambio en el concepto de PBX
Probablemente lo ms importante de Asterisk es que no es un sistema de telefona en
caja negra. Es una plataforma de comunicaciones basada en un servidor informtico.
Esto no slo cambia la manera de concebir los sistemas de telefona, sino que adems
presenta una serie de ventajas sorprendentes.
Flexibilidad y Customizacin
Efectivamente una instalacin Asterisk puede ser diseada, configurada,
conectada e instalada de diferentes maneras, por lo que se convierte en una
solucin universal para todas las necesidades.
186
Escalabilidad
Asterisk es una solucin muy buena de PBX para una pequea oficina con 2 o 3
extensiones internas y 1 lnea saliente, pero tambin funciona perfectamente
para una plataforma de comunicaciones de una empresa con 900 telfonos IP,
centenares de llamadas simultneas y varios primarios RDSI.
Para Asterisk el tamao no importa. Sin ningn coste aadido incluso la
instalacin ms pequea puede ofrecer las caractersticas ms avanzadas de
telefona como IVR, buzn de voz, conferencias, servicio hasta ahora reservado
a las grandes empresas.
Es importante recordar que Asterisk puede crecer de forma lineal segn sus
necesidades. Necesita otro telfono en su oficina? Slo debe comprar el
telfono; no deber modificar las licencias de hardware o software ni justificar
gasto alguno ante el Departamento de Finanzas.
Integracin
Asterisk puede integrarse con otros sistemas TI (Tecnologas de Informacin) en
la organizacin empresarial, aportando as un valor aadido a los procesos de
negocio nuevos y/o mejorados.
A continuacin presentamos una serie de ejemplos que ilustran el valor
aadido que representa para una empresa integrar las telecomunicaciones y
otros sistemas TI.
187
La complejidad Asterisk
Los expertos resaltan que en cualquier Software sea libre o cerrado sus ventajas y
riesgos estn directamente relacionados con su uso adecuado. Y recuerdan que
Asterisk es un sistema complejo, aunque sea una solucin avanzada basada en
software abierto.
Es necesario apoyarse en un equipo tcnico o empresas externas que conozcan bien
Asterisk para que su implantacin y ciclo de vida sea plenamente satisfactorio.
188
Y el futuro?
Asterisk es un software abierto y como tal su evolucin es posible gracias a una
comunidad de usuarios y empresas que comparten su cdigo y experiencias a travs de
Internet. Los Call Centers son los primeros beneficiados de una herramienta como
Asterisk ya que para ellos el PBX es un componente imprescindible para prestar sus
servicios .Igualmente las empresas que pueden beneficiarse de Asterisk no solo para
reducir costes sino tambin para crear soluciones ms sostenibles para diferentes tipos
de negocios, seala Ivn Sixto, CEO Business Development manager de I6NET.
Sobre el futuro de Asterisk podra trazarse un paralelismo a la situacin que
experimenta Linux en el mercado de los sistemas operativos. No se convertir en un
monopolio, pero ser un rival totalmente viable en ambos campos. Especialmente en
tiempos de recortes de costes como los que se avecinan, aunado con un cambio en la
tecnologa (Voz IP) tendr una oportunidad nica de sustituir a soluciones existentes,
seala Eduardo Malpica, responsable de Consultora Preventa de Altitude Software
Espaa.
Conclusiones
La adopcin de una centralita VoIP no debera ser una opcin para aquellas personas o
entidades que hayan llegado a la conclusin de que necesitan una centralita, sino que
debera verse como algo inevitable.
Los grandes operadores siguen cobrando precios desorbitados por un servicio que,
desde la aparicin de Internet y la interconexin de grandes redes, ha perdido su razn
de ser: la transmisin de voz.
Asterisk est revolucionando el mundo de la telefona, nunca existi una herramienta
tan completa, verstil, extensible y flexible en la industria de las comunicaciones de
voz, y es que tiene una potencia y escalabilidad que es inalcanzable, en relacin
prestaciones-precio, para ninguna centralita convencional.
Adems gracias a que es libre, en licencia y en cdigo, el nico lmite que existe para
los servicios que podemos ofrecer, es nuestra imaginacin.
Una vez ms se demuestra que el paradigma Open Source funciona, y funciona bien,
no existen productos comerciales que superen en calidad y caractersticas a otros
proyectos como son Linux, Apache o Mozilla, por mencionar unos cuantos.
Asterisk es en pocas palabras, el futuro de la telefona.
189
Captulo
Pruebas realizadas
Iniciacin en Linux
Como todo iniciado en el mundo Linux, lo primero en lo que me centre fue en la
eleccin de la distribucin correcta para tener un aprendizaje lo ms rpido posible.
Tras mirar lo que me ofreca cada una de las siguientes distribuciones, decid instalar
Kubuntu 9.04.
190
191
192
193
Arranque de Apache
Iniciar el servicio
service httod start
chkconfig httpd on
Parar el servicio
service httpd stop
Reiniciar el servicio
service httpd restart
DHCP discover
DHCP offer
DHCP request
DHCP ACK
194
Modos en DHCP
Existen 3 modos en DHCP para poder asignar direcciones IP a otros equipos:
Instalacin
yum install y dhcpd
Configuracin
El fichero de configuracin est en /etc/ y se denomina dhcpd.conf.
La configuracin es la siguiente:
; Esta opcin especifica si el servidor de DHCP debe intentar actualizar el servidor de DNS
ddns-update-style interim;
ignore client-updates;
;Segmento red y submascara de red
subnet 192.168.1.0 netmask 255.255.255.0 {
;Definimos la gateway y la submascara de red
option routers
option subnet-mask
192.168.1.3;
255.255.255.0;
195
lease 192.168.1.203 {
starts 2 2009/09/22 09:56:15;
ends 3 2009/09/23 09:56:15;
binding state active;
next binding state free;
hardware ethernet 00:0e:08:da:c2:3c;
uid "\001\000\016\010\332\302<";
client-hostname "SipuraSPA";
}
196
Utiliza UDP (en el puerto 69) como protocolo de transporte (a diferencia del
FTP que utiliza el puerto 21 TCP).
No puede listar el contenido de los directorios.
No existen mecanismos de autenticacin o cifrado.
Se utiliza para leer o escribir archivos de un servidor remoto.
Soporta tres modos diferentes de transferencia, "netascii", "octet" y "mail", de
los que los dos primeros corresponden a los modos "ascii" e "imagen" (binario)
del protocolo FTP.
= dgram
= udp
= yes
= root
= /usr/sbin/in.tftpd
= /root/tftpboot
= 11
= 100 2
= IPv4
Parar el servicio
service xinetd stop
197
Reiniciar el servicio
service xinetd restart
Parar el servicio
service mysqld stop
Reiniciar el servicio
service mysqld restart
phpMyAdmin
phpMyAdmin es una herramienta escrita en PHP con la intencin de manejar la
administracin de MySQL a travs de pginas web, utilizando Internet.
198
Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y modificar tablas,
borrar, editar y aadir campos, ejecutar cualquier sentencia SQL, administrar claves en
campos, administrar privilegios, exportar datos en varios formatos y est disponible en
50 idiomas. Se encuentra disponible bajo la licencia GPL.
Instalacin php
yum install y php*
Instalacin phpMyAdmin
cd /var/www/html
wget c http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin-3.2.4-rc1-alllanguages.tar.gz
tar xvfz phpMyAdmin-3.2.4-rc1-all-languages.tar.gz
mv phpMyAdmin-3.2.4-rc1-all-languages.tar.gz phpmyadmin
cd phpmyadmin
cp config.sample.inc.php config.inc.php
nano config.inc.php
Sustituir $cfg['Servers'][$i]['auth_type'] = cookies por :
$cfg['Servers'][$i]['auth_type'] = http;
service httpd restart
Acceso a phpmyadmin
http://IP del servidor/phpmyadmin/
199
Get Request: Una peticin del Administrador al Agente para que enve los
valores contenidos en el MIB (base de datos).
Get Next Request: Una peticin del Administrador al Agente para que enve los
valores contenidos en el MIB referente al objeto siguiente al especificado
anteriormente.
Get Response: La respuesta del Agente a la peticin de informacin lanzada
por el Administrador.
Set Request: Una peticin del Administrador al Agente para que cambie el
valor contenido en el MIB referente a un determinado objeto.
Trap: Un mensaje espontneo enviado por el Agente al Administrador, al
detectar una condicin predeterminada, como es la conexin/desconexin de
una estacin o una alarma.
Instalacin de SNMP
Instalar NETSNMP y otros paquetes:
# perl -MCPAN -e shell
/etc/perl/CPAN/Config.pm inicialize.
CPAN is the world-wide archive of perl resources. It consists of about 100 sites that all replicate
the same contents all around the globe. Many countries have at least one CPAN site already.
The resources found on CPAN are easily accessible with the CPAN.pm module. If you want to use
CPAN.pm, you have to configure it properly.
If you do not want to enter a dialog now, you can answer 'no' to this question and I'll try to auto
configure. (Note: you can revisit this dialog anytime later by typing 'o conf init' at the cpan
prompt.)
Are you ready for manual configuration? [yes] no
cpan> install Net::SNMP
Checking if your kit is complete...
Looks good Warning:
prerequisite Crypt::DES 2.03 not found.
Warning: prerequisite Digest::HMAC 1.00 not found.
Warning: prerequisite Digest::SHA1 1.02 not found.
Writing Makefile for Net::SNMP ---Unsatisfied dependencies detected during [D/DT/DTOWN/Net-SNMP-5.2.0.tar.gz] ----Digest::HMAC
Crypt::DES
Digest::SHA1
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] Enter
200
cpan>exit
201
Nos aparecer una pantalla negra solicitando que nos loguemos Login as
Ejemplo de Login como Root.
202
Instalacin de Asterisk:
Asterisk 1.4.xx (de 1.4.0 a 1.4.21)
1.) El primer paso es descargar los mdulos necesarios: zaptel, libpri,
asterisk y asterisk-addons desde los repositorios pblicos de Digium y
guardarlos en nuestro sistema( /usr/src/) :
cd /usr/src/
mkdir asterisk
203
cd asterisk
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
2.) Ahora debemos averiguar la versin exacta de nuestro kernel con el comando
uname a, deberamos ver algo como:
[root@asterisk~]# uname -a
Linux asterisk.asteriskclub.org 2.6.18-8.el5 #1 SMP Thu Mar 15 19:57:35 EDT 2007 i686
i686 i386 GNU/Linux
3.) Luego verificamos si tenemos instaladas las fuentes del kernel, para ello
utilizamos el comando rpm -q kernel-devel:
5.) Un paso ms antes de empezar con la instalacin, CentOS no instala las fuentes
del kernel en el directorio /usr/src/linux como est escrito en los Makefile de
Zaptel y Astersik, para ello nos vamos a /usr/src/ y creamos un link llamado
linux hacia el directorio con las fuentes del kernel el cual est ubicado en
/usr/src/kernels/mi_version_del_kernel (aqu utilizamos la informacin
obtenida del paso 2) estos son los resultados que esperamos:
204
total 28
drwxr-xr-x 2 root root 4096 jun 13 08:43 asterisk
drwxr-xr-x 3 root root 4096 jun 12 13:17 kernels
lrwxrwxrwx 1 root root 26 jun 13 09:12 linux -> kernels/2.6.18-8.el5-i686/
drwxr-xr-x 7 root root 4096 jun 12 13:34 redhat
6.) Listo, ahora s, nos posicionamos en la carpeta donde bajamos los paquetes
(/usr/src/), los desempaquetamos y descomprimimos, as:
cd /usr/src/asterisk
tar -vxzf libpri-current tar.gz
tar -vxzf zaptel-current.tar.gz
tar -vxzf asterisk-current.tar.gz
tar -vxzf asterisk-addons-current.tar.gz
cd libpri-1.4.0
y ejecutamos:
make clean
make
make install
cd ../zaptel-1.4.2.1
y ejecutamos:
make clean
make
make install
make config (para hacer que el modulo zaptel se carge al tiempo de boot)
cd ../asterisk-1.4.4
205
y ejecutamos:
make clean
./configure
make
make install
make samples (para crear archivos de ejemplo)
make config
7.) Listo !! si todo sali bien deberamos poder cargar Asterisk con:
8.) Opcionalmente podemos ponerle a nuestra central soporte para cdec g729,
descargando una version OpenSource.
cd /var/lib/asterisk/modules
wget http://asterisk.hosting.lv/bin/codec_g729-ast14-gcc4-glibcpentium4.so
mv codec_g729-ast14-gcc4-glibc-pentium4.so codec_g729.so
chmod +x codec_g729.so
service asterisk restart
cd /usr/src
mkdir asterisk
cd asterisk
206
Descomprimimos:
tar zxvf libpri-1.4.9.tar.gz
tar zxvf dahdi-linux-2.1.0.4.tar.gz
tar zxvf dahdi-tools-2.1.0.2.tar.gz
cd libpri-1.4.9
make
make install
cd ..
cd dahdi-linux-2.1.0.4
make
make install
cd ..
cd dahdi-tools-2.1.0.2
./configure
make menuselect
make
make install
make config
cd ..
207
cd /usr/src/asterisk-addons-1.4.9/
./configure
make menuselect
make
make install
zaptel.ko dahdi.ko
ztd-eth.ko dahdi_dynamic_eth.ko
ztd-loc.ko dahdi_dynamic_loc.ko
ztdummy.ko dahdi_dummy.ko
ztdynamic.ko dahdi_dynamic.ko
zttranscode.ko dahdi_transcode.ko
ztcfg dahdi_cfg
ztmonitor dahdi_monitor
ztscan dahdi_scan
ztspeed dahdi_speed
208
zttest dahdi_test
zttool dahdi_tool
zapconf dahdi_genconf
En las versiones de Asterisk 1.4 y 1.6 en las que se usa DAHDI, los mdulos que utilizan
los servicios de este canal son:
-
chan_zap.so chan_dahdi.so
app_zapbarge.so app_dahdibarge.so
app_zarpras.so app_dahdiras.so
app_zapscan.so app_dahdiscan.so
codec_zap.so codec_dahdi.so
chan_dahdi.so: Este modulo determina que nombre del canal se debe utilizar
para llamadas entrantes .Si no se quiere usar el nombre de canal DAHDI y se
quiere seguir usando el canal Zap hay que aadir la siguiente lnea al archivo
asterisk.conf de /etc/asterisk/:
dahdichanname=no
Por ltimo, la configuracin para el controlador del canal se lee del archivo
chan_dahdi.conf en /etc/asterisk/ en vez del zapata.conf, mientras que la informacin
de las tarjetas que detecte aparecer en dahdi-channels.conf en vez de en zaptel.conf.
Configuracin DAHDI
1.) Ejecutamos dahdi_scan y veremos que las tarjetas que reconoce DAHDI y su estado
(actualmente Unconfigured).En este caso disponemos de una tarjeta de telefona
con 4 puertos,2 de ellos ocupados por dos mdulos un FXO y un FXS.
[root@asterisk ~]# dahdi_scan
[1]
active=yes
alarms=OK
description=Wildcard TDM400P REV E/F Board 5
name=WCTDM/4
manufacturer=Digium
devicetype=Wildcard TDM400P REV E/F
location=PCI Bus 08 Slot 02
basechan=1
totchans=4
irq=209
209
type=analog
port=1,FXO
port=2,FXS
port=3,none
port=4,none
2.) Ahora que sabemos que dahdi reconoce nuestras tarjetas, pasamos a
configurarlas. para eso ejecutamos:
[root@asterisk ~]# dahdi_genconf
[root@asterisk ~]# dahdi_cfg -vv
dahdi tools version - 2.2.0
dahdi version: 2.2.0
echo canceller(s):
configuration
======================
channel map:
channel 01: fxs kewlstart (default) (echo canceler: mg2) (slaves: 01)
channel 02: fxo kewlstart (default) (echo canceler: mg2) (slaves: 02)
2 channels to configure.
setting echocan for channel 1 to mg2
setting echocan for channel 2 to mg2
210
[channels]
#include dahdi-channels.conf
Context
default
default
default
Reiniciamos DAHDI:
[root@asterisk asterisk]# service dahdi restart
Llamada de la extensin 105 a la extensin 1234 que desva al canal DAHDI, la salida
del CLI es la siguiente:
213
sip.conf
[general]
context=default
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
language=es
callevents=yes
[100]
type=friend
username=100
214
secret=1234
mailbox=100
host=dynamic
context=default
canreinvite=yes
dtmfmode=rfc2833
nat=no
[101]
type=friend
username=101
secret=1234
mailbox=101
host=dynamic
context=default
canreinvite=yes
dtmfmode=rfc2833
nat=no
iax.conf
[general]
bindport=4569
bindaddr=0.0.0.0
srvlookup=yes
accountcode=lss0101
delayreject=yes
language=es
disallow=all
allow=gsm
allow=ulaw
allow=alaw
[300]
type=friend
host=dynamic
secret=1234
auth=md5,plain
context=default
qualify=yes
callerid = "300"
autokill=yes
[400]
type=friend
host=dynamic
secret=1234
auth=md5,plain
context=default
qualify=yes
callerid = "400"
autokill=yes
2.) Hacemos un reload de Asterisk para que detecte las extensiones de los
usuarios.
215
216
217
218
219
voicemail.conf
[general]
format=wav49|gsm|wav
;serveremail=asterisk
attach=yes
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
emaildateformat=%A, %B %d, %Y at %r
sendvoicemail=yes
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
[default]
100 => 1234,100,100@localhost
220
-- User hung up
Pulsamos el 1 para escuchar los mensajes.Te dice la fecha y hora del primero y
reproduce la grabacin:
-- <SIP/102-08914790> Playing 'vm-first' (language 'es')
-- <SIP/102-08914790> Playing 'vm-message' (language 'es')
== Parsing '/var/spool/asterisk/voicemail/default/100/INBOX/msg0000.txt':
Found
-- <SIP/102-08914790> Playing 'vm-received' (language 'es')
-- <SIP/102-08914790> Playing 'digits/today' (language 'es')
-- <SIP/102-08914790> Playing 'digits/at' (language 'es')
-- <SIP/102-08914790> Playing 'digits/11' (language 'es')
-- <SIP/102-08914790> Playing 'digits/24' (language 'es')
-- <SIP/102-08914790> Playing 'digits/a-m' (language 'es')
-- <SIP/102-08914790> Playing
'/var/spool/asterisk/voicemail/default/100/INBOX/msg0000' (language 'es')
221
222
2.) Vemos el funcionamiento del GotoIf, tal que dependiendo del valor de una
variabvle se llama a una extension o a otra.
exten => 6666,1,Set(TEST=2)
;exten => 6666,1,Set(TEST=1)
exten => 6666,n,GotoIf($[${TEST} = 1]?ir,1:adios,1)
exten => adios,1,Goto(default,100,1)
exten => ir,1,Goto(default,101,1)
exten => t,1,Goto(default,101,1)
223
224
queues.conf
[general]
persistentmembers = yes
keepstats=no
[davidqueue]
musiconhold = default
strategy = ringall
;servicelevel = 0
eventwhencalled = yes
timeout = 10
retry = 1
;autofil = yes
context = intern
;wrapuptime = 0
;maxten = 0
;joinempty = yes
announce-frequency = 30
announce-holdtime = yes
leavewhenempty = strict
member => SIP/100,1
member => SIP/103,2
member => SIP/104,3
member => SIP/105,1
extensions.conf
exten => 2000,1,Queue(davidqueue|tThH||)
exten => 2001,1,AddQueueMember(davidqueue|SIP/101)
225
Vemos que suenan a la vez los telfonos de los miembros de menor penalidad.
3.) Pausamos la extensin 105 y llamamos de nuevo a la cola.
226
Esta vez solo suena la extensin 100 de forma que en cualquier momento
podemos evitar contestar las llamadas de la cola.
4.) Aadimos dinmicamente el miembro 101 con prioridad 1 a la cola , llamamos
a la cola para ver su funcionamiento y lo eliminamos.
*CLI> queue add member SIP/101 to davidqueue penalty 1
Added interface 'SIP/101' to queue 'davidqueue'
-- Executing [2000@default:1] Queue("SIP/102-093d98a0", "davidqueue|tThH||") in new
stack
-- Started music on hold, class 'default', on SIP/102-093d98a0
-- Called SIP/100
-- Called SIP/101
-- SIP/100-093dd8c0 is ringing
-- SIP/101-093e18e0 is ringing
-- Stopped music on hold on SIP/102-093d98a0
== Spawn extension (default, 2000, 1) exited non-zero on 'SIP/102-093d98a0'
227
5.) Pausamos el miembro 100 y llamamos a la cola para observar como sonar el
de penalidad inmediatamente superior.
-- Executing [3006@default:1] PauseQueueMember("SIP/102-093ce628",
"davidqueue|SIP/100") in new stack
-- Executing [3006@default:2] Hangup("SIP/102-093ce628", "") in new stack
== Spawn extension (default, 3006, 2) exited non-zero on 'SIP/102-093ce628'
-- Executing [2000@default:1] Queue("SIP/102-09368d60", "davidqueue|tThH||") in new stack
-- Started music on hold, class 'default', on SIP/102-09368d60
-- Called SIP/103
-- SIP/103-093ce628 is ringing
-- Stopped music on hold on SIP/102-09368d60
== Spawn extension (default, 2000, 1) exited non-zero on 'SIP/102-09368d60'
228
-- SIP/103-093e2ac0 is ringing
-- Nobody picked up in 10000 ms
-- Called SIP/103
-- SIP/103-093e2ac0 is ringing
-- Stopped music on hold on SIP/103-093ce628
== Spawn extension (default, 2000, 1) exited non-zero on 'SIP/102-09368d60'
-- SIP/103-093e2ac0 answered SIP/101-0936a510
-- Stopped music on hold on SIP/101-0936a510
== Spawn extension (default, 2000, 1) exited non-zero on 'SIP/101-0936a510'
Otras pruebas:
Pruebas de uso de conferencias en Asterisk 1.4.26.2:
Al llamar el primer miembro (5000), hace una grabacin con su nombre y tras
pulsar # te da un serie de opciones como escuchar la grabacin, regrabarla o
aceptarla y despus de elegir esta ltima opcin la operadora le indica de su
posicin en la conferencia (en este caso el 1).
-- Executing [600@acceso:1] MeetMe("SIP/5000-08d7d820", "600|i|1234") in new stack
== Parsing '/etc/asterisk/meetme.conf': Found
-- Created MeetMe conference 1023 for conference '600'
-- Recording
-- <SIP/5000-08d7d820> Playing 'vm-rec-name' (language 'es')
-- <SIP/5000-08d7d820> Playing 'beep' (language 'es')
-- x=0, open writing: /var/spool/asterisk/meetme/meetme-username-600-1 format: sln,
0x8d8f598
[Dec 10 21:49:55] DTMF[29532]: channel.c:2330 __ast_read: DTMF begin '#' received on
SIP/5000-08d7d820
[Dec 10 21:49:55] DTMF[29532]: channel.c:2340 __ast_read: DTMF begin passthrough '#' on
SIP/5000-08d7d820
[Dec 10 21:49:55] DTMF[29532]: channel.c:2262 __ast_read: DTMF end '#' received on
SIP/5000-08d7d820, duration 140 ms
[Dec 10 21:49:55] DTMF[29532]: channel.c:2299 __ast_read: DTMF end accepted with begin '#'
on SIP/5000-08d7d820
[Dec 10 21:49:55] DTMF[29532]: channel.c:2315 __ast_read: DTMF end passthrough '#' on
SIP/5000-08d7d820
-- User ended message by pressing #
-- <SIP/5000-08d7d820> Playing 'auth-thankyou' (language 'es')
229
230
231
Esto indica que slo hay una conferencia creada y que para acceder a ella habr
que marcar el nmero 600. Por esto en la primera prueba al marcar el 610 nos
saca esto por el CLI a la par que nos informa que no es un nmero de
conferencia el que acabamos de marcar.
-- Executing [610@acceso:1] Set("SIP/5000-08d7d7e0", "confmax=2") in new stack
-- Executing [610@acceso:2] Macro("SIP/5000-08d7d7e0", "meetme") in new stack
-- Executing [s@macro-meetme:1] MeetMeCount("SIP/5000-08d7d7e0", "610|count") in new
stack
== Parsing '/etc/asterisk/meetme.conf': Found
[Dec 10 22:04:27] DEBUG[29699]: app_meetme.c:2587 find_conf: 610 isn't a valid conference
232
Recepcin de llamadas.
Realizacin de llamadas.
El primero se consigue a travs de una cuenta Call In, de forma que tras obtener la
cuenta solo habra que configurar el archivo sip.conf con la informacin del proveedor
234
extensions.conf
;exten => _6XXXXXXXX,1,Dial(SIP/+34${EXTEN}@proxy01.sipphone.com,20,r)
;exten => _6XXXXXXXX,n,Hangup
Status
--------OK (216 ms)
235
236
Tras reiniciar ambos servidores, comprobamos que el registro de las extensiones trunk
es correcto:
Al realizar una llamada desde la extensin 2003 del Servidor a la 100 del Porttil en el
CLI de Asterisk obtenemos:
237
Al realizar una llamada desde la extensin 100 del Porttil a la 2003 del Servidor en el
CLI de Asterisk obtenemos:
238
Port
4569
45755
Status
Unmonitored
Unmonitored
240
241
En primer lugar tenemos que acceder a la configuracin del SPA 3000 a travs de la IP
(192.168.1.211) para configurar las llamadas entrantes a travs del apartado PSTN Line
(PSTN->VoIP) y las llamadas salientes a travs del apartado Line 1 (VoIP->PSTN).
Line 1
PSTN Line
242
[9001]
type=peer
username=9001
fromuser=9001
secret=1234
host=dynamic
port=5061
context=pstn
dtmfmode=rfc2833
insecure=very
La configuracin del fichero extensions.conf teniendo en cuenta que queremos que las
llamadas entrantes de nmeros que empiecen por 9 se redireccionen a un telfono
analgico y las de los nmeros que empiecen por 6 se redireccionen a un telfono IP y
que tambin queremos que las llamadas salientes que empiecen por 9 salgan por la
PSTN:
[globals]
PSTN=192.168.1.211:5061
[pstn]
;Entrantes
exten => 9001,1,NoOP("El CALLERID es: ${CALLERID(num)}")
exten => 9001,n,GotoIf($["${CALLERID(num):0:1}"= "9"]?100:200)
exten => 9001,100,Goto(pstn,9000,1)
exten => 9001,200,Goto(pstn,103,1)
;Si es un numero que empieza por 9
exten => 9000,1,Dial(SIP/9000,30,Ttm)
exten => 9000,n,Hangup
;Si es un numero que empieza por 6
exten => 103,1,Dial(SIP/103,30,Ttm)
exten => 103,n,Hangup
;Salientes
exten => _9XXXXXXXX,1,Dial(SIP/${EXTEN}@${PSTN},30,Ttm)
exten => _9XXXXXXXX,n,Hangup
Prueba 2) Llamada desde un telfono fijo al nmero que est conectado con el SPA:
-- Executing [9001@pstn:1] NoOp("SIP/9001-b7771ae0", ""El CALLERID es: 945177145"") in
new stack
-- Executing [9001@pstn:2] GotoIf("SIP/9001-b7771ae0", "1?100:200") in new stack
-- Goto (pstn,9001,100)
-- Executing [9001@pstn:100] Goto("SIP/9001-b7771ae0", "pstn|9000|1") in new stack
-- Goto (pstn,9000,1)
-- Executing [9000@pstn:1] Dial("SIP/9001-b7771ae0", "SIP/9000|30|Ttm") in new stack
-- Called 9000
-- Started music on hold, class 'default', on SIP/9001-b7771ae0
-- SIP/9000-0a157af0 is ringing
-- Stopped music on hold on SIP/9001-b7771ae0
== Spawn extension (pstn, 9000, 1) exited non-zero on 'SIP/9001-b7771ae0'
244
Captulo
245
246
247
248
249
250
251
252
253
254
255
256
Consiste en comprobar en la base de datos del CDR cul ha sido la ltima llamada
recibida para el CALLERID que ha llamado a la extensin de esta funcionalidad y
llamarla.
257
258
259
Pruebas generales
Prueba 1) Llama a la centralita en un horario no laborable un usuario VIP.
Parte de cdigo utilizado:
[acceso]
exten => 787,1,Set(NUM=${EXTEN})
exten => 787,n,Macro(general,soportelaboral,${CALS},${NUM})
[macro-general]
;1)COMPROBACION CON EL CALENDARIO
exten => s,1,Answer
exten => s,n,Set(SALTO=${ARG1})
exten => s,n,AGI(${ARG2})
exten => s,n,Goto(${SALTO},${ARG3},1)
[No Disponible Soporte]
;Comprobar en la base de datos si el cliente es VIP(contrato de mantenimiento de 24h).Si lo
es se le envia a la prioridad 100 sino lo es a la 90.
exten => 787,1,MYSQL(Connect connid localhost root root agenda)
exten => 787,n,NoOp(connid = ${connid})
exten => 787,n,Set(NUM2= ${CALLERID(num)})
exten => 787,n,MYSQL(Query resultid ${connid} SELECT\ mant FROM\ clientes\ INNER\ JOIN\
telefono\ ON\ clientes.id=telefono.idEmp\ WHERE\ telefono=650664616)
;exten => 787,n,MYSQL(Query resultid ${connid} SELECT\ mant FROM\ clientes\ INNER\
JOIN\ telefono\ ON\ clientes.id=telefono.idEmp\ WHERE\ telefono=${NUM2})
exten => 787,n,NoOp(resultid = ${resultid})
exten => 787,n,MYSQL(Fetch fetchid ${resultid} MANT)
exten => 787,n,NoOp(MANT = ${MANT})
exten => 787,n,MYSQL(Disconnect ${connid})
exten => 787,n,GotoIf($["${MANT}"="VIP"]?100:90)
exten => 787,90,Macro(nodisponible,${BS})
exten => 787,100,Set(N=650664616)
;exten => 787,100,Set(N=${NUM2})
exten => 787,n,Gotoif($["${N:0:1}" = "6"]?200:300)
exten => 787,200,Dial(SIP/+34${MOVIL1}@proxy01.sipphone.com,20,r)
exten => 787,n,Dial(Sebi/g1/${MOVIL1},30)
exten => 787,n,Dial(SIP/+34${MOVIL2}@proxy01.sipphone.com,20,r)
exten => 787,n,Dial(Sebi/g1/${MOVIL2},30)
exten => 787,n,AGI(sms_send.php)
exten => 787,n,Voicemail(3333)
exten => 787,n,Hangup
;sI ESTUVIERA CONECTADO A LA PSTN Y NO FUERA UN MOVIL SALDRIA POR AHI
exten => 787,300,Dial(DAHDI/${MOVIL1},20,r)
260
Para ver el correcto envio de SMS quito el valor a las variables que contienen los
mviles a llamar en horario no laboral:
-- Executing [787@acceso:1] Set("SIP/2003-b6900f70", "NUM=787") in new stack
-- Executing [787@acceso:2] Macro("SIP/2003-b6900f70", "general|soportelaboral|pyastcal.py|787") in
new stack
-- Executing [s@macro-general:1] Answer("SIP/2003-b6900f70", "") in new stack
-- Executing [s@macro-general:3] AGI("SIP/2003-b6900f70", "pyastcal.py") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/pyastcal.py
-- AGI Script pyastcal.py completed, returning 0
261
262
263
264
265
266
267
268
[macro-acceso]
exten => s,1,Dial(SIP/${ARG1},30,Ttm)
exten => s,n,Voicemail(${ARG1})
exten => s,n,Hangup
Descripcin
extensions.conf
sip.conf
iax.conf
features.conf
269
manager.conf
meetme.conf
queues.conf
voicemail.conf
270
271
272
Descripcin
cdr
fop2
qstats
273
agenda
nagios
Tablas de cdr
cdr
channels
Tabla cdr
calldate
clid
src
dst
dcontext
channel
dstchannel
lastapp
2009-12-22
21:44:43
"2000"
<2000>
2000
2003
acceso
SIP/2000b6800a38
SIP/20030a30b038
VoiceMail
lastdata
duration
billsec
disposition
amaflags
2003
34
ANSWERED
accountcode
uniqueid
userfield
Tabla channels
id
channel
SIP/2003
SIP/2000
accountcode
name
David
274
Mikel
SIP/2001
Eduardo
SIP/2004
Josemi
SIP/2002
Josean
Tablas de cdr
visual_phonebook
Tabla visual_phonebook
id
firstname
lastname
company
phone1
Mikel
Yet Informatica
2000
Eduardo
Yet Informatica
2001
Josean
Yet Informatica
2002
David
Yet Informatica
2003
Josemi
Yet Informatica
2004
phone2
picture
1-mark.jpg
Tablas de cdr
qagent
qevent
qname
queue_stats
275
Tabla qagent
agent_id
agent
SIP/2001
SIP/2004
SIP/2003
SIP/2002
SIP/2000
SIP/2005
SIP/4000
Tabla qevent
event_id
event
ABANDON
AGENTDUMP
AGENTLOGIN
AGENTCALLBACKLOGIN
AGENTLOGOFF
AGENTCALLBACKLOGOFF
COMPLETEAGENT
COMPLETECALLER
CONFIGRELOAD
10
CONNECT
11
ENTERQUEUE
12
EXITWITHKEY
13
EXITWITHTIMEOUT
14
QUEUESTART
15
SYSCOMPAT
16
TRANSFER
17
PAUSE
276
18
UNPAUSE
Tabla qname
qname_id
queue
recepcionqueue
comercialqueue
soportequeue
Table queue_stats
queue_stats_id
705
uniqueid
SIP/2003
SIP/2003
datetime
qname
qagent
qevent
2009-11-05
05:01:19
14
2009-12-22
23:35:20
info1
info2
Tablas de agenda
clientes
telefono
usuarios
Tabla clientes
id
nameEmp
cliente
mant
Calnaba
Yet
VIP
Puma
Yet
Completo
277
info3
Adidas
Yet
VIP
Tabla telefono
idEmp
telefono
650664616
654545454
676767676
943212112
945787876
654323232
656997878
698987332
Tabla usuarios
id
name
extension
tipo
Mikel
2000
Soporte
Valentin
5000
Direccion
Alberto Acosta
3000
Twister
Eduardo
2001
Soporte
Josean
2002
Soporte
10
Irune
1000
Administracion
Tablas de nagios
nagios_acknowledgements
nagios_commands
nagios_commenthistory
nagios_comments
278
nagios_configfiles
nagios_configfilevariables
.
nagios_timedeventqueue
nagios_timedevents
nagios_timeperiod_timeranges
nagios_timeperiods
279
280
Aadir Usuarios: Permite agregar un usuario a la base de datos a la que est enlazada
la aplicacin, no modifica el fichero sip.conf, la idea es agregar el usuario y despus
modificar dicho fichero de configuracin.
281
282
283
284
285
Aadir Clientes: Permite agregar un cliente a la base de datos a la que est enlazada la
aplicacin.
En la siguiente imagen vemos como es el proceso de adiccin de un cliente, rellenando
los campos Nombre de Empresa, Mantenimiento (Parcial, Completo, VIP) y el n de
telfonos asociados a dicha empresa.
286
287
288
289
A continuacion veremos un recordatorio de las extensiones del Dialplan para que los
usuarios puedan consultarlo cuando quieran.
290
291
292
293
294
295
296
297
298
299
300
Comprobamos el log de la aplicacin para ver que los datos enviados son los correctos:
301
UserName=davidin073@gmail.com
Password=XXXXXXX
Minutos despues de la hora actual en la que empieza el evento=10
Duracion del Evento=10
Mensaje enviado: 'Asterisk: Tiene una llamada perdida de la extension: 100'
Enviado: Resource id #8
302
Chan_Sebi
Qu?,Cmo? y Por qu?
Chan_sebi es un canal para Asterisk, que utiliza modems Huawei para proveer de
gateways gsm de voz y/o sms.
En principio se ha hecho pensando en los E169/K3520 de Huawei, modems que tienen
capacidades de llamada de voz. Internamente utilizan un chipset de Qualcomm (de la
serie MSM7200). Con un modem usb de estos modelos, tenemos un gateway de voz
que adems no tiene que hacer conversiones de audio como las que se hacen con un
FXO analgico, ni los problemas de sealizacin inherentes a los canales analgicos, ya
que toda la gestin de audio y de sealizacin se hace de forma digital (bien a travs
del canal de audio, bien a travs del canal de datos), pudiendo ser comparado a un
router RDSI=>GSM de un puerto.
La idea surgi, segn su creador Odicha, de la posibilidad de aprovechar las
capacidades de voz de estos modems para tener un gateway gsm a un costo muy
econmico. La mayor parte de los operadores los dan a costo cero cumpliendo unos
mnimos de permanencia o consumo, como cualquier otro terminal telefnico.
Tcnicamente estos modems son vistos por el S.O. como un hub usb con varios
dispositivos. En principio tres puertos seriales y un puerto de almacenamiento con dos
dispositivos (un cd y un lector de memoria). Asi los subid 00,01 y 02 sern los puertos
de comunicacin, cada uno con distintas funciones (audio, datos y gestin general) y el
subid 03 que nos dar control sobre el cd virtual y el lector de tarjetas.
A partir de esta base se construye un controlador de canal que toma como punto de
partida el chan_mobile, ya existente en Asterisk.
Para descargar asterisk-addons con chan_sebi:
svn export http://asterisk-es-rsp.irontec.com/svn/team/Odicha/asterisk-addons-1.4.9 asterisk-addons/
Los puertos ttyUSBx que se crean al conectar el modem tienen que tener permiso de
lectura y escritura para el usuario que ejecuta Asterisk, si no es as no ser posible que
Asterisk se comunique con el modem. Si no se ejecuta Asterisk como root lo mejor es
agregar el usuario que corre Asterisk al grupo propietario de los puertos que en
funcin de distros y kernels puede variar (en Fedora es uucp, por ej.).
Algo como esto por ejemplo:
chmod 660 /dev/ttyUSB*
chown asterisk:uucp /dev/ttyUSB*
echo KERNEL==ttyUSB[0-9*], MODE=0660, OWNER=asterisk, GROUP=uucp
>> /etc/udev/rules.d/92-sebi.rules
Cumpliendo esto podremos instalar asterisk-addons sobre nuestro asterisk 1.4.x con
chan_sebi incluido.
Al instalarlo y arrancarlo el canal analizar los dispositivos usb que tenemos
conectados y generar un fichero sebi_devices.conf en /etc/asterisk/ que contendr
algo similar a esto:
[2-1]
data = /dev/ttyUSB2
voice = /dev/ttyUSB1
imei = 35413702XXXXXXX
El campo imei del canal es el que combina la informacin de configuracin del modem
con el equipo fsico. No olviden que el nmero de puerto ttyUSB depende del orden en
que se cargan o de la cantidad de dispositivos usb que estn conectados en cada
momento. Los dems campos de configuracin creo que estn claros, prcticamente
se describen solos. Es interesante hacer notar que el nombre del canal lo asignamos
nosotros libremente en el identificador de seccin (en el ejemplo [huawei1])
Si reiniciamos Asterisk y todo ha ido bien tras cargar ejecutaremos el comando sebi
show devices y obtendremos algo parecido a esto:
304
Imei
Group
3541370xxxxxxxx 1
Provider
vodafone es
A partir de aqu podemos usar el modem como una canal de voz realizando y
recibiendo llamadas y como gateway sms. Cabe observar que en los modelos que no
soporten voz el resultado ser como este:
*CLI> sebi show devices
Id
huawei1
Imei
Group
3541370xxxxxxxx
1
Provider
vodafone es
Nos dir que no tenemos servicios de voz en ese dispositivo, y lo usaremos solo como
gateway sms.
Para enviar y recibir sms, usaremos convenciones muy similares a las de chan_mobile.
Para recibir un sms y guardarlo en la base de datos tendremos las instruccciones
correspondientes en el Dialplan (por cierto, solo procesa sms recibidos mientras est
activo, por el momento).
[from-pstn]
exten => sms,1,verbose(incoming sms from ${smssrc} ${smstxt})
exten => sms,n,set(db(sms/${smssrc})=${smstxt})
exten => sms,n,hangup
Para revisar si el canal est libre antes de enviar el sms tenemos la aplicacin
SebiStatus:
SebiStatus(device,variable)
Device : Id del dispositivo en sebi.conf
Variable: Variable donde almacenamos el estado (1-3)
1-Desconectado
2-Disponible
3-Ocupado
305
Tras introducir en el modem Huawei K3520 una tarjeta Orange y conectarlo a nuestro
servidor por un puerto USB, instalamos como se indica en los apartados anteriores el
chan_sebi y lo siguiente que tenemos que hacer es comprobar que Asterisk a captado
el modem, para esto comprobamos el contenido del fichero de configuracin situado
en la carpeta /etc/asterisk/ sebi_devices.conf:
[6-1]
data = /dev/ttyUSB2
imei = 353284021181626
voice = /dev/ttyUSB1
Si no lo hemos hecho antes, damos a los dispositivos USB los permisos adecuados:
chmod a+x /dev/ttyUSB*
Las 3 pruebas realizadas con el chan_sebi sern recepcin y envio de SMS y realizacin
de llamadas a travs de este canal.
Prueba 1) Llamada con chan_sebi
Configuracin del fichero extensions.conf:
[from-sebi]
;LLamadas con Chan_Sebi
exten => 650664616,1,NoOp(Outgoing call through the SEBI device to ${EXTEN})
exten => 650664616,n,Dial(Sebi/g1/${EXTEN},60)
exten => 650664616,n,Hangup
306
Para esta prueba hacemos uso de un ejecutable que enviar un email a una direccin
indicada al recibir el SMS, el cdigo de este archivo es:
307
#!/bin/bash
if [ $# -ne 2 ]
then
echo "Invalid parameters."
exit 0
fi
echo $2 | mail -s "SMS from $1" davidin073@gmail.com
308
Acciones
o
o
o
o
o
o
o
o
o
o
o
Botones de Extensin
o
o
o
o
o
Botones Trunk
o
Iniciar llamadas
Acceso telefnico a cualquier nmero
Acceso a la agenda de llamadas
Notificacin de entrada de llamadas
Agenda de Contactos (Visual Phonebook)
Transferencia de llamadas
Transferencia al buzn de voz
Registro de llamadas
Atencin de llamadas directas (Pick Up)
Colgar llamadas
Funcionalida Spy & Whisper (Escuchar llamada y comunicarse con uno de
los hablantes sin que el otro escuche)
Botones de Conferencia
o
o
o
o
o
Botones de Cola
o
o
o
o
o
o
Lista de agentes/miembros
Lista de llamadas en espera
Miembros en pausa
Miembros ocupados
Miembros disponibles
Miembros invalidos
310
Instalacin
Requisitos del Sistema
El programa consta de dos componentes, un demonio del lado del servidor que se
conecta a la interfaz de Asterisk y ser el mediador entre Asterisk y los clientes Web.
Si tiene instalada una distribucin de Linux Red Hat y va a instalar el panel desde un
tarball(.tar), tendr que obtener el tarball correcto dependiendo de su versin de glibc.
Puede averiguar la versin de glibc escribiendo en la consola:
#> /lib/libc.so.6
311
La instalacin copiar los archivos del servidor en / usr/local/fop2 y las pginas web
bajo / var/www/html/fop2.
Before starting the service, some basic configuration is required in fop2.cfg and
probably in /etc/asterisk/manager.conf, because the FOP2 daemon connects via TCP
to the Asterisk Manager Interface (AMI) using a username and secret. Antes de iniciar
el servicio, es necesaria la configuracin bsica de fop2.cfg y de manager.conf en /etc
/asterisk/, porque el demonio FOP2 se conecta a travs de TCP a la interfaz de Asterisk
Manager (IAM), utilizando un nombre de usuario y una clave.
Una vez configurado esto habr que iniciar el servicio.
#> cd / usr/local/fop2
#> ./fop2_server
Configuracin
El archivo principal de configuracin del servidor es / usr/local/fop2/fop2.cfg. Los
parmetros ms importantes y necesarios para este fichero son los establecidos en el
manager.conf.
Ejemplos de configuracin:
/usr/local/fop2/fop2.cfg
[general]
; AMI definitions
manager_host = 127.0.0.1
manager_port = 5038
manager_user = admin
manager_secret = amp111
312
Para que efectue el envio de eventos relacionados con las colas y los agentes.
Configuracin de botones
Adems de la configuracin del servidor, es importante la configuracin de los botones
que desea mostrar.
Los botones de configuracin se realizan en distintos archivos de configuracin para
que sean ms fciles de mantener y organizar. En el fichero / usr/local/fop2/fop2.cfg
hay que especificar el parmetro buttonfile, que apunta al archivo que contendr las
definiciones de los botones.
/usr/local/fop2/fop2.cfg
... ...
buttonfile= buttons.cfg
Botones de Extensin
Este tipo de botones representan una extension. Se mostrarn dos lneas para cada
botn y algunos datos especficos, como la presencia, estado de pausa, etc.
/usr/local/fop2/ buttons.cfg
[SIP/600]
type=extension
extension=600
context=from-internal
label=John
mailbox=600@default
extenvoicemail=*600@default
Botones de cola
Similares a los botones de extensin, los botones de cola hacen uso de los mismos
parmetros con la diferencia que no slo el tipo se debe establecer en la cola, sino
tambin el nombre, entre parntesis, debe estar precedido de "QUEUE /".
/usr/local/fop2/buttons.cfg
[QUEUE/101]
type=queue
label=Sales
313
extension=101
context=from-internal
Los botones de cola no aceptan los parmetros mailbox o extenvoicemail, ya que slo
se aplican a los botones de extensin.
Botones de Conferencia
Al igual que los botones de cola, los botones de conferencia tienen que ser definidos
como type=conference y el contexto debe empezar con el prefijo "CONFERENCE/".
/usr/local/fop2/buttons.cfg
[CONFERENCE/1000]
type=conference
label=Main Conference
extension=1000
context=from-internal
Botones Trunk
Para los trunks que hay muy pocos parmetros que establecer. Un trunk no se puede
marcar, por esa razn no es necesario especificar la extensin ni el contexto. Slo el
type que sera trunk debe ser especificado, junto con la etiqueta del botn.
/usr/local/fop2/buttons.cfg
[DAHDI/1]
type=trunk
label=DAHDI 1-4
server=1
Tenga en cuenta que tambin hay que establecer el parmetro server, ya que si se
supervisa ms de un servidor, y tiene DAHDI / 1 definido sin especificar el servidor,
usted experimentar una colisin por el canal, y la situacin no ser correcta.
Configuracin de Visual Phonebook
La agenda requiere php y mysql para ser instalada y funcionar. Es necesario crear una
base de datos con una tabla y dar los adecuados permisos. Tambin tienes que
configurar el idioma de la aplicacin PHP. Con el fin de empezar, asegrese de crear
una base de datos MySQL utilizando la contrasea correcta (sustituir XXXXX con su
contrasea de root de MySQL):
#> cd /var/www/html/fop2
#> mysqladmin -u root -pXXXXX create fop2
#> mysql -u root -pXXXXX < mysql.db
314
#> mysql -u root -pXXXXX -e \"grant all privileges on fop2.* to root@localhost \"
identified by 'myPassw0rd'"
315
316
poll_interval = 86400
poll_voicemail = 1
monitor_ipaddress = 0
;master_key = 5678
user=2000:1234:all
user=2001:1234:all
user=2002:1234:all
user=2003:1234:all
user=2004:1234:all
user=2005:1234:all
user=2006:1234:all
buttonfile=autobuttons.cfg
#exec autoconfig-users-freepbx.sh
317
extension=2005
context=acceso
label=Usuario1
mailbox=2005@default
extenvoicemail=20058@acceso
[SIP/2006]
type=extensin
extension=2006
context=acceso
label=Usuario2
mailbox=2006@default
extenvoicemail=20068@acceso
[QUEUE/ soportequeue]
type=queue
label= soportequeue
extension=784
context= soportelaboral
[DAHDI/2]
type=trunk
label=DAHDI
[CONFERENCE/600]
type=conference
label=Conferencia Estatica
server=1
extension=600
context=meetme
318
Botn de llamada:
La realizacin de llamadas desde FOP 2 se realiza como se describe en el
siguiente ejemplo, en el cual la llamada se realizar entre la extensin 2003,
con la que nos logueamos en FOP 2, y la extensin 2005.
319
Botn de transferencia:
320
321
322
323
324
325
1261023719.156-2005-in.wav
1261023719.156-2005-out.wav
326
327
328
Botn de Trunks:
Como hemos visto en la configuracin del fichero de botones del FOP 2. Es
posible generar botones de Trunk.
En la aplicacin para la realizacin de pruebas se configur el botn del canal 2
de la tarjeta de telefona anteriormente instalada (ENLACEEE).
De esta forma tras configurar la extensin 783 para llamar a ese canal:
exten => 783,1,Dial(DAHDI/2,30,tTm)
exten => 783,n,Hangup
Botn de Conferencias
Como hemos visto en la configuracin del fichero de botones del FOP 2. Es
tambin es posible generar botones de Conferencia. Se ha configurado un botn y
vamos a ver su funcionamiento frente a llamadas a la conferencia.
Registramos dos extensiones en la conferencia y vemos el efecto en el botn
de conferencia.
329
330
Asequible: Asternic Call Center Stats viene en dos versiones, una gratuita con
capacidad limitada que se distribuye bajo la licencia GPL v3, y una versin
comercial con un montn de caractersticas adicionales e informes. La
concesin de licencias se realiza por servidor, no hay licencias por puesto, y el
cdigo fuente completo se incluye en ambas versiones.
Estado en tiempo real: Tanto la version Lite como la Pro le permiten ver el
estado de sus colas y agentes en tiempo real.
Requisitos:
En el servidor
1. Servidor web con soporte PHP.
2. Base de datos MySQL.
3. Asterisk 1.2, 1.4 o 1.6.
En el cliente
1. Navegador web con soporte javascript.
2. Plugin Flash para los grficos.
331
Instalacin
Estas instrucciones se aplican para la versin Lite del Asternic Call Center Stats.
-
Descargamos la aplicacin:
cd /usr/src
wget http://www.asternic.org/stats/asternic-stats-1.0.1.tgz
Descomprimimos:
tar zvxf asternic-stats-1.0.1.tgz
cd asternic-stats
332
$dbuser = 'root';
$dbpass = '';
333
Pulsamos el botn Mostrar Reporte y vemos las llamadas atendidas por cada cola y
agente seleccionados y las no atendidas.
334
335
337
Vemos a tiempo real que sucede cuando se est haciendo una llamada a la cola.
338
339
Estado en tiempo real: Esta versin permite ver el estado de una llamada en
tiempo real.
Requisitos:
En el servidor
4. Servidor web con soporte PHP.
5. Base de datos MySQL.
6. Asterisk 1.2, 1.4 o 1.6.
En el cliente
3. Navegador web con soporte javascript.
4. Plugin Flash para los grficos.
340
Instalacin
Con estas simples instrucciones instalaremos la aplicacin en nuestro servidor:
- Obtenemos la aplicacin:
En este caso gracias a Nicolas Gudio.
- Descomprimimos en /var/www/html/ y cambiamos de nombre a la carpeta a "cdr":
tar zvxf asternic-cdr-free.tgz
mv asternic-cdr-free cdr
cd cdr
341
Agregamos uno a uno los usuarios de los que registraremos las llamadas.
Tras agregar todos los usuarios este es el aspecto de la aplicacin y ya podemos hacer
el reporte.
342
Tras hacer el reporte empezamos a observar las tablas y grficos que se realizan
empezando por las llamadas salientes por usuario.
343
344
345
346
347
Verbio
Qu es Verbio TTS?
348
Qu es Verbio ASR?
Verbio ASR es el motor de reconocimiento del habla de
Verbio muy orientado a aplicaciones telefnicas e
independientes del locutor, si bien es aplicable tambin en
muchas otras aplicaciones microfnicas y multimedia.
Introduccin a Verbio-Asterisk
Para poder poner en marcha el sistema Verbio-Asterisk, deberemos disponer de los
siguientes componentes:
349
Servidor Asterisk
Mediante las aplicaciones (Dialplan)
Verbio, se realizan peticiones de
sntesis y reconocimiento al voxserver.
Id. Locutor
Descripcin
esAO
esAO
esEB
verbio-tts-laura-esao
verbio-tts-laura-esao-16k
verbio-tts-carlos-eseb
350
esEB
esVA
esVA
ca-c0CD
ca-c0CD
ca-c0FE
ca-c0FE
caJO
caJO
euSK
euSK
euVZ
euVZ
ca-v0EM
ca-v0EM
gaFR
es-mxYO
es-mxYO
ptMU
ptMU
pt-brPA
pt-brPA
frIF
frIF
en-usJA
en-usJA
es-arLO
es-arLO
verbio-tts-carlos-eseb-16k
verbio-tts-amaya-esva
verbio-tts-amaya-esva-16k
verbio-tts-pau-ca-c0cd
verbio-tts-pau-ca-c0cd-16k
verbio-tts-meritxell-ca-c0fe
verbio-tts-meritxell-ca-c0fe -16k
verbio-tts-oriol-cajo
verbio-tts-oriol-cajo-16k
verbio-tts-ainhoa-eusk
verbio-tts-ainhoa-eusk-16k
verbio-tts-amaia-euvz
verbio-tts-amaia-euvz-16k
verbio-tts-empar-ca-v0em
verbio-tts-empar-ca-v0em-16k
verbio-tts-freire-gafr
verbio-tts-celia-es-mxyo
verbio-tts-celia-es-mxyo-16k
verbio-tts-adriana-ptmu
verbio-tts-adriana-ptmu-16k
verbio-tts-julia-pt-brpa
verbio-tts-julia-pt-brpa-16k
verbio-tts-brigitte-frif
verbio-tts-brigitte-frif-16k
verbio-tts-jane-en-usja
verbio-tts-jane-en-usja-16k
verbio-tts-javier-es-arlo
verbio-tts-javier-es-arlo-16k
Id. configuracin
es
es_ca
es_eu
es_ga
verbio-asr-es
verbio-asr-es_ca
verbio-asr-es_eu
verbio-asr-es_ga
es_ca_eu_ga
verbio-asr-es_ca_eu_ga
es-ar
es-cl
es-co
es-mx
verbio-asr-es-ar
verbio-asr-es-cl
verbio-asr-es-co
verbio-asr-es-mx
es-ve
verbio-asr-es-ve
pt
verbio-asr-pt
351
pt-br
fr
en-us
es16k
ca16k
verbio-asr-pt-br
verbio-asr-fr
verbio-asr-en-us
verbio-asr-es16k
verbio-asr-ca16k
355
init_sil = 300
; default: 200
max_sil = 200
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; VAD (client-side) options ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[vad]
;min_ref = 5
;mode = standard
;default: 2.5
;low_factor = 2.5
;default: 4.5
;high_factor = 4.5
; default: 0.8
;final_factor = 0.8
; default: 2.5
;final_high_factor = 2.5
; default: 500.0
;min_high_thresh = 500.0
; default: 50
;aam_min = 50
; default: 200
;aam_max = 200
;;;;;;;;;;;;;;;;;;;;;;
; Debug options ;
;;;;;;;;;;;;;;;;;;;;;;
[debug]
verbose
=1
extended_verbose
=1
keep_recorded_files
=1
recorded_files_path
= /var/lib/asterisk/verbio/audio
recorded_files_exten
= pcm
mark_recorded_files = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Wordspotting options (future application) ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ws]
;path = /var/lib/asterisk/verbio/ws
;silence = 500
;threshold = 30
;command = /var/lib/asterisk/verbio/ws/ws.sh
VerbioLoadVcb
VerbioUnloadVcb
VerbioRec
VerbioPrompt
VerbioPromptAndRec
VerbioStreamAndRec
VerbioLastErr
356
o
o
VerbioInfo
VerbioFreeChannel
o VerbioLoadVcb(gram_file|gram_type[|config][|lang][|options])
Descripcin: Esta funcion carga una gramatica (sobre un puerto verbio asociado al
canal Asterisk).
Parametros: gram_file : fichero de gramatica.
gram_type : tipo de gramatica ((ISOLATED, CONNECTED, ABNF o
BUILTIN)).
config : configuracion de reconocimiento (opcional).
lang : lenguaje a utilizar (opcional).
options : opciones. Las opciones disponibles son:
- v (verbose)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio)
Una vez cargada la gramatica, se establecera una variable de canal (VVCB_HANDLE) la
cual contiene el identificador de la gramatica cargada.
o VerbioUnloadVcb(vcb_handle[|config][|lang][|options])
Descripcin: Descarga una gramatica.
Parametros: vcb_handle : identificador de gramatica (-1 para descargar todas)
config : configuracion de reconocimiento (opcional).
lang : lenguaje a utilizar (opcional).
options : opciones. Las opciones disponibles son:
- v (verbose)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio).
o VerbioRec([|config][|lang][|initsil][|maxsil][|abs_timeout][|options])
Descripcion: Lanza el reconocimiento. Antes de hacer cualquier llamada a esta
aplicacin, deberemos haber cargado alguna gramatica con la funcin
'VerbioLoadVcb'.
Parametros: config : configuracion de reconocimiento (opcional).
lang : lenguaje a utilizar (opcional).
initsil : maxima duracion de silencio de inicio (unidades de 10ms).
maxsil : maxima duracion de silencio final (unidades de 10ms).
abs_timeout : timeout absoluto de reconocimiento (segundos)(opcional)
options : opciones. Las opciones disponibles son:
- b (beep antes de lanzar el reconocimiento)
- v (verbose)
- a (descolgar el canal)
357
VerbioPrompt(text_or_file[|lang][|speaker][|options])
362
364
cero
uno
dos
tres
cuatro
cinco
seis
siete
ocho
nueve
si
no
Despues se indica que al llamante que deletree el nmero de incidencia que tiene 4
dgitos, se comprueba que se ha dicho algo que este por encima de un umbral
determinado de acierto y se consulta con el llamante lo captado.Si este indica que es
correcto se le dice Gracias y lo siguiente sera revisar en la base de datos.
Al tratarse de una versin no Premium de Verbio, al finalizar la llamada bien sea
colganda por el Dialplan o por el llamante se debe descargar el diccionario y dejar libre
el canal, para esto se ha dejado la extensin 8091.
El cdigo utilizado es el siguiente:
[verbio]
include => acceso
exten => 8000,1,Answer()
exten => 8000,n,Set(UMBRAL=90)
exten => 8000,n,VerbioLoadVcb(david.txt,connected,,,v)
exten => 8000,n,Goto(8090,1)
exten => 8090,1,VerbioPromptAndRec(Indique el numero de incidencia para consultar su
estado.Recuerde que tiene cuatro digitos.)
exten => 8090,n,NoOp(PALABRAS ${VASR_WORDS}. Resultado: ${VASR_RESULT0}
${VASR_RESULT1} ${VASR_RESULT2} ${VASR_RESULT3}. Score: ${VASR_SCORE} Umbral:
${UMBR$})
exten => 8090,n,GotoIf($[$[${VASR_RESULT} != ERROR] &
$[${VASR_SCORE}>${UMBRAL}]]?si:no)
exten => 8090,n(si),VerbioPromptAndRec(Su numero de incidencia es: ${VASR_RESULT0}
${VASR_RESULT1} ${VASR_RESULT2} ${VASR_RESULT3}\, no?)
exten => 8090,n,NoOp("PALABRAS ${VASR_WORDS}. Resultado: ${VASR_RESULT}. Score:
${VASR_SCORE} Umbral: ${UMBRAL}",,,v)
365
366
367
Prueba 2) En la prueba siguiente se utiliza Verbio para saber el Dpto con el que desea
hablar el llamante para que, por ejemplo, se le redireccione directamente sin pasar por
Administracin.
De nuevo lo primero que se realiza es cargar el diccionario, en este caso el archivo
datos.txt cuyo contenido es:
SOPORTE
ADMINISTRACION
COMERCIAL
TWISTER
soporte
administracion
comercial
twister
368
369
370
371
Skype
Qu es Skype?
Es el ms conocido de los SoftPhones y quizs un responsable importante de la
popularizacin de la VozIP. Creado por los fundadores de Kazaa: Zennstrm y Friis.
Segn su pgina web www.skype.com ha sido descargado 236.259.232 veces.
Skype fue comprado por la firma de subastas por Internet EBay por 2.100 millones de
dolares.
Las comunicaciones de Voz viajan cifradas por la red y utiliza un protocolo propietario.
Ventajas
Firewall / Nat discover: En casi todas las situaciones funciona sin necesidad de
configurar PNAT.
Interconexin con otras redes: el salto a la red telefnica pblica solo puede
realizarse con el sistema SkypeOut, lo cual no favorece la competencia.
372
Alternativas a Skype
Servidor Asterisk:
Extensiones SIP o IAX2.
Varios proveedores IP.
Conexin con la PSTN.
Skype es un buen SoftPhone, utiliza un protocolo propio, pero no hay duda que su
sencillez de configuracin y la forma de saltarse los problemas de NAT lo hacen un
candidato excelente para aquellas extensiones tanto locales como externas a la vez
que aporta caractersticas de mensajera instantnea (chat, comparticin de archivos,
etc.) algo que tambin existe en otros SoftPhones compatibles con SIP, pero que al
requerir introducir determinados valores (cdecs a utilizar, servidor SIP, dominio, tipo
de NAT, etc.) lo hace una aplicacin difcil y anti-intuitiva para muchas personas.
En todo buen proyecto existen dos formas de ver el desarrollo y la evolucin de este:
-
Cmo proyecto de software libre: donde todo lo que se desarrolle debe ser
libre y gratis (algo nicamente libre no causa buena impresin).
Con botones para hacer clic y llamar, los clientes pueden comunicarse
contigo directamente desde tu sitio o correo electrnico.
Los clientes pueden llamar gratis a tu empresa desde Skype.
Funcin de volver a llamar al cliente a travs de Skype.
Permite que los clientes te llamen a travs de un nmero de Internet
local.
Tu empresa estar presente en una comunidad de ms de 440 millones
de usuarios registrados de Skype.
Proveedores y socios
No se necesita PC
Aprovecha las llamadas a tarifas formidables sin necesidad de usar un
equipo de PC.
Facil integracin
Implementa Skype para Asterisk fcilmente dentro de tu infraestructura
actual.
375
Inconvenientes
-
Las versiones de Asterisk 1.4 anteriores a 1.4.25 tienen un error que hace que
Skype no funcione correctamente. No utilice dichas versiones con SFA.
La versin de nuestro servidor es 1.4.26.2 lo que nos permite usarlo sin
problemas, no obstante las versiones ms estables de la rama 1.4 estn por
debajo de la 1.4.25.
Slo los usuarios de Skype que se crean en Skype Business Control Panel
(http://skype.com/business/) se pueden utilizar con Skype para Asterisk. La
cuenta utilizada para administrar el BCP y los miembros que se han aadido a
travs de invitaciones a los nombres de Skype o direccin de correo electrnico
no se podrn utilizar con Skype para Asterisk por el momento.
Instalacin
1. Adquirir la licencia del canal Skype.
2. Descarga de paquetes necesarios:
http://downloads.digium.com/pub/telephony/skypeforasterisk/asterisk-1.4/x8632/skypeforasterisk-1.4_1.0.6-x86_32.tar.gz
http://downloads.digium.com/pub/register/x86-32/register
376
377
Este mdulo es el controlador del canal Asterisk que ofrece los servicios de
llamadas desde y hacia la red de Skype, utilizando laqs libreras
proporcionadas por res_skypeforasterisk.so.
Si su archivo modules.conf Asterisk contiene 'autoload=yes', estos mdulos
sern cargados automticamente la prxima vez que se reinicie Asterisk. Si no,
tendr que aadir las siguientes lneas a modules.conf:
load = res_skypeforasterisk.so
load = chan_skype.so
378
379
380
debug: no
381
382
383
384
Nagios
Qu es Nagios?
Nagios es un software de monitorizacin de redes. Con Nagios podremos saber en
cada momento, que mquinas y dispositivos de la red estn encendidas, cuales estn
apagadas, cuales estn fallando, cuales funcionan correctamente, que servicios van
bien y cules van mal, en definitiva, sirve para mirar el estado casi en tiempo real de
una red, sea grande o pequea.
Originalmente se llamaba Netsaint, fue creado y es mantenido actualmente por Ethan
Galstad, junto con un grupo de desarrolladores de Software que mantienen tambin
varios plugins.
Nagios fue diseado para ser ejecutado en Linux, pero tambin se ejecuta bien en
variantes de Unix.
Nagios est licenciada bajo la GNU (General Public License Version 2 ) publicada por la
Free Software Fundation.
Qu podemos realizar con Nagios?
-
385
Descarga de Nagios
http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.0/nagios3.2.0.tar.gz/download
http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins1.4.14.tar.gz/download
http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download
http://sourceforge.net/projects/nagios/files/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz/download
http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils1.4b9.tar.gz/download
Instalacin de Nagios
Descomprimimos el tar:
tar xvf nagios.3.2.0.tar.gz
Ahora vamos a compilar los plugins para Nagios (descomprirlo dentro de la carpeta
donde se encuentra Nagios):
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
386
Accedemos a Nagios:
http://localhost/nagios
Configuracin de Nagios
Configurando nagios.cfg
Por defecto no hace falta tocar este fichero, tal y como viene de "serie" funciona
perfectamente. Posteriormente, debers cambiar cosas si quieres aprovechar al
mximo el poder de Nagios.
Deberemos asegurarnos de tener bien configurados las lneas referentes a los ficheros
principales de configuracin:
# LOG FILE
log_file=/usr/local/nagios/var/nagios.log
# OBJECT CONFIGURATION FILE(S)
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
.....
Configurando cgi.cfg
Configuramos las siguientes lneas para que "nagiosadmin" tenga acceso total a
Nagios. No queremos que nadie ms tenga acceso a l.
# MAIN CONFIGURATION FILE
main_config_file=/usr/local/nagios/etc/nagios.cfg
# PHYSICAL HTML PATH
physical_html_path=/usr/local/nagios/share
# URL HTML PATH
url_html_path=/nagios
# SYSTEM/PROCESS INFORMATION ACCESS
authorized_for_system_information=nagiosadmin
# CONFIGURATION INFORMATION ACCESS
authorized_for_configuration_information=nagiosadmin
# SYSTEM/PROCESS COMMAND ACCESS
authorized_for_system_commands=nagiosadmin
# GLOBAL HOST/SERVICE VIEW ACCESS
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
387
Configurando localhost.cfg
En el fichero hosts.cfg deberemos incluir todas las mquinas que queremos
monitorizar. Cada mquina debe tener al menos un servicio.Puede funcionar tambin
sin configurarle ningn servicio, pero no obtendramos un resultado "profesional", lo
nico que haramos sera aadir la maquina o dispositivo al MAPA de RED.
define host{
use linux-server
host_name localhost
alias
localhost
address
127.0.0.1
}
nagiosadmin
generic-contact
David
davidin073@gmail.com
388
Configurando commands.cfg
Este es posiblemente el fichero de configuracin ms importante, ya que en l, vamos
a definir absolutamente todos los servicios que queremos monitorizar.En nuestro caso
slo sern servicios de Asterisk, ms adelante veremos dicha configuracin.
Verificando la configuracin
Una vez configurados todos los ficheros de Nagios, hay que verificar la configuracin:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios/nagios.cfg
Si todo sale bien, deberemos obtener un total de CERO errores. Puede que tengamos
algn warning, pero funcionar .
Arrancamos el demonio
# service nagios restart
Monitorizando Asterisk
Lo que nos interesa conseguir con la monitorizacin de Asterisk con Nagios es lo
siguiente:
389
localhost.cfg
define service{
use
local-service
host_name
localhost
service_description Chan_skype
check_command
check_asterisk_skype
}
skype.pl
#!/usr/bin/perl -w
use Getopt::Std;
use strict;
my $asterisk_bin="/usr/bin/sudo /usr/sbin/asterisk";
my $asterisk_option="-rx";
my $asterisk_skype="skype show version";
my $return;
my $cmd = qq($asterisk_bin $asterisk_option "$asterisk_skype" );
foreach (`($cmd)`) {
if (/Skype\ For\ Asterisk/) {
$return = 0;
}
}
if($return==0){
print(" Chan_skype activado. \n");
exit($return);
}
else{
print(" Chan_skype desconectado. \n ");
exit(1);
}
390
391
392
Para hacer este cambio de protocolo hay que tener en cuenta la configuracin del
telfono que se centra en un fichero XML llamado SEP<MAC-del-Telfono>.conf.xml.
De este fichero se realizar el registro con la centralita por eso es importante.
El contenido en nuestro caso es el siguiente:
<device xsi:type="axl:XIPPhone" ctiid="1566023366">
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>5000</sshUserId>
<sshPassword>1234</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>D/M/Y</dateTemplate>
<timeZone>W. Europe Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>192.168.1.200</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>192.168.1.200</processNodeName>
</callManager>
</member>
</members>
393
</callManagerGroup>
</devicePool>
<commonProfile>
<phonePassword>1234</phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>1</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>1</webAccess>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<userLocale>
<name>Spanish</name>
<uid>1</uid>
<langCode>es</langCode>
<version>4.1(3)</version>
<winCharSet>iso-8859-1</winCharSet>
</userLocale>
<networkLocale>Spain</networkLocale>
<networkLocaleInfo>
<name>Spain</name>
<uid>64</uid>
<version>4.1(3)</version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<sipProfile>
<sipProxies>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<enableVad>false</enableVad>
<preferredCodec>g711ulaw</preferredCodec>
<natEnabled></natEnabled>
<phoneLabel>Usuario 5000</phoneLabel>
<stutterMsgWaiting>1</stutterMsgWaiting>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10
</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>1</dndControl>
<remoteCcEnable>true</remoteCcEnable>
<startMediaPort>10000</startMediaPort>
394
<stopMediaPort>20000</stopMediaPort>
<sipLines>
<line button="1">
<featureID>9</featureID>
<featureLabel>Usuario 5000</featureLabel>
<proxy>192.168.1.200</proxy>
<name>5000</name>
<displayName>Valentin</displayName>
<authName>5000</authName>
<authPassword>1234</authPassword>
<messagesNumber>50008</messagesNumber>
</line>
</sipLines>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>
<loadInformation>SIP41.8-4-2S</loadInformation>
<versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
<directoryURL></directoryURL>
<servicesURL></servicesURL>
</device>
395
apps41.8-4-1-23
cnu41.8-4-1-23
cvm41sip.8-4-1-23
dsp41.8-4-1-23
jar41sip.8-4-1-23
396
<authPassword>1234</authPassword>
<messagesNumber>50008</messagesNumber>
</line>
Tras estos pasos vamos a comprobar que funcionan las llamadas salientes y entrantes
al telfono a travs de unas pruebas:
La configuracin de los archivos sip.conf y voicemail.conf para las extensiones del
telfono es la misma que para otros telfonos, la configuracin del archivo
extensions.conf es:
[cisco]
include => acceso
exten => 5000,1,Dial(SIP/5000)
exten => 5000,n,Hangup()
397
CP7905080001SIP060412A.sbin
CP7905080001SIP060412A.zup
ld00127fae8c7c.cfg
SEP00127FAE8C7C.cnf
XMLDefault.cnf
Los dos ltimos son los ficheros de configuracin, a continuacin vemos el cdigo de
estos dos ficheros.
SEP0012FAE8C7C.cnf.xml: (Fichero por telfono)
<device xsi:type="axl:XIPPhone" ctiid="1566023366">
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>3000</sshUserId>
<sshPassword>1234</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>D/M/Y</dateTemplate>
<timeZone>W. Europe Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>192.168.1.200</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>192.168.1.200</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
398
<commonProfile>
<phonePassword>1234</phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>1</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>1</webAccess>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<loadInformation>CP7905080001SIP060412A</loadInformation>
<versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
<directoryURL></directoryURL>
<servicesURL></servicesURL>
</device>
399
400
401
403
Recurso
Descripcin
Precio
Unidades
Suma
Cisco 7941
Telfono IP (SCCP)
163,85
20 **
3.277,00
Cargador Cisco
Cargador PA100
12,95
20
259,00
UPS
Suministrador de
energa elctrica.
250,00
500,00
Hardware
4.036,00
Software
Licencia FOP 2
Licencia
27,83
27,83
Licencia Call
Center Stats
Licencia
347,87
347,87
Licencia CDR
Reports
Licencia
00,00
00,00
404
Licencia Verbio
Licencia *
375,70
Concepto
Importe ()
PRESUPUESTO
1.847,28
Hw de Implantacin
4.036,00
Sw de Implantacin
375,70
PRESUPUESTO DE IMPLANTACIN
6.258,98
405
406
ANEXOS
ANEXO A: Security.txt
==== Security Notes with Asterisk ====
PLEASE READ THE FOLLOWING IMPORTANT SECURITY RELATED INFORMATION.
IMPROPER CONFIGURATION OF ASTERISK COULD ALLOW UNAUTHORIZED USE OF YOUR
FACILITIES, POTENTIALLY INCURRING SUBSTANTIAL CHARGES.
Asterisk security involves both network security (encryption, authentication) as well as dialplan
security (authorization - who can access services in your pbx). If you are setting up Asterisk in
production use, please make sure you understand the issues involved.
* NETWORK SECURITY*
407
If you install Asterisk and use the "make samples" command to install a demonstration
configuration, Asterisk will open a few ports for accepting VoIP calls. Check the channel
configuration files for the ports and IP addresses.If you enable the manager interface in
manager.conf, please make sure that you access manager in a safe environment or protect it
with SSH or other VPN solutions.
For all TCP/IP connections in Asterisk, you can set ACL lists that will permit or deny network
access to Asterisk services. Please check the "permit" and "deny" configuration options in
manager.conf and the VoIP channel configurations - i.e. sip.conf and iax.conf.
The IAX2 protocol supports strong RSA key authentication as well as AES encryption of voice
and signalling. The SIP channel does not support encryption in this version of Asterisk.
By default, if you have libcap available, Asterisk will try to retain the CAP_NET_ADMIN
capability when running as a non-root user. If you do not need that capability you may want to
configure Asterisk with --without-cap; however, this will prevent Asterisk from being able to
mark high ToS bits under Linux.
More information on CAP_NET_ADMIN is available at:
http://www.lids.org/lids-howto/node48.html
* DIALPLAN SECURITY*
First and foremost remember this:
USE THE EXTENSION CONTEXTS TO ISOLATE OUTGOING OR TOLL SERVICES FROM ANY
INCOMING CONNECTIONS.
You should consider that if any channel, incoming line, etc can enter an extension context that
it has the capability of accessing any extension within that context.
Therefore, you should NOT allow access to outgoing or toll services in contexts that are
accessible (especially without a password) from incoming channels, be they IAX channels, FX or
other trunks, or even untrusted stations within you network. In particular, never ever put
outgoing toll services in the "default" context. To make things easier, you can include the
"default" context within other private contexts by using:
include => default
in the appropriate section. A well designed PBX might look like this:
[longdistance]
exten => _91NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN:1})
include => local
[local]
exten => _9NXXNXXX,1,Dial(Zap/g2/${EXTEN:1})
include => default
[default]
exten => 6123,Dial(Zap/1)
DON'T FORGET TO TAKE THE DEMO CONTEXT OUT OF YOUR DEFAULT CONTEXT.
There isn't really a security reason, it just will keep people from wanting to play with your
Asterisk setup remotely.
* LOG SECURITY*
408
Please note that the Asterisk log files, as well as information printed to the Asterisk CLI, may
contain sensitive information such as passwords and call history. Keep this in mind when
providing access to these resources.
Aplicacin
Explicacin
AbsoluteTimeout(length)
AddQueueMember(queue
[,interface[,penalty]])
ADSIProg(script)
(script=telcordia-1.adsi)
AgentCallbackLogin
([AgentNum][,[options][exten]])
AgentLogin
([AgentNum][,options])
AgentMonitorOutgoing
([options])
AGI(program[,arguments])
AlarmReceiver()
409
AMD()
Answer()
Descuelga inmediatamente.
AppendCDRUserField(value)
Authenticate
(password[,options])
BackGround
(filename1[&filename2...]
[,options[,language]])
BackgroundDetect(filename)
Busy([timeout])
Callingpres(presentation)
ChangeMonitor(filename_base)
ChanIsAvail
(technology1/resource1[&
technology2/resource2...]
[,option])
ChannelRedirect
(channel,[context,]
extension, priority)
Redirecciones de un canal a
otra extensin y prioridad.
410
ChanSpy([channelprefix
[,options]])
CheckGroup(max[category])
Congestion([timeout])
ContinueWhile()
ControlPlayback(filename)
DateTime
([time][,timezone[,format]])
DBdel(family/key)
DBdeltree(family/keytree)
DBget(varname=family/key)
DBput(family/key=value)
411
DeadAGI(program,args)
DigitTimeout(seconds)
Dictate([<filename>])
Directory(vm-context
[,dial-context[,options]])
DISA(password[,context[,callerid
[,mailbox[@vmcontext]]]])
DumpChan
([min_verbose_level])
DUNDiLookup
(number[,context[,options]])
EAGI()
412
Echo()
EndWhile()
EnumLookup(number)
Eval (newvar=string)
ExecIf (expression,application,
arguments)
ExecIfTime (times|daysofweek
|daysofmonth|months?
application [,arguments])
ExitWhile()
ExtenSpy
(extension[@context][,options])
ExternalIVR (shell-command
[,arg1[,arg2[,...]]])
Festival (text[,intkeys])
413
Flash()
FollowMe (followMeID,options)
Aplicacin Find-Me/Follow-Me.
ForkCDR()
GetCPEID()
GetGroupCount
([group][@category])
Gosub (named_priority)
GosubIf (condition?labeliftrue:
labeliffalse)
Goto
([[context,]extension,]priority)
GotoIf (condition?label1:label2)
GotoIfTime
(times,days_of_week,
days_of_month,months?label)
414
Hangup()
HasNewVoicemail
(vmbox[@context][:folder]
[,varname])
IAX2Provision ([template])
Cuelga inmediatamente.
ImportVar
(newvar=channel,variable)
Log (level,message)
LookupBlacklist ([options])
LookupCIDName()
Macro (macroname,arg1,arg2...)
MacroExclusive
(macroname[,arg1[,arg2[,...]]])
MacroExit()
415
MacroIf
(expression?macronameA[,
argA1][:macronameB[,argB1]])
MailboxExists
(mailbox[@context])
MeetMe
([confno][,[options][,pin])
MeetMeAdmin
(confno,command[,pin])
MeetMeCount
(confno[,variable])
Milliwatt()
MixMonitor
(fileprefix.format[,options
[,command]])
Monitor ([file_format[:urlbase]
[, fname_base][,options]])
Morsecode (string)
MP3Player (location)
MusicOnHold (class)
416
NBScat()
NoCDR()
Suprime la generacin de un
Registro de detalle de llamadas
para la llamada en el canal actual.
NoOp (text)
No ejecuta nada.
Page (technology/resource[&
technology2/resource2[&...]]
[,options])
Park (exten)
ParkAndAnnounce
(template,timeout,channel
[,return_context])
ParkedCall (exten)
PauseMonitor()
PauseQueueMember
([queuename],interface)
Pickup (extension[@context]
[& extension2@context2[&...]])
Playback (filename[,options])
417
PlayTones (tonelist)
PrivacyManager()
Progress()
Queue (queuename[,options[,
URL [,announceoverride
[,timeout]]]])
QueueLog
(queue,uniqueID,agent,
event[, additionalInfo])
Random
([probability]:[[context,]
extension,]priority)
Read
(variable[,filename][,maxdigits]
[,option][,attempts][,timeout])
ReadFile
(variable=filename,length)
Lee un archivo.
RealTime
(family,colmatch,value[,prefix])
RealTimeUpdate
(family,colmatch,value,
newcol, newval)
Record (filename:format,
silence[,maxduration][,options])
418
RemoveQueueMember
(queuename[,interface])
ResetCDR ([options])
RetryDial
(announce,sleep,loops,
technology/resource[&
Technology2/resource2...]
[,timeout][,options][,URL])
Return()
Ringing()
SayAlpha (string)
SayDigits (digits)
SayNumber (digits[,gender])
SayPhonetic (string)
SayUnixTime
([unixtime][,[timezone]
[,format]])
SendDTMF (digits[,timeout_ms])
419
SendImage (filename)
SendText (text)
SendURL (url[,option])
Set (n=value)
SetAccount (account)
SetAMAFlags (flag)
SetCallerID (clid[,a])
SetCallerPres (presentation)
SetCDRUserField (value)
SetCIDName (cname[,a])
SetCIDNum (cnum[,a])
420
SetGlobalVar (n=value)
SetGroup
(groupname[@category])
SetLanguage (language)
SetMusicOnHold (class)
SetTransferCapability
(transferCapability)
SetVar (n=value)
SIPDtmfMode (mode)
SMS (queue[,options])
SoftHangup
(technology/resource,options)
StopMonitor()
StopPlayTones()
421
System (command)
Transfer ([technology/]
destination [,options])
TryExec
(application(arguments))
TrySystem (command)
UnpauseMonitor()
UserEvent (eventname[,body])
Verbose ([level,]message)
VMAuthenticate
([mailbox][@context])
VoiceMail
([s|u|b]mailbox[@context]
[&mailbox[@context]][...])
VoiceMailMain
([[s|p]mailbox][@context])
Wait (seconds)
422
WaitExten ([seconds])
WaitForRing (timeout)
WaitForSilence (wait[,repeat])
WaitMusicOnHold (delay)
While (expr)
Zapateller (options)
Genera un tono que bloquea a los televendedores que llamen. Opciones: answer
(responde despus del tono), nocallerid
(genera el tono si no hay CID).
Nombre
AGENT
Sintaxis
Descripcin
AGENT(<agentId>[:item])
(item =status, password, name,
channel, mohclass, exten)
Obtiene informacin
sobre un agente.
ARRAY
ARRAY(var1[|var2[...][|varN]])
BASE64_
DECODE
BASE64_DECODE(<base64_string>)
Decodifica una
cadena base64.
423
BASE64_
ENCODE
BASE64_ENCODE(<string>)
BLACKLIST
BLACKLIST()
CALLERID
CDR
CDR(<name>[|options])
CHANNEL
CHANNEL(item)(item= audioreadformat,
audionativeformat, videonativeformat,
audiowriteformat, callgroup, channeltype,
language, musicclass, )
Codifica una
cadena en base64.
Comprueba en la base de
datos de Asterisk si el Callerid
est en la lista negra.
Obtiene o establece
informacin sobre el canal.
CHECKSIP
DOMAIN
CHECKSIPDOMAIN(<domain|IP>)
Comprueba si un dominio
es un dominio local.
CUT
DB
DB(<family>/<key>)
DB_DELETE
DB_EXISTS
DUNDI
LOOKUP
DB_DELETE(<family>/<key>)
DB_EXISTS(<family>/<key>)
DUNDILOOKUP(number[|context[|option)
424
Permite la consulta de un
carcter general o especfico
de los registros NAPTR o de los
tipos de NAPTR para ENUM o
de los punteros DNS
ENUMlike.
ENUM
LOOKUP
ENUMLOOKUP(number[|Method-type[|option)
ENV
ENV(<envname>)
EVAL
EVAL(<variable>)
EXISTS
EXISTS(<data>)
FIELDQTY
FIELDQTY(<varname>|<delim>)
FILTER
FILTER(<allowed-chars>|<string>)
GLOBAL
GLOBAL(<varname>)
GROUP
GROUP([category])
Obtiene o establece el
grupo de canales.
GROUP_
COUNT
GROUP_COUNT([groupname][@category])
GROUP_LIST
GROUP_LIST()
GROUP_
MATCH_
COUNT
GROUP_MATCH_COUNT
(groupmatch [@category])
425
IAXPEER
IF
IFTIME
ISNULL
KEYPAD HASH
IAXPEER(<peername|CURRENTCHANNEL>)
(peername=ip,status,mailbox,context,
expire,dynamic,callerid_name,
callerid_num, codecs)
IF(<expr>?[<true>][:<false>])
IFTIME(<timespec>?[<true>][:<false>])
(timespec=times,day_of_week,
day_of_month,months)
Temporal condicional:
Devuelve los datos siguientes
a ? si es cierto sino los
datos siguientes a :.
ISNULL(<data>)
KEYPADHASH(<string>)
LEN
LEN(<string>)
MATH
MATH(<number1><op>
<number 2> [,<type>])
Realiza Funciones
matemticas.
MD5
MD5(<data>)
MUSICCLASS
MUSICCLASS()
QUEUE_
MEMBER_
COUNT
QUEUE_MEMBER_COUNT(<queuename>)
Cuenta el nmero de
miembros de una cola.
QUEUE_
MEMBER_LIST
QUEUE_MEMBER_LIST(<queuename>)
426
QUEUE_
WAITING_
COUNT
QUEUE_WAITING_COUNT(<queuename>)
RAND
RAND([min][|max])
REALTIME
REALTIME(family|fieldmatch[value])
REGEX
Expresiones regulares.
SET
SET(<varname>=[<value>])
SHA1
SHA1(<data>)
SIP_HEADER
SIP_HEADER(<name>[,<number>])
Obtiene el encabezado
SIP especificado.
SIPCHANINFO
SIPCHANINFO(item)(item=peername,
peerip, useragent, peername)
SIPPEER(<peername>[|item])(tem=ip, mailbox,
context, expire, dynamic, callerid_name,
callerid_number, status, language, useragent, )
SIPPEER
SORT
SORT(key1:val1[...][,keyN:valN])
STAT
STAT(<flag>,<filename>)
STRFTIME
STRFTIME([<epoch>][|[timezone][|for)
427
STRPTIME
STRPTIME(<datetime>|<timezone>|<for)
TIMEOUT
TIMEOUT(timeouttype)
URIDECODE
URIDECODE(<data>)
Decodifica un string de
acuerdo a RFC 2396.
URIENCODE
URIENCODE(<data>)
VMCOUNT
VMCOUNT(vmbox[@context][|folder])
modules.conf
enum.conf
oss.conf
amd.conf
extconfig.conf
phone.conf
telcordia-1.adsi
extensions.conf
privacy.conf
adsi.conf
extensions.ael
queues.conf
adtranvofr.conf
features.conf
res_mysql.conf
agents.conf
festival.conf
res_odbc.conf
alarmreceiver.conf
followme.conf
res_snmp.conf
alsa.conf
func_odbc.conf
rpt.conf
asterisk.conf
gtalk.conf
rtp.conf
chan_dahdi.conf
http.conf
say.conf
cdr.conf
iax.conf
sip.conf
cdr_manager.conf
iaxprov.conf
sip_notify.conf
cdr_mysql.conf
indications.conf
skinny.conf
cdr_odbc.conf
jabber.conf
sla.conf
428
cdr_pgsql.conf
logger.conf
smdi.conf
cdr_tds.conf
manager.conf
udptl.conf
codecs.conf
meetme.conf
users.conf
dahdi_channels.conf
mgcp.conf
voicemail.conf
dnsmgr.conf
musiconhold.conf
vpb.conf
dundi.conf
osp.conf
modules.conf
Este archivo controla los mdulos que se cargan y los que no al iniciar Asterisk a travs
de load=> o noload =>.Este archivo es un componente clave para construir una
instalacin segura de Asterisk.
El archivo modules.conf empieza con el contexto [modules].
La opcin autoload hace que Asterisk al inicio cargue todos los mdulos contenidos en
el fichero modules que est situado en /usr/lib/asterisk/.Lo recomendable es cargar
solo los mdulos que se necesiten rellenando este archivo con sentencias load=> y
evitar que se carguen los no necesarios con sentencias noload=>.
Un ejemplo es:
[modules]
autoload=no ; set this to yes and Asterisk will load any
; modules it finds in /usr/lib/asterisk/modules
load => res_adsi.so
load => pbx_config.so ; Requires: N/A
load => chan_iax2.so ; Requires: res_crypto.so, res_features.so
load => chan_sip.so ; Requires: res_features.so
load => codec_alaw.so ; Requires: N/A
load => codec_gsm.so ; Requires: N/A
load => codec_ulaw.so ; Requires: N/A
load => format_gsm.so ; Requires: N/A
load => app_dial.so ; Requires: res_features.so, res_musiconhold.so
429
430
adtranvofr.conf
Antes de la VoIP, la VoFR gozo de una breve fama por ser un medio de llevar voz
empaquetada. El apoyo que lo presto el equipo Adtran, es parte de la historia de
Asterisk.
A pesar de que esta caracterstica esta es desuso, el archivo ejemplo que nos
proporciona Asterisk es:
; ; Voice over Frame Relay (Adtran style)
431
;
; Configuration file
[interfaces]
;
; Default language
;
;language=en
;
; Lines for which we are the user termination. They accept incoming
; and outgoing calls. We use the default context on the first 8 lines
; used by internal phones.
;
context=default
;user => voice00
;user => voice01
;user => voice02
;user => voice03
;user => voice04
;user => voice05
;user => voice06
;user => voice07
; Calls on 16 and 17 come from the outside world, so they get
; a little bit special treatment
context=remote
;user => voice16
;user => voice17
;
; Next we have lines which we only accept calls on, and typically
; do not send outgoing calls on (i.e. these are where we are the
; network termination)
;
;network => voice08
;network => voice09
;network => voice10
;network => voice11
;network => voice12
agents.conf
Para configurar los agentes que atendern las llamadas entrantes a las colas
configuradas tenemos este archivo.
El fichero tiene la siguiente estructura:
432
alarmreceiver.conf
El archivo ALARMRECEIVER.CONF es utilizado por la aplicacin AlarmReceiver(), que
permite a Asterisk aceptar las alarmas con el protocolo SIA (Ademco Contact ID
protocol). Cuando se recibe una llamada de un panel de alarma, es redirigida a un
contexto que llama a la aplicacin AlarmReceiver() que a su vez lee el archivo de
configuracin ALARMRECEIVER.CONF y realiza las acciones configuradas segn las
necesidades.
El fichero de ejemplo es el siguiente:
[general]
;Especifica el formato de fecha y hora
timestampformat = %a %b %d, %Y @ %H:%M:%S %Z
; Especifica el comando que se ejecutar cuando la persona que llama cuelga
;eventcmd = yourprogram -yourargs
;Especifica el directorio de impresin para los archivos de eventos.
eventspooldir = /tmp
;Almacena los eventos hasta que la persona se conecta ,entonces los guarda en un archivo.
logindividualevents = no
;El tiempo de espera para recibir el primer dgito DTMF.
fdtimeout = 2000
;El tiempo de espera para la recepcin de dgitos DTMF posterior al primero
sdtimeout = 200
alsa.conf
La alsa.conf archivo de configuracin de Asterisk permite la configuracin de los
canales de ALSA (Advanced Linux Sound Architecture) dentro de Asterisk.
433
Los canales de ALSA permiten las llamadas a / desde dispositivos ALSA, usando
dispositivos de entrada / salida. Esto permite que unos auriculares y un micrfono
conectado a una tarjeta de sonido, por ejemplo, sean utilizados como un SoftPhone.
El fichero de ejemplo es el siguiente:
[general]
autoanswer=yes ;Contestar automticamente a llamadas a canales ALSA
context=local ;contexto en el que estn las extensiones que utilizan ALSA
extension=s ;Extensin a marcar
;language=en
;input_device=hw:0,0 ;Indica el nombre del dispositivo ALSA a utilizar para la captura
;de sonido, es decir, para hablar
;output_device=hw:0,0 ;Indica el nombre del dispositivo ALSA a usar para reproducir
;sonido, es decir, para escuchar.
Un archivo similar a este pero para el servicio OSS es el oss.conf, slo uno de los dos
canales pueden ser cargados al mismo tiempo, por lo que si queremos utilizar ALSA
hay que modificar el archivo modules.conf:
noload => chan_oss.so
load => chan_alsa.so
amd.conf
Este es el fichero de configuracin de la aplicacin AMD(Answering Machine
Detection) que detecta la existencia de un contestador automtico.
El fichero ejemplo es el siguiente:
[general]
initial_silence = 2500; mximo tiempo en silencio antes del saludo(greeting).Si se pasa la
;variable AMDSTATUS=MACHINE.
greeting = 1500 ;longitud mxima de un saludo. Si se pasa la variable AMDSTATUS=MACHINE.
after_greeting_silence = 800; silencio despus de detectar un saludo. Si se pasa la variable
;AMDSTATUS=HUMANOS.
total_analysis_time = 5000 ; tiempo mximo permitido para el algoritmo para decidir si es
;HUMAN o MACHINE
min_word_length = 100 ;la duracin mnima de la voz a considerarse como una palabra.
between_words_silence = 50 ; duracin mnima de silencio despus de una palabra.
maximum_number_of_words = 3 ; el nmero mximo de palabras en el saludo. Si se pasa la
;variable AMDSTATUS=MACHINE.
asterisk.conf
El archivo asterisk.conf define las ubicaciones de los ficheros de configuracin, el
fichero de cola(spool), y un lugar para escribir los ficheros de log. Se recomienda que
se entienda configuracin predeterminada y las consecuencias de cambiarla.
El asterisk.conf se genera automticamente cuando se ejecuta make samples en la
instalacin de Asterisk basndose en la informacin que recopila sobre su sistema.
El fichero consta de dos/tres contextos:
434
435
chan_dahdi.conf
Asterisk interpreta los canales definidos en dahdi-channels.conf a travs de este
fichero de configuracin.
Como mnimo su contenido debe ser:
[channels]
#include dahdi-channels.conf
cdr.conf
El archivo cdr.conf se utiliza para habilitar el registro de llamadas en una base de datos.
El almacenamiento de los registros de llamadas es til para todo tipo de propsitos,
incluyendo la facturacin, la prevencin del fraude, las evaluaciones de calidad de
servicio. Este fichero contiene algunos parmetros generales que no estn
especificados para cualquier base de datos, sino que indican cmo se deben manejar
Asterisk en el paso de informacin a la base de datos. Todas estas opciones estn en el
contexto [general]:
batch : Acepta s o no. Permite escribir datos en un buffer en lugar de escribir a la base
de datos al final de cada llamada, para reducir la carga en el sistema.
enable : Acepta s o no. Especifica si utilizar o no el registro CDR. El valor por defecto
es s.
safeshutdown :Acepta s o no. Si safeshutdown = s evitar queAsterisk se cierre por
completo hasta que el buffer se vace y toda la informacin se escriba en la base de
datos. Si este parmetro es No y se apaga Asterisk la informacin que an resida en
los buffers se perder.
scheduleronly :Acepta s o no. Si est generando un gran volumen de CDR en un
sistema que estn guardndose en una base de datos remota, scheduleronly =s puede
beneficiarnos.
Dado que el scheduler no inicia una nueva tarea hasta que no finaliza la anterior y que
el CDR escribe lentamente esto puede ser negativo para otros procesos que requieren
dicho scheduler.
size :Acepta un entero .Define el nmero de CDRs a acumularse en el bfer antes de
escribir en la base de datos. El valor por defecto es 100.
time :Accepts an integer (in seconds) as its argument. Sets the number of seconds
before Asterisk flushes the buffer and writes the CDRs to the database, regardless of
the number of records in the buffer (as defined by size ). Acepta un nmero entero (en
segundos). Establece el nmero de segundos antes de que Asterisk vace el buffer y
436
escriba los CDR en la base de datos. El valor por defecto es 300 segundos (5 minutos).
[general]
;batch=no
;enable=yes
;safeshutdown=yes
;scheduleronly=no
;size=100
;time=300
cdr_manager.conf
El archivo cdr_manager.conf slo contiene un contexto [general] y una nica opcin,
activada, que se puede utilizar para especificar si la API de Asterisk Manager genera
Eventos CDR.
[general]
enabled = s
cdr_mysql.conf
Asterisk puede almacenar los datos de CDR en una base de datos MySQL configurando
aqu los datos de dicha base de datos.De esta manera:
[global]
hostname=127.0.0.1
dbname=nombredatabase
table=cdr
password=passdemysql
user=mysqluser
port=3306
sock=/tmp/mysql/mysql.sock
437
cdr_odbc.conf
Asterisk puede almacenar los datos de CDR en una base de datos local o remota a
travs de la interfaz ODBC. El archivo cdr_odbc.conf contiene la informacin que
necesita Asterisk para conectarse a la base de datos.
El mdulo de cdr_odbc.so intentar cargar el archivo cdr_odbc.conf, y si esta la
informacin para conectarse a la base de datos, los datos del CDR se registrarn all.
El archivo que se genera al hacer make samples en la instalacin de Asterisk es:
;[global]
;dsn=MySQL-test
;username=username
;password=password
;loguniqueid=yes
;dispositionstring=yes
;table=cdr
;usegmtime=no
cdr_pgsql.conf
Asterisk puede almacenar los datos de CDR en una base de datos PostgreSQL a travs
del mdulo cdr_pgsql.so. Cuando el mdulo se carga la informacin necesaria se
puede leer en el archivo cdr_pgsql.conf, y Asterisk se conectar a la base de datos
PostgreSQL.
El archivo que se genera al hacer make samples en la instalacin de Asterisk es:
[global]
;hostname=localhost
;port=5432
;dbname=asterisk
;password=password
;user=postgres
;table=cdr ;SQL table where CDRs will be inserted
cdr_tds.conf
Asterisk puede tambin almacenar los datos de los CDR en una base de datos FreeTDS
(incluidos los de MS SQL) usando el mdulo de cdr_tds.so. El archivo cdr_tds.conf se
lee tras cargar el mdulo y tras establecerse la conexin, los datos de CDR se escribirn
en la base de datos.
;[global]
;hostname=fs.malico.loc
;port=1433
;dbname=MalicoHN
;user=mangUsr
;password=
;charset=BIG5
;table=cdr
438
codecs.conf
La mayora de los cdecs no tienen parmetros configurables.
Sin embargo algunos cdecs son capaces de comportarse de maneras diferentes. Esto
significa principalmente que pueden ser optimizados para un objetivo particular.
El archivo codecs.conf es bastante nuevo en Asterisk, y permite solamente la
configuracin de los parmetros de Speex . La configuracin se explica por s misma,
mientras usted est familiarizado con el protocolo Speex.
Este fichero tambin le permite configurar el PLC (Packet Loss Ocultacin).
Es necesario definir un contexto [PLC] en la seccin e indicar genericplc => true.
Un ejemplo de este archivo es:
[speex]
; CBR encoding quality [0..10] used only when vbr = false
quality => 3
; codec complexity [0..10] tradeoff between cpu/quality
complexity => 2
; perceptual enhancement [true / false] improves clarity of decoded speech
enhancement => true
; voice activity detection [true / false] reduces bitrate when no voice detected, used
;only for CBR (implicit in VBR/ABR)
vad => true
; variable bit rate [true / false] uses bit rate proportionate to voice complexity
vbr => true
; available bit rate [bps, 0 = off] encoding quality modulated to match this target bit
;rate not recommended with dtx or pp_vad - may cause bandwidth spikes
abr => 0
; VBR encoding quality [0-10] floating-point values allowed
vbr_quality => 4
; discontinuous transmission [true / false] stops transmitting completely when silence
; is detected pp_vad is far more effective but more CPU intensive
dtx => false
; preprocessor configuration these options only affect Speex v1.1.8 or newer enable
;preprocessor [true / false] allows dsp functionality below but incurs CPU overhead
preprocess => false
; preproc voice activity detection [true / false] more advanced equivalent of DTX,
;based on voice frequencies
pp_vad => false
; preproc automatic gain control [true / false]
pp_agc => false
pp_agc_level => 8000
; preproc denoiser [true / false]
pp_denoise => false
; preproc dereverb [true / false]
pp_dereverb => false
pp_dereverb_decay => 0.4
pp_dereverb_level => 0.3
[plc]
; for all codecs which do not support native PLC this determines whether to perform
;generic PLC there is a minor performance penalty for this
genericplc => true
439
dahdi_channels.conf
Este archivo se genera durante la configuracin de DAHDI y contiene los datos de las
tarjetas de las que disponemos, bien sean de RDSI/Primarios como de telefona con
varios puertos FXS y FXO. Podremos configurar el canal de cada una de estas.
dnsmgr.conf
Este archivo se utiliza para configurar Asterisk si se deben realizar bsquedas de DNS
de forma regular, y para saber con qu frecuencia se deben realizar las operaciones de
bsqueda.
[general]
;enable=yes ; enable creation of managed DNS lookups default is 'no'
;refreshinterval=1200 ; refresh managed DNS lookups every <n> seconds default is
; 300 (5 minutes)
dundi.conf
El protocolo de DUNDi se utiliza para buscar de forma dinmica direcciones de
telfonos VoIP y conectarse a ellas. A diferencia de ENUM, DUNDi no tiene autoridad
central.
El [general] de dundi.conf contiene los parmetros relacionados con el funcionamiento
global del cliente y el servidor de DUNDi:
[general]
department=IT
organization= toronto.example.com
locality=Toronto
stateprov=ON
country=CA
email=support@toronto.example.com
phone=+19055551212
; Specify bind address and port number.Default is 4520 El valor predeterminado
;es 4520
;bindaddr=0.0.0.0
port=4520
entityid=FF:FF:FF:FF:FF:FF
ttl=32
autokill=yes
;secretpath=dundi
enum.conf
El sistema ENUM (Electronic Numbering) se usa junto con el DNS para asignar E.164 a
direcciones de correo electrnico, sitios web, direcciones de VoIP, etc.
Un nmero ENUM se crea en DNS invirtiendo el nmero de telfono, la separacin de
cada dos dgitos con un punto, y anexar e164.arpa (la zona principal DNS).
Si desea Asterisk para realizar bsquedas ENUM, es necesario configurar el dominio (s)
en el que se van a realizar las bsquedas dentro del archivo enum.conf.
440
extconfig.conf
Asterisk puede escribir los datos de configuracin y cargar los datos de configuracin
en una base de datos utilizando el motor de configuracin externa (tambin conocido
como de tiempo real).
Esto nos permite asignar entradas especiales en tiempo de ejecucin que permiten la
creacin dinmica y la carga de objetos, entidades y peers.
Estos mappings se asignan y se configuran en el archivo extconfig.conf, siendo
utilizados tanto por res_odbc como en tiempo real.
extensions.conf
El archivo de configuracin extensions.conf es seguramente el fichero ms
importante para la puesta en marcha de nuestra centralita. En l se define todo lo
relacionado con el plan de llamadas. Cualquier nmero marcado desde una extensin
ser procesado dentro de este archivo.
Est dividido en tres bloques:
En Globals configuramos las variables que queremos usar en el Dialplan, por ejemplo si
llamamos a menudo un nmero y queremos configurarlo con una sigla o un nombre es
en esta parte del archivo donde lo podemos hacer.
441
extensions.ael
La equivalencia del extensions.conf en AEL2.
features.conf
El archivo features.conf es donde vamos a configurar el parqueo de las llamadas y
asignar una funcin a una determinada combinacin de teclas. Es aqu, por ejemplo,
donde definimos cuales son las teclas que tenemos que hundir para transferir una
llamada, grabarla, iniciar una aplicacin, y muchas ms.
[general]
parkext => 700 ; La extensin donde transferir la llamada a parquear
parkpos => 701-710 ; el numero de extensiones reservadas para parquear las llamadas .
context => parkedcalls ; el contexto usado para parquear las llamadas (luego hay que
; definirlo en extension.conf).
parkinghints = yes ; si est en yes podemos monitorear las extensiones para ver el
; parking.
parkingtime => 45 ; Numero de segundos despus de los cuales la llamada parqueada es
; transferida a la extensin definida por el prximo parmetro.
comebacktoorigin = yes ; si est en yes la llamada parqueda, despus del parkingtime,
; vuelve a la extensin que la parque, si est en no la llamada
; ser transferida al contexto parkedcallcallstimeout a la
; extensin 's' y la prioridad '1' que tendremos que crear en
; extensions.conf.
courtesytone = beep ; El sonido que ser enviado a la llamada parqueada cuando alguien
; la llama o cuando empieza y termina la grabacin de la llamada .
parkedplay = caller ; A quien enviar el beep cuando se llama la extensin parqueada.
; Puede ser: parked(canal parqueado), caller(llamante) o both(ambos) .
parkedcalltransfers = caller ; Habilita o deshabilita la secuencia de tonos para transferir
; la llamada cuando es una llamada parqueada. Puede ser:
; habilitar para: callee(llamado), caller (llamante)o both
; (ambos). Si se quiere deshabilitar hay que poner no.
parkedcallreparking = caller ; Habilita o deshabilita la secuencia de tonos para parquear
; una llamada cuando era ya una llamada parqueada. Puede
; ser: habilitar para: callee(llamado), caller (llamante)o
; both(ambos). Si se quieres deshabilitar hay que poner no.
parkedmusicclass=default ; La clase de msica en espera que escuchar la extensin que
; ha sido parqueada.
transferdigittimeout => 5 ; Numero de segundos de espera entre cada dgito cuando se
; esta transfiriendo una llamada.
xfersound = beep ; El sonido que indicar que la transferencia de la llamada "asistida" se
; complet.
xferfailsound = beeperr ; El sonido que indicar que la transferencia de la llamada fracas
pickupexten = *8 ; Secuencia a marcar para poder recibir una llamada de un usuario de tu
; mismo grupo.
featuredigittimeout = 2000 ;numero de milisegundos entre cada dgito cuando se activan
; le funcionalidades que veremos ms adelante.
atxfernoanswertimeout = 15 ; Tiempo mximo para contestar una llamada transferida .
atxferdropcall = no ; Si quien transfiere una llamada con el mtodo "asistido" (indicando a
; quien trasfiere) cuelga antes que la llamada sea transferida
; completamente, Asterisk devuelve la llamada a quien la estaba
; transfiriendo. Si est en yes la llamada no se devuelve y se
; considera terminada.
atxferloopdelay = 10 ; Numero de segundos de espera antes de devolver la llamada (si
442
; atxferdropcall = no)
atxfercallbackretries = 2 ; Las veces que se intentar devolver la llamada.
;Si en sip.conf tenemos el parmetro careinvite igual a yes es probable que las funcionalidades
; que veremos en el contexto siguiente no resulten.
[featuremap]
blindxfer => # ; la tecla que hay que marcar para empezar la transferencia de una llamada .Tras
; marcar esta secuencia marcamos la extensin a transferir.
disconnect => * ; la tecla que hay que marcar para terminar la llamada .
automon => *1 ; La secuencia de teclas que hay que hundir para grabar la llamada (en dos
; archivo, uno para cada interlocutor) .
atxfer => *2 ; La secuencia de teclas para una transferencia de llamada "asistida". Tras marcar
; esta secuencia marcamos la extensin a transferir. La diferencia con blindxfer es
; que nos permite hablar con el interlocutor al que le transferiremos la llamada .
parkcall => *7 ; La secuencia de teclas para parquear la llamada. Podemos usar esta secuencia
;o transferir directamente la llamada a la extensin 700.
automixmon => *3 ; La secuencia de teclas que hay que marcar para grabar la llamada en un
; nico archivo mezclando las voces de los dos interlocutores.
; En el siguiente contexto del archivo podemos aadir funcionalidades particulares que luego
; podremos usar a lo largo de una llamada.
[applicationmap]
; la sintaxis para estas funcionalidades es:
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>], <Application>
;[,<AppArguments>[,MOH_Class]]
; FeatureName -> El nombre de la funcionalidad;
; DTMF_sequence -> la secuencia de teclas para activar la funcionalidad.
; ActivateOn -> Aqu se define para quien activar la funcionalidad. Los valores son self y peer.
; Con self la funcionalidad se activa para quien la requiere, con peer para el otro canal.
; ActivatedBy -> Este parmetro define quien tiene acceso a la funcionalidad. Las opciones son:
; caller (llamante), callee (llamado) o both (ambos). ;Predefinido es both.
;Application -> La aplicacin que se va a ejecutar.
;AppArguments -> Las opciones que queremos usar con la aplicacin.
; MOH_Class -> la clase de msica en espera que escuchar el canal libre mientras se ejecuta la
; funcionalidad.
festival.conf
La aplicacin Festival permite a Asterisk pasar de texto a voz .Tras la instalacin de la
aplicacin la configuracin del fichero festival.conf es sencilla, estas son la lneas que
hay que modificar/activar:
[general]
host=localhost
port=1314
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\N
followme.conf
El archivo followme.conf se utiliza para configurar La aplicacin FollowMe ().Este
archivo nos permite hacer una cosa muy sencilla: definir una serie de nmeros
(extensiones) donde desviar la llamada si a la extensin predefinida nadie contesta o si
ha sido activada esta opcin. Claramente si el desvo es hacia otras extensiones
internas no tendr ningn costo, si lo hacemos hacia nmeros fijos y/o mviles para
443
func_odbc.conf
La funcin func_odbc proporciona un mecanismo sencillo para conectarse a bases de
datos ODBC mediante el Dialplan. Las consultas SQL se definen en el presente archivo
de configuracin, y una funcin Dialplan se crea automticamente.
El fichero de configuracin que genera Asterisk al hacer make samples en su
instalacin es:
444
gtalk.conf
Este archivo es utilizado para especificar los parmetros para la conexin con Google
Talk. El fichero de configuracin que genera Asterisk al hacer make samples en su
instalacin es:
;[general]
;context=default
;allowguest=yes
;[guest]
;disallow=all
;allow=ulaw
;context=guest
;[ogorman]
;username=ogorman@gmail.com
;disallow=all
;allow=ulaw
;context=default
;connection=asterisk
http.conf
Como ya se explico en el apartado AMI y AJAM Asterisk posee un demonio HTTP muy
sencillo, que es utilizado por el Asterisk GUI y AJAM.
El fichero de configuracin que genera Asterisk al hacer make samples en su
instalacin es:
[general]
;enabled=yes
;enablestatic=yes
bindaddr=127.0.0.1
bindport=8088
;prefix=asterisk ; Prefix allows you to specify a prefix for all requests to the server.
;The default is "asterisk" so that all requests must begin with /asterisk.
445
;[post_mappings]
;uploads = /var/lib/asterisk/uploads/
iax.conf
Similar a sip.conf, el archivo iax.conf es donde se configuran las opciones relacionadas
con el protocolo IAX.
[general]
bindport=4569 ; el puerto UDP usado por este protocolo. Este parmetro va configurado antes
; del bindaddr.
bindaddr=192.168.1.200 ; la IP que Asterisk usar para "escuchar" los pedidos de conexiones.
;0.0.0.0 para todas las IP del computador.
delayreject=yes ; Mejora la seguridad contra "brute force password attacks" retrasando el
; envo de los rechazos de autenticacin.
srvlookup=yes ; permite una gestin optimizada de los DNS .
accountcode=lss0101 ;genera una cuenta general con la cual grabar las llamadas.
language=en ; lenguaje predefinido de la voces (ingles).
disallow=all ; desactivamos todos los codecs (audio y video).
allow=ulaw ; definimos unos cuantos codecs de audio predefinido's para todas las extensiones.
allow=alaw
allow=gsm
;Ahora empezamos con la configuracin de las extensiones iax2.
[guest] ; dejamos esta parte si queremos configurar un usuario husped (sin contrasea)
type=user ; puede solo recibir llamadas .
context=default ; el contexto que usar en extensions.conf .
callerid="Guest IAX User" ; el identificativo del usuario husped.
;Ahora configuramos una extensin de prueba
[david]
type=friend ; tipo friend es peer y user a la vez .
host=dynamic ; si el cliente no se conecta siempre desde un IP
;determinado hay que indicar dynamic .
secret=password ;contrasea .
context=default ; contexto asociado a este usuario en extensions.conf
mailbox= 1234@default ; casilla del correo de voz del usuario.
qualify=yes; para averiguar peridicamente con un ping si el usuario est conectado al
;servidor.
callerid = "marko" ; identificativo de llamada del usuario.
iaxprov.conf
Este archivo es utilizado por Asterisk para la actualizacin del firmware del dispositivo
IAXy.
indications.conf
El archivo de indications.conf se usa para indicarle a Asterisk cmo generar los
distintos tonos caractersticos de diferentes partes del mundo, ya que un tono de
llamada en Inglaterra es diferente de un tono de marcado en Canad. Este archivo
consta de una lista de sonidos de un sistema de telfono que pueden ser necesitados
(tono de llamada, seales de ocupado, y as sucesivamente), seguida por las
446
jabber.conf
El archivo jabber.conf especifica la informacin necesaria para permitir que Asterisk
interactue con un servidor XMPP (Jabber).
El fichero que Asterisk genera durante su instalacin al hacer make samples es:
[general]
;debug=yes
;;Turn on debugging by default.
;autoprune=yes ;;Auto remove users from buddy list.
;autoregister=yes ;;Auto register users from buddy list.
;[asterisk]
;type=client
;;Client or Component connection
;serverhost=astjab.org
;;Route to server for example, talk.google.com
;username=asterisk@astjab.org/asterisk ;;Username with optional roster.
;secret=blah
;;Password
;port=5222
;;Port to use defaults to 5222
;usetls=yes
;;Use tls or not
;usesasl=yes
;;Use sasl or not
;buddy=mogorman@astjab.org
;;Manual addition of buddy to list.
;statusmessage="I am available"
;;Have custom status message for
;;Asterisk.
;timeout=100
;;Timeout on the message stack.
447
logger.conf
En el archivo logger.conf es donde vamos a configurar todos los registros
(/var/log/asterisk/) de las actividades de Asterisk.
Tiene dos secciones, [general] y [logfile].
[general]
; si queremos que cada archivo de registro termine con el nombre de nuestro dominio tenemos
; que activar el parmetro que siguiente.
appendhostname = yes
; con queue_log decidimos si queremos tener un registro de las colas de espera (predefinido es
;yes).
queue_log = yes
; El nombre del archivo donde guardamos los registros de las colas en
;espera (predefinido queue_log)
queue_log_name = queue_log ; Los archivos de registro se pueden volver de un tamao
;bastante grande volviendo poco cmoda su consulta. Para evitar esto podemos usar el
; programa logrotate. En esta parte del archivo decidimos como queremos "rotar" los archivos.
; de este modo el archivo ms viejo tendr el numero secuencial ms alto.
rotatestrategy = rotate
; De manera predefinida Asterisk registra en un archivo los eventos genricos .
event_log = yes
[logfiles] ;El [logfiles] define los tipos de informacin que desea registrar. Hay filas mltiples
; para la varios bits de informacin que se registran y se fuera necesario para las
; entradas de registro por separado en archivos diferentes. El formato general para las
; lneas en el [logfiles] es : filename=> nivels, donde filename es el nombre del archivo
; donde se guarda la informacin registrada y los niveles son los tipos de informacin
;que se desea guardar.
; Podemos registrar en cada archivo y consola los siguientes eventos: debug ,notice ,warning
; error,verbose ,dtmf
console => notice,warning,error,debug,dtmf
messages => notice,warning,debug
full => error
manager.conf
La interfaz de Asterisk Manager es una API que los programas externos pueden utilizar
para comunicarse y controlar Asterisk igual que si lo hara desde la consola de Asterisk.
El Manager le da a los programas la capacidad de ejecutar comandos y solicitar
informacin desde el servidor de Asterisk. Sin embargo, no es muy seguro y por esto
slo debe utilizarse en una red de rea local de confianza y negar el permiso de
construcciones permitiendo restringir el acceso a determinadas extensiones o
subredes.
Un ejemplo del manager.conf es:
[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1
448
[admin]
secret = amp111
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.0
read = system,call,command,agent,user,originate
write = system,call,command,agent,user,originate
meetme.conf
MeetMe() es una de las aplicaciones ms notables de Asterisk. Le permite crear
salas de conferencias de audio. Este concepto bastante simple ha demostrado ser
extremadamente costoso de implementar en todas las PBX de otros, pero lo que
parece ser un gran negocio para ellos es fcil en Asterisk.
Ya sea mediante el uso de un servidor dedicado, o mediante el uso de un servicio,
Asterisk ofrece esta funcionalidad como una aplicacin estndar.
El meetme.conf sirve para crear estticamente conferencias:
[general]
audiobuffers=32 ; Numero de paquetes audio de 20ms que sern guardados en un buffer de
; memoria cuando pertenecen a canales que no son DADHI. Esto permite sincronizar el audio de
; los distintos participantes y evitar retrasos. Puede ser un valor entre 2 y 32 .
schedule=yes ; con este parmetro le decimos a Asterisk que las conferencias pueden ser
; programadas (solamente en realtime).
logmembercount=yes ; este parmetro sirve para actualizar el realtime cada vez que un
; usuario entra/sale de una conferencia.
fuzzystart=300 ; Tenemos una conferencia programada a las 8 de la maana. Este parmetro
; sirve para definir si un usuario puede o no entrar a la conferencia si esta no ha empezado. 300
; es el numero de segundos. Ejemplo. Si el usuario entra a la 7:55 ser aceptado porque puede
; entrar hasta 5 minutos (300 segundos) antes del comienzo de la conferencia. Si entra a las
; 7:50 ser rechazado.
earlyalert=3600 ; Este valor (siempre en segundos) define si al usuario que intenta entrar en
; una conferencia programada le ser anunciado o no que la conferencia todava no ha
; empezado. Si entra cuando falta menos de una hora recibir este aviso. Si entra ms de
;una hora antes se le anunciar que la conferencia no existe.
endalert=120 ; cuando faltarn 120 segundos para terminar la conferencia programada, se le
; anunciar a todos los participantes.
[rooms] ; desde esta etiqueta empieza la configuracin de las conferencias .
; la sintaxis es conf => confno[,pin][,adminpin]
;un cuarto de conferencias cuya extensin es 3500 y a todos los usuarios es permitido entrar.
conf => 3500
;Un cuarto de conferencias cuya extensin es la 3501 y para entrar los usuarios tendrn
; que marcar el PIN 1234.
conf => 3501,1234 .
;En esta conferencia los usuarios tendrn que usar el PIN 1234 y los
;administradores el PIN 5678.
conf => 3502,1234,5678
mgcp.conf
El protocolo MGCP (Media Gateway Control Protocol ) est prcticamente obsoleto
probablemente debido al hecho de que la SIP ha robado la atencin a los dems
449
protocolos VoIP (excepto al IAX, por supuesto). Debido a esto, para utilizar en Asterisk
un canal de MCGP en un entorno de produccin debe estar preparado para llevar a
cabo extensas pruebas, estar dispuestos a pagar por tener caractersticas y parches y
si tienen conocimientos altos sobre el protocolo.
Dicho esto, no estamos dispuestos a pronunciar que MGCP ha muerto y es que
muchos creen que MGCP va a llenar un hueco o vaco que todava no ha sido
descubierto...
musiconhold.conf
El archivo de musiconhold.conf se utiliza para configurar las diferentes clases de
msica y sus ubicaciones para su uso en aplicaciones de msica en espera.
osp.conf
El OSP (Open Settlement Protocol) est un documentado oficialmente en ETSI TS 101
321 un Instituto Europeo de Normas de Telecomunicacin (ETSI), que sali de la labor
de la TIPHON grupo de trabajo.
oss.conf
El archivo de oss.conf se utiliza para usar el OSS (Open Sound System) y permitir la
comunicacin con una tarjeta de sonido compatible. Es similar a ALSA pero es este
ltimo el preferido.
phone.conf
El archivo phone.conf se utiliza para configurar una tarjeta de QuickNet PHONEJACK.
La tarjeta de PHONEJACK parece proporcionar algo as como una interfaz FXS, en la
que puede conectar un telfono analgico y pasar las llamadas a travs de Asterisk.
El fichero de ejemplo de Asterisk es:
[interfaces]
mode=immediate
;mode=dialtone
;mode=fxo
;mode=sig
format=slinear
;format=g723.1
echocancel=medium
;silencesupression=yes
;context=local
;txgain=100%
;rxgain=1.0
;device => /dev/phone0
450
privacy.conf
El archivo de privacy.conf se utiliza para controlar el nmero mximo de intentos que
un usuario tiene de introducir su nmero telefnico.
La aplicacion PrivacyManager () es la que determina si un identificador de llamadas se
establece para la llamada entrante.
[general]
maxretries = 2
queues.conf
Asterisk proporciona como funcionalidad bsica un sistema de colas. Usted puede
hacer esto en el archivo de personalizacin queues.conf.
[general]
persistentmembers = yes ; si usamos agentes dinmicos su configuracin se guardar
; en la base de datos de Asterisk. De esta forma si Asterisk se vuelve a arrancar, cada
; agente ser enrutado a su correspondiente cola.
keepstats = no ; mantiene las estadsticas de la cola durante un reload de Asterisk
autofill = yes ; normalmente una cola funciona de la siguiente manera. Hay unos
; cuantos usuarios esperando por ser atendidos por los agentes. Cuando el usuario que
; est de primero en la cola es atendido el segundo se vuelve primero y ser atendido
; por el primer agente disponible. Este comportamiento no tiene en cuenta del hecho
; de que pueden haber muchos agentes disponibles pero que cada usuario tendr que
; esperar a estar el primero de la lista para ser atendido. Con este parmetro definimos
; otro tipo de comportamiento. Los usuarios sern atendidos como se ha explicado
; hasta que haya agentes disponibles .
monitor-type = MixMonitor ; si vamos a grabar las conversaciones, con este parmetro
; los archivos audios de los dos canales sern mesclados en uno solo.
shared_lastcall=yes ; en el caso de agentes que pertenecen a ms de una cola
; poniendo a yes este parmetro se respetarn los tiempos de espera entre las distintas
; colas.
res_mysql.conf
Este archivo funciona igual al cdr_mysql.conf pero a tiempo real y por tanto la
configuracin es muy similar:
[general]
dbhost=127.0.0.1
dbname=nombredatabase
dbuser=mysqluser
dbpass=passmysql
dbport=3306
dbsock=/tmp/mysql/mysql.sock
res_odbc.conf
El propsito del mdulo de res_odbc.so es almacenar informacin en la base de datos
y recuperar esa informacin. El archivo res_odbc.conf especfica cmo hay que acceder
a la tabla en la base de datos. El archivo extconfig.conf, ya explicado, se utiliza para
451
rpt.conf
El archivo rpt.conf se utiliza para configurar el proyecto ms reciente de Jim Dixon,
Jims Radio Repeater Application (app_rpt), Asterisk permite comunicarse usando VoIP
a travs de un repetidor de radio .Esto permite a la gente tener una gran rea de
cobertura inalmbrica.
rtp.conf
El archivo rtp.conf controla el protocolo RTP (Real-time Transport Protocol).
El protocolo RTP es utilizado por SIP, H.323, MGCP, y posiblemente otros protocolos
para el transporte de datos entre los extremos.
El archivo rtp.conf por defecto usa el rango de puertos RTP entre 10.000 y 20.000. Sin
embargo, puede que la apertura de un rango tal alto puertos no se cmoda por esto
usted puede limitar el rango de puertos RTP cambiando los lmites superior e inferior
en el archivo de rtp.conf.
Por cada llamada SIP bidireccional entre dos extremos, cinco puertos se utilizan
generalmente:
452
say.conf
El archivo say.conf se utiliza para configurar reglas de gramtica de la lengua hablada
de aplicaciones, tales como SayNumber (). Si usted est buscando usar Asterisk en un
idioma que actualmente no se admite, puede solucionarlo en la configuracin de este
archivo.
sip.conf
El archivo sip.conf define todas las opciones de protocolo SIP para Asterisk. La
autenticacin para los puntos finales, tales como telfonos SIP y proveedores de
servicios, tambin se configuran en este archivo.
sip_notify.conf
Asterisk tiene la capacidad de reiniciar un telfono SIP de forma remota mediante el
envo de un mensaje especial.El telfono recibe este evento, que se interpreta como
una solicitud de reinicio. Varios fabricantes permiten esto pero solamente se ha
testeado para los telfonos Polycom.
Un ejemplo:
[polycom-check-cfg]
Event=>check-sync
Content-Length=>0
skinny.conf
Si desea conectar telfonos que utilizan la patente de Cisco puede utilizar este archivo
para definir los parmetros y los canales de que va a usar.
sla.conf
A pesar de que Asterisk es una centralita moderna, mucha gente todava quiere que se
comporte como un viejo sistema de claves con las lneas compartidas. Asterisk puede
emular un sistema de claves compartidas mediante la configuracin del sla.conf.
smdi.conf
Este archivo configura SMDI (Station Message Desk Interface). SMDI es una opcin
muy til a Asterisk, ya que le permitir actuar como un sistema de correo de voz.
El archivo de ejemplo que proporciona Asterisk es:
[interfaces]
;twostopbits = no
;charsize = 7
;paritybit = even
;baudrate = 1200
;msdstrip = 0
;msgexpirytime = 30000
;smdiport => /dev/ttyS0
453
[mailboxes]
;pollinginterval=10
; Syntax:
; <SMDI mailbox ID>=<Asterisk Mailbox Name>[@Asterisk Voicemail Context]
;smdiport=/dev/ttyS0
;2565551234=1234@vmcontext1
;2565555678=5678@vmcontext2
;smdiport=/dev/ttyS1
;2565559999=9999
udptl.conf
Este archivo se usa para la configuracin los paquetes de UDPTL, uno de los
transportes utilizados por T.38 (fax)a travs de conexiones IP.
El fichero por defecto es:
[general]
udptlstart=4000
udptlend=4999
;udptlchecksums=no
T38FaxUdpEC = t38UDPFEC
;T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 400
udptlfecentries = 3
udptlfecspan = 3
users.conf
Con la aparicin de la GUI de Asterisk, sus desarrolladores encontraron que sera til
para crear un archivo de configuracin donde las cuentas de usuario se pudieran
especificar, en lugar de tener las diferentes piezas que se reparten entre el
extensions.conf , sip.conf y voicemail.conf , entre otros.
Este archivo se actualiza por la GUI de Asterisk, cuando se aaden los nuevos usuarios
o cuando se modifica la configuracin de un usuario.
El archivo de ejemplo es el siguiente:
[general]
; Full name of a user
fullname = New User
; Starting point of allocation of extensions
userbase = 6000
; Create voicemail mailbox and use use macro-stdexten
hasvoicemail = yes
; Set voicemail mailbox 6000 password to 1234
vmsecret = 1234
; Create SIP Peer
hassip = yes
; Create IAX friend
hasiax = yes
; Create H.323 friend
454
;hash323 = yes
; Create manager entry
hasmanager = no
; Set permissions for manager entry (see manager.conf.sample for
; documentation) (defaults to *all* permissions)
;managerread = system,call,log,verbose,command,agent,user,config
;managerwrite = system,call,log,verbose,command,agent,user,config
; Remaining options are not specific to users.conf entries but are general.
callwaiting = yes
threewaycalling = yes
callwaitingcallerid = yes
transfer = yes
canpark = yes
cancallforward = yes
callreturn = yes
callgroup = 1
pickupgroup = 1
;[6000]
;fullname = Joe User
;email = dav@foo.bar
secret = 1234
;zapchan = 1
;hasvoicemail = yes
;vmsecret = 1234
;hassip = yes
;hasiax = no
;hash323 = no
;hasmanager = no
;callwaiting = no
;context = international
voicemail.conf
En el archivo voicemail.conf es donde se configura todo lo relacionado con el buzn
de voz. Si recibimos una llamada y no contestamos o la lnea est ocupada, entrar en
funcin el contestador, grabar el mensaje de voz dejado por quien llama y nos enviar
un correo electrnico para avisarnos. Adems podemos anexar el mensaje de voz al
correo electrnico en el formato audio que nos ms guste.
[general]
format=gsm|wav ; el codec audio utilizado para grabar los mensajes
; de voz dejados en el contestador .
serveremail=davidin073@gmail.com ; el remitente del correo electrnico
; que nos avisa de un nuevo mensaje de voz.
attach=yes ; Si attach est en yes el mensaje de voz se enviar como anexo al
; correo
maxmsg=100 ; numero mximo de mensajes de voz para cada casilla
; configurada .
maxsecs=300 ; numero mximo de segundos por cada mensaje de voz.
minsecs=3 ; numero mnimo de segundos para que un mensaje de voz sea
; reconocido como tal y enviado a la casilla del destinatario.
maxgreet=60 ; podemos grabar un mensaje de bienvenida para nuestro
; buzon de voz personal. Este parmetro define la duracin mxima
; del mensaje .
455
456
457
; mensaje de bienvenida.
hidefromdir=no; el usuario no aparecer en el directorio.
tempgreetwarn=yes; recordar al usuario que el mensaje de bienvenida
; temporneo es l que se est usando.
;vm-password=custom_sound ; configurar un archivo de voz distinto para
; pedir la contrasea de la casilla.
; vm-newpassword=custom_sound ; como arriba para cuando se avisa de
; insertar una nueva contrasea para el buzon.
; vm-passchanged=custom_sound ; Voz personalizada para decir : "Tu
; contrasea ha sido cambiada".
; vm-reenterpassword=custom_sound ; Voz personalizada para decir
; "Introduce nuevamente tu contrasea seguida del botn numeral.
; vm-mismatch=custom_sound; Voz personalizada de "la contrasea
; insertada y repetida no son iguales".
listen-control-forward-key=# ; tecla numrica para adelantar el mensaje que
; se est escuchando.
listen-control-reverse-key=*; tecla numrica para ir atrs en el mensaje que
; se est escuchando.
listen-control-pause-key=0; tecla numrica para poner en pausa el mensaje.
listen-control-restart-key=2; tecla numrica para volver a escuchar el
; mensaje desde el inicio.
listen-control-stop-key=13456789; teclas numricas para parar el mensaje y
; volver al men del contestador.
backupdeleted=100; numero mximo de mensajes en la carpeta "borrados".
[zonemessages]
colombia=America/Bogota|'vm-received' aebY 'digits/at' HM
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
[default]
100 => 1234,100,ramon@hotmail.com
101 => 1234,101,davidin073@gmail.com
vpb.conf
Este archivo se utiliza para configurar las tarjetas de Voicetronix con Asterisk.
458
** Atencin. Si dnde vas a instalar tenas datos, con esta opcin los pierdes.
459
Configuramos la red.
Pulsamos en modificar. Desactivamos IPV6 (a no ser que se vaya a usar). Lo que no est
en marcha, no da problemas. Colocamos la direccin IP y la mscara de red que le
otorgamos a nuestra mquina.
461
462
Desactivamos SE Linux.
463
Y creamos un usuario (si slo queremos tener el usuario administrador, root, pulsamos
Adelante).
El sistema se reiniciar.
Post-instalacin si no seleccionamos entorno grfico.
464
Reiniciamos el equipo.
Actualizamos el sistema con el comando:
yum y update
465
Inicio de Sesin
466
El calendario
Cambiar el idioma
467
Crear un Calendario
Para crear un calendario, primero debe hacer clic sobre el botn Aadir.
Seleccione la opcin Crear un calendario nuevo .
En el Campo Nombre del calendario , se debe escribir el nombre del
calendario, por ejemplo Itinerario Grupo 3.
En el campo Descripcin se escribe la describe el calendario. Por ejemplo:
Este es el calendario de las actividades a realizar en el Grupo 3.
En el campo Ubicacin se escribe el lugar donde se van a realizar las
actividades. Por ejemplo: Medelln.
Pulse el botn Crear calendario .
Para agregar ms detalles al evento debemos hacer clic sobre Editar detalles
del evento , si no se desea agregar otros detalles pulsamos el botn Crear
evento
468
Aqu no solo se ponen datos generales sino que tambin se puede especificar la
fecha y hora de inicio y finalizacin de cada evento. La opcin todo el da se
puede utilizar por ejemplo para un cumpleaos.
469
Eliminar un calendario
Para eliminar de forma permanente los calendarios de
la lista de calendarios, se deben
seguir los pasos siguientes:
Clic en Aceptar.
470
Rellenar el formulario:
o Seleccionar el Pas.
o Introducir el nmero de telfono dnde llegarn las notificaciones.
o Pulsamos el botn Enviar cdigo de verificacin y si hemos ingresado
correctamente el nmero de telfono nos llegar un SMS con el cdigo
de verificacin que tendremos que ingresar en la casilla siguiente.
471
Utilice su extensin y la contrasea del buzn de dicha extensin, tal como estn
definidas en /usr/local/fop2/fop2.cfg para iniciar sesin.
Panel Principal
Despus de la conexin con xito, aparecer el panel principal:
472
Hay una barra de herramientas que est siempre visible en la parte superior, y cuatro
secciones en el rea de contenido: una para cada tipo de botn.
El botn correspondiente a su extensin (la misma que utiliz para iniciar sesin),
siempre est en la parte superior izquierda de la seccin de Extensin, con la etiqueta
en negrita.
Si usted no est interesado en los trunks, puede ocultar la seccin y que
que seguir
estando minimizada hasta que haga clic en el signo de nuevo.
Barra de herramientas
En la parte superior del panel hay una barra de herramientas. Desde aqu podrs
realizar la mayora de las acciones que se pueden hacer con FOP2.
Podemos dividir la barra en diferentes secciones:
La barra de accin
La barra de accin consiste en una fila de botones que representan las acciones que
deben adoptarse para las llamadas activas. Dependiendo
Dependiendo de los permisos que el
usuario tiene los botones se mostrarn o no. Para estas acciones a trabajar, primero
debe seleccionar el destino o el botn de destino con un clic de ratn. Cuando lo
hagas, el contorno del botn pasa a color rojo.
Despus de seleccionar
ccionar una extensin de destino, puede efectuar la accin haciendo
clic en el botn apropiado.
Las acciones posibles son:
Dial
(Requiere el permiso: dial)
Cuando se hace clic se origin una llamada a la tecla seleccionada anteriormente en la
lista de extensiones. Su telfono sonar y cuando descuelgues se marcar la extensin
de destino.
Transfer
(Requiere el permiso: transfer)
Cuando se hace clic, iniciar
ciar una transferencia de llamada al botn previamente
seleccionado en la lista de extensiones.
473
Transfer to voicemail
(Requiere el permiso: transfer)
Cuando se hace clic, iniciar una transferencia a la extensin de correo de voz tal como
se define en el dialplan y en la configuracin del botn con el parmetro
voicemailexten.
Pickup
(Requiere el permiso: pickup)
Cuando se hace clic se contexta a la llamada del botn pulsado.
Listen
(Requiere el permiso: spy)
Cuando se hace clic se iniciar un espionaje en la llamada que se esta realizando en el
botn pulsado.
Whisper
(Requiere el permiso: whisper)
Cuando se hace clic se iniciar un espionaje con voz baja habilitada, permitiendo poder
hablar con la extensin de destino sin que la otra parte pueda orte.
Hangup
(Requiere el permiso: hangup)
Cuando se hace clic se cuelga la llamada activa en el botn pulsado.
Record
(Requiere el permiso: record)
Cuando se hace clic se pondr en marcha la grabacin de la llamada en el botn
pulsado. Una llamada que se est grabando ser sealada con un icono
icono de casette.
La caja del filtro
Permite ver el estado del boton escrito en la caja. Si
usted tiene un panel con 100 botones esta bsqueda es
beneficiosa.
La caja de llamada
Utilizando este elemento de la interfaz puede realizar
varias bsquedas:
474
Cuadro de presencia
Aqu usted puede configurar su informacin de presencia, tal
como est configurada en el archivo de presence.js. La
informacin es almacenada en la base de datos inmediatamente y
presentada en tiempo real. Esto no afectar al comportamiento
de marcacin, slo mostrar a los dems usuarios FOP2 su
disponibilidad actual.
El botn reflejar su estado con un icono de poca presencia, al pasar el ratn sobre el
icono de presencia de cualquier extensin, se ver una descripcin textual con el
estado (adems del color).
La ltima opcin en el cuadro de seleccin, llamado "other", le permite especificar
cualquier texto para su estado de presencia, si las predefinidas no son suficientemente
buenas para usted.
475
Extensiones
Los botones de Extensin muestran gran cantidad de informacin envasada en un
pequeo rectngulo. Hay dos colores para el botn ,verde cuando la extensin no est
involucrada en una llamada, o rojo cuando lo est. Cuando
Cuando el telfono est sonando,
seguir siendo verde, pero el icono de la lnea indica el estado de llamada.
Esta imagen muestra un botn sonando:
476
The handset icon will indicate if the line is ringing, it is engaged in an outgoing
call (right arrow), and incoming call (left arrow), or held (hourglass) El icono de
telfono indicar si la lnea est sonando, est involucrado en una llamada
saliente (flecha derecha),
derecha), y la llamada entrante (flecha izquierda), o lugar (reloj
de arena)
6. Linea de callerid
Si est disponible, se mostrar el nombre y el nmero de callerid.
7. Linea de temporizador
El temporizador de la llamada actual.
Visual Phonebook
En la parte superior izquierda de la ventana del panel principal, hay un icono de
agenda. Al hacer clic se le presentar una aplicacin de libreta de telfonos donde se
puede agregar, editar o borrar usuarios.
El uso es sencillo. Puede hacer clic en el botn Agregar para insertar nuevos registros,
o haga clic en los botones de accin para ver, editar o borrar cada registro. Hay un
cuadro de bsqueda que le permite buscar cualquier cadena o nmero. Y un botn de
exportacin que le permite exportar a CSV su
s agenda.
477
Las entradas del directorio sern buscadas a tiempo real, cuando se escribe algo en el
cuadro de marcacin, por lo que se puede utilizar como un directorio de la empresa.
Tambin buscar al recibir una llamada entrante. Si el identificador de llamadas
l
coincide con una de las entradas, usar el nombre y la imagen del contacto dando un
aviso de llamada aparecer en la parte inferior derecha de la pantalla del FOP2 como
se muestra en la imagen siguiente.
Colas
Los botones de cola tienen algunas particularidades. Adems del nombre de la cola, se
le mostrar la lista de miembros o agentes de la cola, con un pequeo icono que
representa el estado del miembro, y tambin la lista de llamadas en espera en la cola
con sus extensiones de llamada y su temporizador, como se muestra a continuacin:
Tambin se pueden utilizar para filtrar los botones de extensin. Cuando se selecciona
un botn de cola, slo las extensiones que forman parte de la cola se mostrarn. Esto
Es
es particularmente til para los administradores de centros de llamada, usted puede
centrarse en una actividad de determinada cola, eliminando
eliminando el "ruido" de las otras
colas.
478
= busy
= unavailable /invalid
= paused.
#!/usr/bin/php -q
<?php
// -----------// Configuracion de Google Calendar
// -----------$usr="davidin073@gmail.com"; // Usuario
$pwd="XXXXXXXX";
";
// Password
$min="30"; //empieza 30 min de la hora actual
$dur="10";//la duracion del evento es de 10 min
479
480
enviaSMS.sh
#!/bin/sh
SMS_HOME=/usr/src/SMSGoogle
CLASSPATH=$SMS_HOME/lib/activation.jar:$SMS_HOME/lib/gdata-calendar1.0.jar:$SMS_HOME/lib/gdata-client-1.0.jar:$SMS_HOME/lib/mail.jar:$SMS_HOME
java -classpath $CLASSPATH EnviaSMS $@
EnviaSMS.java
import java.net.URL;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.DateTime;
import com.google.gdata.data.Person;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.extensions.EventEntry;
import com.google.gdata.data.extensions.Reminder;
import com.google.gdata.data.extensions.When;
481
482
autofallthrough=yes
language=es
[globals]
;TELEFONOS Y MOVILES
MOVIL2=945003910
MOVIL1=650664616
PHONE1=902147424
PHONE2=902147423
PHONE3=945003903
;CALENDARIOS
CALR=calendariorecepcion.py
CALC=calendariocomercial.py
;CALS=calendariosoporte.py
CALT=calendariotwister.py
CALS=pyastcal.py
;QUEUES
QR=recepcionqueue
QC=comercialqueue
QS=soportequeue
QT=twisterqueue
;BUZONES
BR=1111
BC=2222
BS=3333
BT=4444
[incoming]
include =>administracin
include =>chansebi
include =>spe
[administracion]
include =>acceso
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;MENU:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;---->0)Pasar con una operadora
;;;---->1)Duda en la utilizacion del programa :Comerciales
;;;---->2)Pasar con el Departamento de Soporte
;;;---->3)Pasar con el Departamento de Desarrollo :Twister
;;;---->t)Volver al menu: Excesivo tiempo en contestar
;;;---->i)Volver al menu: Se ha pulsado una tecla errnea
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 902147424,1,Answer
exten => 902147424,n,Background(menu)
exten => 0,1,Goto(recepcion,${PHONE1},1)
exten => 1,1,Goto(comercial,${PHONE1},1)
exten => 2,1,Goto(soporte,${PHONE2},1)
exten => 3,1,Goto(twister,${PHONE3},1)
483
484
485
[macro-nodisponible]
exten => s,1,PLayBack(grabacion2)
exten => s,n,Voicemail(${ARG1})
exten => S,n,Hangup
[No Disponible Recepcion]
exten => 902147424,1,Macro(nodisponible,${BR})
[No Disponible Comercial]
exten => 902147424,1,Macro(nodisponible,${BC})
[No Disponible Soporte]
;Comprobar en la base de datos si el cliente es VIP(contrato de mantenimiento de
24h).Si lo es se le envia a la prioridad 100 sino lo es a la 90.
exten => 902147423,1,MYSQL(Connect connid localhost root root agenda)
exten => 902147423,n,NoOp(connid = ${connid})
exten => 902147423,n,Set(NUM = ${CALLERID(num)})
exten => 902147423,n,MYSQL(Query resultid ${connid SELECT\ mant FROM\ clientes\
INNER\ JOIN\ telefono\ ON\ clientes.id=telefono.idEmp\ WHERE\
telefono="${NUM}"})
exten => 902147423,n,NoOp(resultid = ${resultid})
exten => 902147423,n,MYSQL(Fetch fetchid ${resultid} MANT)
exten => 902147423,n,MYSQL(Disconnect ${connid})
exten => 902147423,n,GotoIf($["${MANT}"="VIP"]?100:90)
exten => 902147423,90,Macro(nodisponible,${BS})
exten => 902147423,100,NoOp(${NUM})
exten => 902147423,n,Gotoif($["${NUM:0:1}" = "6"]?200:300)
exten => 902147423,200,Dial(SIP/+34${MOVIL1}@proxy01.sipphone.com,20,r)
exten => 902147423,n,Dial(Sebi/g1/${MOVIL1},30)
exten => 902147423,n,Dial(SIP/+34${MOVIL2}@proxy01.sipphone.com,20,r)
exten => 902147423,n,Dial(Sebi/g1/${MOVIL2},30)
exten => 902147423,n,AGI(sms_send.php)
exten => 902147423,n,Voicemail(${ARG1})
exten => 902147423,n,Hangup
exten => 902147423,300,Dial(DAHDI/${MOVIL1},20,r)
exten => 902147423,n,Dial(DAHDI/${MOVIL2},20,r)
exten => 902147423,n,AGI(sms_send.php)
exten => 902147423,n,Voicemail(3333)
exten => 902147423,n,Hangup
[No Dispnible Twister]
exten => 945003903,1,Macro(nodisponible,${BT})
[macro-acceso]
exten => s,1,Dial(SIP/${ARG1},30,Ttm)
exten => s,n,Voicemail(${ARG1})
exten => s,n,Hangup
[acceso]
include => skype
include => cisco
include => meetme
include => verbio
include => administracion
include => soportelaboral
486
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;PRUEBAS TRUNK IAX2;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 100,1,Dial(IAX2/portatil/${EXTEN},90,tr)
exten => 100,n,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;VERBIO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 802,1,Goto(VERBIO_TEST,s,1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;VOICEMAIL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => _XXXX8,1,VoiceMail(${EXTEN:0:4})
exten => _XXXX9,1,VoiceMailMain(${EXTEN:0:4}@default)
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;RECEPCION;;
;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 1000,1,Macro(acceso,${EXTEN})
exten => 1001,1,Macro(acceso,${EXTEN})
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;COMERCIALES;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 1002,1,Macro(acceso,${EXTEN})
exten => 1003,1,Macro(acceso,${EXTEN})
exten => 1004,1,Macro(acceso,${EXTEN})
exten => 1005,1,Macro(acceso,${EXTEN})
exten => 1006,1,Macro(acceso,${EXTEN})
;;;;;;;;;;;;;;;;;;;;;
;;;;SOPORTE;;
;;;;;;;;;;;;;;;;;;;;;
exten => 2000,1,Macro(acceso,${EXTEN})
exten => 2001,1,Macro(acceso,${EXTEN})
exten => 2002,1,Macro(acceso,${EXTEN})
exten => 2003,1,Macro(acceso,${EXTEN})
exten => 2004,1,Macro(acceso,${EXTEN})
exten => 2005,1,Macro(acceso,${EXTEN})
exten => 2006,1,Macro(acceso,${EXTEN})
;;;;;;;;;;;;;;;;;;;;
;;;;TWISTER;;
;;;;;;;;;;;;;;;;;;;;
exten => 3000,1,Macro(acceso,${EXTEN})
exten => 3001,1,Macro(acceso,${EXTEN})
487
488
489
;
2 digitos para el mes y
;
2 digitos para el da.
;La aplicacion Read asignara esta fecha a la variable fecha.
;Esta sera la fecha en que se efectuara la llamada
exten => 900,n,Read(fecha,,8,,2,10)
exten => 900,n,SayDigits(${fecha})
exten => 900,n,Playback(hours)
;Asterisk se pondr a la espera de recibir la hora de esta forma:
;
2 digitos para las hora y
;
2 digitos para los minutos
;(ej 1130 para las once y treinta, 20:10 para las veinte y diez).
;La aplicacion Read asignara esta hora a la variable hora.
;Esta es la hora programada para la llamada.
exten => 900,n,Read(hora,,4,,2,10)
exten => 900,n,Saydigits(${hora})
exten => 900,n,Playback(if-this-is-correct-press&digits/1&if-this-is-notcorrect&digits/2)
;Asterisk se pondra a la espera de recibir nuestra respuesta (digito 1 o digito 2).
; La variable Read asignara nuestra respuesta a la variable sino.
exten => 900,n,Read(sino,,1,,,5)
;Si la variable sino es igual a 1 iremos directamente a la prioridad marcada con la
etiqueta (cita).
;sino a la prioridad con la etiqueta (inicio).
exten => 900,n,GotoIf($["${sino}" = "1"]?cita:inicio)
;Si confirmamos los datos seguiremos desde esta linea.
;Aqui empieza la creacion del archivo de texto callback
;en la carpeta /tmp que tendra la sintaxis requerida para los callfiles.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;La estructura de un callfiles es la siguiente:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Channel: <channel> ; La extension que queremos llamar
exten => 900,n(cita),System(echo Channel:SIP/${id} >> /tmp/callback)
; Callerid: <callerid> ; El identificativo de llamada que queremos enviar a la
;extension llamada
exten => 900,n,System(echo Callerid:CallBackCita >> /tmp/callback)
; WaitTime: <number> ; Cuantos segundos esperamos antes de considerar la
;llamada sin xito
exten => 900,n,System(echo WaitTime:30 >> /tmp/callback)
; Maxretries: <number> ; Numero de veces que intentaremos llamar la extensin
exten => 900,n,System(echo Maxretries:3 >> /tmp/callback)
; RetryTime: <number> ; Cuantos segundos debe esperar asterisk para volver a
;marcar
exten => 900,n,System(echo RetryTime:300 >> /tmp/callback)
; Account: <account> ; El nombre de la cuenta con la cual queremos grabar esta
;llamada (CDR)
exten => 900,n,System(echo Account:${id} >> /tmp/callback)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
490
;Una vez que la extension llamada conteste tenemos que decirle a asterisk lo que tiene
;que hacer.
;Esto tambien se define en el mismo archivo. Hay dos opciones:
; * Ejecutar una aplicacion:
; Application: <appname> ; la aplicacion que queremos utilizar
; Data: <args> ; aqui podemos definir las opciones de la aplicacion
; * Ejecutar un punto exacto del plan de llamadas (dial plan)
; Context: <context> ; El contexto en el dial plan
; Extension: <exten> ; La extension que queremos usar en el contexto especificado
; Priority: <priority> ; El numero de la prioridad o la etiqueta si definir
; Setvar: <var=value> ; Variables que se pueden necesitar en el contexto,
;extension y prioridad que definimos.
;Elegimos la primera opcion.
exten => 900,n,System(echo Application:Dial >> /tmp/callback)
;Ahora podemos tener dos situaciones:
;
a) el numero de destinacion es una extension interna de la centralita,
;
b) el numero es externo (por ejemplo un celular).
;Si el numero es externo el dialplan seguira desde la etiqueta (gizmo),
;es decir que utilizaremos el proveedor VoIP gizmo5 para hacer la llamada, sino desde
;la etiqueta (local).
exten => 900,n,Gotoif($["${appunt:0:1}" = "6"]?gizmo:local)
;Representa las opciones con las cuales la aplicacion Dial sera ejecutada por ;Asterisk.
exten => 900,n(local),System(echo Data:SIP/${appunt},45,m >> /tmp/callback)
;Con el comando touch cambiamos la fecha y la hora del archivo callback segun
;fecha y hora escogidas.
;Esta sera la fecha y la hora a la que se ejecutara la llamada programada.
exten => 900,n,System(touch -t ${fecha}${hora} /tmp/callback)
;Movemos el archivo callback en la carpeta usada por asterisk para buscar los callfiles ;
;y, para que no hayan duplicados le cambiamos el nombre usando la fecha y la hora de
;la llamada programada.
exten => 900,n,System(mv /tmp/callback/var/spool/asterisk/outgoing /${fecha}
${hora})
exten => 900,n,Hangup
exten => 900,n(gizmo),System(echo Data:SIP/+34${appunt}@proxy01.sipphone.com
>> /tmp/callback)
exten => 900,n,System(touch -t ${fecha}${hora} /tmp/callback)
exten => 900,n,System(mv /tmp/callback /var/spool/asterisk/outgoing/${fecha}
${hora})
exten => 900,n,Hangup
;Ahora a la fecha y hora programadas, asterisk llamara la extension que reservo
;la llamada, una vez que conteste, ejecutara la aplicacion Dial y llamara el numero de
;telefono escogido para la llamada programada y podremos hablar, por ejemplo, con
;nuestro cliente.
;Limites:
;;;;;;;;;;;;;;--------->las llamadas pueden ser programadas solamente desde una extension
;interna de nuestra centralita.
;;;;;;;;;;;;;;--------->Una vez programadas, las llamadas no se pueden borrar.
;Estos archivos se guardan en la carpeta : /var/spool/asterisk/outgoing.
491
[meetme]
;Agregarse a la conferencia 600
exten => 600,1,Meetme(600,i,1234)
;Saber cuantas personas hay en la conferencia
exten => 601,1,Playback(conf-thereare)
exten => 601,n,MeetMeCount(600)
exten => 601,n,Playback(conf-peopleinconf)
;Retringir Numero de personas en la conferencia
exten => 610,1,Set(confmax=2)
exten => 610,n,Macro(meetme)
exten => 602,1,Playback(conf-thereare)
exten => 602,n,MeetMeCount(610)
exten => 602,n,Playback(conf-peopleinconf)
;Crear una conferencia dinamica
exten => 620,1,Meetme(,scDM(default))
exten => 620,n,Hangup
exten => 621,1,Meetme()
exten => 621,n,Hangup
[macro-meetme]
exten => s,1,MeetMeCount(${MACRO_EXTEN},count)
exten => s,n,Gotoif($[${count} >= ${confmax}]?103)
exten => s,n,MeetMe(${MACRO_EXTEN})
exten => s,n,Hangup
exten => s,103,Playback(conf-invalid)
exten => s,104,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;VERBIO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[verbio]
include => acceso
exten => 8000,1,Answer()
exten => 8000,n,Set(UMBRAL=90)
exten => 8000,n,VerbioLoadVcb(david.txt,connected,,,v)
exten => 8000,n,VerbioLoadVcb(david2.txt,connected,,,v)
exten => 8000,n,Goto(8090,1)
exten => 8090,1,VerbioPromptAndRec(Indique el numero de incidencia para consultar
su estado.Recuerde que tiene cuatro digitos.)
exten => 8090,n,NoOp("PALABRAS ${VASR_WORDS}. Resultado: ${VASR_RESULT0}
${VASR_RESULT1} ${VASR_RESULT2} ${VASR_RESULT3}. Score: ${VASR_SCORE}
Umbral: ${UMBRAL}",,,v)
exten => 8090,n,GotoIf($[$[${VASR_RESULT} != ERROR] &
$[${VASR_SCORE}>${UMBRAL}]]?si:no)
exten => 8090,n(si),VerbioPromptAndRec(Su numero de incidencia es:
${VASR_RESULT0} ${VASR_RESULT1} ${VASR_RESULT2} ${VASR_RESULT3}\, no?)
exten => 8090,n,NoOp("PALABRAS ${VASR_WORDS}. Resultado: ${VASR_RESULT}.
Score: ${VASR_SCORE} Umbral: ${UMBRAL}",,,v)
exten => 8090,n,GotoIf($[$[${VASR_RESULT} != ERROR] &
$[${VASR_SCORE}>${UMBRAL}]]?si2:no2)
492
493
;Con LIMIT 1 indicamos que queremos solo el ultimo registro de esa columna.
;La variable resultid contendra el numero de resultados de la busqueda.
exten => 76,n,MYSQL(Query resultid ${connid} SELECT src FROM cdr WHERE
dst="${CALLERID(num)}" ORDER BY calldate DESC LIMIT 1)
exten => 76,n,NoOp(resultid = ${resultid})
exten => 76,n,MYSQL(Fetch fetchid ${resultid} var1)
exten => 76,n,NoOp(Variable = ${fetchid},${var1})
exten => 76,n,MYSQL(Clear ${resultid})
exten => 76,n,MYSQL(Disconnect ${connid})
exten => 76,n,GotoIf($[ ${fetchid} != 0 ]?bien:mal)
exten => 76,n,NoOp(La ultima llamada recibida ha sido del numero ${var1}.)
;Para llamar a ese numero:
exten => 76,n(bien),Dial(SIP/${var1},30,Ttm)
;Se podria tener en cuenta si el numero es externo o interno para sacarlo por un
;Operador VoIP o no.
exten => 76,n,Hangup
exten => 76,n(mal),NoOp(No hay ninguna llamada recibida.)
exten => 76,n,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;Ultima llamada realizada;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => 75,1,MYSQL(Connect connid localhost root root cdr)
exten => 75,n,NoOp(connid = ${connid})
;Con LIMIT 1 indicamos que queremos solo el ultimo registro de esa columna).
;La variable resulid contendra numero de resultados de la busqueda.
exten => 75,n,MYSQL(Query resultid ${connid} SELECT dst FROM cdr WHERE
src="${CALLERID(num)}" ORDER BY calldate DESC LIMIT 1)
exten => 75,n,NoOp(resultid = ${resultid})
exten => 75,n,MYSQL(Fetch fetchid ${resultid} var1)
exten => 75,n,NoOp(Variable = ${fetchid},${var1})
exten => 75,n,MYSQL(Clear ${resultid})
exten => 75,n,MYSQL(Disconnect ${connid})
;exten => 76,n,VerbioPrompt(La ultima llamada realizada ha sido al numero ${var1})
;Para llamar a ese numero de nuevo:
exten => 75,n,Dial(SIP/${var1},30,Ttm)
exten => 75,n,GotoIf($[${DIALSTATUS} = UNKNOW]?uno)
;Se podria tenern en cuenta si el numero es externo o interno para sacarlo por un
;Operador VoIP o no.
exten => 75,n(uno),NoOp(No se puede llamar a este numero, posiblemente sea una
extension del dialplan.Si quiere llamar a la extension anterior pulse 1.)
exten => 75,n,Set(${DIALSTATUS}=CHANUNAVAIL)
exten => 75,n,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?dos)
exten => 75,n(dos),MYSQL(Connect connid localhost root root cdr)
exten => 75,n,NoOp(connid = ${connid})
;Con LIMIT 1 indicamos que queremos solo el ultimo registro de esa columna).
;La variable resulid contendra numero de resultados de la busqueda.
exten => 75,n,MYSQL(Query resultid ${connid} SELECT dst FROM cdr WHERE
src="${CALLERID(num)}" ORDER BY calldate DESC LIMIT 2)
exten => 75,n,NoOp(resultid = ${resultid})
exten => 75,n,MYSQL(Fetch fetchid ${resultid} var2)
exten => 75,n,NoOp(Variable = ${fetchid},${var2})
exten => 75,n,MYSQL(Clear ${resultid})
exten => 75,n,MYSQL(Disconnect ${connid})
;Para llamar a ese numero de nuevo:
exten => 75,n,Dial(SIP/${var2},30,Ttm)
494
495
496
sip.conf
[general]
context=default
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
language=es
callevents=yes
register => 17473702523:Yet100:17473702523@proxy01.sipphone.com/17473702523
[plantillasip](!)
type=friend
secret=1234
host=dynamic
context=acceso
canreinvite=yes
dtmfmode=rfc2833
nat=no
497
[1000](plantillasip)
username=1000
mailbox=1000
callgroup=1
pickupgroup=1-4
[1001](plantillasip)
username=1001
mailbox=1001
callgroup=1
pickupgroup=1-4
[1002](plantillasip)
username=1002
mailbox=1002
callgroup=1
pickupgroup=1-4
[1003](plantillasip)
username=1003
mailbox=1003
callgroup=1
pickupgroup=1-4
[1004](plantillasip)
username=1004
mailbox=1004
callgroup=1
pickupgroup=1-4
[1005](plantillasip)
username=1005
mailbox=1005
callgroup=1
pickupgroup=1-4
[1006](plantillasip)
username=1006
mailbox=1006
callgroup=1
pickupgroup=1-4
[2000](plantillasip)
username=2000
mailbox=2000
callgroup=2
pickupgroup=1-4
[2001](plantillasip)
username=2001
mailbox=2001
callgroup=2
pickupgroup=2
[2002](plantillasip)
username=2002
498
mailbox=2002
callgroup=2
pickupgroup=2
[2003](plantillasip)
username=2003
mailbox=2003
callgroup=2
pickupgroup=2
[2004](plantillasip)
username=2004
mailbox=2004
callgroup=2
pickupgroup=2
[2005](plantillasip)
username=2005
mailbox=2005
callgroup=2
pickupgroup=2
[2006](plantillasip)
username=2006
mailbox=2006
callgroup=2
pickupgroup=2
[3000](plantillasip)
username=3000
mailbox=3000
callgroup=3
pickupgroup=1-4
[3001](plantillasip)
username=3001
mailbox=3001
callgroup=3
pickupgroup=3
[3002](plantillasip)
username=3002
mailbox=3002
callgroup=3
pickupgroup=3
[3003](plantillasip)
username=3003
mailbox=3003
callgroup=3
pickupgroup=3
[3004](plantillasip)
username=3004
mailbox=3004
callgroup=3
pickupgroup=3
499
[3005](plantillasip)
username=3005
mailbox=3005
callgroup=3
pickupgroup=3
[3006](plantillasip)
username=3006
mailbox=3006
callgroup=3
pickupgroup=3
[3007](plantillasip)
username=3007
mailbox=3007
callgroup=3
pickupgroup=3
[4000](plantillasip)
username=4000
mailbox=4000
callgroup=4
pickupgroup=1-4
[5000]
username=5000
mailbox=5000
type=friend
secret=1234
host=dynamic
context=acceso
canreinvite=yes
dtmfmode=rfc2833
callgroup=4
pickupgroup=1-4
[proxy01.sipphone.com]
type=peer
context=from-external
disallow=all
allow=ulaw
allow=alaw
allow=ilbc
dtmfmode=rfc2833
host=proxy01.sipphone.com
fromdomain=proxy01.sipphone.com
insecure=very
qualify=yes
username=17473702523
fromuser=17473702523
authuser=17473702523
secret=Yet100
canreinvite=no
500
iax.conf
[general]
bindport=4569
bindaddr=0.0.0.0
srvlookup=yes
accountcode=lss0101
delayreject=yes
language=es
disallow=all
allow=gsm
allow=ulaw
allow=alaw
[portatil]
type=friend
username=centralyet
auth=plaintext
context=acceso
peercontext=acceso2
secret=123
host=192.168.1.207
callerid='portatil'
trunk=yes
requirecalltoken=no
501
Glosario
504
Bibliografa
FOROS:
<http://groups.google.es/group/asterisk-es>
<http://perlenespanol.com/foro/>
LIBROS Y TUTORIALES:
<http://cdn.oreilly.com/books/9780596510480.pdf>
<http://asterio.com.ar/resources/downloads/Asterisk_desconsolado.pdf>
<http://lax.franhp.net/Asterisk/Curs_asterisk_tecnoba_3.pdf>
VOIP:
<http://www.voipnovatos.es>
<http://blog.voipminic.com/>
<http://www.voip-info.org/>
505
ASTERISK:
<http://www.sinologic.net/>
<http://www.asteriskdocs.org>
<http://www.the-asterisk-book.com/unstable/>
PRACTICAS Y APLICACION:
<http://www.linux-es.org/distribuciones>
Funcionalidades:
<http://www.verbio.com/>
<http://www.fop2.com/>
<http://www.asternic.biz/>
<http://blog.voz-ip.com/>
<http://www.saghul.net/blog/>
<http://www.voipnovatos.es/item/2009/12/cmo-instalar-chan_skype-para-asterisk-14-o-16>
<http://www.asterisk-peru.org/node/25>
<http://www.ecualug.org/?q=2007/03/19/comos/conectar_dos_localidades_usandoasterisk>
<http://www.vicosoft.org/blog/%C2%BFque-es-nagios/>
<http://www.bulma.net/body.phtml?nIdNoticia=2075>
<http://bargues.info/?cat=35>
<http://ualtech.wordpress.com/2009/02/05/tutorial-sobre-monitorizacion-de-asteriskusando-nagios/>
<http://www.mitelefoniaip.com/item/72>
<http://wiki.centos.org/es/HowTos/Nagios>
Precios:
<http://www.amazon.com/ProCurve-Switch-1400-8G-Gigabit-Network/dp/B000P22S2Q>
<http://sanisidro-buenosaires.olx.com.ar/sipura-spa-3000-ata-adaptador-telefonico-analogicoiid-14097216>
<http://www.ciao.es/Cisco_IP_Phone_7941__1114209>
506