Saltar a: navegación, buscar

Asterisk

En el siguiente documento explicaremos cómo configurar el servidor “open source” Asterisk para funcionar con el servicio VoIP del número virtual o de la centralita. El uso de Asterisk exige un nivel avanzado de conocimiento y en general no se recomienda, ya que la mayoría de las funciones se pueden realizar mucho más fácil y económicamente directamente con la centralita. Sólo se nos ocurre como casos, cuando se quiera apreder a usarlo, si ya se tiene funcionando, para call centers muy grandes (que exigan una central aparte, Asterisk o no) o si se tienen números de teléfonos de varios países y el Asterisk hace las veces de unificador.

No es el cometido de este documento explicar el funcionamiento del servidor de Asterisk, por lo que consideraremos que el lector tiene ya conocimiento sobre el uso del mismo; y que además ya lo tiene correctamente instalado y que sabe hacerlo funcionar.

Para nuestros ejemplos, usaremos el número virtual “902955279”, que hemos activado con la contraseña “la_contrasenya”. Para usar una extensión de una centralita, en vez de poner 902955179 pondríamos (por ejemplo) 902955279.0.

Codec G.723

El servicio VoIP de Duocom utiliza el codec g.723, que no viene por defecto en Asterisk. Por ello, deberemos descargárnoslo de:

http://asterisk.hosting.lv/#bin

Allí tendremos que buscar el codec para nuestra versión de Asterisk y nuestra arquitectura (pentium, core2, x86_64, etc.). Una vez descargado tendremos que moverlo a: /usr/lib/asterisk/modules/codec_g723.so.

Configuración de Asterisk

Vamos a configurar un servidor Asterisk para funcionar con el servicio VoIP de Duocom. Además, más tarde pondremos un softphone X-Lite (se puede usar cualquier otro) para que se conecte al Asterisk y pueda recibir y realizar llamadas.

En el servidor de Asterisk sólo hay que tocar dos archivos: sip.conf y extensions.conf. Estos se encuentran normalmente bajo el subdirectorio /etc/asterisk.

En sip.conf hay tres partes: la parte del registro (register => ...), la parte que lleva la comunicación con el softphone ([9070]), y la parte para realizar las llamadas ([duocom]).

/etc/asterisk/sip.conf:

[general]
context=default
bindport=5060   ;por defecto es el 5060, pero es bueno ponerlo para que lo mande en el Contact:
bindaddr=0.0.0.0
srvlookup=yes
allow=g723
sipdebug=yes    ;lo podemos quitar cuando todo funcione

;Esto es muy importante, pues le decimos al Asterisk como se tiene que registrar
;con duocom. Al final escribimos duocom que hace que las llamadas desde el vengan a duocom
;segun especificado en el Contact:
register => 902955279:la_contrasenya@msip.duocom.es/duocom

nat=yes

;Este siguiente es como se configura un telefono para ser usado con Asterisk, no tiene nada
;que ver con el proveedor. Cada cual que tiene un Asterisk debe saber como organizar sus telefonos y
;su dialplan.
[9070]
; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)!
; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed
type=friend
host=dynamic     ;importante que sea dynamic, porque si le especificamos la ip no deja registrarlo
nat=yes          ;si esta dentro de la misma red el nat=no
reinvite=no
canreinvite=no
dtmfmode=rfc2833
disallow=all
allow=ulaw
;aqui le podemos poner otros, en particular si el telefono lo permite ponemos el g723 para 
;ahorrarnos el transcoding. 
subscribecontext=internal
username=9070
password=9070   ;el que sea obviamente

[duocom]
; Solo para las llamadas salientes
type=friend
host=msip.duocom.es
fromuser=902955279
fromdomain=msip.duocom.es
username=902955279
secret=la_contrasenya
dtmfmode=rfc2833
qualify=yes
disallow=all
allow=g723
nat=yes
context=default
canreinvite=no
insecure=port,invite



En el cli del asterisk (se le llama asterisk -r) podemos ver los registros con sip show registry. Y en la página del voip de telefacil.com podemos ver que estamos registrados.

En el fichero extensions.conf, en la parte [default] ponemos dos cosas importantes: que, cuando se coja una llamada, vaya al softphone directamente (exten => duocom,1,Dial(SIP/9070,20)) y que, cuando se haga una llamada, salga por el servicio VoIP de Duocom (exten => _.,2,Dial(SIP/${EXTEN}@duocom,90,Ttr)).


Evidentemente cada cual tiene que programar el dialplan de la forma apropiada, este es un ejemplo para sólo un teléfono.

/etc/asterisk/extensions.conf:

[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no

[globals]
CONSOLE=Console/dsp                             ; Console interface for demo
IAXINFO=guest                                   ; IAXtel username/password
TRUNK=Zap/g2                                    ; Trunk interface
TRUNKMSD=1                                      ; MSD digits to strip (usually 1 or 0)

[default]
;estas son las llamadas entrantes por el voip.
exten => duocom,1,Dial(SIP/9070,20)
exten => duocom,2,Hangup

exten => _.,1,SetCallerID,"902955279"
exten => _.,2,Dial(SIP/${EXTEN}@duocom,90,Ttr)

Configuración del softphone

El softphone que usamos es el X-Lite 2.0, que funciona tanto en Windows como en Linux, y que se puede descargar gratuitamente de:

http://www.counterpath.com/13#Download

Supondremos que el servidor de Asterisk está en la dirección IP 172.26.0.5, y, tal como configuramos, en el puerto 5060.

Primero vamos a configuración: System Settings->Network y ponemos los parámetros así:

Xlite network.png

Luego en System Settings->SIP Proxy->[Default] pondremos lo siguiente:

Xlite sipproxy.png

Con esto ya podremos realizar y recibir llamadas desde el softphone por medio de Asterisk.


Enlaces


Enlaces externos