Trucos Asterisk, Entrega número 4
En esta nueva entrega os enseñaremos a montar un trunk contra la centralita VoIp de PeopleCall, es una buena forma de obtener un número de telefono accesible por las demás compañías de voz, los numeros podrán ser 902 con un precio, a mi gusto, excesivo, 100 € o un número 700 bastante más asequible, 5 €.
Los costes, para recibir llamadas, son los que te cobren por el número y los costes para realizar llamadas los podeis ver aquí.
La utilización de una segunda linea en un centralita nos otorgará la libertad de poder recibir llamadas VoIP en un número y en el otro mandarlas a una locución, por ejemplo, Estamos Fuera de Horario. La aplicación que le saqueis a la segunda linea dependerá de vosotros.
Sin perder más tiempo nos pondremos manos a la obra……..
Para la utilización de los servicios de PeopleCall necesitaremos instalar los codecs para poder recibir llamadas VoIP, estos codecs son g729 y codec g723. Los codecs podremos utilizarlos sin ningún cargo si lo vamos a hacer para uso personal, debemos descargar el codec e instalarlo, si vamos a utilizarlo de forma "empresarial" debemos ademas licenciarlo, es decir simplemente comprar la licencia, por si algun día vienen a pedirnosla.
La página para descargar los codecs g729 y g723 es esta debemos elegir el correspondiente para nuestro Asterisk y para nuestra CPU.
Para saber la CPU que tenemos y sus flags teclead este comando:
operadora:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.53GHz
stepping : 7
cpu MHz : 2525.108
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up cid xtpr
bogomips : 5054.09
Con esta información y nuestra version de asterisk, descargad el codec, en nuestro ejemplo la version de asterisk 1.2 y cpu P4 sin sse3 y con la librería gcc
operadora:~# cd /usr/src/
operadora:/usr/src# wget http://asterisk.hosting.lv/bin12/codec_g729-ast12-gcc4-glibc-pentium4.so
operadora:/usr/src# wget http://asterisk.hosting.lv/bin12/codec_g723-ast12-gcc4-glibc-pentium4.so
Desde esta ubicación los copiaremos a la nueva, antes pararemos asterisk, nosostros al tener FreePBX, lo haremos con amportal stop, copiaremos los codecs g729 y g723, daremos permisos e iniciaremos asterisk.
operadora:/usr/src# amportal stop
operadora:/usr/src# cp /usr/src/codec_g729-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g729.so
operadora:/usr/src# cp /usr/src/codec_g723-ast12-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g723.so
operadora:/usr/src# chmod 777 /usr/lib/asterisk/modules/*
operadora:/usr/src# amportal start
Comprobemos que por ahora todo va bien, para ello entraremos a la consola de Asterisk y pondremos un par de comandos:
operadora:/usr/src# asterisk -rvvvvvvv
operadora*CLI> show translation
Translation times between formats (in milliseconds)
Source Format (Rows) Destination Format(Columns)
g723 gsm ulaw alaw g726 adpcm slin lpc10 g729 speex ilbc
g723 - 4 2 2 2 2 1 5 10 - 15
gsm 9 - 2 2 2 2 1 5 10 - 15
ulaw 9 4 - 1 2 2 1 5 10 - 15
alaw 9 4 1 - 2 2 1 5 10 - 15
g726 9 4 2 2 - 2 1 5 10 - 15
adpcm 9 4 2 2 2 - 1 5 10 - 15
slin 8 3 1 1 1 1 - 4 9 - 14
lpc10 10 5 3 3 3 3 2 - 11 - 16
g729 10 5 3 3 3 3 2 6 - - 16
speex - - - - - - - - - - -
ilbc 12 7 5 5 5 5 4 8 13 - -
Si os fijais los codecs g729 y g723 ya nos están funcionando, ya tienen sus tiempos de traducción de un formato a otro.
Pasemos ahora a configurar el nuevo Trunk para People Call.
Nosotros lo haremos con FreePBX, pincharemos en Trunks, Add Sip Trunk e iremos rellenando como os digo aquí:
La configuración es un ejemplo, tendremos nuestro numero de telefono 700111222 con password 1111111.
Trunk Name:
PeopleCall
PEER Details:
context=from-pstn
type=peer
host=sip.peoplecall.com
fromuser=34700111222001
fromdomain=sip.peoplecall.com
username=34700111222001
secret=11111111
dtmfmode=rfc2833
qualify=yes
disallow=all
allow=g729&g723
nat=yes
insecure=very
USER Context:
34700111222
USER Details:
context=from-pstn
fromdomain=sip.peoplecall.com
host=sip.peoplecall.com
qualify=30000
type=peer
user=34700111222001
username=34700111222001
insecure=very
Register String:
34700111222001:1111111@sip.peoplecall.com/34700111222
Aplicaremos cambios y comprobaremos que tenemos los puertos 5060 UDP y el rango 10000:20000 UDP redirigido a la máquina donde se hospeda Asterisk. Si es así podemos comprobar que se ha registrado sin ningún problema:
operadora*CLI> sip show registry
Host Username Refresh State
sip.peoplecall.com:5060 3470011122200 105 Registered
operadora*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
peoplecall3/3470011122200 62.22.20.194 N 5060 OK (89 ms)
34700111222/3470011122200 62.22.20.194 5060 OK (89 ms)
Ya podriamos comprobar que todo está funcionando, no olvideis que deberiamos tener en Inbound Routes definido algo para poder recibir la llamada de People Call.
Os cuento un error que me ha traido loco hasta que lo he sacado, si al poner
operadora*CLI> sip debug peer PeopleCall
os dejara un mensaje 488: No acceptable here aseguraros que habeis definido todo en el orden que he puesto arriba. "El orden de los factores SI altera el producto", por lo menos en Asterisk.
Warning: Use of undefined constant type - assumed 'type' (this will throw an Error in a future version of PHP) in /home/improvisa_com/web/improvisa.com/public_html/wp-content/themes/grassland/comments.php on line 38
Noticia subida a Autobombo y Autobombeame
¿O sea que el error que nos ha traído locos, era simplemente el orden en que había sido definidos el PEER Details y el USER Details?
Asterisk estos romanos están locos!!! xDDD
Salu2 champion!
efectivamente, el problema final ha sido ese, pero en mi centralita (asterisk 1.2.14) lo tenia en otro orden y funcionaba a la perfección, en la tuya (asterisk 1.2.27) con el mismo orden daba el error 488: No acceptable here.
Saludos.