Академический Документы
Профессиональный Документы
Культура Документы
Archivos
de
configuración
y
uso del CLI.
Introducción
Las llamadas en asterisk pueden ser cursadas por medio de diferentes protocolos.
Algunos de los protocolos mas conocidos son:
• H323
• SIP
• IAX
• Zap
Si nos registramos a Asterisk como un usuario SIP, necesitaremos un telefono cliene que sepa
manejar dicho canal, asimismo para con IAX.
El conenido de "extensions.conf" esta organizado en secciones, las cuales se usan para ajustes y
definiciones estaticas, asi como tambien para los componentes ejecutables del dial plan a los cuales nos
referiremos como contextos.
[general]
Siempre debe estar al principo de archivo, en esta secciones se configuran unos pocos
parametros generales
[globals]
Aca se pueden definir variables globales o constantes, asi como sus valores iniciales.
Contextos y Extensiones
Despues de general y globals, el resto del archivos se usa para definir el dialplan.
El dialplan consiste en una colección de contextos, y cada contexto consiste en una colección de
extensiones.
Contexto 'default'
Extension 101 – Pepe
Extension 102 – Juan
Contexto 'local'
Extension _NXXXXXX - Llamadas locales
include => 'default'
Contexto 'largadistancia
Extension _00NXX, - Llamadas de larga distancia
include => 'local'
Extensiones
Estas pueden ser de dos tipos, literales o patrones.
Una extension literal puede ser un numero y/o simbolos estandar como * y #. Algunos telefonos
especiales tambien definen otros caracteres como A B C D que tambien se pueden incluir en este tipo de
extensiones.
Los nombres de las extensiones son case sensitive... bueno en realidad no... o si ?
En realida es case sensitive en el sentido de que si no corresponde exactamente con la
extension, esta no sera encontrada, pero no es case sensitve en el sentido de que no puede haber dos
extensiones con el mismo nombre (Pepe - PEPE).
Definicion de Extensiones
En las PBX tradicionales, las extensiones son asociadas con telefonos fisicos, en asterisk una
extension es una lista de comandos.
Los comandos son generalmente ejecutados en el order definido en el parametro de prioridad.
Algunos comandos como Dial y Gotoif tienen la habilidad de redireccional el flujo de ejecuion
basado en las condiciones que se establescan.
Cuando una extension es discada, la ejecucion de los comandos comienzan con el parametro de
prioridad 1, luego con el 2 y asi sucesivamente.
Este flujo se corta cuando:
• La llamda es cortada.
• Un comando retorna como parametro -1
• El proximo parametro de priioridad es menor al actual.
• La llamda es ruteada a otra extension.
Sintaxis:
exten = extension,prioridad,Comando(parametros)
extension – es la etiqueta de la extension y puede ser un literal o un pattern, todas las lineas
relacionadas con esta extension debe de mantener la etiqueta extension igual.
prioridad – es un numero entero que determina la secuencia numerica ordenada de cada
comando dentro de la ejecucion de una extension.
Comando – es tambien conocido como la aplicación a ejecutar.
parametros – depende de la implementacion de cada comando.
Ejemplo:
exten=>123,1,Answer
exten=>123,2,Playback(Abierto)
exten=>123,3,Voicemail(44)
exten=>123,4,Hangup
Otro tipo de opcion para defeinir en una extension, es lo que normalmente llamamos la logica de
la ex-novia, Esta logica ara coincidir la extencion destino o marcada con la extension que origino la
llamada como si fuera una sola extension.
Ejemplo
Si discan mi extension 123 y ademas el que disco mi extension es el 100 ejecuto los comandos
anteriirmente ejemplificados.
Otros ejemplos.
exten => 1234/_256NXXXXXX,1,Answer()
Este ejemplo hace que se conteste la llamada si discan el interno 1234 desde el telefono que
coincida con el dial pattern 256NXXXXXX
Este ejemplo basicamente filtra la llamada de entrada con el nro 9184238080 cortando la
ejecucion, al no encontrar un priority 3,.
En caso que no se necesite una conducta como la del ejemplo anterior, se pude substituir el
parametro de prioridad numerico por una 'n'.
'n' hace que no sea necesario numerar los comandos de las extensiones, ya que internamente se
numeran automaticamente según esten ingresadas las lineas.
Variables y expresiones
Podemos usar el constructor de variables ${VARIABLENAME} o el contructos de expresiones
$[EXPRESSION] .
Syntaxis
[iaxprovider]
switch => IAX2/usuario:clave@servidor/contexto
#include "miarchivo"
[globals]
ALL=Zap/1&SIP/1000&SIP/1001
[default]
exten => s,1,Answer
exten => s,2,Playback(Bienvenido)
exten => s,3,Goto(contextoenmiarchivo,s,1) ; va al contextoenmiarchivo del include.
Ejemplos de Macro
Este ejemplo usa una macro para crear extensiones
[globals]
PHONE1=Zap/1
PHONE2=SIP/6002
[macro-oneline]
exten => s,1,Dial(${ARG1},20,t)
exten => s,2,Voicemail(u${MACRO_EXTEN})
exten => s,3,Hangup
exten => s,102,Voicemail(b${MACRO_EXTEN})
exten => s,103,Hangup
[local]
exten => 6601,1,Macro(oneline,${PHONE1})
exten => 6602,1,Macro(oneline,${PHONE2})
Canales de asterisk
Un canal es la conexión que transporta las llamadas en asterisk. cada llamada se recibe y envia
por medio de los canales.
Para hacer una llamada a travez de Asterisk, no es necesario estar registrado, pero es necesario
tener un usuario y contrase;a para hacer una llamada a alguen que este registrado.
Para recibir una llamada, ademas de tener que estar regitrado, tenemos que tener asociada una
extenacion.
Todos los usuarios deben estar registrados en sip.conf y tener una extension valida en
extension.conf.
Vamos a registrar un usuario en sip.conf y luego registrar un numero en extension.conf
[edu]
Esto hace que configure el usuario EDU
type=friend
Esto hace que el usuario pueda hacer o recibir llamdas. Solo use peer como type en caso de
llamadas entrantes. Para llamadas salientes use user como type.
username=edu
Esto declara que llamaremos al usuario EDU
secret=clavedeedu
Esto crea la contrase;a clavedeedu para la autenticadion del usuario.
host=dynamic
Este parametro puede ser dynamic o static.
context=ejemplo
Esto define el contexto de discado para el usuario.
[ejemplo]
Esto registra el contexto ejemplo
Cree un usuario llamado eduiax, con un usuario y clave de la misma menrea que lo hizo en
sip.conf
Editar extensiions.conf y agrege una extension 1111 y cambie le comado de dial de la siguiente
manera Dial(IAX2/username@username)
Comandos del CLI
Asterisk CLI soporta una gran variedad de comandos que pueden ser usados como herramientas
de testing y debug.
Comandos de control.
Comandos de agentes.
Comandos de IAX.
Comandos de colas.
Comandos de RTP.
rtp debug ip - Habilita el debug para RTP para una dirección ip especifica..
rtp debug - Habilita el debug para RTP.
rtp no debug - Des habilita el debug para RTP.
Comandos de SIP.