Está en la página 1de 34

 

 
 
 
 
ASTERISK LAB 
MODULO 3 
INSTALACIÓN DE ASTERISK Y COMPONENTES 
   
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 

   
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' 

   
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 
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 

 
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 .. 

   
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. 

   
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. 
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 
 

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 
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 

   
 
 
 
 
 
ASTERISK LAB 
MODULO 4 
CONFIGURACIÓN DE ASTERISK 
 

   
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 
 

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. 

 
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 
 

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. 

   
 
 
 
 
ASTERISK LAB 
MODULO 5 
PLAN DE LLAMADAS 
   
 

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. 
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. 

 
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. 
 

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.
 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. 

 
 

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 
 

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 
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) 

   
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. 

   
 
 
 
 
 
ASTERISK LAB 
MODULO 6 
PLAN DE LLAMADAS AVANZADO 
   
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 
 

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. 
 

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 

   
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. 
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 
 

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. 

 
 
   

También podría gustarte