Subject: [Sip] Outbound: Multiple flows and forking

From: "Christer Holmberg \(JO/LMF\)" <[email-masked]>
Date: Wed, 5 Apr 2006 10:26:16 +0200

Hi,

A couple of issues on chapter 4.2.

The text says:

"However, a UA MUST support sets with at least two outbound proxy URIs
(primary and backup) and SHOULD support sets with up to four URIs.  For
each
outbound proxy URI in the set, the UA MUST send a REGISTER in the normal
way using this URI as the default outbound proxy."

I don't think we should mandate this, because it is very much dependent
on the architecture, transport techniques etc. 

Also, if the UA has registered multiple flows, should the registrar fork
dialog initiation requests (addressed for the UA) on all of them? I
realize it is an implementation issue, but I think it would be good to
have some words about it in the draft, for example saying that a
registrar may choose not to fork if the same instance-id is used for
multiple bindings. Or something like that...

Regards,

Christer
_______________________________________________
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

---

From: Fredrik Thulin <[email-masked]>
Date: Wed, 5 Apr 2006 13:25:54 +0200

On Wednesday 05 April 2006 10:26, Christer Holmberg (JO/LMF) wrote:
...
> Also, if the UA has registered multiple flows, should the registrar
> fork dialog initiation requests (addressed for the UA) on all of
> them? I realize it is an implementation issue, but I think it would
> be good to have some words about it in the draft, for example saying
> that a registrar may choose not to fork if the same instance-id is
> used for multiple bindings. Or something like that...

It does say.

6.2  Forwarding Requests

   When a proxy uses the location service to look up a registration
   binding and then proxies a request to a particular contact, it
   selects a contact to use normally, with a few additional rules:

   o  The proxy MUST NOT populate the target set with more than one
      contact with the same AOR and instance-id at a time.  If a request
      for a particular AOR and instance-id fails with a 410 response,
      the proxy SHOULD replace the failed branch with another target (if
      one is available) with the same AOR and instance-id, but a
      different reg-id.
   o  If two bindings have the same instance-id and reg-id, the proxy
      SHOULD prefer the contact that was most recently updated.

The suitability of responding 410 here has already been questioned on 
the list (Adam Roach, 2006-03-18, subject "[Sip] Outbound and 410").

/Fredrik

---

From: Jonathan Rosenberg <[email-masked]>
Date: Wed, 05 Apr 2006 09:20:16 -0400

inline:

Christer Holmberg (JO/LMF) wrote:

> (primary and backup) and SHOULD support sets with up to four URIs.  For each
> 

Mandate what? The minimal number of outbound proxies that should be 
supported? Or the fact that you register on each? For the latter, its an 
essential part of the story so I don't see how you can make it optional. 
In the former case, if you don't specify a minimum that is supported, 
how do you have interop?

-Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                   600 Lanidex Plaza
Cisco Fellow                                   Parsippany, NJ 07054-2711
Cisco Systems
[email-masked]                              FAX:   (973) 952-5050
http://www.jdrosen.net                         PHONE: (973) 952-5000
http://www.cisco.com

---

From: <[email-masked]>
Date: Thu, 6 Apr 2006 11:45:04 +0300

Hi Jonathan, 

>> The text says:
>> 
>>"However, a UA MUST support sets with at least two outbound 
>> proxy URIs (primary and backup) and SHOULD support sets 
>> with up to four URIs.  For each outbound proxy URI in the 
>> set, the UA MUST send a REGISTER in the normal 
>> I don't think we should mandate this, because it is very 
>> much dependent on the architecture, transport techniques
>
>Mandate what? The minimal number of outbound proxies that 
>should be supported? Or the fact that you register on each? 
>For the latter, its an essential part of the story so I 
>don't see how you can make it optional. In the former case, 
>if you don't specify a minimum that is supported, 
>how do you have interop?

Please remember that section 3 Overview of the spec clearly
describes three different example configurations as follows:

3.2  Single Registrar and UA
3.3  Multiple Connections from a User Agent
3.4  Edge Proxies

There is clearly a possibility for the registrar/proxy and 
UA to use only one single flow between them:

3.2  Single Registrar and UA

   In this example, a single server is acting as both a registrar and
   proxy.

      +-----------+
      | Registrar |
      | Proxy     |
      +-----+-----+
            |
            |
       +----+--+
       | User  |
       | Agent |
       +-------+

   User Agents which form only a single flow continue to register
   normally but include the instance-id as described in Section 4.1.

Sections 3.3 and 3.4 discuss the ways of building extra reliability
by forming multiple flows towards multiple next hops. In my
understanding
section 4 allows the outbound-proxy-set to consist of a single proxy
or multiple ones (depending on what has been configured to the UA)
but currently mandate the UA to support configuring multiple proxies
(2 - 4) into the set. This would preclude implementations that would
only support configuring one single proxy to outbound-proxy-set, even
if this would work and be sufficient for certain types of deployment.

4.2  Initial Registrations

   UAs are configured with one or more SIP URIs representing the default
   outbound-proxy-set.  The specification assumes the set is determined
   via configuration but future specifications may define other
   mechanisms such as using DNS to discover this set.  How the UA is
   configured is outside the scope of this specification.  However, a UA
   MUST support sets with at least two outbound proxy URIs (primary and
   backup) and SHOULD support sets with up to four URIs.  For each
   outbound proxy URI in the set, the UA MUST send a REGISTER in the
   normal way using this URI as the default outbound proxy.

Further on it is mandated that each of the registrations shall
form a new flow, that the UA must keep alive and monitor:

   These ordinary registration requests MUST also add a distinct reg-id
   parameter to the Contact header field.  Each one of these
   registrations will form a new flow from the UA to the proxy.

I would be happy for changing the text as follows:

   However, a UA
   SHOULD support sets with at least two outbound proxy URIs (primary
and
   backup) and MAY support sets with up to four URIs.  For each
   outbound proxy URI configured or automatically discovered in 
   the set, the UA MUST send a REGISTER in the normal way using this 
   URI as the default outbound proxy.

This would mean the following:

1. An UA vendor would be allowed to implement an UA supporting 1 - 4
   URIs for the outbound-proxy-set.

2. The UA must a send a separate registration (and form a separate
   flow) to each of the proxy (configured or automatically discovered)
   within the outbound-proxy-set (up to the implementation specific
   maximum).

So this would mean that you could have e.g.

- An UA supporting and configured a single outbound proxy, sending
  REGISTER and forming a single flow towards it

- An UA supporting and configured three proxies, sending REGISTER 
  and forming a separate flow towards each of them

- An UA supporting four proxies but configured with only two proxies.
  In this case UA would send REGISTER and form separate flows towards
  those two proxies configured.

- An UA configured with a single outbound proxy URI and resolving it
  with DNS to a primary and backup proxy, towards which the REGISTER
  must be sent and the flows formed. (Note: I am working on the I-D
  to specify the related DNS mechanisms).

Regards,

Erkki

>-----Original Message-----
>From: ext Jonathan Rosenberg [mailto:[email-masked]] 
>Sent: 05.April.2006 16:20
>To: Christer Holmberg (JO/LMF)
>Cc: [email-masked]
>Subject: Re: [Sip] Outbound: Multiple flows and forking
>
>inline:
>