my proxy (master version) receives this kind of ack to invite:
ACK sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f SIP/2.0 Route: sip:Wvip1a55myyd/QXAYmYKJ2DAYmYK5U8=@192.98.102.10:10080;transport=ws;lr Via: SIP/2.0/WS gammj1mb37kg.invalid;branch=z9hG4bK6981394 Max-Forwards: 69 To: sip:jh@test.fi;tag=hosudd4jlh From: "Test" sip:test@test.fi;tag=k808o8t8np Call-ID: edbrqn9t6jbvf749ajil CSeq: 2850 ACK Supported: path, outbound, gruu User-Agent: JsSIP 0.3.0 Content-Length: 0
i call loose_route() on it, which returns 2 (route calculation based on flow-token has been successful) and after that $ru/$du are
Apr 18 17:56:44 siika /usr/sbin/sip-proxy[14517]: INFO: ru/du = sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f/sip:T4Ah7mN1nrM0HgXAYmYKJ2DAYmYK5bA=@192.98.102.10:10080;transport=ws;lr
why is $du set when there is only one route header denoting the proxy itself?
how can i now test that routing should be based on r-uri, when $du gets set for no reason?
-- juha
Hello,
is the proxy listening on 10080?
I haven't looked yet at the chance to return 2, but when I did the work for gruu, some changes were done to rr module not to detect as strict routing and everything seemed fine for this case.
Can you test with a version before the return 2 addition just to see if the $du is set?
Cheers, Daniel
On 4/18/13 5:15 PM, Juha Heinanen wrote:
my proxy (master version) receives this kind of ack to invite:
ACK sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f SIP/2.0 Route: sip:Wvip1a55myyd/QXAYmYKJ2DAYmYK5U8=@192.98.102.10:10080;transport=ws;lr Via: SIP/2.0/WS gammj1mb37kg.invalid;branch=z9hG4bK6981394 Max-Forwards: 69 To: sip:jh@test.fi;tag=hosudd4jlh From: "Test" sip:test@test.fi;tag=k808o8t8np Call-ID: edbrqn9t6jbvf749ajil CSeq: 2850 ACK Supported: path, outbound, gruu User-Agent: JsSIP 0.3.0 Content-Length: 0
i call loose_route() on it, which returns 2 (route calculation based on flow-token has been successful) and after that $ru/$du are
Apr 18 17:56:44 siika /usr/sbin/sip-proxy[14517]: INFO: ru/du = sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f/sip:T4Ah7mN1nrM0HgXAYmYKJ2DAYmYK5bA=@192.98.102.10:10080;transport=ws;lr
why is $du set when there is only one route header denoting the proxy itself?
how can i now test that routing should be based on r-uri, when $du gets set for no reason?
-- juha
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
Daniel-Constantin Mierla writes:
is the proxy listening on 10080?
yes, my proxy is listening on 10080 for websocket connections.
I haven't looked yet at the chance to return 2, but when I did the work for gruu, some changes were done to rr module not to detect as strict routing and everything seemed fine for this case.
i added return of 2 (instead of 1) when route calculation based on userpart of route succeeded.
Can you test with a version before the return 2 addition just to see if the $du is set?
i don't have such a source available anymore but the commit didn't do anything else but returned 2 instead of 1 in one particular case.
now that $du gets set, it gets set with wrong uri and my proxy cannot get the ack forwarded. it works ok if i just set $du="" immediately after loose_route() call.
-- juha
Hello,
On 4/18/13 5:30 PM, Juha Heinanen wrote:
Daniel-Constantin Mierla writes:
is the proxy listening on 10080?
yes, my proxy is listening on 10080 for websocket connections.
I haven't looked yet at the chance to return 2, but when I did the work for gruu, some changes were done to rr module not to detect as strict routing and everything seemed fine for this case.
i added return of 2 (instead of 1) when route calculation based on userpart of route succeeded.
Can you test with a version before the return 2 addition just to see if the $du is set?
i don't have such a source available anymore but the commit didn't do anything else but returned 2 instead of 1 in one particular case.
ok, so it is indeed not a change that could create such trouble.
Cheers, Daniel
now that $du gets set, it gets set with wrong uri and my proxy cannot get the ack forwarded. it works ok if i just set $du="" immediately after loose_route() call.
-- juha
Juha Heinanen writes:
Apr 18 17:56:44 siika /usr/sbin/sip-proxy[14517]: INFO: ru/du = sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f/sip:T4Ah7mN1nrM0HgXAYmYKJ2DAYmYK5bA=@192.98.102.10:10080;transport=ws;lr
why is $du set when there is only one route header denoting the proxy itself?
perhaps the problem is with ";transport=ws" param? my proxy is listening at that address on transport tcp instead:
Listening on ... tcp: 192.98.102.10 [192.98.102.10]:10080
-- juha
Hello,
On 4/18/13 5:37 PM, Juha Heinanen wrote:
Juha Heinanen writes:
Apr 18 17:56:44 siika /usr/sbin/sip-proxy[14517]: INFO: ru/du = sip:jh@test.fi;gr=urn:uuid:eea2f222-60b6-4ba1-a764-99cc0eb3ba9f/sip:T4Ah7mN1nrM0HgXAYmYKJ2DAYmYK5bA=@192.98.102.10:10080;transport=ws;lr
why is $du set when there is only one route header denoting the proxy itself?
perhaps the problem is with ";transport=ws" param? my proxy is listening at that address on transport tcp instead:
Listening on ... tcp: 192.98.102.10 [192.98.102.10]:10080
maybe Peter has more insights how the WS transport affected "myself" condition.
But a easy way to test is to use is_myself("$du") in the config and see what is the return code -- if it fails to match or not as local address.
Cheers, Daniel
Juha Heinanen writes:
perhaps the problem is with ";transport=ws" param? my proxy is listening at that address on transport tcp instead:
Listening on ... tcp: 192.98.102.10 [192.98.102.10]:10080
this is not the problem. i changed in loose.c one dbg to info and got:
Apr 18 18:42:07 siika /usr/sbin/sip-proxy[15216]: INFO: calling loose_route() on route <sip:KgdE77WjVHb5ggXAYmYKJ2DAYmYK5uI=@192.98.102.10:10080;transport=ws;lr> Apr 18 18:42:07 siika /usr/sbin/sip-proxy[15216]: INFO: rr [loose.c:794]: Topmost route URI: 'sip:KgdE77WjVHb5ggXAYmYKJ2DAYmYK5uI=@192.98.102.10:10080;transport=ws;lr' is me
the question still remains, why it is not simply removed instead of written to $du?
-- juha
loose_route() has this:
if (uri_is_myself>0) { LM_INFO("Topmost route URI: '%.*s' is me\n", uri.len, ZSW(uri.s)); /* set the hooks for the params */ routed_msg_id = _m->id;
if (!rt->next) { ... /* When using outbound skip past all this stuff and just set the destination */ if (use_ob) goto got_uri;
so, if ob is in use (= flow token was found in route uri), $du gets set to route uri.
why is it done also when $ru contains gruu that should instead be used to find out $du via lookup?
-- juha
This might have been added by the latest work on outbound by Peter or Hugh, I will look over it, hopefully will get time for it very soon.
Cheers, Daniel
On 4/18/13 5:50 PM, Juha Heinanen wrote:
loose_route() has this:
if (uri_is_myself>0) { LM_INFO("Topmost route URI: '%.*s' is me\n", uri.len, ZSW(uri.s)); /* set the hooks for the params */ routed_msg_id = _m->id;
if (!rt->next) { ... /* When using outbound skip past all this stuff and just set the destination */ if (use_ob) goto got_uri;
so, if ob is in use (= flow token was found in route uri), $du gets set to route uri.
why is it done also when $ru contains gruu that should instead be used to find out $du via lookup?
-- juha
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
Daniel-Constantin Mierla writes:
This might have been added by the latest work on outbound by Peter or Hugh, I will look over it, hopefully will get time for it very soon.
the relationship between outbound and gruu is not clear to me. if both are present in in-dialog request (gruu in $ru and outbound flow token in route uri) that hits the last proxy, it would make sense to me to use gruu (lookup) to find out where to send the request rather than the flow coded in route uri, which may not even exist anymore.
-- juha
i found this from peter's old message:
_*4) Broken in-dialog routing when using outbound *_*Detail:* In-dialog requests (including ACK and BYE) are incorrectly routed when outbound is used (issued identified by Olle during SIPit) *Status:* The bug is in the loose routing code in the rr module. I now have a test system for this here and will work on this issue once issues 1 and 2 are finished.
perhaps the issue that i noticed with loose_route() on in-dialog request has something to do with the above.
-- juha
here is another example. my proxy calls loose_route() on bye:
T 2013/04/19 11:04:20.231928 192.98.102.10:36459 -> 192.98.102.10:5060 [AP] BYE sip:0x255c610@192.98.102.10:5064;transport=tcp;alias=192.98.102.10~54499~2 SIP/2.0. Via: SIP/2.0/TCP 192.98.102.10:36459;rport;branch=z9hG4bKPj44285a49-f9ae-4f9f-b87e-f84f6154ebfb. Max-Forwards: 70. From: sip:jh@test.fi;tag=e62595db-b17a-4cb3-8626-89ab5e93adf6. To: sip:test@test.fi;tag=e89232ddda7a19a0. Call-ID: c16a05aa8288df34. CSeq: 20786 BYE. Route: sip:7Y11T82PtCrd8gLAYmYKE8TAYmYKjms=@192.98.102.10;transport=tcp;lr. Route: sip:192.98.102.20:5070;transport=tcp;lr;r2=on. Route: sip:192.98.102.20;transport=tcp;lr;r2=on. User-Agent: PJSUA v2.1 Linux-3.2.0.4/x86_64/glibc-2.13. Content-Length: 0.
as result du is set to topmost route uri which is wrong:
Apr 19 11:04:20 siika /usr/sbin/sip-proxy[22967]: INFO: calling loose_route() on route <sip:7Y11T82PtCrd8gLAYmYKE8TAYmYKjms=@192.98.102.10;transport=tcp;lr> Apr 19 11:04:20 siika /usr/sbin/sip-proxy[22967]: INFO: rr [loose.c:794]: Topmost route URI: 'sip:7Y11T82PtCrd8gLAYmYKE8TAYmYKjms=@192.98.102.10;transport=tcp;lr' is me Apr 19 11:04:20 siika /usr/sbin/sip-proxy[22967]: INFO: du is sip:7Y11T82PtCrd8gLAYmYKE8TAYmYKjms=@192.98.102.10;transport=tcp;lr
topmost route uri denoting the proxy itself should be removed and du set to next route uri in the list.
-- juha