ACK malformado

27 views
Skip to first unread message

Raúl Alexis Betancor Santana

unread,
Aug 19, 2011, 5:10:21 AM8/19/11
to sip...@googlegroups.com
Buenas a todos ...

Estoy peleandome con la versi�n 2.0.0 de T38Modem y tengo la liguera
impresi�n de que tiene un bug en la pila SIP bastante gordo.

El escenario de pruebas es:


Server A: 192.168.1.40
- T38modem 2.0.0
- Hylafax 6

Proxy 1: 192.168.1.100
- Kamailio 3.1.4
- Sems 1.4.1 (SBC profile con B2BUA)


Olvidemos el resto, que funciona ok ...

Para abreviar, vamos a saltarnos toda la parte del INVITE -> TRYING
... etc, y vamos al punto en que llega el 200 OK desde el GW a trav�s
del proxy 1:

SIP/2.0 200 OK
Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4;did=c5d.9b292da5;vsf=aHZkZh1/Ohp6Mz5MeU90B1h4ZVFja3hsdxdRaw-->
Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>
Record-Route: <sip:192.168.1.100;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>
CSeq: 2 INVITE
Via: SIP/2.0/UDP 192.168.1.40:5060;branch=z9hG4bKaae5f49d-aac8-e011-9ded-0030489455f4;rport=5060
From: "root" <sip:kra...@192.168.1.100>;tag=7668f19d-aac8-e011-9ded-0030489455f4
Call-ID: e670f19d-aac8-e011-9ded-0030489455f4@sipapp02
To: <sip:9283...@192.168.1.100>;tag=37DEA9D8-4E4E1E3A00020392-B42EA700
Supported: timer
Session-Expires: 300;refresher=uas
Content-Type: application/sdp
Content-Length: 180
Contact: <sip:ngc...@192.168.1.100:5060>

v=0
o=msc415 0 0 IN IP4 192.168.1.100
s=sip call
c=IN IP4 192.168.1.100
t=0 0
m=audio 10034 RTP/AVP 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=nortpproxy:yes


Y este es el ACK cachondo que devuelve T38Modem:

ACK sip:9283...@192.168.1.100 SIP/2.0
Route: <sip:192.168.1.100;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1:5062;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4;did=c5d.9b292da5;vsf=aHZkZh1/Ohp6Mz5MeU90B1h4ZVFja3hsdxdRaw-->
CSeq: 2 ACK
Via: SIP/2.0/UDP
192.168.1.40:5060;branch=z9hG4bK589985a1-aac8-e011-9ded-0030489455f4;rport
From: "root" <sip:kra...@192.168.1.100>;tag=7668f19d-aac8-e011-9ded-0030489455f4
Call-ID: e670f19d-aac8-e011-9ded-0030489455f4@sipapp02
To: <sip:9283...@192.168.1.100>;tag=37DEA9D8-4E4E1E3A00020392-B42EA700
Contact: <sip:kra...@192.168.1.40>
Proxy-Authorization: Digest username="krapula", realm="192.168.1.100", nonce="Tk4fZU5OHjlAm77GFgQr0gmNp7pm1N4R", uri="sip:9283...@192.168.1.100", algorithm=MD5, response="66987aa959e4f5b17b454e572fdd6d72"
Content-Length: 0
Max-Forwards: 70


Pregunta, �es correcta la forma de 'empaquetar' los Route en el ACK?
... lo pregunto, proque me parece rara de cojones, adem�s de que al
capturar la traza con sipspy y analizarla veo que al llegar el ACK
proxy, este hace un spiral y se lo env�a asimismo otra vez.

El problema gordo, viene en que seguido a este ACK, el T38modem env�a
un REINVITE para cambiar a modo t38 y desde el proxy, despu�s de hacer
otro spiral con el INVITE ... le termina contestando que 403 Domain
not served here.

�pistas?, �me fustigo con el RFC un rato?

Saúl Ibarra Corretgé

unread,
Aug 19, 2011, 7:09:44 AM8/19/11
to sip...@googlegroups.com
Aupa,

2011/8/19 Raúl Alexis Betancor Santana <ra...@dimension-virtual.com>:
> Buenas a todos ...
>
> Estoy peleandome con la versión 2.0.0 de T38Modem y tengo la liguera
> impresión de que tiene un bug en la pila SIP bastante gordo.


>
> El escenario de pruebas es:
>
>
> Server A: 192.168.1.40
> - T38modem 2.0.0
> - Hylafax 6
>
> Proxy 1: 192.168.1.100
> - Kamailio 3.1.4
> - Sems 1.4.1 (SBC profile con B2BUA)
>
>
> Olvidemos el resto, que funciona ok ...
>
> Para abreviar, vamos a saltarnos toda la parte del INVITE -> TRYING

> ... etc, y vamos al punto en que llega el 200 OK desde el GW a través

> Pregunta, żes correcta la forma de 'empaquetar' los Route en el ACK?
> ... lo pregunto, proque me parece rara de cojones, además de que al


> capturar la traza con sipspy y analizarla veo que al llegar el ACK

> proxy, este hace un spiral y se lo envía asimismo otra vez.
>
> El problema gordo, viene en que seguido a este ACK, el T38modem envía
> un REINVITE para cambiar a modo t38 y desde el proxy, después de hacer


> otro spiral con el INVITE ... le termina contestando que 403 Domain
> not served here.
>

> żpistas?, żme fustigo con el RFC un rato?
>

A primera vista lo que veo es que el ACK tiene el To del 200 OK como
RURI, no el Contact, por eso supongo que haga el loop.

Lo de los Route en una sola linea esta permitido, no recuerdo en que
parte del RFC lo dice...


Saludos,

--
/Saúl
http://saghul.net | http://sipdoc.net

Raúl Alexis Betancor Santana

unread,
Aug 19, 2011, 7:21:36 AM8/19/11
to sip...@googlegroups.com
On Fri, Aug 19, 2011 at 01:09:44PM +0200, Sa�l Ibarra Corretg� wrote:
> Aupa,

> A primera vista lo que veo es que el ACK tiene el To del 200 OK como
> RURI, no el Contact, por eso supongo que haga el loop.

Ergo se confirma mi sospecha de que est� malformado ... XDD , ahora
toca ver si es problema del c�digo de T38Modem o de la librer�a OPAL
que usa para la pila SIP y me temo que va a ser problema de OPAL ..
buff

> Lo de los Route en una sola linea esta permitido, no recuerdo en que
> parte del RFC lo dice...

Yep, me puse a repasar el RFC y lo encontr�, pero es que a veces
vienen bien un par de ojos m�s que te confirmen las sospechas ... que
uno acaba a veces de los call-flows hasta las narices .. XDD

Saludos

Iñaki Baz Castillo

unread,
Aug 19, 2011, 7:33:56 AM8/19/11
to sip...@googlegroups.com
El día 19 de agosto de 2011 13:21, Raúl Alexis Betancor Santana
<ra...@dimension-virtual.com> escribió:

>> A primera vista lo que veo es que el ACK tiene el To del 200 OK como
>> RURI, no el Contact, por eso supongo que haga el loop.
>
> Ergo se confirma mi sospecha de que está malformado ... XDD , ahora
> toca ver si es problema del código de T38Modem o de la librería OPAL

> que usa para la pila SIP y me temo que va a ser problema de OPAL ..
> buff


El ACK a un 200 OK debe tener el Totag del 200 OK, eso está bien.

Lo que efectivamente está mal es que el cacharro está poniendo el RURI
del INVITE en el ACK al 200. El ACK a un 200 es un request
independiente de la transacción INVITE (de hecho el Via branch es
distinto), y el RURI de dicho ACK debe ser el Contact del 200.

Aún así, por pura casualidad resulta que el RURI original es:

sip:9283...@192.168.1.100

y el URI del Contact del 200 es:

sip:ngc...@192.168.1.100:5060

Es decir, sólo cambia el username. La IP es la misma y el puerto
tambień (ausencia de puerto en una SIP URI con IP como hostname es
5060 si el schema es "sip" como es el caso). Por lo tanto no entiendo
qué loop se produce. Aunque viendo el route set:

Route: <sip:192.168.1.100;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1:5062;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4;did=c5d.9b292da5;vsf=aHZkZh1/Ohp6Mz5MeU90B1h4ZVFja3hsdxdRaw-->

- el request se entrega a 192.168.1.100 (proxy)
- proxy lo ruta a 127.0.0.1 (supongo que SEMS)
- SEMS lo ruta a 127.0.0.1:5062 (ya me pierdo...)


¿qué loop se produce exactamente?

>> Lo de los Route en una sola linea esta permitido, no recuerdo en que
>> parte del RFC lo dice...
>

> Yep, me puse a repasar el RFC y lo encontré, pero es que a veces
> vienen bien un par de ojos más que te confirmen las sospechas ... que


> uno acaba a veces de los call-flows hasta las narices .. XDD

--
Iñaki Baz Castillo
<i...@aliax.net>

Saúl Ibarra Corretgé

unread,
Aug 19, 2011, 7:41:37 AM8/19/11
to sip...@googlegroups.com
2011/8/19 Iñaki Baz Castillo <i...@aliax.net>:

> El día 19 de agosto de 2011 13:21, Raúl Alexis Betancor Santana
> <ra...@dimension-virtual.com> escribió:
>>> A primera vista lo que veo es que el ACK tiene el To del 200 OK como
>>> RURI, no el Contact, por eso supongo que haga el loop.
>>
>> Ergo se confirma mi sospecha de que está malformado ... XDD , ahora
>> toca ver si es problema del código de T38Modem o de la librería OPAL
>> que usa para la pila SIP y me temo que va a ser problema de OPAL ..
>> buff
>
>
> El ACK a un 200 OK debe tener el Totag del 200 OK, eso está bien.
>

Quién ha dicho algo de tags? :-)

Raúl Alexis Betancor Santana

unread,
Aug 19, 2011, 7:54:39 AM8/19/11
to sip...@googlegroups.com
On Fri, Aug 19, 2011 at 01:33:56PM +0200, I�aki Baz Castillo wrote:
> El ACK a un 200 OK debe tener el Totag del 200 OK, eso est� bien.
>
> Lo que efectivamente est� mal es que el cacharro est� poniendo el RURI

> del INVITE en el ACK al 200. El ACK a un 200 es un request
> independiente de la transacci�n INVITE (de hecho el Via branch es

> distinto), y el RURI de dicho ACK debe ser el Contact del 200.
>
> A�n as�, por pura casualidad resulta que el RURI original es:

>
> sip:9283...@192.168.1.100
>
> y el URI del Contact del 200 es:
>
> sip:ngc...@192.168.1.100:5060
>
> Es decir, s�lo cambia el username. La IP es la misma y el puerto
> tambie?? (ausencia de puerto en una SIP URI con IP como hostname es

> 5060 si el schema es "sip" como es el caso). Por lo tanto no entiendo
> qu� loop se produce. Aunque viendo el route set:

>
> Route: <sip:192.168.1.100;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1;r2=on;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4>,<sip:127.0.0.1:5062;lr=on;ftag=7668f19d-aac8-e011-9ded-0030489455f4;did=c5d.9b292da5;vsf=aHZkZh1/Ohp6Mz5MeU90B1h4ZVFja3hsdxdRaw-->
>
> - el request se entrega a 192.168.1.100 (proxy)
> - proxy lo ruta a 127.0.0.1 (supongo que SEMS)
> - SEMS lo ruta a 127.0.0.1:5062 (ya me pierdo...)
>
>
> �qu� loop se produce exactamente?

Es una prueba sobre un NGCP 2.2 de sipwise ... configuran un LB proxy
en la IP p�blica, y luego el SEMS y el proxy registrar en una ip
privada y puertos diferentes.

UAC -> Proxy LB -> Proxy registrar
-> SEMS

Proxy LB = IP p�blica: 5060
127.0.0.1: 5060

Proxy Registrar = 127.0.0.1:5062

SEMS = 127.0.0.1:5080

Cuando se origina un invite desde el UAC ... hacen una picha de lio
del carajo ... pero se supone que funciona.

UAC -> Proxy LB -> Proxy registrar -> Proxy LB -> SEMS (B2BUA) ->
Proxy LB -> PSTN_GW

El loop se monta al recibir el proxy LB el ACK del UAC (t38modem en
este caso) al 200 Ok que le llega cuando se estable la comunicaci�n.

El proxy LB recib por la IP p�blica el ACK con la forma que ya mand�
en el otro correo, y en SU interfaz privada (127.0.0.1:5060), loopea
el ACK hacia 127.0.0.1:5060 y luego lo env�a al proxy registrar en el
127.0.0.1:5062.

Te voy a mandar las trazas por privado, a ver si le puedes echar un
ojo, porque ya no s� si realmente lo est� mandando mal o soy yo que
llevo ya demasiadas horas con esto .. XDD

Saludos

Iñaki Baz Castillo

unread,
Aug 19, 2011, 8:47:55 AM8/19/11
to sip...@googlegroups.com
El día 19 de agosto de 2011 13:41, Saúl Ibarra Corretgé
<sag...@gmail.com> escribió:

>> El ACK a un 200 OK debe tener el Totag del 200 OK, eso está bien.
>>
>
> Quién ha dicho algo de tags? :-)

Mi otro yo, no me hagas ni caso, como si no he dicho nada.

Jon Bonilla

unread,
Aug 19, 2011, 10:16:31 AM8/19/11
to sip...@googlegroups.com
El Fri, 19 Aug 2011 12:54:39 +0100

Raúl Alexis Betancor Santana <ra...@dimension-virtual.com> escribió:

> Cuando se origina un invite desde el UAC ... hacen una picha de lio
> del carajo ... pero se supone que funciona.
>
> UAC -> Proxy LB -> Proxy registrar -> Proxy LB -> SEMS (B2BUA) ->
> Proxy LB -> PSTN_GW

En realidad es UAC --> LB --> Proxy --> Sems --> LB --> PSTN


Raúl Alexis Betancor Santana

unread,
Aug 19, 2011, 1:10:32 PM8/19/11
to sip...@googlegroups.com
On Fri, Aug 19, 2011 at 04:16:31PM +0200, Jon Bonilla wrote:
> El Fri, 19 Aug 2011 12:54:39 +0100
> Raúl Alexis Betancor Santana <ra...@dimension-virtual.com> escribi�:

>
>
> > Cuando se origina un invite desde el UAC ... hacen una picha de lio
> > del carajo ... pero se supone que funciona.
> >
> > UAC -> Proxy LB -> Proxy registrar -> Proxy LB -> SEMS (B2BUA) ->
> > Proxy LB -> PSTN_GW
>
> En realidad es UAC --> LB --> Proxy --> Sems --> LB --> PSTN

Xasto, trastoqu� la parte de sems.

Ahora me sigue faltando averiguar donde demonios est� el problema,
porque el reinvite de T38modem sigue sin llegar a donde debe, de hecho
el ACK sigue haciendo 'cosas raras'

Saludos

Jon Bonilla

unread,
Aug 19, 2011, 1:18:52 PM8/19/11
to sip...@googlegroups.com
El Fri, 19 Aug 2011 18:10:32 +0100

Raúl Alexis Betancor Santana <ra...@dimension-virtual.com> escribió:

> On Fri, Aug 19, 2011 at 04:16:31PM +0200, Jon Bonilla wrote:


> > El Fri, 19 Aug 2011 12:54:39 +0100

> > Raúl Alexis Betancor Santana <ra...@dimension-virtual.com> escribió:
> >
> >

> > > Cuando se origina un invite desde el UAC ... hacen una picha de lio
> > > del carajo ... pero se supone que funciona.
> > >
> > > UAC -> Proxy LB -> Proxy registrar -> Proxy LB -> SEMS (B2BUA) ->
> > > Proxy LB -> PSTN_GW
> >
> > En realidad es UAC --> LB --> Proxy --> Sems --> LB --> PSTN
>

> Xasto, trastoqué la parte de sems.
>
> Ahora me sigue faltando averiguar donde demonios está el problema,


> porque el reinvite de T38modem sigue sin llegar a donde debe, de hecho
> el ACK sigue haciendo 'cosas raras'
>
> Saludos
>


Qué dice el log del lb y de sems? Supongo que se quedará por ahí... Si no te
sale nada en el sems cámbiale el loglevel a 3

Aunque como te ha dicho Iñaki, ese ruri tiene mala pinta

Reply all
Reply to author
Forward
0 new messages