[OpenSER-Users] recover from previous strict routing triggered incorrectly in ALG scenario

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu May 8 22:30:28 CEST 2008


Andrew,

logically speaking, your openser cannot be proxy (in Route hdr) and end 
point (in Contact) in the same time.

Regarding the Contact rewriting - I would say it is not necessary. 
According the RFC, the UAS (b2bua) will receive as route set the RR of 
openser and as remote target URI the private contact of the UAC. When 
building the BYE, it will put the UAC's contact (private) in RURI and 
all received RR in Route headers. The whole idea is that the Route hdrs 
will be used by b2bua to send out the request and not RURI - so this can 
be private as it will not be used for routing ;)...Only openser will 
start routing based on RURI as all the ROute headers will be consumed.

Regards,
Bogdan

Andrew Pogrebennyk wrote:
> Bogdan,
>
> Thanks for clarifying, that's good to know the root cause.
> But I rewrite the contact IP from INVITE for a reason. As stated 
> earlier, on the public internet side OpenSER talks to b2bua. So from 
> INVITE b2bua learns remote target URI of the client. And when it's 
> time to send BYE to the it, b2bua follows RFC 3261 rules regarding 
> Request-URI:
>
>    The UAC uses the remote target and route set to build the Request-URI
>    and Route header field of the request.
>
>    If the route set is empty, the UAC MUST place the remote target URI
>    into the Request-URI.  The UAC MUST NOT add a Route header field to
>    the request.
>
>    If the route set is not empty, and the first URI in the route set
>    contains the lr parameter (see Section 19.1.1), the UAC MUST place
>    the remote target URI into the Request-URI and MUST include a Route
>    header field containing the route set values in order, including all
>    parameters.
>
> Since all URIs in route set from OpenSER do contain lr parameter b2bua 
> behaves as described in the last paragraph of the extract above. 
> Therefore as long as b2bua can not reach the internal network (it is 
> many hops away) and uses the remote target URI to send request to and 
> client puts private IP into Contact header (which is the right thing 
> for him to do) I do have to rewrite Contact header - otherwise request 
> will never reach the destination. Any recommendations?
>
> Bogdan-Andrei Iancu wrote:
>> Hi Andrew,
>>
>> My question was about the BYE request - all the routing information 
>> (Route+RURI) are pointing to your server - I find this a bit strange 
>> as there is no information about the end device (where openser should 
>> send further the request).
>>
>> If I understand correctly your scenario, it seams you change the 
>> contact IP from INVITE into the openser IP - this is not good as it 
>> will make impossible to make difference between loose route and 
>> strict route.
>>
>> So your problem is that you put in INVITE's contact the server IP.
>>
>> Regards,
>> Bogdan
>





More information about the Users mailing list