AW: [Users] Registrar-initiated Route changes on Invite?

Johannes Lehninger Johannes at
Tue Nov 8 11:41:03 CET 2005

Hi Daniel,

another question concerning this set of proxies I want to travers.

I insert the first one with avp_pushto($duri...)
But how do I get openser to insert this new header without forwarding it to
itself (using forward).

It works with the following config


-----Ursprüngliche Nachricht-----
Von: users-bounces at [mailto:users-bounces at] Im Auftrag
von Daniel-Constantin Mierla
Gesendet: Freitag, 21. Oktober 2005 10:47
An: Joachim Fabini
Cc: 'Joachim Fabini'; users at
Betreff: Re: [Users] Registrar-initiated Route changes on Invite?

Hello Joachim,

the solution is rather simple. If you have a set of proxies where you 
want to send the message, you have to add the address of the first one 
in dst_uri (see avp_pushto() -> $duri: and the 
rest of them in Route headers.


On 10/20/05 18:12, Joachim Fabini wrote:
> 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 at] 
>> Sent: Donnerstag, 20. Oktober 2005 15:33
>> To: Joachim Fabini
>> Cc: users at; '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 at
> _______________________________________________
> Users mailing list
> Users at

Users mailing list
Users at

More information about the Users mailing list