Configuración de troncal SIP de Telmex bajo Asterisk

Uthark

Lanero Reconocido
11 Sep 2004
2,822
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:

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/
 
Notas adicionales

En vista del interés de hacer funcionar en un servidor asterisk hay que hacer algunas aclaraciones:

1. Las llamadas solo conectan cuando el dispositivo que las intenta hacer las llamadas esta registrado.
2. El "From" header del invite debe ser identico al "From" header del registro, de lo contrario la llamana devuelve forbidden.
3. El host part del "To" header debe ser identico al host part del "To" header del registro.


Mas adelante detallaré las configuraciones necesarias en el asterisk para hacerlo funcionar. Saludos.
 
Muchachos, muchas gracias por sus aportes. Yo, mientras me adentro más en el mundo de Asterisk, les comento que he intentado utilizarla cuenta desde el Voipswitch y no he podido. Por el momento lo registré como GW Provider y no me funcionó. Si a alguien le sirve este aporte o si este hilo no va por aquí me comentan.
¡Querer es poder!
 
En el sip.conf, para configurar la troncal se crea una línea como esta:

register => 00045801234@190.144.159.138: (password) :45801234@190.144.159.138:5060/00045801234~3600

Recientemente, Telmex renovó las contraseñas de todos los equipos, por lo que la antigua clave numérica ya no es vigente, y ahora están usando una alfanumérica de 10 caracteres.

Si la contraseña es incorrecta, Asterisk arroja el siguiente error:

Got SIP response 400 "Bad Request" back from 190.144.159.138:5060

De lo contrario, al enviar el comando sip show registry a la consola de Asterisk, se debe ver:

Código:
Host                                    dnsmgr Username       Refresh State                Reg.Time
190.144.159.138:5060                    N      00045801234@        30 [B]Registered[/B]           Thu, 20 Oct 2011 10:15:42
 
Te ayudo?

En el sip.conf, para configurar la troncal se crea una línea como esta:



Recientemente, Telmex renovó las contraseñas de todos los equipos, por lo que la antigua clave numérica ya no es vigente, y ahora están usando una alfanumérica de 10 caracteres.

Si la contraseña es incorrecta, Asterisk arroja el siguiente error:



De lo contrario, al enviar el comando sip show registry a la consola de Asterisk, se debe ver:

Código:
Host                                    dnsmgr Username       Refresh State                Reg.Time
190.144.159.138:5060                    N      00045801234@        30 [B]Registered[/B]           Thu, 20 Oct 2011 10:15:42


Mandame una traza wireshark (o tcpdump) de una llamada (solo señalización) a ver si conecta o no, y te ayudo a arreglarlo.
 
error chan_sip.c

buenas tarde, mi pregunta es la siguiebnte:

1. ya obtube mis credenciales y esta funcionando perfecto en un zoiper/eyebeam
2. ya lo configure en un asterisk, junto con el registerstring que recomiendan me sale
que estoy registrado perfectamente como dice en el foro.
3. no em deja sacar llamadas, es decir intente hacer los cambios en el chan_sip.c pero no se realmente como hacerlo, podrias ser mas especifico y/o explicar a fondo como hacer esto; yo estoy usando asterisk 1.8.7 por si necesitas la version exacta del mismo, claro que el servidor que trabajo ahora mismo realmente tiene asterisk 1.6.2 si puedes darme el parche para este te lo agradeceria.

muchas gracias por la ayuda recibida de antemano
 
buenas tarde, mi pregunta es la siguiebnte:

1. ya obtube mis credenciales y esta funcionando perfecto en un zoiper/eyebeam
2. ya lo configure en un asterisk, junto con el registerstring que recomiendan me sale
que estoy registrado perfectamente como dice en el foro.
3. no em deja sacar llamadas, es decir intente hacer los cambios en el chan_sip.c pero no se realmente como hacerlo, podrias ser mas especifico y/o explicar a fondo como hacer esto; yo estoy usando asterisk 1.8.7 por si necesitas la version exacta del mismo, claro que el servidor que trabajo ahora mismo realmente tiene asterisk 1.6.2 si puedes darme el parche para este te lo agradeceria.

muchas gracias por la ayuda recibida de antemano
Como tal es cambiar las líneas en el chan_sip.c que construyen la string "From:" que hace parte del encabezado SIP.

A grandes rasgos, éste es el antes:
Código:
snprintf(from, sizeof(from),[B]"<sip:%s@%s>;tag=%s"[/B], r->username, S_OR(r->regdomain, sip_sanitized_host(p->tohost)), p->tag);

Y éste es el después:
Código:
snprintf(from, sizeof(from), [B]"\"%s\" <sip:%s@%s>;tag=%s"[/B], r->authuser , r->username, S_OR(r->regdomain,p->tohost), p->tag);

Como pueden notar, se agrega el campo "authuser" (con comillas y todo) justo antes de la cadena <sip:username@regdomain>. gecko777 nos indicó que ésta es la forma en la cual el servidor de Telmex acepta las llamadas, no como Asterisk normalmente lo hace que es <sip:username@regdomain>.

El parche (para Asterisk 1.8.6) es:

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

Para parchar versiones posteriores, toca a mano ya que el conteo de líneas en chan_sip.c ha aumentado, pero no es difícil: estas líneas siguen siendo las mismas.
 
Mmmm, hay que investigar más...

A ver!

Pensé que les había entregado todas las herramientas necesarias para lo del asterisk, y con la generosidad de UTShark revelando el método de fiddler la cosa estaría completa. Pero veo que NADIE ha podido entonces voy a hacerlo más simple (si con esto no se logra me rindo).

Para los que les gusta el CD asterisk now esto también aplica, solo es necesario hacer los siguientes pasos después de tener un Centos funcionando (acbe anotar que hay algunos paquetes necesarios para la instalación de asterisk, pero definitivamente no lo voy a colocar en esta guía).

Voy a asumir que todo lo siguiente se ejecuta desde el folder /root/ siendo usuario root.

ir a folder root:

Código:
cd /root
Descargar el source code del asterisk:

Código:
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.7.1.tar.gz
Descomprimir source code:

Código:
tar -xvf asterisk-1.8.7.1.tar.gz
descargar el archivo "telmexSipAsterisk1.8.7.1.patch.txt" al directorio "/root/asterisk-1.8.7.1/channels"

ejecutar:

Código:
cd /root/asterisk-1.8.7.1/channels
Código:
patch chan_sip.c < telmexSipAsterisk1.8.7.1.patch.txt
debe salir algo como

Código:
patching file chan_sip.c
luego darle:

Código:
cd /root/asterisk-1.8.7.1
Código:
./configure
sale algo como


Código:
config.status: creating Makefile
config.status: creating mxml.list
config.status: creating mxml.pc
config.status: creating config.h
configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..      
            .$7$7..          .7$$7:.    
          .$$:.                 ,$7.7   
        .$7.     7$$$$           .$$77  
     ..$$.       $$$$$            .$$$7 
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7 
$$$       .7$$$$$$$$$$$$$$$$      :$$$. 
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
$$$        $$$   7$$$7  .$$$    .$$$.   
$$$$             $$$$7         .$$$.    
7$$$7            7$$$$        7$$$      
 $$$$$                        $$$       
  $$$$7.                       $$  (TM)     
   $$$$$$$.           .7$$$$$$  $$      
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.
luego le dan:

Código:
make
Se demora un resto en la lata de servidor que tengo, y al final sale:

Building Documentation For: channels pbx apps codecs formats cdr cel bridges funcs tests main res addons
Código:
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +                make install               +
 +-------------------------------------------+
luego le damos:

Código:
make install
make config
Para los que usar hardware PCI (tarjetas digium) es necesario descargar el software dhadi también, esto nos garantiza que sirvan las conferencias (meet me conference):

Código:
cd /root
 wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.5.0.2+2.5.0.2.tar.gz
 tar -xvf dahdi-linux-complete-2.5.0.2+2.5.0.2.tar.gz
 cd /root/dahdi-linux-complete-2.5.0.2+2.5.0.2
 make
 make install
luego...

Código:
/etc/init.d/dahdi restart
 asterisk
 asterisk -r
con eso debe aparecer el cli del asterisk que es algo como:
Código:
Asterisk 1.8.7.1, Copyright (C) 1999 - 2011 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
  == Parsing '/etc/asterisk/extconfig.conf': Parsing /etc/asterisk/extconfig.conf
  == Found
Connected to Asterisk 1.8.7.1 currently running on pbx (pid = 24557)
Verbosity is at least 3
Core debug is at least 3
Bueno, con esto tenemos asterisk listo y parchado, ahora falta ingresar la información de telmex

Para el sip.conf:

Código:
[Telmex(out)]
 disallow=all
 host=190.144.159.138
 username=1814XXXX
 secret=[password fiddler]
 type=friend
 insecure=port,invite
 allow=alaw
 nat=yes
 callerid=0001814XXXX <1814xxxx>
 context=from-trunk-sip-Telmex(out)
para el register line:

Código:
register=0001814XXXX@190.144.159.138:[password fiddler]:1814xxxx@190.144.159.138:5060/0001814xxxx~3600
lo otro es configurar una terminal sip y hacer pruebas.

Preguntas frecuentes:

Gekko eres un duro... te debo algo?
R: Si sientes que me debes algo, has algo de caridad (ayudar a un tercero)!

Cuando le doy ./configure me salen errores que algo falta.
R: Busca en internet como instalar un asterisk en centos, hay paquetes que se deben instalar antes.

Estoy buscando un servidor para alojar código PHP para no tener que depender del fiddler, si alguien tiene que me deje saber, con eso es más fácil obtener las credenciales SIP.
Un lanero muy gentílmente ha ofrecido hosting. Las credenciales pueden ser obtenidas desde http://gekkosite.info

Happy calling!
 

Archivos adjuntos

  • telmexSipAsterisk1.8.7.1.patch.txt
    2 KB · Visitas: 848
  • Me gusta
Reacciones: 12 personas
Tengo un bonito forbidden

Aqui el resultado... compare la traza sip de asterisk con la de zoiper y no hay mucha diferencia
Por lo cual no me explico porque sigue sin funcionar.

Ya tengo los datos de cuenta correctamente y el asterisk me muestra como registrada la cuenta sip
Código:
    -- Executing [s@macro-dialout-trunk:19] Dial("SIP/2490-00000000", "SIP/telmexmarket/8069000,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
Audio is at 5060
Adding codec 0x8 (alaw) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 190.144.159.138:5060:
INVITE sip:8069000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK1614638a;rport
Max-Forwards: 70
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE
User-Agent: FPBX-2.8.1(1.8.7.1)
Date: Mon, 07 Nov 2011 13:17:41 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 260

v=0
o=root 1257082075 1257082075 IN IP4 192.168.1.10
s=Asterisk PBX 1.8.7.1
c=IN IP4 192.168.1.10
t=0 0
m=audio 12670 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

---
    -- Called SIP/telmexmarket/8069000

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK1614638a;rport=5060
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK1614638a;rport=5060
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>;tag=aprqngfrt-hiops220000c6
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---
Transmitting (NAT) to 190.144.159.138:5060:
ACK sip:8069000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK1614638a;rport
Max-Forwards: 70
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>;tag=aprqngfrt-hiops220000c6
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 ACK
User-Agent: FPBX-2.8.1(1.8.7.1)
Content-Length: 0


---
    -- SIP/telmexmarket-00000001 is circuit-busy
ya me esta sacando canas este asunto y adicionalmente al parchear asterisk se rompio la conectividad con el softphone jitsi por lo que toco volver a zoiper
 
Caliente Caliente...

Aqui el resultado... compare la traza sip de asterisk con la de zoiper y no hay mucha diferencia
Por lo cual no me explico porque sigue sin funcionar.

Ya tengo los datos de cuenta correctamente y el asterisk me muestra como registrada la cuenta sip
Código:
    -- Executing [s@macro-dialout-trunk:19] Dial("SIP/2490-00000000", "SIP/telmexmarket/8069000,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
Audio is at 5060
Adding codec 0x8 (alaw) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 190.144.159.138:5060:
INVITE sip:8069000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK1614638a;rport
Max-Forwards: 70
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE
User-Agent: FPBX-2.8.1(1.8.7.1)
Date: Mon, 07 Nov 2011 13:17:41 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 260

v=0
o=root 1257082075 1257082075 IN IP4 192.168.1.10
s=Asterisk PBX 1.8.7.1
c=IN IP4 192.168.1.10
t=0 0
m=audio 12670 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

---
    -- Called SIP/telmexmarket/8069000

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK1614638a;rport=5060
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK1614638a;rport=5060
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>;tag=aprqngfrt-hiops220000c6
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---
Transmitting (NAT) to 190.144.159.138:5060:
ACK sip:8069000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK1614638a;rport
Max-Forwards: 70
From: "00018069000" <sip:00018069000@190.144.159.138>;tag=as1372ffeb
To: <sip:8069000@190.144.159.138>;tag=aprqngfrt-hiops220000c6
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 02e5c6d712c35e6801cd6927789e96f3@192.168.1.10:5060
CSeq: 102 ACK
User-Agent: FPBX-2.8.1(1.8.7.1)
Content-Length: 0


---
    -- SIP/telmexmarket-00000001 is circuit-busy
ya me esta sacando canas este asunto y adicionalmente al parchear asterisk se rompio la conectividad con el softphone jitsi por lo que toco volver a zoiper

Estás muy cerca, veo que usas freepbx, en la troncal colócale al campo Outbound CallerID: "18069000" <00018069000>

Confirma por favor si te sirvió.
 
Sigue el problema

Este me muestra asterisk
Código:
- Executing [s@macro-dialout-trunk:19] Dial("SIP/2490-00000012", "SIP/siptelmexluci/5940000,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
Audio is at 5060
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 190.144.159.138:5060:
INVITE sip:5940000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK725abf8e;rport
Max-Forwards: 70
From: "18069000" <sip:00018069000@190.144.159.138>;tag=as5e5c7418
To: <sip:5940000@190.144.159.138>
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 46d0d68615725942269bc2a9564f5820@192.168.1.10:5060
CSeq: 102 INVITE
User-Agent: FPBX-2.8.1(1.8.7.1)
Date: Mon, 07 Nov 2011 16:06:09 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 232

v=0
o=root 48284110 48284110 IN IP4 192.168.1.10
s=Asterisk PBX 1.8.7.1
c=IN IP4 192.168.1.10
t=0 0
m=audio 17190 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

---
    -- Called SIP/siptelmexluci/5940000

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK725abf8e;rport=61679
From: "18069000" <sip:00018069000@190.144.159.138>;tag=as5e5c7418
To: <sip:5940000@190.144.159.138>
Call-ID: 46d0d68615725942269bc2a9564f5820@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---

<--- SIP read from UDP:190.144.159.138:5060 --->
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 192.168.1.10:5060;received=190.157.137.198;branch=z9hG4bK725abf8e;rport=61679
From: "18069000" <sip:00018069000@190.144.159.138>;tag=as5e5c7418
To: <sip:5940000@190.144.159.138>;tag=aprqngfrt-644r3010000c6
Call-ID: 46d0d68615725942269bc2a9564f5820@192.168.1.10:5060
CSeq: 102 INVITE

<------------->
--- (6 headers 0 lines) ---
Transmitting (NAT) to 190.144.159.138:5060:
ACK sip:5940000@190.144.159.138 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK725abf8e;rport
Max-Forwards: 70
From: "18069000" <sip:00018069000@190.144.159.138>;tag=as5e5c7418
To: <sip:5940000@190.144.159.138>;tag=aprqngfrt-644r3010000c6
Contact: <sip:00018069000@192.168.1.10:5060>
Call-ID: 46d0d68615725942269bc2a9564f5820@192.168.1.10:5060
CSeq: 102 ACK
User-Agent: FPBX-2.8.1(1.8.7.1)
Content-Length: 0


---
   -- SIP/siptelmexluci-00000013 is circuit-busy

ahora
esta es la config

Código:
disallow=all
host=190.144.159.138
username=18069000
secret="telmex pass"
type=friend
insecure=port,invite
allow=alaw
nat=yes

register string es:
00018069000@190.144.159.138:"pass telmex":18069000@190.144.159.138:5060/00018069000~3600
Pero sigue sin funcionar :/
 
Esta es la info que me muestra zoiper y funciona

Código:
ACK sip:5940000@190.144.159.138:5060;user=phone;transport=udp SIP/2.0

Via: SIP/2.0/ ;branch=z9hG4bK-d8754z-ef8a40da57ffb6e8-1---d8754z-

Max-Forwards: 70

Contact: <sip:00018069000;transport=UDP>

To: <sip:5940000@190.144.159.138;transport=UDP>;tag=Safari+1+59f6001c+cbd2e08c

From: "00018069000"<sip:00018069000@190.144.159.138;transport=UDP>;tag=044efd3c

Call-ID: NDRmYzU0YjU3NjQ0MDU4MWY4NzU1MDdhOWE4ZjU5NTE.

CSeq: 2 ACK

User-Agent: Zoiper rev.11137

Authorization: Digest username="18069000",realm="172.31.11.6",nonce="9accf29e38ea34d29d0d5a8850d62611",uri="sip:5940000@190.144.159.138;transport=UDP",response="3077b1b40f6ba7ee62de453827c9ef10",algorithm=MD5,opaque="DEADBEEF"

Content-Length: 0
gekko777 como ves en el from me manda con 000 mientras el codigo que me pasaste lo mando sin 000
 
Solucionado

Despues de mucho trabajo incluida la trasnochada
y con la ayuda de gekko777 con el tema del calle ID
Pues se soluciono en el asterisk seteando

transport=udp

Segun vi las trazas asterisk intentaba todo el tiempo conectarse por tcp y por eso aparecia el forbidden

Saludos!
 
Despues de mucho trabajo incluida la trasnochada
y con la ayuda de gekko777 con el tema del calle ID
Pues se soluciono en el asterisk seteando

transport=udp

Segun vi las trazas asterisk intentaba todo el tiempo conectarse por tcp y por eso aparecia el forbidden

Saludos!
Excelente noticia, lo lograste con Asterisk vanilla ó con el parche?
 
Felicitaciones!

Despues de mucho trabajo incluida la trasnochada
y con la ayuda de gekko777 con el tema del calle ID
Pues se soluciono en el asterisk seteando

transport=udp

Segun vi las trazas asterisk intentaba todo el tiempo conectarse por tcp y por eso aparecia el forbidden

Saludos!

Por eso no me gustan las trazas del asterisk, prefiero el tcpdump.
 
Se logro con el parche

Ahora estoy metiendome en ver si puedo hacer funcionar 2 lineas o mas en simultanea
y aveces funciona aveces no :/
 

Los últimos temas