Antes de empezar, miraremos unas cuantas
cosas para ver si el sistema va bien. Primero, Ver si los drivers de DAHDI
(tarjeta de los básicos) estan cargados. Después logarnos como usuario root,
con lsmod | grep dahdi podemos ver los modulos cargados en el Kernel,
y filtramos los modulos que tiene dahdi.
[root@server
asterisk-1.6.X.Y]# lsmod | grep dahdi
Si no aparece nada, entonces DAHDI No
está arrancado:
[root@server
asterisk-1.6.X.Y]# service dahdi start
Sino aparece
esto:
[root@server
~]# lsmod | grep dahdi
dahdi_dummy 4288
0
dahdi_transcode 7928
1 wctc4xxp
dahdi_voicebus 40464
2 wctdm24xxp,wcte12xp
dahdi 196544 12
dahdi_dummy,wctdm24xxp,wcte11xp,wct1xxp,wcte12xp,wct4xxp
crc_ccitt 2096 1 dahdi
Para certificar que Asterisk está
corriendo:
[root@server
~]# service asterisk status
asterisk
is stopped
Para arrancar
Asterisk:
[root@server
~]# service asterisk start
Starting
asterisk
Nosotros podemos chequear el estado de Asterisk
y ver que está corriendo usando:
[root@server
~]# service asterisk status
Asterisk
PBX is running
Ya tienes el sistema Asterisk corriendo!
CREAR EXTENSIÓN
En sip.conf se definen tanto los clientes que se conectarán a
Asterisk, como los proveedores que se utilizaran para encaminar llamadas. Se
distinguen normalmente:
– user: Envia
llamadas a Asterisk
– peer: Recibe
llamadas de Asterisk (proveedor).
– friend: Recibe y
Envía llamadas (usuario)
[demo-alex]
type=friend
host=dynamic
secret=verysecretpassword ; Poner una fuerte y unica contraseña.
context=users
deny=0.0.0.0/0
permit=192.168.5.0/255.255.255.0 ; Remplaza con tu red.
[demo-juan]
type=friend
host=dynamic
secret=othersecretpassword ; Poner una fuerte y unica contraseña.
context=users
deny=0.0.0.0/0
permit=192.168.5.0/255.255.255.0 ; Remplaza con tu red.
Después hay que reiniciar, Mediante el comando core
reload en el CLI de Asterisk, le indicamos que recargue la configuración. Aunque
es posible recargar de forma independiente:
server*CLI> sip reload
Reloading SIP
server*CLI>
En este fichero se
definen: Variables generales de SIP, Clientes SIP, Servidores SIP.
SIP.CONF: Sección
General
En primer lugar
existe la sección [general], donde se definen variables globales y aspectos por
defecto para todos los canales SIP.
Las variables
generales más importantes son:
–
allow y disallow: indican los codecs
permitidos / no permitidos.
–
dtmfmode: permite especificar el
método por el cual se enviaran los tonos (digitos pulsados durante la
conversación), valores posibles.
–
nat: Informa a Asterisk del tipo de
NAT en el que se encuentra.
–
externip: Dirección Pública tras el
NAT.
–
context: Contexto por defecto donde
entraran las llamadas entrantes por SIP.
–
port: Puerto en el que escuchar
(5060)
Las variables más
importantes que deben ser configuradas al principio son:
–
type: peer / friend
–
context: Contexto donde entraran las
llamadas generadas.
–
nat: Indica si el usuario o peer se
encuentran tras un nat.
–
host: IP remota o dynamic.
–
username: nombre de usuario.
–
secret: contraseña de acceso.
–
allow y disallow: Configuraciones de
codecs específicas para cada friend/peer.
–
qualify: Evalúa el estado del
extremo SIP para conocer su accesibilidad y latencia.
Otro ejemplo de
clientes:
[loren]
type = friend
secret = loren
disallow=all
allow = g729
allow = gsm
host=dynamic
[julia]
type
= friend
secret
= julia
allow
= all
host=dynamic
Ejemplo, declarando peers, vamos
a configurar un proveedor en sip.conf:
[proveedor]
type=peer
host =
10.11.114.200
disallow = all
allow = g729
allow = gsm
fromuser= 100
secret=ghost
REGISTRO
DE TELEFONOS ASTERISK
Una vez recargada,
podemos comprobar los “friends” que hemos definido con el comando: sip show users.Ves los conectados y desconectados.
Para ver los “peers”
definidos: sip show peers. Para ver quien está registrado y nos mustra
su IP :
server*CLI> sip show peers
Name/username Host Dyn NAT ACL Port Status
demo-alex (Unspecified) D
A 5060 Unmonitored
demo-juan 192.168.5.105 D
A 5060 Unmonitored
2 sip peers [Monitored: 0 online,
0 offline Unmonitored: 2 online, 0 offline]
Reinicio telefono fisicamente, error de registro:
server*CLI>
NOTICE[22214]:
chan_sip.c:20824 handle_request_register: Registration from '"Alex"
<sip:demo-alice@192.168.5.50>'
failed for '192.168.5.103' - Wrong password
CREAR EL DIALPLAN DE LAS EXTENSIONES.
Se crea en extensions.conf. Añadireos
un nuevo contexto llamado [users].
Nombrando los
contextos de tu Dialplan
Debajo del nombre del contexto nostros crearemos el número
de la extensión 6001, 6002
[users]
exten=>6001,1,Dial(SIP/demo-alice,20);Sonará
20 seg.
exten=>6002,1,Dial(SIP/demo-bob,20)
;Sonará 20 seg.
Luego reiniciamos extensions.conf
y verificamos escribiendo dialplan
show users:
server*CLI> dialplan show users
[ Context 'users' created by
'pbx_config' ]
'6001' => 1.
Dial(SIP/demo-alex,20)
[pbx_config]
'6002' => 1. Dial(SIP/demo-juan,20) [pbx_config]
-= 2 extensions (2 priorities) in
1 context. =-
Ahora podemos llamar!!!
Resolución de Problemas Basicos de la PBX.
Para garantizar que su telefonos SIP
estan registrados, escribe sip
show peers en el Asterisk
CLI.
Para ver que contexto de tu telefono
SIP llamará, escribe sip show
users.
Para garantizar que tú has creado la
extensión correctamente en el contexto [users] en el dialplan, escribe dialplan show users.
Para ver que extensión será ejecutada
cuando marques 6002, escribe dialplan show 6002@users.
CONTEXTOS(Context),
EXTENSIONES (Extensions) Y PRIORIDADES (Priotity)
La sintaxis de un contexto es exactamente igual que en cualquier
otra sección que encabeza los archivos de configuración. Los Contextos (Context):
El Dialplan o lógica de comportamiento de Asterisk se divide en uno o varios
contextos. Dentro de cada contexto, podemos definir una o más
extensiones. Los contextos existen para poder diferenciar el 'lugar' donde se
encuentra una llamada. Una extensión no es más que un conjunto
con nombre de las acciones. Asterisk realizará cada acción en
secuencia.
[users]
exten =>
number,priority,application([parameter[,parameter2...]])
[users]
exten =>
6001,1,Dial(SIP/demo-alex,20)
En este caso, el número de extensión (extension) es 6001, la
prioridad del número es 1, la aplicación es Dial (), los
dos parámetros para la aplicación son SIP/demo-alex,20. Dentro
de cada extensión, puede haber una o más prioridades. Una de las
prioridades es simplemente una secuencia de números. La primera
prioridad en una extensión es ejecutada en primer
lugar. Cuando termina, la segunda prioridad se ejecuta, y
así sucesivamente. En telefonía tradicional, las extensiones se asocian con teléfonos,
interfaces o menús. En Asterisk, una extensión es una lista de comandos a
ejecutar. Las extensiones se acceden cuando:
– Se recibe una llamada entrante por un canal dado.
– El usuario que ha llamado marca la extensión.
– Se ejecuta un salto de extensiones desde el Dialplan de Asterisk.
Numeros de Prioridad
Los numeros de Prioridad deben empezar
con el 1, y deben crecer secuencialmente. Si Asterisk no puede encontrar el
siguiente número, este terminará la llamada.
El número de Prioridad puede simplificarse usando la letra n en lugar
del número secuencial. La letra n significa siguiente (next), se debe
declarar el número 1 de Prioridad.
exten => 6123,1,do something
exten => 6123,n,do something else
exten => 6123,n,do something different
También se puede asignar una etiqueta (o alias) a un número de
prioridad en particular, como se muestra a continuación. Las
etiquetas se utilizan para que sea más fácil de saltar a un
lugar en particular dentro de la extensión en un momento posterior. Aquí,
hemos asignado una etiqueta llamada repeat a
la segunda Prioridad.
exten => 6123,1,do something
exten => 6123,n(repeat),do something else
exten => 6123,n,do something different
Hay una manera de evitar tener que repetir el nombre de la
extensión / número o patrón con el mismo prefijo =>. (A
partir de Asteris 1.6.2)
exten => _1NXXNXXXXXX,1,do something
same => n(repeat),do something else
same => n,do something different
APLICACIONES (Application)
Cada prioridad en el Dialpaln llama una aplicación. La mayoría de las aplicaciones tinen uno o
más parámetros, los cuales proporcionan información
adicional a la aplicación o cambiar su comportamiento. Los
parámetros deben estar separados por comas y para conocer la lista de
aplicaciones disponibles escribimos:
server*CLI>
core show applications
Esta es la
sintaxis que se usa:
exten
=> 6123,1,application(one,two,three)
APLICACIONES DEL
DIALPLAN
Las Aplicaciones Generales más importantes son:
– Wait (n): Espera n segundos,
ignorando los dígitos marcados durante.
– WaitExten (n): Espera n segundos,
pero gestionando los dígitos marcados.
– WaitMusicOnHold(n): Reproduce música en
espera durante n segundos.
Los comandos de gestión de llamadas más importantes son:
– Answer(): Acepta la llamada
entrante por el canal.
– Busy(): Envía la señal de ocupado
al origen.
– Hangup(): Cuelga la llamada.
– Ringing(): Envía la señal de
tono de llamada.
– Dial(tipo/identificador,timeout,opciones,url):
Aplicación para llamar (ver más adelante).
Algunos comandos de control de flujo y temporización:
– Goto (contexto, extension, prioridad): Salta al contexto, extensión y
prioridad del argumento.
– GotoIf (condicion ? prioridad1 : prioridad2 ): Salta a la prioridad1 si
la condición se cumple. Salta a la prioridad2 si la condición no se cumple.
- GotoIfTime(<times>|<weekdays>|<mdays><months>?[[context|]exten|]priority)
Algunas aplicaciones para la reproducción:
– PlayBack (fichero): Reproduce el fichero, continúa la ejecución cuando
finaliza.
– Background (fichero): Reproduce el fichero, pero continúa la ejecución inmediatamente.
– SayDigits (dígitos): Reproduce los dígitos.
If Asterisk is simply going to pass the call off to
another device using the Dial() application, you probably don't want
to call the answer the call first. If, on the other hand, you want Asterisk to
play sound prompts or gather input from the caller, it's probably a good idea
to call the Answer() application before doing anything else.
The Playback() application loads a
sound prompt from disk and plays it to the caller, ignoring any touch tone
input from the caller. The first parameter to the dialplan application is the
filename of the sound prompt you wish to play, without a file extension. If the
channel has not already been answered,Playback() will answer the call
before playing back the sound prompt, unless you pass noanswer as the
second parameter.
To avoid the first few milliseconds of a prompt from
being cut off you can play a second of silence. For example, if the prompt you
wanted to play was hello-world which would look like this in the dialplan:
Comentarios
Publicar un comentario