Subject: Re: [dispatch] SPID Sequence and Loop Detection (Paul Kyzivat)

From: Sohel Khan <[email-masked]>
Date: Mon, 30 Jan 2012 13:47:07 -0800 (PST)

Thank you Paul for the good input.
Let us discuss the two scenarios in details.
The scenarios:
1) Loop due to call forwarding
2) Route analysis
 
Loop due to call forwarding:
My analysis of the empirical data shows that the majority of the loops due to call forwarding occur due in a Fixed-Mobile convergence scenario. A user Jon Doe has two phones: Wirelines and Wireless with two telephone numbers (TNine and TNess). Mr. Doe sets call forward of his Wirline phone to the Wireless phone prior to heading for the office.  All calls arriving at his home are forwarded by the Wireline phone to his Wireless phone. By 2:00 PM, Mr. Doe is tierd of receiving calls and sets call forward of his Wireless phone to the Wireline phone. Now the game  starts: Wireline phone forwards calls to the Wireless phone and the Wireless Phone forwards calls to the Wireline phone. It just takes one or two of this scenario to exhaust a significant amount of processors (e.g., SIP proxies)  in the network. Generally, it occurs between a Wireline provider and a Wireless provider peering with each other. We call solve this either by  the proposed "SPID
 Sequence" header or by diversion-counter of the Diversion Indication header (RFC 5806).
 
Loop due to least cost route analysis:
Let us assume that in a Utopian Internet, three SIP Multimeida networks exist: Alpha, Bravo, and Charlie.
All these three networks, no SBC or B2BUA exist !
 
Each network has only one SIP Proxy and one SIP Redirect Server. The SIP Redirect servers in these three networks are intelligent. Before a SIP Redirect Server decides a redirection, it performs a relational algebra to find the best redirection of a particular INVITE (not all invites). Alpha SIP Redirect Server  finds a redirection in Bravo's network; thus, Alpha's Proxy redirects.the INVITE Bravo's network. The Bravo's redirect server also determines a redirection based on a intelligent logic; thus. Bravo's proxy redirects the INVITE to Charlie Network. The Charlie's network redirects the INVITE to Alpha's Network. Note that while Alpha, Bravo, and Chairle network's redirection logic is either intelligent or consider it "intelligent", the aggregate effect in the three networks is infinite loop!
 
As  I wrote in the other post, providers may not use the legible SPID or a  legible know deterministic value; providers may use encrypted stochastic values so that no providers unders the identity of other providers in the path.

 Date: Wed, 25 Jan 2012 22:17:31 -0500
From: Paul Kyzivat <[email-masked]>
To: [email-masked]
Subject: Re: [dispatch] SPID Sequence and Loop Detection
Message-ID: <[email-masked]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 1/25/12 5:25 PM, Sohel Khan wrote:
> Thanks Paul and Dale.
> I think the provider interal rule may vary.
> Depending upon a provider internal rule, a provider may or may not take
> action based upon the information in the SPID sequence. Even inside a
> provider, there can be two different types of SIP agents. One may choose
> to take particular action based on the information on the SPID and the
> other session agent may not take any action based on the information on
> the SPID.

But in some cases it may decide there is an error based on the message 
revisiting a particular provider??? (After all, that is what your 
original message asserted.)

That policy could break some *valid* non-looping situations that revisit 
a provider based on call forwarding or other actions.

> Please let me know if I still missing something.
> For the call forwarding loops, the operatioonal engineers prefer to use
> Diversion counter to break loops.

Where do you get the diversion counter? From the Diversion header? Or 
from H-I?

This *might* work in a closed garden if all messages are policed to 
adhere to some proprietary constraints. But it won't work in general.

And I don't think you can fall back on SBCs to "make this right" for 
you. They can't necessarily identify and tunnel sufficient information.

    Thanks,
    Paul

---

From: Paul Kyzivat <[email-masked]>
Date: Mon, 30 Jan 2012 18:15:51 -0500

On 1/30/12 4:47 PM, Sohel Khan wrote:
> My analysis of the empirical data shows that the majority of the loops
> due to call forwarding occur due in a Fixed-Mobile convergence scenario.
> A user Jon Doe has two phones: Wirelines and Wireless with two telephone
> numbers (TNine and TNess). Mr. Doe sets call forward of his Wirline
> phone to the Wireless phone prior to heading for the office. All calls
> arriving at his home are forwarded by the Wireline phone to his Wireless
> phone. By 2:00 PM, Mr. Doe is tierd of receiving calls and sets call
> forward of his Wireless phone to the Wireline phone. Now the game
> starts: Wireline phone forwards calls to the Wireless phone and the
> Wireless Phone forwards calls to the Wireline phone. It just takes one
> or two of this scenario to exhaust a significant amount of processors
> (e.g., SIP proxies) in the network. Generally, it occurs between a
> Wireline provider and a Wireless provider peering with each other. We
> call solve this either by the proposed "SPID Sequence" header or by
> diversion-counter of the Diversion Indication header (RFC 5806).

You can solve this with max-forwards.
You can't count on Diversion being used.
And, as I noted in other reply, the spid sequence doesn't reliably work 
when you realize you can't count on Diversion.

> Each network has only one SIP Proxy and one SIP Redirect Server. The SIP
> Redirect servers in these three networks are intelligent. Before a SIP
> Redirect Server decides a redirection, it performs a relational algebra
> to find the best redirection of a particular INVITE (not all invites).
> Alpha SIP Redirect Server finds a redirection in Bravo's network; thus,
> Alpha's Proxy redirects.the INVITE Bravo's network. The Bravo's redirect
> server also determines a redirection based on a intelligent logic; thus.
> Bravo's proxy redirects the INVITE to Charlie Network. The Charlie's
> network redirects the INVITE to Alpha's Network. Note that while Alpha,
> Bravo, and Chairle network's redirection logic is either intelligent or
> consider it "intelligent", the aggregate effect in the three networks is
> infinite loop!
> As I wrote in the other post, providers may not use the legible SPID or
> a legible know deterministic value; providers may use encrypted
> stochastic values so that no providers unders the identity of other
> providers in the path.

Again, see my other reply.

	Thanks,
	Paul

> From: Paul Kyzivat <[email-masked] <mailto:[email-masked]>>
> To: [email-masked] <mailto:[email-masked]>
> Message-ID: <[email-masked]
> <mailto:[email-masked]>>