[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openser-devel
Subject:    [Devel] [ openser-Patches-1647045 ] record-route uri parameter for
From:       "SourceForge.net" <noreply () sourceforge ! net>
Date:       2007-01-29 13:24:41
Message-ID: E1HBWUz-0003hu-Kq () sc8-sf-web9 ! sourceforge ! net
[Download RAW message or body]

Patches item #1647045, was opened at 2007-01-29 13:46
Message generated for change (Comment added) made by marcushunger
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=1647045&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Marcus Hunger (marcushunger)
Assigned to: Nobody/Anonymous (nobody)
Summary: record-route uri parameter for stateless sip loadbalancing

Initial Comment:
Following andreas granigs proposal  \
(http://www.openser.org/pipermail/users/2006-March/003289.html) for creating a \
loadbalanced/redundant sip-proxy-environment, it seems to me, that it is not possible \
to create a scenario with loadbalancers being stateless and clients being behind a \
nat. Establishing an INVITE-dialog went well until the callee's 200 OK had to be \
ACKed. At this point of the session, messages are not routed anymore using path's \
information but only relying on record-routing and record-routes lack information \
about natted clients. So the only out of the box solution I am aware of is keeping \
the loadbalancer stateful.

In order to circumvent this problem and enable the lb to be stateless, I introduced a \
record-route uri-parameter which stores the ip-address of the client's nat-gateway. \
These parameters are created by the outgoing lb, are kept when the loose-routing sets \
are created by the uac and the information there is then used to route the sip \
message to the client correctly by the lb.

I created a patch for openser 1.1.1 which implements the described functionality. It \
introduces a function for openser.cfg called add_rr_received_param, which adds \
";nat_recv=sip:[dst_ip:dst_port]" to current record-route header field. Also it \
includes a function which translates that nat_recv-parameter to "received", when it \
accures in a route header field so the packet can then be routed according to the \
included information. The function hooks via register_rrcb.

----------------------------------------------------------------------

> Comment By: Marcus Hunger (marcushunger)
Date: 2007-01-29 14:24

Message:
Logged In: YES 
user_id=1704473
Originator: YES

As far as I understand sip, ACKs for 200 OK are routed to the contact
header field of the 200 OK. Fixing this contact should have to be done in a
reply-route, which does not exists on a stateless router, does it? That's
why I differentiate between stateless and stateful. Anyway, I remember
problems changing contacts/uri with some UACs, so I'd like to keep these.

----------------------------------------------------------------------

Comment By: Klaus Darilion (klaus_darilion)
Date: 2007-01-29 14:03

Message:
Logged In: YES 
user_id=1318360
Originator: NO

Hi!

I do not understand correctly the problem. IMO it is unrelated if the
forwarding is stateless or statefull. What is the problem when the load
balancer does record_routing and fix_nated_contact? Or do you want to avoid
fix_nated_contact?

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=1647045&group_id=139143

_______________________________________________
Devel mailing list
Devel@openser.org
http://openser.org/cgi-bin/mailman/listinfo/devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic