No hace mucho tiempo que llevo jugando con esto de Linux cuando me enseñaron que era Asterisk.
¿Qué es Asterisk? Asterisk es una centralita software (PBX) de codigo abierto. Como cualquier centralita PBX permite interconectar telefonos y conectar dichos telefonos a la red telefónica convencional (RTB - Red telefónica básica)- Su nombre viene del simbolo asterisco (*) en inglés.
La diferencia con las centralitas convencionales reside en que las llamadas son dirigidas con internet extremo a extremo. ¿Qué supone esto? Llamadas internacionales baratas a cambio de no poder asegurar la calidad del sonido. Recordemos que internet es Best Effort.
Además de todo esto, el mayor de los atractivos de Asterisk es que soporta diferentes protocolos utilizados en llamadas VoIP: H323, IAX(propietario de Asterisk) y SIP ( el más usado en la actualidad ).
Una vez leídas estas pinceladas quizas sería recomendable leerse el siguiente tutorial que detalla qué es lo que se puede hacer con Asterisk, en qué consiste Asterisk y cómo se puede hacer.
TutorialUna vez leído ese tutorial, configurarse un servidor sencillo no debe resultar excesivamente complicado.
Un ejemplo simple sería el siguiente (particularizado para debian):
1.- Instalamos los paquetes de asterisk:
# apt-get install asterisk
2.- Configuramos el contenido de sip.conf (situaldo en /etc/asterisk)
[general]
context=default
usercallerid=yes
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
disallow=all ; First disallow all codecs
allow=ulaw ; Allow codecs in order of preference
allow=ilbc ;
trustrpid = yes ; If Remote-Party-ID should be trusted
sendrpid = yes ; If Remote-Party-ID should be sent
subscribecontext = default ; Set a specific context for SUBSCRIBE requests
; Useful to limit subscriptions to local extensions
; Settable per peer/user also
localnet=
192.168.1.0/255.255.255.0; All RFC 1918 addresses are local networks
domain=
type=friend
secret=welcome ; Password of the peer
qualify=yes ; Qualify peer is no more than 2000 ms away
;nat=yes ; This phone is natted
host=dynamic ; This device registers with us
canreinvite=no ; Asterisk by default tries to redirect
context=internal ; the internal context controls what we can do
[test2]
type=peer
qualify=yes ; Qualify peer is no more than 2000 ms away
nat=yes ; This phone is not natted
canreinvite=yes ; Asterisk by default tries to redirect
host=dynamic ;It will register with us
secret=welcome
context=internal
3.- Configuramos el contenido de extensions.conf (situaldo en /etc/asterisk)
[general]
static=yes
writeprotect=no
[globals]
; -------------------
; peers and friends
; -------------------
TEST1=SIP/test1
TEST2=SIP/test2
ALL_INTERNAL=${TEST1}&${TEST2}
[internal]
exten => 100,1,Dial(${ALL_INTERNAL},25,r)
exten => 101,1,Dial(${TEST1},25,r)
exten => 102,1,Dial(${TEST2},25,r)
4.- Lanzamos las consola de asterisk
# asterisk -r
5.- volvemos a cargar los ficheros de configuracion
*CLI> sip reload
*CLI> dialplan reload
6.- Configuramos los clientes para que autentiquen contra el servidor, ya sean softphones o teléfonos IP. Y ya lo tenemos nuestro primer servidor de Asterisk configurado!