Subject: [sipcore] Already published forking callflow that shows 100s and CANCELs

From: Robert Sparks <[email-masked]>
Date: Tue, 09 Jul 2013 17:13:41 -0500

SIPCORE -

On the INSIPID list, James asked me for a callflow showing 100s and 
CANCELs that he could mark up with Session-IDs.

I went looking for a callflow that had forking that showed 100s and 
CANCELs. I was hoping to find a simple one
(either one or two proxies and two UAs). One that showed 183s 
establishing dialogs would be even better.

I was really surprised to find very few examples of forking in ladder 
diagrams at _all_. There are none in 3665 or 3666.
Adam pointed to a diagram in the 199 RFC, but it doesn't show 100s or 
CANCELs.

Can anybody find something already published that does?

If not, I'll make one for INSIPIDs purposes. (But I boggle).

RjS

---

From: [email-masked] (Dale R. Worley)
Date: Wed, 10 Jul 2013 16:02:51 -0400 (EDT)

> From: Robert Sparks <[email-masked]>
> 

These look like plausible sources to me:

rfc 3087 section 4.2.2
rfc 3665 section 3.2, 3.8
rfc 5359 section 2.9

Dale

---

From: Robert Sparks <[email-masked]>
Date: Wed, 10 Jul 2013 15:37:19 -0500

> rfc 3665 section 3.2, 3.8
Thanks Dale. That last one is a good spot.
(I had looked already at the first two, but they either don't show the 
100s/CANCELS, or don't have forking)

RjS

---

From: [email-masked] (Dale R. Worley)
Date: Thu, 11 Jul 2013 12:59:51 -0400 (EDT)

> 100s/CANCELS, or don't have forking)

The technique I used this for query is to search all the RFCs for ones
that contain these regexps:

	|.*|.*|.*|	(to find railroad diagrams containing forking)
	100 trying	(case insensitive)
	CANCEL

There are only 13 RFCs that pass the test, and searching for the first
regexp with an editor find the railroad diagrams directly.

In *nix, this can be done with one command line:

grep --files-with-match -E '\<SIP\>' ~/RFCs/rfc[3-9]???.txt |
    xargs grep --files-with-match -- '|.*|.*|.*|' | 
    xargs grep --files-with-match -i -- '100 trying' | 
    xargs grep --files-with-match -- 'CANCEL'

Similar searches can answer a remarkable number of questions about the
corpus of RFCs, especially questions about "How is *** normally
formatted in RFCs?"

Dale