Sistema basado en paquetes debian usados en Debian y Ubuntu Versión de asterisk ⇒1.4 y <1.6
Cuando cambiamos algo en algun fichero de configuracion es necesario hacer un reload desde la consola de asterisk Los mas importantes o los que manejaremos con mas frecuencia son:
Todos los ficheros tienen la misma idea de estructura, es muy parecida a la usada por los archivos .ini de windows.
Se basa en contextos, el titulo de cada contexto estara entre corchetes y un contexto acabara cuando comienze otro, ejemplo
[globals] TODOS=SIP/1000&SIP/1001&SIP/1002 CASA=9XXXXXXXX [dundi] ...
En este caso hay dos contextos, globals y dundi, cada uno con sus parametros
Es el corazon de asterisk y aqui es donde definiremos su comportiento, este fichero siempre empieza por el contexto [general] donde se define la configuracion general, despues viene el contexto [globals] donde se definen las variables globales que luego podremos usar en el resto del fichero, estas siempre suelen ser indicadas en mayusculas.
Existen unos contextos especiales que son los contextos macros, se utilizan para automatizar tareas rutinarias. Para definir una macro el nombre del contexto debe comenzar por macro- seguido del nombre de la macro, por ejemplo [macro-stdexten]
En los contextos definiremos las acciones que asterisk va a realizar en funcion de a la extension que llama un usuario o de donde viene una llamada, las llamadas entraran al contexto que tenga definido el canal por el que entra o el contexto asociado al usuario que realiza la llamada por lo que podremos tener diferentes acciones en funcion del contexto relacionado.
La sintaxis es la siguiente
[prueba] exten => 100,1,Dial(SIP/100) exten => 100,2,Hangup exten = _1XX,1,Playback(invalid) exten = _1XX,n,Playback(vm-goodbye) include = gratis
⇒ y = es lo mismo se puede usar uno u otro en funcion de lo que se haga para clarificar la vista
include, incluye otro contexto en este como si estubiera escrito a continuacion, o se inserta donde pongamos el include
exten, indica que es una extension y se compone de lo siguiente:
exten ⇒ extension,prioridad,aplicacion
ejemplos en nuestra configuracion:
[macro-stdexten];
;
; Macro estandar de extension:
; ${ARG1} - Extension como argumento 1
; ${ARG2} - Dispositivo a sonar como argumenton 2
;
exten => s,1,Dial(${ARG2},35) ; Llamar durante 35 segundos
exten => s,2,Goto(s-${DIALSTATUS},1) ; Saltar segun status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; Si no esta disponible saltar al buzon con mensaje de no disponible
exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
exten => a,1,VoicemailMain(${ARG1})
[default]
exten => s,1,Playback(vm-goodbye) ;Nos despedimos de las llmadas sin destino
exten => s,2,Hangup
switch => Realtime/default@extensions ; Cargamos la configuracion de LDAP aqui
[casa]
include = echo
include = nacionales
include = internacionales
include = salas
include = buzon
include = app-speakingclock
inlcude = calltrace
include = default
[salas]
exten => 59,1,Meetme(59,cpv) ; betatesting
exten => 51,1,Meetme(51,cp) ; sala 51
exten => 52,1,Meetme(52,cp) ; sala 52
exten => 53,1,Meetme(53,cp) ; sala 53
[buzon]
exten = *99,1,VoicemailMain(${CALLERID(num)})
exten = *99,n,Hangup()
[nacionales]
exten = _9XXXXXXXX,1,Macro(trunkdial,${proveedor},${EXTEN:0},)
[internacionales]
exten = _0X.,1,Macro(trunkdial,${proveedor},00${EXTEN:1}) ; 0X. cualquier cosa que empize por 0 seguido de un numero o mas
mas info http://www.voip-info.org/wiki/index.php?page=Asterisk+config+extensions.conf
Asterisk CLI es la consola de asterisk desde donde podemos debugear y comprobar el funcionamiento de asterisk, para acceder a ella debemos ejecutar asterisk -r podemos usar la funcion de autcompletado con la tecla tabulador
sballesteros@extranet:~$ sudo asterisk -r Asterisk 1.4.1, Copyright (C) 1999 - 2006 Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 1.4.1 currently running on extranet (pid = 12312) Verbosity is at least 3 extranet*CLI>
Para debugear podemos ajustar el nivel de verbose y debug de la consola con los siguientes comandos
extranet*CLI> core set debug 3 Core debug was 0 and is now 3 extranet*CLI> core set verbose 3 Verbosity is at least 3 extranet*CLI> core set debug 0 Core debug is now OFF
Para un debug mas preciso podemos debugear directamente en el canal, por ejemplo con SIP podemos hacer lo siguiente
extranet*CLI> sip set debug ip 80.58.3.33 SIP Debugging Enabled for IP: 80.58.3.33 extranet*CLI> sip set debug off SIP Debugging Disabled
Podemos ver los usuarios registrados en el momento con sip show peers, los usuarios que aparecen con Host (Unspecified) estan cacheados pero ya no estan registrados.
extranet*CLI> sip show peers Name/username Host Dyn Nat ACL Port Status Realtime xxxxxxxxx/xxxxxxxxx (Unspecified) D N 0 Unmonitored xxxxxxx/xxxxxxx (Unspecified) D N 0 Unmonitored xxxxxxx/xxxxxxxx xx.xxx.xx.118 D N 62331 Unmonitored xxxxxxx/xxxxxxx xx.xx.x.82 D N 52106 Unmonitored xxxxxxxxxxxxxxx (Unspecified) D N 0 Unmonitored xxxxxxxx/xxxxxxxx xxx.xx.xxx.232 D N 5060 Unmonitored xxxxxxxxxxx/xxxxxxxxxxxxx (Unspecified) D N 0 Unmonitored 7 sip peers [Monitored: 0 online, 0 offline Unmonitored: 3 online, 4 offline]
Tambien podemos administrar las salas de conferencia con el comando meetme, ver quienes estan conectados a una sala o expulsar a alguien
extranet*CLI> meetme list 52 User #: 01 1188 xxxxxx Channel: SIP/xxxxxx-083a7ef0 (unmonitored) 00:00:04 1 users in that conference.