Subject: RE: [Sip] mid-dialog failover: need URI parameter for reg-id to avoidtriangular routing

From: <[email-masked]>
Date: Wed, 1 Nov 2006 13:55:20 +0200

Hi,
 
Actually I did not understand why the reg-id should be encoded into this URI at all.
 
Could you please clarify the reason for its presence ? Or could the URI be constructed
without the reg-id included to any part of the URI ?
 
Regards,
 
Erkki

-----Original Message-----
From: ext Jeroen van Bemmel [mailto:[email-masked]]
Sent: 28 October, 2006 18:55
To: Jonathan Rosenberg
Cc: [email-masked]
Subject: [Sip] mid-dialog failover: need URI parameter for reg-id to avoidtriangular routing

Jonathan,
 
Regarding your outbound-discovery-mid-dialog draft: I believe it can work, but the example given in section 15 has some glitches and may result in sub-optimal routing.
 
The backup flow from the UA x should have a different reg-id, say reg-id=*2* (instead of 1 as per the example in the draft). Assume there is also a user y registered, via proxy 1 and proxy 3. Then the connection table at the home proxy would look like
 
TLS connection to 1:
    sip:outbound.example.com
    sip:[email-masked];keepalive=stun

TLS connection to 2:
    sip:outbound.example.com
    sip:[email-masked];keepalive=stun
 
TLS connection to 3:
    sip:outbound.example.com
    sip:[email-masked];keepalive=stun
    sip:[email-masked];keepalive=stun
 
Consequently, when proxy 2 fails, there will be no "most specific" match for message 35, only least specific ones. The request should go to proxy 3, but the home proxy could equally likely select proxy 1 (which would then perform triangular routing via proxy 2). 
 
To have the home proxy favor proxy 3 in this scenario, I believe we need a URI parameter to hold the reg-id, instead of putting it in the user part. If we would then define that flow selection should be performed based on the URI from which the reg-id parameter is stripped, there would be a partly specific match for proxy 3 and failover would work more smoothly
 
Regards,
Jeroen

_______________________________________________
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: "Jeroen van Bemmel" <[email-masked]>
Date: Wed, 1 Nov 2006 13:02:03 +0100

Erkii,

The idea is to create 'stickiness', to prefer using the same flow for all 
requests unless it fails. So in order of decreasing preference:
1. Flow with same reg-id
2. Flow with other reg-id
3. Flow towards same FQDN (proxy cluster)

Note that the matching algorithm I describe below is incomplete, what is 
needed is a set of rules that result in the above order of preference (in 
other words, binary equality is insufficient, we need multiple degrees of 
equality i.e. exact match, partly specific match, weak match (sam FQDN) and 
no match)

Regards,
Jeroen
  ----- Original Message ----- 
  From: [email-masked]
  To: [email-masked] ; [email-masked]
  Cc: [email-masked]
  Sent: Wednesday, November 01, 2006 12:55 PM
  Subject: RE: [Sip] mid-dialog failover: need URI parameter for reg-id to 
avoidtriangular routing

  Hi,

  Actually I did not understand why the reg-id should be encoded into this 
URI at all.

  Could you please clarify the reason for its presence ? Or could the URI be 
constructed
  without the reg-id included to any part of the URI ?

  Regards,

  Erkki
    -----Original Message-----
    From: ext Jeroen van Bemmel [mailto:[email-masked]]
    Sent: 28 October, 2006 18:55
    To: Jonathan Rosenberg
    Cc: [email-masked]
    Subject: [Sip] mid-dialog failover: need URI parameter for reg-id to 
avoidtriangular routing

    Jonathan,

    Regarding your outbound-discovery-mid-dialog draft: I believe it can 
work, but the example given in section 15 has some glitches and may result 
in sub-optimal routing.

    The backup flow from the UA x should have a different reg-id, say 
reg-id=*2* (instead of 1 as per the example in the draft). Assume there is 
also a user y registered, via proxy 1 and proxy 3. Then the connection table 
at the home proxy would look like

    TLS connection to 1:
        sip:outbound.example.com

    TLS connection to 2:
        sip:outbound.example.com

    TLS connection to 3:
        sip:outbound.example.com

    Consequently, when proxy 2 fails, there will be no "most specific" match 
for message 35, only least specific ones. The request should go to proxy 3, 
but the home proxy could equally likely select proxy 1 (which would then 
perform triangular routing via proxy 2).

    To have the home proxy favor proxy 3 in this scenario, I believe we need 
a URI parameter to hold the reg-id, instead of putting it in the user part. 
If we would then define that flow selection should be performed based on the 
URI from which the reg-id parameter is stripped, there would be a partly 
specific match for proxy 3 and failover would work more smoothly

    Regards,
    Jeroen

---

From: <[email-masked]>
Date: Wed, 1 Nov 2006 14:47:53 +0200

Hi Jeroen,
 
But when reading the overview of the draft I came to a different understanding about
the 'stickness' that this draft is trying to achieve. In order of decreasing preference:
 
1. The specific flow used for a dialog as indicated by the URI parameters added into Record-Route
2. Any flow registered by the UA as indicated by the user part of the URI as added to Path & S-R
3. Any proxy within the cluster as indicated by the host part of the URI as in initial REGISTER
 
I did not find reg-id to be significant in any of those three options. The instance-id (together
with username and the selected proxies for the outbound-proxy-set) is sufficient to identify
any existing flow (as for item 2).
 
In which use case a proxy should be able to prefer a specific flow with a specific reg-id ?
I did not find any such use case in the draft.
 
Regards,
 
Erkki

-----Original Message-----
From: ext Jeroen van Bemmel [mailto:[email-masked]]
Sent: 01 November, 2006 14:02
To: Koivusalo Erkki (Nokia-TP-MSW/Helsinki); [email-masked]
Cc: [email-masked]
Subject: Re: [Sip] mid-dialog failover: need URI parameter for reg-id to avoidtriangular routing

Erkii,
 
The idea is to create 'stickiness', to prefer using the same flow for all requests unless it fails. So in order of decreasing preference:
1. Flow with same reg-id
2. Flow with other reg-id
3. Flow towards same FQDN (proxy cluster)
 
Note that the matching algorithm I describe below is incomplete, what is needed is a set of rules that result in the above order of preference (in other words, binary equality is insufficient, we need multiple degrees of equality i.e. exact match, partly specific match, weak match (sam FQDN) and no match)
 
Regards,
Jeroen

----- Original Message ----- 
From: [email-masked] 
To: [email-masked] ; [email-masked] 
Cc: [email-masked] 
Sent: Wednesday, November 01, 2006 12:55 PM
Subject: RE: [Sip] mid-dialog failover: need URI parameter for reg-id to avoidtriangular routing

Hi,

 
Regards,
 
Erkki

-----Original Message-----
From: ext Jeroen van Bemmel [mailto:[email-masked]]
Sent: 28 October, 2006 18:55
To: Jonathan Rosenberg
Cc: [email-masked]
Subject: [Sip] mid-dialog failover: need URI parameter for reg-id to avoidtriangular routing

Jonathan,

 
TLS connection to 1:
    sip:outbound.example.com

TLS connection to 2:
    sip:outbound.example.com
 
TLS connection to 3:
    sip:outbound.example.com

 
Regards,
Jeroen

---

From: "Jeroen van Bemmel" <[email-masked]>
Date: Sun, 5 Nov 2006 14:22:29 +0100

Erkki,

You are right in the sense that *some* URI parameter is needed to 
distinguish between cases (1) and (2), but it needn't be the reg-id. In any 
case the specification in the current draft won't work, because the user 
part needs to be the same for cases (1) and (2).

If we consider it acceptable that high availability does not work across 
vendors, then there is no need to standardize on any particular URI 
parameter.

Regards,
Jeroen
  ----- Original Message ----- 
  From: [email-masked]
  To: [email-masked] ; [email-masked]
  Cc: [email-masked]
  Sent: Wednesday, November 01, 2006 1:47 PM
  Subject: RE: [Sip] mid-dialog failover: need URI parameter for reg-id to 
avoidtriangular routing

  Hi Jeroen,

  But when reading the overview of the draft I came to a different 
understanding about
  the 'stickness' that this draft is trying to achieve. In order of 
decreasing preference:

  1. The specific flow used for a dialog as indicated by the URI parameters 
added into Record-Route
  2. Any flow registered by the UA as indicated by the user part of the URI 
as added to Path & S-R
  3. Any proxy within the cluster as indicated by the host part of the URI 
as in initial REGISTER

  I did not find reg-id to be significant in any of those three options. The 
instance-id (together
  with username and the selected proxies for the outbound-proxy-set) is 
sufficient to identify
  any existing flow (as for item 2).

  In which use case a proxy should be able to prefer a specific flow with a 
specific reg-id ?
  I did not find any such use case in the draft.

  Regards,

  Erkki
    -----Original Message-----
    From: ext Jeroen van Bemmel [mailto:[email-masked]]
    Sent: 01 November, 2006 14:02
    To: Koivusalo Erkki (Nokia-TP-MSW/Helsinki); [email-masked]
    Cc: [email-masked]
    Subject: Re: [Sip] mid-dialog failover: need URI parameter for reg-id to 
avoidtriangular routing

    Erkii,

    The idea is to create 'stickiness', to prefer using the same flow for 
all requests unless it fails. So in order of decreasing preference:
    1. Flow with same reg-id
    2. Flow with other reg-id
    3. Flow towards same FQDN (proxy cluster)

    Regards,
    Jeroen
      ----- Original Message ----- 
      From: [email-masked]
      To: [email-masked] ; [email-masked]
      Cc: [email-masked]
      Sent: Wednesday, November 01, 2006 12:55 PM
      Subject: RE: [Sip] mid-dialog failover: need URI parameter for reg-id 
to avoidtriangular routing

      Hi,

      Actually I did not understand why the reg-id should be encoded into 
this URI at all.

      Could you please clarify the reason for its presence ? Or could the 
URI be constructed
      without the reg-id included to any part of the URI ?

      Regards,

      Erkki
        -----Original Message-----
        From: ext Jeroen van Bemmel [mailto:[email-masked]]
        Sent: 28 October, 2006 18:55
        To: Jonathan Rosenberg
        Cc: [email-masked]
        Subject: [Sip] mid-dialog failover: need URI parameter for reg-id to 
avoidtriangular routing

        Jonathan,

        TLS connection to 1:
            sip:outbound.example.com

        TLS connection to 2:
            sip:outbound.example.com

        TLS connection to 3:
            sip:outbound.example.com

        Consequently, when proxy 2 fails, there will be no "most specific" 
match for message 35, only least specific ones. The request should go to 
proxy 3, but the home proxy could equally likely select proxy 1 (which would 
then perform triangular routing via proxy 2).

        To have the home proxy favor proxy 3 in this scenario, I believe we 
need a URI parameter to hold the reg-id, instead of putting it in the user 
part. If we would then define that flow selection should be performed based 
on the URI from which the reg-id parameter is stripped, there would be a 
partly specific match for proxy 3 and failover would work more smoothly

        Regards,
        Jeroen