manual asterisk en freebsd

18
Universidad Autónoma de Querétaro Facultad de Informática Ingeniería en Telecomunicaciones Conmutador Asterisk en FreeBSD Voz sobre IP ERICK GABRIEL CHAN LÓPEZ ENRIQUE GUDIÑO FRANCO MARCIA ASTRID CASTILLA PELAYO ING. JORGE VÁZQUEZ MARTÍNEZ Querétaro, Querétaro a 24 de Mayo del 2012

Upload: ery-chan

Post on 20-Jun-2015

1.931 views

Category:

Technology


2 download

DESCRIPTION

Manual de Asterisk en FreeBSD

TRANSCRIPT

Page 1: Manual Asterisk en FreeBSD

Universidad Autónoma de Querétaro

Facultad de Informática

Ingeniería en Telecomunicaciones

Conmutador Asterisk en FreeBSD

Voz sobre IP

ERICK GABRIEL CHAN LÓPEZ

ENRIQUE GUDIÑO FRANCO

MARCIA ASTRID CASTILLA PELAYO

ING. JORGE VÁZQUEZ MARTÍNEZ

Querétaro, Querétaro a 24 de Mayo del 2012

Page 2: Manual Asterisk en FreeBSD

2 | P á g i n a

Contenido

Introducción .................................................................................................................................. 3

Topología ....................................................................................................................................... 4

PBX Asterisk ................................................................................................................................... 4

Características ........................................................................................................................... 5

Codificadores de audio .............................................................................................................. 5

Protocolo de señalización ......................................................................................................... 6

Requerimientos ......................................................................................................................... 6

Instalación del GNU make ......................................................................................................... 7

Instalación del Asterisk.............................................................................................................. 8

Archivos de configuración ....................................................................................................... 11

Iniciar el servicio ...................................................................................................................... 15

Configuración clientes SIP y pruebas ...................................................................................... 15

Conclusión ................................................................................................................................... 17

Bibliografía .................................................................................................................................. 18

Page 3: Manual Asterisk en FreeBSD

3 | P á g i n a

Introducción

Los sistemas de comunicación han jugado un papel muy importante en el

desarrollo de cualquier empresa .Actualmente es difícil imaginar algún plan de

negocio, en el que no se incluya una pequeña inversión en la implementación

de una infraestructura de telecomunicaciones, que facilite la comunicación

tanto con el exterior como internamente.

Gracias a la aparición de las primeras centralitas telefónicas, más conocidas

como PBX (Private Branch eXchange), las empresas evitan conectar todos los

teléfonos de manera separada a la red de telefonía pública conmutada (PSTN,

por sus siglas en inglés), consiguiendo una infraestructura local de voz

independiente de cualquier proveedor de telefonía, pudiendo realizar las

llamadas internas de manera gratuita, evidentemente ahorrando costos.

Con la mejora de las tecnologías que nos rodean día a día, el fuerte

crecimiento de las redes IP y la aparición de nuevos protocolos de transmisión

en tiempo real se crean nuevos entornos en la voz sobre ip (VoIP).

La VoIP es un grupo de recursos que hacen posible que la señal de voz viaje a

través de Internet empleando un protocolo IP. Esto quiere decir que se envía la

señal de voz en forma digital, en lugar de enviarla en forma analógica a través

de circuitos de telefonía convencional como las redes PSTN.

El objetivo principal de este proyecto se basa en la implementación del PBX

Asterisk en una PC con el sistema operativo FreeBSD 8.2 que sea capaz de

sustituir a las costosas PBX.

Page 4: Manual Asterisk en FreeBSD

4 | P á g i n a

Topología

La siguiente topología ilustra cómo se considera la utilización del servidor

FreeBSD con el PBX Asterisk instalado y los clientes.

Workstation1, Workstation2 y Cellphone son los clientes y FreeBSD es el

servidor con el PBX Asterisk instalado.

Workstation1, Workstation2 y Cellphone deben ser capaces de realizar

llamadas entre ellos.

Cellphone se encuentra conectado al access point para tener conectividad con

el servidor.

PBX Asterisk

Asterisk es una aplicación que controla y gestiona comunicaciones de cualquier

tipo, ya sean analógicas, digitales o VoIP mediante todos los protocolos VoIP

que implementa.

Asterisk es Open Source basada en GPL y por lo tanto con las ventajas que

ello representa, lo que lo hace libre para desarrollar sistemas de

comunicaciones profesionales de gran calidad, seguridad y versatilidad.

Funciona como una central telefónica (PBX), es decir que permite conectar

terminales telefónicas de forma independiente al proveedor de telefonía. De

esta forma se consigue que todas las llamadas internas de una misma empresa

sean conmutadas directamente sin necesidad de salir al exterior por la red

pública de telefonía.

- PBX

FreeBSD

Workstation1

Workstation2

IP Cellphone

Page 5: Manual Asterisk en FreeBSD

5 | P á g i n a

Lo más interesante de Asterisk es que soporta muchos protocolos VoIP como

pueden ser SIP, H.323, IAX y MGCP, entre otros.

Características

Asterisk pese a ser una aplicación software ofrece las mismas características

que un PBX hardware:

Reducción de costos no solo por realizar las llamadas sobre la misma

red de datos, si no por ser una aplicación de código abierto.

Facilita la integración y desarrollo de nuevos servicios.

Compatible con una gran cantidad de protocolos VoIP y códecs.

Existe una gran cantidad de información disponible de Asterisk en línea

debido al interés cada vez mayor de las empresas.

Asterisk está formado por un núcleo principal encargado de gestionar todo el

sistema PBX. Sus funciones principales son:

Interconectar de forma automática cada llamada entre los usuarios

tomando en cuenta el tipo de protocolo utilizado por cada terminal.

Lanzar los servicios cuando sean necesarios.

Traducir y adaptar cada códec a cada terminal involucrado en la

comunicación.

Codificadores de audio

La señal de audio ha de ser digitalizada, comprimida y codificada antes de ser

transmitida por la red IP. Para ello se utilizan algoritmos matemáticos

implementados en software llamados códecs.

Existen diferentes modelos de códecs de audio utilizados en VoIP, y

dependiendo del algoritmo escogido en la transmisión, variara la calidad de la

voz.

Algunos de los códecs más utilizados son los siguientes:

Códec Ancho de banda (kbps) Retardo (ms) Patentado

G.711 64 20-30 No

G.726 16,24,32 20-30 No

G.723.1 6.3,5.3 37.5 Si

G.729 8 15 Si

GSM 13 20 No

Page 6: Manual Asterisk en FreeBSD

6 | P á g i n a

Protocolo de señalización

La señalización en VoIP tiene un papel muy importante en la red, ya que es la

encargada de establecer, mantener, administrar y finalizar una conversación

entre dos puntos. Además de ofrecer funciones de supervisión, marcado y QoS

en cada canal de transmisión. A continuación se describen los protocolos de

señalización más usados actualmente.

Protocolo Característica

H.323 Su principal característica es ofrecer servicios multimedia sobre redes que no garantizan QoS. A lo largo de los años se han hecho modificaciones para que cubra todas las necesidades de la VoIP. Pese a ser un protocolo bastante maduro y potente, el interés por utilizarlo es muy poco debido a su complejidad y a ciertas ineficiencias detectadas en conferencias con un número elevado de terminales.

SIP Protocolo para el control de llamas multimedia y la implementación de servicios telefónicos avanzados. Está basado en HTTP adoptando las características más importantes de este estándar como son la sencillez de sus sintaxis y una estructura cliente/servidor. El gran potencial de SIP reside en su flexibilidad.

IAX Fue desarrollado por Digium para la comunicación entre centralitas Asterisk aunque actualmente se ha implementado clientes que también soportan este protocolo. Su principal objetivo es minimizar el ancho de banda utilizado en la transmisión de voz y video a través de la red IP.

Requerimientos

Se espera contar con lo siguiente:

Una dirección IP estática en el servidor.

Tener conectividad con las estaciones de trabajo o terminales IP en la

red.

Seleccionar un protocolo de señalización VoIP (SIP, H.323, etc.)

Para la realización de este proyecto se utilizará Asterisk 1.8.6.0, esta versión

de Asterisk es una versión LTS (Long Term Support).

Se descarga el archivo Asterisk 1.8.6.0 desde la página de descargas de

Asterisk.

http://downloads.asterisk.org/pub/telephony/

Page 7: Manual Asterisk en FreeBSD

7 | P á g i n a

Para instalar Asterisk se necesita el GNU make, por default FreeBSD utiliza

una versión de make para FreeBSD el BSD make, por tal motivo se necesita

descargar e instalar el GNU make.

Se descarga de http://ftp.gnu.org/gnu/make/

Todos los archivos que se descargan desde un servidor externo se guardan

automáticamente en /root/Desktop/Downloads/.

Instalación del GNU make

Para tener una mejor administración de los programas que se instalan

podríamos copiar de la carpeta Downloads a root´s home y descomprimir.

Page 8: Manual Asterisk en FreeBSD

8 | P á g i n a

mkdir /root/MAKE

cp /root/Desktop/Downloads/make-3.82.tar.gz /root/MAKE

tar –xvzf /root/MAKE/make-3.82.tar.gz

Para la compilación e instalación del GNU make utilizamos el BSD make. Así

que nos situamos en la carpeta donde hayamos descomprimido el make y

ejecutamos los siguientes comandos:

./configure

make

make install

make clean

Después de todo esto el GNU make se encuentra instalado en el sistema, lo

que sigue es mover los estándares de BSD make para utilizar el GNU make,

así que modificamos el make situado en la carpeta bin.

mv /usr/bin/make /usr/bin/make.sav

Creamos una conexion a make gmake

ln –s /usr/local/bin/gmake make

Después de ejecutar los comandos anteriores el GNU make está listo para ser

usado y poder compilar Asterisk.

Instalación del Asterisk

Por cuestiones de estándar Linux, el Asterisk se sugiere ser descomprimido y

compilado en /usr/src. Así que copiaremos el archivo descargado de Asterisk a

/usr/src/ y los descomprimimos.

cp /root/Desktop/Downloads/asterisk-1.8.6.0.tar.gz /usr/src/

Page 9: Manual Asterisk en FreeBSD

9 | P á g i n a

tar –xvzf /usr/src/asterisk-1.8.6.0.tar.gz

Nos situamos en la carpeta descomprimida y ejecutamos los comandos para compilar

e instalar el Asterisk:

cd /usr/scr/asterisk-1.8.6.0

./configure

make

Page 10: Manual Asterisk en FreeBSD

10 | P á g i n a

make install

make samples

Page 11: Manual Asterisk en FreeBSD

11 | P á g i n a

make clean

Hay que recordar que el compilador que se utiliza ya no es BSD make, ahora

estamos utilizando el GNU make.

Archivos de configuración

Todos los archivos de configuración de Asterisk se encuentran en

/usr/local/etc/asterisk/.

Para la realización de este proyecto se utilizara el protocolo de señalización

SIP.

Page 12: Manual Asterisk en FreeBSD

12 | P á g i n a

Dirección IP Servidor VoIP: 10.0.0.254

Dirección IP Workstation1: 10.0.0.100

Dirección IP Workstation2: 10.0.0.101

Dirección IP Cellphone: 10.0.0.102

sip.conf

El archivo sip.conf es el archivo del canal SIP, en este archivo se configura

todo lo relacionado con el protocolo SIP, como la creación de las cuentas de

los usuarios SIP.

Así que lo editamos.

ee /usr/local/etc/asterisk/sip.conf

El archivo inicia con la sección [general] que contiene toda la información por

defecto de todos los usuarios. Por lo tanto escribiremos o editaremos las

siguientes configuraciones:

[general] localnet=10.0.0.0/255.255.255.0 ; Red y mascara de red local bindport=5060 ; Puerto SIP 5060 bindaddr=0.0.0.0 ; Dirección IP a utilizar, todas la posibles (0.0.0.0) allow =all ; Permitir todo tipo de codecs context=default ; Contexto por default (contestadora)

Donde:

bindaddr=0.0.0.0 significa que nuestro servidor VoIP puede tener cualquier

dirección IP.

context=default es el contexto que está por default en el archivo

extensions.conf, se sugiere dejar ese contexto en general y especificar

contextos en cada usuario.

Nota: En [general] existen opciones que deben ser comentadas o generarían

conflictos en la autenticación de los usuarios, por ejemplo, se comento el

udpbindaddr, y el tcpbindaddr.

Se crean usuarios SIP al final del archivo.

[0001] ; Usuario type=friend ; Tipo de conexión definida

Page 13: Manual Asterisk en FreeBSD

13 | P á g i n a

callerid= “workstation1”<0001> ; Información de identificación de llamada secret=a0001b ; Contraseña de registro host=dynamic ; Dirección IP dinámica context=freebsd-phones ; Las llamadas entrantes van a freebsd-phones [0002] ; Usuario type=friend ; Tipo de conexión definida callerid= “workstation2”<0002> ; Información de identificación de llamada secret=a0002b ; Contraseña de registro host=dynamic ; Dirección IP dinámica context=freebsd-phones ; Las llamadas entrantes van a freebsd-phones [0003] ; Usuario type=friend ; Tipo de conexión definida callerid= “cellphone”<0003> ; Información de identificación de llamada secret=a0003b ; Contraseña de registro host=dynamic ; Dirección IP dinámica context=freebsd-phones ; Las llamadas entrantes van a freebsd-phones

Existen 3 tipos de conexiones:

peer: Autentica llamadas salientes.

user: Autentica llamadas entrantes.

friend: Autentica tanto entrantes como salientes.

host=dynamic significa que este usuario puede tener cualquier dirección IP en

su estación de trabajo o teléfono IP.

context=freebsd-phones es un contexto que se crea en el archivo

extensions.conf.

extensions.conf

El archivo extensions.conf es el más importante en Asterisk y tiene como

misión principal definir el dialplan o plan de numeración que seguirá la

centralita para cada contexto y por tanto para cada usuario, sin importar el

protocolo de señalización que utilizan.

Un contexto es una colección de extensiones, existen para poder diferenciar el

lugar en donde se encuentra una llamada para aplicar políticas de seguridad.

Por ejemplo, si una llamada se encuentra en el contexto [security] podemos

hacer que esa llamada se realice, desvié o definir que usuarios únicamente

pueden llamar a esa extensión.

Page 14: Manual Asterisk en FreeBSD

14 | P á g i n a

Este archivo, al igual que el archivo sip.conf, se compone de secciones o en

este caso de contextos identificados entre corchetes [ ], hay dos contextos muy

importantes que siempre están presentes en todas las versiones de Asterisk

[general] y [globals].

En [general] se configuran pocas opciones generales, las cuales no son muy

importantes, así que se pueden dejar las opciones por defecto, no obstante una

opción que siempre se debe asegurar que este habilitada es static=yes para

poder ejecutar el comando dialplan desde la consola.

En [globals] se definen variables globales, por ejemplo marcar al 066 podría

declararse como:

EMERGENCY = Dial(SIP/066)

En este caso no utilizaremos variables globales, por lo tanto dejamos este

contexto tal cual esta.

Editamos el archivo extensions.conf.

ee /usr/local/etc/asterisk/extensions.conf

[general] static=yes ; Se hace caso al comando dialplan desde la consola

Se crean las extensiones para el contexto [freebsd-phones].

Este es el contexto que vamos a utilizar, y las declaraciones de las extensiones

siguen un mismo formato:

exten => número de extensión ,prioridad ,comando(parámetros).

Donde:

número de extensión hace referencia al número que se marca.

prioridad al orden de ejecución de las instrucciones cuando se realiza la

marcación, por ejemplo primero hace la llamada, si después de un

determinado tiempo no se contesta entonces se cuelga la llamada con la

segunda prioridad.

comando (parámetros) es la acción que realiza cuando se marca a esa

extensión.

Así que creamos y editamos el siguiente contexto al final del archivo:

Page 15: Manual Asterisk en FreeBSD

15 | P á g i n a

[freebsd-phones] exten => 0001,1,Dial(SIP/0001) ; Responder a la extensión 0001 exten => 0001,2,Hangup() ; Colgar si 0001 no contesta exten => 0002,1,Dial(SIP/0002) ; Responder a la extensión 0002 exten => 0002,2,Hangup() ; Colgar si 0001 no contesta exten => 0003,1,Dial(SIP/0003) ; Responder a la extensión 0003 exten => 0003,2,Hangup() ; Colgar si 0003 no contesta

Iniciar el servicio

Editamos el archivo rc.conf para iniciar el Asterisk al arrancar el sistema

FreeBSD.

ee /etc/rc.conf

Y escribimos lo siguiente:

asterisk_enable=“YES”

Arrancamos el Asterisk manualmente con el comando de Asterisk.

asterisk

Configuración clientes SIP y pruebas

Para realizar las llamadas en Workstation1 y Worstation2 se utilizará el

softphone X-Lite 3.0, esta es una aplicación que funciona como terminal IP

además de permitir el uso del protocolo SIP.

Para el caso del Cellphone se utilizara la aplicación CsipSimple, la cual es una

aplicación para android.

En cualquier cliente con X-lite solo escribimos los parámetros necesarios para

realizar el registro:

Usuario

Contraseña

Servidor VoIP

Page 16: Manual Asterisk en FreeBSD

16 | P á g i n a

En el caso del CsipSimple una vez que haya

conectividad con el servidor, y el resto de los clientes,

escribimos los datos de la cuenta SIP y la dirección del

servidor FreeBSD.

No hay que olvidar probar antes de realizar el registro que haya conectividad

con el servidor, un ping al servidor sería suficiente.

Page 17: Manual Asterisk en FreeBSD

17 | P á g i n a

Conclusión

Las comunicaciones en una empresa son importantes, no solo por los

empleados, sino también por los clientes externos que en ocasiones necesitan

hacer consultas remotamente.

El servicio VoIP ahorra costos significativos en una empresa que cuenta con un

número extenso de usuarios que requiere una línea telefónica. Con un PBX

instalado y funcionando en una red empresarial, clientes o en este caso

empleados con sus terminales IP configuradas y sabiendo que la VoIP puede

trabajar en conjunto con la red de datos, se produce un ahorro aun más en

infraestructura; porque se evita la contratación de líneas telefónicas dedicadas

para cada empleado y/o usuarios de la red con un proveedor de telefonía. Si se

utiliza una aplicación como el X-lite se evita la compra de teléfonos para cada

usuario de la red empresarial y si se tienen teléfonos celulares que acepten

aplicaciones como el CsipSimple se aprovecharían más aun las tecnologías

existentes y la empresa ahorraría más aun en costos.

Después de conocer las características de la VoIP y como se convierte en un

factor importante para una empresa podemos concluir que con la posibilidad

de realizar las llamadas internas gratuitamente, se convierte en el mejor

beneficio que ofrece la VoIP.

Page 18: Manual Asterisk en FreeBSD

18 | P á g i n a

Bibliografía

Digium, Inc. (2010). Asterisk. Recuperado el 14 de Mayo del 2012, de http://www.asterisk.org/

FreeBSD. (2011). FreeBSD Handbook. Recuperado el 14 de Mayo del 2012, de

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html

FreeBSD México. (2010). FreeBSD México. Recuperado el 15 de Mayo del 2012, de

http://freebsd.mx/documentacion

Interactive Programmers Community . (2011). Comunidad de Programadores. Recuperado el

15 de Mayo del 2012, de http://www.lawebdelprogramador.com/cursos/Oracle/6117-

Manual_de_Asterisk_y_otras_hierbas.html

VoipForo. (2011). Asterisk PBX. Recuperado el 15 de Mayo del 2012, de

http://www.voipforo.com/asterisk/asterisk_introduccion.php