ACTUALIZACIÓN 4-1-2013: Con el reciente cambio de Telmex a Claro, es posible que algunas de estas configuraciones no funcionen o presenten discontinuidades en el servicio. Por favor escriban sus inquietudes en el foro para beneficio de todos. No se atenderán solicitudes de ayuda por mensaje privado.
Es bien sabido por varios LANeros que Telmex ofrece el servicio de telefonía residencial y comercial a través de una plataforma de VoIP, la cual usa el protocolo SIP para creación, modificación y finalización de llamadas.
Entre los CPE's autorizados, existe un softphone bajo Windows, el cual es un rebranding del conocido X-Lite, desarrollado por CounterPath. Dicho softphone tiene una particularidad, y es que tiene restringido el acceso a las credenciales SIP que normalmente se usan para registrarse ante el servidor SIP.
Después de instalar el softphone, se ingresan unas credenciales (usuario y contraseña), con las cuales el softphone se autentica en un servidor, que entrega las credenciales SIP (usuario, contraseña, número telefónico, etc.), y posteriormente se autentica nuevamente en otra máquina para poder realizar y recibir llamadas.
Dicha autenticación se realiza mediante método POST a través de HTTPS:
Al enviarse esta solicitud, el servidor responde con lo siguiente:
La solicitud y posterior respuesta se hacen mediante HTTPS, por lo que para obtener leer esta información fue necesario realizar un ataque MITM usando Fiddler 2.
Analizando la respuesta recibida del servidor, podemos extraer los campos de usuario, contraseña y usuario para autenticación. Varios LANeros han reportado su funcionamiento en otros programas tales como Zoiper, CSipSimple, X-Lite y 3CX.
En Asterisk se obtuvieron resultados parciales, ya que, como lo descubrió el LANero gecko777 en este post, Telmex es muy sensible a los encabezados "To:" y "From:", de tal manera que:
Asterisk envía:
Pero el servidor de Telmex requiere:
Para que Asterisk envíe los encabezados tal y como lo requiere Telmex, es necesario realizar una modificación al módulo chan_sip, editando el archivo chan_sip.c, de tal manera que:
Este parche fue hecho sobre Asterisk 1.8.6, por lo que para versiones posteriores es necesario realizar los ajustes manualmente.
Para concluir, la idea de este nuevo hilo es concentrar el trabajo para que no quede enterrado bajo los miles de posts que tiene el foro anterior: http://www.laneros.com/f50/libre-telefonia-tv-cable-69399/
Es bien sabido por varios LANeros que Telmex ofrece el servicio de telefonía residencial y comercial a través de una plataforma de VoIP, la cual usa el protocolo SIP para creación, modificación y finalización de llamadas.
Entre los CPE's autorizados, existe un softphone bajo Windows, el cual es un rebranding del conocido X-Lite, desarrollado por CounterPath. Dicho softphone tiene una particularidad, y es que tiene restringido el acceso a las credenciales SIP que normalmente se usan para registrarse ante el servidor SIP.
Después de instalar el softphone, se ingresan unas credenciales (usuario y contraseña), con las cuales el softphone se autentica en un servidor, que entrega las credenciales SIP (usuario, contraseña, número telefónico, etc.), y posteriormente se autentica nuevamente en otra máquina para poder realizar y recibir llamadas.
Dicha autenticación se realiza mediante método POST a través de HTTPS:
Código:
POST https://sip.cable.net.co/ HTTP/1.1
Host: sip.cable.net.co
Accept: */*
User-Agent: Telmex release 1105a stamp 62180
Content-Type: application/x-www-form-urlencoded
Content-Length: 72
&DisplayName=&Username=xxxxxxxx&AuthorizationUser=&Password=xxxxxxxxxxxx
Al enviarse esta solicitud, el servidor responde con lo siguiente:
Código:
[DATA]
Success=1
[SETTINGS]
system:license:key=FU95HSQKSFUNY73B2TH4CZB9CWGD7JW2SRHJ4NUY-VD76F9QNKF5F5S6X6AG5XXXX
system:general:never_show_domain
system:auto_update:code_server_url=
[##MEMORY##]
ui:custom_login:bringup_dialog_on_startup=1
ui:custom_login:force_dialog_every_time=1
ui:custom_login:close_application_on_cancel=1
ui:context_menu:sip_account_settings=0
codecs:broadvoice32:enabled=0
codecs:dvi4:enabled=0
codecs:dvi4_wb:enabled=0
codecs:evrc:enabled=0
codecs:g711a:enabled=1
codecs:g711u:enabled=0
codecs:g722:enabled=0
codecs:g722_2_wb:enabled=0
codecs:g723:enabled=0
codecs:g726-32:enabled=0
codecs:g729:enabled=0
codecs:gsm:enabled=0
proxies:proxy0:enabled=1
proxies:proxy0:display_name=1814XXXX
proxies:proxy0:username=0001814XXXX
proxies:proxy0:authorization_username=1814XXXX
proxies:proxy0:password=1234567890
proxies:proxy0:domain=190.144.159.138
proxies:proxy0:proxy=190.144.159.138
proxies:proxy0:override_outbound_proxy=1
proxies:proxy0:use_proxy_for_outbound_calls=1
proxies:proxy0:subscribe_to_message_waiting=0
proxies:proxy0:forward_busy_uri="sip:7505050@200.118.3.121:5060"
proxies:proxy0:forward_busy=1
proxies:proxy0:forward_no_answer_uri="sip:7505050@200.118.3.121:5060"
proxies:proxy0:forward_no_answer=1
La solicitud y posterior respuesta se hacen mediante HTTPS, por lo que para obtener leer esta información fue necesario realizar un ataque MITM usando Fiddler 2.
Analizando la respuesta recibida del servidor, podemos extraer los campos de usuario, contraseña y usuario para autenticación. Varios LANeros han reportado su funcionamiento en otros programas tales como Zoiper, CSipSimple, X-Lite y 3CX.
En Asterisk se obtuvieron resultados parciales, ya que, como lo descubrió el LANero gecko777 en este post, Telmex es muy sensible a los encabezados "To:" y "From:", de tal manera que:
Asterisk envía:
Código:
<sip:0001814xxxx@190.144.159.138>
Pero el servidor de Telmex requiere:
Código:
"1814xxxx" <sip:0001814xxxx@190.144.159.138>
Para que Asterisk envíe los encabezados tal y como lo requiere Telmex, es necesario realizar una modificación al módulo chan_sip, editando el archivo chan_sip.c, de tal manera que:
Código:
--- chan_sip.c 2011-09-10 19:39:25.000000000 -0500
+++ chan_sip_new.c 2011-09-10 19:37:49.000000000 -0500
@@ -11595,10 +11595,18 @@
}
ourport = (p->fromdomainport) ? p->fromdomainport : ast_sockaddr_port(&p->ourip);
- if (!sip_standard_port(p->socket.type, ourport)) {
+ /*if (!sip_standard_port(p->socket.type, ourport)) {
snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s:%d>;tag=%s", n, l, d, ourport, p->tag);
} else {
snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", n, l, d, p->tag);
+ }*/
+
+ if (p->portinuri!=5060 && p->portinuri!=0) {
+ //snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s:%d>;tag=%s", n, l, d, ourport, p->tag);
+ snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s:%d>;tag=%s", n, l, p->tohost,p->portinuri, p->tag);
+ } else {
+ //snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", n, l, d, p->tag);
+ snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", n, l, p->tohost, p->tag);
}
if (!ast_strlen_zero(explicit_uri)) {
@@ -12839,11 +12847,18 @@
ast_debug(1, "Scheduled a registration timeout for %s id #%d \n", r->hostname, r->timeout);
}
- snprintf(from, sizeof(from), "<sip:%s@%s>;tag=%s", r->username, S_OR(r->regdomain, sip_sanitized_host(p->tohost)), p->tag);
+ /*snprintf(from, sizeof(from), "<sip:%s@%s>;tag=%s", r->username, S_OR(r->regdomain, sip_sanitized_host(p->tohost)), p->tag);
if (!ast_strlen_zero(p->theirtag)) {
snprintf(to, sizeof(to), "<sip:%s@%s>;tag=%s", r->username, S_OR(r->regdomain, sip_sanitized_host(p->tohost)), p->theirtag);
} else {
snprintf(to, sizeof(to), "<sip:%s@%s>", r->username, S_OR(r->regdomain, sip_sanitized_host(p->tohost)));
+ }*/
+
+ snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", r->authuser , r->username, S_OR(r->regdomain,p->tohost), p->tag);
+ if (!ast_strlen_zero(p->theirtag)) {
+ snprintf(to, sizeof(to), "\"%s\" <sip:%s@%s>;tag=%s", r->authuser, r->username, S_OR(r->regdomain,p->tohost), p->theirtag);
+ } else {
+ snprintf(to, sizeof(to), "\"%s\" <sip:%s@%s>", r->authuser, r->username, S_OR(r->regdomain,p->tohost));
}
/* Fromdomain is what we are registering to, regardless of actual
Este parche fue hecho sobre Asterisk 1.8.6, por lo que para versiones posteriores es necesario realizar los ajustes manualmente.
Para concluir, la idea de este nuevo hilo es concentrar el trabajo para que no quede enterrado bajo los miles de posts que tiene el foro anterior: http://www.laneros.com/f50/libre-telefonia-tv-cable-69399/