Subject: Re: [Sip] substantive changes to outbound - stateless TCP proxies

From: "Attila Sipos" <[email-masked]>
Date: Mon, 3 Mar 2008 10:51:10 -0000

>>it turns out, it is impossible to implement an RFC3261-compliant proxy
that always operates statelessly. Implementation
>>of TCP (and TLS over TCP) is required in RFC 3261 and when sending or
receiving over TCP a proxy MUST become stateful
 
I am surprised by this statement.
There have been many discussions on stateless TCP on "sip" and
"sip-implementors"
(including opinions from well-known contributors) and no-one has ever
said it can't be done.
 
For non-NAT cases, a stateless TCP proxy can work just as effectively as
a stateful one.
 
There might be some issues with outbound that make stateless operation
more awkward
but all that matters is that the TCP connection between proxy and UA is
maintained.
If the usage of TCP and SIP is loosely coupled then it is possible.
 
Regards,
 
Attila

________________________________

From: [email-masked] [mailto:[email-masked]] On Behalf Of
Rohan Mahy
Sent: 29 February 2008 22:39
To: SIP
Cc: Cullen Jennings; Francois Audet
Subject: [Sip] substantive changes to outbound

Hi Folks,

As many of you probably saw, I submitted a new version of the outbound
specification just before the draft deadline on Monday. There was a lot
of general rewording to try to improve clarity and readability, but we
received a number of contradictory suggestions, so hopefully it flow
well.  The major changes are:

- removed references to the 'keep' and 'timed-keepalives' parameters
- added the 'Flow-Timer' header
- changed the wording for the recommended timing over TCP. if battery
consumption is an issue, the recommended keepalives are approximately
every 14 minutes.  If battery consumption is not an issue, the
recommended keepalives are approximately every two minutes.
- added text explaining that an edge proxy which sees an 'ob' parameter
in its Route header (probably copied form the Path vector by the
authoritative proxy) in a dialog-forming request, the edge proxy needs
to insure that the route set will allow in-dialog requests to arrive
over some valid flow to the UA instance. In the simplest cae, the edge
proxy could just copy the URI (with flow token) from the Route header
into the Record-Route header and delete the 'ob' parameter. If the
Contact is a GRUU that should be sufficient too.  If the edge proxy
wants to do something fancy that even without GRUU allows mid-dialog
recovery of a specific flow, that's allowed as well.
- added the 439 (First Hop Lacks Outbound Support) response code
- wrote a very complete example (which is hopefully correct)

I hope this is satisfactory to the group. The way timers work is much
simpler and more powerful and will hopefully please both server and
client folks (wired and wireless alike).

In addition, there was a comment on the list about using outbound with
transaction stateless proxies.  As it turns out, it is impossible to
implement an RFC3261-compliant proxy that always operates statelessly.
Implementation of TCP (and TLS over TCP) is required in RFC 3261 and
when sending or receiving over TCP a proxy MUST become stateful. Based
on this, I do not feel badly stating that proxies which implement
outbound MUST be transaction stateful.

thanks,
-rohan

_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip