Академический Документы
Профессиональный Документы
Культура Документы
Captulo Bsico #1
Introduccin a Asterisk
Uso actual
Versiones de Asterisk
Versin
Tipo
Fecha de
lanzamiento
Actualizaciones de
seguridad
Fin de vida
1.4.X
LTS
Dic 2006
Abr 2011
Abr 2013
1.6.2.X
Estndar
Dic 2009
Abr 2011
Abr 2012
1.8.X
LTS
Oct 2010
Oct 2014
Oct 2015
10.X
Estndar
Dic 2011
Dic 2012
Dic 2013
11.X
LTS
Oct 2012
Oct 2016
Oct 2017
12.X
Estndar
Oct 2013
Oct 2014
Oct 2015
Introduccin a Asterisk
Estndares
Introduccin a Asterisk
Diferencias (2)
Introduccin a Asterisk
Escenarios de uso
PBX tradicional
PBX IP
PBX hbrido
Pasarela (Gateway) VoIP
Aumento de funcionalidades
Call center
Plataforma para carriers
Introduccin a Asterisk
PBX tradicional
PBX VoIP
Introduccin a Asterisk
PBX hbrido
Introduccin a Asterisk
10
Introduccin a Asterisk
12
Pasarela VoIP
Introduccin a Asterisk
11
Aumento de
funcionalidades
Qu es lo que SI es
Asterisk?
Es un SIP registrar
Entidad SIP que mantiene el registro de diferentes
usuarios y de su ubicacin
13
Introduccin a Asterisk
14
Qu es lo que NO es
Asterisk?
B2BUA vs Proxy
No es un SIP proxy
Proxy
Llamada
No es un sistema plug-and-play
Llamada 1
Llamada 2
Introduccin a Asterisk
15
Introduccin a Asterisk
16
Requisitos de hardware
Lo ms importante es la estabilidad
17
Requisitos de software
18
DAHDI
Para la interaccin con tarjetas (Digium, Sangoma,
Openvox, etc), Asterisk requiere de las libreras de DAHDI
Introduccin a Asterisk
19
Introduccin a Asterisk
20
DAHDI (2)
DAHDI tiene su propia lista de dependencias
21
Instalando Asterisk
Introduccin a Asterisk
22
Compilando Asterisk
La ltima versin de Asterisk est disponible desde
http://asterisk.org
Tenemos 2 alternativas:
Instalar desde RPMs o DEBs (fcil)
Compilar desde cdigo fuente (difcil)
23
Introduccin a Asterisk
24
Compilando Asterisk
: Revisar dependencias
: Escoger las opciones a compilar
: Compilar cdigo fuente
: Copiar a las carpetas necesarias
: Crear scripts de autoarranque
: Crear ejemplos de configuracin
25
Iniciando Asterisk
Introduccin a Asterisk
26
asterisk vvvc
La v significa verbosidad (ms detalle)
Introduccin a Asterisk
27
Introduccin a Asterisk
28
Deteniendo Asterisk
Reiniciando Asterisk
/etc/init.d/asterisk stop
/etc/init.d/asterisk restart
*CLI> core restart now
Introduccin a Asterisk
29
Introduccin a Asterisk
30
Configurando Asterisk
Prctica 1.1
Introduccin a Asterisk
32
Archivos de configuracin
asterisk.conf
Archivo
Funcin
asterisk.conf
Introduccin a Asterisk
33
sip.conf
Introduccin a Asterisk
34
iax.conf
2 tipos de configuraciones
35
Introduccin a Asterisk
36
chan_dahdi.conf
extensions.conf
Aqu se define el plan de llamadas
37
Introduccin a Asterisk
En resumen
Asterisk fue escrito por Mark Spencer
Captulo Bsico #2
Configuracin de Asterisk
No es un proxy, es un B2BUA
Acta como un telfono y un servidor al mismo tiempo
39
38
Introduccin
Estructura base:
[contexto]
campo1=valor1
campo2=valor2
Configuracin de Asterisk
41
Comentarios
Configuracin de Asterisk
42
Ejemplo de sintaxis
Archivo res_mysql.conf
Ejemplo
;--- Todo esto
es un
comentario ---;
Configuracin de Asterisk
43
Configuracin de Asterisk
44
Inclusin de archivos
Ejemplo:
Sintaxis:
#exec /bin/database_config.sh
#include mi_otro_archivo.conf
Ejemplo:
sip.conf
[general]
#include sip_general_custom.conf
#include sip_general_additional.conf
45
Configuracin de Asterisk
46
Contextos
Son secciones que identifican un grupo de campos
47
Configuracin de Asterisk
48
Dejando en claro la
diferencia
sip.conf
49
Configuracin de Asterisk
sip.conf (2)
Campos bsicos
Valores
posibles
Funcin
type
user,
peer
o friend
host
<direccin IP>
o dynamic
context
<nombre del
contexto>
secret
<contrasea>
Campo
50
type
host
context
El nombre del usuario es lo que aparece como el [encabezado]
51
Configuracin de Asterisk
52
Algunos campos
adicionales
Valores posibles
allow /
disallow
<cdec>
language
<cdigo de idioma>
dtmfmode
auto, inband,
rfc2833
mailbox
<buzn>@
<contexto>
permit
/deny
<Direccin IP>
/<Mscara>
Bsico
Avanzado
Seguro
[usuario1]
context=agentes
type=friend
host=dynamic
[usuario2]
context=supervisor
type=peer
host=192.168.1.34
secret=abcde12345
dtmfmode=auto
disallow=all
allow=g729
language=es
mailbox=200@default
[usuario2]
context=supervisor
type=friend
host=dynamic
secret=JuK!23+c9
deny=0.0.0.0/0
permit=192.168.1.0/24
Funcin
Habilita o deshabilita el uso de ciertos
cdecs
Permite cambiar el lenguaje default de este
usuario
Determina como se enviarn los cdigos
DTMF
Hace que el telfono consulte el buzn de
voz por nuevos mensajes
Limita el registro a dispositivos cuya IP
coincida con la indicada aqu.
El orden de deny/permit es importante.
Para conocer todos los campos, consultar los comentarios del archivo
muestra sip.conf
Configuracin de Asterisk
53
Control de nombres
54
Configuracin de Asterisk
El usuario tiene ms
argumentos
configurados
Mtodo
Ejemplo
Extensiones
101
201
320
Personas/
Ubicaciones
jortiz
sala_juntas
Direcciones
MAC
00121419AEFF
Contraseas
tel-aJ13K74
Seguridad
Baja
fciles de adivinar
Difcil
Cambiar equipos sin cambiar
extensin
Fcil de
recordar
Muy Fcil
Dgitos simples
Difcil
Media
Alta
Difcil de adivinar
Mxima
55
Crear/cambiar
usuarios
Virtualmente
imposible de
adivinar
Sencillo
Nuevos dispositivos tienen
nuevas MAC
Sencillo
Es muy simple crear nuevas
entradas aleatoriamente
Muy Fcil
Nombres sencillos
Difcil
Muy difcil
Configuracin de Asterisk
56
Un poco ms de seguridad
Adicional al campo secret,
siempre que sea posible
debemos utilizar el permit
y deny.
Solo en aquellos usuarios
externos dinmicos no ser
posible aplicarlo
El orden es importante
Podemos usar
nomenclatura estndar
(/255.255.255.0) o
abreviada (/24)
Plantillas
Es posible crear plantillas
de usuarios
[juan]
type=friend
context=agentes
host=dynamic
deny=0.0.0.0/0
permit=192.168.5.1/24
[carrier]
type=peer
contect=from-trunk
host=201.194.200.9
deny=0.0.0.0/0.0.0.0
permit=201.194.200.9/255.255.255.255
Configuracin de Asterisk
57
[usuario](!)
type=friend
context=micontexto
host=dynamic
[local](usuario,!)
nat=no
deny=0.0.0.0/0
permit=10.1.1.2/24
[100](usuario)
secret=55tDyXID
[200](local)
secret=32nAc5Tt
Configuracin de Asterisk
[usuarios](!)
host=dynamic
type=friend
context=micontexto
deny=0.0.0.0/0
permit=192.168.1.0/24
[usuario1](usuarios)
secret=abcde12345
[usuario2](usuarios)
secret=fghij9876
[micarrier]
username=ccabrera
secret=$uYjOpa2!
context=from-trunk
type=peer
Prctica 2.1
Creacin de usuarios SIP y
configuracin de softphone
59
58
Plan de marcacin
Se define en el archivo extensions.conf
Contiene 3 secciones:
Prctica 2.2
[general]
[globals]
rea de contextos
Configurar un telfono IP
62
Ejemplo de extensiones
vlidas
Sintaxis
La sintaxis general del plan de llamadas es:
[contexto]
exten => <extensin>,<prioridad>,<aplicacin>
Configuracin de Asterisk
63
*1.6.2+
Notar el uso de
same => para
abreviar extensiones
Configuracin de Asterisk
64
Extensiones especiales
Extensin s (start)
GDL
MEX
Extensin Significado
Funcin
timeout
absolute
timeout
hangup
invalid
a,o
operator
start
Llamada hacia
SIP/GDL/101
Llamada hacia
SIP/GDL ?
101
65
101
Configuracin de Asterisk
Prioridades
66
Ejemplos de prioridades
Extensin escrita en desorden pero numerada
O bien:
exten => 100,1,Noop
same => n,Answer
same => n,Hangup
67
Configuracin de Asterisk
68
Prioridades (2)
Para diferenciar una prioridad de otra, la prioridad n
puede contener etiquetas:
Prctica 2.3
[default]
exten => 100,1,Answer
same => n,Wait(2)
same => n(bienvenida),Playback(welcome)
same => n,Hangup
69
Plan de llamadas
Patrones
No es posible definir todas las posibles extensiones
Usuarios SIP
micontexto
Dgitos entre 0 y 9
Dgitos entre 1 y 9
Dgitos entre 2 y 9
[x-y]
.
71
Configuracin de Asterisk
72
Ejemplos
Patrn
_0133ZXXXXXXX
_0181ZXXXXXXX
_0155ZXXXXXXX
_01NXXZXXXXXX
_01900XXXXXXX
_ZXXXXXXX
_ZXXXXX00
_0[347]0
_9.
_1XZ
Patrones (3)
En caso de que ms de un patrn coincida, Asterisk los
ordena del ms especfico al ms general:
1.
2.
3.
4.
5.
6.
73
Configuracin de Asterisk
74
Variables
Mismo concepto que en un lenguaje de programacin
[largadistancia]
exten => _01ZXXXXXXXXX,1,Noop(Llamada de LD)
same => n,Dial(SIP/carrier/${EXTEN})
75
Globales
De canal (definidas por el usuario o pre-definidas)
De entorno
Heredadas
76
Variables globales
Variables de canal
[globals]
celular=0445512345678
[micontexto]
exten => 911,1,Dial(DAHDI/g0/${celular})
${CONTEXT}:
el contexto actual
${EXTEN}:
la extensin actual (marcada)
${PRIORITY}: la prioridad de procesamiento actual
${DIALSTATUS}: el estado del ltimo comando Dial ejecutado
77
Configuracin de Asterisk
Variables de entorno
78
Variables heredadas
Heredadas
Heredadas indefinidamente
Ejemplo:
exten => 123,1,Noop(El path de Linux es ${ENV(PATH)})
[micontexto]
exten => 100,1,Set(VAR1=1)
same => n,Set(_VAR2=2)
same => n,Set(__VAR3=3)
same => n,Noop(Var1 es ${VAR1}, Var2 es ${VAR2}, Var3 es ${VAR3})
same => n,Dial(Local/nivel1@micontexto)
exten => nivel1,1,Noop(Var1 es ${VAR1}, Var2 es ${VAR2}, Var3 es ${VAR3})
; Var1 dar vaco, Var2 dar 2 y Var3 dar 3
same => n,Dial(Local/nivel2@micontexto)
Configuracin de Asterisk
79
80
Manipulando variables
Se usa la sintaxis:
${<nombre variable>[:<offset>:[<cantidad>]]}
Ejemplo
${MIVAR}
= holamundo
= amundo
${MIVAR:3}
${MIVAR:-5}
= mundo
${MIVAR:3:2}
= am
Cmo nos quedaramos solo con 'hola'?
Prctica 2.4
Uso de patrones y variables
;015546144330
;525546144330
Configuracin de Asterisk
81
Contextos de extensin
Considerar cada contexto
como un grupo de
permisos nico
Reutilizar contextos
declarados previamente
Pueden incluirse contextos
dentro de otros
[nivel3]
Celulares
Notar lo siguiente:
[internas]
exten => _ZXXX,1,Dial(SIP/${EXTEN})
[locales]
include => internas
exten => _ZXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
[nivel2]
LDN
[largadistancia]
include => locales
exten => _01ZXXXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
exten => _ZXXXXXXX,1,Hangup
[nivel1]
Locales
Configuracin de Asterisk
83
Configuracin de Asterisk
84
Prioridades de ejecucin
Exten vs. Exten
Gana el que tenga el patrn de marcacin ms especfico
Sintaxis:
Ejemplo:
[micontexto]
include => gratis,21:00-23:59,mon-fri,*,*
include => gratis,*,sat-sun,*,*
85
Evaluador
Configuracin de Asterisk
86
Funciones
Permiten procesar valores o datos que normalmente
no estaran accesibles:
Operadores vlidos
87
Configuracin de Asterisk
88
Funciones (2)
Subrutinas
; 10
Set(CALLERID(num)=5544332211)
Noop(El valor es ${CALLERID(num)})
Configuracin de Asterisk
89
Configuracin de Asterisk
90
Subrutinas (2)
Cuando se invoca una subrutina, se pueden
proporcionar argumentos
[sub-llamada]
exten => s,1,Answer
same => n,Dial(${ARG1},20)
same => n,Voicemail(${ARG2})
same => n,Hangup
same => n,Return
[default]
exten => 100,1,Gosub(sub-llamada,s,1(SIP/chris,${EXTEN}))
exten => 110,1,Gosub(sub-llamada,s,1(SIP/juan,${EXTEN}))
exten => 120,1,Gosub(sub-llamada,s,1(SIP/carlos,${EXTEN}))
;
;
;
;
Configuracin de Asterisk
92
En resumen
Cada archivo en Asterisk tiene una labor especfica
Usuarios SIP en sip.conf
Plan de llamadas en extensions.conf
Prctica 2.5
Subrutinas e inclusiones
93
Plan de llamadas
Captulo Bsico #3
Arquitectura de Asterisk
Usuarios SIP
llamada
micontexto
internas
adicional
Configuracin de Asterisk
95
Antecedentes
Sistema de archivos
Los mdulos de
Asterisk se
configuran de
manera
independiente
Ubicacin
Configuracin /etc/asterisk
Mdulos /usr/lib/asterisk/modules
Alto nivel de
control
Logs /var/log/asterisk
AGIs /var/lib/asterisk/agi-bin
En el ncleo,
Asterisk solo es
un conmutador
Sonidos /var/lib/asterisk/sounds
Voicemail /var/spool/asterisk/voicemail
Grabaciones /var/spool/asterisk/monitor
Ajeno a cualquier
tecnologa
97
Ncleo de Asterisk
98
Arquitectura de Asterisk
Responsable de
Administrar mdulos
Carga de configuracin
Sincrona del sistema
Manejo de canales
Control del plan de
llamadas
Arquitectura de Asterisk
99
Arquitectura de Asterisk
100
Lista de mdulos
app_adsiprog.so
app_alarmreceiver.so
app_amd.so
app_authenticate.so
app_cdr.so
app_celgenuserevent.so
app_chanisavail.so
app_channelredirect.so
app_chanspy.so
app_confbridge.so
app_controlplayback.so
app_dahdiras.so
app_db.so
app_dial.so
app_dictate.so
app_directed_pickup.so
app_directory.so
app_disa.so
app_dumpchan.so
app_echo.so
app_exec.so
app_externalivr.so
app_festival.so
app_flash.so
app_followme.so
app_forkcdr.so
app_getcpeid.so
app_ices.so
app_image.so
app_macro.so
app_milliwatt.so
app_minivm.so
app_mixmonitor.so
app_morsecode.so
app_mp3.so
app_nbscat.so
app_originate.so
app_page.so
app_parkandannounce.so
app_playback.so
app_playtones.so
app_privacy.so
app_queue.so
app_readexten.so
app_read.so
app_record.so
app_sayunixtime.so
app_senddtmf.so
app_sendtext.so
app_sms.so
app_softhangup.so
app_speech_utils.so
app_stack.so
app_system.so
app_talkdetect.so
app_test.so
app_transfer.so
app_url.so
app_userevent.so
app_verbose.so
app_voicemail.so
app_waitforring.so
app_waitforsilence.so
app_waituntil.so
app_while.so
app_zapateller.so
bridge_builtin_features.so
bridge_multiplexed.so
bridge_simple.so
bridge_softmix.so
cdr_custom.so
cdr_manager.so
cdr_syslog.so
chan_agent.so
chan_bridge.so
chan_dahdi.so
chan_iax2.so
chan_local.so
chan_multicast_rtp.so
chan_sip.so
codec_adpcm.so
codec_alaw.so
codec_a_mu.so
codec_dahdi.so
codec_g722.so
codec_g726.so
codec_g729.so
codec_gsm.so
codec_ilbc.so
codec_lpc10.so
codec_resample.so
codec_ulaw.so
format_g719.so
format_g723.so
format_g726.so
format_g729.so
format_gsm.so
format_h263.so
format_h264.so
format_ilbc.so
format_jpeg.so
format_pcm.so
format_siren14.so
format_siren7.so
format_sln.so
format_vox.so
format_wav_gsm.so
format_wav.so
Mdulos: Canales
func_aes.so
func_audiohookinherit.so
func_base64.so
func_blacklist.so
func_callcompletion.so
func_callerid.so
func_cdr.so
func_channel.so
func_config.so
func_cut.so
func_db.so
func_devstate.so
func_dialgroup.so
func_dialplan.so
func_enum.so
func_env.so
func_extstate.so
func_frame_trace.so
func_global.so
func_groupcount.so
func_hangupcause.so
func_iconv.so
func_jitterbuffer.so
func_lock.so
func_logic.so
func_math.so
func_md5.so
func_module.so
func_pitchshift.so
func_presencestate.so
func_rand.so
func_realtime.so
func_sha1.so
func_shell.so
func_sprintf.so
func_srv.so
func_strings.so
func_sysinfo.so
func_timeout.so
func_uri.so
func_version.so
func_vmcount.so
func_volume.so
pbx_ael.so
pbx_config.so
pbx_loopback.so
pbx_realtime.so
pbx_spool.so
res_adsi.so
res_ael_share.so
res_agi.so
res_calendar.so
res_clialiases.so
res_clioriginate.so
res_config_sqlite3.so
res_convert.so
res_crypto.so
res_fax.so
res_format_attr_celt.so
res_format_attr_h263.so
res_format_attr_h264.so
res_format_attr_silk.so
res_limit.so
res_monitor.so
res_musiconhold.so
res_mutestream.so
res_realtime.so
res_rtp_multicast.so
res_security_log.so
res_smdi.so
res_speech.so
res_stun_monitor.so
Arquitectura de Asterisk
101
Arquitectura de Asterisk
Mdulos: Aplicaciones
102
Algunas aplicaciones:
Aplicacin
Accin
Ejecutadas sncronamente
103
Arquitectura de Asterisk
104
Mdulos: Recursos
Asterisk CLI
La interfaz humano-Asterisk
Bases de datos
Calendarios
Msica en espera
Monitoreo (grabacin)
Le permite al administrador:
Consultar el estado del sistema
Recargar o reiniciar el sistema
Actualizar valores en tiempo real
Desplegar ayuda
Hacer debug
105
Arquitectura de Asterisk
106
Arquitectura de Asterisk
108
Prctica 3.1
Prctica 3.2
Prctica 3.3
(opcional)
Captulo Bsico #4
Aplicaciones
Introduccin
Buzones de voz
Ms de 150+
Aplicaciones de Asterisk
voicemail.conf
114
Voicemail
Sintaxis:
Voicemail(<buzn>[@<contexto>],<opciones>)
Ejemplos:
[general]
; Aqu va la configuracin general de los buzones de voz
Voicemail(100,b)
Voicemail(201&202,u)
[default]
101 => 1234,Juan Prez,juan@dominio.com,,attach=yes
102 => 1234,Jorge Lpez,jorge@dominio.com,,attach=yes
Aplicaciones de Asterisk
115
Aplicaciones de Asterisk
116
VoicemailMain
VMAuthenticate
Autentica al usuario a partir de la contrasea de su buzn
Sintaxis:
VoicemailMain([buzn],[opciones])
VMAuthenticate([buzn][@contexto],[opciones])
Ejemplos:
Ejemplos:
VoicemailMain(100,s)
VMAuthenticate(101@default)
Aplicaciones de Asterisk
117
Aplicaciones de Asterisk
Ejemplos de uso
; voicemail.conf
[default]
101 => 1234,Juan Prez,juan@dominio.com,,attach=yes
Prctica 4.1
; extensions.conf
[sub-llamar]
exten => s,1,Dial(${ARG1},20)
same => s,n,Voicemail(${ARG2}@default)
same => s,n,Hangup
same => s,n,Return
[internas]
include => larga-distancia
exten => _*86,1,VoicemailMain()
exten => _1XX,1,Gosub(sub-llamar,s,1(SIP/${EXTEN},${EXTEN}))
[larga-distancia]
exten => _01ZXXXXXXXXX,1,VMAuthenticate(${CALLERID(num)}@default)
same => n,Dial(SIP/carrier/${EXTEN})
Aplicaciones de Asterisk
119
118
Playback
Sintaxis:
Playback(<archivo>,[opciones])
Ejemplo:
Playback(bienvenida)
Aplicaciones de Asterisk
121
Aplicaciones de Asterisk
Background
122
Read
Pide dgitos al usuario
Sintaxis:
Read(<var>,[archivo],[maxdigitos],[opciones],
[intentos],[timeout])
Sintaxis:
Background(<archivo>)
Ejemplo:
Ejemplo:
Read(pass,enter-account,4)
Background(digite-opciones)
Aplicaciones de Asterisk
123
Aplicaciones de Asterisk
124
Entendiendo la diferencia
SayDigits
Reproduce un nmero dgito por dgito
Nmeros de contrato
Nmeros de cuenta
Contraseas
Ejemplo:
SayDigits(123192)
Aplicaciones de Asterisk
125
Aplicaciones de Asterisk
126
SayNumber
Lee un nmero como una cantidad
Ejemplo:
Saynumber(123192)
Aplicaciones de Asterisk
127
Aplicaciones de Asterisk
128
Ejemplo
[from-pstn]
include => horario-habil,9:00-18:00,mon-fri,*,*
include => fuera-de-horario
Prctica 4.2
[horario-habil]
include => internas
exten => s,1,Background(bienvenida)
same => n(opciones),Background(digite-opcion)
same => n,Goto(opciones)
[fuera-de-horario]
exten => s,1,Playback(recordamos-horarios-operacion)
same => n,Hangup
Aplicaciones de Asterisk
129
Control de llamadas
Answer
Sintaxis:
Answer([milisegundos])
Ejemplo:
Answer(3000)
Aplicaciones de Asterisk
131
Aplicaciones de Asterisk
132
Wait
WaitExten
Funciona igual que Wait, pero el usuario puede
ingresar dgitos
Sintaxis:
Sintaxis:
Wait(<segundos>)
WaitExten(<segundos>,[opciones])
Ejemplo:
Ejemplo:
Wait(10)
WaitExten(3.5)
Aplicaciones de Asterisk
133
Aplicaciones de Asterisk
Comunicacin entre
usuarios
134
Dial
Sintaxis:
Dial(<tech/user>,[timeout],[opciones])
Ejemplo:
Dial(SIP/100,30,tT)
Dial(SIP/201&SIP/202,30,tT)
Aplicaciones de Asterisk
135
Aplicaciones de Asterisk
136
Meetme
Controles de flujo
Sintaxis:
MeetMe([conferencia][,opciones[,nip]])
Ejemplo:
Meetme(8500,d)
Meetme(8501,D,2198)
Aplicaciones de Asterisk
137
Aplicaciones de Asterisk
Goto
138
GotoIf
Sintaxis:
Sintaxis:
Goto([contexto],[extensin],<prioridad>)
GotoIf(<condicin>?<verdadero>:[falso])
Ejemplos:
Goto(opciones)
Goto(s,continua)
Goto(default,s,1)
Ejemplos:
GotoIf($[${var}>3]?s,1:default,123,1)
Aplicaciones de Asterisk
139
Aplicaciones de Asterisk
140
ExecIf
[from-pstn]
include => internas
exten => s,1,Answer(3000)
same => n,Playback(bienvenida)
same => n,Wait(1)
same => n(opciones),Background(digite-opcion)
same => n,WaitExten(4)
same => n,Goto(opciones)
exten => 1,1,Dial(SIP/100)
exten => 2,1,Dial(SIP/201&SIP/202)
Ejemplo:
ExecIf($[${var}>1]?Playback(hola):Playback(adios))
Aplicaciones de Asterisk
141
Aplicaciones de Asterisk
Prctica 4.3
Uso de funciones
142
Plan de llamadas
contador
Captulo Bsico #5
Conexin con la PSTN
usando DAHDI
Usuarios SIP
saldo
llamada
menu
micontexto
servicios
internas
adicional
Aplicaciones de Asterisk
145
Introduccin
Fabricantes
Los 3 principales
fabricantes del mercado:
Digium
Sangoma
Openvox
Al no usar protocolos
propietarios, la libre
competencia ha reducido
los costos del equipo
147
148
Tarjetas analgicas
Puertos analgicos
Son los ms comunes
149
Tarjetas digitales
150
Conexin fsica
151
152
Puertos digitales
Sincrona
Comparacin ISDN vs
R2MFC
Framing
Segn el tipo de enlace, hay diferentes tipos:
T1s (EUA y CAN)
D4 Super Frame
(obsoleto)
154
30 canales de voz
30 canales de voz
Usa CCS
Usa CAS
Obsoleto en Europa
Comn en Amrica Latina
155
156
Interconexin con
otros PBX
Qu es un DID?
157
Interaccin en software
OpenR2
/etc/asterisk/chan_dahdi.conf
DAHDI
/etc/dahdi/system.conf
Wanpipe
/etc/wanpipe/wanpipe1.conf
Tarjetas
Digium
158
/etc/dahdi/system.conf
Asterisk
Solo en caso que
usemos R2 MFC
Tarjetas
Sangoma
Interconexin por DAHDI
/etc/dahdi/modules
159
160
system.conf
system.conf (2)
span=<nmero>,<sincrona>,<atenuacin>,<framing>,<coding>
161
system.conf (3)
# R2 MFC
span=1,1,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101
dchan=16
162
/etc/asterisk/ chan_dahdi.conf
Aqu hacemos que Asterisk trabaje con los
canales de DAHDI instalados
163
164
chan_dahdi.conf
; ISDN PRI
signalling = pri_cpe
pridialplan=unknown
switchtype = euroisdn
context=from-pstn
group=0
channel => 1-15,17-31
signalling=fxs_ks
context=from-pstn
group=8
channel => 32-35
signalling=fxo_ks
context=from-internal
group=9
channel => 36
chan_dahdi.conf (2)
Para aplicar los cambios (se caern las llamadas):
; R2 modificado
signalling=mfcr2
mfcr2_variant=mx
mfcr2__ani_first=no
mfcr2_max_ani=10
mfcr2_max_dnis=4
mfcr2_category=national_subscriber
mfcr2_mfback_timeout=-1
mfcr2_metering_pulse_timeout=-1
mfcr2_forced_release=no
mfcr2_logdir=log
mfcr2_logging=all
exten
exten
exten
exten
exten
context=from-pstn
group=0
channel => 1-15,17-31
Interconexin por DAHDI
=>
=>
=>
=>
=>
_ZXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
_01ZXXXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
_04455ZXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
_045ZXXXXXXXXX,1,Dial(DAHDI/g0/${EXTEN})
_01900.,1,Congestion
165
166
Plan de llamadas
contador
Usuarios SIP
saldo
Prctica 5.1
llamada
menu
micontexto
internas
salida
adicional
entrada
PSTN
168
Recapitulando
IAX es un protocolo de comunicacin
Captulo Intermedio #1
Enlaces IAX y
troncales SIP
Introduccin
IAX2
Pros
Contras
5
5
4
4
4
3
3
3
5
Enlaces IAX y troncales SIP
4
4
4
La relacin
encabezados/cuerpo es
mucho menor
El ancho de banda se
aprovecha mejor
3
3
Creando el enlace
; Host A
; sip.conf/iax.conf
; Host B
; sip.con/iax.conf
[usuario B]
username=<usuario A>
host=<ip B>
secret=<elmismo>
context=entrada
type=friend
deny=0.0.0.0/0
permit=<ip B>/32
[usuario A]
username=<usuario B>
host=<ip A>
secret=<elmismo>
context=entrada
type=friend
deny=0.0.0.0/0
permit=<ip A>/32
Proceso de registro
Esto es necesario cuando queremos interconectar 2
equipos y uno de ellos tiene una IP dinmica
El equipo dinmico se reporta con el fijo de manera
peridica
Correcto!
Quedas
registrado
Si en
verdad eres
el usuario
101,
desde
192.168.1.145
CullaesIPtu
contrasea?
101 @ 192.168.1.145
(IP dinmica)
9
10
; Host A (dinmico)
; sip.con/iax.conf
; Host B (fijo)
; sip.con/iax.conf
[general]
register => usuarioA:elmismo@<ip B>
Ejemplos:
register => 10025:3nl4z4@enlaza.mx
register => 5550181181:abcde12345@mi.proveedor.com
192.168.1.200
(IP fija)
11
[usuario B]
username=<usuario A>
host=<ip B>
secret=<elmismo>
context=entrada
type=friend
deny=0.0.0.0/0
permit=<ip B>/32
[usuario A]
username=<usuario B>
host=dynamic
secret=<elmismo>
context=entrada
type=friend
12
Envo de llamadas
Ejemplos de llamadas
[micontexto]
include => salida
include => sucursales
IAX2/usuario_iax/extension
IAX2/proveedor/0140
[salida]
; Llamadas locales en DF y LDN
exten => _ZXXXXXXX,1,Dial(SIP/micarrier/${EXTEN})
exten => _01ZXXXXXXXXX,1,Dial(SIP/micarrier/52${EXTEN:2})
; Pido prestadas las lineas de mis otros conmutadores
exten => _0133ZXXXXXXX,1,Dial(IAX2/pbxGDL/${EXTEN:4})
exten => _0181ZXXXXXXX,1,Dial(IAX2/pbxMTY/${EXTEN:4})
IAX2/username:password@dominio/extension
IAX2/10999:abcde@asteriskmx.com/525512345678
IAX2/dominio/extension
IAX2/asteriskmx.com/101
[sucursales]
; Llamadas internas entre conmutadores. El primer dgito
; identifica a que conmutador van
exten => _3XXX,1,Dial(IAX2/pbxGDL/${EXTEN})
exten => _4XXX,1,Dial(IAX2/pbxMTY/${EXTEN})
13
Prctica 6.1
Prctica 6.2
14
Plan de llamadas
contador
Usuarios SIP
saldo
Prctica 6.3
llamada
menu
servicios
micontexto
internas
salida
adicional
sucursal
entrada
IAX autenticados
PSTN/
Vecinos IAX
IAX annimos
Recapitulando
Captulo Intermedio #2
Distribucin automtica
de llamadas (ACD)
Ing. Christian Cabrera R.
20
Componentes
21
Caractersticas
Colas: queues.conf
Archivo donde se configuran todas las colas del sistema
miembro]
Ejemplo:
[soporte]
; Agrego 2 miembros a soporte
member => SIP/100,0,Christian Cabrera
member => IAX2/vecino/200,1,Juan Lopez
22
23
24
Ejemplo de queues.conf
announce
strategy
Valores posibles
[general]
persistentmembers=yes
monitor-type=MixMonitor
Funcin
<clase de MOH>
<archivo de sonido
del anuncio>
[ventas]
announce=sales
musicclass=nuevosproductos
strategy=lineal
weight=5
member => SIP/ventas1
member => SIP/ventas2
linear, leastrecent,
Define la estrategia de timbrado a seguir
ringall, fewestcalls,
(random, rrordered y rrmemory son los ms
random, rrordered,
justos)
rrmemory,wrandom
timeout
<segundos>
weight
<peso>
[soporte]
timeout=10
strategy=rrmemory
member => SIP/soporte1
member => SIP/soporte2
25
; Miembros estticos
Aplicacin: Queue
26
Pausas
Permiten al miembro dejar de tomar llamadas
temporalmente
[from-pstn]
exten => s,1,Answer(3000)
same => n(opciones),Background(digite-opcion)
same => n,WaitExten(4)
same => n,Goto(opciones)
Ejemplo:
; Pausar
exten =>
exten =>
; Pausar
exten =>
exten =>
27
; Para todas
; Para ventas
28
Miembros dinmicos
Permiten simular el uso de agentes
Prctica 7.1
Crear un centro de
atencin a clientes
Prctica 7.2
Captulo Intermedio #3
Asterisk DB
Agregar miembros
dinmicos a una cola
30
Recapitulando
Introduccin
Asterisk DB
Asterisk Database
33
Asterisk Database
Asterisk DB
34
Estructura jerrquica
Llave2
Valor2
SubFamilia1
Llave3
Valor3
DB(usuario/100/fwd)
Familia2
Asterisk Database
35
Llave5
(vaca)
Enlaces IAX y troncales SIP
36
DB_DELETE y DB_EXISTS
37
38
Caractersticas de
AstDB
Ejemplo de DND
[servicios]
exten => *31,1,Set(DB(dnd/${CALLERID(num):-1}00)=${destino})
same => n,Playback(do-not-disturb&enabled)
same => n,Hangup
[sub-llamada]
exten => s,1,Noop(Llamando a ${ARG1})
same => n,GotoIf(${DB_EXISTS(dnd/${ARG2})}?dnd)
same => n,Dial(${ARG1},10)
same => n(dnd),Voicemail(${ARG2})
same => n,Hangup
[internas]
exten => _[12]00,1,Gosub(sub-llamada,s,1(SIP/usuario${EXTEN:0:1},100))
Enlaces IAX y troncales SIP
39
40
Caractersticas de
AstDB (2)
Rpida
Asterisk la utiliza para guardar informacin
Prctica 8.1
Asterisk Database
41
Plan de llamadas
contador
Usuarios SIP
saldo
llamada
menu
internas
adicional
entrada
servicios
micontexto
permitidos
salida
permitir
sucursal
IAX autenticados
PSTN/
Vecinos IAX
IAX annimos
Asterisk Database
44
Recapitulando
Todos los datos que Asterisk posee son estticos
Captulo Intermedio #4
Integracin con
bases de datos
45
Introduccin
46
Escogiendo el manejador
47
48
Asterisk y ODBC
unixODBC
res_odbc
res_config_odbc
cdr_odbc
unixODBC
Integracin con bases de datos
49
unixODBC (2)
50
odbcinst.ini
Configura los controladores necesarios para
que ODBC interactue con la base de datos
requerida
51
52
odbc.ini
Instalando un CDR
Detalle de llamadas
/var/log/asterisk/cdr-csv/Master.csv
[MySQL-asterisk]
Description=MySQL ODBC Driver Testing
Driver=MySQL
Socket=/var/run/mysqld/mysqld.sock
Server=localhost
Database=asterisk
ODBC en Asterisk
res_odbc.conf
Creamos los perfiles de
conexin para Asterisk
El usuario y contrasea
debe haberse creado
previamente
[cdr-asterisk]
enabled => yes
dsn => MySQL-asterisk
username => cdruser
password => cdrpass
pre-connect => yes
54
Todo relacionado
cdr_odbc.conf
Especificamos que tablas y
que perfil usar para
guardar el CDR
; /etc/asterisk/res_odbc.conf
[cdr-asterisk]
dsn => MySQL-asterisk
; /etc/asterisk/cdr_odbc.conf
[general]
dsn => cdr-asterisk
; /etc/odbc.ini
[MySQL-asterisk]
Driver=MySQL
[global]
dsn=cdr-asterisk
loguniqueid=yes
dispositionstring=yes
table=cdr
; /etc/odbcinst.ini
[MySQL]
Driver=/usr/lib/odbc/libmyodbc.so
Setup=/usr/lib/odbc/libodbcmyS.so
55
libmyodbc
Integracin con bases de datos
56
Realtime
Asterisk Realtime Architecture (ARA)
Capa intermedia que abstrae el cdigo de BD
No es necesario hacer queries
Prctica 9.1
57
Comparacin entre
mecanismos de configuracin
Diferentes mecanismos para diferentes propsitos:
Archivos de
texto
CLI
AMI
Realtime
Bajo
Alto
Alto
Medio
Mantenimiento
Medio
Medio
Medio
Bajo
Escalabilidad
Media
Baja
Media
Alta
Baja
Baja
Baja
Alta
Setup Inicial
Flexibilidad
Dinmico
Los valores se leen solo cuando se necesitan
No se guardan en memoria
Permite actualizar sin recargar
Solo algunos archivos lo soportan (extensions, sip, iax,
voicemail y queues)
58
59
60
Requerimientos
Configurando Realtime
61
62
Ejemplo: extconfig.conf
Segn el manejador que elijamos (ODBC,MySQL, etc)
debemos crear el conector en el archivo adecuado
(res_odbc.onf, res_config_mysql.conf, etc)
[settings]
sippeers
=> odbc,realtime-asterisk,rt_sipfriends
sipusers
=> odbc,realtime-asterisk,rt_sipfriends
extensions => odbc,realtime-asterisk,rt_extensions
; Tambin podemos mezclar diferentes conectores/manejadores
saldos
=> mysql,crmdb,clientes
63
64
Realtime SIP
Almacena la configuracin de usuarios SIP
sippeers
sipusers
65
66
Realtime extensions
67
68
Todo relacionado
; /etc/asterisk/extensions.conf
[internas]
switch => Realtime/internas@extensions
[micontexto]
switch => Realtime/@
; /etc/asterisk/extconfig.conf
sipusers => odbc,realtime-asterisk,rt_sipfriends
extensions=> odbc,realtime-asterisk,rt_extensions
; /etc/asterisk/res_odbc.conf
[realtime-asterisk]
dsn => MySQL-asterisk
[cdr-asterisk]
dsn => MySQL-asterisk
69
; /etc/asterisk/cdr_odbc.conf
[general]
dsn => cdr-asterisk
70
Funcin REALTIME
Una funcin muy poderosa que nos permite consultar
o cambiar valores de una tabla
Prctica 9.2
Realtime SIP y
Realtime extensions
Set(REALTIME(familia,columna,valor,campo)=nuevo)
71
72
Leer valores
Escribir valores
Ejemplo:
Set(REALTIME(saldos,usuario,100,saldo)=302)
Ejemplo:
Es equivalente a
UPDATE saldos
SET saldo='302'
WHERE usuario=100
Set(Fila=${REALTIME(saldos,usuario,100,&)})
Nos arroja:
Set(Fila=usuario=100&saldo=123.45)
Es equivalente a
SELECT * FROM saldos WHERE usuario=100
73
74
Prctica 9.3
Es equivalente a:
Set(Fila=usuario=100&saldo=1234.56)
Entonces:
Set(${CUT(Fila,&,2)})
Uso de Realtime
personalizado
Es igual a:
Set(saldo=1234.56)
75
76
Plan de llamadas
Funciones personalizadas
contador
Usuarios SIP
saldo
llamada
servicios
micontexto
permitidos
internas
salida
permitir
adicional
[FUNCION]
dsn=<nombre del DSN en Asterisk>
readsql=<query de lectura>
writesql=<query de escritura>
sucursal
entrada
IAX autenticados
PSTN/
Vecinos IAX
IAX annimos
Integracin con bases de datos
77
func_odbc
78
Ejemplo 2:
[menu]
; extensions.conf
exten => s,1,Playback(welcome)
same => n,GotoIf($[${ODBC_PASS(${CALLERID(num)})}=""]?:YaTiene)
same => n,Playback(no-tiene-pass)
same => n(Regresa),Read(pass1,ingrese-pass)
same => n,Read(pass2,confirme-pass)
same => n,GotoIf($[${pass1}=${pass2}]?:Regresa)
same => n,Set(ODBC_PASS(${CALLERID(num)})=${pass1})
same => n,Goto(continua)
same => n(YaTiene),Read(pass,please-enter-your)
same => n,GotoIf($[${pass}=${ODBC_PASS(${CALLERID(num)})}]?:YaTiene)
same => n(continua),Playback(demo-congrats)
same => n,Hangup
[PASS]
; func_odbc.conf
dsn=realtime-asterisk
readsql=SELECT pass FROM usuarios WHERE usuario = '${ARG1}'
writesql=UPDATE usuarios SEt pass = '${VAL1}' WHERE usuario = '${ARG1}'
79
80
81
Recapitulando
Captulo Avanzado #1
Asterisk Extensions
Language (AEL)
Ejemplo
exten =>_ZXXXXXXX,1,Dial(SIP/amx/${EXTEN})
Introduccin
AEL 2.0
Sintaxis general
context largadistancia {
_01XXX. => {
Answer();
Dial(SIP/user/${EXTEN});
};
// Esto es un comentario
_00XXX. => {
NoOp(No permitido);
Hangup;
/* Tambien es
un comentario
*/
};
};
Contextos
Saltos de lnea
indiferentes
Comentarios con //
(monolnea) y /* */
(multilnea)
Asterisk Extensions Language
Extensiones
context default {
1234 => Playback(tt-monkeys);
8000 => {
NoOp(uno);
etiqueta:
NoOp(dos);
NoOp(tres);
};
<extensin> => {
<aplicacin 1>;
<aplicacin 2>;
};
Las prioridades ya no se
numeran, pero deben ser
escritas en orden
Inclusiones de contextos
Sintaxis:
<extensin> => <aplicacin>;
context default {
// Las extensiones van aqu
};
Variables
Ciclos
context default {
100 => {
CALLERID(num)=1234567890;
NoOp(Mi CID es ${CALLERID(num)});
};
};
x=${x}+1) {
${x});
{
${y});
10
Condicionales: ifTime,
random
iftime sigue la
misma sintaxis
que en los
includes
random es til
para tareas
aleatorias
context ciclos {
1 => {
for (x=0; ${x}<3;
Verbose(x vale
};
};
2 => {
y=10;
while (${y} >= 0)
Verbose(y vale
y=${y}-1;
};
};
};
11
_8XXX => {
ifTime (9:00-18:00,mon-fri,*,*)
goto horario-habil,s,1;
else {
NoOp(No hay nadie para atender);
Playback(fuera-de-horario);
};
random(51)
);
NoOp(Esto aparecer el 51% de las veces);
random(60)
);
NoOp(Este aparecer el 60% de las veces);
else {
random(75)
NoOp(Esto aparecer un 30%);
else
NoOp(Esto aparecer el otro 10%);
};
};
Asterisk Extensions Language
12
Macros
Condicionales (switch)
Equivalente a un if anidado
_888Z => {
switch(${EXTEN}) {
case 8881:
NoOp(Marcaste 8881!);
break;
pattern 888[3-9]:
NoOp(Marcaste 888 algo!);
break;
default:
NoOp(Esta es la clausula default);
};
};
context menu {
s => {
Playback(welcome);
if (${ODBC_PASS(${CALLERID(num)})}="") {
Playback(no-tiene-pass);
Cuenta=0;
Regresa:
Cuenta=${Cuenta}+1;
Read(pass1,ingrese-pass);
Read(pass2,confirme-pass);
if (${pass1}!=${pass2}) {
if (${Cuenta}>=3)
goto Fin;
goto Regresa;
};
Set(ODBC_PASS(${CALLERID(num)})=${pass1});
}
else {
PidePass:
Read(pass,please-enter-your);
if (${pass}!=${ODBC_PASS(${CALLERID(num)})})
goto PidePass;
};
Playback(demo-congrats);
Fin:
Hangup;
}; // Cierre de s
Asterisk Extensions Language
}; // Cierre de contexto
13
; extensions.ael
Prctica 10.1
Crear un pseudo marcador predictivo
usando Realtime y ciclos
15
14
Plan de llamadas
contador
Captulo Avanzado #2
Asterisk Gateway
Interface (AGI)
Usuarios SIP
saldo
llamada
servicios
micontexto
micontexto-ael
menu
internas
adicional
entrada
permitidos
salida
permitir
sucursal
PSTN/
Vecinos IAX
IAX autenticados
IAX annimos
17
Recapitulando
Introduccin
19
20
Flujos
Flujos (2)
AGI(script.agi)
Ext. 777
data=12345, result=200
Ingresa "12345"
21
PHPAGI
22
Ejemplo de AGI
23
24
Comandos
Comandos (2)
answer
channel status
control stream file
database del
database deltree
database get
database put
exec
get data
get full variable
get option
get variable
hangup
noop
receive char
receive text
record file
say alpha
say date
say datetime
say digits
say number
say phonetic
say time
25
send image
send text
set autohangup
set callerid
set context
set extension
set music
set priority
set variable
stream file
tdd mode
verbose
wait for digit
Prctica 11.1
Captulo Avanzado #3
Asterisk Manager
Interface (AMI) y archivos
de llamadas
26
Recapitulando
29
Funciones principales
30
Envo de comandos
Transferir/colgar llamadas
Ejecutar comandos del CLI
31
32
Ejemplo de autenticacin
Archivo: manager.conf
Response: Success
Message: Authentication accepted
[admin]
secret = mysecret
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,
reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,
originate
33
34
Solicitando llamadas
Tras hacer login, ejecutamos un comando como el
que sigue
Action: Originate
Channel: SIP/100
Context: micontexto
Exten: 200
Priority: 1
Timeout: 10000
ActionId: ABCDE12345
Click 2 dial
Llamadas via web
Marcadores automticos/predictivos
35
36
Call files
Se colocan en la carpeta
/var/spool/asterisk/outgoing
37
38
Creamos un archivo
nano /root/test.call
Channel: SIP/usuario2
Application: Playback
Data: demo-congrats
Qu ocurre?
Podemos consultar todos los campos igual que con el
comando Originate del AMI
39
40
Prctica 12.1
Captulo Avanzado #4
Cifrado de llamadas en
SIP
Recapitulando
Antecedentes
Asterisk 1.4
Asterisk 1.6
43
Asterisk 1.8
Se soporta TLS completamente
Se agrega soporte para Secure RTP (SRTP). La voz viaja
cifrada
Cifrado de llamadas en SIP
44
45
TLS Handshake
Cliente
Servidor
Resultado
Cliente
ClientHello
46
Servidor
Resultado
ChangeCipherSpec
Finished
ChangeCipherSpec
Certificate
Finished
ServerHelloDone
ServerHello
ClientKeyExchange
MasterSecret
47
48
Configurando Asterisk
para TLS
Creando la llave y
certificado
Ya existe un script proporcionado dentro del cdigo
fuente de Asterisk:
Se necesita lo siguiente:
Un certificado digital (para el servidor)
Preparar el certificado para Asterisk
Configurar Asterisk
Opcional: Instalar el certificado de CA en el cliente
<astsrcdir>/contrib/scripts/ast_tls_cert
49
Configurando Asterisk
50
Campo
51
Significado
tlsenable
tlsbindaddr
tlscertfile
tlscafile
tlsdontverifyserver
tlscipher
tlsclientmethod
52
Transporte seguro,
carga no
53
Ejemplo de usuarios
SIP seguros
54
[usuario1]
type=friend
host=dynamic
context=micontexto
transport=tls
encryption=yes
secret=aYtK4I1!
55
56
Es posible graficarla:
57
58
59
60
Prctica 13.1
Configurar SIP mediante TLS y sRTP
61
Recapitulando
Captulo Avanzado #5
Seguridad en Asterisk
Contraseas inseguras
Puertos abiertos
Validar al telfono, no al usuario
Seguridad en Asterisk
Introduccin
1) Contraseas inseguras
Seguridad en Asterisk
1) Contraseas inseguras
En FreePBX/Elastix/Asterisk, cambiar:
Seguridad en Asterisk
2) Limitar el acceso a
ciertas IPs
Si no tenemos agentes externos, Por qu permitir
que las extensiones se registren desde cualquier IP?
root de ssh
root de MySQL
Asterisk Manager Ingerface (manager.conf)
admin de FreePBX
asteriskuser en /etc/amportal.conf
admin de Elastix
Usar iptables
Seguridad en Asterisk
Seguridad en Asterisk
4) Limitar llamadas
simultneas
Si un atacante ganara acceso a nuestro sistema,
limitar la cantidad de llamadas simultneas posibles
No evita el dao, pero lo reduce
Usar un [macro-contador] para estos casos
Seguridad en Asterisk
5) Autenticar al usuario
Hay llamadas muy caras que son espordicas (ej.
Internacionales)
Podemos pedir contrasea via DTMFs
Seguridad en Asterisk
6) Negar llamadas
annimas
Definir adecuadamente el context default dentro de
[general] en sip.conf
Cualquier usuario NO autenticado puede marcar a travs de
l
Seguridad en Asterisk
Seguridad en Asterisk
8) Patrones de marcado
claros
mejor usar
_9ZXXXXXXX,1,Dial(DAHDI/g0/${EXTEN:1})
Seguridad en Asterisk
9) Confianza
Cuidar a que dispositivos les permitimos la
autenticacin sin contrasea
insecure=invite
Siempre usar permit/deny en conjuncin con insecure
Prctica 14.1
Seguridad en Asterisk
Contacto
Christian Cabrera R.
christian@enlaza.mx
(55) 50 181 181
SIP/enlaza.mx
Twitter y Facebook:
@AsteriskMX
enlaza.mx/encuesta
Es annima
No tienen que proporcionar su nombre si no lo desean
@EnlazaMX
Asterisk Manager Interface
77
78