Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
91 vistas33 páginas

Texto 3

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 33

Configuración de teléfonos IP y canales

Yjdty ty ty ty ty ty thtj

Telefonía IP con Asterisk

Configuración de teléfonos
IP y canales
Unidad 3

1
Configuración de teléfonos IP y canales

Queda prohibida, sin la autorización de TECSUP, la reproducción total o parcial de este


material por cualquier medio o procedimiento, y el tratamiento informático, bajo sanciones
establecidas en la ley.

La información contenida en esta obra tiene un fin exclusivamente didáctico y, por lo tanto,
no está previsto su aprovechamiento a nivel industrial. Todos los nombres propios de
programas, sistemas operativos, equipos, hardware, etc., que aparecen en este material son
marcas registradas de sus respectivas compañías u organizaciones.

Para citar este documento:

[Formato APA]

Tecsup (2015). « Configuración de teléfonos IP y canales » (unidad 3) en Telefonía IP con


asterisk Lima: Tecsup.

[Formato MLA]

Tecsup. « Configuración de teléfonos IP y canales » (unidad 3) en Telefonía IP con


asterisk. Lima: Tecsup, 2015.

2
Configuración de teléfonos IP y canales

Instalación de Asterisk

Índice
Listado de figuras……………………………………………………………………………..4
……………………

Objetivos……………………………………………………………………………………… 7 ..............

.........................

..............

….…..

........

2.1. Sintaxis del dial plan……….………………………………………........................ 20 .......

2.2. Variables en Asterisk………………………………………………………………...24


2.3. Patrones de Extensiones…………………………………………………………....25
2.4. Operadores…………………………………………………………………………...26
III. Ejemplos……………………………………………………………………………….….. 28 .....

IV. Ejercicios…………………………………………………………………………………..30
Mapa conceptual………………………………………………………………………….... 32 ...............

Glosario……………………………………………………………………………………..... 33 ..........

Bibliografía………………………………………………………………………………….... 34 .........

3
Configuración de teléfonos IP y canales

Listado de figuras

—Figuras
• Figura 1. Tarjeta Analógica Digium ubicación de puertos

4
Configuración de teléfonos IP y canales

Presentación

Tecsup Virtu@l, plataforma de Tecsup, inicia sus actividades a finales de los años 90 con el
fin de aprovechar el uso extendido del internet para acortar distancias y prolongar la
comunicación entre alumno-docente, en modo virtual.
En la actualidad, esta plataforma se encuentra en su quinta versión y las herramientas que se
han desarrollado a lo largo de su vida propiciaron que sea más amigable e intuitiva para el
usuario.
Es mediante esta plataforma que Tecsup diseña y elabora una serie de cursos virtuales, cuyo
proceso de aprendizaje se caracteriza por implementar un novedoso modelo colaborativo, el
cual fomenta la interacción entre docentes y participantes.
La unidad 3: « Configuración de teléfonos IP y canales » del curso Telefonía IP con asterisk es
el resultado de un trabajo conjunto, cuyo fin es propiciar el desarrollo de las capacidades
profesionales de cada uno de sus participantes.
Desde ya felicitamos a cada uno de los participantes de este curso por el deseo de superación
y la búsqueda del conocimiento. Nos sumamos a su esfuerzo, poniendo todo de nosotros en
la elaboración de este curso virtual.
Tecsup Virtu@l

5
Configuración de teléfonos IP y canales

Introducción

Si bien es cierto en las dos unidades anteriores nos concentramos en ver cómo es que llegan
las señales hacia nuestro servidor Asterisk y de qué forma lo hacen, existen tanto señales
analógicas como las FXO y FXS, como también hay señales digitales:E1/T1, pero nos
preguntamos ¿Ahora qué hacemos con esto?
En esta unidad vamos aprender a manipular esas señales que llegan desde afuera para que
mediante el dial plan puedan ser redireccionadas a donde nosotros queramos. Crearemos
usuarios de diferentes tipos de canales y podremos realizar nuestra primera llamada.
Conoceremos los parámetros de configuración y para qué sirven cada uno de ellos, los cuales
son de gran relevancia en Asterisk.
Personalmente, este texto es el más importante de todos, ya que es aquí donde se rige la
columna vertebral de Asterisk. Entonces, hay que prestarle mucha atención.

6
Configuración de teléfonos IP y canales

Objetivos

Objetivo ge ner a l
• Conocer el plan de discado y los principales archivos de configuración para
canales y teléfonos IP.

Objetivos espe c íficos


• Identificar los principales parámetros de configuración para los canales.
• Identificar los principales parámetros de configuración de usuarios.
• Conocer sus principales parámetros del plan de discado.

7
Configuración de teléfonos IP y canales

Canales en Asterisk

En este capítulo se muestran ejemplos de configuración de los diferentes tipos de canales que
pueden ser gestionados por Asterisk. Se revisarán las configuraciones de los dispositivos SIP,
IAX y DAHDI, así como un dial plan básico.

Concepto de canal
Un canal es una conexión producida por una llamada en la central asterisk, pudiendo ser
una conexión a un teléfono ordinario, a una línea telefónica, a un teléfono IP o aun teléfono
lógico (softphone). Los canales pueden ser de varios tipos:
DAHDI – Canales que conectan teléfonos y líneas telefónicas ordinarias utilizando
hardware Digium.
SIP – Canales que conectan dispositivos SIP
IAX - Canales que utilizan el protocolo IAX por lo general se usa entre servidores
Asterisk.
H323 – Canales que se conectan con dispositivos H323
Skinny – Canales que conectan dispositivos cisco utilizando el protocolo skinny.
Asterisk no diferencia entre canales FXS o canales FXO, cuando utilizamos una tarjeta
digium ambos serán vistos como canales DAHDI y los deberemos identificar por el número
de canal.1

Configuración de canales SIP


La configuración de los equipos SIP o anexos se realizan en el archivo sip.conf. Por lo
general, en la mayoría de archivos de configuración existe una sección que se aplica a
todos los dispositivos: esta sección es [general]:
[general]
[general1]
parametro1=valor1
parametro2=valor2
[juan]
parametro3=valor3

1
GOMEZ (2009:71-81)

8
Configuración de teléfonos IP y canales

[pedro]
parametro4=valor4

Como se observa en el ejemplo, todos los dispositivos obtendrán los parámetros 1 y 2; el


parámetro 3 es solo para Juan y el parámetro 4 para Pedro.
En la práctica la sección [general] puede ser de esta forma:
[General]]
bindport=5060
bindaddr=0.0.0.0
context=Internal
language=es
disallow=all
allow=all
bindport. El puerto de escucha para las comunicaciones SIP.
bindaddr. La dirección IP desde la cual se recibirán peticiones SIP.
context. El contexto al que pertenecerán los dispositivos por defecto.
language. Lenguaje por defecto para ser utilizado por las aplicaciones PlayBack() y
BackGround()
disallow. Deshabilita todos los CODECs (all) en la configuración global.
allow. Permite habilitar los CODECs en orden de preferencia en la configuración global.
Cuando definimos un usuario SIP, es importante saber el tipo de usuario, en Asterisk existe
3 tipos de usuarios:
peer.
peer Asterisk envía llamadas a este tipo de usuario, Asterisk llama A un peer.
user.
user Asterisk recibe llamadas de este tipo de usuarios. Asterisk recibe llamadas DE un
user.
friend.
friend Es un user y un peer a la vez. Es la unión de los 2 conceptos anteriores.
Por lo habitual user no se usa mucho, ya que lo importante es utilizar Asterisk para realizar
llamadas, asi que lo común es usar friend para los equipos y utilizar peer para
proveedores de VoIP.

Es muy importante que antes de realizar algún cambio en cualquier archivo de


configuración, es importante realizar un backup. Por ejemplo, si deseamos configurar el
archivo sip.conf,
sip.conf, realizar una copia en la misma carpeta y renombrando el archivo con el
comando mv sip.conf sip.conf.bak.
sip.conf.bak. Luego de realizar el backup, reiniciar Asterisk.
Ejemplo de configuración de un usuario SIP:
[juan]
type=friend
secret=1234
context=desde-
context=desde-usuarios
callerid=Juan <2001>
host=dynamic

En el ejemplo hemos definido al usuario Juan como friend pero también hay otros
parámetros:

9
Configuración de teléfonos IP y canales

secret
sec ret.
ret Es la contraseña para la autentificación de usuario.
context.
context Es el contexto que se aplicará a este usuario. Los contextos serán explicados
con mayor detalle en el dial plan.
callerid.
callerid Es el identificador del llamante, cuando Juan llame en la pantalla se mostrará
“Juan <2001>”.
host.
host En la IP del usuario, lo normal es que se ponga en dynamic para que el usuario se
registre y obtenga su IP.
Al realizar un cambio en el archivo sip.conf se debe entrar al CLI de Asterisk y ejecutar
el comando sip reload si no se realiza esto los cambios no tendrán efecto.
Para consultar el usuario creado se debe de realizar en el CLI de Asterisk los siguientes
comandos sip show peers y sip show users.
users
Un canal SIP se genera cuando un dispositivo SIP recibe o inicia una comunicación.
Salida. Un canal de salida es típicamente de la forma:
SIP/[<exten>@]<peer>[:<portno>]
SIP/[< >@]<peer>[:<portno>]
exten.
exten . Opcionalmente indica la extensión por la que preguntaremos al conectarnos.
peer. Es el nombre del punto al que nos vamos a conectar. Este puede ser un nombre,
una IP o un dominio.
portno.
portno Es el puerto que recibirá la comunicación. (Es opcional por defecto se utiliza el
5060).
Ejemplos: SIP/2001@jperez:5060
SIP/jperez@192.168.1.100:5060
Entrada.
En trada. Un canal de entrada es típicamente de la forma:
SIP/<peer>
SIP/< >-<id>
p eer.
eer Es el nombre o IP del servidor remoto.
Id .- Es el identificador remoto.
Ejemplo: SIP/192.168.1.5-01fb34d6
Para probar el funcionamiento de la configuración de los dispositivos SIP, crearemos un
dial básico dentro del archivo extensions.conf:
[general]

[desde-
[desde- usuarios]
exten=>2001,1,Dial(SIP/juan)
exten=>2002,1,Dial(SIP/pedro)
1,Dial(SIP/pedro)

Con este pequeño dial si marcamos 2001 estaremos llamando a juan y si marcamos
2002 estaremos llamando a pedro.

10
Configuración de teléfonos IP y canales

Configuración de canales IAX


El archivo donde se configura los parámetros para IAX es el archivo iax.conf
Tiene una estructura similar a la de los canales SIP de igual manera que sip.conf cuenta
con la sección [general], la cual es la información general que afectará a todas las demás
extensiones que se creen.
Al igual que SIP se determina el tipo usuario, ya sea user, peer o friend.
Por ejemplo para crear 2 usuarios IAX2 agregar las siguientes líneas en el archivo
iax.conf
[general]
language=es

[maria]
type=friend
host=dynamic
secret=passwordDeMaria
context=desde-
context=desde-usuarios
callerid=maria<301>

[carlos]
type=friend
host=dynamic
secret=passwordDeCarlos
context=desde-
context=desde-usuarios
callerid=carlos<302>

Una vez que se agregue todo cambios en el archivo iax.conf para que estos hagan
efecto se tiene que realizar la carga del módulo en el CLI de asterisk colocamos el
siguiente comando:
CLI>module reload chan_iax2.so
Para comprobar que los usuarios fueron creado realizar en el CLI de asterisk los
siguientes comandos:
CLI>iax2 show users
CLI>iax2 show peers
Si deseamos comprobar las líneas es necesario tener un softphone que soporte el
protocolo IAX2 en ese caso Zoiper es un buen softphone que soporta IAX2.
Creamos el dial básico para que nuestros equipos IAX2 puedan comunicarse entre sí,
debajo de las líneas de extensions.conf y dentro de la extension [desde-usuarios]
agregamos las siguientes líneas, quedando asi nuestra configuración:
[general]

[desde-
[desde- usuarios]
exten=>2001,1,Dial(SIP/juan)
exten=>2002,1,Dial(SIP/pedro)
exten=>2002,1,Dial (SIP/pedro)

11
Configuración de teléfonos IP y canales

exten=>301,1,Dial(IAX2/maria,30)
exten=>302,1,Dial(IAX2/carlos,30)

Con todos estos cambias podemos entablar una comunicación entre el usuario María y el
usuario Carlos, pero por más que use otro protocolo Juan y Pedro, también se pueden
comunicar con María y Carlos. Asterisk hace la comunicación entre protocolos sin ningún
problema; es decir, un usuario IAX2 se puede comunicar con un usuario SIP fácilmente.

Configuración de canales analógicos


Los canales analógicos nos referimos a las señales de telefonía tradicional, que vimos en
el Texto 01, para poder configurar correctamente las tarjetas Dahdi, anteriormente Zaptel.
Tenemos que recordar algunos conceptos básicos.
- Puerto FXO (Foreign eXchange Office): Es el puerto el cual recepciona el tono, esta
utiliza señalización FXS. Módulo de color Rojo.
- Puerto FXS (Foreign eXchange Station): Es el puerto que genera el tono. Se conectan
a los teléfonos analógicos. Módulo de color Verde.

Recordar

Si conecta una línea telefónica a un FXS podría dañarse


el hardware, ya que ambos extremos generan voltaje. Vea
en la figura 1 la ubicación de cada módulo y a que puerto
pertenece

Figura 1 . Tarjeta Analógica Digium ubicación de puertos


Fuente: Elaboración propia

12
Configuración de teléfonos IP y canales

El paquete Dahdi contiene algunos archivos que son importantes identificar y en donde
se realizarán las configuraciones de las tarjetas analógicas y digitales.
Los archivos importantes que se encuentra en el directorio /etc/dahdi/, son:
modules.
modules Indica los controladores de carga, lo mejor es dejar habilitado el que vamos a
utilizar.
system.conf.
system.conf Indica la configuración de la tarjeta, información de cómo se conectan
nuestras interfaces a nuestra tarjeta.
init.conf.
init.conf Se especifica la inicialización o descarga de ciertos módulos adicionales,
también se puede poner algunos scritps shell para que sean ejecutados cuando cargue
el servicio Dahdi.
genconf_parameters.
genconf_parameters En este fichero podemos modificar el comportamiento de nuestra
aplicación de reconocimiento genérico de tarjetas.
Dahdi se relaciona con Asterisk mediante un módulo en específico que es llamado
chan_DAHDI.so, opera igual que otros módulos como SIP e IAX.
La configuración del controlador del canal Dahdi se hace en el fichero chan_dahdi.conf
chan_dahdi.conf
ubicado en el directorio /etc/asterisk/,
/etc/asterisk/, adicionalmente la información de las tarjetas que
fueron detectadas se mostrarán en dahdi-
dahdi-channels.conf
Empecemos entonces con nuestra configuración de tarjetas utilizando las herramientas
de dahdi.
Primero debemos de ejecutar el comando dahdi_scan el cual nos mostrará las tarjeta que
reconoce DAHDI.
#dahdi_scan
[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
type=analog
port=1,FXO

13
Configuración de teléfonos IP y canales

port=2,FXS
port=3,none
port=4,none
Podemos observar que tenemos una tarjeta analógica que tiene 4 puertos los cuales solo
el puerto 1 tiene un módulo FXO y el puerto 2 un módulo FXS.
Una vez que el dahdi reconoce las tarjetas, procedemos a configurar, utilizamos el
siguiente comando:
#dahdi_genconf
#dahdi_cfg –vv
dahdi tools version - 2.2.0

dahdi version: 2.2.0

echo canceller(s):
canc eller(s):

configuration

======================

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.

setting echocan for channel 1 to mg2

setting echocan for channel 2 to mg2

Con esos 2 comandos ya configuramos nuestra tarjeta Dahdi, para mejorar la carga de
nuestro servicio DAHDI, comentamos todos los drivers que no utilizamos, para ello
modificamos el archivo /etc/dahdi/modules
Para comentar una línea se antepone al inicio de la oración el símbolo #
#vi /etc/dahdi/modules
# Contains the list of modules to be loaded / unloaded by /etc/init.d/dahdi.
#
# NOTE: Please add/edit /etc/modprobe.d/dahdi or /etc/modprobe.conf if you
# would like to add any module parameters.
#
# Format of this file: list of modules, each in its own line.
# Anything after a '#' is ignore, likewise trailing and leading
# whitespaces and empty lines.

# Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1


# Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
# Digium TE220: PCI-Express dual-port T1/E1/J1
# Digium TE420: PCI-Express quad-port T1/E1/J1
#wct4xxp

14
Configuración de teléfonos IP y canales

# Digium TE435
# Digium TE235
# Digium TE436
# Digium TE236
#wcte43x

# Digium TE120P: PCI single-port T1/E1/J1


# Digium TE121: PCI-Express single-port T1/E1/J1
# Digium TE122: PCI single-port T1/E1/J1
#wcte12xp

# Digium TE131: PCI-Express single-port T1/E1/J1


# Digium TE132: PCI single-port T1/E1/J1
# Digium TE133: PCI-Express single-port T1/E1/J1 with hardware echocan
# Digium TE134: PCI single-port T1/E1/J1 with hardware echocan
#wcte13xp

# Digium T100P: PCI single-port T1


# Digium E100P: PCI single-port E1
#wct1xxp

# Digium TE110P: PCI single-port T1/E1/J1


#wcte11xp

# Digium TDM2400P/AEX2400: up to 24 analog ports


# Digium TDM800P/AEX800: up to 8 analog ports
# Digium TDM410P/AEX410: up to 4 analog ports
#wctdm24xxp

# Digium A4A/A4B/A8A/A8B
#wcaxx

# X100P - Single port FXO interface


# X101P - Single port FXO interface
#wcfxo

# Digium TDM400P:
TDM400P: up to 4 analog ports
wctdm

# Digium B410P: 4 NT/TE BRI ports


#wcb4xxp

# Digium TC400B: G729 / G723 Transcoding Engine


#wctc4xxp

# Xorcom Astribank Devices


#xpp_usb

Luego de configurar nuestro archivo comentando todos los drivers excepto el que
utilizamos wctdm, procedemos a editar el archivo /etc/dahdi/system.conf, al configurar
este archivo podemos controlar aparte del idioma el número de canal para cada módulo.
#vi /etc/dahdi/system.conf
# Autogenerated by /usr/sbin/dahdi_genconf on Thu Nov 5 06:19:40 2015

# If you edit this file and execute /usr/sbin/dahdi_genconf again,

15
Configuración de teléfonos IP y canales

# your manual changes will be LOST.

# Dahdi Configuration File

# This file is parsed by the Dahdi Configurator, dahdi_cfg

# Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER)

fxsks=1

echocanceller=mg2,1

fxoks=2

echocanceller=mg2,2

# channel 3, WCTDM/4/2, no module.

# channel 4, WCTDM/4/3, no module.

# Global data

loadzone = es

defaultzone = es

Analicemos algunos parámetros del archivo system.conf


Señalizaciones en fxo y fxs, se puede observar que adelante hay 2 letras ks, estas pueden
variar según sea el caso por lo general ks.
- GroundStart (gs). Este es un tipo de señalización de tono se solicita conectando una
toma de tierra en uno de los polos. Se utilizó para evitar que emisor y receptor intenten
establecer una llamada al mismo tiempo.
- LoopStart (ls). Cuando el tono de marcado se obtiene cerrando el circuito DC, y esto
continuará hasta que se cuelgue la línea. Se utiliza mayormente en Norte América.
- KewlStart (ks). Es el que se utiliza actualmente y es similar a LoopStart (ls) pero con
supervisión de conexión remota.

Los números que están a continuación de fxsks=1 y fxoks=2 identifica que canal utilizará
dicha señalización, entonces en resumen el canal 1 es un módulo fxo y el canal 2 es un
módulo fxs,
fxs no se confunda ya que esto indica que señalización va a recibir no dice que
módulo es el que tiene instalado, como indicamos deben ser opuestos a los módulos que
instalamos.
El parámetro loadzone indica que se cargarán tonos de indicación española, en caso de
no indicar el loadzone asumirá el valor del parámetro loadzone=us,
loadzone=us, los tonos son
definidos en el archivo zonedata.c.
zonedata.c
# /usr/src/dahdi/tools/zonedata.c
El parámetro defaultzone indica que tonos serán utilizados por defecto si es que no se
especifica una zona por defecto.
Luego de revisar el archivo pasemos a ver otro archivo llamado dahdi-
dahdi-channels.conf
ubicado en el directorio /etc/asterisk/.
/etc/asterisk/.

16
Configuración de teléfonos IP y canales

#vi /etc/asterisk/dahdi-
/etc/asterisk/dahdi-channels.conf
; Autogenerated by /usr/sbin/dahdi_genconf on Thu Nov 5 06:19:40 2015

; If you edit this file and execute /usr/sbin/dahdi_genconf again,

; your manual changes will be LOST.

; Dahdi Channels Configurations (chan_dahdi.conf)

; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended

; to be #include-d by /etc/chan_dahdi.conf that will include the global settings

; Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER)

;;; line="1 WCTDM/4/0 FXSKS"

signalling=fxs_ks

callerid=asreceived

group=0

context=from-
context=from-pstn

channel => 1

callerid=

group=

context=default

;;; line="2 WCTDM/4/1 FXOKS"

signalling=fxo_ks

callerid="Channel 2" <4002>

mailbox=4002

group=5

context=from-
context=from-internal
channel => 2

callerid=

mailbox=

group=

context=default

Analicemos algunos parámetros de este archivo:

- signalling. Indica el tipo de señalización.


- callerid. Es el identiticador del dispositivo lo que se muestra en la pantalla.
- group. Es el grupo al que pertenece el canal.
- context. Es el contexto que usará para el plan de marcado.
- channel. Canal al que pertenece el puerto.

17
Configuración de teléfonos IP y canales

Una vez que las tarjetas con reconocidas nos damos cuenta que no tenemos canales
tenemos canales.
#asterisk -r

*CLI> dahdi show channels

Chan extension Context Language Moh interpret

pseudo default default

*CLI> dahdi show status

Description Alarms IRQ bpviol CRC4

Wildcard TDM400P REV E/F Board 5 OK 0 0 0

Esto significa que asterisk interpreta a través del fichero de configuración chan_dahdi.conf, si el
fichero no existe tenemos que crearlo. Si existe el fichero realizar un backup con el comando mv.

#vi chan_dahdi.conf

Añadimos 2 líneas

[channels]

#include dahdi-channels.conf

Aumentando estas 2 líneas, estamos diciéndole a Asterisk que lea el fichero dahdi-channels.conf
el cual fue creado en la ejecución de dahdi_genconf y dahdi_cfg -vv.

Para finalizar reiniciamos asterisk

asterisk –r

CLI>reload

CLI>dahdi show channels

Paramos Asterisk y reiniciamos dahdi.

#service asterisk stop

#service dahdi restart

Iniciamos Asterisk y listo:

#service asterisk start

Observemos cuando descolgamos nuestro teléfono analógico en el CLI debería aparecernos.

-- Starting simple switch on 'DAHDI/2-1'

-- Hungup 'DAHDI/2-1'

Para realizar una prueba de llamadas de nuestro canal DAHDI en el archivo extensions.conf
agregamos dentro del contexto que se definió para las llamadas en este caso from-internal, ahí
debe también ir el dial para los dispositivos SIP.

exten => 1234,1,Dial(DAHDI/2-1,30,Ttm)

exten => 1234,n,Hangup

Ahora desde un anexo SIP marque el número 1234 el cual desvía al canal DAHDI, sonará el teléfono
analógico, y viceversa marque del teléfono analógico al anexo SIP.

18
Configuración de teléfonos IP y canales

Plan de discado o dial plan

El dial plan es la parte central de cualquier sistema Asterisk, porque con el dial plan definimos
la configuración de la central telefónica indicando el enrutamiento de llamadas salientes y
entrantes. Para resumir es una lista de comandos o instrucciones lógicas de la centralita.
El dial plan de Asterisk es 100% personalizable, se puede realizar cualquier procedimiento,
entonces tenemos que entenderlo.

2.1. Sintaxis del dial plan


Los comandos lógicos se deben de especificar en el archivo de configuración
extensions.conf y este archivo se encuentra en el directorio /etc/asterisk/
El plan de discado se basa en cuatro partes o conceptos importantes:
- Contextos
- Extensiones
- Prioridades
- Aplicaciones

La sintaxis es:
[contexto]
exten=>extensión, prioridad, aplicación()
Ejemplo:
[prueba]
exten=>201,1,answer()

2.1.1. Contextos
Se puede crear uno o varios contextos. Por jerarquía, un contexto es la agrupación de
extensiones.
Los contextos tienen un único nombre, por ejemplo para aplicar políticas de seguridad.
Ya que Asterisk difiere en su comportamiento cuando un usuario local marca 1 o
cuando el llamante marca igual 1.

Algunas características de los contextos son:

19
Configuración de teléfonos IP y canales

• Seguridad, permite asignar llamadas a solo ciertos teléfonos.


• Menús multinivel.
• Rutear llamadas basadas en el número de extensión
• Autenticación pedir contraseñas a ciertas extensiones para hacer llamadas.
• Privacidad
• Horarios diurno/nocturno
Al definir un usuario sip.conf o iax.conf, a este le asociamos un contexto, por lo que solo
ese usuario podrá marcar las extensiones incluidas en su contexto.
[prueba]
exten=>1234,1,Noop (esto es una prueba)
exten=>1234,n,Noop(Esto es otra prueba)
En este ejemplo el contexto le llama prueba, el cual contiene 2 extensiones con 2
prioridades, siempre la primera prioridad será 1, las que siguen pueden ser numeradas
o solamente poner “n”, esto realiza el incremento automáticamente de la unidad.
La característica de los contextos es que estos van entre corchetes “[]”. El nombre
acepta letras desde la A hasta la Z (mayúscula y minúscula), números del 0 al 9, el
guion bajo (_) y el punto (.), No se debe usar espacios en los contextos y permite 79
caracteres.
Se tiene 2 contextos especiales.
[general].- Este contexto contiene ajustes generales del Dial Plan
[globals].- Este contexto contiene “variables globales”.
Es por ello que evitemos llamar a nuestros contextos con estos 2 nombres.

Include
Una de las características que permite utilizar otras extensiones de un contexto dentro
de otro, es gracias a include.
Dentro del contexto que queremos agregar otro contexto usamos lo siguiente:
Include=>contexto
Esto quiere decir que incluimos la reglas del contexto, también es importante el orden
de cómo se las incluye, mientras más arriba este este se ejecuta primero.
[internacional]
include=>local

2.1.2. Extensiones
Una extensión por lo general nos referimos a un número, que cuando este número es
marcado realizar las instrucciones que se indicaron, en la aplicación.
Dentro de cada contexto se puede definir una o varias extensiones.
Una extensión está compuesta de tres componentes:

20
Configuración de teléfonos IP y canales

• El nombre (o número) de la marcación.


• La prioridad de ejecución del comando.
• La aplicación o el comando que se ejecuta.

Estos 3 componentes deben estar separados por comas:


exten=>nombre,prioridad,aplicación()
exten=>101,1,Answer()

2.1.2.1. Extension “s”


Cuando se necesita ingresar a un contexto sin un destino de extensión específico.
La extensión “s” siginica “comienzo”.
[ingreso]
exten=>s,1,aplicacion()
exten=>s,2,aplicacion()
exten=>s,3,aplicacion()

2.1.2.2. Manejo de las entradas no válidad(i) y tiempo (t)


Al marcar una extensión que no sea válida la llamada es derivada a la extensión
“i”.Cuando el tiempo de espera predeterminado se pasa o el cliente demora en
marcar un digito este se pasa a la extensión “t”.
Ejemplo:
[entrante]
exten=>102,1,Answer()
exten=>102,2,Background(ingrese-
exten=>102,2,Background(ingrese-ext-
ext-usuario)
exten=>102,3,WaitExten()
exten=>i,1,Playback(pbx-
exten=>i,1,Playback(pbx-incorrecta)
exten=>i,2,Goto(entrante,102,1)
exten=>t,1,Playback(vm-
exten=>t,1,Playback(vm-adios)
exten=>t,2,Hangup()
exten=>t,2,Hangup()
Al usar la i y la t en nuestro plan de discado es lo vuelva más personalizado.

2.1.
2. 1.3
1. 3. Prioridades
Cada extensión tiene diferentes etapas, a este orden se llama prioridades.
La prioridad está determinada por un número o una letra n, la n incrementa la unidad
y la hace consecutiva.
Por ejemplo estos 2 contextos se ejecutan en el mismo orden.
[entrante]
exten=>201,1,Answer()
exten=>201,2,Playback(hola)
exten=>201,3,Hangup()

21
Configuración de teléfonos IP y canales

[entrante]
exten=>201,1,Answer()
exten=>201,n,Playback(hola)
exten=>201,n,Hangup()
Ambos contextos significa los mismo por más que tenga número en la prioridad o
contenga n, pero si es importante y necesario el número 1.
También existe lo que son prioridades con etiquetas (label), la sintaxis es la siguiente:
exten=>102,n(label),aplicación[]

2. 1.4.
1. 4. Aplicaciones
Las aplicaciones son variadas, cada aplicación ejecuta una acción específica sobre el
canal, pueden ser contestar, colgar un canal, contestar un canal, tocar una música, etc.
Algunas veces las aplicaciones que no necesiten algún argumento adicional como son
Answer() y Hangup(), pero cuando se necesita un argumento con el cual tiene que
trabajar este va dentro del paréntesis, por lo general cuando se pone más de 1
argumento estos van separados por comas u ocasionalmente también puede verse que
algunos se separan con el carácter de tubería(|).
Algunas aplicaciones básicas y muy usadas tenemos:
- Answer().-
Answer().-Contesta un canal que es llamado.
- Wait(n).-
Wait(n).- Espera un tiempo determinado, pero ignorando los dígitos de marcado.
- WaitExten(n).
WaitExten(n). Espera un tiempo determinado, pero gestionando los dígitos
marcados.
- WaitMusicOnHold(n).-
WaitMusicOnHold(n).-Reproduce audio de espera durante n segundos.
- Busy().-
Busy().- Emite una señal de ocupado al origen.
- Hangup().-
Hangup().- Cuelga el canal que está activo.
- Ringing().-
Ringing().- Envía señal de tono de llamada lo que hace el timbrar el teléfono.
- Dial(tipo/identificador,timeout,opciones,url).
Dial(tipo/identificador,timeout,opciones,url). Marca un canal específico.
- Goto(contexto,extension,prioridad).
Goto (contexto,extension,prioridad).Realiza
(contexto,extension,prioridad). un saldo hacia el contexto, extensión y
prioridad del argumento.
- GotoIf(cond
GotoIf(condición
(cond ición ? prioridad1:prioridad2). Si la condición se cumple va a la
prioridad 1 si no se cumple pasa a la prioridad2.
- GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[[context|]exten|]priority
GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[[context|]exten|]priority
).Cumple
). la misma función que GotoIf pero tomando en cuenta la fecha y hora actual.
- Playback(archivo). Reproduce el archivo de sonido, cuando termina la
reproducción continua a la siguiente extensión.
- Background(archivo). Reproduce el archivo de sonido, pero la ejecución es
inmediata.
- SayDigits(dígitos). Reproduce los dígitos.

Para conocer la lista completo puede ingresar al siguiente link:


https://wiki.asterisk.org/wiki/display/AST/Dialplan+Applications

22
Configuración de teléfonos IP y canales

2.2. Variables en Asterisk


Al utilizar variables en el dial plan de Asterisk, nos ayuda a reducir mecanografía,
generar claridad y orden a nuestra lógica de dial plan.
Para nosotros realizar la variable es simple y hacer referencia de su valor sigue la
siguiente sintaxis:
exten=>301,1,Dial(${LUIS}
${LUIS})
${LUIS}
El ejemplo anterior indica que si marcamos 301 llamamos al canal y al número
establecido en la variable.
Existen 3 tipos de variables:
- Variables globales
- Variables de canal
- Variables de entorno

2.2.1. Variables globales


Estas variables se definen en [globals] y pueden ser utilizadas por todos los contextos
en cualquier momento.
También se pueden definir variables dentro de un contexto que no sea globales
utilizando la aplicación GLOBAL().
[globals]
LUIS=SIP/202
[directorio]
exten=>205,1,Set(GLOBAL(MARCO)=SIP/Marco)

2.2.2. Variables de canal


Estas variables solo se asocian con un canal en particular.
Existen varias variables predefinidas de canal que están disponibles para el uso en el
dial plan.
Se definen a través de la palicación SET():
exten=>222,1,Set(MAGICNUMBER=42)
Set(MAGICNUMBER=42)
Algunas de las variables más importantes son:
${CALLERID}
${CALLERID}.-
ERID} ID actual, nombre y número.
${CONTEXT}.-
${CONTEXT} Nombre del contexto actual
${EXTEN}.-
${EXTEN} Extensión actual.
${CHANNEL].-
${CHANNEL] Nombre del canal actual.
${DIALSTATUS}.-
${DIALSTATUS} Estado de la llamada: UNAVAILABLE, CONGESTION, BUSY,
NOANSWER, ANSWERED, CANCEL o HANGUP.
${DATETIME}.-
${DATETIME} Hora actual.

23
Configuración de teléfonos IP y canales

${EPOCH}.-
${EPOCH} El tiempo de UNIX tomado en segundos desde el 1 enero de 1970
${PRIORITY}.-
${PRIORITY} La prioridad actual.
${UNIQUEID}.-
${UNIQUEID} El identificador único de una llamada.
Para conocer más de estas variables pueden ingresar al siguiente link:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Standard+Channel+Variables

2.2.3. Variables de entorno


Estas variables pueden acceder a variables de entorno de UNIX en Asterisk. Estas son
referenciadas mediante la aplicación ENV().
La sintaxis:
$ENV{(var)},
$ENV{(var)}, donde var es la variable de entorno UNIX que dese referenciar.
No son muy utilizadas en el dial plan pero están disponibles si se necesitan.
Por ejemplo:
${ENV(ASTERISK_PROMPT)}.-
${ENV(ASTERISK_PROMPT)}.- Muestra el prompt actual al CLI de asterisk.
${ENV(RECORDED_FILE)}
${ENV(RECORDED_FILE)}.-
LE)} Nombre del archivo grabado por última vez con el
comando record.

2.3. Patrones de Extensiones


Todos los patrones deben empezar con un guion bajo (_).
Seguido del guion bajo se puede utilizar uno o varios caracteres según sea necesario,
los caracteres a utilizar son:
- X .- Coincide con cualquier dígito entre 0-9
- Z .- Coincide con cualquier dígito entre 1 y 9
- N.- Coincide con cualquier dígito entre 2 y 9
- [1237-
[1237 -9].-
9] Coincide con cualquier dígito colocado entre los [].
- . (punto).-
(punto) Significa uno o más caracteres
- ! (bang).-
(bang) Significa cero o más caracteres

“_.” Esta expresión no se debe utilizar así, pero si se puede utilizar “_X.”
Para poder entender cómo funciona es colocar estos caracteres en donde va el número
de la extensión por ejemplo:
exten=>_NXX,1,Playback(Gracias)
La extensión anterior indica que si se marca un número entre 200 y 999 se escuchará el
archivo de sonido gracias.
Entonces existen varias combinaciones en estos patrones según sea el caso, pero
también recordar que si hay 2 patrones que coincidan el que se utiliza es el más
específico.
Supongamos que queramos marcar el 399-1012

24
Configuración de teléfonos IP y canales

exten=>_399XXXX,1,Playback(dígitos/1)
exten=>_39910XX,2,Playback(dígitos/2)
Para este caso la segunda línea será ejecutada porque es la más específica.
Variable
Varia ble ${EXTEN}
exten=>_ZXX,1,SayDigits(${EXTEN})
La aplicación SayDigits() muestra los 3 últimos dígitos marcados.
${EXTEN:x}.-
${EXTEN:x} x es el lugar donde se desea recibir el marcado, de izquierda a derecha.
Por ejemplo EXTEN es 93991012
Si ponemos ${EXTEN:1} el valor que devolverá será 3991012,
3991012 elimina el primer dígito si
el 1 fuera remplazado por 2 el valor que devolverá será 991012
${EXTEN:x:y}.-
${EXTEN:x:y} x es el lugar de inicio, y es el número de dígitos que devolverá.
Por ejemplo EXTEN es 193991012
Si ponemos ${EXTEN:2
${EXTEN:2 :3} el valor que devolverá será 399,
399 elimina todos los demás
dígitos, pero por ejemplo si deseamos el valor de 101 podemos poner de dos formas; la
primera es ${EXTEN:5:3} esto nos devolverá 101,
101, la segunda forma es ${EXTEN:-
${EXTEN:-4:3}
también de esta forma obtendremos 101.

2.4. Operadores
Las expresiones si bien hemos visto es una combinación de variables, valores y
operadores con la finalidad de poder obtener un resultado para que esta pueda ser
evaluada por otra aplicación.

2.4.1. Operadores Booleanos


Estos evalúan si la expresión es correcta o no.
Expr1 | expr2. Es también conocido como “or” ya que devuelve 1 si la expr1 es
correcta (no es una cadena vacía ni cero). De lo contrario, devuelve la evaluación de
Expr2.
Expr1 & expr2. Este operado llamado “and” devuelve 1 si las 2 expresiones son
verdaderas (es decir, ninguna expresión es cadena vacía o cero). De lo contrario,
devuelve 0.
Expr1 {=,>,>=,<,<=,!=} expr2.Estos operadores retornan el resultado de la
comparación de las dos expresiones sean enteros o cadenas. Es 1 si es verdadero y
0 si es falso.

2.4.2. Operadores matemáticos


Expr1 (+,-) expr2. Operador resta o suma.
Expr1 (*, /, %) expr2. Operador multiplicador, división y residuo.

Ejemplo:
$[${valor1}+500]

25
Configuración de teléfonos IP y canales

Suma 500 a la variable de valor 1.


Otro ejemplo:
exten=>101,1,Set(TEST=$[${valor1}-
exten=>101,1,Set(TEST=$[${valor1}-10])
Le asigna el valor de la expresión a la variable TEST.
2.4.3. Operadores de expresión regular
Expr1:expr2. Siendo expr2 una expresión regular comprueba si expr1 es una
expresión o subexpresión regular de expr2, si lo es la devuelve sino devuelve 0.

26
Configuración de teléfonos IP y canales

Ejemplos

Ejemplo 01
Por ejemplo nos piden crear un usuario SIP, que tenga la extensión 2005 y su identificador sea
Recepción.
Lo primero que tenemos que hacer es ir hacia nuestro archivo sip.conf que se ubica en el
directorio /etc/asterisk/
Ingresamos las siguientes líneas dentro del archivo.
[general]
context=default
port=5060.
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.
srvlookup=yes Habilita servidor DNS SRV.
[2005]
2005 ]
type=friend.
type=friend Puede recibir y hacer llamadas.
secret=1234
qualify=yes.
qualify=yes Tiempo de latencia no superior a 2000 ms.
nat=no
host=dynamic.
host=dynamic El dispositivo se registra con una IP variante.
canreinvite=no.
canreinvite=no Asterisk por defecto trata de redirigir.
context=internal . El contexto que controla todo esto.
callerid=Recepcion <2005> . El identificador mostrará esto en la pantalla.

Ejemplo 02
Nos piden crear un dial plan para realizar llamadas nacionales y otro para llamadas
internacionales, teniendo en cuenta que tenemos 2 canales DAHDI, el primero con salida
nacional y el segundo canal con salida nacional e internacional, ambos canales están
agrupados en el grupo 2.
Para empezar todo lo referente al dial plan se ve en el archivo extensions.conf, es por ello que
debemos crear 2 extensiones para que esto funcione.
Ingresamos a nuestro archivo extensions.conf que se encuentra en el directorio /etc/asterisk/
E ingresamos los siguientes parámetros:

27
Configuración de teléfonos IP y canales

[general]
static=yes
writeprotect=yes
[salida]
include=>salida-
include=>salida -local
include=>salida-
include=>salida -internacional
[salida-
[salida -local]
exten=>_NXXXXXX,1,dial(dahdi/g2/${EXTEN},20,Trt)
exten=>_NXXXXXX,2,hangup
exten=>_NXXXXXX,2,hangup
[salida-
[salida -internacional]
include=>salida-
include=>salida -local
exten=>_00ZZ.,1,dial(dahdi/1/${EXTEN},20,Trt)
exten=>_00ZZ.,2,hangup
Y para que esta regla se cumpla nuestro usuario SIP deben tener como contexto a salida, en
la opción context=salida

28
Configuración de teléfonos IP y canales

IV. Ejercicios

Ejerc ici o 1
Dentro del archivo sip.conf el parámetro context a que nos referimos.

a) Nombre del usuario


b) Idioma a utilizar
c) Canal
d) Contexto
e) N.A.

Ejerc ici o 2
Indicar cuales son los 3 tipos de usuarios que puede tener SIP

a) point
b) friend
c) peer
d) dahdi
e) user

Ejerc ici o 3
Sobre el Dial Plan que es lo que va entre corchetes “[]”

a) extensión
b) prioridad
c) contexto
d) aplicación
e) N.A.

Ejerc ici o 4
Con que comando incluimos las extensiones de otro contexto para que puedan ser usadas
por un contexto diferente.

a) add
b) get
c) set

29
Configuración de teléfonos IP y canales

d) include
e) asterisk –rvvvv

Ejerc ici o 5
Cree un dial plan para el ingreso de las llamadas. Para su ayuda revise la extensión “s”

30
Instalación de Asterisk

Mapa conceptual

Asterisk

Se divide en

Canales DIAL plan

IAX DAHDI Contextos Extensiones Prioridades Aplicaciones


SIP

Archivo sip.conf Archivo Números y “s”,


Archivo
iax.conf “i”, “t”
sytem.conf [General]
General ] Predefinidas
Números y
[globals]
“n”

Archivo dahdi-
dahdi - Variables
channels.conf Contextos globales
personalizados Etiquetas
include>contexto

Chan_dahdi.conf
Chan_dahdi.conf Variables de
canal

Herramientas de Dahdi Variables de


enterno

Fuente: Elaboración propia

31
Configuración de teléfonos IP y canales

Glosario

• DAHDI.
DAHDI. Canales que conectan teléfonos y líneas telefónicas ordinarias utilizando
hardware Digium.
• SIP.
SIP . Canales que conectan dispositivos SIP
• IAX
AX.
AX Canales que utilizan el protocolo IAX por lo general se usa entre servidores
Asterisk.
• H323.
H323 Canales que se conectan con dispositivos H323
• Skinny.
Skinny Canales que conectan dispositivos cisco utilizando el protocolo skinny.

34
Bibliografía

— Libros de con sulta


• VILLAR FERNÁNDEZ, Eugenio Eduardo (2010) Virtualización de servidores de
telefonía IP en GNU/Linux: Contiene información sobre la Virtualización y Asterisk.
(Consulta: 24 de Octubre de 2015)

— Document os webs
• Cisco (2008). Recuperado el 16 de julio del 2015 de:
http://www.cisco.com/cisco/web/support/LA/7/73/73295_bwidth_consume.html

33

También podría gustarte