En primer lugar instalaremos asterisk y algunos sonidos en español que pondremos a la centralita.
# yum install asterisk asterisk-sounds-core-es asterisk-sounds-core-es-gsm
Una vez que tenemos instalado asterisk, para activar el servicio basta con hacer un
# systemctl asterisk start
y si queremos que se inicia cada vez que arranquemos nuestra máquina
# systemctl enable asterisk
Pero antes de hacer esto conviene configurar el servidor, asterisk es un mundo en cuanto a configuraciones, nosotros vamos a hacer una muy básica, para la cual solo editaremos los archivos de configuración sip.conf y extensions.conf, ambos se encuentran en /etc/asterisk/
- En el archivo sip.conf se crearan los usuarios que utilizaran conexiones SIP.
- En el archivo extensions.conf se encontraran los planes de marcado (Dialplan) que asignaremos a cada usuario, estos planes de marcado se usan para gestionar las llamadas a extensiones, este archivo hace que asterisk se comporte como un conmutador.
Para añadir un usuario SIP. Añadimos al archivo de configuracion sip.conf las siguientes lineas:
[1000] ;Username
type=friend ;Permite recibir y realizar llamadas.
secret=password ;Contraseña
callerid=miID ;Identificador del usuario
qualify=yes ;Comprobación si es alcanzable.
nat=yes ;Si se conecta a través de una red con NAT.
host=dynamic ;Si su IP es variable.
canreinvite=no
context=helloworld ;El contexto en el plan de marcado de esta extension
Para añadir el contexto nos vamos al archivo de configuración extensions.conf y añadimos las siguientes lineas (por ejemplo, el hola mundo :)):
[helloworld]
exten => _[1-3]X,1,Answer() ;Responde a una llamada que esta sonando
exten => _[1-3]X,2,Playback(/usr/share/asterisk/sounds/es/hello-world) ;Reproduce sobre un canal activo un sonido.
exten => _[1-3]X,3,Hangup() ;Cuelga un canal activo
La sintaxis que se usa para añadir un contexto es:
[contexto]
exten => extension,prioridad,Aplicación(funciones)
Para las extensiones se pueden y deben usar patrones, recuerda Traductores, Compiladores e Interpretes y Teoria de Automatas. :D
En el ejemplo que puse antes, la extensión _[1-3]X, quiere decir que si marcamos dos dígitos y el primer dígito empieza por 1,2 y 3, sonará el Hola Mundo. :)
* Cada vez que editéis algo en extensions.conf para que se efectuen los cambios en asterisk, basta con abrir un prompt y hacer un dialplan reload. El comando reload es para reiniciar el servicio y se realicen incluido los cambios que se efectuado en sip.conf
# asterisk -r
asterisk*CLI> dialplan reload
asterisk*CLI> reload
asterisk*CLI> dialplan reload
asterisk*CLI> reload
Como he dicho, esto es solo un ejemplo, Asterisk tiene mil funciones más, ya que es una centralita software bastante completa.
Ya solo nos falta buscar un cliente y probarlo, para ello tenemos varios, por ejemplo en Linux tenemos Ekiga o Linphone entre otros, y para Android Zoiper, por ejemplo. Una vez estemos registrados en el sistema marcamos 15 (por ejemplo) y la centralita nos pondrá el sonido "Hola Mundo".