Hi Klaus,
Seems like I missed to mention the most important thing:
We do have the mechanisms to store and retrieve all routes
in place. What I am looking for is just the mechanism
(OpenSER calls, order of calls) where/how to add some route
headers within the registrar so that it can route the message
to the destination.
It's about plain SIP routing, nothing to do with path
(although it's a path implementation).
regards
--Joachim
-----Original Message-----
From: Klaus Darilion [mailto:klaus.mailinglists@pernau.at]
Sent: Donnerstag, 20. Oktober 2005 15:33
To: Joachim Fabini
Cc: users(a)openser.org; 'Joachim Fabini'
Subject: Re: [Users] Registrar-initiated Route changes on Invite?
I think the Path module from ser experimental tree, recently
updated by
Andreas Granig, could do that. Probably you would have to port it to
openser.
regards
klaus
Joachim Fabini wrote:
Hi,
We'd like to force the following SIP INVITE routing
scenario: UA1->P1->P2->R->P2->P1->UA2.
Unfortunately the Route is not known apriori and
must be built dynamically. P1 knows the Route from
P1 to R, R knows the Route from R to P1/UA2.
The INVITE sent by UA1 is loosely routed to R based
on the Route (Route: <sip:P2;lr>,<sip:R;lr>)
that is added by P1 to UA1's INVITE. This works.
The message arrives correctly to the registrar, Route
header contains Route: <sip:R;lr> as it should.
What we'd like to do:
1) Lookup the contact (lookup("location");)
2) Rewrite the Route field to the value
Route: <sip:P2;lr>,<sip:P1;lr> that is
stored by R in an AVP.
3) Forward the Invite on this route to UA2
Can someone please give some hints on how this
is typically done in OpenSER?
Although we rewrite the Invite's Route header field
(new value stored in an AVP) at the Registrar,
loose_route() does not work. We tried several
alternatives including re-writing the Route header,
pushing hard-coded strings into the Route, etc. but
none of these solutions does what we want.
What does work is if R self-forwards the Invite and
only then adds a new Route header. Apparently
loose_route() in R acts on the route header of the
incoming INVITE - if present - and ignores route header
changes done within the script.
Thanks in advance
--Joachim
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users