Subject: [Sip] Usage of flows in draft-ietf-sip-outbound-03

From: <[email-masked]>
Date: Wed, 31 May 2006 17:16:53 +0300

Hi,

While reading draft-ietf-sip-outbound earlier I got (a wrong)
idea that the UA would use those flows it has set up towards
the outbound-proxy-set during registration, for sending any
other requests thereafter. However this is not the case.
When thinking this a bit more I found two use cases and
different problem with each of them and I would like to get
some answers how the next version of the draft should deal
with those:

1. Sending request to first hop other than outbound proxy

Sections 4.3.1 and 4.3.2 tell that the "The UA performs normal 
DNS resolution on the next hop URI (as described in RFC 3263) 
to find a protocol, IP address, and port." and "If the UA
cannot use one of the existing flows, then it SHOULD form a new flow
by sending a datagram or opening a new connection to the next hop, as
appropriate for the transport protocol."
 
Is the UA expected to keep this new flow alive ? If yes, how long ?
I do not think it is a valid requirement for the UA to keep a flow
alive forever towards any proxy the UA has communicated with. But
the draft does not suggest any rules about when the flow should
be closed. For the flow related to registration I believe the flow
can be cleared after removing the registration binding, but what
about a flow the UA has opened when initiating a call through
some other proxy than the outbound proxy e.g. due to 305 response ?

2. Sending registration refreshes

I believe that draft-ietf-sip-outbound is written with the
assumption that when the UA refreshes a registration binding
the REGISTER message would be sent over the same flow over which
the binding was created, right ? Or at least that the refreshed
REGISTER would reach the same target host (outbound proxy) that
received the very first REGISTER request, now to be refreshed ?

However this is not guranteed. When sending the REGISTER refresh,
the UA is supposed to use DNS procedures of RFC 3263 for resolving
the URI of the outbound proxy. While doing that the UA may find a
number of SRV records for that URI, having equal priorities and
equal or different weights. Basically according to RFC 2782 the UA
would select the used SRV record by random, possibly a different
target host than the one used previously. Is this a problem for
SIP Outbound (while it is not a problem in RFC 3261 point of view)?

What happens in this case:

- Should the UA keep the flows now alive to those two proxies
  for the same refreshed registration or should it silently drop
  the first one ? I believe keeping all those flows open would
  be an unnecessary burden, especially for mobile devices with
  a battery.

- Is there any risk that a proxy or registrar would try to use 
  such a flow towards the UA that is no more existing ?

I would hope the next version of the draft would explicitely specify
either that the UA is supposed to use the existing flow instead of 
performing RFC 3263 processing for the refreshed REGISTER or that
the UA should drop the flow it had with the target host it used
earlier, when receiving the 200 OK for the REGISTER.

Feel free to tell me if I got it wrong at some point.

Regards,

Erkki Koivusalo

_______________________________________________
Sip mailing list  https://www1.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