Centralita Asterisk conectada a VoIP de Ya.com Total

En las últimas semanas he estado trasteando con el servidor Asterisk, y como tengo la línea de teléfono con ya.com mediante VoIP, he conectado ambos para poder hacer llamadas desde otros clientes SIP.

La configuración la he hecho en el router Buffalo WZR-HP-AG300H, al cual le he instalado la distribución OpenWrt. Este router es una auténtica maravilla, se lo recomiendo a todo el mundo y combinado con OpenWrt es una solución potentísima.

El router de ya.com tiene deshabilitado todo el tema de VoIP, firewall, NAT, etc. y está en modo bridge, por lo que la IP pública está asignada al router Buffalo. Este es un punto importante para la VoIP, que utiliza puertos dinámicos y debe conocer su IP pública. Como los amigos de ya.com tienen bloqueado el router, para poder ponerlo en modo bridge he tenido que hacer un downgrade del firmware a la versión 1.00.001

La configuración que he usado en Asterisk para conectar con ya.com se divide en dos partes. En sip.conf se configuran las conexiones SIP tanto a los proveedores como a los clientes (teléfonos). En extensions.conf se configura el plan de numeración (las extensiones y cómo manejar los números marcados). He dado de alta también al proveedor easyvoip para las llamadas a móviles e internacionales, que sale mucho más barato que ya.com. También he incluido un cliente SIP que uso desde mi teléfono Android para poder llamar como si estuviese en casa. Para el teléfono fijo he tenido que instalar un adaptado telefónico y lo he conectado con Asterisk con el usuario telefono1 y la contraseña definida en el fichero sip.conf, he elegido el modelo Cisco PAP2T.

En el router hay que abrir los puertos en el firewall, para SIP el 5060/UDP para RTP del 10000 al 20000 UDP y para IAX2 el 4569/UDP.

Como ya.com es un poco tiquismiquis con la configuración, he tenido que que poner la opción de useragent para que parezca que es el router SMC, además el host voipd.ya.com no resuelve, por lo que hay que poner las IPs 84.78.3.62 y 84.78.3.126 a mano en el fichero /etc/hosts.

He marcado con Xs mi número de teléfono y cambiado los passwords, si vais a usar esta configuración, ¡acordaros de cambiarlos! Para conseguir el password de registro con ya.com les llamé por teléfono y me lo dieron sin problemas.

He sacado la mayor parte de la información de enlaces como estos: 1, 2, 3, 4 y de este PDF. El firmware 1.00.001 para el router de ya.com lo he subido aquí.

sip.conf

[general]
context=unauthenticated
udpbindaddr=0.0.0.0             ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable=no                    ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0             ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
srvlookup=yes
language=es                    ; Default language setting for all users/peers
nat=no
;sipdebug=yes
register => +349XXXXXXXX@voipd.ya.com:password:9XXXXXXXX@proxy.voip.ya.com

[basic-phone](!)                ; a template
dtmfmode=rfc2833
context=phones
type=friend
host=dynamic
qualify=yes

[natted-phone](!,basic-phone)   ; another template inheriting basic-options
directmedia=no
canreinvite=no

[public-phone](!,basic-phone)   ; another template inheriting basic-options
directmedia=yes

[my-codecs](!)                    ; a template for my preferred codecs
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw

[ulaw-phone](!)                   ; and another one for ulaw-only
disallow=all
allow=ulaw

[yacom]
type=peer
host=voipd.ya.com
fromuser=+349XXXXXXXX
defaultuser=9XXXXXXXX
secret=<password ya.com>
context=voip_providers
fromdomain=voipd.ya.com
realm=voipd.ya.com
outboundproxy=proxy.voip.ya.com:5060
canreinvite=no
insecure=invite,port
qualify=yes
useragent=SMC/SMC-0.10.003
defaultexpirey=3600
dtmfmode=rfc2833
deny=0.0.0.0/0
permit=84.78.3.62/32
permit=84.78.3.126/32

[easyvoip]
type=peer
host=sip.easyvoip.com
fromuser=username
defaultuser=username
secret=password
context=voip_providers
qualify=yes
dtmfmode=rfc2833
deny=0.0.0.0/0
permit=77.72.174.128/32

[telefono1](natted-phone,ulaw-phone)
secret=password1
deny=0.0.0.0/0
permit=192.168.1.0/24

[android](natted-phone,ulaw-phone)
secret=password2
deny=0.0.0.0/0
permit=192.168.1.0/24

extensions.conf

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

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

[default]
exten => s,1,NoOp(Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()

[incoming_calls]
exten => s,1,Wait(0)
exten => s,n,NoOp(${CALLERID(num)}) ; trazar el caller-id en la consola
exten => s,n,Dial(SIP/telefono1&SIP/android,90,Ttr)
exten => s,n,Hangup()

[outgoing_calls]
exten => _6XXXXXXXX,1,NoOp(easyvoip call: ${EXTEN})
exten => _6XXXXXXXX,n,Dial(SIP/${EXTEN}@easyvoip,90,Ttr)
exten => _6XXXXXXXX,n,Hangup()

exten => _X.,1,NoOp(yacom call: ${EXTEN})
exten => _X.,n,Set(CALLERID(all)="+349XXXXXXXX" <sip:+349XXXXXXXX@voipd.ya.com>)
exten => _X.,n,Dial(SIP/${EXTEN}@yacom,90,Ttr)
exten => _X.,n,Hangup()

exten => s,1,NoOp(yacom call: ${EXTEN})
exten => s,n,Set(CALLERID(all)="+349XXXXXXXX" <sip:+349XXXXXXXX@voipd.ya.com>)
exten => s,n,Dial(SIP/${EXTEN}@yacom,90,Ttr)
exten => s,n,Hangup()

[international_calls]
exten => _+.,1,NoOp(International call)
exten => _+.,n,Goto(00${EXTEN:1},1) ; Change + to 00

exten => _00.,1,NoOp(easyvoip call: ${EXTEN})
exten => _00.,n,Dial(SIP/${EXTEN}@easyvoip,90,Ttr)
exten => _00.,n,Hangup()

exten => _00346.,1,NoOp(easyvoip call: ${EXTEN})
exten => _00346.,n,Dial(SIP/${EXTEN}@easyvoip,90,Ttr)
exten => _00346.,n,Hangup()

exten => _0034.,1,NoOp(easyvoip call: ${EXTEN})
exten => _0034.,n,Set(CALLERID(all)="+349XXXXXXXX" <sip:+349XXXXXXXX@voipd.ya.com>)
exten => _0034.,n,Dial(SIP/${EXTEN}@yacom,90,Ttr)
exten => _0034.,n,Hangup()

[internal]
exten => 100,1,NoOp()
exten => 100,n,Dial(SIP/telefono1)
exten => 100,n,Hangup()

exten => 101,1,NoOp()
exten => 101,n,Dial(SIP/android)
exten => 101,n,Hangup()

exten => 500,1,NoOp(Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()

[voip_providers]
include => incoming_calls
include => outgoing_calls
include => international_calls

[phones]
include => internal
include => voip_providers

[unauthenticated]
Advertisements

8 thoughts on “Centralita Asterisk conectada a VoIP de Ya.com Total”

  1. Gracias por la información.

    Lleva tiempo queriendo configurar asterisk con el router de yacom y no había manera. Ahora funciona a la perfección.

    Gracias otra vez.

    Like

  2. Excelente!

    Estoy configurando un router de Ya.com que tengo de más, al que le instalé OpenWRT, para que arranque desde un pen USB (no tiene suficiente flash para instalarle asterisk). A ver si consigo hacer esto que propones 🙂

    Una pregunta, cómo evitas que el autoactualizador de firmware de ya.com vuelva a poner el firmware más nuevo?

    Saludos,
    Edgar

    Like

    1. Pues supongo que cuando pones el router en modo bridge, ya no tienen acceso. El router solo es accesible con la IP 192.168.1.x

      El mío no se ha actualizado desde que lo puse así.

      Like

  3. Gracias amigo llevo casi un mes dando vueltas para poder configurar y con tu tutorial lo consegui

    …………………….GRACIAS POR TODO……….

    Like

  4. Bueno amigo no si te has dado cuenta los de ya han actualizado los router y por lo menos ami me han dejado de entrar las llamadas, todo sigue bien pero no me suenan las extensiones, sabrias tu algo de esto….?

    Like

    1. No he notado ningún problema porque ya no lo tengo montado como describo en el artículo. Debido a que en las últimas versiones de OpenWrt hay un problema por el cual ya no funciona correctamente Asterisk, he puesto el adaptador SIP telefónico conectado directamente a ya.com.

      Te recomiendo que pongas sipdebug=yes y eches un vistazo a ver que puede estar pasando.

      Suerte.

      Like

      1. [Jul 3 23:34:44] WARNING[1364]: chan_sip.c:21230 handle_response_register: Forbidden – wrong password on authentication for REGISTER for ’95xxxxxx’ to ‘84.78.3.126’
        > doing dnsmgr_lookup for ‘proxy.voip.ya.com’
        > ast_get_srv: SRV lookup for ‘_sip._udp.proxy.voip.ya.com’ mapped to host proxy1.voip.ya.com, port 5060
        > doing dnsmgr_lookup for ‘proxy.voip.ya.com’
        > ast_get_srv: SRV lookup for ‘_sip._udp.proxy.voip.ya.com’ mapped to host proxy1.voip.ya.com, port 5060
        [Jul 3 23:34:44] WARNING[1364]: chan_sip.c:21259 handle_response_register: Got 423 Interval too brief for service +3495xxxxxx@proxy.voip.ya.com, minimum is 3600 seconds
        > doing dnsmgr_lookup for ‘proxy.voip.ya.com’
        > ast_get_srv: SRV lookup for ‘_sip._udp.proxy.voip.ya.com’ mapped to host proxy1.voip.ya.com, port 5060

        el caso el que me funciona hacia fuera pero en llamadas hacia dentro no se entera de nada aasterisk,
        encambio si hago una llamada interna 95xxxxxxx marcando a mi propio numero si me la hace , lo que he hecho es para llamadas entrantes es poner una spa3201 y para salir tal como lo tenia pero no me identifica la llamda, seguire investigando haber si alguie sabe la solucion se lo agradezco.

        Like

      2. Te está fallando al registrarse, te dice wrong password, asegúrate que lo tienes bien puesto o que la operadora no te lo ha cambiado.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s