Manual asterisk dns srv

56
El Salvador, San Salvador 5 de abril de 2014 MANUAL DE INSTALACION Y CONFIGURACION ASTERISK 12.1.1 y DNS-SRV LUIS ALEJANDRO REGALADO MORENO

description

Configuracion de asterisk y dns-srv (hecho en El Salvador)

Transcript of Manual asterisk dns srv

Page 1: Manual asterisk dns srv

El Salvador, San Salvador 5 de abril de 2014

MANUAL DE INSTALACION Y CONFIGURACION ASTERISK 12.1.1 y DNS-SRV

LUIS ALEJANDRO REGALADO MORENO

Page 2: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

Contenido

INTRODUCCION ........................................................................................... 3

INSTALACION Y CONFIGURACION DE ASTERISK. .......................................... 4

Pre-Instalación Asterisk. ........................................................................... 4

Instalando Asterisk ................................................................................. 10

Configurando Asterisk (Nuestro primer DIALPLAN) ................................ 20

SIP.CONF ....................................................................................... 20

EXTENSIONS.CONF ........................................................................ 28

CONFIGURACION DE DNS SRV EN UNA CENTRAL ASTERISK ....................... 41

DNS (Domain Name Server) .............................................................. 41

SRV (Services Record) ....................................................................... 41

ANEXOS ..................................................................................................... 50

BIBLIOGRAFIA ........................................................................................... 55

Copyright .................................................................................................. 56

Page 3: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

3

INTRODUCCION A lo largo de los años el área de la telefonía ha sufrido cambios elevados con lo que respecta a

plantas telefónicas y protocolos de comunicación, pues en un momento y actualmente en algunos

países se siguen ocupando plantas telefónicas hibridas (análogas/digitales), pero con la nueva

innovación de las telecomunicaciones (a nivel de redes, desarrollo de software, etc) surge la

necesidad de incorporar nuevas plantas telefónicas, que aparte de contener las mismas funciones

que la de una central hibrida (ISDN) contengan además nuevas mejoras y parámetros de seguridad,

es de ahí, que nace Asterisk; que no es nada más que un software libre bajo licencia GPL que

proporciona funcionalidades similares a la de una PBX cualquiera, con la única diferencia que trabaja

bajo la red de datos.

Este manual está diseñado para aquella persona que sea nueva en el ámbito de la telefonía IP, y

quiera introducirse en la práctica básica de esta nueva tecnología llamada VoIP.

Este manual no tiene como objetivo introducir al lector a la administración de servidores, pues se

asume que el mismo ya tiene los conocimientos básicos sobre la configuración y administración de

Linux Servers.

El manual se encuentra compuesto por dos temas diseñados a modo de taller, en la bibliografía se

anexan las direcciones y libros a los cuales el lector se puede apoyar para una mejor comprensión

del tema.

Los dos temas a tocar en este manual son:

Instalación y configuración de Asterisk

Configuración de DNS SRV en una Central Asterisk

Page 4: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

4

INSTALACION Y CONFIGURACION DE ASTERISK.

Asterisk es una aplicación para controlar y gestionar comunicaciones de cualquier tipo, ya sean

analógicas, digitales o VoIP mediante todos los protocolos VoIP que implementa.

En este apartado detallaremos en breves pasos su instalación y una pequeña configuración básica

para una simple comunicación entre dispositivos SIP.

Pre-Instalación Asterisk.

Paso1:

Lo primordial en una instalación de un servidor Asterisk es tener actualizado nuestro servidor a su

versión más reciente. En nuestro caso estamos trabajando sobre Ubuntu Server 12.04 i386, por

consiguiente es recomendable que todos los comandos que se detallan se hagan a nivel de usuario

root.

root@voipb:~# apt-get update

root@voipb:~# apt-get dist-upgrade

Con dichos comandos descargamos los paquetes más actualizados de nuestra versión del servidor,

solamente se debe esperar un tiempo prudencial (dependiendo del ancho de banda que se tenga)

para que termine la descarga e instalación de dichos paquetes.

Luego de eso instalamos las dependencias necesarias para la instalación de Asterisk:

root@voipb:~# apt-get install build-essential linux-headers-`uname -r` subversion libncurses5-

dev libssl-dev libxml2-dev vim-nox gawk wget apache2

Page 5: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

5

Es recomendable crear un nuevo usuario y grupo para Asterisk, esto se hace ejecutando los

siguientes comandos:

root@voipb:~# adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX

user"

root@voipb:~# adduser www-data asterisk

Paso 2:

Una vez actualizado nuestro servidor, procedemos a crear directorios y descargar las dependencias

necesarias para la instalación de nuestro Asterisk.

Un punto muy importante a definir es con que versión de Asterisk queremos trabajar, en nuestro

caso trabajaremos con la versión 12.1.1-Standard, pero igualmente pueden trabajar con las

diferentes versiones que se encuentran disponibles en http://www.asterisk.org; versiones

anteriores a la 12.1.1-Standard son versiones LTS (Long Time Support) es decir que son más estable

que una versión Standard.

Page 6: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

6

Una vez aclarado esto pasamos a la lista de comandos siguientes:

root@voipb:~# mkdir -p ~/src/asteriskb/asterisk

root@voipb:~# cd ~/src/asteriskb/asterisk/

root@voipb:~/src/asteriskb/asterisk# wget

http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz

Page 7: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

7

Con los comandos anteriores descargamos la versión de Asterisk que necesitamos.

Una vez finalizada la descarga tendremos un archivo llamado asterisk-12-current.tar.gz que es un

archivo comprimido, esto podemos verlo aplicando el comando ls.

Ahora procedemos a descomprimirlo con el siguiente comando:

root@voipb:~/src/asteriskb/asterisk# tar zxvf asterisk-12-current.tar.gz

Con eso ya tenemos nuestro archivo de descarga descomprimido, generándonos asi una carpeta

llamada asterisk-12.1.1

Page 8: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

8

Asterisk nos permite instalar una gran cantidad de módulos y aplicaciones que podemos utilizar para

nuestra central telefónica, generalmente estos módulos o aplicaciones podemos seleccionarlos

ejecutando make menuselect durante la instalación de Asterisk, pero estos módulos y aplicaciones

tienen varias dependencias que podemos satisfacer fácilmente ejecutando dos scripts que nos

provee el paquete de instalación mediante la ejecución de las siguiente líneas:

root@voipb:~/src/asteriskb/asterisk# cd asterisk-12.1.1/

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# ./contrib/scripts/install_prereq install

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# ./contrib/scripts/install_prereq install-

unpackaged

Es posible que durante la instalación de estas dependencias, nos salga una pantalla pidiéndonos el

prefijo de nuestro país, si no sabes cuál es el prefijo telefónico de tu país puedes recurrir al siguiente

enlace web: http://es.wikipedia.org/wiki/Anexo:Prefijos_telef%C3%B3nicos_internacionales este

prefijo lo utiliza nuestra central Asterisk para la homologación de los números locales y distinguir a

que localidad mundial pertenece dicha central Asterisk.

Page 9: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

9

Una vez hecho esto ya tenemos todo listo para instalar nuestro Asterisk en nuestro servidor.

Page 10: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

10

Instalando Asterisk

El orden para la instalación de Asterisk se realiza de la siguiente forma:

LibPRI

DAHDI

Asterisk

Se hace en este orden para garantizar que los scripts de instalación de Asterisk no tengan ningún

problema al momento de verificar las dependencias necesarias para la ejecución de varios módulos

integrados en Asterisk 12.1.1-Standard.

Paso 1:

Instalando LibPRI

LibPRI es una librería encargada de dar soporte a señalización de E1/T1. Se instala de la

siguiente forma:

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# cd ~/src/asteriskb/

root@voipb:~/src/asteriskb# mkdir libpri

root@voipb:~/src/asteriskb# cd libpri/

root@voipb:~/src/asteriskb/libpri# wget

http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz

root@voipb:~/src/asteriskb/libpri# tar zxvf libpri-1.4-current.tar.gz

root@voipb:~/src/asteriskb/libpri# cd libpri-1.4.14/

root@voipb:~/src/asteriskb/libpri/libpri-1.4.14# make

Page 11: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

11

root@voipb:~/src/asteriskb/libpri/libpri-1.4.14# make install

Paso 2:

Instalando DAHDI

DAHDI es un paquete de soporte para hardware (drivers de tarjetas E1/T1).

Se instala de la siguiente forma:

Cabe mencionar que si su Ubuntu Server es la versión de 64 bits se debe ejecutar el siguiente

comando:

ln -nsf /usr/src/linux-headers-`uname -r`/include/asm-x86 /usr/src/linux-headers-

`uname -r`/include/asm

Esto le genera el soporte necesario para el servidor de 64 bits

Luego se ejecutan los siguientes comandos:

root@voipb:~/src/asteriskb/libpri/libpri-1.4.14# cd ~/src/asteriskb/

root@voipb:~/src/asteriskb# mkdir dahdi

root@voipb:~/src/asteriskb# cd dahdi

root@voipb:~/src/asteriskb/dahdi# wget

http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-

complete-current.tar.gz

root@voipb:~/src/asteriskb/dahdi# tar zxvf dahdi-linux-complete-current.tar.gz

root@voipb:~/src/asteriskb/dahdi# cd dahdi-linux-complete-2.9.1.1+2.9.1/

Page 12: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

12

root@voipb:~/src/asteriskb/dahdi/dahdi-linux-complete-2.9.1.1+2.9.1# make

root@voipb:~/src/asteriskb/dahdi/dahdi-linux-complete-2.9.1.1+2.9.1# make install

El comando anterior nos genera la siguiente salida:

Ahora instalamos los init scripts

root@voipb:~/src/asteriskb/dahdi/dahdi-linux-complete-2.9.1.1+2.9.1# make config

Page 13: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

13

Al ejecutar dicho comando nos genera los siguientes mensajes:

“No hardware found” ese mensaje nos indica que no se ha encontrado ninguna tarjeta de

E1/T1 instalada en nuestro equipo.

Luego de todo eso ya tenemos instalado el paquete de DAHDI.

Paso 3:

Instalando Asterisk

Luego de haber instalado LibPRI y DAHDI procedemos a instalar nuestro asterisk

anteriormente descargado, como recordaran, antes ya habíamos ejecutado los prereq-

install, que nos ayudan a descargar los módulos necesarios para la instalación de nuestra

centralita telefónica. Ahora solo procedemos a ejecutar los siguientes comandos.

Page 14: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

14

root@voipb:~/src/asteriskb/dahdi/dahdi-linux-complete-2.9.1.1+2.9.1# cd

~/src/asteriskb/asterisk/asterisk-12.1.1/

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# ./configure

Si todo está bien nos generaría la siguiente salida:

Aquí se podrían ocupar 2 opciones:

a) Make menuselect, que nos genera una pantalla para que nosotros podamos elegir que

queremos instalar en nuestra centralita, por lo general se deja asi como esta, pero si se

necesitase opciones más avanzadas para Asterisk se recurre a este menú para aplicarlas.

Page 15: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

15

b) Make, que sirve para generar todos los paquetes de instalación sin ninguna alteración.

En nuestro caso ejecutaremos:

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# make

Esto nos genera la siguiente pantalla:

Page 16: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

16

Indicándonos que ya estamos listo para instalarlo.

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# make install

Page 17: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

17

Si todo se hizo como se debía nos tendría que dar el siguiente resultado:

Ahora ejecutamos el siguiente comando:

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# make config

Luego de eso instalamos los ejemplos de los archivos de configuración:

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# make samples

Page 18: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

18

Paso 4:

Por último y para terminar la instalación de Asterisk cambiaremos los permisos de algunos

directorios necesarios para correrlo.

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# chown asterisk. /var/run/asterisk

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# chown -R asterisk. /etc/asterisk

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# chown -R asterisk.

/var/{lib,log,spool}/asterisk

root@voipb:~/src/asteriskb/asterisk/asterisk-12.1.1# chown -R asterisk. /var/www/

Con esto damos por finalizada la instalación de nuestra central telefónica Asterisk, ahora solo lo

comprobamos escribiendo en la consola:

asterisk –rvvvvv

Si todo está correctamente instalado nos aparecería la consola de Asterisk.

Page 19: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

19

Page 20: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

20

Configurando Asterisk (Nuestro primer DIALPLAN)

SIP.CONF

Una vez instalado Asterisk tendremos que crear la configuración necesaria por poder

intercomunicar dos terminales SIP, esto se hace desde un archivo llamado sip.conf, el cual se

encarga de administrar todos aquellos usuarios SIP que tengamos en nuestra red hay archivos como

iax.conf, que al igual que el sip.conf es el encargado de administrar todos aquellos usuarios con

terminales que soporten el protocolo IAX; por el momento nos centraremos en la manipulación y

uso del archivo sip.conf ya que este es el comúnmente usado en la práctica.

El archivo sip.conf está estructurado en tres bloques. La parte general donde hay que definir la

configuración general de nuestras extensiones, el bloque central donde configuraremos la

registración a nuestros proveedores VoIP y la parte final del archivo que es donde se configuran

todas las extensiones internas y externas.

En este apartado solamente tocaremos el archivo a nivel de comunicación interna, pues no

poseemos salida hacia un proveedor VoIP externo.

Definiendo el contexto [general]

Algunos parámetros generales del canal SIP son:

port: es el puerto que utilizará Asterisk para escuchar conexiones SIP entrantes. El

puerto SIP por defecto es el 5060.

binaddr: interfaz de red que utilizará Asterisk para atender las conexiones SIP

entrantes. El valor por defecto es 0.0.0.0, es decir, escucha en todas las interfaces de

red disponibles.

Page 21: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

21

context: contexto que se aplica a las llamadas entrantes. Se aplica cuando una cuenta

SIP no tiene definido un contexto.

videosupport: soporte de video en SIP. Permite los valores 'yes' o 'no'.

language: lenguaje utilizado por defecto para todos los clientes SIP.

allow: especificamos los códecs de sonido que vamos a utilizar. Permite valores como

'all', 'alaw', 'ulaw', 'gsm', etc.

disallow: códecs de audio que no vamos a permitir. Cuando vamos a restringir los

códecs de audio, lo mejor es siempre prohibirlos todos (disallow=all) y luego permitir

aquellos que queramos.

nat: habilitamos o deshabilitamos el soporte de nat para la extensión.

Un ejemplo para el contexto [general] seria el siguiente:

[general]

Port=5060

Binaddr=0.0.0.0

Context=default

Lenguaje=es

Disallow=all

Allow=alaw,gsm

Page 22: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

22

Configurando clientes SIP

Para configurar un cliente SIP se utilizan parámetros como los siguientes (los

parámetros expresados aquí son los más básicos pero a la vez el más importante para

la definición de un cliente SIP):

type: define la clase de conexión que tendrá el cliente. Hay tres tipos de clientes SIP:

peer: solo puede recibir llamadas.

user: solo puede realizar llamadas.

friend: puede recibir y realizar llamadas.

callerid: es el identificador del cliente, es decir, el nombre que aparecerá cuando se

realice una llamada.

username: usuario con el que nos conectaremos al servidor Asterisk.

secret: contraseña con la que se realizará la autenticación en Asterisk junto con el

username.

context: contexto asociado al cliente en el dialplan de Asterisk, es decir, contexto que

se aplicará en el fichero extensions.conf del cual hablaremos más adelante.

dtmfmode: Dual-Tone Multi-Frequecy (DTMF) se refiere a la marcación por tonos.

Normalmente le especifico que use el estandar rfc2833.

qualify: si se establece a 'yes' podremos monitorizar la extensión. Esta configuración

no es muy recomendable cuando tenemos muchas extensiones.

Page 23: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

23

host: dirección donde se encuentra conectado el dispositivo por default se le pone

“dynamic”

Aquí un ejemplo de la definición de una terminal SIP

[4000]

callerid=voipb

username=4000

secret=voipb

type=friend

host=dynamic

context=ext-voipb

qualify=yes

dtmfmode=rfc2833

Como pueden observar es bastante sencillo definir un dispositivo SIP, el problema que

cuando uno se topa con que quiere definir mas de 10 extensiones esta parametrizacion

se vuelve muy redundante, pero una de las prestaciones de Asterisk es que nos permite

el uso de mascaras. Esta funcionalidad nos permite crear una sección “madre” donde

se configuran todos los parámetros comunes

Para especificar que una sección actuara como una máscara se utiliza la siguiente

nomenclatura:

Page 24: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

24

[nombre_seccion](!)

Ahora aplicaremos mascara a nuestra extensión creada para ejemplificar:

[plantilla](!)

secret=voipb

type=friend

host=dynamic

context=ext-voipb

qualify=yes

dtmfmode=rfc2833

Ahora definimos la extensión 4000:

[4000](plantilla)

callerid=voipb

username=4000

Como se puede observar una máscara nos simplifica la definición de dispositivos SIP;

¿Sencillo no?, ahora hagamos la teoría una práctica.

Accesamos a la siguiente localidad:

root@voipb:~# cd /etc/asterisk/

Page 25: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

25

Si aplicamos un ls veremos que hay varios archivos, estos son los que se instalaron cuando nosotros

aplicamos make samples, para no confundirnos meteremos todos estos archivos a una sola carpeta

llamada samples:

root@voipb:/etc/asterisk# mkdir samples

root@voipb:/etc/asterisk# mv *.* samples/

root@voipb:/etc/asterisk# cp modules.conf ../

Ahora si aplicamos un ls veremos que ya no tenemos ninguno de estos archivos, excepto el

modules.conf asi que, ahora podremos trabajar mejor.

Muy bien, ahora crearemos nuestro propio sip.conf:

root@voipb:/etc/asterisk# nano sip.conf

Esto nos genera un archivo .conf, ahora solo queda crear nuestro contexto y las extensiones que

queramos, en mi caso agarraré las del rango 4XXX en su caso pueden agarrar el rango que estimen

conveniente (1XXX, 6XXX, 8XXX, etc.).

¡Comencemos!

Page 26: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

26

Sip.conf

[general]

bindaddr=0.0.0.0

bindport=5060

context=defaultb

disallow=all

allow=ulaw

allow=alaw

allow=gsm

;creando mascara para nuestras extensiones

[plantilla](!)

secret=voipb

type=friend

host=dynamic

context=ext-voipb

qualify=yes

dtmfmode=rfc2833

;Creando nuestras extensiones

Page 27: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

27

[4000]

callerid=voipb

username=4000

[4001]

callerid=voipb1

username=4001

[4002]

callerid=voipb2

username=4002

[4003]

callerid=voipb3

username=4003

[4004]

callerid=voipb4

username=4004

Page 28: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

28

Mi archivo sip.conf lo cree de la forma anterior. Ahora bien cabe decir que, el hecho de que nuestras

extensiones estén declaradas, no quiere decir que ya podamos configurar nuestros terminales para

comunicarnos.

EXTENSIONS.CONF

El archivo extensions.conf sin duda es el más importante para la puesta en marcha de

nuestra centralita. En él se define todo lo relacionado con el Dialplan. Cualquier número

marcado desde una extensión será procesado dentro de este archivo. Al igual que el sip.conf

está dividido en tres bloques:

La parte general donde se configuran algunos parámetros generales

Globals donde se definen las variables que se van a utilizar en la centralita

Ultima parte donde se encuentra toda la configuración de las llamadas.

Algunos de los parámetros que se pueden configurar en el contexto [general] de

extensions.conf son:

static: si se define como “yes” permite salvar el dialplan desde la consola de Asterisk.

writeprotect: protección frente a escritura, si se deja como “no” comandos como “save

dialplan” modificaran los ficheros de configuración.

autofallthrough: si esta activada esta opción, cuando una extensión haya acabado de

ejecutar sus prioridades o la lógica salte a una prioridad inexistente hará que la llamada se

cuelgue, señalizándola como BUSY, CONGESTION o HANGUP dependiendo de que sea ésta

la mejor opción para Asterisk

Page 29: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

29

clearglobalvars: si se desactiva las variables globales permanecerán con el valor que tienen

en memoria hasta que se reinicie Asterisk y a recargar el extensions.conf

priorityjumping: activa el salto de prioridad como respuesta, hay aplicaciones que tras su

ejecución devuelve una prioridad a la que se debe saltar. Para que esto suceda debe

activarse este parámetro.

En el archivo extensions.conf es común declarar aplicaciones, las cuales nos permiten

definir colgar una llamada, marcarla, etc. Alguna de ellas son:

answer(): contesta una llamada

hangup(): cuelga una llamada

dial(): realiza una llamada saliente

playback(): reproduce un archivo de sonido

Ahora que sabemos lo más básico para la manipulación del archivo extensions.conf, la

forma de crear prioridades es la siguiente:

Debido a que la extensión permanece igual durante el transcurrir de todas las prioridades

se creó el operando same=> para facilitar la codificación:

Page 30: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

30

Cabe mencionar que para facilitar las prioridades u otras opciones de Asterisk existen los

“Patrones de Marcado” que no son más que contracciones para generar más de una

posibilidad de marcación en la que podría caer un posible número que se marque desde un

terminal. En la siguiente tabla se muestran algunos Patrones de Marcado:

Muy bien ahora que ya comprendemos un poco el concepto básico de lo que es y lo que

hace el archivo extensions.conf creemos nuestro archivo.

root@voipb:/etc/asterisk# nano extensions.conf

[general]

static=yes

writeprotect=yes

autofallthrough=yes

clearglobalvars=no

priorityjumping=no

Page 31: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

31

[defaultb]

exten =>_x.,q,Hangup(21)

exten =>s,1,Hangup(21)

[ext-voipb]

exten=>_4xxx,1,Dial(SIP/${EXTEN})

same=>n,Hangup(16)

Este sería en su defecto nuestro archivo extensions.conf ahora estamos listo para realizar

pruebas de comunicación, pero antes en nuestro servidor deberíamos tener lo siguiente:

Bien ahora procederemos a hacer las pruebas correspondientes de comunicación:

Pero antes:

root@voipb:/etc/asterisk# service asterisk restart

root@voipb:/etc/asterisk# asterisk –rvvvvv

Una vez adentro de la consola de asterisk escribiremos lo siguiente:

voipb*CLI> module load chan_sip.so

Page 32: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

32

Dicho comando nos sirve para cargar el canal SIP, si todo está bien nos aparecería lo

siguiente:

Ahora comprobaremos que nuestras extensiones creadas en el sip.conf estén siendo

reconocidas por nuestro Asterisk esto se hace de la siguiente forma:

voipb*CLI> sip show peers

Page 33: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

33

El resultado es el siguiente:

Lógicamente no tenemos ninguna extensión en línea pues no hemos configurado ninguna.

Ahora el siguiente paso es configurar nuestros terminales SIP, en nuestro caso utilizaremos

softphones (X-Lite, Zoiper, 3CX, etc.).

Page 34: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

34

Configurando X-Lite

Paso 1:

El primer paso es descargar X-Lite de su página web:

https://www.counterpath.com/x-lite.html

Luego de descargarlo procederemos a instalarlo, en este punto no me detendré a explicar

cómo instalar un software, pues asumiremos que es sencillo; una vez instalado ejecutarlo.

Page 35: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

35

Paso 2:

El siguiente paso es configurar nuestra cuenta, de la siguiente forma:

Page 36: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

36

Nota: en “password” se pone el “secret que se puso en el contexto de la extensión en el

sip.conf y una vez configurado todos los parámetros presionar “ok”

Ahora nuestro softphones se encuentra registrado y listo para ser usado, a continuación se

presentan los mensajes que se envían a la hora del registro del terminal SIP (captura hecha

Page 37: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

37

con wireshark), así como la respuesta que brinda la consola del Asterisk a la hora de registrar

un dispositivo SIP.

Page 38: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

38

Esta es la parte donde te sientes satisfecho por todo lo que has hecho, pues ya has

configurado tu primera centralita Asterisk, ahora solo debemos registrar otra de las

extensiones que creamos en el archivo sip.conf y establecer una comunicación punto a

punto; como mi Dialplan consta del rango 4XXX trabajare con las extensiones 4000 y 4001.

Es muy importante que se deban realizar capturas con wireshark sobre lo que está

sucediendo al momento de comunicar dos dispositivos SIP, no me detendré a explicar el uso

de wireshark porque es demasiado extenso, pero puedes encontrar varios tutoriales en el

internet. Solamente pondré las capturas necesarias y el callflow que se origina al establecer

una llamada.

Page 39: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

39

Capturas Wireshark Asterisk.

Page 40: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

40

Las capturas anteriores pertenecen a una comunicación entre dos terminales SIP dichas

capturas respetan la RFC3761.

Hasta aquí hemos llegado a lo referido a la instalación y configuración de nuestra centralita

Asterisk.

Page 41: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

41

CONFIGURACION DE DNS SRV EN UNA CENTRAL ASTERISK

DNS (Domain Name Server)

DNS es un servicio que permite encontrar una dirección IP a partir de un nombre o viceversa.

En VoIP y servicios más avanzados se considera como una base de datos distribuida que

mantiene nombres alfanuméricos y sus correspondientes direcciones IP.

SRV (Services Record)

Con la introducción de SRV (RFC2782), los clientes DNS pueden consultar un dominio para

un servicio o protocolo en particular y obtener el nombre o dirección del servidor que presta

dicho servicio.

Este servicio es más que todo utilizado para distribuir la carga mediante el uso de varios

servidores para dar servicio a un único dominio

La unión de DNS SRV da lugar a un mecanismo creado para balanceo de carga y/o falla. En este

apartado veremos lo sencillo que es configurar nuestro servidor Asterisk con DNS SRV para crear

redundancia entre servidores.

Es importante detallar que a la hora de haber instalado nuestro Ubuntu Server se debió haber

instalado el Servidor de DNS, pero no te preocupes si no lo instalaste, en dado caso solo aplica el

siguiente comando:

root@voip:~# apt-get install bind9

Ahora accedemos a la carpeta donde se encuentran los archivos de configuración:

root@voip:~# cd /etc/bind/

Page 42: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

42

Si aplicamos un ls nos mostrara los archivos que ahí se encuentran, de los cuales el más importante

en nuestro caso es el name.conf.local a su vez este nos generara otros archivos que más adelante

explicaremos.

Ahora ponemos manos a la obra y lo primero que hay que hacer es determinar cómo nombraremos

a nuestro dominio y las direcciones donde se encuentran nuestras centralitas Asterisk, con estos

dos datos es suficiente para empezar a trabajar, en mi caso estos son mis datos:

Dominio: voipfree.com

Asterisk 1: 192.168.1.4

Asterisk 2: 192.168.1.8

Ahora bien, abrimos el archivo llamado named.conf.local en este archivo crearemos las diferentes

zonas que queramos en nuestro servidor DNS, en mí caso quedaría de la siguiente forma:

//creando zona de nuestro dominio "voipfree.com"

zone "voipfree.com" {

type master;

file "/etc/bind/db.voipfree";

};

//creando la zona de dirección inversa de nuestra red

zone "1.168.192.in-addr.arpa" {

Page 43: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

43

type master;

file "/etc/bind/db.192";

};

Al agregar las zonas necesarias para nuestros servidores hay que crear unos archivos nombrados

db.xxx en mi caso son dos:

db.voipfree

db.192

Es en estos archivos donde configuraremos todos los parámetros de nuestro servicio de DNS SRV,

pues bien, ahora comenzamos con la creación y edición de nuestro primer db:

db.voipfree

root@voip:/etc/bind# cp db.local /etc/bind/db.voipfree

root@voip:/etc/bind# nano db.voipfree

Page 44: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

44

En mi caso el archivo de configuración quedaría de la siguiente manera:

db.192

Este archivo es el encargado de crear nuestra dirección inversa de nuestra red

root@voip:/etc/bind# cp db.127 /etc/bind/db.192

root@voip:/etc/bind# nano db.192

En mi caso el archivo de configuración queda de la siguiente forma:

Page 45: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

45

Ahora ya tenemos listo nuestro servidor DNS SRV, solamente nos queda hacer pruebas y las

correspondientes capturas para ver cómo trabaja este servicio.

Pero antes de probar cambiaremos la dirección DNS de nuestro servidor de la siguiente forma:

root@voip:~# nano /etc/resolv.conf

Nos saldrá la siguiente pantalla:

En namesever ponemos la dirección de nuestro servidor DNS en mi caso es la

192.168.1.8 guardamos y ya estamos listo para realizar pruebas.

Page 46: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

46

NOTA IMPORTANTE:

Al tener un servidor DNS, es necesario que en los equipos se le cambie a la tarjeta de

red el DNS primario para que asi surtan efectos los cambios realizados en los terminales

SIP.

Muy bien, comencemos las pruebas:

Trazas de wireshark

Page 47: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

47

Callflow de una llamada DNS SRV

Page 48: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

48

Hasta aquí llega el apartado de configuración DNS SRV, solamente un consejo, hay que tener

paciencia ya que quizás no todo sale a la primera, al menos, en mi caso personal, pase dos horas

resolviendo problemas con respecto a los archivos de configuración de Bind9, es por eso que se

insiste con las capturas de trazas, pues estás nos ayudan a determinar dónde está el error o que

es lo que se está enviando mal, así como también la constante observación del log, este se puede

localizar en la siguiente ubicación: /var/log/syslog, esta es otra herramienta importante a la hora

de trabajar sobre Sistemas Linux, ya que aquí es donde quedan registrados todos los eventos que

suceden dentro de nuestro servidor.

Page 49: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

49

Page 50: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

50

ANEXOS

Page 51: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

51

Page 52: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

52

Page 53: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

53

Page 54: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

54

Page 55: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

55

BIBLIOGRAFIA Referencia Literaria

VoIP para el Desarrollo /Alberto Escudero-Pascual, Louise

Berthilson

Telefonia IP Asterisk /Cesar Pineda Gonzalez

Asterisk The Future of Telephony / Jim Van Meggelen, Leif Madsen

& Jared Smith

Curso Practico de Asterisk 11 / Ing. Eynar Lopez Garcia

Asterisk / Ing. Roberto Sanchez

Referencia Web

http://www.axelko.com/techblog/2013/09/curso-asterisk-iii-

extensiones-internas/

http://www.adminso.es/index.php/CONSOLA_DE_COMANDOS_(C

LI)

http://www.redeszone.net/gnu-linux/configurar-un-servidor-dns-

bind-en-linux-ubuntu/

http://blog.manuelviera.es/configurando-los-clientes-sip/

www.asteriskguru.com

www.asteriskdocs.org

www.asterisk.org

Page 56: Manual asterisk dns srv

MANUAL DE INSTALACION Y CONFIGURACION | ASTERISK 12.1.1 y DNS-SRV

56

Copyright

Este documento fue diseñado y redactado por Luis Alejandro Regalado Moreno

Es una recopilación y resumen de varios libros, tutoriales y documentos consolidados en este

único manual.

Se permite la distribución, modificación y edición del mismo siempre y cuando se mantenga la

identidad del autor y siempre y cuando se hagan saber las modificaciones que se han hecho ha

dicho manual al final del documento.

Software Utilizado:

Ubuntu Server 12.04.4 LTS 32BITS

Asterisk 12.1.1 STANDARD

WireShark 1.10.6 (Linux Version 32 BITS)

X-Lite Softphones (Bajo licencia de Windows XP)