Espacios de socialización

HowTo Cabina Asterisk

En este tutorial explicaremos como montar desde cero una cabina telefonica de bajo coste para hacer llamadas gratuitas a telefonos fijos de mas de 40 paises utilizando Asterisk y un proveedor de telefonia SIP. Se explicara el aspecto tecnico, de hardware y software de montar la cabina. 

Todo lo que utilizamos es facil de conseguir, excepto el adaptador ATA, aunque para utilizar Asterisk no lo necesitamos, solo se requiere si se quiere conectar a telefonos analogicos. Tambien podremos configurarlo con un telefono IP si tenemos, o bien conectarse con un softphone, es decir, un telefono por software: el Ekiga sin ir mas lejos. Con el tiempo veremos que la versatilidad del Asterisk es tal que se puede conectar de muchas formas, de hecho de las centralitas PBX es la que soporta mas protocolos y canales: desde lineas analogicas hasta clientes/servidores SIP, H323.b, IAX2, adaptadores ATA, placas FXS/FXO, e incluso hay un proyecto para que pueda anunciarse como un BTS (antena GSM --- moviles!!).    

Para la instalación de las cabinas que tenemos en el Patio hemos utilizado:


¿Que es Asterisk?

Asterisk es una aplicación de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios. Fuente: Wikipedia


¿Como se instala?

Lo instalaremos en Debian, una distribucion GNU/Linux. Para empezar actualizaremos los repositorios al listado mas reciente de paquetes e instalaremos las actualizaciones pendientes. 

# apt-get update
# apt-get dist-upgrade 

Podremos ver mas informacion de la instalacion de Asterisk sobre Debian en el siguiente link.

A traves de los repositorios:

La forma mas facil y rapida de instalarlo, es con el siguiente comando:

# sudo aptitude install asterisk

Con el codigo fuente:

Ahora instalaremos las dependencias, junto con las herramientas necesarias para compilar y las fuentes del kernel.

# apt-get -y install build-essential libncurses5-dev libcurl3-dev
libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev
linux-headers-`uname -r

Vamos al directorio de las fuentes.

# cd /usr/src

Descargamos y descomprimimos las fuentes del Asterisk junto con el modulo Zaptel necesario para que funcione: 

# wget http://downloads.digium.com/pub/asterisk/asterisk-1.45.1.tar.gz
# wget http://downloads.digium.com/pub/zaptel/zaptel-1.45.1.tar.gz
# tar xvzf asterisk-1.4.5.1.tar.gz
# tar xvzf zaptel-1.4.5.1.tar

Vamos al directorio de zaptel:

# cd zaptel-1.4.

Configuramos, compilamos e instalamos el modulo.

# ./configure && make && make inst

Por ultimo lo cargamos con el comando modprobe.

# modprobe ztdumm

Podemos comprobar que se cargo sin problemas con:

# lsmod | grep ztdumm

Si vemos que funciona hay que agregarlo al inicio del sistema poniendolo en el fichero /etc/modules.

# echo “ztdummy” >> /etc/module

Ahora vamos a compilar el Asterisk. Para esto vamos a su directorio y lanzamos los mismos comandos que antes:

# cd /usr/src/asterisk-1.4.5.1
# ./configure && make && make install 

Es recomendable instalar los ejemplos para tener algo sobre lo que trabajar: 

# make samples
# make config 

Fuentes:


Iniciar / Parar Asterisk

Para inciar el Asterisk como demonio basta hacerlo con el siguiente comando: 

# /etc/init.d/asterisk start

Luego para pararlo:

# /etc/init.d/asterisk stop

Por ultimo, para reiniciarlo:

# /etc/init.d/asterisk restart 

En caso de que queramos iniciarlo solo por un tiempo determinado y no todo el tiempo, debemos iniciarlo con el comando:

# /usr/sbin/asterisk -vvvvc

Con esto iniciaremos la aplicacion e ingresaremos a la consola, [*CLI>]. Puedes ver como manejarte en ella en la seccion "Consola y Logs".

En caso de que lo hayamos iniciado como demonio, para conectarnos a la consola deberemos hacerlo con el mismo comando pero la opcion -r en vez de -c: 

# /usr/sbin/asterisk -vvvvr

Si queremos que inicie cada vez que arranque el ordenador tendremos que modificar el siguiente fichero: 

# nano /etc/default/asterisk
RUNASTERISK=yes

¿Y como se configura esto?

Una vez que tengamos todo instalado podremos ojear los ficheros de configuracion de ejemplo que nos instalamos en los ultimos pasos. 

# less /etc/asterisk/sip.conf
# less /etc/asterisk/extension.conf

Estos ficheros son los que mas veremos en este tutorial. En sip.conf configuraremos los clientes, peers o amigos (en jerga asteriskiana) que tendremos y en extensions.conf nuestro DialPlan. Este es nuestro plan de llamadas: que hara cuando reciba una llamada a tal extension, o que hara cuando un usuario intente llamar a alguna otra.

Los otros ficheros que hay en la carpeta /etc/asterisk son para todas las otras funcionalidades que nos ofrece. Esta es la principal ventaja de Asterisk frente a las otras centralitas (PBX), que desde el principio y modificando solo alguna linea de los ficheros podremos tener funcionalidades impresionantes, como salas de conferencias (meetme.conf), buzon de voz (voicemail.conf) y conexion con diferentes tipos de protocolos VoIP como SIP (en el sip.conf) e IAX2 (iax.conf) . 

Vamos a ponernos a manos a la obra, para esto haremos una copia de seguridad de los ficheros que ya tenemos. 

# mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.old
# mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.old

SIP.CONF

Como ya dijimos, en este se configuran los diferentes usuarios, clientes y peers. Aqui es donde puede diferir mas nuestra configuracion. Todos los ficheros de configuracion de Asterisk comienzan con la etiqueta [general], con las opciones globales y luego cada etiqueta servira para cada uno de los clientes. Estos pueden ser desde clientes SIP de software aka softphone (como el Ekiga o el Twinkle para GNU/Linux), un telefono SIP fisico, un adaptador ATA o un proveedor de telefonia SIP. Si tenemos una tarjeta PCI FXS o FXO haremos las configuraciones en zapata.conf.

En nuestro caso el hardware con el que contamos es un adaptador ATA Linksys SPA302, Este se configura en la etiqueta [patio]. Tambien lo conectamos a un proveedor de telefonia SIP llamado VoIPBuster, en la etiqueta [voipbuster] (si conoces uno con mejores precios dimelo a isaac.hacksimov@patiomaravillas.net ;D) y creamos un usuario preparado para conectarlo por softphone (tanto con twinkle como con ekiga) en la etiqueta [isaac]. 

[general]
context=default
useragent=
disallow=all
allow=gsm
allow=alaw
allow=ulaw
language=es
srvlookup=yes
tos_sip = cs3
tos_audio = ef
tos_video = af41
allowguest = yes
register => isaac.hacksimov:CONTRASENA@sip1.voipbuster.com:5060
[patio]
type=friend
host=dynamic
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes
[voipbuster]
type=peer
host=sip1.voipbuster.com
username=isaac.hacksimov
fromuser=isaac.hacksimov
secret=CONTRASENA
context=voipbuster
insecure=port,invite
qualify=yes
canreinvite=no  
[isaac]
type=friend
host=dynamic
username=isaac
secret=CONTRASENA
callerid="Dr. Isaac Hacksimov"
context=patio
mailbox=3000@default
qualify=yes

Vamos paso por paso: 

[general]
context=default
useragent=
disallow=all
allow=gsm
allow=alaw
allow=ulaw
language=es
srvlookup=yes
tos_sip = cs3
tos_audio = ef
tos_video = af41
allowguest = yes  
register => isaac.hacksimov:CONTRASENA@sip1.voipbuster.com:5060

Aqui le estamos diciendo el contexto en el que se encuentra esta etiqueta (esto lo volveremos a ver en el extensions.conf), tambien que tipo de codecs estamos permitiendo (gsm, alaw, ulaw) y el idioma (espaniol, mas tarde instalaremos los sonidos),

La linea de register tiene los mismos datos que en la etiqueta [voipbuster]. Es necesario en algunos proveedores. 

El adaptador ATA:

[patio]
type=friend
host=IPDELCACHARRO
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes

Aqui le tendremos que poner la IP del adaptador, junto con el nombre y la contraseña. Otro dato importante es el contexto, en este caso es "patio". 

[voipbuster]
type=peer
host=sip1.voipbuster.com
username=isaac.hacksimov
fromuser=isaac.hacksimov
secret=CONTRASENA
context=voipbuster
insecure=port,invite
qualify=yes
canreinvite=no

En esta etiqueta lo importante es el host, que es la URL que nos da nuestro proveedor cuando nos registramos. Elegimos VoIPBuster por permitirnos hacer llamadas gratuitas a los siguientes paises por un plazo de 120 dias pagando 10 euros:

Andorra
Australia
Austria
Bélgica
Canadá
Checa, República
Chile
Chipre
Dinamarka
España
Estonia
Eu Estados Unidos (+mobile)
Finlandia
Francia
Guam
Hong - Kong (+mobile)
Hungria
Irlanda
Islandia
Israel
Italia
Japón
Luxemburgo
Malasia
Mónaco
Noruega
Nueva Zelanda
Países Bajos
Panamá
Portugal
Puerto Rico (+mobile)
Rusia [moscow]
Rusia [st Petersburg]
Singapur
Sudcorea
Suiza
Taiwan

Cual es el problema con VoIPBuster? Van cambiando el listado de paises sin avisar, por lo que es posible que nos quiten algo de credito  

 

Si conoces uno mejor, dimelo a isaac.hacksimov@patiomaravillas.net.

Por ultimo configuramos otro usuario mas. Lo unico que difiere con los anteriores es el host, que es dinamico, esto es decir que puede tener cualquier IP: 

[isaac]
type=friend
host=dynamic
username=isaac
secret=CONTRASENA
callerid="Dr. Isaac Hacksimov"
context=patio
qualify=yes

EXTENSIONS.CONF

[general]
static=yes
writeprotect=yes

[globals]
CABINA=SIP/patio
VOIPBUSTER=SIP/voipbuster
ISAAC=SIP/isaac
[default]

[patio]
include => default
include => nacionales
include => echo
include => monkeys 
[isaac]
include => default
include => nacionales
include => echo
include => monkeys  
[nacionales]  
exten => _9ZXXXXXXX,1,Dial(${voipbuster}/0034${EXTEN},60,r)
exten => _9ZXXXXXXX,n,Hangup
[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,n,Echo
exten => 600,n,Playback(demo-echodone)
exten => 600,n,Hangup
[monkeys]
exten => 666,1,Answer()
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeysintro)
exten => 666,n,Playback(tt-somethingwrong)
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeys)
exten => 666,n,Hangup 

Como decia Jack el Destripador, vamos por partes: 

[general]
static=yes
writeprotect=yes 
[globals]
CABINA=SIP/patio
VOIPBUSTER=SIP/voipbuster
ISAAC=SIP/isaac

El contexto general, donde pondremos las opciones que valen para todo el fichero. En general lo protegemos y en globals ponemos las variables. Se escribe teniendo en cuenta los usuarios que creamos en el fichero sip.conf. Creamos 3 variables: una para el adaptador ATA (usuario y contexto patio en el fichero sip.conf, variable CABINA), otra para voipbuster y la ultima para el usuario que se conectara por softphones, isaac.  

[default] 
[patio]
include => default
include => nacionales
include => echo
include => monkeys  
[isaac]
include => default
include => nacionales
include => echo
include => monkeys 

Estos son los contextos de los usuarios que realizaran las llamadas, patio e isaac. El proveedor SIP, obviamente, no realizara llamadas, sino que enrutaremos las llamadas hacia el. El include sencillamente significa que estamos incluyendo esos contextos (default, nacionales, echo y monkeys),   

[nacionales]
exten => _9ZXXXXXXX,1,Dial(${VOIPBUSTER}/0034${EXTEN},60,tr)
exten => _9ZXXXXXXX,n,Hangup

Esta es la sintaxis que utilizaremos para definir que hacer cuando se realiza un llamado. Por ejemplo, aqui estamos definiendo que cuando se marque un telefono que comienza con 9 y el siguiente numero sea mayor a 0 (Z) y los siguientes 7 numeros sean mayores o iguales a 0 (XXXXXXX), primero (1) marque al numero que configuramos anteriormente como perteneciente a voipbuster el numero que se ha marcado ($EXTEN) añadiendole el codigo internacional del pais, España en este caso (0034). Tambien le decimos que llame durante 60 segundos y que permita la transferencia y no escuche el tono de marcado (tr). Luego le decimos que cuando termine con esto, cuelgue. Y todo esto en 2 lineas!!

Como vemos, en principio puede parecer complicado, pero cuando hagamos mas extensiones podremos ver que a traves de el DialPlan se puede sacar mucho jugo al Asterisk, permitiendonos hacer muchisimas cosas y divertirnos un monton ;), por ejemplo:

[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,n,Echo
exten => 600,n,Playback(demo-echodone)
exten => 600,n,Hangup

Aqui le decimos que para el contexto [echo], es la extension 600. Primero reproducira (Playback) un sonido que dice que hara una prueba de eco con demo-echotest, que se encuentra en /var/lib/asterisk/sounds/ o donde lo hayamos instalado. Importante, no es necesario poner el formato del audio, Asterisk decidira cual es el mejor en cada caso. Luego llama al programa que hace la prueba de eco en si, y manda a reproducir otro sonido diciendo que termino la prueba de eco. Por ultimo cuelga. Con respecto a la sintaxis, esto mismo podriamos haberlo escrito asi: 

[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,2,Echo
exten => 600,3,Playback(demo-echodone)
exten => 600,4,Hangup  

Pero en este caso cuando querramos cambiarlo habra que renumerar todo, por lo que es preferible usar la "n" para llamar a la siguiente accion.

[monkeys]
exten => 666,1,Answer()
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeysintro)
exten => 666,n,Playback(tt-somethingwrong)
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeys)
exten => 666,n,Hangup

Este es nuestro pequeño huevo de pascua. Aqui le decimos que atienda, que espere por 2 segundos, que reproduzca unos sonidos (la "introduccion a los monos" y "algo va muy mal"), espere 2 segundos mas, reproduzca otro sonido ("monos" !!!!) y por ultimo cuelgue. 

El unico contexto que falta poner en esta configuracion es [internacionales]. Al ser una configuracion tan larga y que tanta gente le puede dar uso decidimos liberarlo en una wiki dedicada al mundo VoIP: voip-info.org. El link donde pueden ver las extensiones actualizadas para hacer llamadas a telefonos fijos (landlines/fixed lines) esta aqui: LINKVOIPINFOINTERNACIONALES

Todo eso se agregaria en el extensions.conf y tambien como includes del usuario al que queremos habilitar las llamadas internacionales. 


Configuracion del cliente Softphone

Veremos como conectarnos con dos clientes de software: Ekiga y Twinkle. 

EKIGA

Por defecto muchas distribuciones GNU/Linux ya vienen instaladas con un cliente SIP, el Ekiga. En Ubuntu, este se encuentra en Aplicaciones -> Internet -> Softphone Ekiga, 

EkigaEkigaCrearemos una cuenta con lo que hemos puesto en sip.conf, junto con la IP del servidor. En caso de tener que conectarse desde internet deberan abrirse los puertos necesarios y poner la IP publica o el dominio que tengamos asociado a esta.

Nombre de la cuenta: isaac 
Protocolo: SIP
Registrador: 192.168.10.1
Usuario: isaac
Contraseña: CONTRASENA

TWINKLE

Conectarse a traves de Twinkle es muy sencillo, solo hace falta instalarlo. Para Ubuntu/Debian basta con

# sudo aptitude install twinkle

Aparecera en Aplicaciones -> Internet -> Twinkle. Lo abriremos y crearemos un perfil nuevo utilizando la configuracion que hemos puesto en el fichero sip.conf. El Domain debe ser la IP donde esta nuestro servidor. 

Siguiendo el ejemplo asi seria nuestra configuracion:  TwinkleTwinkle

Your name: isaac
User name: isaac
Domain: 192.168.10.1
Realm: isaac
Authentication name: isaac
Password: CONTRASENA 

Luego deberemos ver lo siguiente en el log del Twinkle:

isaac, registration succeeded (expires = 3600 seconds)

Esto significa que ya estamos conectados :D


Configuracion del adaptador ATA

Para configurar el SPA-3102, con una linea de salida para hacer llamadas y otra de entrada/salida PSTN, es decir una linea telefonica normal, vamos a hacer lo siguiente:

  1. En un navegador ingresamos la IP del adaptador.
  2. Nos dira "spa user" y nos pedira usuario y contraseña. Pondremos usuario "user" y sin contraseña. Entraremos una pagina que nos muestra información de la configuración actual. 
  3. Vamos a la seccion de Administracion, en "Admin login". Nos pedira nuevamente usuario y contraseña ("admin user"). Esta vez ponemos como usuario "admin" y sin contraseña. 
  4. Ya aqui nos pondemos a configurarlo:
  • En Voice -> System podremos cambiar la contraseña de acceso (User Password:). Dandole a "Advanced" podremos tambien cambiar la contraseña del usuario Admin (Admin Password:)
  • En Router -> Wan Setup le pondremos una IP estatica dentro de nuestro rango de red. Aqui podremos tambien configurarlo como router ("PPPoE Settings")
  • En Voice -> Line 1 configuraremos nuestra linea para hacer llamadas. Tendremos que poner como minimo los siguientes paramentros:
Line enable: yes
SIP Port: 5060
Proxy: IPDELASTERISK
Register: yes
Display name: patioConfigurar adapatador ATA 3102 - 1Configurar adapatador ATA 3102 - 1
Password: CONTRASENA
Auth ID: patio
User ID: patio
Use Auth ID: patio
Preferred Codec: G711a
Use Pref codec only: no
Esto en el Asterisk lo configuramos de la siguiente forma:
[patio]
type=friend
host=IPDELCACHARRO
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes
  • En Voice -> PSTN Line configuraremos nuestra linea PSTN para hacer y recibir llamadas.
Line Enable: yes
SIP Port: 5061
Configurar adapatador ATA 3102 - 2Configurar adapatador ATA 3102 - 2
Proxy: IPDELASTERISK
Register: yes
Display Name: pstn
Password: CONTRASENA
Auth ID: pstn
User ID: pstn
Use Auth ID: no
Preferred Codec: G711a
Use Pref Codec Only: no
Esto en el Asterisk lo configuramos de la siguiente forma:
[pstn-spa3k]
type=peer
auth=md5
host=IPDELCACHARRO
port=5061
secret=CONTRASENA
username=pstn
fromuser=pstn
dtmfmode=rfc2833
context=incoming-pstn
insecure=very

Consola y Logs

Pronto veremos que la consola de Asterisk es completamente intuitiva y todo un aliado para resolver problemas.Para conectarnos a la consola depende de como hayamos iniciado Asterisk. Primero comprobamos si esta corriendo con el comando

# ps auxf | grep asterisk

En caso de que no lo veamos deberemos conectarnos con el siguiente comando:

# /usr/sbin/asterisk -vvvvc
Por otro lado, si lo iniciamos como demonio, para conectarnos a la consola deberemos hacerlo con el mismo comando pero la opcion -r en vez de -c: 
# /usr/sbin/asterisk -vvvvr

Si hay alguna duda sobre este punto, puedes leer la seccion "Iniciar/Parar Asterisk"

Una vez dentro de la consola deberas ver lo siguiente: [Nota: CLI significa Command Line Interface, Interfaz de Linea de Comandos]

 *CLI> 

Para empezar, cuando un usuario se conecte o se realize una llamada lo veremos ahi, por ejemplo cuando el usuario Isaac se conecto a traves del Twinkle aparecio lo siguiente: 

     -- Registered SIP 'isaac' at 192.168.10.135 port 5060 expires 3600
-- Saved useragent "Twinkle/1.2" for peer isaac
[Apr  5 20:01:20] NOTICE[8449]: chan_sip.c:12669 handle_response_peerpoke: Peer 'isaac' is now Reachable. (25ms / 2000ms) 

Y cuando se desconecto: 

  Unregistered SIP 'isaac'

Cuando se conecto con Ekiga:

-- Registered SIP 'isaac' at 192.168.10.135 port 5061 expires 3600
-- Saved useragent "Ekiga/2.0.12" for peer isaac
[Apr  5 20:10:27] NOTICE[8449]: chan_sip.c:12669 handle_response_peerpoke: Peer 'isaac' is now Reachable. (32ms / 2000ms) 

Cuando realizo un llamado al 666 [monkeys], vemos el DialPlan ejecutandose en tiempo real:

    -- Executing [666@patio:1] Answer("SIP/isaac-089832b8", "") in new stack
-- Executing [666@patio:2] Wait("SIP/isaac-089832b8", "2") in new stack
-- Executing [666@patio:3] Playback("SIP/isaac-089832b8", "tt-monkeysintro") in new stack
-- <SIP/isaac-089832b8> Playing 'tt-monkeysintro' (language 'es')
-- Executing [666@patio:4] Playback("SIP/isaac-089832b8", "tt-somethingwrong") in new stack
-- <SIP/isaac-089832b8> Playing 'tt-somethingwrong' (language 'es')
-- Executing [666@patio:5] Wait("SIP/isaac-089832b8", "2") in new stack
== Spawn extension (patio, 666, 5) exited non-zero on 'SIP/isaac-089832b8' 

(No termino con todo porque el usuario colgo antes)

Tambien podemos ver en que estado se encuentra nuestro proveedor:

*CLI> [Apr  5 20:18:36] NOTICE[28025]: chan_sip.c:12669 handle_response_peerpoke: Peer 'voipbuster' is now Reachable. (90ms / 2000ms) 

Aparte de mostrarnos la informacion en tiempo real, tambien podremos pedirle informacion y cambiar la configuracion. Para aprender a movernos en ella nuestro gran aliado sera la tecla TAB (tabulador). Con esta completaremos y veremos que opciones nos da cada comando, por ejemplo si escribimos "sip show" y pulsamos TAB, veremos: 

*CLI> sip show 
channel        channels       domains        history        inuse          objects        
peer           peers          registry       settings       subscriptions  user           
users           

Lo que intuitivamente nos permite ver diferentes datos:

*CLI>  sip show users 
Username                   Secret           Accountcode      Def.Context      ACL  NAT       
isaac                      CONTRASENA                          patio            No   RFC3581   
patio                      CONTRASENA                              patio            No   RFC3581  
 CLI> sip show registry 
Host                            Username       Refresh State                Reg.Time                 
sip1.voipbuster.com:5060        isaac.hacksi       105 Registered           Sun, 05 Apr 2009 20:18:36 
 
*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status               
isaac/isaac                192.168.10.135   D          5061     OK (4 ms)            
voipbuster/isaac.hacksimo  194.221.62.198              5060     OK (90 ms)           
patio/patio                (Unspecified)    D          0        UNKNOWN              
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]

Tambien podemos probar el DialPlan, por ejemplo con el comando "console dial 666".

 *CLI> console dial 666
No such extension '666' in context 'default'

En este caso no funcionara porque no tenemos ninguna extension configurada en el contexto default, pero para hacer pruebas es recomendable ponerlas ahi (basta con ponerlas como include). Lo bueno de esto es que si el servidor tiene altavoces y microfono podremos probarlo sin necesidad de nada mas. 


Hacia el infinito y mas alla:

Algo que queda por ver y resulta muy entretenido es configurar el fichero voicemail.conf y el meetme.conf, y poner los sonidos en Español.

Puedes ver mas informacion del Asterisk en las siguientes paginas:

Una de las mejores paginas para leer documentacion es la wiki VoIP-Info. Aqui encontraremos documentacion detallada de muchos ficheros de configuracion y proveedores, asi como tambien conectar distintos dispositivos y aplicaciones al Asterisk.

Por supuesto, si te interesa ampliar tus conocimientos en este mundo de la telefonia IP libre, lo recomendable es leer el libro Asterisk: The Future of Telephony con licencia CC-by-sa,