curso voip lab.pdf

34
ASTERISK LAB MODULO 3 INSTALACIÓN DE ASTERISK Y COMPONENTES

Upload: jcjcjc1024

Post on 31-Dec-2015

53 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: curso voip lab.pdf

 

 

 

 

 

ASTERISK LAB 

MODULO 3 INSTALACIÓN DE ASTERISK Y COMPONENTES 

   

Page 2: curso voip lab.pdf

EQUIPO NECESARIO PARA EL CURSO 

Para  este  curso necesitamos  estar  familiarizados  con  el  sistema operativo  Linux,  en  concreto  con Debian 4. 

A  partir  de  un  sistema  base  con Debian  4,  debemos  instalar  los  siguientes  paquetes  para  poder acceder remotamente a la consola desde cualquier equipo. 

Lo  primero  que  debemos  hacer  es  actualizar  el  sistema  operativo,  tecleando  lo  siguiente  en  la consola. 

apt­get update 

apt­get upgrade 

Una vez actualizado el  sistema,  instalamos el  servidor SSH para que acepte  conexiones  remotas y poder configurar el sistema, dado que no siempre tenemos acceso a la consola. 

apt­get install openssh­server 

 

 

APLICACIONES NECESARIAS 

No  siempre  tenemos  disponible  el  acceso  a  la  consola  del  servidor,  por  lo  que  es  necesario descargarse  algún  programa  cliente  SSH  para  conectarnos  al  servidor.  En  este  curso  utilizaremos putty, y lo podemos descargar de: 

 

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 

 

   

Page 3: curso voip lab.pdf

PREPARACIÓN DEL ENTORNO 

Primero vamos a configurar el entorno Linux, para que nos muestre  los  ficheros con colores, para diferencias los ficheros de solo lectura de los ejecutables. 

Para ello debemos editar el fichero /root/.bashrc 

 

Escribimos o des comentamos en el archivo las siguientes líneas. 

export LS_OPTIONS='­­color=auto'  

alias ls='ls $LS_OPTIONS' 

 

   

Page 4: curso voip lab.pdf

PREPARACION DEL SISTEMA PARA LA INSTALACIÓN DE ASTERISK 

Para  instalar  Asterisk,  debemos  tener  instalados  una  serie  de  paquetes  para  poder  compilarlo  y ejecutarlo. 

Primero ejecutaremos la orden apt­get install build­essential 

 

Que nos instalará los paquetes necesarios para compilar Asterisk. 

Lo  siguiente que debemos  realizar es bajar  las  fuentes del  kernel de nuestro  servidor para poder compilar dahdi y Asterisk, ejecutando el siguiente comando 

apt­get install linux­headers­$(uname ­r) 

También debemos instalar las librerías de terminal ejecutando el siguiente comando: 

apt­get install libncurses5­dev 

 

Una vez instalados los paquetes necesarios, vamos a crear un directorio para almacenar las descargas de Asterisk, que deberemos compilar. 

Crearemos una carpeta en /usr/src de la siguiente forma: 

cd /usr/src 

mkdir asterisk 

cd asterisk 

Page 5: curso voip lab.pdf

Dentro de esta carpeta, descargaremos  los paquetes necesarios para compilar asterisk. (EL número de versión de los paquetes puede diferir de los indicados en ese manual) 

Todos los paquetes los obtendremos de http://downloads.asterisk.org/pub/telephony/ 

Nos hacen falta los siguientes paquetes: 

 

Asterisk 1.6: 

wget  http://downloads.asterisk.org/pub/telephony/asterisk/asterisk­1.6.0­current.tar.gz 

LibPri: 

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

 

Dahdi 

wget  http://downloads.asterisk.org/pub/telephony/dahdi­linux­complete/dahdi­linux­complete­current.tar.gz 

 

 

 

El orden de compilación es muy importante, y se deben compilar en el siguiente orden: 

1. Libpri 2. Dahdi 3. Asterisk 

 

Page 6: curso voip lab.pdf

Comenzamos con libpri ejecutando la siguiente orden: 

tar ­zxvf libpri­1.4­current.tar.gz 

tar ­zxvf dahdi­linux­complete­current.tar.gz 

tar ­zxvf asterisk­1.6.0­current.tar.gz 

 

Al  ejecutar  estos  comandos,  nos  descomprimirá  y  creará  un  directorio  para  cada  una  de  las aplicaciones. 

 

 

 

COMPILAR LIBPRI 

Ibpri nos dara soporte para las conexiones digitales (RDSI). 

Debemos compilarlo e instalarlo de la siguiente forma: 

cd libpri­1.4.10.1/ 

make clean 

make install 

cd .. 

 

   

Page 7: curso voip lab.pdf

COMPILAR DAHDI 

Dahdi  es  el  soporte  para  las  tarjetas  RDSI.  En  la  versión  1.4  de  Asterisk,  existía  ZAPTEL  para  las tarjetas de Digium y cada fabricante tenía sus propios drivers, lo que significaba que dependiendo de la  tarjeta  RDSI  que  tuviésemos  teníamos  que  descargar  los  drivers  correspondientes,  y  a  veces modificar el código fuente de Asterisk para que funcionase. Todo esto se simplifica con Dahdi. 

Debemos compilarlo e instalarlo de la siguiente forma: 

cd dahdi­linux­complete­2.2.0.2+2.2.0/ 

make clean 

make all 

make install 

make config 

cd .. 

 

En  el  caso  de  que  tuviésemos  alguna  tarjeta  RDSI  instalada,  en  este  paso  la  detectaría  y  nos  la mostraría en la pantalla. 

   

Page 8: curso voip lab.pdf

COMPILAR ASTERISK 

Debemos compilarlo e instalarlo de la siguiente forma: 

cd asterisk­1.6.0.15/ 

./configure 

make menuselect 

nos aparece la pantalla de configuración de Asterisk, donde vamos a sacar algunos módulos 

 

Nos posicionamos con el cursor en “PBX Modules” 

 

Y desmarcamos pbx_ael. Este módulo  implemente “Alternate Extension Language”. Este módulo se considera avanzado, y al no compilarlo, evitamos que Asterisk nos muestre mucha  información de errores y avisos al pararlo, arrancarlo o cada vez que recarguemos el fichero de extensiones. 

Page 9: curso voip lab.pdf

También accederemos a la sección “Extras Sound Packages” y marcamos “EXTRA‐SOUNDS‐EN‐GSM” 

 

Una  vez  seleccionado,    pulsamos  sobre  la  letra  “s”  para  guardar  los  cambios  y  ejecutamos  la siguiente orden: 

make 

make install 

make samples 

make config 

cd .. 

En este momento, ya tenemos instalado Asterisk. 

A continuación debemos reiniciar el sistema, para que cargue los drivers Dahdi y comprobamos que los ha cargado correctamente ejecutando el siguiente comando. 

lsmod | grep dahdi 

y nos mostrará la siguiente información de los módulos cargados 

Page 10: curso voip lab.pdf

 

 

Ahora comprobaremos si Asterisk se ha iniciado automáticamente ejecutando el siguiente comando para acceder a la consola. 

asterisk –r 

 

Para salir de la consola tecleamos 

CLI> exit 

Page 11: curso voip lab.pdf

y  para parar Asterisk tenemos las siguientes opciones: 

 

CLI> stop now 

Para Asterisk  inmediatamente 

 

CLI> stop gracefully 

hace que Asterisk no acepte ninguna llamada y se pare cuando acaben las llamadas activas 

 

CLI> stop when convenient 

Para Asterisk cuando las llamadas activas finalicen 

 

Y para iniciar Asterisk ejecutamos el siguiente comando 

asterisk start 

/etc/init.d/asterisk start 

   

Page 12: curso voip lab.pdf

 

 

 

 

 

ASTERISK LAB 

MODULO 4 CONFIGURACIÓN DE ASTERISK 

 

   

Page 13: curso voip lab.pdf

CONFIGURACIÓN DE ASTERISK 

Asterisk se configure editando una serie de ficheros de texto que están en el directorio /etc/asterisk  y acaban en la extensión .conf 

Los ficheros más importantes son sip.conf y extensions.conf 

 

Existen  interfaces  web  que  configuran  estos  ficheros  en  base  formularios  web,  que  hacen más sencilla su configuración, pero con el inconveniente de que generan un exceso de código y macros en lenguaje Asterisk, que impiden comprender la sintaxis de los ficheros adecuadamente. 

Durante  la duración de este curso, nos  limitaremos a  la configuración mediante un editor de texto, para familiarizarnos con la sintaxis de estos ficheros. 

 

CREACIÓN DE EXTENSIONES 

Las extensiones de  tipo SIP se crean en el  fichero sip.conf, y  las de  tipo  IAX se crean en el  fichero iax.conf. En los ejercicios de este curso se crearán solo extensiones SIP. 

Si editamos este fichero, veremos todas  las posibles opciones que se pueden configurar, siendo  las que se muestran a continuación las básicas 

Page 14: curso voip lab.pdf

 

 

Al final del fichero vamos a incluir una extensión para realizar pruebas de llamadas. Las extensiones pueden ser alfanuméricas, pero se recomienda que sean numéricas para asegurarnos que desde los teléfonos antiguos se puedan utilizar, ya que estos no tienen la posibilidad de introducir letras. 

La explicación de los parámetros que hemos introducido es la siguiente: 

[1001]    Es el nombre del usuario, que tiene correspondencia con la extensión 

type=friend  Es el tipo de extensión que estamos creando. Existen tres tipos de extensiones: 

    friend = para las llamadas entrantes y salientes 

user = para las llamadas entrantes en el plan de llamadas 

peer = para las llamadas salientes en el plan de llamadas 

host=dynamic  Se  puede  especificar  la  palabra  dynamic  que  es  una  dirección  ip  obtenida automáticamente  o  cualquiera  dentro  de  la  red,  o  directamente  la  dirección  IP asignada al dispositivo 

secret=1001  es  la password del usuario.  Para  evitar  complicaciones debe  ser numérica,  ya que algunos teléfonos no disponen de teclado alfanumérico 

context=users  Contexto del plan de llamadas que se va a utilizar. 

 

Page 15: curso voip lab.pdf

Las extensiones  serán de  cuatro  cifras, y  se diferenciarán de  las del  resto de alumnos por  las dos primeras cifras de la extensión. 

El primer alumno tendrá  la extensión 1001   y suponiendo que el último alumno sea el número 18, este tendrá la extensión 1801.  

 

 

Debemos guardar los cambios 

Una vez creadas  las extensiones, debemos de acceder a  la consola de Asterisk y teclear el siguiente comando para que se recargue el fichero de usuarios 

CLI> sip reload 

Para ver si realmente ha creado las extensiones tecleamos: 

CLI> sip show peers 

Page 16: curso voip lab.pdf

 

Y nos deben aparecer las extensiones creadas, en este caso la 1001 y la 1000. 

En este momento no se puede realizar ninguna  llamada, ya que el  fichero extensions.conf no está configurado,  y  este  es  el  que  incluye  el  “Dialplan”  o  plan  de  llamadas,  es  decir,  como  se  van  a comunicar las extensiones, como se van a tratar las llamadas entrantes, las salientes, etc. 

   

Page 17: curso voip lab.pdf

 

 

 

 

ASTERISK LAB 

MODULO 5 PLAN DE LLAMADAS 

   

Page 18: curso voip lab.pdf

 

CONFIGURACION DEL SOFTPHONE X‐LITE 

Para realizar  llamadas, vamos a configurar un teléfono de tipo Softphone, es decir, un teléfono por software. 

En  el mercado  existen  varias  alternativas,  pero  la más  usada  es  X‐Lite,  existiendo  versiones  para Windows, Mac y Linux. Este softphone se puede descargar de 

http://www.counterpath.net/x‐lite.html 

Una vez descargado, procederemos a  instalarlo y configurarlo, y  los únicos datos que tenemos que tener de nuestro servidor Asterisk es la dirección IP, el usuario, la extensión y la clave. 

 

 

Debemos especificar las siguientes opciones: 

Display Name: Nombre que queremos que aparezca en el teléfono cuando llamamos 

User Name: el nombre de usuario (numero de la extensión) 

Password: La clave asignada al usuario 

Autorization user name: El nombre del usuario (nombre de la extensión) 

Domain: Dirección ip o nombre dns de nuestro servidor Asterisk. 

Page 19: curso voip lab.pdf

Una  vez  introducidos  estos datos  y  guardándolos, podemos observar  en  la  consola de Asterisk  el registro de la extensión que acabamos de configurar en el teléfono. 

 

Para probar el funcionamiento del teléfono marcamos cualquier número y en la consola de Asterisk deberíamos de ver un mensaje indicándonos que no existe la extensión, y escuchamos una locución en ingles indicándonos que la persona en la extensión (numero marcado) no está disponible. 

 

Page 20: curso voip lab.pdf

PLAN DE LLAMADAS 

HELLO WORLD 

La primera práctica que vamos a realizar es crear una extensión para que nos reproduzca una de las múltiples locuciones que tiene Asterisk. 

Para  ello  debemos  de  editar  el  fichero  extensions.conf.  Este  fichero  tiene múltiples  opciones  y ejemplos de extensiones, pero los elementos básicos son los que se indican a continuación. 

 

Para  crear  nuestra  primera  regla  en  el  dialplan,  vamos  a  crear  una  extensión  que  acabe  en  9, siguiendo las reglas de nomenclatura de extensiones que indicamos en este manual. 

Debemos recordar que al crear as extensiones hemos definido un contexto users, por lo que nuestras reglas  deben  de  ir  agrupadas  en  ese  contexto.  Debemos  introducir  lo  siguiente  en  el  fichero extensions.conf. 

En  el  ejemplo,  cuando  desde  nuestro  teléfono marquemos  la  extensión  1009,  escucharemos  la locución “Hello World”, seguido del número de nuestro Asterisk 

Debemos  tener  en  cuenta  las prioridades  en  la definición de  la  extensión,  ya que  es muy  común copiar y pegar líneas, y si estas tienen el mismo número de prioridad, solo se ejecutará la primera. 

Page 21: curso voip lab.pdf

 

Guardamos el fichero,  y desde la consola de Asterisk ejecutamos  

CLI> dialplan reload 

para que recargue el fichero de extensiones. Ahora solo nos queda marcar desde nuestro teléfono la extensión 1009 y escuchar la locución. 

En el siguiente paso vamos a crear nuestra propia extensión, para poder recibir llamadas. 

 

Guardamos  el  fichero,    y  desde  la  consola  de  Asterisk  recargamos  el  fichero  de  extensiones.

Page 22: curso voip lab.pdf

 CONFIGURACIÓN DE ASTERISK PARA RECIBIR LLAMADAS DE OTRO ASTERISK 

Dado que en el curso no disponemos de teléfonos físicos para que cada alumno tenga dos teléfonos, vamos a configurar nuestro Asterisk para que pueda recibir  llamadas de otros Asterisk y enviarlas a otros equipos. 

Con  este  sistema  simularemos  dos  centralitas  en  diferentes  ubicaciones,  y  podremos  realizar llamadas y recibirlas marcando los números correspondientes. 

Para ello debemos de realizar dos operaciones, una en el fichero sip.conf (que definía las extensiones locales, y las conexiones remotas) y una regla de marcado en el fichero extensions.conf. 

En el fichero sip.conf debemos registrar la maquina a la que queremos acceder. 

 

El  registro  de  servidores  externos  debe  realizarse  bajo  el  contexto  [general]  y  tiene  la  siguiente sintaxis: 

Register => USUARIOREMOTO:CONTRASEÑAREMOTA@IPEQUIPOREMOTO/EXTENSIONLOCAL 

Introducimos  los  siguientes  datos    en  el  fichero  sip.conf,  sustituyendo  el  nombre  de  usuario,  la contraseña, la dirección ip y el contexto del equipo remoto, recordando la nomenclatura indicada al principio del curso. 

En este mismo fichero debemos especificar la extensión local. En este caso utilizaremos una palabra para definir la extensión local, ya que es una extensión que no se teclea en ningún teléfono (por eso utilizamos letras y no números) y se utiliza para el registro de servidores. 

 

Page 23: curso voip lab.pdf

 

Los parámetros introducidos en la  definición de la extensión son los  mismos que hemos definido al crear  nuestra  propia  extensión,  pero  en  este  ejemplo  hemos  añadido  algunos más,  que  también pueden definirse en nuestra extensión, o a nivel global: 

disallow=all    Deshabilitamos todos los códec de audio 

allow=ulaw    Habilitamos el códec ulaw 

allow=alaw    habilitamos el códec alaw 

allow=gsm    habilitamos el códec gsm 

insecure=invite  Indica que en el envío del paquete sip INVITE no tenga en cuenta la dirección ip  que  lo  origina,  por  si  estamos  detrás  de  un  proxy  o  realizamos NAT  en nuestra red 

 

Una vez introducidos estos datos, debemos guardar el fichero y desde la consola de Asterisk recargar el fichero sip con el comando 

CLI> sip reload 

Para ver si nos hemos registrado correctamente en el servidor remoto tecleamos desde la consola de Asterisk el siguiente comando 

CLI> sip show registry 

y nos debe mostrar en la consola el resultado del registro 

Page 24: curso voip lab.pdf

 

Para ver si tenemos un servidor remoto creado en nuestro dialplan, ejecutamos la siguiente orden 

CLI> sip show peers 

 

 

Debemos de tener en cuenta que el registro debe de realizarse entre dos servidores, teniendo que hacer  esta  misma  configuración  en  el  equipo  remoto,  pero  con  los  datos  correspondientes.  A 

Page 25: curso voip lab.pdf

continuación  se muestran  las pantallas de dos equipos Asterisk  registrados entre  sí,   uno  se  llama Asterisk1 (172.20.1.200) y el otro Asterisk2 (172.20.1.201) 

 

 

 

 

   

Page 26: curso voip lab.pdf

DIALPLAN PARA LLAMADAS REMOTAS 

Una  vez  que  hemos  configurado  nuestro  Asterisk  y  hemos  registrado  otro  Asterisk,  debemos introducir  las reglas correspondientes en el dialplan para que  las  llamadas hacia el servidor remoto sean enviadas a este, y no tratadas localmente. 

Para ello debemos editar el fichero extensions.conf y agregar las siguientes líneas 

 

Recordad,  que  debemos  crear  estas  reglas  dentro  del  contexto  [users],  ya  que  es  el  que  hemos definido en nuestra conexión remota 

Debemos  guardar  el  fichero  y  recargar  el  fichero  extensions.conf  desde  la  consola  de  Asterisk  y llamar a una extensión remota. Podemos probar por la extensión que acaba en 9 y escucharemos el mensaje “Hello world” seguido del numero del equipo Asterisk. 

   

Page 27: curso voip lab.pdf

 

 

 

 

 

ASTERISK LAB 

MODULO 6 PLAN DE LLAMADAS AVANZADO 

   

Page 28: curso voip lab.pdf

BUZON DE VOZ EN LAS EXTENSIONES 

En esta sección vamos a trabajar sobre un  fichero de Asterisk denominado voicemail.conf. En este fichero debemos definir cuáles son extensiones que tienen buzón de voz (contestador automático). 

 

Modificando  el  fichero  voicemail.conf,  indicamos  que  una  extensión  tiene  buzón  de  voz,  pero debemos modificar  también el  fichero de extensiones  (sip.conf) para asociar una extensión a una cuenta  de  correo  y  el  plan  de  llamadas  (extensions.conf)  para  indicarle  bajo  qué  circunstancias saltará el buzón de voz del usuario cuando recibe una llamada. 

Si se modifica este fichero, debemos recargarlo en la consola ejecutando el siguiente comando: 

CLI> module reload app_voicemail.so 

A continuación debemos modificar el fichero sip.conf y añadir a cada una de las extensiones locales que hemos creado el parámetro: 

mailbox = NUMEROEXTENSION@default 

en nuestro caso 

mailbox = 1001@default 

default identifica el contexto dentro del fichero voicemail.conf 

Page 29: curso voip lab.pdf

 

Recargamos desde la consola el fichero. 

A continuación modificamos el fichero del dialplan (extensions.conf) para indicarle que en el caso de que no contestemos a una llamada, salga el buzón de voz. 

 

El siguiente paso es crear una extensión en nuestro sistema para que el usuario pueda leer sus mensajes de voz. Debemos crearla en el dialplan (extensions.conf) 

La extensión que creemos va a ser de dos cifras, escogiendo en este caso el 99. 

Page 30: curso voip lab.pdf

 

Recargamos el fichero desde la consola ejecutando 

CLI> dialplan reload 

A partir de este momento, podemos llamar a la extensión 99 y una locución nos preguntará por el número de la extensión, y la clave. Recordad que la clave del usuario se define en el fichero voicemail.conf y en este caso es 9999 

 

   

Page 31: curso voip lab.pdf

IMPLEMENTACIÓN DE UN MENÚ BÁSICO 

Para realizar este ejercicio debemos de realizar dos pasos. 

El primer paso consiste en grabar una locución desde nuestro teléfono, que aunque no tendrá una optima calidad, nos servirá para el propósito del ejercicio. Si se dispone de una locución grabada, esta se puede colocar en el directorio 

/var/lib/asterisk/sounds/en 

Las dos últimas letras de la ruta indican el idioma de los sonidos de Asterisk. 

Vamos a crear una extensión en nuestro sistema, a la que llamaremos para grabar un mensaje. Para ello debemos introducir en el fichero extensions.conf una extensión que acabe en 8, teniendo en cuenta la nomenclatura de las extensiones para cada equipo. En este caso es la extensión 1008  

 

A continuación debemos guardar el fichero y recargar el fichero de extensiones desde la consola de Asterisk. 

Para probar la extensión, marcaremos desde nuestro teléfono la extensión creada, y después de escuchar un pitido dictaremos lo siguiente: 

“ASTERISK XXXX. PULSE 1 PARA HABLAR CON LA EXTENSIÓN O 2 PARA HABLAR CON OTRO ASTERISK” 

Sustituyendo la XXXX por el numero de Asterisk correspondiente a cada equipo. 

Después de dictar el mensaje pulsaremos la tecla “#”, que es la tecla terminadora del mensaje y escucharemos el mensaje que hemos dictado al sistema. 

Si volviésemos a marcar la extensión, el mensaje se volvería a grabar, reemplazando el mensaje existente por el nuevo. 

Page 32: curso voip lab.pdf

A continuación vamos a ordenar  nuestro dialplan incluyendo un nuevo contexto.  

Debemos agrupar todo lo relacionado con el Asterisk externo en un contexto denominado [remoto], y realizaremos un include en el contexto [users] . 

Debemos recordar que la lógica del dialplan es de arriba hacia abajo, y que dependiendo de donde pongamos el include, este se procesará antes o después. En nuestro ejemplo, el include del contexto [remoto] va a ser la última línea del contexto [users]. 

También crearemos una nueva regla para el Asterisk remoto, que será la extensión de la centralita remota, en este caso la 1100 

 

 

 

En un segundo paso, crearemos la lógica para nuestro menú. 

Cuando llamemos a la extensión de la operadora (que aún no hemos creado), se escuchará la locución que hemos grabado, y en función de la tecla que pulsemos, nos redirigirá  a una extensión. 

Para ello modificamos el fichero de extensiones y escribimos lo siguiente 

Page 33: curso voip lab.pdf

 

A mayores de lo anterior, debemos crear la extensión de la operadora local, en este caso crearemos una que acabe en 0, siguiendo la nomenclatura de las extensiones indicadas anteriormente 

 

Una vez realizados estos cambios en el fichero extensions.conf, desde la consola de Asterisk debemos recargar el dialplan y probar nuestra instalación. 

 

Page 34: curso voip lab.pdf