La voz IP es tan extensa que lo primero que vamos a hacer es a entender algunos conceptos claves acerca de Asterisk y los softphones.
Asterisk: Aplicativo Open Source que permite hacer funcionar un equipo de computo como una planta PBX.
Softphone: Aplicativo del lado del cliente, que permite que nuestro equipo de computo funcione como un teléfono.
Sip: Protocolo de señalizacion de marcado, basicamente es el tipo de protocolo que usan normalmente los softphones.
RTP: Son los puertos por los que realmente se tranmite la voz, son puertos udp y se usan en pares por cada llamada.
Lo siguiente es diferenciar de que el tipo de telefonía que se maneja con el asterisk es telefonia IP, VoIP, la cual se transmite por medio del cableado de datos, lo que permite una mejora en las comunicaciones sobre las redes PSTN ( Red Telefónica Pública Conmutada ), ya que permite mejor control sobre los paquetes que se reciben y transmiten, además de reducir costos, esto se logra por que por un mismo canal se pueden enrutar muchas llamadas al mismo tiempo, aunque el asterisk maneje telefonía IP también se puede conectar a una red PSTN y enrutar las llamadas al interior de la empresa, además que no solo los softphones lo usan sino que tambien existen los telefonos IP o Hardphone, que son los telefonos físicos que se pueden conectar a la red por medio de un switch y por medio de configuraciones especificas podemos configurarlos para que descarguen la configuración automaticamente de nuestro servidor Asterisk y configurar el número de la extensión y los datos necesarios para la comunicación.
Después de instalar el GNU/Linux Ubuntu 10.04 Server, y de actualizado todo el sistema con el comando:
# apt-get update && apt-get upgrade && apt-get dist-upgrade && apt-get clean && reboot
Lo que hacemos con el comando anterior es actualizar todo el sistema incluyendo la version del kernel, limpiamos el equipo de los paquetes descargados y reiniciamos la máquina para que todos los cambios surtan efecto.
Nos disponemos a instalar el servidor PBX Asterisk desde los repositorios.
# apt-get install asterisk asterisk-1.6.2 -y
Después de esto, ya tenemos nuestra planta telefonica instalada, y lista para la configuración y puesta en marcha.
Los archivos de configuración de nuestra planta asterisk se encuentra en /etc/asterisk, asi que nos movemos a este directorio y podemos encontrar algunos archivos de configuración, los que usaremos serán extensions.conf, sip.conf y voicemail.conf.
En el primer archivo es donde configuraremos nuestra forma de manejar las llamadas o plan de narcado (Dial Plan), mientras que en el segundo configuraremos los usuarios y su extensión y en el tercero configuraremos el buzon de mensajes de los usuarios.
Abrimos nuestro archivo sip.conf:
# vim /etc/asterisk/sip.conf
Al final del documento agregamos nuestros usuarios de modo que queden asi:
[3000] #Definimos el numero de la extension.
username=3000 #Nombre del usuario de esa extensión.
type=friend
secret=123456 #Password de ingreso del usuario.
callerid="Usuario" <3000> #Id de llamada.
host=dynamic #Tipo de cliente.
nat=no #Definir si ahi nateo entre el servidor y el cliente.
qualify=yes
canreinvite=yes
insecure=invite,port
directmedia=no
disallow=all #Deshabilita todos los codecs.
allow=gsm #Habilita el codec gsm.
allow=ulaw
allow=alaw
context=micontexto #Contexto en el que se manejaran las llamadas.
mailbox=3000@voicemail #Buzon de mensajes de vos del usuario
callgroup=1
pickupgroup=1
registertrying=yes
username=3000 #Nombre del usuario de esa extensión.
type=friend
secret=123456 #Password de ingreso del usuario.
callerid="Usuario" <3000> #Id de llamada.
host=dynamic #Tipo de cliente.
nat=no #Definir si ahi nateo entre el servidor y el cliente.
qualify=yes
canreinvite=yes
insecure=invite,port
directmedia=no
disallow=all #Deshabilita todos los codecs.
allow=gsm #Habilita el codec gsm.
allow=ulaw
allow=alaw
context=micontexto #Contexto en el que se manejaran las llamadas.
mailbox=3000@voicemail #Buzon de mensajes de vos del usuario
callgroup=1
pickupgroup=1
registertrying=yes
Lo anterior es la configuración de un usuario que se conecta con protocolo SIP, ahora se debe configurar que se debe hacer con la llamada, que para eso abrimos el primer archivo, extensions.conf y al final del documento definimos el manejo de nuetra llamada:
[micontexto] #Definimos el contexto a configurar
exten => _XXXX,1,Dial(SIP/${EXTEN},30,Tt) #Definimos que hacer con la llamada que se haga a una extension cualquiera de 4 digitos, el 30 es el tiempo de repique o que timbra.
exten => _XXXX,150,Voicemail(${EXTEN}@voicemail) #Definimos la regla de que hacer al no contestar.
exten => _XXXX,n,Hangup #Colgamos la llamada, es uno de los componentes mas importante en la configuración de un plan de marcado debido a que de no hacerlo la llamada sigue en linea.
exten => _XXXX,1,Dial(SIP/${EXTEN},30,Tt) #Definimos que hacer con la llamada que se haga a una extension cualquiera de 4 digitos, el 30 es el tiempo de repique o que timbra.
exten => _XXXX,150,Voicemail(${EXTEN}@voicemail) #Definimos la regla de que hacer al no contestar.
exten => _XXXX,n,Hangup #Colgamos la llamada, es uno de los componentes mas importante en la configuración de un plan de marcado debido a que de no hacerlo la llamada sigue en linea.
exten => *98,1,Answer #Se define que hacer al marcar *98.
exten =>; *98,2,Wait(1)
exten => *98,3,VoiceMailMain(${CALLERID}@voicemail) #Se define que buzon de voz es el que se va a escuchar.
exten => *98,4,Hangup # Colgada de la llamada.
Tenemos configurado nuestro plan de marcado, ahora si a crear nuestro buzon de mensajes, que se especifica en el tercer archivo voicemail.conf, y procedemos de la sigiente manera:
Abrimos nuestro archivo:
# vim /etc/asterisk/voicemail.conf
Editamos al final del documento.
[voicemail] #Definir el contexto del voicemail
3000 => 3000,Usuario,User@localhost #definir el usuario con el buzon de voz.
3000 => 3000,Usuario,User@localhost #definir el usuario con el buzon de voz.
Ahora que ya tenemos configurado nuetro asterisk, no queda sino reiniciar el servicio de Asterisk para que todos los cambios se apliquen de manera correcta, lo cual podemos hacer del siguiente mdo:
rasterisk -vvvvvv
las "v" son para mostrar el nivel de Verbose. Después de que estes dentro de la consola de asterisk digitas reload, esperas hasta que te salgan los logs , ahora queda hacer la prueba con un softphone, si los clientes trabajan con Windows, pueden descargar un softphone para windows gratuito como el xlite y otros, si tu área es Linux, pueden hacer lo siguiente:
# add-apt-repository ppa:savoirfairelinux && apt-get update && apt-get upgrade && apt-get install sflphone-client-gnome
Esto instala el nuevo softphone para GNU/Linux llamado SFLPhone, solo resta configurarlo con el username y el secret dados para este cliente, y asi poder comunicarse con otros usuarios, es un buen softphone funcional y personalizable para GNU/Linux.