[sr-dev] double record-routing also at outbound edge

Juha Heinanen jh at tutpro.com
Thu Apr 25 08:01:13 CEST 2013


Peter Dunkley writes:

> I think this should be working now.  Please let me know if there are 
> problems.

peter,

i made some tests with client that supports both ob and gruu in this
kind of setup:

caller ua -- proxy/registrar 1 -- proxy/registrar 2 -- callee ua

when invite comes to proxy/registrar 1 it has "Supported: gruu,
outbound, path" and ;gr param in contact uri.  proxy/registrar 1 then
calls record_route() on the invite and forwards it to proxy/registrar 2.

ngrep shows that record_route() added these two r-r headers:

Record-Route: <sip:8ESgMbGAnoV8swXAYmYKJ2DAYmgC6dc=@192.98.102.10:5070;transport=tcp;r2=on;lr>.
Record-Route: <sip:8ESgMbGAnoV8swXAYmYKJ2DAYmgC6dc=@192.98.102.10:10080;transport=ws;r2=on;lr>.

because caller ua supports gruu, in-dialog requests to it should be
routed based on gruu lookup, not based on flow token in route header.
so i don't see the point in record_route() including the flow tokens to
r-r uris.

now when callee ua sends bye, it gets handled in proxy/registrar 1 like
this:

Apr 25 08:49:01 siika /usr/sbin/sip-proxy[12538]: INFO: calling loose_route() on route <<sip:8ESgMbGAnoV8swXAYmYKJ2DAYmgC6dc=@192.98.102.10:5070;transport=tcp;r2=on;lr>>
Apr 25 08:49:01 siika /usr/sbin/sip-proxy[12538]: INFO: ru/du = <sip:jh at test.fi;gr=urn:uuid:e88f32f1-b837-43be-8955-bc606d626252;ob>/<sip:192.98.104.2:59863;transport=ws>
Apr 25 08:49:01 siika /usr/sbin/sip-proxy[12538]: INFO: Routing in-dialog BYE <sip:jh at test.fi;gr=urn:uuid:e88f32f1-b837-43be-8955-bc606d626252;ob> from <sip:test at test.fi> to <sip:192.98.104.2:59863;transport=ws>

that is, loose_route() set $du and since $du is set, gruu lookup does not
take place.

i'm not sure what is the best way to fix this.  one way could be to add
some param in record_route() that tells it not to use flow tokens.

-- juha



More information about the sr-dev mailing list