Está en la página 1de 11

Servidor Asterisk casero: Configuracin bsica de 2 anexos

Asterisk es un software libre que permite convertir


una computadora comn y corriente en una pequea
centralita de telefonia, es decir, en una PBX (Private
Branch Exchange).
Voy a mostrar lo fcil que puede ser configurar 2
anexos caseros, utilizando la red de mi casa
La idea ser, dado que es algo casero, NO HAY
tlefono IP ni varios telfonos analgicos, solo se
cuenta con uno, por lo que dejar sin lnea a mi casa
por un buen rato
Saquen el telfono que les ha instalado su compaa
de telefona y conectenlo un ATA cualquiera, en este
caso utilizar el SPA3102 de Linksys dado que es el
que tengo a la mano:

Se conecta el cable del puerto del telfono al puerto


FXS del ATA

El ATA y el telfono analgico


Para poder jugar con las llamadas de un lugar a otro,
necesitamos otro de alguien que haga las llamadas al
telfono analgico, lo ms prctico es un sofphone
como el Zoiper (www.zoiper.com/), que corre sobre
linux y windows, en este caso utilizar la versin para
linux ;=)
Lo pueden descargar de:
http://www.zoiper.com/downloads/free/linux/zoiper201
-linux.tar.gz
Ubican el archivo y le hacen un:
tar zxf zoiper201-linux.tar.gz
./zoiper
Debo mencionar que si no cuentan con la
posibilidad de tener un ATA para esta prueba

pueden utilizar un sofphone ms en otra PC, el


procedimiento es el mismo que el de registrar un
ATA en el Asterisk.
Verfican las conexiones en el switch y manos a la
obra

Switch con mucho cableado


Para instalar Asterisk, utilizamos apt-get, caso ests
en Debian, tambin un sudo apt-get caso ests en
Ubuntu:
apt-get update
apt-get install asterisk
Por otro lado, si deseas compilar t mismo el
Asterisk, aqu estn los
pasos:http://blog.pucp.edu.pe/item/29066
Ahora, debes saber que en la
carpeta /etc/asterisk/ se encuentran los principales
archivos de configuracin para los distintos servicios
que ofrece Asterisk.
Tambin es importante saber que dentro de dicha
carpeta se encuentran los siguientes archivos de
configuracin que vamos a utilizar:
sip.conf, archivo que configura los clientes SIP.
extensions.conf, archivo donde se configura el
funcionamiento de los servicios implementados para
los distintos anexos.
En mi caso, voy a tener el siguiente Dial Plan:
Anexo 80 -> 192.168.1.4 (es mi computadora con un
sofphone)
Anexo 81 -> 192.168.1.10 (es el ATA con el telefono
analogico)
Es importante saber que en Asterisk se utiliza
actualmente los protocolos iax y sip, el primero
es para la comunicacin entre distintas centrales
Asterisk y el segundo es para la comunicacin
entre Asterisk y sus clientes. A pesar de que iax
es un protocolo que hace un uso ms eficiente
del ancho de banda que sip, la mayora de

clientes VoIP solo soportan sip y es imposible,


por lo tanto, utilizar iax para dichos clientes.
Asterisk funciona como proxy siempre registra a
sus clientes y entabla un protocolo de
comunicacin con ellos.
Los pasos para la instalacin via software de los 2
anexos sern:
1. Configuracin de Asterisk
2. Configuracin del ATA SPA3102
3. Configuracin del Sofphone Zoiper
4. Levantar Asterisk
5. Llamada entre los anexos

1. Configuracin de Asterisk:
El primer archivo a configurar, como ya se lo debian
imaginar si es que han leido lo anterior, es el sip.conf,
dicho archivos si no ha sufrido ninguna modificacion
esta hecho como para rellenarlo, puesto que es una
plantilla. Solo deben agregar los siguientes datos:
Edito el archivo sip.conf
;
############################
############
; sip.conf
; configuracion de los clientes sip
; servidor asterisk >p3dR<
;
;############################
############
[general]
;
port=5060
disallow=all
allow=g726
allow=ulaw
allow=alaw
;
============================
=============
;
[80]
type=friend
host=dynamic
language=es
context=internal
secret=80
username=80
callerid=80
dtmfmode=rfc2833
qualify=yes
;
[81]
type=friend
host=dynamic
language=es
context=internal

secret=81
username=81
callerid=81
dtmfmode=rfc2833
qualify=yes
;
Edito el archivo extensions.conf:
;
############################
#############
; dialplan
; configuracion del dialplan para los anexos sip
; servidor asterisk >p3dR<
;############################
#############
;
[general]
;
[internal]
;
exten => 80,1,Dial(SIP/80,26)
exten => 80,n,Hangup
;
exten => 81,1,Dial(SIP/81,26)
exten => 81,n,Hangup
;
2. Configuracin del ATA SPA3102
La configuracin del ATA SPA3102 lo pueden
encontrar en:
http://www.3cx.com/voip-gateways/linksys-3102.html
En la seccion How to configure a LINKSYS SPA-3102
(ATA Functionality) with 3CX, solo que en vez de
pensar que se esta configurando con la central 3CX
se lo plantea para el Asterisk, que es el mismo
procedimiento al final de cuentas.
Solo un detalle, deben conectar el puerto Internet
del ATA al switch previamente habindole configurado
una IP para el puerto WAN que est en red con el
resto de los equipos, en mi caso para mi red le puse
la 192.168.1.10 como pueden verificar:

3. Configuracin del Sofphone Zoiper

Por otro lado, se debe registrar tambin el sofphone


Zoiper con Asterisk, para esto damos clic en
configuracin:

En este caso configuracin es el ltimo botn de la derecha

En domain se pone la IP del servidor Asterisk, en mi


red es la 192.168.1.5

Si es as, han tenido xito y asterisk ya est corriendo


en su computador :=)
Finalmente debemos entrar al modo CLI de Asterisk,
que es un modo en el cual solo puedes ejecutar
comandos propios de asterisk como si estuvieras en
un hardware con memoria especial, para verificar que
los anexos ya esten registrados:
asterisk -vvvvr
== Parsing '/etc/asterisk/asterisk.conf': Found
== Parsing '/etc/asterisk/extconfig.conf': Found
Asterisk 1.2.13, Copyright (C) 1999 - 2006
Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO
WARRANTY; type 'show warranty' for details.
This is free software, with components licensed
under the GNU General Public
License version 2 and other licenses; you are
welcome to redistribute it under
certain conditions. Type 'show license' for
details.
============================
==================
Connected to Asterisk 1.2.13 currently running
on nodo-c (pid = 6780)
Verbosity was 0 and is now 4
nodo-c*CLI>
O lo que es lo mismo:

Agregar los datos correspondientes

Se comprueban los datos ya registrados


4. Levantar Asterisk
Ahora para levantar el asterisk debemos asegurarnos
de que Asterisk se ejecute cada vez que se carga el
sistema, para esto debemos entrar
a /etc/default/asterisk y poner
elRUNASTERISK=yes.
Ejecutamos asterisk en modo demonio:
/etc/init.d/asterisk restart
Comprueban que asterisk est corriendo con el
comando
ps -A | grep asterisk
Les debera salir un resultado, algo parecido a esto:
2865 ? 00:00:00 asterisk

Ahora, ya aca, ejecutamos el comando:


CLI> sip show peers
Name/username
ACL Port
Status
81/81 192.168.1.4
80/80 192.168.1.10
ms)

Host
D
D

5060
5060

2 sip peers [2 online , 0 offline]

Dyn Nat
OK (5 ms)
OK (10

En Status, debemos fijarnos de que diga OK, de esta


forma verficamos que los clientes sip 80 y 81 han
sido registrados correctamente en Asterisk.
Importante: Cualquier modificacin que hagan en los
archivos de asterisk tales como sip.conf,
extensions.conf, etc deben poner un
/etc/init.d/asterisk restart
5. Llamada entre los anexos
Ahora finalmente se hace la llamada desde el
Zoiper(anexo 81) al anexo 80 que es el nmero del
ATA con el telfono analgico:

Software.
Por recomendacin de scar aka El Cnibal,
descargu Elastix, una distribucin de software libre
basada en Cent OS que incluye programas como
Asterisk, Hylafax, Openfire, Postfix, vTigerCRM y
SugarCRM.
Estos programas en conjunto permiten dar servicios
de: Voz sobre IP con funciones de PBX Fax
Mensajera Instantnea Email Colaboracin
Como no tena una computadora disponible instal
elastix en una computadora con VirtualBox, le puse
una configuracin mnima de 384 MB en RAM y 8 GB
de espacio en el disco duro, la tarjeta de red la
configur en modo Bridge para que quedara dentro
de mi misma subred.
Como telefonos de software baj Xten lite para
windows y en linux hice pruebas con Empathy, este
ltimo recibe las llamadas pero queda un poco corto
en otras funciones.

Llamada del anexo 81 al anexo 80


Espero este pequeo tutorial les sea de ayuda para
animarlos a montar su propio Asterisk casero, aqu la
receta: 1 Linux + 1 ATA + 1 sofphone + n ganas de
aprender.
Ms adelante veremos tambin tienen otras opciones
de configuracin ms avanzadas (zapata.conf) como
llamada en espera (callwaiting), llamada de tres
(threewaycalling), transferencia de llamada (transfer)
y buzn de voz.

Receta para un servidor elastix de pruebas.


Manuales.
No se puede ir a la guerra sin fsil, y en este caso me
arm de dos excelentes documentos. Elastix with out
tears de Ben Sharif y Elastix a ritmo de merengue de
Alfio Muoz.
Ambos documentos se complementan, los
consultaba constantemente y son mi primer fuente de
consulta ante cualquier duda.

Hardware.
Tengo un par de Linksys SPA3102 que haba
utilizado en un experimento anterior. Estos aparatitos
son una maravilla !!!, se configuran mediante una
pgina web y tienen dos puertos uno FXO (Line) y
otro FXS (Phone).
Uno lo configur como extensin conectandolo al
puerto que dice Phone (FXS), este fue el m sencillo
de configurar siguiendo la gua SPA3102 and
FreePBX HOWTO
Read more:
http://linuxmanr4.com/2010/07/05/construyendo-unconmutador-telefonico-con-elastix/#ixzz3fjuBfV9V

El otro lo puse como troncal conectandole una


lnea telefnica al puerto Line (FXO), este
aparatito es el que se encarga de ser el
intermediario entre la lnea (en este caso de
Axtel) y el servidor Elastix.
Este no fue tan sencillo de configurar,
literalmente me sac canas verdes y un da de
leer tutoriales y manuales.
En los primeros intentos logr que
salieran las llamadas, pero para recibir no se
poda, simplemente no le pasaba la estafeta a
la extensin que program.
Fue hasta que d con este tutorial How to
setup a Linksys SPA-3102 or Sipura SPA-3000
with FreePBX y releerlo en ms de una ocasin
que pude hacer que funcionara.
Read more:
http://linuxmanr4.com/2010/07/05/construyend
o-un-conmutador-telefonico-conelastix/#ixzz3fjulpG5k

+Ingredientes:
-Linksys SPA3102 -> 85-90
-Un equipo con al menos un interfaz de red y
Debian instalado, por supuesto :)
-Softphones en cada pc, telfonos IP o
adaptadores para telfonos analgicos tipo
PAP2T.
+Preparacin:
Es fundamental conectar el
SPA en el RJ45 de la interfaz externa (wan), de
otra forma no funcionar. El acceso lo hacemos
con el navegador via http con los datos del
manual.

Al final mi instalacin qued de la siguiente


manera:

+Coccin:
Cambiamos estos datos y slo stos en Voice>PSTN line1:
Seccin Proxy and registrations -> proxy:
ponemos la ip del server asterisk.
Seccin Subscriber information -> User ID:
ponemos por ej SPA (luego usaremos esos
datos para crear el troncal de conexin).
Dialplans -> eliminamos lo que hay en
dialplan2 y ponemos: (S0<:ip_del_asterisk>).
PSTN-To-VoIP Gateway:
-PSTN-To-VoIP Gateway Enable: Yes
-PSTN Caller Auth Method: None
-PSTN Ring Thru Line 1: no

-PSTN CID For VoIP CID: yes


-PSTN Caller Default DP: 2
FXO timer values -> PSTN Answer Delay:
2
VOIP-To-PSTN Gateway:
- VOIP-To-PSTN Gateway Enable: yes
VoIP Caller Auth Method: None
VoIP Pin Max retry: 3
One Stage Dialing: Yes
Line 1 VoIP Caller DP: none
VoIP Caller Default DP: none
Line 1 Fallback DP: none
+Servicio:
Supongo que no hace falta decir que hay que
instalar asterisk (aptitude install asterisk).
Editamos el archivo /etc/asterisk/sip.conf
y agregamos al final del archivo los datos del
troncal:
[spa3102]
type=peer
username=SPA
fromuser=SPA
host=ip_del_spa
context=entradas
canreinvite=no
insecure=port,invite
nat=no
port=5060
qualify=yes
Y de las extensiones que vamos a crear:
[100]
type=friend ; puede recibir y enviar llamadas
context=spa ; muy importante encuadrar todo
en el mismo contexto
secret=100 ; contrasea de la extensin 100
(usuario 100)
host=dynamic ; no se conoce la ip antes del
registro
nat=no ;
qualify=no ; cambiar a yes si est detrs de un
cortafuegos.

mailbox=100@spa ; buzn del usuario para


mensajes de voz
[101]
igual que el anterior, slo cambia la pass
(secret) y el buzn (101@spa)
As con todos los usuarios que queramos
crear.
ahora toca el archivo extensions.conf al que
agregaremos esto al final:
[spa]
exten => s,1,Answer ; descolgamos la
llamada
exten => s,2,Wait(2) : dos segundos de
espera

exten => s,3,Background(atendido-enbreve) ; suena la locucin ser atendido en


breve
exten => s,4,WaitExten(5,tm) ; Espera cinco
segundos a que marquemos una extensin.
exten => s,5,Dial(SIP/100,20,tm) ; si no
marcamos extensin pasa la llamada a la
extensin 100 que sonar durante 20
segundos mientra escuchan msica de fondo.
exten => s,6,VoiceMail(100) ; si no hay
contestacin salta el buzn de voz 100.
exten => s,6,Hangup ; colgamos la llamada
exten => 100,1,Dial(SIP/100,20,Ttm) ;
extensin 100
exten => 100,2,Voicemail(100)
exten => 100,3,Hangup
exten => 101,1,Dial(SIP/101,20,Ttm) ;
extensin 101
exten => 101,2,Voicemail(101)
exten => 101,3,Hangup
exten => _[69]XXXXXXXX,1,Dial(SIP/$
{EXTEN},60) ; Llamadas por la linea tradicional
exten => _[69]XXXXXXXX,2,Hangup
exten => 999,1,VoicemailMain ; extensin
para escuchar los mensajes.
exten => 999,n,Hangup
Antes de nada comentar que no s muy
bien si en los repositorios de Debian habr
voces en espaol. De todas formas las voces
oficiales de Digium no suenan muy bonitas
para los espaoles (aunque s para los usuarios
hispanoamericanos), pero podis descargaros
unas voces muy logradas de la pgina de
voipnovatos: http://www.voipnovatos.es
Por ltimo slo nos queda el archivo
voicemail.conf, donde colocaremos los buzones
de la siguiente forma:
100 => 100,Pepe,pepe@gmail.com
101 => 101,Mara,maria@esdebian.org
etc, etc ...
Un asterisk restart y ...
+Buen provecho!!
Referencias sobre Asterisk:
http://groups.google.es/group/asterisk-es
http://www.voip-info.org/
http://www.asteriskguru.com/

contenido de los archivos sip.conf y


extensions.conf reducidos a su mnima expresin,
sin extensiones de ejemplo ni ningn tipo de

relleno, salvo los parmetros de seguridad


mencionados en el correspondiente captulo.

Atencin a los siguientes tres parmetros que


tendris que adaptar a vuestra instalacin:
udpbindaddr: Cambiar el puerto de ejemplo
42187 por uno mayor que 1024 y que no est
en la lista de puertos conocidos.
externhost: Debes tener un servicio de DNS
dinmico para que Asterisk pueda resolver tu
IP pblica. Hay mltiples opciones gratuitas
que encontrars en esta lista de proveedores.
Uno de los ms conocidos es No-IP. Indica en
este campo el dominio que hayas creado, y
asegrate de instalar el programa cliente
correspondiente que mantenga actualizada tu
IP. Si te pierdes en este punto te recomiendo
buscar una gua sobre DNS Dinmico.
localnet: Adapta el rango y la mscara de red
en funcin de la configuracin de tu red local.
El Dialplan bsico quedara resumido a lo
siguiente:

Configuracin del Conmutador telefnico


SPA400 con Elastix

Continuando
con
la
configuracin
de
nuestro escenario hoy vamos a explicar como
configurar tanto el servidor Elastix como el Cisco
SPA400. Desde la web oficial de Linksys Cisco
veremos que el SPA400 solo funciona con el
SPA9000 pero hoy veremos que tambin es posible
usarlo con nucleos de voip como Asterisk.
El SPA400 es til ya que nos permite conectar 4
lneas de telfono analgico (4 puertos FXO) e
transformarlas a VoIP.
Primeramente conectaremos nuestro SPA400 a
nuestra red interna tal y como hicimos con los
telfonos SPA501G. La red dar una direccin IP a
nuestro dispositivo y a travs de esa IP accederemos
a su pgina de configuracin.
En esta pgina en la pestaa superior Setup Basic
Setup procederemos a dar una direccin esttica al
dispositivo asignandole tanto una direccin IP como
los DNS. En nuestro caso ser la 192.168.1.11.
Y ahora en la pestaa Setup SPA9000 Interface
configuramos la direccin de nuestro servidor elastix
que era 192.168.1.10.
Como este dispositivo tiene 4 puertos podemos
configurar sus nombres, ya que aunque en un primer
momento no se pueden rutar las salidas y entradas

veremos que con una pequea modificacin s que


podremos hacerlo.

Ahora pasamos a configurar el servidor Elastix para


que conozca las rutas entrantes y salientes que
deben ir a traves del SPA400.
Pulsaremos sobre Trunks (Lineas) y ahi pulsaremos
sobre Add SIP Trunk (Aadir Lnea Troncal SIP).
Ahora debemos rellenar el nombre de la linea y si
queremos asignarle un numero para que se
identifique. En las opciones salientes pondremos
tambin un nombre, quiz el mismo que hemos
utilizado ms arriba y aadiremos estas opciones
username=SPA400
type=peer
secret=PASSWORD
insecure=very
host=192.168.1.11
dtmfmode=rfc2833
context=from-pstn
canreinvite=no
Los datos en negrita son los que nosotros
debemos configurar. Sustituiremos esos datos
por los que hemos configurado en el
dispositivo.
Por ltimo en la cadena de registro debemos aadir
lo siguiente
SPA400:PASSWORD@192.168.1.11/SPA40
0
tambin sustituyendo los datos por los
adecuados a las configuraciones anteriores.
En nuestro caso crearemos 3 lineas salientes para
poder visualizarlo mejor a traves del FOP (Flash
Operator Panel). Las tres lineas tendrn la misma
configuracin pero diferente nombre.