Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estudio y Montaje a
medida de Centralita
Telefnica VoIP Asterisk
Gracias a mis amigos por preocuparse cada poco por el avance del proyecto.
Gracias a mis dos directores de proyecto, por una parte a Pablo por prestarme su
atencin y ayuda cuando lo he requerido y por otra parte a Mikel y a la empresa Yet
Informtica S.L. y es que he aprendido a valerme por mi mismo, ha sido una
experiencia muy positiva.
Gracias tambin al foro Asterisk-ES, donde escriben los autenticos cracks de este
mundo en Espaa, los cuales contestan a todas tus dudas desde la ms bsica a la ms
tcnica.Y ms personalmente gracias a Nicols Gudio por atenderme en todo
momento y a Jean Chassoul , Ivan Lpez y Angel Elena por la ayuda efectuada.
i
Resumen y Organizacin del Proyecto
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.
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
NDICE DE CONTENIDOS .......................................................................................... IV
NDICE DE FIGURAS ................................................................................................ XII
PLANIFICACIN DEL PROYECTO........................................................................................................ XII
CAPITULO 1 ................................................................................................................................ XIV
CAPITULO 2 ................................................................................................................................. XV
CAPITULO 3 ................................................................................................................................ XVI
CAPITULO 4 ................................................................................................................................ XVI
ANEXOS ...................................................................................................................................... XX
iv
NDICE DE TABLAS ................................................................................................ XXII
PLANIFICACIN DEL PROYECTO...................................................................................................... XXII
CAPITULO 1 ............................................................................................................................... XXII
CAPITULO 2 ............................................................................................................................... XXII
CAPITULO 3 .............................................................................................................................. XXIII
CAPITULO 4 .............................................................................................................................. XXIII
ANEXOS ................................................................................................................................... XXIII
ANTECEDENTES ........................................................................................................ 1
EMPRESA EN LA QUE SE SITA EL PROYECTO ....................................................................................... 1
CMO SURGE LA NECESIDAD DEL PROYECTO A REALIZAR ....................................................................... 2
PLANIFICACIN DEL PROYECTO ................................................................................ 3
OBJETIVOS DEL PROYECTO............................................................................................................... 3
VIABILIDAD DEL PROYECTO .............................................................................................................. 4
Planificacin Inicial Temporal................................................................................................ 4
Planificacin Real Temporal .................................................................................................. 4
Desvio Temporal.................................................................................................................... 6
Planificacin real del proyecto y herramientas a utilizar en su elaboracin ........................ 6
Estructura de Descomposicin del Trabajo....................................................................... 6
Fases, Tareas y Entregables............................................................................................... 9
Recursos Humanos y Materiales Amortizables ................................................................... 26
Agenda del proyecto ........................................................................................................... 29
Agenda de recursos: ........................................................................................................ 29
Diagrama de GANTT: ....................................................................................................... 48
Estimacin de Costes del Proyecto: .................................................................................... 51
Recursos Humanos de Trabajo:.................................................................................... 51
Recursos Materiales Amortizables: ............................................................................... 51
Presupuesto .................................................................................................................... 54
INTRODUCCIN A VOIP .......................................................................................... 56
QU ES VOIP (VOICE OVER INTERNET PROTOCOL)? ........................................................................ 56
POR QU DEBERAMOS PASARNOS A VOIP Y NO SEGUIR USANDO SERVICIOS GRATUITOS COMO SKYPE? .... 57
HISTORIA DE VOIP ....................................................................................................................... 58
CARACTERSTICAS PRINCIPALES ...................................................................................................... 59
VENTAJAS DE VOIP ...................................................................................................................... 59
Funcionales.......................................................................................................................... 59
De Gestin ........................................................................................................................... 59
Econmicas.......................................................................................................................... 60
PROBLEMAS ................................................................................................................................ 60
ELEMENTOS FUNDAMENTALES DE UNA RED VOIP .............................................................................. 60
CMO SE TRANSMITE VOIP POR LA RED? ....................................................................................... 61
CONCEPTOS PRINCIPALES DE VOIP .................................................................................................. 62
PBX ...................................................................................................................................... 62
ASTERISK (PBX avanzada) .................................................................................................... 63
PSTN-RTB ............................................................................................................................. 63
Sealizacin en telefona tradicional .................................................................................. 63
Sealizacin analgica..................................................................................................... 63
Sealizacin digital .......................................................................................................... 65
v
Sealizacin entre centrales telefnicas ......................................................................... 66
Sealizacin en telefona IP................................................................................................. 66
Protocolo H.323 .............................................................................................................. 66
Protocolo MGCP (Media Gateway Control Protocol)...................................................... 67
Protocolo SIP (Session Initiation Protocol)...................................................................... 68
Servidores Proxy SIP ........................................................................................................ 70
Protocolos en tiempo real y el NAT................................................................................. 72
SIP vs NAT ........................................................................................................................ 72
Protocolo IAX (Inter-Asterisk Exchange) ......................................................................... 73
EQUIPAMIENTO PARA VOIP............................................................................................................ 75
Telfonos IP ......................................................................................................................... 75
SoftPhones (Telefona con Software) .................................................................................. 78
X-Lite................................................................................................................................ 79
Zoiper .............................................................................................................................. 80
Ekiga ................................................................................................................................ 80
Otros SoftPhones ............................................................................................................ 81
Adaptadores IP .................................................................................................................... 82
Gateways VoIP..................................................................................................................... 83
PARMETROS DE VOIP ................................................................................................................. 84
Calidad de Servicio .............................................................................................................. 84
Codecs ................................................................................................................................. 84
Latencia ............................................................................................................................... 85
Jitter (Fluctuaciones de velocidad)...................................................................................... 85
RETOS AL IMPLEMENTAR VOIP ....................................................................................................... 86
RECOMENDACIONES ..................................................................................................................... 86
ASTERISK, EL FUTURO DE LA TELEFONA ................................................................. 87
QU ES ASTERISK? ..................................................................................................................... 87
QU NO ES ASTERISK? ............................................................................................................... 89
CUL ES EL PAPEL DE DIGIUM? ..................................................................................................... 89
CUNDO USAR ASTERISK? ........................................................................................................... 90
POR QU ASTERISK? ................................................................................................................... 90
VENTAJAS COMPETITIVAS .............................................................................................................. 92
DESVENTAJAS DE LAS CENTRALITAS ASTERISK .................................................................................... 92
HISTORIA DE ASTERISK .................................................................................................................. 93
ESTRUCTURA DE DIRECTORIOS DE ASTERISK: ................................................................................... 103
FUNCIONALIDAD DE ASTERISK ...................................................................................................... 103
Funciones bsicas .............................................................................................................. 103
Funciones de llamada........................................................................................................ 103
Funciones avanzadas ......................................................................................................... 105
Modificacin de funciones ................................................................................................ 106
Funcionalidad en servidores SIP........................................................................................ 106
ARQUITECTURA DE ASTERISK ....................................................................................................... 107
Esquema ............................................................................................................................ 107
Partes de Asterisk ............................................................................................................. 107
Arquitectura de Asterisk ................................................................................................... 108
Descripcin de las APIs .................................................................................................. 108
CONCEPTO DE CANAL ................................................................................................................. 109
DIALPLAN DE ASTERISK ............................................................................................................... 110
vi
La Sintaxis del Dialplan ...................................................................................................... 110
Contextos ...................................................................................................................... 110
Extensiones ................................................................................................................... 112
Prioridades .................................................................................................................... 113
Aplicaciones................................................................................................................... 114
Uso de variables ................................................................................................................ 115
Tipos de variables ......................................................................................................... 115
Coincidencia de patrones .................................................................................................. 116
Sintaxis .......................................................................................................................... 116
Usando la variable de canal $ (EXTEN) .......................................................................... 117
Manipulacin de expresiones y operadores ..................................................................... 118
Expresiones bsicas ....................................................................................................... 118
Operadores.................................................................................................................... 118
Funciones del Dialplan ...................................................................................................... 119
Configuracin para canales de VoIP: SIP e IAX2 ................................................................ 119
Buzones de voz (Voicemail)............................................................................................... 121
Creacin de mailbox ...................................................................................................... 121
Aadir el voicemail al Dialplan ...................................................................................... 122
Acceso al voicemail ....................................................................................................... 122
Marcacin por nombre de directorio............................................................................ 122
Audio en Asterisk .............................................................................................................. 123
Reproduccin ................................................................................................................ 123
Msica en Espera .......................................................................................................... 123
Aplicacin Festival ......................................................................................................... 123
Codecs y carga de CPU .................................................................................................. 125
Grabacin ...................................................................................................................... 127
Macros ............................................................................................................................... 128
Definicin de macros..................................................................................................... 129
Llamadas a macros ........................................................................................................ 129
Utilizacin de argumentos en macros ......................................................................... 129
Uso de la base de datos de Asterisk (AstDB)..................................................................... 130
Almacenamiento de datos en AstDB............................................................................. 130
Recuperacin de datos de AstDB .................................................................................. 130
Borrado de datos de AstDB ........................................................................................... 131
Transferencias de llamadas ............................................................................................... 131
CallParking ......................................................................................................................... 131
CallPickup .......................................................................................................................... 133
Manejo de Colas ................................................................................................................ 134
Registro de llamadas(CDR) ................................................................................................ 137
Sala de conferencias .......................................................................................................... 138
IVR (Interactive Voice Response) ...................................................................................... 139
Discado automtico (Auto-dial out) .................................................................................. 142
Sistema de logs .................................................................................................................. 143
ENUM y Asterisk ................................................................................................................ 144
DUNDI ................................................................................................................................ 146
Aspectos avanzados de Asterisk: ...................................................................................... 150
Qu es AGI? ................................................................................................................. 150
Qu es AMI? ................................................................................................................ 151
Qu es AJAM?.............................................................................................................. 152
vii
Qu es AEL2? ............................................................................................................... 153
Qu es ARA? ................................................................................................................ 154
ADMINISTRACIN DE ASTERISK .................................................................................................... 155
Interfaces web para Asterisk: ............................................................................................ 155
Asterisk GUI: .................................................................................................................. 155
FreePBX: ........................................................................................................................ 156
Lnea de comandos de Asterisk: CLI .................................................................................. 161
VERSIONES ENTERPRISE DE ASTERISK: ........................................................................................... 164
Asterisk Appliance ............................................................................................................. 164
Asterisk Business Edition ............................................................................................... 165
DISTRIBUCIONES LINUX CON ASTERISK:.......................................................................................... 168
AsteriskNOW ..................................................................................................................... 169
TrixBox ............................................................................................................................... 171
Elastix ................................................................................................................................ 176
CASOS DE USO DE UNA CENTRALITA ASTERISK: ............................................................................... 180
Centralita nueva con conexiones y extensiones de varios tipos. ...................................... 181
Pasarela para dotar a una centralita tradicional de servicios nuevos............................... 181
Pasarela para dotar a una centralita tradicional de nuevas extensiones. ........................ 182
Varias Oficinas con un Asterisk Centralizado. ................................................................... 182
Varias Oficinas con Sistemas Asterisk interconectados. ................................................... 183
AMPLIACIN DEL SISTEMA DE TELEFONA DE UNA EMPRESA............................................................... 184
SOLUCIONES DE ASTERISK PARA SISTEMAS DE TELEFONA ENTRE SEDES REMOTAS.................................. 185
Sistema Centralizado ......................................................................................................... 185
Sistema Distribuido ........................................................................................................... 186
LA REVOLUCIN ASTERISK ........................................................................................................... 186
EJEMPLOS DE USO DE ASTERISK: ................................................................................................... 187
Ejemplo 1: Centros mdicos Llamada recordatoria ....................................................... 187
Ejemplo 2: Centros de telemarketing Integracin con sistemas CRM ........................... 188
Ejemplo 3: Agencias de viajes (Self service) ...................................................................... 188
LA COMPLEJIDAD ASTERISK .......................................................................................................... 188
Y EL FUTURO? ......................................................................................................................... 189
CONCLUSIONES ......................................................................................................................... 189
PRUEBAS REALIZADAS ............................................................................................. 190
INICIACIN EN LINUX .................................................................................................................. 190
KUBUNTU & ASTERISK ................................................................................................................ 192
ELECCIN DEL SERVIDOR ADECUADO PARA ASTERISK ........................................................................ 193
Qu hay que tener en cuenta en la eleccin del servidor Asterisk? ............................... 193
Cul es la mejor distribucin para instalar Asterisk? ...................................................... 193
PUESTA A PUNTO DEL SERVIDOR ANTES DE LA INSTALACIN DE ASTERISK: ............................................ 194
Servidor HTTP Apache ....................................................................................................... 194
Servidor DHCP (DHCPD) .................................................................................................... 194
Servidor TFTP (TFTPD) ...................................................................................................... 197
Servidor MySQL (MySQLD) ................................................................................................ 198
phpMyAdmin..................................................................................................................... 198
Servidor SNMP (SNMPD) ................................................................................................... 199
Acceso al Servidor: PUTTY ................................................................................................. 201
Acceso al Servidor: WinSCP .............................................................................................. 202
INSTALACIN DE ASTERISK:.......................................................................................................... 203
viii
Asterisk 1.4.xx (de 1.4.0 a 1.4.21) ..................................................................................... 203
Asterisk 1.4xx (de 1.4.22 a 1.4.27) y 1.6.x ......................................................................... 206
ELECCIN DE LA VERSION ASTERISK: .............................................................................................. 208
Diferencia entre los Asterisk 1.4 (hasta 1.4.21) y los Asterisk 1.4.22 (y superiores) y 1.6 en
telefona analgica: De Zaptel a DAHDI ............................................................................ 208
Configuracin DAHDI......................................................................................................... 209
Pruebas de llamada al canal DAHDI en Asterisk 1.4.26.1 ................................................. 213
Pruebas bsicas realizadas en Asterisk 1.4.21 .................................................................. 214
Pruebas SoftPhones ...................................................................................................... 214
Pruebas telfonos IP (SipuraSPA) .................................................................................. 218
Pruebas de funcionamiento de buzones de voz ........................................................... 220
Pruebas utilizacin de las aplicaciones Goto() y GotoIf() y de variables de canal ........ 222
Pruebas de funcionamiento colas y registro de miembros........................................... 225
OTRAS PRUEBAS: ....................................................................................................................... 229
Pruebas de uso de conferencias en Asterisk 1.4.26.2: ...................................................... 229
Pruebas Proveedor VoIP: Gizmo5 ..................................................................................... 234
Pruebas Trunk IAX entre dos servidores Asterisk ............................................................. 236
Qu es un Trunk?......................................................................................................... 236
Trunk IAX Local entre dos servidores Asterisk .............................................................. 236
Trunk IAX entre dos servidores Asterisk ....................................................................... 239
Pruebas extensin remota ............................................................................................ 239
Prueba con Adaptador Telefnico Analgico SPA 3000.................................................... 241
CENTRALITA ASTERISK PARA YET INFORMTICA Y PRUEBAS REALIZADAS....................... 245
DESCRIPCIN DE LA CENTRALITA NUEVA: ASTERISK .......................................................................... 245
Esquema Conceptual del Demo realizado antes de la implantacin ................................ 246
Explicacin del Plan de llamadas de la Centralita (Dialplan) ............................................. 247
Llamadas entrantes ....................................................................................................... 247
Accesos Directos a usuarios de la Empresa................................................................... 252
Gestin de Buzones de Voz ........................................................................................... 253
Gestin de las Colas de la aplicacin............................................................................. 253
Funcionamiento de la Funcionalidad CallBack .............................................................. 255
Uso de Conferencias en la aplicacin ............................................................................ 256
ltima llamada recibida ................................................................................................ 256
ltima llamada realizada ............................................................................................... 257
Funcionamiento de la Funcionalidad DISA.................................................................... 258
Funcionamiento del desvo de las llamadas de usuarios internos a otro telfono ...... 259
Pruebas generales ............................................................................................................. 260
Prueba 1) Llama a la centralita en un horario no laborable un usuario VIP. ................ 260
Prueba 2) Llama a la centralita en un horario no laborable un usuario no VIP. ........... 262
Prueba 3) Llama a la centralita en un horario laboral un usuario VIP. ........................ 263
Prueba 4) Llama a la centralita en un horario laboral un usuario no VIP. ................... 266
Prueba 5) Comportamiento en el men ....................................................................... 268
Configuracin de ficheros ms utilizados.......................................................................... 269
Tabla de descripcin de ficheros de configuracin ....................................................... 269
Fichero de configuracin: EXTENSIONS.CONF, SIP.CONF, IAX.CONF ............................ 270
Fichero de configuracin: FEATURES.CONF .................................................................. 270
Fichero de configuracin: MANAGER.CONF ................................................................. 271
Fichero de configuracin: MEETME.CONF .................................................................... 271
ix
Fichero de configuracin: QUEUES.CONF ..................................................................... 271
Fichero de configuracin: VOICEMAIL.CONF ................................................................ 272
Bases de datos empleadas ................................................................................................ 273
Tabla de descripcin de las bases de datos utilizadas .................................................. 273
Conocimiento de las tablas de cada base de datos mostrando parte de su contenido 274
Explicacin terica y prctica de funcionalidades extra: .................................................. 280
Agenda de Contactos: YetBook ..................................................................................... 280
Integracin con Google Calendar .................................................................................. 297
Chan_Sebi ...................................................................................................................... 303
Flash Operator Panel 2 (FOP 2) ..................................................................................... 309
Asternic Call Center Stats .............................................................................................. 331
Asternic CDR Reports .................................................................................................... 340
Verbio ............................................................................................................................ 348
Skype ............................................................................................................................. 372
Skype para Asterisk (SfA)............................................................................................... 373
Nagios ............................................................................................................................ 385
Actualizacin de firmware del Telfono Cisco 7941 de SCCP a SIP................................... 393
Actualizacin de firmware del Telfono Cisco 7905 de SCCP a SIP................................... 398
DESCRIPCIN BREVE DE LA CENTRALITA ACTUAL: CISCO Y MEJORAS REALIZADAS EN LA NUEVA. ................ 401
Esquema Conceptual de la centralita actual: Cisco........................................................... 401
Mejoras de la nueva centralita Asterisk ............................................................................ 402
Agenda de clientes ........................................................................................................ 402
Usuarios o extensiones remotas ................................................................................... 402
Gestin de horarios y festivos con calendarios............................................................. 402
Conferencias .................................................................................................................. 402
Sistema de Colas............................................................................................................ 402
Grabaciones por defecto ............................................................................................... 402
Reporting de llamadas y estadsticas de Colas.............................................................. 402
Implantacin en la empresa .............................................................................................. 403
Esquema Conceptual de la centralita para Yet Informtica S.L. ................................... 403
Tipo de Implantacin y Anlisis de Riesgos ................................................................... 404
Hardware y Software necesario para la implantacin de la centralita ......................... 404
LNEAS FUTURAS Y CONCLUSIN .................................................................................................. 405
ANEXOS ............................................................................................................... 407
ANEXO A: SECURITY.TXT ........................................................................................................... 407
ANEXO B: APLICACIONES DE ASTERISK ......................................................................................... 409
ANEXO C: FUNCIONES DE ASTERISK ............................................................................................. 423
ANEXO D: FICHEROS DE CONFIGURACIN DE ASTERISK .................................................................. 428
ANEXO E: INSTALACIN DE CENTOS 5 ......................................................................................... 459
ANEXO E: GUA DE GOOGLE CALENDAR ....................................................................................... 466
ANEXO F: MANUAL DE USUARIO DE FOP 2 .................................................................................. 472
ANEXO G: CDIGO DE LAS PRUEBAS DE ENVIO DE SMS .................................................................. 479
sms_send.php ................................................................................................................... 479
enviaSMS.sh ...................................................................................................................... 481
EnviaSMS.java ................................................................................................................... 481
ANEXO H: DIALPLAN DE LA APLICACIN (EXTENSIONS.CONF, SIP.CONF, IAX.CONF) .............................. 482
extensions.conf ................................................................................................................. 482
sip.conf .............................................................................................................................. 497
x
iax.conf .............................................................................................................................. 501
GLOSARIO.............................................................................................................. 502
BIBLIOGRAFA ........................................................................................................ 502
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
Yet Informtica, naci en 1984, tras un anlisis del mercado informtico. En aquellos
tiempos este se divida fundamentalmente en dos reas: la programacin a medida y
los programas estndares de uso generalista, existiendo una tendencia incipiente hacia
los programas verticales.
Para conocer ms sobre Yet: www.yet.es.
1
Cmo surge la necesidad del proyecto a realizar
Como una posible solucin surge el montaje de una centralita no propietaria como es
Asterisk evitando por una parte la compra de licencias , pudiendo aprovechar los
telfonos Cisco haciendo una conversin del protocolo de estos, SCCP, al protocolo
SIP.
2
Planificacin del Proyecto
Una vez obtenidos estos conocimientos la centralita nueva debe mejorar la actual y
ofrecer otras funcionalidades extras que la hagan aun ms completa.
Tambin es objetivo que esta memoria sea lo ms intuitiva posible de forma que si no
se conoce nada sobre Asterisk se pueda llegar a entender gran parte tanto de la
configuracin del Dialplan como del funcionamiento de estas centralitas y de este
mundo en general.
3
Viabilidad del Proyecto
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.
4
5
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.
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.
6
7
8
Fases, Tareas y Entregables
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
9
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
Recursos Humanos y Materiales Amortizables
Para la realizacin del proyecto de fin de carrera el nico recurso humano ser el autor
de dicho proyecto, es decir, yo, David Escauela Alonso (David).
Ordenadores
Las caractersticas
tcnicas del PC son las
siguientes: Intel Xeon
HP PROLIANT ML110 G5
(Servidor) 3065 Dual Core a 2,33 300,00 1
GHz, 1GB de memoria
RAM, 250GB de disco
duro.
Las caractersticas
HP Compaq tcnicas del PC son las
600,00 1
(Ordenador) siguientes: Intel Pentium
4CPU 280GHz, 504MB
de RAM.
Las caractersticas
tcnicas del PC son las
Amilo Notebook Pi3540
siguientes: Intel Core 2
(Portatil1) 500,00 2
Duo P8600,320GB de
(Portatil2)
disco y 4GB de RAM
26
Telfonos
ALLNET ALL7960
Telfono IP (SIP e IAX) 61,89 1
(ALLNET)
Inalmbrico Alcatel
Versatis 620 Duo
(Telefono1) Telefono Analgico 49,00 2
(Telefono2)
Otros
TDM400P
Tarjeta de Telefona 135,00 1
(Tarjeta)
SPA 3000
Adaptador de Telefona 1
(ATA) 44,53
Analgico(1FXS y 1FXO)
27
Router
Router ADSL 150,00 2
(Router1)(Router2)
Commpilador de
Netbeans 6.7.1 Lenguajes de 00,00 1
Programacin
Gestor de Bases
MySQL 5.0.27 00,00 1
de Datos
Canal de conexion
Licencia chan_skype 45,92 1
con Asterisk
28
Agenda del proyecto
Agenda de recursos:
Trabajo Costo ()
Recurso Tareas asociadas
(horas)
29
Pruebas de integracin con FOP 15 5,85
30
Instalacin de Asterisk 5 1,95
Pruebas I 5 1,95
Tratamiento de 11,70
30
funcionalidades extra
Pruebas II 30 11,70
31
Instalacin y Estudio de Verbio 30 11,70
Pruebas IV 15 5,85
Servidor 26 32,50
32
Pruebas de funcionamiento de 1,25
1
Elastix
Pruebas I 1 1,25
33
Solucin de errores I 1 1,25
Tratamiento de 1,25
1
funcionalidades extra
Pruebas II 1 1,25
Pruebas IV 1 1,25
Ordenador 27 33,75
34
Pruebas con SoftPhones y 1,25
1
Telefonos IP
35
Pruebas I 1 1,25
Tratamiento de 1,25
1
funcionalidades extra
Pruebas II 1 1,25
Pruebas IV 1 1,25
Portatil1 17 21,25
36
Iniciacin en Linux 1 1,25
37
1 1,25
Diseo del Dialplan
1 1,25
Instalacin y Estudio de Verbio
1 1,25
Elaboracin de la Presentacin
Portatil2 6 7,5
38
Pruebas TRUNK IAX 2 1,25
1
y usuario remoto
Sipura1 20 5,00
1 0,25
Pruebas de integracin con FOP
1 0,25
Pruebas TDM400P
39
Programacin y Pruebas Google 1 0,25
Calendar II: Envio de SMS
1 0,25
Pruebas I
1 0,25
Solucin de errores I
1 0,25
Programacin Callback y DISA
1 0,25
Pruebas II
1 0,25
Pruebas III
Sipura2 5 1,25
40
Pruebas con SoftPhones 0,25
1
y Telefonos IP
Pruebas I 1 0,25
Tratamiento de 0,25
1
funcionalidades extra
Sipura3 3 0,75
Pruebas I 1 0,25
ALLNET 3 0,75
Pruebas I 1 0,25
Telefono1 2 0,50
41
Montaje de centralita de 0,25
1
pruebas II con TDM400P
Telefono2 1 0,25
ATA 1 0,25
Tarjeta 2 1,00
sebi 1 0,15
Switch1 28 7,00
42
Pruebas de funcionamiento 0,25
1
de Elastix
43
Integracin de ficheros 0,25
1
de configuracin
Pruebas I 1 0,25
Tratamiento de 0,25
1
funcionalidades extra
Pruebas II 1 0,25
Pruebas IV 1 0,25
44
Pruebas con SoftPhones y 0,25
1
Telefonos IP
Switch2 2 0,50
Router1 36 9,00
45
Pruebas de integracin 0,25
1
con CDR Reports
Pruebas I 1 0,25
46
Elaboracin de la memoria V: 0,25
1
Aplicacin
Tratamiento de 0,25
1
funcionalidades extra
Pruebas II 1 0,25
Pruebas IV 1 0,25
47
Conversin telefonos IP (de SCCP 0,25
1
a SIP), configuracin y pruebas
Router2 7 1,75
CISCO 1 0,50
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
Estimacin de Costes del Proyecto:
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
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
Recursos Humanos
52
Router2 7 0,25 1,75
CISCO 1 0,50 0,50
123,65
Coste Unitario
Coste Tiempo de Tiempo
de Importe
Concepto Unitario Amortizacin de Uso
Amortizacin ()
() (horas) (horas)
(/h)
53
Putty Gratuito 4800 - - 0,00
WinSCP Gratuito 4800 - - 0,00
MySQL
Gratuito 4800 - - 0,00
5.0.27
Skype Gratuito 4800 - 15 0,00
Licencia
45,92 4800 0,0096 15 0,14
chan_skype
Firefox 3.5 Gratuito 4800 - - 0,00
Zoiper Gratuito 4800 - - 0,00
SUBTOTAL 32,95
TOTAL 43,10
Presupuesto
Concepto Importe ()
1.273,98
PRESUPUESTO 1.847,28
Por tanto, el presupuesto asciende a veintisiete mil seiscientos ochenta y siete con
cincuenta y nueve.
54
55
Captulo
1
Introduccin a VoIP
Una definicin general de Voz sobre IP (tambin conocida como telefona IP) es la
posibilidad de transportar conversaciones telefnicas en paquetes IP. Cuando hablamos
de VoIP, nos referimos a la telefona en Internet en el sentido ms amplio de la
expresin. El trmino VoIP no se refiere a ninguno de los mecanismos concretos que
existen para llevar las seales de voz de un sitio a otro en la red. Existen docenas de
tecnologas que permiten hablar por la red.
Las alternativas tecnolgicas de VoIP se pueden dividir de una manera sencilla en dos
grandes grupos:
56
Tecnologas cerradas/propietarias dnde nos encontramos con el conocido
Skype o el ya legendario Cisco Skinny (SCCP).
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.
Los servicios gratuitos te pueden solucionar una necesidad a corto plazo pero nunca
garantizar tu independencia o el control de tu propio proceso de aprendizaje y
desarrollo. No se trata de una cuestin puramente tcnica.
El problema no es decidir cul es la mejor de las tecnologas sino cul es la que permite
que las comunidades sean dueas de su propio desarrollo y que puedan adaptarse a
sus propias necesidades.
Para ser conscientes de la importancia de los estndares abiertos quizs sea bueno
empezar presentando una definicin de estndar. Un estndar es un conjunto de
reglas, condiciones o requerimientos que describen materiales, productos, sistemas,
servicios o prcticas.
En telefona, los estndares garantizan que todas las centrales de telefona sean
capaces de operar entre s. Sin ese conjunto de reglas comunes un sistema de telefona
de una regin sera incapaz de intercambiar llamadas con otro que est, tan slo, unos
kilmetros ms all.
Aunque muchos de los estndares de telefona son pblicos, los sistemas siempre han
estado bajo el control de un grupo muy limitado de fabricantes. Los grandes
fabricantes de sistemas de telefona son los nicos capaces de negociar contratos a
nivel regional o incluso nacional. sta es la razn que puede explicar porqu es muy
comn encontrar siempre el mismo tipo de equipos a lo largo de un mismo pas.
57
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
58
o No tardan en aparecer otros fabricantes que crean hardware
exclusivamente compatible con Asterisk (Junghanns, Beronet).
Caractersticas Principales
- Se utiliza una nica red. Si dos empresas estn unidas a travs de Internet.
Por qu no aprovecharlo?
Ventajas de VoIP
Funcionales
De Gestin
59
configurado.
o Mejor reporte.
Econmicas
Problemas
60
Cmo se transmite VoIP por la red?
Aplicacin:
61
Transporte:
Entender cada uno los conceptos nos va a ser muy til cuando configuremos cualquier
tipo de programa relacionado con telefona IP.
PBX
PBX viene del trmino ingls Private (Automatic) Branch Exchange. En palabras simples,
el uso ms comn de una PBX es compartir de una a varias lneas telefnicas con un
grupo de usuarios. Una PBX se sita entre las lneas telefnicas y los telfonos
(terminales de voz).
La PBX tiene la propiedad de ser capaz de redirigir las llamadas entrantes a uno o varios
telfonos. De una manera similar, una PBX permite a un telfono escoger una de las
lneas telefnicas para realizar una llamada telefnica al exterior. De la misma forma
que un enrutador (router) en Internet es responsable de dirigir los paquetes de un
origen a su destino, una PBX es responsable de dirigir llamadas telefnicas.
La palabra private en la sigla PBX significa que el dueo del sistema tiene todo el
control y decide como compartir las lneas exteriores con los usuarios.
Una PBX no slo permite compartir un conjunto de lneas con un grupo de usuarios
sino que tambin ofrece la posibilidad de crear servicios de valor aadido como
transferencia de llamadas, llamadas a tres ,es decir, tener la posibilidad de tener a
ms de dos personas hablando simultneamente en la misma conversacin, pasarela
de voz a correo permitiendo grabar un mensaje de voz en un adjunto de correo
electrnico como si fuera un contestador automtico grabando el mensaje en un
fichero de audio y se envindolo a una cuenta de correo o servicios basados en una
respuesta de voz interactiva (IVR), etc.
Una PBX puede ser de gran utilidad en mltiples escenarios. Piensa en las regiones
donde el acceso a la red telefnica implica caminar varias horas (sino das) a una cabina
o Telecentro.
Adems, una situacin muy comn es que slo exista una lnea telefnica por edificio o
por poblacin. Una PBX (tu centralita) permitir compartir esa lnea e incluso extender
62
la red telefnica a lugares remotos.
PSTN-RTB
De la misma forma que Internet es la red global IP, la RTB es la combinacin de todas
las redes conmutadas de telfono. Una diferencia muy importante entre la RTB e
Internet es la nocin de flujo de informacin. En telefona los flujos de informacin
son cada una de las llamadas o conversaciones mientras que en Internet es cada uno
de los paquetes de datos.
Desde el punto de vista conceptual la RTB e Internet son muy diferentes y representan
dos mundos y filosofas casi antagnicas. Si una conversacin se efecta en una RTB se
tiene que reservar un canal (circuito) dedicado de 64 Kbps, pero en Internet la misma
conversacin puede coexistir con otros servicios de manera simultnea. Aunque esta
diferencia pueda parecer irrelevante a primera vista, tiene grandes implicaciones de
cara a la implementacin de las tecnologas de la informacin tanto en regiones
desarrolladas como en desarrollo. En el modelo tradicional, un cable de cobre
proporciona acceso a la RTB y ofrece un slo tipo de servicio: un canal analgico. Si ese
mismo cable se usa para conectarse a una red conmutada de paquetes como Internet,
se puede implementar cualquier tipo de servicio basado en el protocolo IP.
Ambas redes, la RTB e Internet usan direcciones para encaminar sus flujos de
informacin. En la primera se usan nmeros telefnicos para conmutar llamadas en las
centrales telefnicas, en Internet se usan direcciones IP para conmutar paquetes entre
los enrutadores (routers).
Sealizacin analgica
Un Foreign Exchange Office (FXO) es cualquier dispositivo que, desde el punto de vista
de la central telefnica, acta como un telfono tradicional. Un FXO debe ser capaz de
aceptar seales de llamada o ring, ponerse en estado de colgado o descolgado, y enviar
y recibir seales de voz. Asume que un FXO es como un telfono o cualquier otro
dispositivo que suena (como una mquina de fax o un mdem).
63
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.
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
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
Sealizacin entre centrales telefnicas
El hecho de que la voz y la sealizacin estn separadas significa que los flujos de
informacin pueden tomar caminos fsicos totalmente diferentes. Imagnate que las
conversaciones pueden viajar por un cable mientras que los nmeros de telfono de
los comunicantes se envan por otro. Este concepto es importante para entender la
siguiente seccin: sealizacin en telefona IP.
Sealizacin en telefona IP
Por herencia histrica, la sealizacin en voz sobre IP sigue unos principios muy
parecidos a la sealizacin en RTB. Las seales y las conversaciones estn claramente
diferenciadas.
Protocolo H.323
Primer estndar VoIP, basado en protocolos de la RDSI, desarrollado en 1996 por la UIT
como un medio para transmitir voz, video, datos, fax y las comunicaciones a travs de
una red basada en IP al tiempo que se mantiene la conectividad con la PSTN. Facilita la
introduccin de Telefona IP en las redes existentes de RDSI basadas en sistemas PBX.
Tom fama porque era el ms usado por los grandes operadores en sus redes
troncales. Se usa en el famoso programa Netmeeting.
Ha sido sustituido por el protocolo SIP, no obstante, todava hay muchos operadores IP
que no han portado SIP, muchos sistemas instalados que solo entienden este protocolo
y tambin est presente en algunas aplicaciones de Videoconferencia.
Los roles que nos interesan de este protocolo son los siguientes:
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
Este Protocolo es un protocolo muy simple con mucha facilidad para ampliarse y en el
que la centralita Asterisk se desenvuelve de forma muy ptima.
Este Protocolo se basa en dos entidades bien diferenciadas, los Agentes de Llamadas y
las pasarelas. En Asterisk la estructura estara formada por Terminales IP MGCP que
actan como pasarelas y l acta como Agente de Llamada. As entonces, el Asterisk
siempre tiene el estado en el que se encuentran las pasarelas.
67
Protocolo SIP (Session Initiation Protocol)
Ventajas:
Inconvenientes:
Asterisk puede tener dos roles diferentes e importantes dentro de las comunicaciones
a travs de este Protocolo SIP.
68
Ejemplo de los 2 roles que puede tomar Asterisk usando este protocolo.
Capacidades de SIP:
Movilidad:
69
o La movilidad personal, el usuario puede ser alcanzado en un dispositivo
cualquiera, registrndose en el SIP Registrar Server.
Aunque dos dispositivos SIP (telfonos IP) pueden comunicarse directamente, SIP
normalmente hace uso de algunos elementos adicionales llamados proxies para
facilitar el establecimiento de las llamadas. Un proxy opera como un representante
(apoderado) que se encarga de negociar entre dos partes. Con la ayuda de un proxy
puedes mover fsicamente tu nmero de telfono en Internet. Los nmeros no estn
asociados a un sitio concreto sino que se pueden mover siempre y cuando
notifiquemos al proxy de nuestra ubicacin. Como el proxy funciona como un
70
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.
71
Protocolos en tiempo real y el NAT
En Internet, las conversaciones que usan sealizacin de tipo SIP resultan en flujo
constante de paquetes de pequeo tamao entre los comunicantes. Estos paquetes de
voz hacen uso de otro protocolo llamado RTP. El protocolo de transporte de tiempo
real o Realtime Transport Protocol (RTP) es el encargado de llevar las conversaciones (la
voz) de un lado a otro. En el RTP se define un mecanismo estndar para enviar audio y
vdeo en Internet. De la misma forma que en una conversacin existen dos flujos de
voz, en una conversacin en una red IP tenemos dos flujos de paquetes RTP.
Los Network Address Translators (NATs) son los grandes enemigos del RTP. Una red con
un NAT consiste en varios ordenadores compartiendo, con el mundo exterior, una sla
direccin IP pblica. Las mquinas situadas dentro de la red NAT usan direcciones
privadas. Aunque el NAT permite conectar ms fcilmente ordenadores a la red, lo
hace al precio de no permitir una conexin puramente bidireccional.
Existen varios problemas relacionados con NAT y VoIP. El ms comn de los problemas
es conocido como audio en una sola direccin (oneway audio). Como coment, una
conversacin est compuesta por dos flujos de paquetes RTP distintos. En presencia de
un NAT, slo el flujo de dentro a fuera no es bloqueado; el flujo de fuera a dentro no
tiene la misma suerte y puede atravesar el NAT.
La consecuencia: el que inicia la llamada desde dentro del NAT no puede escuchar a la
otra parte. Si los dos comunicantes se encuentran dentro de NATs las cosas se
complican an ms, hasta el punto de que ningn flujo de audio llega a su destino final.
Por desgracia, las direcciones IP privadas y los NAT estn especialmente presentes en
todos los lugares de las regiones en desarrollo. Configurar una red con sealizacin SIP
y NATs no es trivial.
SIP vs NAT
Un equipo IP para ser alcanzado en Internet debe utilizar una IP pblica para sus
comunicaciones. Es necesario por tanto enmascarar la red interna en una o varias IPs
pblicas (Source NAT).
72
El proceso de NAT no es nada sencillo: varios tipos de NAT suponen varios tipos de
soluciones e infinidad de problemas.
Es un protocolo de sealizacin que fue creado por Mark Spencer, para paliar una serie
de inconvenientes y problemas del SIP.
Ventajas:
Consume mucho menos ancho banda por llamada que el SIP. Los
mensajes IAX son codificados de forma binaria mientras que los del
SIP son mensajes de texto.
73
por el mismo canal se conoce como inband, mientras que el mtodo
que usa SIP, el outofband, enviar la sealizacin dentro del canal de
voz obligando a separar los paquetes de voz de los paquetes de
sealizacin.
Inconvenientes:
IAX2 (por ser la versin 2) est fuertemente influido por el modelo comunitario de
desarrollo abierto y tiene la ventaja de haber aprendido de los errores de sus
predecesores resolviendo muchos de los problemas y limitaciones de H.323 y SIP.
74
diferentes:
Servidor: Como Servidor, Asterisk admite registros de clientes IAX, pudiendo ser
estos clientes Hardware, Software u otros Asterisk.
Ejemplo de los 2 roles que puede tomar Asterisk usando este protocolo.
Telfonos IP
Caractersticas Principales:
75
Normalmente soportan un nico protocolo de VoIP (SIP, IAX2, H323).Aunque
pueden soportar varios.
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 :
78
Por ejemplo : Skype
o Libres :
Protocolos estndar.
Protocolos propios abiertos.
X-Lite
Configuracin:
En Domain/Realm, SIP Proxy y Out Bound Proxy tiene que poner la direccin IP
de su servidor de Asterisk.
79
Las dems caractersticas para crear un usuario SIP en el telfono no es
necesario modificarlas.
Zoiper
Configuracin:
En Username, Password y
en Caller ID Name se
deben poner los datos de
configuracin del archivo
sip.conf.
Ekiga
Configuracin:
80
Para aadir una cuenta SIP, simplemente
haga clic en el botn Aadir una cuenta SIP.
Otros SoftPhones :
Cubix
Diax
Kiax
81
Adaptadores IP
Tipos de Adaptadores :
Por un lado habla analgico con el telfono y por otro lado habla digital con
la red IP.
Caractersticas de ATA:
FXO to USB: Casi siempre relacionados con Skype, permiten reenviar las
llamadas recibidas por Skype por una lnea normal.
82
Gateways 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.
Caractersticas Principales:
Utilizar la lnea como backup, es decir, en caso de fallo de Internet o del proveedor
VoIP, las llamadas pueden ser encaminadas por PSTN tradicional.
83
Recibir llamadas por PSTN y encaminarlas por VoIP.
Parmetros de VoIP
Calidad de Servicio
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).
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
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.
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.
85
Retos al implementar VoIP
Infraestructura de soporte:
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
2
Asterisk, el futuro de la telefona
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.
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.
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.
Asterisk cuenta con un esquema de doble licencia, la licencia de Software libre GNU
(GNU General Public License, GPL) y otra licencia propietaria para permitir cdigo
propietario como el del cdec G.729. Gracias a la licencia GPL cuenta con una gran
comunidad de programadores que han contribuido a aadirle multitud de
caractersticas.
88
Los aadidos de terceros al cdigo de Asterisk implican la cesin de los derechos
comerciales a Digium pero se conserva el copyright del desarrollador.
La potencia de esta PBX aumenta al ser posible desarrollar nuevas funcionalidades con
lenguajes estndar de programacin y utilidades propias de Asterisk.
Qu NO es Asterisk?
89
Cundo usar Asterisk?
Asterisk se encuentra avalado por los principales proveedores de VoIP, que lo utilizan
para la interconexin de sus redes con las redes de telefona tradicional, encaminando
tal cantidad de trfico que slo un sistema tan estable, seguro y eficaz como ste
puede soportar.
Por qu Asterisk?
- 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
- Reduzca su factura telefnica: El uso de proveedores de VoIP para permitir el
envo o la recepcin de llamadas a travs de Internet puede significar un ahorro
en su factura telefnica superior al 40 %.
Econmico:
Los servidores y los telfonos usados son estndar, los producen multitud de
fabricantes, que compiten entre ellos en prestaciones y precio.
Robusto:
Flexible:
91
Debido a su sistema de configuracin a bajo nivel, la centralita prcticamente
se programa a medida para cada cliente, permitiendo adaptarla para cubrir
prcticamente todas las necesidades de su empresa, hasta el mnimo detalle.
Protege la inversin:
Ventajas Competitivas:
92
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.
Su primer proyecto fue construir una tarjeta T1 Open Source. Estos ingresos les
mantenan a flote pero no reciban contribuciones de nadie y el resto tan solo coga sus
diseos y manufacturaban tarjetas que competan con las suyas.
93
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:
El lanzamiento de Asterisk 1.0 (Setiembre 2004) fue anunciado por Mark durante la
Astricon. El tarball de Asterisk 1.0.0 pesaba unos 9 MB, y ya varias compaas daban
soporte al desarrollo de Asterisk: Pilosoft, Inc. (soporte al desarrollo ADSI), GFS
(soporte al desarrollo ALSA), Telesthetic (soporte al desarrollo SIP), Paul Bagyenda,
Digital Solutions (desarrollo inicial del driver Voicetronix), entre otros muchos
desarrolladores que contribuan como Christos Ricudis que realiz importantes aportes
al cdigo de Asterisk.
Con un Changelog mucho ms amplio ya, puesto que desde la release inicial se haban
resuelto unos 340 bugs, se dispona de canales IAX2, SIP, PRI, Zap, OSS, backends para
CDR, mejoras en el soporte para FreeBSD/OpenBSD/MacOS X, mejoras en H.323, se
aadieron los codecs iLBC, G.726, G.729, LPC10, ADPCM, speech, u-law, formato GSM
WAV, formato de fichero PCM, tambin MP3 aunque luego se quit, soporte para ISDN
Linux e incluso soporte para vdeo en el canal SIP e IAX2.
Asterisk 1.0.0 ya tena soporte para diferente hardware Zaptel entre otros:
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:
Y efectivamente as fue, solo Asterisk lleg a la release 1.0.12 dejando paso a Asterisk
1.2.0 (Noviembre 2005). La nueva rama de Asterisk fue presentada durante la
conferencia IP.4.IT en Las Vegas, Nevada.
99
Nueva interfaz para flujos de llamada IVR dinmicos.
Acceso configurable a funcionalidades de llamada generales.
Mejoras en el protocolo SIP.
Nuevas funcionalidades para el protocolo IAX (Inter-Asterisk eXchange).
Uso de ficheros de sonido para la msica en espera nativa.
Soporte CDR customizable.
Mejoras en el soporte PRI.
100
Mensajera unificada: Integra el buzn de voz, el correo electrnico y el fax en
un nico buzn donde los usuarios pueden enviar, recibir y manejar todos sus
mensajes utilizando cualquier dispositivo compatible.
Gestin en tiempo real del audio: Permite seleccionar y programar
interrupciones en las llamadas para controlar el volumen y el mute en tiempo
real.
Mejorado el soporte DTMF: Permite distinguir tonos de diferente longitud
para nuevas opciones especiales.
Codecs de video H.264 (Video llamadas 3G): Podremos realizar
videoconferencias con la ultima tecnologa de video compatible con la red
mvil 3G.
Soporte Radius en CDR: Para poder almacenar el registro de llamadas
utilizando un servidor Radius.
Interfaz web: Para que una oficina o un nico usuario pueda configurar el
servidor fcilmente.
Monitorizacin de llamadas: Permite escuchar conversaciones de manera
silenciosa, necesario para todo buen Call-Center o proveedor de VoIP.
Mejora en el uso de la memoria: Hace un mejor uso de la mejora ahorrando
y potencindola en aquellos casos en que sea necesario.
Mejora en las transferencias: Los clientes SIP e IAX podrn hacer
transferencias sin limitaciones e incluso transferir llamadas aparcadas (parked).
Mejora en el protocolo IAX2: Mejora en las capacidades de este protocolo
para transmitir audio y video permitiendo comunicacin directa sin tener que
pasar por el servidor, aunque manteniendo el control de llamadas.
Programacin automtica de Eventos: Permite programar eventos y
escucharlos durante una conversacin reproduciendo archivos gsm o wav.
Locales de fecha: Permite cambiar el formato de fecha y adecuarlo al formato
deseado (no nicamente el formato ingles EEUU).
Soporte de SCCP de Cisco: Permite utilizar los terminales de Cisco y as poder
reutilizar dispositivos.
Monitorizacin SNMP: Permite controlar, gracias a un cliente SNMP (mrtg,
rrdtool, etc), los datos de utilizacin, registros, llamadas, etc.
Transparencia de protocolos: Soporta pasar codecs desconocidos en modo
passthrougt (canreinvite=yes).
Reconocimiento de voz: Utilizando un motor comercial podremos crear IVR
utilizando la voz para introducir la opcin elegida.
Reproductor de texto a voz (TextToSpeech): Utilizando un motor comercial
podremos crear locuciones dinmicamente con comandos especiales.
Nueva estructura de compilacin (make menuselect).
Nuevas variables disponibles (como DIALSTATUS).
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).
Por otra parte las versiones 1.4.2X, las ltimas que sac Digium con la funcionalidad
DAHDI ya implantada en vez de Zaptel, han resultado ser bastante decepcionantes en
cuando a estabilidad.
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
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
Transferencia (a cualquiera) y Transferencia atendida (a alguien determinado).
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
AGI (Asterisk Gateway Interface): integracin con todo tipo de aplicaciones
externas.
Acciones a realizar segn horarios y fechas (horario laboral, das festivos, etc.).
Posibilidad de integracin con Google Calendar.
Modificacin de funciones:
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:
108
API de traduccin de Codecs:
Usando estas APIs Asterisk alcanza una completa abstraccin entre sus
funciones bsicas y las diferentes tecnologas y aplicaciones relacionadas.
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
/usr/local /asterisk/etc/
/opt/asterisk/etc/
Contextos
Extensiones
Prioridades
Aplicaciones
Contextos
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]
El [general] que contiene una lista de ajustes generales del Dialplan (que
probablemente no tenga que preocuparse por el).
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.
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
Dentro de cada contexto, podemos definir muchas (o pocas) extensiones, segn sea
necesario.Se accede a las extensiones cuando:
Esta es una de las caractersticas de Asterisk que lo hace tan flexible y potente.
Extension s
112
[incoming]
exten => s, 1, aplicacion()
exten => s, 2, aplicacion()
exten => s, 3, aplicacion()
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.
[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
El punto clave a recordar aqu es que una extensin de Asterisk sigue las prioridades en
orden.
113
aborda este problema introduciendo el uso de la prioridad n, que significa
"prximo". Cada vez que encuentra una prioridad n, Asterisk calcular el prximo
nmero de prioridad aumentando 1 la prioridad anterior.Esto hace que sea ms fcil
hacer cambios en su Dialplan, al no tener que reenumerar en sus cambios. Tener en
cuenta que la prioridad 1 s que es necesaria poner.
Para asignar una etiqueta de texto a una prioridad, solo tiene que aadir la etiqueta
entre parntesis despus de la prioridad, de esta forma:
Un error muy comn al escribir las etiquetas es insertar una coma entre n y el
parntesis de esta forma:
Aplicaciones
Las aplicaciones son las acciones del Dialplan. Cada aplicacin realiza una accin sobre
el canal actual, tales como la reproduccin de un sonido, la aceptacin de tonos de
entrada, marcar un canal, colgar la llamada, y as sucesivamente.
Ocasionalmente, tambin puede aparecer el carcter tubera (|) que se utiliza como un
separador entre argumentos, en lugar de una coma.
114
- Busy(): Enva la seal de ocupado al origen.
- Hangup(): Cuelga la llamada.
- Ringing(): Enva la seal de tono de llamada.
- Dial ( tipo/identificador,timeout,opciones,url ): Aplicacin para llamar.
- Goto (contexto, extension, prioridad): Salta al contexto, extensin y prioridad
del argumento.
- GotoIf ( condicion ? prioridad1 : prioridad2 ): Salta a la prioridad1 si la
condicin se cumple. Salta a la prioridad2 si la condicin no se cumple.
- GotoIfTime(<times>|<weekdays>|<mdays>|
<months>?[[context|]exten|]priority): Igual que GotoIf teniendo en cuenta la
fecha y hora actual.
- PlayBack (fichero ): Reproduce el fichero, continua la ejecucin cuando
finaliza.
- Background (fichero): Reproduce el fichero, pero continua la ejecucin
inmediatamente.
- SayDigits ( dgitos): Reproduce los dgitos
Uso de variables
Las variables pueden ser utilizadas en el Dialplan de Asterisk para ayudar a reducir la
mecanografa, aadir claridad, o aadir caractersticas adicionales a la lgica de
Dialplan.
exten => 555,1, Dial ($ {JUAN}) : Al marcar 555 llamariamos por el canal y al numero
establecido en esa variable.
Tipos de variables :
Variables globales:
Como su nombre indica, las variables globales se aplican a todas las extensiones
en todos los contextos.Las variables globales deben ser declaradas en el
contexto [globales], en el inicio del archivo extensions.conf, aunque tambin
pueden ser definidas mediante programacin, utilizando la GLOBAL ().
[globals]
JUAN = Zap / 1
[empleados]
exten => 124,1, Set (GLOBAL (GEORGE) = SIP / George)
115
Variables de canal:
Una variable de canal es una variable que se asocia slo con una llamada en
particular.
Variables de entorno
La sintaxis :
ENV {$ (var)}, donde var es la variable de entorno Unix que desee referenciar.
Coincidencia de patrones
Los patrones permiten crear una extensin en su Dialplan que coincide con muchos
nmeros diferentes.
Sintaxis:
116
Z : Coincide con cualquier digito del 1 al 9.
exten => _NXX, 1, PLayback (thankyou) : Al marcar un nmero entre 200 y 999
se escucha el sonido de thankyou.gsm.
EXTEN es 95551212
${EXTEN:1} = 5.551.212
${EXTEN: x: y}
117
x es el inicio , e y es el numero de dgitos a regresar.
EXTEN es 94169671111
$ {EXTEN:1:3} = 416.
$ {EXTEN:4:7} = 9671111.
$ {EXTEN:-4:4} = 1111 (comenzara cuatro dgitos desde el final).
Expresiones bsicas
Una expresin puede mostrar valores, alterar las cadenas, o realizar clculos
matemticos.
Cada una de estas expresiones tiene un resultado o valor, dependiendo del valor de las
variables o las cadenas.
Sintaxis: $ [expresion]
Ejemplos:
$ [$ {COUNT}+ 1]
$ [$ {COUNT} / 2]
Operadores
Operadores booleanos
expr1 & expr2: Este operador (llamado "and") devuelve 1 si las dos
expresiones son verdaderas (es decir, ninguna expresin es
cadena vaca o cero). De lo contrario, devuelve 0.
118
cadenas .El resultado de cada comparacin es 1 si la
relacin es cierta , o 0 si la relacin es falsa.
Operadores matemticos
Al igual que las variables, para referenciar el valor de la funcin se usan argumentos:
$ {Function_name (argumento)}
${FUNCTION_NAME(${FUNCTION_NAME(argument)})}
Los ficheros a manipular son sip.conf e iax.conf, la instalacin crea ficheros de ejemplo
con la sintaxis bastante comentada a modo de gua.
En sip.conf se definen:
119
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:
[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.
[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
Creacin de mailbox
En la que:
121
Asterisk puede enviar notificaciones de voz a la casilla de correo.
pager_email: Esta es la direccin de correo electrnico del pager o telfono
celular. Asterisk puede enviar un breve mensaje de notificacin
de voz a la direccin de correo electrnico especificada.
options: Este campo es una lista de opciones que establece el propietario del
buzn de la zona horaria y redefiniciones de configuracin de voz.
Hay nueve opciones validas: attach, serveremail, tz,ssaycid,
review,operator, callback, dialout,y exitcontext. Estas opciones deben
estar en pares option = value , separados por el carcter tubera (|).
La opcin tz establece la zona horaria del usuario a una zona horaria
previamente definida en el contexto [zonemesages] en voicemail.conf,
y las otras ocho opciones son sobre el voicemail.
Acceso al voicemail
Los usuarios pueden recuperar sus mensajes de correo de voz, cambiar sus opciones
de voz, y grabar sus saludos de voz utilizando el VoiceMailMain().
Esto se crea con Directory(). Esta aplicacin utiliza los nombres definidos en los
mailbox de voicemail.conf .
122
context: El contexto opcional del dialplan para llamar al usuario.
options: Por defecto se busca el usuario por apellido.
Con la opcin f se busca por nombre.
Con la opcin e se busca por extensin.
Se solicita al usuario que introduzca por teclado las 3 primeras letras del
nombre/apellido/extension del empleado.
Audio en Asterisk
Reproduccin
Msica en Espera
Aplicacin Festival
Para que Festival se integre en Asterisk, antes de compilar la centralita tenemos que
instalar dos paquetes:
123
yum install festival festival-devel
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
nano /usr/share/festival/festival.scm
;(language__spanish)
(set! voice_default 'voice_el_diphone)
nano /etc/asterisk/festival.conf
124
[general]
host=localhost
port=1314
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
nano /etc/asterisk/extensions.conf
Calidad de audio.
Coste computacional.
Gasto de ancho de banda.
125
G.726 (24 Kbps) 47.2 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/.
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:
[options]
126
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.
Sintaxis: Record(nombre.formato[,silencio,duracion_maxima,opciones])
127
Quien graba una conversacin de otros atenta, independientemente de toda otra
consideracin, al derecho reconocido en el art. 18.3 CE; por el contrario, quien graba
una conversacin con otro no incurre, por este solo hecho , en conducta contraria al
precepto constitucional citado.
Para las grabaciones ajenas, el Cdigo Penal castiga con prisin de uno a cuatro aos y
multa de doce a veinticuatro meses. El artculo 197 castiga a quien para descubrir los
secretos o vulnerar la intimidad de otro, sin su consentimiento, utilice artificios
tcnicos de escucha, transmisin, grabacin o reproduccin del sonido o de la imagen,
o de cualquier otra seal de comunicacin.
En relacin con esta cuestin, se considera que siempre que quien haya de realizar el
tratamiento tenga conocimiento directo o indirecto de quin es la persona cuya voz
est siendo objeto de grabacin, as como de su nmero de telfono, la grabacin
efectuada tendr la naturaleza de dato de carcter personal y el tratamiento
efectuado estar sometido a la normativa de proteccin de datos ,al incorporarse al
mismo los datos identificativos del sujeto (nombre y apellidos), su nmero de telfono
y su voz, conforme a lo dispuesto en el artculo 3.a) de la LOPD y el artculo 1.4 del Real
Decreto 1332/1994, del 20 de Junio, que indica que dichos datos podrn proceder de
informacin acstica.
Macros
Las macros son una herramienta excelente para ahorrarte repeticin de cdigo, y
facilidad de cambio y adaptacin para tu Dialplan.
Si tuviera que repetir para un centenar de usuarios las lneas siguientes supondra una
gran cantidad de copy/paste. Sera ms sencillo un cambio en la manera en que trabaja
las extensiones.
exten => 101,1,Dial(${JOHN},10)
exten => 101,n,VoiceMail(101@default)
exten => 101,n,Hangup()
.
Puede definir una macro que contiene una lista de pasos a seguir. Todo lo que necesita
para el cambio es la macro, y las referencias. Si est familiarizado con la programacin,
128
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
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.
[macro-voicemail]
exten => s,1,Dial(${ARG1},10)
exten => s,n,VoiceMail(${MACRO_EXTEN}@default)
exten => s,n,Hangup()
129
Uso de la base de datos de Asterisk (AstDB)
Existen dos entidades: familias(Families) y llaves(Keys), cada key esta asociada a una
Family, si un Key toma un valor nuevo, el anterior es superpuesto por este nuevo valor.
Tambin puede guardar los valores de Asterisk con la lnea de comandos CLI,
ejecutando el comando database poniendo el valor de la clave de la familia.
Para recuperar un valor de AstDB y asignarlo a una variable, usamos la aplicacin Set ()
de nuevo. Vamos a recuperar el valor de count de la familia test,asignando a una
variable llamada COUNT y, a continuacin, decimos el valor:
database show
130
Borrado de datos de AstDB
Transferencias de llamadas
CallParking
131
Cualquier usuario que tenga incluido en su contexto el contexto especial 'parkedcalls'
puede recuperar la llamada aparcada llamando directamente a su posicin en el
parking.
Tambin es necesario que el usuario sea capaz de transferir las llamadas a la extensin
del parking, debe estar seguro de la utilizacin de la "t" y / o T del Dial().
Ejemplo:
extensions.conf
[incoming]
include => parkedcalls
exten => 103,1,Dial(SIP/Pedro,,tT)
exten => 104,1,Dial(SIP/John,,tT)
features.conf
[general]
parkext => 700
parkpos => 701
context => parkedcalls
parkingtime => 120
[featuremap]
blindxfer => #
disconnect => *
132
atxfer => *2
parkcall => *7
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
- 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
*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').
- 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.
Si hay agentes dinamicos ellos tienen penalidad 1, a no ser que se les asigne otra al
agregarse a la cola:
Si se asignan a dos agentes la misma penalidad sonarian los dos si hay una llamada.
Tambin es posible asignar a cada llamada entrante una Priority(prioridad)
permitiendo situarla en un lugar ms adelante de la cola (no siempre al final), por
ejemplo si es un cliente importante adelantarle en la cola. Por defecto todas tienen
prioridad 0 (estrategia FIFO (First In First Out)).
135
exten => 101,1,Playback(bienvenido)
exten =>101,n,SetVar(QUEUE_PRIO=10)
exten =>101,n,Queue(davidqueue)
*CLI>show agents
*CLI>show queues
[general]
;Si usamos agentes dinamicos su configuracin se guardara en la BD de
Asterisk. De ;esta forma si Asterisk se vuelve a arrancar , cada agente ser
;enrutado a su ;correspondiente cola.
persistentmembers=yes
;Para mantener las estadsticas en la cola durante un reload
keepstats=no
[davidqueue]
music=default
strategy=ringall
timeout=15 ;tiempo maximo de ring
retry=5 ;tiempo de espera para intentar con otro miembro
wrapuptime=0 ;tiempo de espera tras intentar con todos los miembros
member => SIP /100,1
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
independientemente del proveedor y adems permite realizar estadsticas. Dicho
control se denomina CDR(Call Detail Record).
/var/log/asterisk/cdr-csv/Master.csv
Tambien es posible almacenar los registros en una base de datos MySQL configurando
el archivo cdr_mysql.conf en /etc/asterisk/, para configurar el CDR se hace en cdr.conf
en la misma carpeta.
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).
138
Tipos de conferencia (mute conference, lock conference, kick partipants).
[roms]
conf => 600
Creamos una simple sala de conferencias utilizando la extensin 600,la opcin i (que
anuncia cuando la gente entra y sale de la conferencia), y una contrasea de 54321 en
extensions.conf:
Si usted pasa una variable como segundo argumento para MeetMeCount(), el numero
de participantes se asigna a la variable, y la reproduccin de estos cada vez que se
aade uno se omite. Usted puede usar esto para limitar el nmero de participantes, de
esta forma:
; Limitar la sala de conferencias para 10 participantes
exten => 600,1,MeetMeCount(600,CONFCOUNT)
exten => 600,n,GotoIf($[${CONFCOUNT} <= 10]?meetme:conf_full,1)
exten => 600,n(meetme),MeetMe(600,i,54321)
exten => conf_full,1,Playback(conf-full)
Una vez hechas varias grabaciones de mensajes con la aplicacin Record() como hemos
comentado y haberlas guardado estos en /var/lib/asterisk/sounds/ se puede comenzar
a configurar el IVR en extensions.conf.
139
Las ventajas que proporciona el sistema no reside solamente en la reduccin de costes
y en el incremento de la eficiencia del CallCenter sino que tambin:
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.
140
Hacer que el sistema trabaje por el usuario, por ejemplo, no pidiendo el
mismo dato varias veces y evitando preguntar informacin que el sistema
puede conocer.
Ser consistente y no cambiar a menudo las opciones de los mens.
Saludo inicial:
Es preciso evitar:
Men principal:
El primer men debe ser el principal a no ser que se tenga que pedirse
identificacin.
Mximo 20 segundos de duracin total contando el saludo inicial y el
men principal.
Identificacin:
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:
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?
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.
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
Ejecutar un punto exacto del plan de llamadas (Dialplan):
Ejemplo:
Channel: SIP/43424444
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: mensajes-salida
Extension: 84
Priority: 1
- extensions.conf
[mensajes-salida]
exten => 84,1,Playback(anuncio)
exten => 84,2,Playback(vm-goodbye)
exten => 84,3,Hangup
Sistema de logs
143
Error: mensajes indicando que ocurri algo grave.
Ejemplos:
debug => debug
full => notice,warning,error,debug,verbose
local0.*@ip_servidor
Reabre los archivos de log del Asterisk y recarga la configuracin del logger:
*CLI>logger reload
*CLI>logger rtate
Cambia el nivel de informacin a mostrar en la consola. Por ej.: set verbose 999
ENUM y Asterisk
Cmo funciona?
144
Se ha creado una nueva jerarqua de dominios bajo el DNS e164.ARPA donde se
almacenan los servicios asociados a un determinado numero telefnico.
Un ejemplo:
+5712345678 8.7.6.5.4.3.2.1.7.5.e164.arpa
El servidor DNS (Name Authority Pointer o NAPTR) que alberga la entrada, tiene
registrados los servicios (sip, mail, http) publicados para dicho nmero.
Ejemplo de entrada en Bind:
$ORIGIN 8.7.6.5.4.3.2.1.7.5.E164.ARPA.
IN NAPTR 100 10 "U" "E2U+SIP" "!^.*$!SIP:PHONEME@EXAMPLE.NET!"
IN NAPTR 102 10 "U" "E2U+MAILTO"
"!^.*$!MAILTO:MYEMAIL@EXAMPLE.COM!"
Como queda claro a travs de este ejemplo una vez que tengamos estos datos
podremos usarlos en nuestra centralita. Llamar directamente la SIP URI en lugar del
nmero telefnico (ahorrando los costos de llamadas) o enviar un correo electrnico.
Ejemplo:
4.3.2.1.9.9.4.4.9.4.3.e164.arpa
2) El DNS responde:
sip:fulano@foo.com
mailto:fulano@gmail.com
[general]
search => e164.arpa
145
search => e164.org
h323driver => H323
Ponemos estas lneas que nos permitirn hacer bsqueda en la jerarqua DNS
e164.arpa y e164.org.
ENUMQUERY: nos permite hacer una consulta de los registros NAPTR pero, al
contrario de ENUMLOOKUP generar como resultado un ID que luego
podremos usar con la funcin ENUMRESULT.
Ejemplo:
Vamos a construir nuestro plan de llamadas de modo que antes de llamar cualquier
nmero (nacional o internacional) haga una consulta en ENUM para ver si es posible
usar una SIP URI en lugar del nmero telefnico:
DUNDI
Diagrama DUNDI:
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.
[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
Los contextos
tos en esta seccin se enlazan con los contextos de
extensions.conf.
147
Al configurar un peer con el que nos vamos a enlazar, se puede determinar
a cuales de los mapas puede tener acceso el peer.
Contextos dundi:
[mappings]
priv =>dundi-priv-local,0,IAX2,priv:${SECRET}@162.248.175.91/${NUMBER}
,nounsolicited,nocomunsolicit,nopatial
Variables:
Generacin de llaves:
cd /var/lib/asterisk/keys
astgenkey -n dundi_ext_44xx
148
yum -y install php
cp dundi_ext_44xx.pub /var/www/html
service httpd start
wget -c http://132.248.175.90/dundi_principal.pub
*CLI>reload res_crypto.so
*CLI>reload pbx_dundi.so
*CLI>dundi lookup 4400@priv
Definicin de contextos:
; Son las extensiones locales, por ejemplo: 44XX
[dundi-priv-local]
exten => _44XX,1,Macro(Dial,${EXTEN})
; Buscamos con nuestros pares
[dundi-priv-lookup]
switch => DUNDi/priv
; Cuando se trata de una llamada de un par privado, llega aqu.
[dundi-priv-incoming]
include => dundi-priv-local
Bsqueda en pares:
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
[priv]
type=user
dbsecret=dundi/secret
context=internos
disallow=all
allow=ulaw
allow=alaw
allow=gsm
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.
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.
Funcionamiento:
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
151
Una de las mejores aplicaciones opensource para controlar y visualizar el estado en
tiempo real de la centralita Asterisk es: Flash Operator Panel (FOP).
Qu es AJAM?
2) Si se desea tener acceso a simples pginas HTML, CSS, JavaScript, etc., hay
que descomentar "enablestatic = yes" .
Una vez que estos cambios de configuracin han sido completados puede reiniciar
Asterisk y podr acceder a distintas funciones de web. Puede encontrar una lista
completa de estas funciones:
*CLI> show http o *CLI> http show status
Ejemplos de funcionamiento:
http://192.168.1.200:8088/asterisk/manager?action=login&username=admin_
de_usuario&secret=amp111
152
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.
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;
}
}
}
[prueba]
exten => 1234,1,Dial(SIP/${EXTEN},45)
exten => 1234,n,GotoIf($[${DIALSTATUS}=BUSY]?BUSY)
exten => 1234,n,GotoIf($[${DIALSTATUS}=NOANSWER]?NOANSWER)
exten => 1234,n,Hangup()
153
exten => 1234,BUSY,Voicemail(b200)
exten => 1234,BUSY,Hangup()
exten => 1234,NOANSWER,Voicemail(u200);
exten => 1234,NOANSWER,Hangup()
Qu es ARA?
Asterisk permite ser configurado en una Base de Datos, mediante Asterisk Realtime
Architecture.
;;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.
Asterisk GUI:
Lo bueno de esta interfaz, es que lee la configuracin que hemos escrito a mano, la
entiende y permite gestionarla va web, algo que las dems interfaces no hacen
(siempre machacan los cambios o acuden a archivos externos incluidos para
saltarse esta dificultad, en lugar de plantarle cara).
Instalacin:
Para instalar la interfaz grfica web lo tenemos que hacer desde subversion, por ello
necesitaremos el cliente:
En /usr/src:
Ahora configuramos los archivos para poder activar el pequeo servidor http que trae
Asterisk GUI y la autenticacin para acceder:
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
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
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.
156
travs de una interfaz web amigable que le permite tener un PBX completamente
funcional casi de inmediato sin necesidad de programacin.
Instalacin de FreePBX
En /etc/selinux/config "selinux=disabled"
157
devel zlib-devel perl-DateManip sendmail-cf kernel-devel openssl-devel
httpd sox spandsp mpg123
wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
tar zxvf lame-3.97.tar.gz
cd lame-3.97
./configure
make
make install
wget http://mirror.freepbx.org/freepbx.tar.gz
yum install db
cd /usr/src/freepbx
./start_asterisk start
./install_amp --username=asterisk --password=password
158
En /etc/rc.local "/usr/local/sbin/amportal start"
chkconfig httpd on
chkconfig mysqld on
9.) Solucionar Problemas de Flash Operator Panel (Si no tienes instalado Fop2)
wget http://www.asternic.org/files/op_panel-0.29.tar.gz
tar xvfz op_panel-0.29.tar.gz
cd op_panel-0.29
cp op_server.pl /var/www/html/panel/
cp flash/operator_panel.swf /var/www/html/panel/
En el archivo op_server.cfg:
[general]
use_amportal_conf=1
//usuario y clave similar al registrado en el archivo
/etc/asterisk/manager.conf
manager_user=admin
manager_secret=password
nano /var/www/html/recordings/includes/main.conf.php
$ari_admin_password = "password";
nano /etc/mail/sendmail.mc
define(`SMART_HOST', `relay.DOMAIN.com)dnl
MASQUERADE_AS(`pbx.DOMAIN.com')dnl
FEATURE(`masquerade_envelope')dnl
make -C /etc/mail
nano /etc/asterisk/sip_nat.conf
localnet=192.168.1.0/255.255.255.0
externhost=pbx.DOMAIN.com
externrefresh=10
fromdomain=DOMAIN.com o externip=ipPublica
nat=yes
159
qualify=yes
canreinvite=no
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
nano /etc/amportal.conf
nano /etc/asterisk/vm_email.inc
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
160
En consola amportal start
En el Explorador en http://IpDelServidor/admin
*CLI>show applications
*CLI>show channels
*CLI>show codecs
161
Mostrar un cuadro de doble entrada con los tiempos de conversin entre
formatos de codecs:
*CLI>show translation
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.
Al arrancar el demonio:
Al conectarse al demonio:
*CLI>set verbose O
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.
162
Al arrancar el demonio:
Al conectarse al demonio:
*CLI>debug channel
*CLI>console dial
*CLI>console answer
*CLI>console hangup
*CLI>module load/unload
*CLI>module show
*CLI>dialplan show
163
*CLI>dialplan
dialplan save
*CLI>dialplan
dialplan add/remove extensin
*CLI>dialplan
dialplan add/remove include
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 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 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
Descripcin:
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.
Caractersticas:
166
-DateTime -NoCDR -StopMusicOnHold
-DBDel -NoOp -StopPlayTones
-DBdeltree -Park -StripLSD
-DBGet -ParkAndAnnounce -StripMSD
-DBPut -ParkedCall -Suffix
-Dial -PauseQueueMember -System
-DigitTimeout -Playback -TestClient
-Directory -PlayTones -TestServer
-DISA -Prefix -Transfer
-DumpChan -PrivacyManager -TryServer
-DUNDiLookup -Progress -TXTCIDName
-Echo -Queue -UnpauseQueueMember
-Endwhile -Random -UserEvent
-EnumLookup -Read -Verbose
-Eval -ReadFile -VMAuthenticate
-Exec -RealTime -VoiceMail
-ExecIf -RealTimeUpdate -VoiceMailMain
-ExecIfTime -RemoveQueueMember -Wait
-Flash -RetryDial -WaitExten
-ForkCDR -ResetCDR -WaitForRing
-GetCPEID -ResponseTimeout -WaitForSilence
-GetGroupCount -Ringing -WaitMusicOnHold
-GetGroupMatchCount -SayAlpha -While
-Goto -SayDigits -Zapteller
-GotoIf -SayNumber -ZapBarge
-GotoIfTime -SayPhonetic -ZapScan
Beneficios:
Control
167
Rich, caracterstica de base amplia
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.
AsteriskNOW
TrixBox
Elastix
El 80% de los usuarios que utilizan este tipo de distribuciones para montar su sistema
de comunicaciones, no saben cmo modifican los ficheros de configuracin o
directamente jams lo han hecho.
168
desechadas por su complejidad y poca utilidad para un pblico general, se dice
entonces que esa distribucin est a merced de lo que permita hacer la interfaz . En
muchos casos se puede pensar que no se puede hacer algo, simplemente porque la
interfaz web no lo permite.
AsteriskNOW
Qu es AsteriskNOW?
169
Qu puedo crear con AsteriskNOW?
Entre las muchas aplicaciones que puedes crear con AsteriskNOW son:
Los usuarios de AsteriskNOW tienen dos opciones. Hay una comunidad activa de
usuarios de AsteriskNOW, integradores y desarrolladores que ofrecen apoyo a la
comunidad en los foros de AsteriskNOW y lista de correo.
Caractersticas y funciones:
170
- Sound Manager hace fcil crear, instalar y gestionar el sistema de mensajes y
grabaciones.
- Dialplan y editor de secuencia de comandos AEL con resaltado de sintaxis y
validacin simplifica el desarrollo.
- Nombre y Call Detail Record (CDR) Viewer proporciona acceso instantneo a la
actividad del sistema.
- Integrado de texto de ayuda para las aplicaciones, funciones, CLI, AGI y los
comandos de AMI.
- En tiempo real de seguimiento y depuracin de la consola ayuda a simplificar el
proceso de desarrollo.
- Paso a paso el desarrollo de aplicacin tutoriales ensear los fundamentos
rpidamente.
- Apoyo a la creacin de agrupaciones y de alta disponibilidad que sea fcil de
escalar las aplicaciones.
- Actualizaciones automticas mantener su sistema en armona y seguridad.
- Ahorre dinero con una oferta especial en el apoyo de Digium y servicios de
formacin.
Actualidad:
TrixBox
171
Una vez instalado TrixBox, el sistema dispone de:
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
Protocolos con los que trabaja:
Versiones de TrixBox:
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.
Empresas de todo el mundo, desde aquellas que posen muy pocas estaciones
de trabajo, hasta medianas compaas que poseen cientos de empleados.
173
Standard Edition (SE)
Enterprise Edition (EE)
Call Center Edition (CCE)
Caractersticas y beneficios:
1. Gratis y flexible:
Posee un instalador que hace que la instalacin sea sencilla; posee, adems, un
administrador intuitivo y un panel de control que facilita la instalacin,
configuracin y administracin.
3. Caractersticas avanzadas:
4. HUD:
5. Seis idiomas:
174
Integracin con Outlook:
Hacer llamadas desde su casilla de entrada personal: basta con hacer clic con el
botn derecho en el contacto o en un mensaje del contacto para llamarle.
Buzn de voz:
Scheduler:
VoIP:
Trixbox est preparado para VoIP dependiendo del producto que se est
usando, el cual limita la cantidad de telfonos posibles. Fcilmente se puede
conectar TrixBox con cualquier proveedor de VoIP (SIP o IAX).
Ofrece una interfaz web fcil de usar. Un panel de administrador que maneja
todos los aspectos del TrixBox remotamente y un panel de usuario para
empleados que les permite manejar sus configuraciones personales (como
175
escuchar sus mensajes de voz, responder llamados mediante un clic, traspaso
de llamadas, etc.) desde cualquier parte.
Reportes y monitorizacin:
Soporte de sucursales:
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.
176
Caractersticas:
Es difcil hacer una lista con todas las caractersticas de Elastix en un simple listado,
pero las ms importantes son:
VoIP PBX:
177
Soporta protocolo SIP, IAX, H323, MGCP, SKINNY entre otros.
Codecs soportados: ADPCM, G.711 (A-Law & -Law), G.722, G.723.1 (pass
through), G.726, G.729 (si se compra licencia comercial), GSM, iLBC.
Soporte para interfaces anlogas FXS/FXO.
Soporte para interfaces digitales E1/T1/J1 a travs de protocolos PRI/BRI/R2.
Soporte para interfaces bluetooth para celulares (canal chan_mobile).
Identificacin de llamadas.
Troncalizacin (uso de trunks).
Rutas entrantes y salientes las cuales se pueden configurar por coincidencia de
patrones de marcado lo cual da mucha flexibilidad.
Soporte para follow-me.
Soporte para grupos de timbrado.
Soporte para paging e intercom. El modelo de telfono debe soportar tambin
esta caracterstica.
Soporte para condiciones de tiempo. Es decir que la central se comporte de un
modo diferente dependiendo del horario.
Soporte para PINes de seguridad.
Soporte DISA.
Soporte Callback.
Editor Web de archivos de configuracin de Asterisk.
Acceso interactivo desde el Web a la consola de Asterisk.
Fax:
General:
178
Interfaz para configurar fecha/hora/huso horario de la central.
Email:
Colaboracin:
Extras:
Centro de llamadas:
Mensajera instantnea:
179
Soporta grupos de usuarios.
Soporta conexin a otras redes de mensajera como MSN, Yahoo Messenger,
GTalk, ICQ, etc. Esto permite estar conectado a varias redes desde un mismo
cliente.
Informe de sesiones de usuarios.
Soporte para plugins.
Soporta LDAP.
Soporta conexiones server-to-server para compartir usuarios.
Elastix cuenta con un buen soporte para hardware de telefona, contando con drivers
para los principales fabricantes de tarjetas como:
OpenVox
Digium
Sangoma
Rhino Equipment
Xorcom
Yeastar
Elastix tambin soporta muchas marcas de telfonos gracias a que los protocolos SIP e
IAX que usa Asterisk lo permiten. Estos protocolos son abiertos por lo que
prcticamente cualquier fabricante puede implementar un telfono que se comunique
sobre estos estndares.
Polycom
Atcom
Aastra
Linksys
Snom
Cisco
Nokia
UTstarcom
180
Varias Oficinas con Sistemas Asterisk interconectados.
Posibles servicios: Conexin con Operador IP, Buzn de Voz a email, Sistema de
respuesta automtico, etc.
181
Pasarela para dotar a una centralita tradicional de nuevas extensiones.
Para poder hacer esto la centralita tradicional debera poder programarse para ello.
De esta forma, adems de comunicaciones entre Sedes, todas las sedes pueden hacer
llamadas al exterior a travs de la central Asterisk. Las extensiones externas podrn
seguir el protocolo SIP o el Protocolo IAX.
182
Varias Oficinas con Sistemas Asterisk interconectados.
Todos los Asterisk Pueden utilizar los otros Asterisk para hablar con nmeros de las
provincias donde se encuentran. Entre ellos se pueden conectar mediante IAX o SIP, e
incluso se puede montar un plan de numeracin nico entre todos.
183
Ampliacin del sistema de telefona de una empresa
El sistema de telefona est controlado por una PBX propietaria que da servicio a un
determinado nmero de extensiones analgicas y digitales, y que se encuentra
conectada a la red de telefona pblica.
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.
184
Soluciones de Asterisk para sistemas de telefona entre sedes
remotas
Asterisk ofrece una solucin ideal para este tipo de organizaciones con sedes distantes.
Sistema Centralizado
Existe un servidor centralizado por donde entran y salen las llamadas a la red de
telefona tradicional, y que se encarga de gestionar los clientes de VoIP (extensiones
VoIP) de todas las delegaciones.
185
Sistema Distribuido
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
Flexibilidad y Customizacin
186
Asterisk puede interconectarse usando sealizacin analgica, digital
o IP.
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.
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
187
Ejemplo 2: Centros de telemarketing Integracin con sistemas CRM
Los centros de telemarketing llamarn a una lista de nmeros para intentar vender a
los usuarios un producto o servicio. La lista con los nmeros se descarga en el software
CRM (Customer Relationship Management).
Llamada automtica: los agentes slo deben hacer clic sobre el nmero de
telfono que aparece en la pantalla y el sistema marca el nmero.
Registro de llamadas: el sistema de comunicaciones genera
automticamente una entrada para cada llamada como parte del historial
telefnico del cliente.
Centrarse en el objetivo: el sistema de comunicaciones puede programarse
de modo que en horas laborables slo marque nmeros de la lista de
nmeros, impidiendo a los empleados realizar llamadas personales.
Una agencia de viajes contrata vuelos, estancias en hoteles y visitas para sus clientes.
En contextos como excursiones o viajes de trabajo son habituales las cancelaciones y
los cambios de planes. Qu sucede si hay que cancelar fuera de horarios de oficina?
Qu pasa si hay una avalancha de llamadas entrantes?
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.
188
En muchos proyectos no solo se tiene que considerar un servicio de instalacin,
soporte sino tambin la integracin con otros sistemas de la compaa.
En el terreno de los problemas que puede presentar Asterisk hay que aclarar que por s
solo no ofrece escalabilidad o alta disponibilidad, pero se puede alcanzar una solucin
intermedia de alta disponibilidad a travs de la redundancia y usando software de
terceros.
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.
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.
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
3
Pruebas realizadas
Iniciacin en Linux
190
191
Kubuntu & Asterisk
Pese a que el aprendizaje y familiarizacin con Linux fue sencillo y breve no lo fue
tanto el primer contacto con Asterisk y tampoco la primera instalacin aunque la
informacin en cuanto a instalar de este tipo centralitas es abundante para la mayora
de las distribuciones Kubuntu no es de las ms habituales o empleadas .Tras conseguir
un funcionamiento correcto de la centralita Asterisk pas a informarme sobre las
distribuciones ms empleadas para crear servidores de este tipo.
192
Eleccin del servidor adecuado para Asterisk
Para la eleccin del equipo servidor de nuestro sistema Asterisk deberemos tener en
cuenta:
No obstante, segn una encuesta que se realiz hace algn tiempo en la pgina web
de los usuarios de Asterisk-ES (foro de Asterisk), la mayora se decantan por dos:
Debian y CentOS.
Otra ventaja que tiene CentOS es la gran cantidad de usuarios que trabajan con esta
distribucin y la cantidad de paquetes en rpm que existen, lo que hace que existan
multitud de foros de usuarios que preguntan y responden basados en esta
distribucin.
Debian es muy usado por su gran estabilidad y seguridad. Su gran
estabilidad se basa en que llevan mucho tiempo arreglando los bugs
que puede tener cierto programa antes de ser liberado como
estable. Sin embargo este proceso puede durar hasta aos por lo
que muchos no son tan pacientes en esperar y quizs decidan en
migrar a otra distribucin.
193
Puesta a punto del servidor antes de la instalacin de Asterisk:
Apache es un proyecto nacido para crear un servidor web estable, fiable y veloz para
plataformas Unix. Apache nace, por una parte, de un cdigo ya existente y de una serie
de patch para mejorar su fiabilidad y sus caractersticas; de ah su nombre: A PAtCHy
sErver! El equipo de desarrollo, adems, est formado por voluntarios, repartidos por
todo el mundo, que sigue manteniendo este servidor web libre.
Instalacin
Arranque de Apache
Iniciar el servicio
service httod start
chkconfig httpd on
Parar el servicio
service httpd stop
Reiniciar el servicio
service httpd restart
Funcionamiento
DHCP discover
DHCP offer
DHCP request
DHCP ACK
194
Modos en DHCP
Instalacin
Configuracin
; Esta opcin especifica si el servidor de DHCP debe intentar actualizar el servidor de DNS
ddns-update-style interim;
ignore client-updates;
195
;Rango de IPS que repartir
range 192.168.1.201 192.168.1.203;
; Tiempo de vida por defecto de la IP
default-lease-time 86400;
;Mximo tiempo de vida de la IP
max-lease-time 608400;
;DNS
option domain-name-servers 194.179.1.100;
;Servidor TFTP
option tftp-server-name "192.168.1.3";
}
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";
}
Iniciar el servicio
service dhcpd start
chkconfig dhcpd on
Parar el servicio
service dhcpd stop
Reiniciar el servicio
service dhcpd restart
196
Servidor TFTP (TFTPD)
Caractersticas
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.
Configuracin
Iniciar el servicio
service xinetd start
chkconfig xinetd on
Parar el servicio
service xinetd stop
197
Reiniciar el servicio
service xinetd restart
MySQL es software de fuente abierta. Fuente abierta significa que es posible para
cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el cdigo fuente
de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el cdigo fuente y
ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para
definir que puede hacer y que no puede hacer con el software en diferentes
situaciones. Si usted no se ajusta al GPL o requiere introducir cdigo MySQL en
aplicaciones comerciales, usted puede comprar una versin comercial licenciada.
Iniciar el servicio
service mysqld start
chkconfig mysqld on
Parar el servicio
service mysqld stop
Reiniciar el servicio
service mysqld restart
mysql u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'root' WITH
GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql>quit;
phpMyAdmin
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
Instalacin phpMyAdmin
cd /var/www/html
wget c http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin-3.2.4-rc1-all-
languages.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
$cfg['Servers'][$i]['auth_type'] = http;
Acceso a phpmyadmin
199
Su principal inconveniente es el exceso de trfico que se genera, lo que lo puede hacer
incompatible para entornos amplios de red.
Los cinco tipos de mensajes SNMP intercambiados entre los Agentes y los
Administradores, son:
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
/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.)
200
cpan>exit
# /etc/init.d/snmpd restart
Se trata de una aplicacin gratuita SSH41, Telnet, rlogin y cliente TCP raw que nos
permite acceder al servidor Asterisk en modo consola y as poder acceder a la lnea de
comandos.En Host Name: 192.168.1.200 IP del servidor Asterisk y pulsamos en
Open.
201
Nos aparecer una pantalla negra solicitando que nos loguemos Login as
Ejemplo de Login como Root.
Se trata de un cliente SFTP (Security File Transfer Protocol) grfico que emplea SSH
(Security Shell) y que hemos utilizado en algunos casos para transferir y editar archivos
de configuracin de Asterisk.
Ejemplo de acceso al directorio de archivos de Asterisk:
202
Instalacin de Asterisk:
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:
yum install bison bison-devel ncurses ncurses-devel zlib zlib-devel gcc-c++ openssl-
devel gnutls-devel gcc openssl
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-glibc-
pentium4.so
mv codec_g729-ast14-gcc4-glibc-pentium4.so codec_g729.so
chmod +x codec_g729.so
service asterisk restart
yum -y update
cd /usr/src
mkdir asterisk
cd asterisk
206
svn checkout http://svn.digium.com/svn/asterisk/branches/1.4/asterisk-1.4.26.1
svn checkout http://svn.digium.com/svn/asterisk-addons/branches/1.4/asterisk-
addons-1.4.9
wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-
2.1.0.4.tar.gz
wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-
2.1.0.2.tar.gz
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz
Descomprimimos:
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 ..
cd asterisk-1.4.26.1/
./configure
make menuselect
make
make install
207
cd /usr/src/asterisk-addons-1.4.9/
./configure
make menuselect
make
make install
Diferencia entre los Asterisk 1.4 (hasta 1.4.21) y los Asterisk 1.4.22 (y
superiores) y 1.6 en telefona analgica: De Zaptel a DAHDI
- 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.
[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:
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.
210
# Digium TE122: PCI single-port T1/E1/J1
#wcte12xp
211
[root@asterisk asterisk]# nano /etc/asterisk/dahdi-channels.conf
212
[channels]
#include dahdi-channels.conf
Reiniciamos DAHDI:
Llamada de la extensin 105 a la extensin 1234 que desva al canal DAHDI, la salida
del CLI es la siguiente:
213
-- Executing [1234@incoming:1] Dial("SIP/105-08601bd0", "DAHDI/2-1|30|Ttm") in
new stack
-- Called 2-1
-- Started music on hold, class 'default', on SIP/105-08601bd0
-- DAHDI/2-1 is ringing
-- DAHDI/2-1 is ringing
-- Stopped music on hold on SIP/105-08601bd0
-- Hungup 'DAHDI/2-1'
== Spawn extension (incoming, 1234, 1) exited non-zero on 'SIP/105-08601bd0'
Pruebas SoftPhones:
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
[root@asterisk]# asterisk rvvv
*CLI> reload
216
5.) Vemos el comportamiento de la centralita Asterisk, a travs del SoftPhone, al
realizar llamadas entre las extensiones (teniendo en cuenta que no podemos
llamar de una extensin SIP a una IAX2 y bicerversa).
217
Pruebas telfonos IP (SipuraSPA):
2.) Hacemos un reload de Asterisk para que detecte las extensiones de los
usuarios.
218
4.) Comprobamos que los usuarios se han registrado correctamente en los
telfonos IP.
219
== Spawn extension (default, 100, 1) exited non-zero on 'SIP/102-097f96a8'
extensions.conf
exten => 100,1,Dial(SIP/100,30,Ttm)
exten => 100,n,Voicemail(100)
exten => 100,n,Hangup
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
extensions.conf
;exten => 1001,1,VoiceMailMain(100)
Pulsamos el 1 para escuchar los mensajes.Te dice la fecha y hora del primero y
reproduce la grabacin:
221
-- <SIP/102-08914790> Playing 'vm-next' (language 'es') -->OPCION 6
-- <SIP/102-08914790> Playing 'vm-delete' (language 'es') -->OPCION 7
-- <SIP/102-08914790> Playing 'vm-toforward' (language 'es') -->OPCION 8
-- <SIP/102-08914790> Playing 'vm-savemessage' (language 'es') -->OPCION 9
-- <SIP/102-08914790> Playing 'vm-helpexit' (language 'es') -->OPCION 0
222
-- <SIP/102-08915210> Playing 'digits/200' (language 'es')
-- <SIP/102-08915210> Playing 'digits/22' (language 'es')
-- Executing [CHANUNAVAIL@default:2] Dial("SIP/102-08915210", "SIP/101|30|Ttm") in new
stack
-- Called 101
-- Started music on hold, class 'default', on SIP/102-08915210
-- SIP/101-08920878 is ringing
-- Stopped music on hold on SIP/102-08915210
== Spawn extension (default, CHANUNAVAIL, 2) exited non-zero on 'SIP/102-08915210'
2.) Vemos el funcionamiento del GotoIf, tal que dependiendo del valor de una
variabvle se llama a una extension o a otra.
223
3.) Contador decreciente.
224
-- Executing [1123@default:4] Set("SIP/102-b7568b98", "COUNT=2") in new stack
-- Executing [1123@default:5] Goto("SIP/102-b7568b98", "start") in new stack
-- Goto (default,1123,2)
-- Executing [1123@default:2] GotoIf("SIP/102-b7568b98", "1?:goodbye") in new stack
-- Executing [1123@default:3] SayNumber("SIP/102-b7568b98", "2") in new stack
-- <SIP/102-b7568b98> Playing 'digits/2' (language 'es')
-- Executing [1123@default:4] Set("SIP/102-b7568b98", "COUNT=1") in new stack
-- Executing [1123@default:5] Goto("SIP/102-b7568b98", "start") in new stack
-- Goto (default,1123,2)
-- Executing [1123@default:2] GotoIf("SIP/102-b7568b98", "1?:goodbye") in new stack
-- Executing [1123@default:3] SayNumber("SIP/102-b7568b98", "1") in new stack
-- <SIP/102-b7568b98> Playing 'digits/1' (language 'es')
-- Executing [1123@default:4] Set("SIP/102-b7568b98", "COUNT=0") in new stack
-- Executing [1123@default:5] Goto("SIP/102-b7568b98", "start") in new stack
-- Goto (default,1123,2)
-- Executing [1123@default:2] GotoIf("SIP/102-b7568b98", "0?:goodbye") in new stack
-- Goto (default,1123,6)
-- Executing [1123@default:6] Hangup("SIP/102-b7568b98", "") in new stack
== Spawn extension (default, 1123, 6) exited non-zero on 'SIP/102-b7568b98'
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
extensions.conf
225
exten => 2001,n,Hangup
exten => 2002,1,RemoveQueueMember(davidqueue|SIP/101)
exten => 2002,n,Hangup
Vemos que suenan a la vez los telfonos de los miembros de menor penalidad.
226
-- Executing [3004@default:1] PauseQueueMember("SIP/102-09368d60",
"davidqueue|SIP/105") in new stack
-- Executing [3004@default:2] Hangup("SIP/102-09368d60", "") in new stack
== Spawn extension (default, 3004, 2) exited non-zero on 'SIP/102-09368d60'
Esta vez solo suena la extensin 100 de forma que en cualquier momento
podemos evitar contestar las llamadas de la cola.
227
SIP/103 with penalty 2 (Not in use) has taken no calls yet
SIP/100 with penalty 1 (Not in use) has taken no calls yet
No Callers
5.) Pausamos el miembro 100 y llamamos a la cola para observar como sonar el
de penalidad inmediatamente superior.
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:
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).
229
-- <SIP/5000-08d7d820> Playing 'vm-review' (language 'es')
[Dec 10 21:50:02] DTMF[29532]: channel.c:2330 __ast_read: DTMF begin '1' received on
SIP/5000-08d7d820
[Dec 10 21:50:02] DTMF[29532]: channel.c:2334 __ast_read: DTMF begin ignored '1' on
SIP/5000-08d7d820
[Dec 10 21:50:02] DTMF[29532]: channel.c:2262 __ast_read: DTMF end '1' received on
SIP/5000-08d7d820, duration 110 ms
[Dec 10 21:50:02] DTMF[29532]: channel.c:2315 __ast_read: DTMF end passthrough '1' on
SIP/5000-08d7d820
-- <SIP/5000-08d7d820> Playing 'vm-msgsaved' (language 'es')
-- <SIP/5000-08d7d820> Playing 'conf-onlyperson' (language 'es')
[Dec 10 21:50:06] DEBUG[29532]: app_meetme.c:1817 conf_run: Placed channel SIP/5000-
08d7d820 in DAHDI conf 1023
230
-- x=0, open writing: /var/spool/asterisk/meetme/meetme-username-600-3 format: sln,
0x8d90478
[Dec 10 21:56:35] DTMF[29589]: channel.c:2330 __ast_read: DTMF begin '#' received on
SIP/4000-08d910f8
[Dec 10 21:56:35] DTMF[29589]: channel.c:2340 __ast_read: DTMF begin passthrough '#' on
SIP/4000-08d910f8
[Dec 10 21:56:35] DTMF[29589]: channel.c:2262 __ast_read: DTMF end '#' received on
SIP/4000-08d910f8, duration 170 ms
[Dec 10 21:56:35] DTMF[29589]: channel.c:2299 __ast_read: DTMF end accepted with begin '#'
on SIP/4000-08d910f8
[Dec 10 21:56:35] DTMF[29589]: channel.c:2315 __ast_read: DTMF end passthrough '#' on
SIP/4000-08d910f8
-- User ended message by pressing #
-- <SIP/4000-08d910f8> Playing 'auth-thankyou' (language 'es')
-- <SIP/4000-08d910f8> Playing 'vm-review' (language 'es')
[Dec 10 21:56:43] DTMF[29589]: channel.c:2330 __ast_read: DTMF begin '3' received on
SIP/4000-08d910f8
[Dec 10 21:56:43] DTMF[29589]: channel.c:2334 __ast_read: DTMF begin ignored '3' on
SIP/4000-08d910f8
[Dec 10 21:56:43] DTMF[29589]: channel.c:2262 __ast_read: DTMF end '3' received on
SIP/4000-08d910f8, duration 140 ms
[Dec 10 21:56:43] DTMF[29589]: channel.c:2315 __ast_read: DTMF end passthrough '3' on
SIP/4000-08d910f8
-- Re-recording
-- <SIP/4000-08d910f8> Playing 'vm-rec-name' (language 'es')
-- <SIP/4000-08d910f8> Playing 'beep' (language 'es')
-- x=0, open writing: /var/spool/asterisk/meetme/meetme-username-600-3 format: sln,
0x8d90478
[Dec 10 21:56:49] DTMF[29589]: channel.c:2330 __ast_read: DTMF begin '#' received on
SIP/4000-08d910f8
[Dec 10 21:56:49] DTMF[29589]: channel.c:2340 __ast_read: DTMF begin passthrough '#' on
SIP/4000-08d910f8
[Dec 10 21:56:49] DTMF[29589]: channel.c:2262 __ast_read: DTMF end '#' received on
SIP/4000-08d910f8, duration 130 ms
[Dec 10 21:56:49] DTMF[29589]: channel.c:2299 __ast_read: DTMF end accepted with begin '#'
on SIP/4000-08d910f8
[Dec 10 21:56:49] DTMF[29589]: channel.c:2315 __ast_read: DTMF end passthrough '#' on
SIP/4000-08d910f8
-- User ended message by pressing #
-- <SIP/4000-08d910f8> Playing 'auth-thankyou' (language 'es')
-- <SIP/4000-08d910f8> Playing 'vm-review' (language 'es')
[Dec 10 21:56:52] DTMF[29589]: channel.c:2330 __ast_read: DTMF begin '1' received on
SIP/4000-08d910f8
[Dec 10 21:56:52] DTMF[29589]: channel.c:2334 __ast_read: DTMF begin ignored '1' on
SIP/4000-08d910f8
[Dec 10 21:56:52] DTMF[29589]: channel.c:2262 __ast_read: DTMF end '1' received on
SIP/4000-08d910f8, duration 140 ms
[Dec 10 21:56:52] DTMF[29589]: channel.c:2315 __ast_read: DTMF end passthrough '1' on
SIP/4000-08d910f8
-- <SIP/4000-08d910f8> Playing 'vm-msgsaved' (language 'es')
[Dec 10 21:56:54] DEBUG[29533]: app_meetme.c:1457 announce_thread: About to play
/var/spool/asterisk/meetme/meetme-username-600-3
-- <DAHDI/pseudo-1307374741> Playing '/var/spool/asterisk/meetme/meetme-username-600-3'
(language 'es')
-- <DAHDI/pseudo-1307374741> Playing 'conf-hasjoin' (language 'es')
[Dec 10 21:56:58] DEBUG[29589]: app_meetme.c:1817 conf_run: Placed channel SIP/4000-
08d910f8 in DAHDI conf 1023
231
En estos momentos hay 3 personas en la conferencia (600).
Vamos a comprobarlo:
Para esto utilizaremos una macro que ir comparando cada vez que alquien
intente acceder a la conferencia dejndole o no dependiendo del nmero de
usuarios que ya hay en ella.
[macro-meetme]
;exten => s,1,NoOp("confmax=" ${confmax})
exten => s,1,MeetMeCount(${MACRO_EXTEN},count)
;exten => s,n,NoOp("count=" ${count})
;exten => s,n,NoOp(${count}">" ${confmax})
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
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.
232
[Dec 10 22:04:27] DEBUG[29699]: app_macro.c:379 _macro_exec: Executed application:
MeetMeCount
-- Executing [s@macro-meetme:2] GotoIf("SIP/5000-08d7d7e0", "0?103") in new stack
[Dec 10 22:04:27] DEBUG[29699]: app_macro.c:379 _macro_exec: Executed application: Gotoif
-- Executing [s@macro-meetme:3] MeetMe("SIP/5000-08d7d7e0", "610") 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
-- <SIP/5000-08d7d7e0> Playing 'conf-invalid' (language 'es')
== Spawn extension (macro-meetme, s, 3) exited non-zero on 'SIP/5000-08d7d7e0' in macro
'meetme'
== Spawn extension (acceso, 610, 2) exited non-zero on 'SIP/5000-08d7d7e0'
Al igual que antes, agregamos los dos usuarios a la conferencia y probamos con
un tercero para ver que resultados obtenemos:
3.) Como ltimo ejemplo vamos a crear una conferencia dinmicamente, es decir,
sin configurarla en el meetme.conf.
233
1. Introduzca el numero de conferencia + #:
Este proveedor tiene dos servicios fcilmente acoplables a las centralitas Asterisk:
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
y el Dialplan a travs del extensions.conf para que determinadas llamadas sean
recibidas a travs de dicho proveedor.
El segundo se consigue a travs de una cuenta Call Out, de forma que tras obtener la
cuenta, al igual en el servicio Call In, se configuran los archivos sip.conf y
extensions.conf.
Configuracin
sip.conf
[general]
[]
register => 17473702523:Yet100:17473702523@proxy01.sipphone.com/17473702523
[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=XXXXXXXX
canreinvite=no
extensions.conf
;exten => _6XXXXXXXX,1,Dial(SIP/+34${EXTEN}@proxy01.sipphone.com,20,r)
;exten => _6XXXXXXXX,n,Hangup
235
-- Executing [650XXXXXX@default:1] Dial("SIP/102-08913970",
"SIP/+34650XXXXXX@proxy01.sipphone.com|20|r") in new stack
-- Called +34650XXXXXX@proxy01.sipphone.com
-- SIP/proxy01.sipphone.com-089213f8 answered SIP/102-08913970
-- Packet2Packet bridging SIP/102-08913970 and SIP/proxy01.sipphone.com-089213f8
== Spawn extension (default, 650XXXXXX, 1) exited non-zero on 'SIP/102-08913970'
Qu es un Trunk?
Un Trunk es una conexin, bien entre dos servidores o entre un servidor y las
aplicaciones de un operador de Telefona IP que permite el trfico de VoIP.
Como se ve en la imagen siguiente el Trunk IAX enlaza dos servidores de la misma red.
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
Trunk IAX entre dos servidores Asterisk
La configuracin sera igual a la del Trunk IAX local, la nica diferencia es que sera
necesario abrir el puerto correspondiente al protocolo IAX 2 en ambos routers para
poder recibir los paquetes uno del otro.
Para configurar una extensin remota debemos configurarla como cualquier otra en
iax.conf:
[6000]
type=friend
username=6000
secret=1234
host=dynamic
context=remoto
canreinvite=yes
dtmfmode=rfc2833
[remoto]
exten => 6000,1,Dial(IAX2/${EXTEN},30,Ttm)
exten => 6000,n,Hangup
239
Para poder establecer el registro de dicha extensin es necesario abrir el puerto
correspondiente al protocolo IAX 2 (4569) en el router por el que se comunica con el
exterior la centralita Asterisk.Tras abrir el puerto deberamos ver algo similar a esto:
240
Y probamos a llamar desde la extensin de prueba 6001 a la extensin remota:
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
[9000]
type=friend
username=9000
secret=1234
host=dynamic
context=pstn
qualify=yes
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
;Salientes
exten => _9XXXXXXXX,1,Dial(SIP/${EXTEN}@${PSTN},30,Ttm)
exten => _9XXXXXXXX,n,Hangup
Prueba 1) Llamada desde un mvil al nmero que est conectado con el SPA 3000:
243
-- Executing [9001@pstn:1] NoOp("SIP/9001-b7776538", ""El CALLERID es: 650664616"") in
new stack
-- Executing [9001@pstn:2] GotoIf("SIP/9001-b7776538", "0?100:200") in new stack
-- Goto (pstn,9001,200)
-- Executing [9001@pstn:200] Goto("SIP/9001-b7776538", "pstn|103|1") in new stack
-- Goto (pstn,103,1)
-- Executing [103@pstn:1] Dial("SIP/9001-b7776538", "SIP/103|30|Ttm") in new stack
-- Called 103
-- Started music on hold, class 'default', on SIP/9001-b7776538
-- SIP/103-0a157af0 is ringing
-- Stopped music on hold on SIP/9001-b7776538
== Spawn extension (pstn, 103, 1) exited non-zero on 'SIP/9001-b7776538'
Prueba 2) Llamada desde un telfono fijo al nmero que est conectado con el SPA:
244
Captulo
4
Centralita Asterisk para Yet Informtica
y Pruebas realizadas
245
Esquema Conceptual del Demo realizado antes de la implantacin
246
Explicacin del Plan de llamadas de la Centralita (Dialplan)
Llamadas entrantes
247
248
249
250
251
Accesos Directos a usuarios de la Empresa
252
Gestin de Buzones de Voz
253
254
Funcionamiento de la Funcionalidad CallBack
4 dgitos para el ao
2 dgitos para el mes
2 dgitos para el da
255
Uso de Conferencias en la aplicacin
Esta funcionalidad en los telfonos IP de gama media o alta no hara falta pero para
poder obtener esta informacin usando cualquier telfono IP se ha implementado.
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.
Consiste en comprobar en la base de datos del CDR cul ha sido la ltima llamada
realizada por el CALLERID que ha llamado a la extensin de esta funcionalidad y
llamarla. Si la ltima llamada a sido realizada a un usuario interno se mira cual es la
llamada anterior y si no es interna se realiza la llamada.
257
Funcionamiento de la Funcionalidad DISA
258
Configuracin 3) Al llamar a la extensin 9999 de la centralita, tras marcar la
contrasea 1234 seguido del carcter #, est da tono para llamar a
travs de esta a cualquier nmero de salida que este en el contexto
acceso.
259
Prueba para la extensin 5000 tras efectuar el desvo.
Pruebas generales
[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)
260
exten => 787,n,Dial(DAHDI/${MOVIL2},20,r)
exten => 787,n,AGI(sms_send.php)
exten => 787,n,Voicemail(3333)
exten => 787,n,Hangup
Para ver el correcto envio de SMS quito el valor a las variables que contienen los
mviles a llamar en horario no laboral:
261
-- Executing [s@macro-general:4] Goto("SIP/2003-b6900f70", "No Disponible Soporte|787|1") in new
stack
-- Goto (No Disponible Soporte,787,1)
== Channel 'SIP/2003-b6900f70' jumping out of macro 'general'
-- Executing [787@No Disponible Soporte:1] MYSQL("SIP/2003-b6900f70", "Connect connid localhost
root root agenda") in new stack
-- Executing [787@No Disponible Soporte:2] NoOp("SIP/2003-b6900f70", "connid = 1") in new stack
-- Executing [787@No Disponible Soporte:3] Set("SIP/2003-b6900f70", "NUM2= 2003") in new stack
-- Executing [787@No Disponible Soporte:4] MYSQL("SIP/2003-b6900f70", "Query resultid 1 SELECT
mant FROM clientes INNER JOIN telefono ON clientes.id=telefono.idEmp WHERE
telefono=650664616") in new stack
-- Executing [787@No Disponible Soporte:5] NoOp("SIP/2003-b6900f70", "resultid = 2") in new stack
-- Executing [787@No Disponible Soporte:6] MYSQL("SIP/2003-b6900f70", "Fetch fetchid 2 MANT") in
new stack
-- Executing [787@No Disponible Soporte:7] NoOp("SIP/2003-b6900f70", "MANT = VIP") in new stack
-- Executing [787@No Disponible Soporte:8] MYSQL("SIP/2003-b6900f70", "Disconnect 1") in new stack
-- Executing [787@No Disponible Soporte:9] GotoIf("SIP/2003-b6900f70", "1?100:90") in new stack
-- Goto (No Disponible Soporte,787,100)
-- Executing [787@No Disponible Soporte:100] Set("SIP/2003-b6900f70", "N=650664616") in new stack
-- Executing [787@No Disponible Soporte:101] GotoIf("SIP/2003-b6900f70", "1?200:300") in new stack
-- Goto (No Disponible Soporte,787,200)
-- Executing [787@No Disponible Soporte:200] Dial("SIP/2003-b6900f70",
"SIP/+34@proxy01.sipphone.com|20|r") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [787@No Disponible Soporte:201] Dial("SIP/2003-b6900f70", "Sebi/g1/|30") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [787@No Disponible Soporte:202] Dial("SIP/2003-b6900f70",
"SIP/+34@proxy01.sipphone.com|20|r") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [787@No Disponible Soporte:203] Dial("SIP/2003-b6900f70", "Sebi/g1/|30") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [787@No Disponible Soporte:204] AGI("SIP/2003-b6900f70", "sms_send.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/sms_send.php
-- AGI Script sms_send.php completed, returning 0
== Spawn extension (No Disponible Soporte, 787, 205) exited non-zero on 'SIP/2003-b6900f70'
262
exten => 787,90,Macro(nodisponible,${BS})
[macro-nodisponible]
1) Pausar todos los miembros menos el 2001 de la cola del Departamento de Soporte,
al que le llegarn todas las llamadas.
2) El 2005 llama a la cola.(se le mantiene en espera)
3) El 4000 llama a la cola.(se le mantiene en espera)
4) El 2003 llama a la cola --> QUEUE_PRIO=10 (se le mantiene en espera)
5) Cuando el 2001 coja el telefono deberia hablar con 2003.
263
El cdigo utilizado en el apartado 1 es el siguiente:
[macro-general]
[soportelaboral]
exten => 787,1,Macro(laboral,${QS})
[macro-laboral]
264
El log del CLI del apartado 2 es:
265
-- Executing [s@macro-laboral:15] Queue("SIP/4000-b6900590", "soportequeue|r") in new stack
-- Called SIP/2001
-- SIP/2001-0a1fb1b8 is ringing
-- Nobody picked up in 10000 ms
[macro-general]
266
exten => s,n,AGI(${ARG2})
exten => s,n,Goto(${SALTO},${ARG3},1)
[soportelaboral]
;PRUEBAS
exten => 787,1,Macro(laboral,${QS})
[macro-laboral]
267
-- Executing [s@macro-laboral:8] GotoIf("SIP/2003-092dc808", "0?prio:no") in new stack
-- Goto (macro-laboral,s,13)
268
[macro-acceso]
Fichero Descripcin
269
En este fichero se configuran
manager.conf
los usuarios del AMI.
270
Fichero de configuracin: MANAGER.CONF
271
Fichero de configuracin: VOICEMAIL.CONF
272
Bases de datos empleadas
273
En esta base de datos se guardan los
agenda usuarios, clientes y telfonos de estos de
la aplicacin YetBook.
Tablas de cdr
cdr
channels
Tabla cdr
2003 34 3 ANSWERED 3
Tabla channels
1 SIP/2003 David
2 SIP/2000
274
Mikel
3 SIP/2001 Eduardo
4 SIP/2004 Josemi
5 SIP/2002 Josean
Tablas de cdr
visual_phonebook
Tabla visual_phonebook
Tablas de cdr
qagent
qevent
qname
queue_stats
275
Tabla qagent
agent_id agent
2 SIP/2001
3 SIP/2004
4 SIP/2003
5 SIP/2002
6 SIP/2000
7 SIP/2005
8 SIP/4000
Tabla qevent
event_id event
1 ABANDON
2 AGENTDUMP
3 AGENTLOGIN
4 AGENTCALLBACKLOGIN
5 AGENTLOGOFF
6 AGENTCALLBACKLOGOFF
7 COMPLETEAGENT
8 COMPLETECALLER
9 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
2 recepcionqueue
3 comercialqueue
4 soportequeue
Table queue_stats
SIP/2003 2009-11-05
1 4 4 14
05:01:19
SIP/2003 2009-12-22
705 4 4 9
23:35:20
Tablas de agenda
clientes
telefono
usuarios
Tabla clientes
277
3 Adidas Yet VIP
Tabla telefono
idEmp telefono
1 650664616
2 654545454
2 676767676
2 943212112
2 945787876
3 654323232
3 656997878
3 698987332
Tabla usuarios
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
Explicacin terica y prctica de funcionalidades extra:
280
En este apartado tenemos una visin de los usuarios de la centralita.
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
En la imagen anterior hemos visto como es el proceso de adiccin de un usuario,
rellenando los campos Nombre, Extensin y Departamento, y en la imagen siguiente
vemos el resultado.
282
En la imagen anterior vemos el identificador del usuario a eliminar, en el ejemplo ser
el 8, y a continuacin en la siguientes imgenes vemos la eleccin de usuario a eliminar
y comprobamos que se ha eliminado.
283
Modificar Usuarios: Permite modificar un usuario en la base de datos a la que est
enlazada la aplicacin, no modifica el fichero sip.conf, la idea es modificar el usuario y
despus modificar dicho fichero de configuracin.
284
En la imagen siguiente vemos el resultado de la modificacin:
285
Aadir Clientes: Permite agregar un cliente a la base de datos a la que est enlazada la
aplicacin.
286
En la siguiente imagen vemos el resultado tras aadir el cliente:
287
Comprobamos que la eliminacin se ha efectuado adecuadamente.
288
En las dos imgenes siguientes vemos como nos da la posibilidad de simplemente
modificar los valores actuales o agregar tambin ms telfonos al cliente.
289
Rellenamos el campo del telfono que vamos a aadir:
A continuacion veremos un recordatorio de las extensiones del Dialplan para que los
usuarios puedan consultarlo cuando quieran.
290
291
292
293
Por ltimo para recordar el acceso a la aplicaciones integradas con la centralita
Asterisk :
294
295
296
Integracin con Google Calendar
297
Prueba 1 ) Hay un evento de 10:30 a 11:30
298
El calendario tiene el siguiente aspecto:
299
El calendario tiene el siguiente aspecto:
300
El calendario tiene el siguiente aspecto:
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
Chan_sebi es un canal para Asterisk, que utiliza modems Huawei para proveer de
gateways gsm de voz y/o sms.
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.
El S.O. debe ser capaz de montar los subid 00, 01 y 02 del modem Huawei como
usbTTYx. Los kernels antiguos (por debajo de 2.6.20 generalmente) no son capaces de
hacerlo automticamente por lo que habr que modificar algunas cosas para que se
detecten de la forma adecuada y sean cargados por usbserial. Normalmente es
suficiente con /sbin/modprobe usbserial vendor=012d1 product=01003 o bien
/sbin/modprobe usbserial vendor=012d1 product=01001 dependiendo de si el modem es
1001 (169,k3520, e270,etc) o es 1003 (e220). A veces tambin entran en conflicto
con el driver de option resolviendose aadiendo al blacklist el mdulo option. Si aun
as sigue intentando cargar puede intentar resolverse eliminando el fichero option.ko y
ejecutando un depmod despus.
303
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.).
Cumpliendo esto podremos instalar asterisk-addons sobre nuestro asterisk 1.4.x con
chan_sebi incluido.
[2-1]
data = /dev/ttyUSB2
voice = /dev/ttyUSB1
imei = 35413702XXXXXXX
[huawei1]
imei=35xxxxxxxxxxx ; imei of modem
;pin=1234 ; pin (use only if sim card has pin request enabled)
csca=+34607003110 ; sms centre number (vodafone es example)
sms=yes ; enable sms send/receive
voice=yes ; enable voice for calls
context=from-pstn ; dialplan context for incoming calls
group=1 ; this phone is in channel group 1
volume=5 ; modem volume (1-5)
language=es ; channel language
;nocallsetup=yes ; set this only if you want override call status notifications
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
*CLI> sebi show devices
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:
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
Pruebas realizadas con un Modem Huawei K3520
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:
[huawei1]
dataport=/dev/ttyUSB2
voiceport=/dev/ttyUSB1
imei=35328XXXXXXXXXX
pin=1626
csca=+34644109030 ; SMS centre number (SYMYO)
sms=yes
voice=yes
context=from-sebi
group=1
volume=5
language=es
Las 3 pruebas realizadas con el chan_sebi sern recepcin y envio de SMS y realizacin
de llamadas a travs de este canal.
[from-sebi]
306
Miramos el log en el CLI de Asterisk al hacer una llamada:
[from-sebi]
include => acceso2
exten => 1111,1,NoOp(Envio de Sms)
exten => 1111,n,SebiSendSMS(huawei1,650664616,"sms prueba")
exten => 1111,n,Hangup
[acceso2]
Tambin se puede realizar esta prueba desde el CLI directamente, pero de esta forma
suena la extensin que le indicas, en este caso la 100, y al contestar se enva el SMS:
*CLI> originate sip/100 application SebiSendSMS huawei1|650664616|"SMS DE PRUEBA"
-- Launching SebiSendSMS(huawei1|650664616|SMS DE PRUEBA) on SIP/100-b7780b98
[from-sebi]
exten => sms,1,NoOp(Incoming SMS from ${SMSSRC})
exten => sms,n,System(/usr/src/recvSMS.sh "${SMSSRC}" "${SMSTXT}")
exten => sms,n,Hangup
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
308
Flash Operator Panel 2 (FOP 2)
Qu es FOP2?
Flash Operator Panel 2 es una aplicacin de tipo panel de control para las PBX Asterisk.
Se ejecuta en un navegador web con el plugin de flash. Es capaz de mostrar
informacin sobre su actividad PBX en tiempo real. El diseo es configurable (tamao y
color de los botones, etc.).
Su creador, Nicolas Gudio, fue ganador hace unos meses del premio que otorga
Digium, Digium Innovation Awards, y es que FOP 2 es un producto ideal y muy
recomendable.
Caractersticas
Acciones
o Iniciar llamadas
o Acceso telefnico a cualquier nmero
o Acceso a la agenda de llamadas
o Notificacin de entrada de llamadas
o Agenda de Contactos (Visual Phonebook)
o Transferencia de llamadas
o Transferencia al buzn de voz
o Registro de llamadas
o Atencin de llamadas directas (Pick Up)
o Colgar llamadas
o Funcionalida Spy & Whisper (Escuchar llamada y comunicarse con uno de
los hablantes sin que el otro escuche)
Botones de Extensin
Botones Trunk
Botones de Conferencia
309
Botones de Cola
o Lista de agentes/miembros
o Lista de llamadas en espera
o Miembros en pausa
o Miembros ocupados
o Miembros disponibles
o Miembros invalidos
A los recepcionistas:
Desarrollado con una recepcionista en la mente. Todas las acciones estn disponibles
en dos clics del ratn.
No slo puede ver el estado de la extensin, sino tambin una rpida visin de las
colas:
310
Instalacin
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.
#> cd / usr/local/fop2
#> ./fop2_server
Configuracin
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
[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1
[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
/etc/asterisk/sip.conf
callevents=yes
312
Para que se efectue el envio de eventos al FOP2.
/etc/asterisk/queues.conf
[testqueue]
eventwhencalled=yes
Para que efectue el envio de eventos relacionados con las colas y los agentes.
Configuracin de 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.
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'"
/var/www/html/fop2/config.php
<?
// Database connection details
$DBHOST = 'localhost';
$DBNAME = 'fop2';
$DBUSER = 'fop2';
$DBPASS = ' myPassw0rd ';
$language=en ;
// --------------------------------------------------------- / / ------------------------------------------------ --
-------
// Do not modify below this line
// --------------------------------------------------------- / / ------------------------------------------------ --
-------
.. ..
315
Practicas de la aplicacin con FOP 2
[general]
; AMI definitions
manager_host=localhost
manager_port=5038
manager_user=admin
manager_secret=amp111
;event_mask=call,agent
; Daemon definitios
listen_port = 4445
restrict_host = www.asternic.org
web_dir = /var/www/html/fop2
; Global Config
language = en
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
[SIP/2000]
type=extensin
extension=2000
context=acceso
label=Mikel
mailbox=2000@default
extenvoicemail=20008@acceso
[SIP/2001]
type=extensin
extension=2001
context=acceso
label=Eduardo
mailbox=2001@default
extenvoicemail=20018@acceso
[SIP/2002]
type=extensin
extension=2002
context=acceso
label=Josean
mailbox=2002@default
extenvoicemail=20028@acceso
[SIP/2003]
type=extensin
extension=2003
context=acceso
label=David
mailbox=2003@default
extenvoicemail=20038@acceso
[SIP/2004]
type=extensin
extension=2004
context=acceso
label=Josemi
mailbox=2004@default
extenvoicemail=20048@acceso
[SIP/2005]
type=extensin
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
Tras rellenar la agenda queda de la siguiente forma:
Botn de llamada:
319
El log que muestra el CLI de Asterisk mientras se desarrolla el ejemplo es:
> Channel SIP/2003-09349390 was answered.
-- Executing [2005@acceso:1] Macro("SIP/2003-09349390", "acceso|2005") in new stack
-- Executing [s@macro-acceso:1] Dial("SIP/2003-09349390", "SIP/2005|30|Ttm") in new stack
-- Called 2005
-- Started music on hold, class 'default', on SIP/2003-09349390
-- SIP/2005-09346740 is ringing
-- SIP/2005-09346740 answered SIP/2003-09349390
-- Stopped music on hold on SIP/2003-09349390
== Spawn extension (macro-acceso, s, 1) exited non-zero on 'SIP/2003-09349390' in macro 'acceso'
== Spawn extension (acceso, 2005, 1) exited non-zero on 'SIP/2003-09349390'
Botn de transferencia:
En el ejemplo siguiente la
llamada entre el usuario 4000 y
el 2003 es transferida por este
ltimo a la extensin 2005,
como se puede ver en la
siguiente imagen.
320
El log que muestra el CLI de Asterisk mientras se desarrolla el ejemplo es:
321
-- <SIP/4000-08b87368> Playing 'vm-intro' (language 'es')
-- <SIP/4000-08b87368> Playing 'beep' (language 'es')
-- Recording the message
-- x=0, open writing: /var/spool/asterisk/voicemail/default/2003/tmp/RMyVLR format: gsm, 0x8b70578
-- x=1, open writing: /var/spool/asterisk/voicemail/default/2003/tmp/RMyVLR format: wav, 0x8b23bb8
-- User hung up
== Parsing '/var/spool/asterisk/voicemail/default/2003/INBOX/msg0000.txt': Found
== Parsing '/var/spool/asterisk/voicemail/default/2003/INBOX/msg0000.txt': Found
== Parsing '/var/spool/asterisk/voicemail/default/2003/INBOX/msg0000.txt': Found
== Spawn extension (acceso, 20038, 1) exited non-zero on 'SIP/4000-08b87368'
Cuando una extensin est llamando a otra, el usuario con el que te registraste
en FOP 2, si es del mismo grupo de la extensin llamada puede contestarla.
322
Botn de escucha de llamadas:
Cuando se est llevando a cabo una llamada, la extensin con la que nos
registramos en FOP 2 puede escucharla sin que ambas extensiones lo sepan.
323
Botn de escucha y susurro en llamadas:
324
Botn de colgar llamadas:
325
Botn de grabar llamadas:
1261023719.156-2005-in.wav
1261023719.156-2005-out.wav
326
Escuchamos los dos archives de grabacin:
Botn de Colas:
[soportelaboral]
exten => 784,1,Queue(${QS}|tThH)
exten => _XXXX22,1,PauseQueueMember(${QS}|SIP/${EXTEN:0:4})
exten => _XXXX22,n,Hangup
327
Vemos cual es el comportamiento visual del boton de cola de FOP2 al realizarse
una llamada a la cola desde la extensin 4000 que ser cogida por el miembro
2004 (Josemi):
328
Botn de Trunks:
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
329
El log que muestra el CLI de Asterisk mientras se desarrolla el ejemplo es:
330
Asternic Call Center Stats
Caractersticas
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
En el cliente
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:
$dbhost = 'localhost';
$dbname = 'qstat';
$dbuser = 'root';
$dbpass = '';
$language = "es";
<?
$manager_host = "127.0.0.1";
$manager_user = "admin";
$manager_secret = "amp111";
session_start();
session_register("QSTATS");
?>
$queue_log_dir = '/var/log/asterisk/';
$queue_log_file = 'queue_log';
$dbhost = 'localhost';
$dbname = 'qstat';
332
$dbuser = 'root';
$dbpass = '';
php -q /var/www/queue-stats/parselog/parselog.php
http://ip.asterisk/queue_stats
333
Practicas de la aplicacin con Asternic Call Center Stats
Pulsamos el botn Mostrar Reporte y vemos las llamadas atendidas por cada cola y
agente seleccionados y las no atendidas.
334
335
A continuacin vemos las llamadas atendidas por hora, da y por da de la semana.
336
Nmero de horas desatendidas de las recibidas.
Tiempo de espera por hora.
337
Vemos la distribucin de llamadas por da de la semana:
Vemos a tiempo real que sucede cuando se est haciendo una llamada a la cola.
338
Cuando se contesta la llamada la aplicacin lo refleja de la siguiente forma:
339
Asternic CDR Reports
Es una herramienta de fcil manejo que le permitir analizar los registros de llamadas
de cada uno de los usuarios de la centralita Asterisk y mostrarlos a travs de diversas
tablas y grficos en su navegador web.Es de los creadores de FOP 2 y Asternic Call
Center Stats.
Caractersticas
Estado en tiempo real: Esta versin permite ver el estado de una llamada en
tiempo real.
Requisitos:
En el servidor
En el cliente
340
Instalacin
- Obtenemos la aplicacin:
$manager_host = "localhost";
$manager_user = "admin";
$manager_secret = "amp111";
http://ip.asterisk/cdr
341
Practicas de la aplicacin con Asternic CDR Reports
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
Elegimos el intervalo de tiempo y pulsamos el botn Mostrar Reporte.
Tras hacer el reporte empezamos a observar las tablas y grficos que se realizan
empezando por las llamadas salientes por usuario.
343
Ahora vemos las llamadas entrantes recibidas por usuario:
344
A partir de la tabla de llamadas entrantes se generan las siguientes grficas:
345
Vemos la distribucin de llamadas en los 23 dias de los que se ha hecho el reporte:
346
Por ltimo se visualiza como se muestra una llamada a tiempo real:
347
Verbio
Por suerte nos han concedido una versin de prueba para aplicar y probar el
funcionamiento del reconocimiento y sntesis de voz a nuestra centralita Asterisk.
Qu es Verbio TTS?
348
Qu es Verbio ASR?
Introduccin a Verbio-Asterisk
Para poder poner en marcha el sistema Verbio-Asterisk, deberemos disponer de los
siguientes componentes:
349
Servidor Asterisk
350
esEB verbio-tts-carlos-eseb-16k locutor de sntesis espaol (hombre -Carlos-) 16KHz
esVA verbio-tts-amaya-esva locutor de sntesis espaol (mujer -Amaya-) 8KHz
esVA verbio-tts-amaya-esva-16k locutor de sntesis espaol (mujer -Amaya-) 16KHz
ca-c0CD verbio-tts-pau-ca-c0cd locutor de sntesis cataln (hombre -Pau-) 8KHz
ca-c0CD verbio-tts-pau-ca-c0cd-16k locutor de sntesis cataln (hombre -Pau-) 16KHz
ca-c0FE verbio-tts-meritxell-ca-c0fe locutor de sntesis cataln (mujer -Meritxell-) 8KHz
ca-c0FE verbio-tts-meritxell-ca-c0fe -16k locutor de sntesis cataln (mujer -Meritxell-) 16KHz
caJO verbio-tts-oriol-cajo locutor de sntesis cataln (hombre -Oriol-) 8KHz
caJO verbio-tts-oriol-cajo-16k locutor de sntesis cataln (hombre -Oriol-) 16KHz
euSK verbio-tts-ainhoa-eusk locutor de sntesis euskera (mujer -Ainhoa-) 8KHz
euSK verbio-tts-ainhoa-eusk-16k locutor de sntesis euskera (mujer -Ainhoa-) 16KHz
euVZ verbio-tts-amaia-euvz locutor de sntesis euskera (mujer -Amaia-) 8KHz
euVZ verbio-tts-amaia-euvz-16k locutor de sntesis euskera (mujer -Amaia-) 16KHz
ca-v0EM verbio-tts-empar-ca-v0em locutor de sntesis valenciano (mujer -Empar-) a 8KHz
ca-v0EM verbio-tts-empar-ca-v0em-16k locutor de sntesis valenciano (mujer -Empar-) a 16KHz
gaFR verbio-tts-freire-gafr locutor de sntesis gallego (hombre -Freire-) 8KHz/16KHz
es-mxYO verbio-tts-celia-es-mxyo locutor de sntesis mexicano (mujer -Celia-) 8KHz
es-mxYO verbio-tts-celia-es-mxyo-16k locutor de sntesis mexicano (mujer -Celia-) 16KHz
ptMU verbio-tts-adriana-ptmu locutor de sntesis portugus (mujer -Adriana-) 8KHz
ptMU verbio-tts-adriana-ptmu-16k locutor de sntesis portugus (mujer -Adriana-) 16KHz
pt-brPA verbio-tts-julia-pt-brpa locutor de sntesis portugus brasileo (mujer -Julia-) 8KHz
pt-brPA verbio-tts-julia-pt-brpa-16k locutor de sntesis portugus brasileo (mujer -Julia-) 16KHz
frIF verbio-tts-brigitte-frif locutor de sntesis francs (mujer -Brigitte-) 8KHz
frIF verbio-tts-brigitte-frif-16k locutor de sntesis francs (mujer -Brigitte-) 16KHz
en-usJA verbio-tts-jane-en-usja locutor de sntesis ingls (mujer -Jane-) 8KHz
en-usJA verbio-tts-jane-en-usja-16k locutor de sntesis ingls (mujer -Jane-) 16KHz
es-arLO verbio-tts-javier-es-arlo locutor de sntesis argentino (hombre -Javier-) 8KHz
es-arLO verbio-tts-javier-es-arlo-16k locutor de sntesis argentino (hombre -Javier-) 16KHz
351
pt-br verbio-asr-pt-br reconocimiento portugus brasileo (pt-br)
fr verbio-asr-fr reconocimiento francs (fr)
en-us verbio-asr-en-us reconocimiento ingls americano (en-us)
es16k verbio-asr-es16k reconocimiento espaol 16Khz (es16k).
ca16k verbio-asr-ca16k reconocimiento cataln 16Khz (ca16k).
Instalacin de Verbio
1. Desinstalar (si tenemos alguna instalacin previa) todos los paquetes Verbio:
verbio-tts-*
verbio-engines
verbio-asr-*
verbio-clients
[...]
[...]
# rpm -e verbio-tts-*
# rpm -e verbio-asr-*
# rpm -e verbio-clients
# rpm -e verbio-engines
/etc/software-verbio-server.
Nota: podemos usar la aplicacin 'verbioconf' (como root desde un terminal) para
llevar a cabo la configuracin del fichero '/etc/software-verbio-server'.
353
Si no tenemos licencia, una vez comprobada la correcta instalacin de 'verbiod',
podemos arrancar en modo evaluacin, para realizar las pruebas que consideremos
oportunas.
# verbiod -e
Los parmetros que acepta verbiod son: -d (modo debug), -e (modo evaluacin) o
ningn parmetro para iniciar en modo 'normal'.
Para instalar las aplicaciones Asterisk de Verbio, hay que seguir los siguientes pasos:
/var/lib/asterisk/verbio/text
/var/lib/asterisk/verbio/gram
/var/lib/asterisk/verbio/audio
354
Carga y descarga de las aplicaciones de Verbio en Asterisk.
Las aplicaciones Verbio se cargan y descargan automticamente al iniciar o parar
Asterisk. Si, desde el CLI de Asterisk, queremos cargar las aplicaciones Verbio pedemos
ejecutar:
Nota: al cargar las aplicaciones Verbio (bien cuando arranca Asterisk o bien cuando
cargamos manualmente con '(module) load app_verbio_speech.so'). Se intentar
establecer la conexin con el servidor Verbio por lo cual, es muy importante que
tengamos el servidor de sntesis/ reconocimiento arrancado.
La conexin con el servidor Verbio se mantiene abierta hasta que paremos Asterisk o
ejecutemos '(module) unload app_verbio_speech.so'.
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
Nota: Si los parmetros marcados como opcionales se omiten, estos tomaran los
valores del fichero /etc/asterisk/verbio.conf.
o VerbioLoadVcb
o VerbioUnloadVcb
o VerbioRec
o VerbioPrompt
o VerbioPromptAndRec
o VerbioStreamAndRec
o VerbioLastErr
356
o VerbioInfo
o VerbioFreeChannel
o VerbioLoadVcb(gram_file|gram_type[|config][|lang][|options])
Descripcin: Esta funcion carga una gramatica (sobre un puerto verbio asociado al
canal Asterisk).
o VerbioUnloadVcb(vcb_handle[|config][|lang][|options])
o VerbioRec([|config][|lang][|initsil][|maxsil][|abs_timeout][|options])
357
- d (habilitar la deteccion de dtmf)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio)
VASR_INDEX = VASR_INDEX0
VASR_RESULT = VASR_RESULT0
VASR_SCORE = VASR_SCORE0
VASR_UTTERANCE = VASR_UTTERANCE0
VASR_WEIGHT = VASR_WEIGHT0
VASR_RULE = VASR_RULE0
Si la deteccion de dtmf (opcion 'd') est habilitada, podemos consultar su estado con
las siguientes variables de canal:
VERBIO_DTMF_MAXLEN
VERBIO_DTMF_TERMINATOR
358
speaker : locutor a utilizar (opcional).
options : opciones. Las opciones disponibles son:
- f (tratar el parametro fichero_o_texto como si fuera un fichero)
- v (verbose)
- p (habilitar pausa/reproduccion mediante dtmf -tecla por
defecto '#'.Para especificar una tecla: p0,p1,..,p*,p#. p. para
cualquier tecla)
- s (habilitar parada del prompt mediante dtmf -tecla por defecto
'#'. Para especificar una tecla: s0,s1,..,s*,s#. s. para cualquier
tecla)
- a (descolgar el canal)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio)
Si la opcion de parar el prompt ('s') esta habilitada, podemos consultar su estado con
las siguientes variables de canal:
Al trabajar con la opcion 'f', los ficheros de texto a sintetizar, se buscaron en la ruta
definida por el parametro 'text_prompts_path', del fichero de configuracion
('/etc/asterisk/verbio.conf').
No olvidarse de escapar las comas (',') del texto que queremos sintetizar (ejemplo:
"Hola\, buenas tardes.").(Si usamos un fichero de texto -opcion 'f'-esto ltimo no
aplica).
o VerbioPromptAndRec(text_or_file[|initsil][|maxsil][|tts_lang][|tts_spkr][|asr
_conf][|asr_lang][|abs_timeout][|options])
359
tts_lang : lenguaje (del sintetizador) a utilizar (opcional).
tts_spkr : locutor (del sintetizador) a utilizar (opcional).
asr_conf : configuracion de reconocimiento (opcional).
asr_lang : lenguaje (del reconocedor) a utilizar (opcional).
abs_timeout : timeout absoluto de reconocimiento (segundos)(opcional)
options : opciones. Las opciones disponibles son:
- f (tratar el parametro fichero_o_texto como si fuera un fichero)
- v (verbose)
- a (descolgar el canal)
- b (beep antes de reconocer)
- g (activar bargein. Permitir al usuario interrumpir a la maquina.
Esta opcin desactivara 'b'.)
- i (interrumpir de manera inmediata el prompt al detectar voz.
Esta opcin activara 'g'.)
- d (habilitar la deteccion de dtmf)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio).
Al trabajar con la opcion 'f', los ficheros de texto a sintetizar, se buscaran en la ruta
definida por el parametro 'text_prompts_path' del fichero de configuracin
(/etc/asterisk/verbio.conf).
No olvidarse de escapar las comas (',') del texto que queremos sintetizar (ejemplo:
"Hola\, buenas tardes.").(Si usamos un fichero de texto -opcion 'f'- esto ultimo no se
aplica).
Cuando usemos bargein, hay que tener mucho cuidado al seleccionar los parametros
'initsil', 'maxsil' y 'abs_timeout'.
360
VASR_UTTERANCEn : Utterance el resultado n.
VASR_WEIGHTn : Peso del resultado n dentro de la gramatica.
VASR_RULEn : Regla a la que pertenece el resultado n.
VASR_INDEX = VASR_INDEX0
VASR_RESULT = VASR_RESULT0
VASR_SCORE = VASR_SCORE0
VASR_UTTERANCE = VASR_UTTERANCE0
VASR_WEIGHT = VASR_WEIGHT0
VASR_RULE = VASR_RULE0
Si la deteccion de dtmf (opcion 'd') esta habilitada, podemos consultar su estado con
las siguientes variables de canal:
VERBIO_DTMF_MAXLEN
VERBIO_DTMF_TERMINATOR
361
- b (beep antes de reconocer)
- g (activar bargein. Permitir al usuario interrumpir a la maquina.
Esta opcin desactivara 'b'.)
- i (interrumpir de manera inmediata el stream al detectar voz.
Esta opcin activara 'g'.)
- d (habilitar la deteccion de dtmf)
- n (no ejecutar colgado cuando se produzca un error referente a
Verbio)
Cuando usemos bargein, hay que tener mucho cuidado al seleccionar los parametros
'initsil', 'maxsil' y 'abs_timeout'. Si, por ejemplo, seleccionamos un 'initsil' o
'abs_timeout' demasiado pequeno, no le daremos suficiente tiempo de escucha al
usuario, y nuestro fichero a reproducir se vera interrumpido.
VASR_INDEX = VASR_INDEX0
VASR_RESULT = VASR_RESULT0
VASR_SCORE = VASR_SCORE0
VASR_UTTERANCE = VASR_UTTERANCE0
VASR_WEIGHT = VASR_WEIGHT0
VASR_RULE = VASR_RULE0
Si la deteccion de dtmf (opcion 'd') esta habilitada, podemos consultar su estado con
las siguientes variables de canal:
362
Se puede configurar el numero maximo de dtmf a detectar y el dtmf de terminacion,
configurando (set) las siguientes variables del dialplan:
- VERBIO_DTMF_MAXLEN
- VERBIO_DTMF_TERMINATOR
o VerbioLastErr(var)
Codigos de error:
EVX_NOERROR NO ERROR
EVX_INVSETUP Vox ERROR (Files may be corrupted.Check disk and
repeat Vox Setup)
EVX_NOMEM OUT OF MEMORY. (Check memory leakages).
EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. (Check the
vocabulary file name and
path writing permission).
EVX_INVWORD THE VOCABULARY CONTAINS AN INVALID WORD. (Check
and correct invalid words).
EVX_NOLICFILE NO LICENSE FILE WAS FOUND. (Use Setup and CheckOut
to obtain the Vox
directory structure and
the license file).
EVX_INVLIC THE LICENSE FILE IS NOT VALID. (Use CheckOut to obtain a
valid license file).
EVX_SYSTEM SYSTEM ERROR (Check errno).
EVX_NOLIBINIT VOXLIB WAS NOT SUCCESSFULLY LOADED. (Call
vox_libinit() before using any Vox function).
EVX_NOLIC NO LICENSE
EVX_NOSETVCB NO ACTIVE VOCABULARY. (Use vox_setvcb() to set the
active vocabulary).
EVX_NORECSTR NO RECOGNITION. (Use vox_recstr() to init recognition).
EVX_NOLINE NO MORE LINES ARE AVAILABLE FOR THE SPECIFIED
CHANNEL DEVICE
EVX_BADPARM INVALID PARAMETER IN FUNCTION CALL
363
EVX_NOTIMP NOT IMPLEMENTED
EVX_NORECIND NO RECIND OR NBEST. (Call vox_recind() before calling
ATVOX_NIND()).
EVX_INVFILE INVALID FILENAME
EVX_NETWORK NETWORK ERROR
EVX_DICFILE THE DICTIONARY FILE NAME IS NOT VALID
EVX_PARSER ABNF PARSER ERROR
EVX_INVVER THE VOXSERVER VERSION DOES NOT MATCH THE CLIENT
VERSION
EVX_UNKNOWN Unknown error
o VerbioInfo()
o VerbioFreeChannel()
Descripcion: Esta aplicacion liberara los recursos (licencias y memoria) del servidor
Verbio para el canal actual. Esta aplicacion debera ser ejecutada SIEMPRE,
antes de terminar una llamada que haga uso de las aplicaciones Verbio.
Esta aplicacion es equivalente a ejecutar VerbioUnloadVcb con el
parametro vcb_handle a -1.
364
Pruebas con Verbio
Lo primero que se hace es carga el diccionario, en este caso es el archivo david.txt cuyo
contenido es el siguiente:
0 cero
1 uno
2 dos
3 tres
4 cuatro
5 cinco
6 seis
7 siete
8 ocho
9 nueve
SI si
NO 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.
[verbio]
include => acceso
365
exten => 8090,n,GotoIf($[$[${VASR_RESULT} != ERROR] &
$[${VASR_SCORE}>${UMBRAL}]]?si2:no2)
exten => 8090,n(si2),VerbioPrompt(Gracias.)
exten => 8090,n,Hangup
exten => 8090,n,VerbioFreeChannel()
366
NOTICE[3774]: app_verbio_speech.c:2808 verbio_prompt_and_rec: Text to synth: Indique el numero
de incidencia para consultar su estado.Recuerde que tiene cuatro digitos.
NOTICE[3774]: app_verbio_speech.c:2809 verbio_prompt_and_rec: Init delay : 300
NOTICE[3774]: app_verbio_speech.c:2810 verbio_prompt_and_rec: End delay : 20
NOTICE[3774]: app_verbio_speech.c:2813 verbio_prompt_and_rec: ASR config : es_eu
NOTICE[3774]: app_verbio_speech.c:2814 verbio_prompt_and_rec: ASR lang : es
NOTICE[3774]: app_verbio_speech.c:2815 verbio_prompt_and_rec: Init sil : 300
NOTICE[3774]: app_verbio_speech.c:2816 verbio_prompt_and_rec: Max sil : 200
NOTICE[3774]: app_verbio_speech.c:2817 verbio_prompt_and_rec: Abs timeout : 30
NOTICE[3774]: app_verbio_speech.c:2842 verbio_prompt_and_rec: Rec ASR file
:/var/lib/asterisk/verbio/audio/verbio-rec-126259827-1262598275.3.alaw
NOTICE[3774]: app_verbio_speech.c:2843 verbio_prompt_and_rec: Voxlib device: 3
NOTICE[3774]: app_verbio_speech.c:2844 verbio_prompt_and_rec: --------------------------
-- Executing [8090@acceso:2] NoOp("SIP/2003-0a1926d0", ""PALABRAS 4. Resultado: 1 1 1 1. Score:
95 Umbral: 90"|||v") in new stack
-- Executing [8090@acceso:3] GotoIf("SIP/2003-0a1926d0", "1?si:no") in new stack
-- Goto (acceso,8090,4)
-- Executing [8090@acceso:4] VerbioPromptAndRec("SIP/2003-0a1926d0", "Su numero de incidencia
es: 1 1 1 1, no?") in new stack
== Parsing '/etc/asterisk/verbio.conf': Found
NOTICE[3774]: app_verbio_speech.c:2585 verbio_prompt_and_rec: Verbose enabled in config file.
NOTICE[3774]: app_verbio_speech.c:735 verbio_get_dev: chan->uniqueid: 1262598275.3
NOTICE[3774]: app_verbio_speech.c:746 verbio_get_dev: dev: 3
NOTICE[3774]: app_verbio_speech.c:2800 verbio_prompt_and_rec: --------------------------
NOTICE[3774]: app_verbio_speech.c:2801 verbio_prompt_and_rec: VerbioPromptAndRec param
summary:
NOTICE[3774]: app_verbio_speech.c:2802 verbio_prompt_and_rec: Prim vox srv : 127.0.0.1
NOTICE[3774]: app_verbio_speech.c:2803 verbio_prompt_and_rec: Bckp vox srv : 127.0.0.1
NOTICE[3774]: app_verbio_speech.c:2804 verbio_prompt_and_rec: TTS language : es
NOTICE[3774]: app_verbio_speech.c:2805 verbio_prompt_and_rec: TTS speaker : amaya
NOTICE[3774]: app_verbio_speech.c:2808 verbio_prompt_and_rec: Text to synth: Su numero de
incidencia es: 1 1 1 1, no?
NOTICE[3774]: app_verbio_speech.c:2809 verbio_prompt_and_rec: Init delay : 300
NOTICE[3774]: app_verbio_speech.c:2810 verbio_prompt_and_rec: End delay : 20
NOTICE[3774]: app_verbio_speech.c:2813 verbio_prompt_and_rec: ASR config : es_eu
NOTICE[3774]: app_verbio_speech.c:2814 verbio_prompt_and_rec: ASR lang : es
NOTICE[3774]: app_verbio_speech.c:2815 verbio_prompt_and_rec: Init sil : 300
NOTICE[3774]: app_verbio_speech.c:2816 verbio_prompt_and_rec: Max sil : 200
NOTICE[3774]: app_verbio_speech.c:2817 verbio_prompt_and_rec: Abs timeout : 30
NOTICE[3774]: app_verbio_speech.c:2842 verbio_prompt_and_rec: Rec ASR file
:/var/lib/asterisk/verbio/audio/verbio-rec-126259828-1262598275.3.alaw
NOTICE[3774]: app_verbio_speech.c:2843 verbio_prompt_and_rec: Voxlib device: 3
NOTICE[3774]: app_verbio_speech.c:2844 verbio_prompt_and_rec: --------------------------
-- Executing [8090@acceso:5] NoOp("SIP/2003-0a1926d0", ""PALABRAS 1. Resultado: 6. Score: 99
Umbral: 90"|||v") in new stack
-- Executing [8090@acceso:6] GotoIf("SIP/2003-0a1926d0", "1?si2:no2") in new stack
-- Goto (acceso,8090,7)
-- Executing [8090@acceso:7] VerbioPrompt("SIP/2003-0a1926d0", "Gracias.") in new stack
== Parsing '/etc/asterisk/verbio.conf': Found
NOTICE[3774]: app_verbio_speech.c:1298 verbio_prompt: Verbose enabled in config file.
NOTICE[3774]: app_verbio_speech.c:735 verbio_get_dev: chan->uniqueid: 1262598275.3
NOTICE[3774]: app_verbio_speech.c:746 verbio_get_dev: dev: 3
NOTICE[3774]: app_verbio_speech.c:1371 verbio_prompt: --------------------------
NOTICE[3774]: app_verbio_speech.c:1372 verbio_prompt: VerbioPrompt param summary:
NOTICE[3774]: app_verbio_speech.c:1373 verbio_prompt: Prim vox srv : 127.0.0.1
NOTICE[3774]: app_verbio_speech.c:1374 verbio_prompt: Bckp vox srv : 127.0.0.1
NOTICE[3774]: app_verbio_speech.c:1375 verbio_prompt: TTS language : es
367
NOTICE[3774]: app_verbio_speech.c:1376 verbio_prompt: TTS speaker : amaya
NOTICE[3774]: app_verbio_speech.c:1379 verbio_prompt: Text to synth: Gracias.
NOTICE[3774]: app_verbio_speech.c:1380 verbio_prompt: Init delay : 300
NOTICE[3774]: app_verbio_speech.c:1381 verbio_prompt: End delay : 20
NOTICE[3774]: app_verbio_speech.c:1394 verbio_prompt: Voxlib device: 3
NOTICE[3774]: app_verbio_speech.c:1395 verbio_prompt: --------------------------
-- Executing [8090@acceso:8] Hangup("SIP/2003-0a1926d0", "") in new stack
== Spawn extension (acceso, 8090, 8) exited non-zero on 'SIP/2003-0a1926d0'
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.
SOPORTE soporte
ADMINISTRACION administracion
COMERCIAL comercial
TWISTER twister
[verbio]
include => acceso
368
exten => 7090,n(soporte),Dial(SIP/2000,30,Ttm)
exten => 7090,n,Hangup
exten => 7090,n,VerbioFreeChannel()
exten => 7090,n(otro),GotoIf($[${DPTO} = TWISTER ]?twister:otro1)
exten => 7090,n(twister),Dial(SIP/2003,30,Ttm)
exten => 7090,n,Hangup
exten => 7090,n,VerbioFreeChannel()
exten => 7090,n(otro1),GotoIf($[${DPTO} = COMERCIAL ]?comercial:otro2)
exten => 7090,n(comercial),Dial(SIP/4000,30,Ttm)
exten => 7090,n,Hangup
exten => 7090,n,VerbioFreeChannel()
exten => 7090,n(otro2),Dial(SIP/5000,30,Ttm)
exten => 7090,n,Hangup
exten => 7090,n,VerbioFreeChannel()
369
NOTICE[3797]: app_verbio_speech.c:2801 verbio_prompt_and_rec: VerbioPromptAndRec param
summary:
NOTICE[3797]: app_verbio_speech.c:2802 verbio_prompt_and_rec: Prim vox srv : 127.0.0.1
NOTICE[3797]: app_verbio_speech.c:2803 verbio_prompt_and_rec: Bckp vox srv : 127.0.0.1
NOTICE[3797]: app_verbio_speech.c:2804 verbio_prompt_and_rec: TTS language : es
NOTICE[3797]: app_verbio_speech.c:2805 verbio_prompt_and_rec: TTS speaker : amaya
NOTICE[3797]: app_verbio_speech.c:2808 verbio_prompt_and_rec: Text to synth: Bienvenido a Yet
Informatica , de los siguientes departamentos indiquenos con cual desea hablar, Soporte,
Administracion, Twister, Comercial.
NOTICE[3797]: app_verbio_speech.c:2809 verbio_prompt_and_rec: Init delay : 300
NOTICE[3797]: app_verbio_speech.c:2810 verbio_prompt_and_rec: End delay : 20
NOTICE[3797]: app_verbio_speech.c:2813 verbio_prompt_and_rec: ASR config : es_eu
NOTICE[3797]: app_verbio_speech.c:2814 verbio_prompt_and_rec: ASR lang : es
NOTICE[3797]: app_verbio_speech.c:2815 verbio_prompt_and_rec: Init sil : 300
NOTICE[3797]: app_verbio_speech.c:2816 verbio_prompt_and_rec: Max sil : 200
NOTICE[3797]: app_verbio_speech.c:2817 verbio_prompt_and_rec: Abs timeout : 30
NOTICE[3797]: app_verbio_speech.c:2842 verbio_prompt_and_rec: Rec ASR file
:/var/lib/asterisk/verbio/audio/verbio-rec-126259839-1262598382.5.alaw
NOTICE[3797]: app_verbio_speech.c:2843 verbio_prompt_and_rec: Voxlib device: 5
NOTICE[3797]: app_verbio_speech.c:2844 verbio_prompt_and_rec: --------------------------
-- Executing [7090@acceso:2] NoOp("SIP/2003-0a197d18", ""PALABRAS 1. Resultado: SOPORTE.
Score: 58 Umbral: 20"|||v") in new stack
-- Executing [7090@acceso:3] GotoIf("SIP/2003-0a197d18", "1?si:no") in new stack
-- Goto (acceso,7090,5)
-- Executing [7090@acceso:5] VerbioLoadVcb("SIP/2003-0a197d18", "sino.txt|isolated|||v") in new
stack
== Parsing '/etc/asterisk/verbio.conf': Found
NOTICE[3797]: app_verbio_speech.c:4549 verbio_load_vcb: Verbose enabled in config file.
NOTICE[3797]: app_verbio_speech.c:735 verbio_get_dev: chan->uniqueid: 1262598382.5
NOTICE[3797]: app_verbio_speech.c:746 verbio_get_dev: dev: 5
NOTICE[3797]: app_verbio_speech.c:4597 verbio_load_vcb: --------------------------
NOTICE[3797]: app_verbio_speech.c:4598 verbio_load_vcb: VerbioLoadVcb param summary:
NOTICE[3797]: app_verbio_speech.c:4599 verbio_load_vcb: Prim vox srv : 127.0.0.1
NOTICE[3797]: app_verbio_speech.c:4600 verbio_load_vcb: Bckp vox srv : 127.0.0.1
NOTICE[3797]: app_verbio_speech.c:4601 verbio_load_vcb: Gram path :
/var/lib/asterisk/verbio/gram/sino.txt
NOTICE[3797]: app_verbio_speech.c:4602 verbio_load_vcb: ASR config : es_eu
NOTICE[3797]: app_verbio_speech.c:4603 verbio_load_vcb: ASR lang : es
NOTICE[3797]: app_verbio_speech.c:4605 verbio_load_vcb: Grammar type: ISOLATED
NOTICE[3797]: app_verbio_speech.c:4615 verbio_load_vcb: Voxlib device: 5
NOTICE[3797]: app_verbio_speech.c:4616 verbio_load_vcb: --------------------------
== Parsing '/etc/asterisk/verbio.conf': Found
NOTICE[3797]: app_verbio_speech.c:501 verbio_md5_grammar_exists: Grammar
/var/lib/asterisk/verbio/gram/sino.txt exists in cache
(/var/lib/asterisk/verbio/gram/.cache/6343121acb03e3e93cf7cbf7ff3b38ba).
NOTICE[3797]: app_verbio_speech.c:4747 verbio_load_vcb: vc_handle 1
-- Executing [7090@acceso:6] Set("SIP/2003-0a197d18", "DPTO= SOPORTE") in new stack
-- Executing [7090@acceso:7] VerbioPromptAndRec("SIP/2003-0a197d18", "El departamento elegido
es: SOPORTE , no?") in new stack
== Parsing '/etc/asterisk/verbio.conf': Found
NOTICE[3797]: app_verbio_speech.c:2585 verbio_prompt_and_rec: Verbose enabled in config file.
NOTICE[3797]: app_verbio_speech.c:735 verbio_get_dev: chan->uniqueid: 1262598382.5
NOTICE[3797]: app_verbio_speech.c:746 verbio_get_dev: dev: 5
NOTICE[3797]: app_verbio_speech.c:2800 verbio_prompt_and_rec: --------------------------
NOTICE[3797]: app_verbio_speech.c:2801 verbio_prompt_and_rec: VerbioPromptAndRec param
summary:
NOTICE[3797]: app_verbio_speech.c:2802 verbio_prompt_and_rec: Prim vox srv : 127.0.0.1
370
NOTICE[3797]: app_verbio_speech.c:2803 verbio_prompt_and_rec: Bckp vox srv : 127.0.0.1
NOTICE[3797]: app_verbio_speech.c:2804 verbio_prompt_and_rec: TTS language : es
NOTICE[3797]: app_verbio_speech.c:2805 verbio_prompt_and_rec: TTS speaker : amaya
NOTICE[3797]: app_verbio_speech.c:2808 verbio_prompt_and_rec: Text to synth: El departamento
elegido es: SOPORTE , no?
NOTICE[3797]: app_verbio_speech.c:2809 verbio_prompt_and_rec: Init delay : 300
NOTICE[3797]: app_verbio_speech.c:2810 verbio_prompt_and_rec: End delay : 20
NOTICE[3797]: app_verbio_speech.c:2813 verbio_prompt_and_rec: ASR config : es_eu
NOTICE[3797]: app_verbio_speech.c:2814 verbio_prompt_and_rec: ASR lang : es
NOTICE[3797]: app_verbio_speech.c:2815 verbio_prompt_and_rec: Init sil : 300
NOTICE[3797]: app_verbio_speech.c:2816 verbio_prompt_and_rec: Max sil : 200
NOTICE[3797]: app_verbio_speech.c:2817 verbio_prompt_and_rec: Abs timeout : 30
NOTICE[3797]: app_verbio_speech.c:2842 verbio_prompt_and_rec: Rec ASR file
:/var/lib/asterisk/verbio/audio/verbio-rec-126259841-1262598382.5.alaw
NOTICE[3797]: app_verbio_speech.c:2843 verbio_prompt_and_rec: Voxlib device: 5
NOTICE[3797]: app_verbio_speech.c:2844 verbio_prompt_and_rec: --------------------------
-- Executing [7090@acceso:8] NoOp("SIP/2003-0a197d18", ""PALABRAS 1. Resultado: SI. Score: 93
Umbral: 20"|||v") in new stack
-- Executing [7090@acceso:9] GotoIf("SIP/2003-0a197d18", "1?si2:no2") in new stack
-- Goto (acceso,7090,10)
-- Executing [7090@acceso:10] NoOp("SIP/2003-0a197d18", "" Vamos a llamar: SOPORTE"") in new
stack
-- Executing [7090@acceso:11] GotoIf("SIP/2003-0a197d18", "1?soporte:otro") in new stack
-- Goto (acceso,7090,12)
-- Executing [7090@acceso:12] Dial("SIP/2003-0a197d18", "SIP/2000|30|Ttm") in new stack
-- Called 2000
-- Started music on hold, class 'default', on SIP/2003-0a197d18
-- SIP/2000-0a1926d0 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Stopped music on hold on SIP/2003-0a197d18
-- Executing [7090@acceso:13] Hangup("SIP/2003-0a197d18", "") in new stack
== Spawn extension (acceso, 7090, 13) exited non-zero on 'SIP/2003-0a197d18'
371
Skype
Qu es Skype?
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
Multiplataforma.
Interconexin con Asterisk.
Protocolo SIP.
#include gizmo.h
Posibilidad de usarlo solo como softphone.
Servidor Asterisk:
Como tanto los drivers como la estructura de Asterisk son libres (cualquiera
(cualquiera puede ver
cmo es por dentro el comportamiento de los mdulos que dan soporte al hardware
para hacerlo compatible con Asterisk),
Asterisk , muchas otras empresas cuando surgi crearon
otras tarjetas para aprovechar el tirn de esta aplicacin, por lo que Digium contina
pensando nuevas formas de conseguir beneficios. Una de estas formas es
compatibilizando una aplicacin conocida y muy utilizada
utili como es Skype,
Skype con Asterisk.
373
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).
Son muchas las voces que defienden un modelo de desarrollo basado en software libre
basado en la venta de servicios (soporte, documentacin, formacin, etc.) pero
muchas de estas voces son las que defienden el soporte gratuito mediante foros y
listas, aprender por cuenta propia con lo que se encuentra por Internet, y ahorrar
hasta el ltimo cntimo si otro servicio similar puede salir ms barato que un servicio
confiable. Es decir lo gratuito, o si no lo hay, lo ms econmico. Por desgracia, el
concepto de Software libre sigue siendo el de Software gratis y con esta
mentalidad, se termina dando la razn a las empresas de software comercial.
Skype para Asterisk (SFA) es el primer y nico controlador de canal nativo que conecta
Asterisk a la red de Skype. El controlador de canal soporta un nmero ilimitado de
usuarios simultneos y un nmero ilimitado de llamadas simultneas por usuario.
SFA es un producto que ofrecer una solucin a muchas empresas que utilizan Skype y
a las que no les interesa cambiar de SoftPhone porque su personal ya conoce esta
aplicacin y lo usan en su casa como Windows. Uno puede estar ms o menos de
acuerdo con que Digium se haya metido a desarrollar esta solucin en lugar de mejorar
los protocolos IAX2 y SIP, pero mejorar esto no da de comer y crear un canal para
Skype, s.
El canal Skype cuesta 66$ e incluye las licencias G.729 para poder utilizarlo.
Ventajas:
374
Reduce los gastos en comunicaciones a telfonos fijos y mviles de todo
el mundo gracias a las tarifas econmicas para llamadas de Skype.
Skype para Asterisk complementa tu sistema de comunicacin actual.
Aade Skype a tus tablas de enrutamiento de llamadas para optimizar
los gastos de llamadas internacionales.
Clientes
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
Facil integracin
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.
- 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
http://downloads.digium.com/pub/telephony/skypeforasterisk/asterisk-1.4/x86-
32/skypeforasterisk-1.4_1.0.6-x86_32.tar.gz
http://downloads.digium.com/pub/register/x86-32/register
376
4. Dar permisos de ejecucin a la aplicacin register y ejecutarla:
1 - Digium Products
2 - Cepstral Products
0 - Quit
Your Choice: 1
You selected 1, Digium Products
Please select a product
Your Choice: 7
You selected 7, Skype For Asterisk
Please enter your Key-ID: S4A-YE76MXLEJW7W
Product available to be registered.
- res_skypeforasterisk.so
- chan_skype.so
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.
load = res_skypeforasterisk.so
load = chan_skype.so
378
== Manager registered action SkypeBuddy
== Manager registered action SkypeAccountProperty
== Manager registered action SkypeAddBuddy
== Manager registered action SkypeRemoveBuddy
== Manager registered action SkypeLicenseStatus
== Manager registered action SkypeLicenseList
== Registered custom function SKYPE_CALL_PROPERTY
== Registered custom function SKYPE_ACCOUNT_PROPERTY
== Registered custom function SKYPE_BUDDIES
== Registered custom function SKYPE_BUDDY_FETCH
Loaded chan_skype.so => (Skype For Asterisk Channel Driver)
Skype necesita que los usuarios que vayan a hacer uso de Skype para Asterisk ,
esten dados de alta en una cuenta Skype Business.
379
Creamos una cuenta comercial:
380
debug: no
Licenses Found:
File: S4A-YE76MXLEJW7W.lic -- Key: S4A-YE76MXLEJW7W -- Expires: 2030-01-11 -
- Host-ID: 6c:cf:7a:1b:1a:f0:29:43:11:2d:06:8c:d9:65:76:4b:81:50:f3:ed --
Channels: 1 (OK)
[davidea11]
secret=pkxarc11
context=incoming
exten=7000
disallow=all
allow=ulaw
direction=both
auth_policy=accept
[skype]
include => acceso
381
Hacemos una llamada desde la extensin 5000 a la cuenta de Skype
davidin99:
382
En la cuenta de Skype se ve asi:
383
DEBUG[26468]: chan_skype.c:3350 do_monitor: poll returned 1
DEBUG[26468]: chan_skype.c:790 queue_event: got control event type 4 with subclass 4.
DEBUG[26468]: chan_skype.c:3340 do_monitor: entering poll for 2 fds
== Spawn extension (macro-acceso, s, 1) exited non-zero on 'Skype/davidea11-b7d7e3c8' in
macro 'acceso'
== Spawn extension (acceso, 3000, 1) exited non-zero on 'Skype/davidea11-b7d7e3c8'
DEBUG[28850]: chan_skype.c:3433 unlink_client_call: channel 0xb7d7e3c8
NOTICE[28850]: core.cpp:2126 sfa_call_hangup: ending call
DEBUG[28850]: chan_skype.c:3447 destroy_client_call: channel 0xb7d7e3c8
DEBUG[26468]: chan_skype.c:3350 do_monitor: poll returned 1
DEBUG[26468]: chan_skype.c:3340 do_monitor: entering poll for 2 fds
DEBUG[26468]: chan_skype.c:3350 do_monitor: poll returned 1
DEBUG[26468]: chan_skype.c:3340 do_monitor: entering poll for 2 fds
DEBUG[26468]: chan_skype.c:3350 do_monitor: poll returned 1
DEBUG[26468]: chan_skype.c:3340 do_monitor: entering poll for 2 fds
384
Nagios
Qu es Nagios?
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.
385
Descarga de Nagios
http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.0/nagios-
3.2.0.tar.gz/download
http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins-
1.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/ndoutils-
1.4b9.tar.gz/download
Instalacin de Nagios
Descomprimimos el tar:
useradd nagios
groupadd nagios
groupadd nagcmd
./configure --with-command-group=nagcmd
make all
make install
make-webconf
make install-init (no necesario)
make install-config (no necesario)
make install-commandmode (no necesario)
Ahora vamos a compilar los plugins para Nagios (descomprirlo dentro de la carpeta
donde se encuentra Nagios):
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
.....
Configurando cgi.cfg
Configuramos las siguientes lneas para que "nagiosadmin" tenga acceso total a
Nagios. No queremos que nadie ms tenga acceso a l.
387
# GLOBAL HOST/SERVICE COMMAND ACCESS
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
......
Configurando localhost.cfg
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}
define hostgroup{
hostgroup_name linux-servers ; The name of the hostgroup
alias Linux Servers ; Long name of the group
members localhost ; Comma separated list of hosts that belong to this group
}
Configurando contacts.cfg
Los contactos, son las personas a las que se les notificar de las posibles incidencias de
las mquinas de la Red. En nuestro caso, como solo somos un nico administrador,
nagios y se le notificar mediante un e-mail.
define contact{
contact_name nagiosadmin
use generic-contact
alias David
email davidin073@gmail.com
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
388
Configurando commands.cfg
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
ln -s /usr/share/nagios/htdocs/ /var/www/nagios/
Monitorizando Asterisk
commands.cfg
define command{
command_name check_asterisk_skype
command_line /usr/src/SCRIPTS/skype.pl
}
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;
390
Despues de configurar el archivo contactgroups.cfg:
391
392
Actualizacin de firmware del Telfono Cisco 7941 de SCCP a SIP
Tenemos un Telfono Cisco 7941 de la centralita actual, uno de los requisitos para la
implantacin de una centralita nueva, en este caso Asterisk, es el aprovechamiento de
Hardware. Teniendo en cuenta el coste de los telfonos Cisco por la serie de
funcionalidades que traen el traspaso del protocolo Skynny Client Control Protocol
(SCCP) al SIP es lo ms adecuado para poder usarlos.
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:
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>
<DIALTEMPLATE>
<TEMPLATE MATCH="3..." TIMEOUT="0"/>
<TEMPLATE MATCH="9........" TIMEOUT="0"/>
<TEMPLATE MATCH="6........" TIMEOUT="0"/>
<TEMPLATE MATCH="*" TIMEOUT="4"/>
</DIALTEMPLATE>
Lo siguiente ser la actualizacin del firmware del telfono a un firmware SIP para eso
debemos seguir los siguientes pasos:
395
2) Obtener el firmware adecuado para la actualizacin.
- 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
Una vez hayamos pulsado esta combinacin debemos esperar, veremos como
el telfono se resetea, quedndose con sus valores de fbrica. Luego el solo
ira a buscar su archivo de actualizacin term41.default y se descargar la
imagen que este indica mediante TFTP.
Una vez se haya terminado este proceso, el telfono se reiniciar con el nuevo
firmware y buscara su SEP<MAC-del-telefono>.conf.xml.
<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>
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:
[cisco]
include => acceso
exten => 5000,1,Dial(SIP/5000)
exten => 5000,n,Hangup()
397
Actualizacin de firmware del Telfono Cisco 7905 de SCCP a SIP
Esta vez el telfono es un Cisco 7905, de gama ms baja que el anterior, pero igual de
importante su aprovechamiento en la nueva centralita.
- 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.
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>
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>192.168.1.200</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation20000 model="IP Phone 7905">
CP7905080001SIP060412A
</loadInformation20000>
</Default>
CP7905080001SCCP061117A
CP7905080001SIP060412A
399
Lo siguiente ser configurar la extensin que tendr el telfono desde la configuracin
SIP del mismo. Para poder actualizar los valores que haiga por defecto se deben pulsar
las teclas **#.
400
Descripcin breve de la centralita actual: Cisco y mejoras
realizadas en la nueva.
401
Mejoras de la nueva centralita Asterisk:
Agenda de clientes
La centralita Asterisk soluciona esto a travs de dos aplicaciones: FOP 2 que posee una
agenda de contactos de forma que cuando te llaman se ve la etiqueta de dicho cliente,
y la agenda creada para la clasificacin de los clientes segn mantenimiento, YetBook,
dndoles de esta forma una atencin especial en caso de ser clientes VIP.
Para posibilitar el teletrabajo y la conexin con la oficina de Elche son necesarias las
extensiones remotas, algo que en la central actual supondra la compra de Softphones
Cisco o Telefonos IP, mientras que en la central Asterisk con cualquier Softphone con
posibilidad de extensiones IAX el problema estara solucionado.
Conferencias
Sistema de Colas
402
mayor nmero de llamadas. Estas funcionalidades no son satisfechas por la centralita
actual y por el contrario en la central Asterisk sern solucionadas con la integracin con
las aplicaciones Asternic Call Center Stats y Asternic CDR Reports.
Implantacin en la empresa
403
Tipo de Implantacin y Anlisis de Riesgos
Hardware
UPS Suministrador de
250,00 2 500,00
energa elctrica.
4.036,00
Software
Licencia Call
Licencia 347,87 1 347,87
Center Stats
Licencia CDR
Licencia 00,00 1 00,00
Reports
404
Licencia Verbio Licencia * - - -
375,70
Concepto Importe ()
PRESUPUESTO 1.847,28
Hw de Implantacin 4.036,00
Sw de Implantacin 375,70
Estos dos apuntes hacen que el presupuesto de implantacin sea poco fiable pero si
representativo en cuanto a la importancia del Hardware en una centralita telfonica
propietaria.
Una vez realizado lo expuesto hasta ahora lo siguiente a hacer sera un estudio
exahustivo sobre el funcionamiento de la central Cisco actual, y es que por las
dimensiones de la empresa, como ya he comentado, el tipo de implantacin ser de
sustitucin de una centralita por la otra y uno de los factores fundamentales es que el
personal que utilice habitualmente dicha centralita no note un peor funcionamiento
del que haba, se trata de que las funcionalidades que si recoge la centralita actual se
lleven a cabo aparentemente igual en la nueva y slo se noten avances en aquellas
funcionalidades nuevas.
405
A parte de esto y antes de la implantacin se debera seguir intentando cambiar al
protocolo SIP los telfonos IP CISCO de la centralita actual para evitarnos hacer una
inversin intil.
Una vez establecidos estos dos puntos se elegira una etapa del ao de menos trabajo
para realizar la implantacin y as poder solucionar cualquier contratiempo con mayor
fluidez.
Por ltimo algo que tambin se podra llevar a cabo es un servidor de Fax segn los
requerimientos y necesidades de la empresa.
Como conclusin cabe destacar que est centralita Asterisk es una solucin ejemplar
para efectuar una mejora en la empresa por su flexibilidad y por el simple hecho de no
requerir Hardware propietario especifico y por tanto poder aprovechar este en caso de
que se necesite.Y es que en la actualidad Asterisk es considerado el futuro de la
telefona.
406
ANEXOS
ANEXO A: Security.txt
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*
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:
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
AgentCallbackLogin
Loguea como Agente del sistema. La extensin
([AgentNum][,[options][exten]])
recibe las llamadas del Agente especificado.
409
Intenta detectar un contestador automtico
AMD()
en el extremo remoto de una llamada.
Authenticate
Pide al interlocutor que introduzca una clave
(password[,options])
vlida para continuar.
BackGround
Reproduce una meloda o mensaje de audio
(filename1[&filename2...]
mientras se espera la marcacin de las teclas.
[,options[,language]])
ChanIsAvail
Indica si el canal especificado
(technology1/resource1[&
est disponible.
technology2/resource2...]
[,option])
ChannelRedirect
Redirecciones de un canal a
(channel,[context,]
otra extensin y prioridad.
extension, priority)
410
ChanSpy([channelprefix
Permite la escucha en un canal.
[,options]])
411
Ejecuta un script o programa creado por el
DeadAGI(program,args)
usuario, al colgar la llamada en curso.
DumpChan
Muestra informacin sobre el canal de
([min_verbose_level])
llamada en la consola.
DUNDiLookup
Busca un nmero de telfono con DUNDi.
(number[,context[,options]])
412
Permite escuchar el eco de lo que se est
Echo()
hablando.
ExecIfTime (times|daysofweek
Ejecuta una aplicacin basada
|daysofmonth|months?
en la hora actual.
application [,arguments])
ExtenSpy
Escuchar en un canal unido a
(extension[@context][,options])
una extensin especfica.
ExternalIVR (shell-command
Inicio de una aplicacin IVR externa.
[,arg1[,arg2[,...]]])
413
Enva el evento Flash a la lnea (es usado
Flash() dentro de un AGI normalmente para
producir una transferencia).
Goto
Salta a una prioridad especificada,
([[context,]extension,]priority)
extensin y contexto.
GotoIfTime
Salta a la prioridad indicada si se
(times,days_of_week,
cumple la condicin de tiempo.
days_of_month,months?label)
414
Hangup() Cuelga inmediatamente.
415
MacroIf
(expression?macronameA[, Condicional comienzan macros diferentes.
argA1][:macronameB[,argB1]])
MeetMe
Coloca la llamada en una
([confno][,[options][,pin])
conferencia de MeetMe.
MeetMeAdmin
Administra una conferencia MeetMe.
(confno,command[,pin])
MeetMeCount
Cuenta el nmero de participantes en una
(confno[,variable])
conferencia de MeetMe.
MixMonitor
Registra el audio en el canal actual, pero lo
(fileprefix.format[,options
mezcla antes de escribirla en un archivo.
[,command]])
Monitor ([file_format[:urlbase]
Graba el canal actual en dos
[, fname_base][,options]])
archivos independientes.
416
NBScat() Reproduce una corriente NBS locales.
Suprime la generacin de un
NoCDR() Registro de detalle de llamadas
para la llamada en el canal actual.
Page (technology/resource[&
technology2/resource2[&...]] Pginas de una prrroga.
[,options])
417
PlayTones (tonelist) Reproduce uno o ms tonos.
QueueLog
(queue,uniqueID,agent, Escribe una entrada en el registro de cola.
event[, additionalInfo])
Random
([probability]:[[context,] Salto condicional basado en una probabilidad.
extension,]priority)
ReadFile
Lee un archivo.
(variable=filename,length)
RealTimeUpdate
(family,colmatch,value, Actualizaciones de un valor en la base de
newcol, newval) datos de configuracin en tiempo real
418
RemoveQueueMember Elimina los miembros de la cola de forma
(queuename[,interface]) dinmica.
RetryDial
(announce,sleep,loops,
Intentos para marcar y reintentos
technology/resource[&
si el intento falla.
Technology2/resource2...]
[,timeout][,options][,URL])
SayUnixTime
Anunciar el tiempo en un formato
([unixtime][,[timezone]
personalizado.
[,format]])
419
SendImage (filename) Enva una imagen.
420
Establece una variable Global, que se puede
SetGlobalVar (n=value)
usar en otro canal de comunicacin al ser
de mbito global a todo el Dialplan.
SetTransferCapability
Establece el valor de una variable global.
(transferCapability)
SoftHangup
Cuelga el canal especificado.
(technology/resource,options)
421
System (command) Ejecuta un comando de shell.
TryExec
Intenta ejecutar una aplicacin Dialplan.
(application(arguments))
422
Espera los segundos expresados, que se
WaitExten ([seconds])
marque una nueva extensin antes de
continuar.
423
BASE64_ BASE64_ENCODE(<string>) Codifica una
ENCODE cadena en base64.
Comprueba en la base de
BLACKLIST BLACKLIST()
datos de Asterisk si el Callerid
est en la lista negra.
CHANNEL(item)(item= audioreadformat,
Obtiene o establece
CHANNEL audionativeformat, videonativeformat,
informacin sobre el canal.
audiowriteformat, callgroup, channeltype,
language, musicclass, )
424
Permite la consulta de un
carcter general o especfico
ENUM
ENUMLOOKUP(number[|Method-type[|option) de los registros NAPTR o de los
LOOKUP
tipos de NAPTR para ENUM o
de los punteros DNS
ENUMlike.
425
IAXPEER(<peername|CURRENTCHANNEL>)
Obtiene informacin del
IAXPEER (peername=ip,status,mailbox,context,
usuario IAX.
expire,dynamic,callerid_name,
callerid_num, codecs)
Temporal condicional:
IFTIME(<timespec>?[<true>][:<false>])
IFTIME Devuelve los datos siguientes
(timespec=times,day_of_week,
a ? si es cierto sino los
day_of_month,months)
datos siguientes a :.
QUEUE_
Cuenta el nmero de
MEMBER_ QUEUE_MEMBER_COUNT(<queuename>)
miembros de una cola.
COUNT
426
QUEUE_ Cuenta el nmero de llamadas
QUEUE_WAITING_COUNT(<queuename>)
WAITING_ en espera de una cola.
COUNT
Obtiene el encabezado
SIP_HEADER SIP_HEADER(<name>[,<number>])
SIP especificado.
427
Devuelve la fecha como se
STRPTIME STRPTIME(<datetime>|<timezone>|<for)
describe en el formato.
Decodifica un string de
URIDECODE URIDECODE(<data>)
acuerdo a RFC 2396.
428
cdr_pgsql.conf logger.conf smdi.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.
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
adsi.conf
El ADSI (Analog Display Services Interface) fue diseado para permitir a las compaas
de telefona ofrecer mejores servicios a travs de circuitos analgicos de telefona.
En Asterisk, puedes usar este fichero para enviar comandos ADSI a telfonos
compatibles con esta tecnologa.
Hay que tener en cuenta que el telfono debe estar conectado a un canal Zap/Dahdi.
429
Los mensajes ADSI no se envan a travs de una conexin VoIP a un telfono
analgico remoto.
telcordia-1.adsi
;
; Asterisk default ADSI script
;
;
; Begin with the preamble requirements
;
DESCRIPTION "Telcordia Demo" ; Name of vendor
VERSION 0x02 ; Version of stuff
;SECURITY "_AST" ; Security code
SECURITY 0x0000 ; Security code
FDN 0x0000000f ; Descriptor number
;
; Predefined strings
;
DISPLAY "talkingto" IS "Talking To" "$Call1p" WRAP
DISPLAY "titles" IS "20th Century IQ Svc"
DISPLAY "newcall" IS "New Call From" "$Call1p" WRAP
DISPLAY "ringing" IS "Ringing"
;
; Begin state definitions
;
STATE "callup" ; Call is currently up
STATE "inactive" ; No active call
;
; Begin soft key definitions
;
KEY "CB_OH" IS "Block" OR "Call Block"
OFFHOOK
VOICEMODE
WAITDIALTONE
SENDDTMF "*60"
SUBSCRIPT "offHook"
ENDKEY
430
KEY "CB" IS "Block" OR "Call Block"
SENDDTMF "*60"
ENDKEY
;
; Begin main subroutine
;
SUB "main" IS
IFEVENT NEARANSWER THEN
CLEAR
SHOWDISPLAY "talkingto" AT 1
GOTO "stableCall"
ENDIF
IFEVENT OFFHOOK THEN
CLEAR
SHOWDISPLAY "titles" AT 1
SHOWKEYS "CB"
GOTO "offHook"
ENDIF
IFEVENT IDLE THEN
CLEAR
SHOWDISPLAY "titles" AT 1
SHOWKEYS "CB_OH"
ENDIF
IFEVENT CALLERID THEN
CLEAR
SHOWDISPLAY "newcall" AT 1
ENDIF
ENDSUB
SUB "offHook" IS
IFEVENT FARRING THEN
CLEAR
SHOWDISPLAY "ringing" AT 1
ENDIF
IFEVENT FARANSWER THEN
CLEAR
SHOWDISPLAY "talkingto" AT 1
GOTO "stableCall"
ENDIF
ENDSUB
SUB "stableCall" IS
ENDSUB
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:
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.
432
autologoff=15 ; si un agente no contesta una llamada dentro de 15 segundos ser
;automticamente desconectado.
autologoffunavail=yes ; si la extensin desde la cual el agente se conecta se vuelve no
;disponible, automticamente el agente ser desconectado.
endcall=yes ; un agente puede terminar una llamada hundiendo la tecla *.
musiconhold => default ; la clase de msica en espera que escuchar el agente cuando est
;conectado.
;Definimos un grupo para los agentes que vamos a configurar:
group=1
;La ultima parte es dedicada a la configuracin de los agentes siguiendo la sintaxis:
;agent => IDagente,contraseaagente,nombre
;Ponemos dos ejemplos:
agent => 2000,1234,Fulano
agent => 2001,2345,Sutano
;Para que un agente se pueda loguer tenemos que escribir estas lneas en el plan de llamadas
;(extensions.conf):
exten => _200[01],1,Agentlogin(${EXTEN})
exten => _200[01],n,Hangup
alarmreceiver.conf
[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
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.
[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:
amd.conf
[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
434
El contexto de directorios [directories]:
[directories]
astetcdir => /etc/asterisk ;Todos los archivos (*. conf) sern almacenados en el
;directorio anterior (/ etc / asterisk /).
astmoddir => /usr/lib/asterisk/modules ;Fichero donde se encuentran los mdulos de
;Asterisk.
astvarlibdir => /var/lib/asterisk ;Fichero de libreras ,en su interior se pueden encontrar
;los sonidos de Asterisk (*. GSM).
astdatadir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin ;Fichero donde estn los scripts agi.
astspooldir => /var/spool/asterisk ;Fichero donde se guardan los voicemail y las
;grabaciones de llamadas entre otras cosas.
astrundir => /var/run ;Fichero donde Asterisk almacena su archivo PID.
astlogdir => /var/log/asterisk ;Fichero que indica donde estn los archivos de log que
;se generan.
;[files]
;astctlpermissions = 0660
;astctlowner = root
;astctlgroup = apache
;astctl = asterisk.ctl
[options]
languageprefix = yes ; Use the new sound prefix path syntax
;verbose = 3
;debug = 3
;alwaysfork = yes ; same as -F at startup
;nofork = yes ; same as -f at startup
;quiet = yes ; same as -q at startup
;timestamp = yes ; same as -T at startup
;execincludes = yes ; support #exec in config files
;console = yes ; Run as console (same as -c at startup)
;highpriority = yes ; Run realtime priority (same as -p at startup)
;initcrypto = yes ; Initialize crypto keys (same as -i at startup)
;nocolor = yes ; Disable console colors
;dontwarn = yes ; Disable some warnings
;dumpcore = yes ; Dump core on crash (same as -g at startup)
;internal_timing = yes
;systemname = my_system_name ; prefix uniqueid with a system name for global
;uniqueness issues
;maxcalls = 10 ; Maximum amount of calls allowed
;maxload = 0.9 ;Asterisk stops accepting new calls if the load average exceed this
;limit
;cache_record_files = yes ;Cache recorded sound files to another directory during
;recording
;record_cache_dir = /tmp ; Specify cache directory (used in cnjunction with
;cache_record_files)
;transmit_silence_during_record = yes ; Transmit SLINEAR silence while a channel is
;being recorded
435
;transmit_silence = yes ; Transmit SLINEAR silence while a channel is being recorded
;or DTMF is being generated
;transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of directly
;runuser = asterisk ; The user to run as
;rungroup = asterisk ; The group to run as
;dahdichanname = yes ; Channels created by chan_dahdi will be called 'DAHDI',
;otherwise 'Zap'
chan_dahdi.conf
[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
Event: Cdr
AccountCode:
Source:
Destination:
DestinationContext:
CallerID:
Channel:
DestinationChannel:
LastApplication:
LastData:
StartTime:
AnswerTime:
EndTime:
Duration:
BillableSeconds:
Disposition:
AMAFlags:
UniqueID:
UserField:
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.
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.
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
[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
[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
El fichero de ejemplo de enum.conf es:
[general]
search => e164.arpa
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
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
features.conf
[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
[general]
host=localhost
port=1314
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\N
followme.conf
443
hacer la llamada tendremos que utilizar proveedores VoIP o la lnea de telefona
tradicional (PSTN).
[general]
featuredigittimeout=>5000 ; numero de milisegundos que tiene el llamado para aceptar o
; rechazar la llamada .
takecall=>1 ; para aceptar la llamada, el llamado, despus de descolgar, tendr que hundir la
; tecla 1 del telfono.
declinecall=>2 ; para rechazarla la tecla 2 .
call-from-prompt=>followme/call-from ; esta es la voz predefinida que escuchar el llamado
; anuncindole quien lo est llamando
norecording-prompt=>followme/no-recording ; la voz predefinida si el llamante no ha
; registrado el propio nombre o si la opcin
; para registrarlo no ha sido activada .
;options-prompt=>followme/options ; esta voz anunciar al llamado que tendr que pulsar 1
; para aceptar la llamada y dos para rechazarla.
pls-hold-prompt=>followme/pls-hold-while-try ; El llamante escuchar esta voz que le dir
;que espere mientras se intentar localizar el llamado .
status-prompt=>followme/status ; Esta voz anunciar al llamante que la persona llamada no
;se encuentra en ese momento en su oficina/casa/etc.
sorry-prompt=>followme/sorry ; si al final de todos los desvos nadie contestar la llamada,
; esta voz anunciar al llamante que no se ha podido localizar
; la persona buscada.
;Ahora empieza la configuracin especfica de cada extensin. En este ejemplo definiremos a
; que nmeros llamaremos si la extensin 1000 no contesta.
[1000] ; numero de la extensin que queremos configurar.
musicclass=>default ; tipo de msica en espera que escuchar el llamante mientras se
; intentar localizar el destinatario de la llamada.
context=>default ; el contexto que usar la aplicacin followme para localizar el llamado. Si
; hemos incluido (como veremos ms abajo) nmeros fijos y moviles este
; contexto tiene que tener acceso a las llamadas externas.
number=>1100,15 ; Aqu empieza la lista de nmeros que se intentar llamar para localizar el
; destinatario de la llamada. En este ejemplo si el destinatario no contesta a
; la extensin 1000 llamaremos como segunda opcin la extensin 1100 en
; 15 segundos.
number=> 945000000,15;si a la extensin 1100 nadie contesta intentaremos llamar el nmero
; fijo que aparece en esta lnea en otros 15 segundos.
takecall=>1 ; ahora sigue los mismo parmetros que hemos visto en la parte general. Por si
; queremos personalizarlos para esta extension.
declinecall=>2
call-from-prompt=>followme/call-from
followme-norecording-prompt=>followme/no-recording
followme-options-prompt=>followme/options
followme-pls-hold-prompt=>followme/pls-hold-while-try
followme-status-prompt=>followme/status
followme-sorry-prompt=>followme/sorry
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.
444
; ODBC_SQL - Allow an SQL statement to be built entirely in the dialplan
[SQL]
dsn=mysql1
read=${ARG1}
; ODBC_ANTIGF - A blacklist.
[ANTIGF]
dsn=mysql1
read=SELECT COUNT(*) FROM exgirlfriends WHERE callerid='${SQL_ESC(${ARG1})}'
; ODBC_PRESENCE - Retrieve and update presence
[PRESENCE]
dsn=mysql1
read=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
write=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE
id='${SQL_ESC(${ARG1})} ;prefix=OFFICE ; Changes this function from
ODBC_PRESENCE to OFFICE_PRESENCE
;escapecommas=no ; Normally, commas within a field are escaped such that each
;field may be separated into individual variables with ARRAY.
;This option turns that behavior off [default=yes].
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
[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
446
frecuencias utilizadas para generar esos sonidos.
Por defecto Asterisk utiliza los tonos comunes de Estados Unidos.
Como ejemplo aqu tenemos los tonos de Espaa y los de Estados Unidos:
[general]
country=es ; default location
[es]
description = Spain
ringcadence = 1500,3000
dial = 425
busy = 425/200,0/200
ring = 425/1500,0/3000
congestion = 425/200,0/200,425/200,0/200,425/200,0/600
callwaiting = 425/175,0/175,425/175,0/3500
dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
record = 1400/500,0/15000
info = 950/330,0/1000
dialout = 500
[us]
description = United States / North America
ringcadence = 2000,4000
dial = 350+440
busy = 480+620/500,0/500
ring = 440+480/2000,0/4000
congestion = 480+620/250,0/25
callwaiting = 440/300,0/10000
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!
350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
jabber.conf
[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
[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
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.
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
[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
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.
musiconhold.conf
osp.conf
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
[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
[general]
maxretries = 2
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
451
determinar la forma de conectarse a la base de datos.
res_snmp.conf
rpt.conf
rtp.conf
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:
[general]
rtpstart = 10000
rtpend = 20000
rtpchecksums = no ;Control de las cuentas RTP
452
say.conf
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
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.
[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.
[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.
[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
[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
skipms=3000 ; cuando escuchamos los mensaje de voz, si esta configurado,
; podemos usar el teclado para adelantar o atrasar el mensaje
; mismo. Por ejemplo: hundiendo el numero 8 nos
; adelantamos 3000 milisegundos, es decir 3 segundos, con el 9
; nos devolvemos de 3 segundos.
maxsilence=10 ; si mientras se graba un mensaje de voz hay un silencio de 10
; segundos, la llamada se termina y tambin la grabacin.
silencethreshold=128 ; este numero representa el nivel de audio y sirve para
; definir que se considera silencio. Ms bajo el numero,
; ms sensible al ruido.
maxlogins=3 ; numero mximo de veces que nos podemos equivocar
; insertando la contrasea para entrar a nuestra buzon de voz .
moveheard=yes ; Una vez escuchados los mensajes de voz podemos pasarlos
; a la carpeta OLD (viejos) automticamente sino tenemos
; que hacerlo desde el men del contestador.
userscontext=default ; el contexto predefinido para los usuarios de las
; casillas de voz .
;externnotify=/usr/bin/myapp ; si cada vez que recibimos un mensaje de
; voz queremos arrancar un programa tenemos que
; configurarlo aqu.
;smdienable=yes ; esto es para configurar SMDI (Simple Message Desk
; Interface).
;smdiport=/dev/ttyS0
;externpass=/usr/bin/myapp ; Si queremos que un programa arranque cada
; vez que cambiamos la contrasea de nuestro
; buzon de voz tenemos que configurarlo aqu.
;externpassnotify=/usr/bin/myapp ; si externpass est configurado
; queremos que la contrasea se actualice tambin
; en voicemail.conf tenemos que configurar este
; parmetro.
directoryintro=dir-intro ; el mensaje de introduccin de la aplicacin
; directory (para buscar las extensiones en la
; centralita).
charset=ISO-8859-1 ; el estndar ISO para los mensajes de texto que
; se enviaran para notificar la llegada de un nuevo
; mensaje de voz.
pbxskip=yes ; quitar la abreviacin [PBX] en el remitente del mensaje .
fromstring=David ; el nombre que aparecer como remitente del correo
; electrnico.
usedirectory=yes ; Los mensajes de voz que recibimos podemos reenviarlos a
; otro usuario/extension del servidor Asterisk. Tambin
; podemos dejar directamente mensajes de voz en
; determinados buzones. Esta opcin permite buscar en el
; directorio la persona a la que queremos dejar o reenviar el
; correo de voz.
;odbcstorage=asterisk ;podemos guardar los mensajes de voz en un base de
; datos usando el driver ODBC. Aqu es donde hay que
; configurar esta opcin.
;odbctable=voicemessages; el nombre de la tabla de la base de datos donde
; guardar los mensajes de voz
; Change the from, body and/or subject, variables:
; VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID,
;VM_CIDNUM, VM_CIDNAME, VM_DATE
;Todo el bloque de arriba son las variables y el texto del correo electrnico que
; enviaremos para notificar la llegada de un nuevo mensaje de voz. Lo
; podemos modificar y adaptarlo a nuestras exigencias.
456
pagerfromstring= ; si enviamos un aviso tambin a un Pager esta lnea define
; el remitente del mensaje.
pagersubject=Nuevo VM ; el objeto del mensaje al Pager.
pagerbody=Nuevo mensaje de ${VM_DUR} de duracin en la casilla
${VM_MAILBOX}\nde ;${VM_CALLERID}, en ${VM_DATE} ; el cuerpo del
; mensaje.
mailcmd=/usr/sbin/sendmail -t ; sendmail es el programa predefinido para
; enviar los correos electrnicos.
; Si en lugar ODBC queremos usar el protocolo IMAP para guardar nuestros
; mensajes de voz, aqu va indicada la ;configuracin.
;imapgreetings=no; para guardar el mensaje de bienvenida en la carpeta de
; IMAP. Igual a no si no usamos IMAP .
;greetingsfolder=INBOX ; Si imapgreetings es igual a yes aqu es donde
; definimos la carpeta donde guardar el mensaje audio de bienvenida .
;imapparentfolder=INBOX ; si queremos crear una carpeta dentro de la
; carpeta INBOX para cada buzon de voz.
tz=central ; huso horario predefinido para indicar la fecha y la hora del correo
; de voz recibido.
attach=yes; Si es igual a yes el mensaje de voz se anexar al correo
; electrnico de notifica.
attachfmt=wav El formato audio con que se enviar el mensaje audio anexo
; al correo electrnico.
saycid=yes; Si es igual a yes antes de escuchar el correo de voz se escuchar
el identificativo (numero de telfono o extensin) de quien lo dej.
sayduration=no; Anunciar o no la duracin del correo de voz
saydurationm=2; Definir la duracin mnima del correo de voz para que sea
; anunciada (en minutos).
dialout=phones; Contexto de utilizar para efectuar llamadas desde el men
; del contestador [opcin 4 del men avanzado].
sendvoicemail=yes ; permitir o no de enviar un correo de voz a otra
; extensin [opcin 5 del men avanzado].
; callback=fromvm; Contexto para llamar desde el men del buzn de voz al
; remitente de un mensaje de voz.
; exitcontext=fromvm ; Contexto donde enviar el usuario si mientras
; usa los men del buzon oprime el tecla * o 0.
review=yes; Si es igual a yes permite a quien est dejando un correo de voz
; de escucharlo antes de enviarlo.
; operator=yes; permite a quien llama de presionar 0
; antes/despus/mientras est dejando un correo de voz para buscar una
; operadora.
; envelope=no ; antes de reproducir el mensaje audio, reproduce los datos
; del mensaje.
; delete=yes; Si es igual a yes y activado una vez que se notifique la llegada de
; un correo de voz, ste se borrar del servidor.
; volgain=0.0; si el correo de voz se grab con un volumen muy bajo con esta
; opcin podemos mejorar su calidad. Para que se pueda utilizar debemos
; tener instalado sox.
; nextaftercmd=yes; ir al correo de voz que sigue si presionamos las teclas 7
; o 9 (borrar/ guardar el mensaje corriente).
forcename=yes; Obligar a cada usuario con buzon de voz a grabar su
; nombre la primera vez que accede. Un usuario se considerar nuevo si su
; contrasea coincide con el numero de su extensin.
forcegreetings=no; parecido al de arriba. Obliga al nuevo usuario a grabar un
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
ANEXO E: Instalacin de CentOs 5
** 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.
460
Seleccionamos nuestra zona horaria y colocamos nuestra contrasea de root.
Ahora pasamos a la configuracin de paquetes que vamos a instalar.
Pulsamos en personalizar ahora y en Siguiente.
461
Opciones a aadir adems de las que ya estn seleccionadas por defecto.
Seleccionamos Servidor de Nombres (DNS), Servidor Web, Servidor de Correo y Base
de Datos MySQL en la opcin de Servidores.
En Desarrollo seleccionamos Bibliotecas de Desarrollo y Herramientas de Desarrollo.
En Sistema Base seleccionamos Herramientas del Sistema y pulsamos Paquetes
Opcionales.
Aqu agregamos mc si queremos tener un gestor de archivos en consola al estilo
Norton Conmmander, y podemos continuar pulsando siguiente.
462
Esperamos mientras se instala.
Proceso de post-instalacin (si seleccionamos el Gnome/KDE Desktop y si
elegimos server habr que desactivarlo manualmente tras la instalacin).
Desactivamos el firewall.
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.
yum y update
465
ANEXO E: Gua de Google Calendar
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
Si pulsamos el botn Crear evento , aparecer de inmediato la imagen
siguiente, que es donde se crea un evento de forma detallada.
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
Clic en Aceptar.
Para poder recibir recordatorios de evento en forma de mensaje de texto hay que
seguir los pasos siguientes:
470
Rellenar el formulario:
o Seleccionar el Pas.
471
ANEXO F: Manual de Usuario de FOP 2
Inicio de Sesin
http://IPservidor/fop2
Si todo est en su lugar y el servidor fop2 se est ejecutando, aparecer este cuadro:
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
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.
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.
Dial
(Requiere el permiso: dial)
Transfer
(Requiere el permiso: transfer)
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)
Listen
(Requiere el permiso: spy)
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)
Record
(Requiere el permiso: record)
La caja de llamada
474
Llamar a un nmero de telfono: basta con escribir el nmero y pulsar ENTER, su
telfono sonar y se originar una llamada a ese nmero.
Llamada de lnea directa VOIP: Usted puede escribir una direccin SIP con este
formato: SIP / $ (exten) @ $ (dominio) y se originar una llamada a la extensin SIP @
servidor.
Cuadro de presencia
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).
475
Extensiones
1. Icono de Presencia:
2. Botn de etiqueta:
3. Icono de Informacin:
4. Icono de voicemail:
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
7. Linea de temporizador
Visual Phonebook
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
El icono de estado de los miembros de la cola puede ser:
Conferencias
sms_send.php
#!/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
// Cambiar por el directorio de instalacin
$sms_tool_path="/usr/src/SMSGoogle";
// Opciones de depuracion:
// Si tienes problemas revisa el archivo de log
$parm_error_log = '/usr/src/SMSGoogle/wakeup.log';
// Obtenemos el Caller ID
$callerid = $agi_callerid;
// Mandamos el mensaje usando el API de Google
$msg="'Asterisk: Tiene una llamada perdida de: $callerid'";
$cmd = "$sms_tool_path/enviaSMS.sh $usr $pwd $min $dur $msg &";
$p = popen($cmd, 'r');
if ($parm_debug_on)
{
$stdlog = fopen( $parm_error_log, 'w' );
fputs( $stdlog, "UserName=".$usr."\n");
fputs( $stdlog, "Password=".$pwd."\n");
fputs( $stdlog, "Minutos despues de la hora actual en la que empieza el
evento=".$min."\n");
fputs( $stdlog, "Duracion del Evento=".$dur."\n");
480
fputs( $stdlog, "Mensaje enviado: ".$msg."\n");
fputs( $stdlog, "Enviado: ".$p );
}
?>
enviaSMS.sh
#!/bin/sh
SMS_HOME=/usr/src/SMSGoogle
CLASSPATH=$SMS_HOME/lib/activation.jar:$SMS_HOME/lib/gdata-calendar-
1.0.jar:$SMS_HOME/lib/gdata-client-1.0.jar:$SMS_HOME/lib/mail.jar:$SMS_HOME
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;
try {
481
URL feedUrl = new URL("http://www.google.com/calendar/feeds/" + userName +
"/private/full");
// Creamos el evento
EventEntry myEntry = new EventEntry();
myEntry.setTitle(new PlainTextConstruct(sms));
cal.add(Calendar.MINUTE, dur);
DateTime endTime = new DateTime(cal.getTime(), tz); //11m
extensions.conf
[general]
static=yes
writeprotect=yes
clearglobalvars=no
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
exten => 1000,1,Goto(acceso,${EXTEN},1)
exten => 1001,1,Goto(acceso,${EXTEN},1)
exten => 1002,1,Goto(acceso,${EXTEN},1)
exten => 1003,1,Goto(acceso,${EXTEN},1)
exten => 1004,1,Goto(acceso,${EXTEN},1)
exten => 1005,1,Goto(acceso,${EXTEN},1)
exten => 1006,1,Goto(acceso,${EXTEN},1)
exten => 2000,1,Goto(acceso,${EXTEN},1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;PRUEBAS CHAN_SEBI;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[chansebi]
include => acceso
; Incomming SMS
exten => sms,1,NoOp(Incoming SMS from ${SMSSRC})
exten => sms,n,System(/usr/src/recvSMS.sh "${SMSSRC}" "${SMSTXT}")
exten => sms,n,Hangup
;Envio SMS
exten => 1111,1,NoOp(Envio de Sms)
exten => 1111,n,SebiSendSMS(huawei1,650664616,"sms prueba")
exten => 1111,n,Hangup
[macro-general]
;1)COMPROBACION CON EL CALENDARIO
484
exten => s,1,Answer
exten => s,n,Set(SALTO=${ARG1})
exten => s,n,AGI(${ARG2})
exten => s,n,Goto(${SALTO},${ARG3},1)
[recepcion]
exten => 902147424,1,Set(NUM=${EXTEN})
exten => 902147424,n,Macro(general,recepcionlaboral,${CALR},${NUM})
[comercial]
exten => 902147424,1,Set(NUM=${EXTEN})
exten => 902147424,n,Macro(general,comerciallaboral,${CALC},${NUM})
[soporte]
exten => 902147423,1,Set(NUM=${EXTEN})
exten => 902147423,n,Macro(general,soportelaboral,${CALS},${NUM})
[twister]
[macro-laboral]
[recepcionlaboral]
exten => 902147424,1,Macro(laboral,${QR})
[comerciallaboral]
exten => 902147424,1,Macro(laboral,${QC})
[soportelaboral]
exten => 902147423,1,Macro(laboral,${QS})
[twisterlaboral]
exten => 945003903,1,Macro(laboral,${QT})
485
[macro-nodisponible]
[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;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;VERBIO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;VOICEMAIL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;RECEPCION;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;COMERCIALES;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;
;;;;SOPORTE;;
;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;
;;;;TWISTER;;
;;;;;;;;;;;;;;;;;;;;
487
exten => 3002,1,Macro(acceso,${EXTEN})
exten => 3003,1,Macro(acceso,${EXTEN})
exten => 3004,1,Macro(acceso,${EXTEN})
exten => 3005,1,Macro(acceso,${EXTEN})
exten => 3006,1,Macro(acceso,${EXTEN})
exten => 3007,1,Macro(acceso,${EXTEN})
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;DIRECTOR Y CONTABLE;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;Usuario Remoto;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Para permitir agregarnos/eliminarnos a/de cualquier cola :
;;;;;;;;;;COLAS:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--->0: Recepcion
;--->1: Comercial
;--->2: Soporte
;--->3: Twister
;Para agregar: exten+0+numCola
;Para eliminar: exten+1+numCola
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
488
exten => _XXXX13,1,RemoveQueueMember(${QT}|SIP/${EXTEN:0:4})
exten => _XXXX13,n,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;CALLBACK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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)
;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
;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)
[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
492
exten => 8090,n(si2),VerbioPrompt(Gracias.)
exten => 8090,n,Hangup
exten => 8090,n,VerbioFreeChannel()
exten => 8090,n(no),VerbioPrompt(Repita por favor.)
exten => 8090,n,Goto(8090,1)
exten => 8090,n(no2),VerbioPrompt(Repita por favor.)
exten => 8090,n,Goto(8090,1)
exten => 8091,1,VerbioFreeChannel()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;Ultimas llamadas recibidas;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
494
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 tampoco este numero.Lo sentimos.)
exten => 75,n,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;DISA;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;1)
;;;;;;;;;;DESCRIPCION:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;sI LLAMO DESDE MI MOVIL COMPRUEBA QUE ES MI NUMERO Y ;;
;GENERA UN CALL FILE , ESTE ME LLAMA Y ME DA TONO PARA;;
;QUE YO LLAME A TRAVES DE LA CENTRALITA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;2)
;;;;;;;;;;DESCRIPCION:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;AL MARCAR LA EXTENSION 333 DEBE LLAMARME AL MOVIL Y DARME TONO PARA
;PODER LLMAR A TRAVES DE LA CENTRALITA;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
495
exten => 333,n,System(echo Maxretries:2 >> /tmp/disa)
exten => 333,n,System(echo RetryTime:300 >> /tmp/disa)
exten => 333,n,System(echo Account:2000 >> /tmp/disa)
exten => 333,n,System(echo Application:Disa >> /tmp/disa)
exten => 333,n,System(echo Data:1234 >> /tmp/disa)
exten => 333,n,Wait(1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Uso de DISA: LLAMAR 9999,MARCAR 1234#,SEGUN DE TONO MARCAR CUALQUIER
;EXTENSION DEL CONTEXTO ACCESO;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;DESVIO DE LLAMADAS AL EXTERIOR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[callfwd-add]
exten => s,1,Answer()
exten => s,n,Set(NUM=${CALLERID(num)})
exten => s,n,Set(COUNT=1)
exten => s,n(inicio),Playback(please-enter-the&telephone-number&for&your&call-
forwarding&astcc-followed-by-the-pound-key)
; digitar el numero al cual queremos desviar todas las llamadas
exten => s,n,Read(forw,,15,,2,10)
exten => s,n,Playback(call-forwarding) : La voz de asterisk dir que el desvo de la
;llamada ha sido configurado para el numero
exten => s,n,Playback(has-been-set-to)
exten => s,n,SayDigits(${forw})
exten => s,n,Playback(if-this-is-correct-press&digits/1&if-this-is-not-correct&digits/2) ;
;Si el numero que escuchamos es exacto presionamos 1 sino 2
exten => s,n,Read(sino,,1,,,5)
exten => s,n,GotoIf($["${sino}" = "1"]?setf:conta)
exten => s,n(conta),Set(COUNT=$[${COUNT} + 1])
exten => s,n,Gotoif($["${COUNT}" < "4"]?inicio:bye) ; si la variable COUNT es menor
;que 4 vamos a etiqueta inicio sino a la etiqueta bye. Esto sirve para permitir tres
;intentos de configuracin antes de colgar la llamada.
exten => s,n(setf),Set(DB(${NUM}/FORW)=${forw}) ; etiqueta setf, guardamos en
;numero en la base de datos interna de Asterisk
496
exten => s,n,Wait(1)
exten => s,n(bye),Playback(goodbye)
exten => s,n,Hangup
[callfwd-remove]
exten => s,1,Answer
exten => s,n,Set(NUM=${CALLERID(num)})
exten => s,n,Wait(1)
exten => s,n,Set(forw=${DB_DELETE(${NUM}/FORW)})
exten => s,n,Playback(call-fwd-cancelled)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;SKYPE FOR ASTERISK;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;CISCO 7941;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cisco]
include => acceso
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
502
CDR: Call Detail Record
503
STUN: Simple Transversal of UDP through NATs
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>
Instalacion y configuracion de Asterisk:
<http://www.asterisk.org/>
<http://www.asteriskclub.org/>
<http://www.loligo.com/asterisk/example-configs.2003-04-24/>
<http://www.asteriskguru.com>
<http://www.voztovoice.org/?q=node/199>
Preparacin del servidor:
<http://zeuz-dc.blogspot.com/2008/06/servidor-dhcp.html>
<http://www.davidstclair.co.uk/node/18>
<http://r3xet.blogspot.com/2008/11/instalar-mysql-5-sobre-linux-centos-5.html>
<http://cjaraba.blogspot.com/2008/03/instalar-apache-y-tomcat-en-centos.html>
<http://foro.portalhacker.net/index.php/topic,10896.0.html>
<http://www.aoddy.com/2007/12/12/how-to-install-phpmyadmin-2113-on-centos-5/>
<http://spot-myblog.blogspot.com/2009/09/glibc-svn-and-qt.html>
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-asterisk-
usando-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-analogico-
iid-14097216>
<http://www.ciao.es/Cisco_IP_Phone_7941__1114209>
506