Subject: Re: [sipcore] Verify draft-ietf-sipcore-rfc4244bis-callflows-02.txt

From: [email-masked] (Dale R. Worley)
Date: Fri, 1 Mar 2013 16:19:00 -0500 (EST)

I've gone through draft-ietf-sipcore-rfc4244bis-callflows-02.  I
haven't examine everything in the SIP messages.  Instead, I've
concentrated on the History-Info headers in the "final" messages of
the sequences.  In each example, there is a final message that
contains all of the information in all of the History-Info headers.  I
believe that the following amendments should be made in examles 3.1,
3.6, and 3.7.

These amendments include a number of things that have been discussed
on the Sipcore mailing list.

3.1.  Sequentially Forking (History-Info in Response)

   Alice   example.com            Bob     Office    Home
   |            |                  |        |        |
   | INVITE F1  |                  |        |        |
   |----------->|    INVITE F2     |        |        |
   |            |----------------->|        |        |
   | 100 Trying F3                 |        |        |
   |<-----------|  302 Move Temporarily F4  |        |
   |            |<-----------------|        |        |
   |            |   ACK F5         |        |        |
   |            |----------------->|        |        |
   |            |       INVITE F6           |        |
   |            |-------------------------->|        |
   |            |      180 Ringing F7       |        |
   |            |<--------------------------|        |
   |  180 Ringing F8                        |        |
   |<-----------|   retransmit INVITE       |        |
   |            |-------------------------->|        |
   |            |      ( timeout )          |        |
   |            |             INVITE F9              |
   |            |----------------------------------->|
   |            |           100 Trying F10           |
   |            |<-----------------------------------|
   |            |           486 Busy Here F11        |
   |            |<-----------------------------------|
   |  486 Busy Here F12                              |
   |<-----------|             ACK F13                |
   |            |----------------------------------->|
   |  ACK F14   |                                    |
   |----------->|                                    |

In these examples, I have added Reason values to hi-entries that have
effectively received failure responses due to the failure of their
internally redirected targets.  Doing so is optional per draft-4244bis
but it seems to me to be the best practice.

That is, I believe that the results of internal retargeting should be
the same as if the second retargeting was done in a different proxy.

   F12 486 Busy Here example.com -> alice

   History-Info: <sip:[email-masked]>;index=1
   History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D302>;\
                 index=1.1;rc=1
-  History-Info: <sip:[email-masked]>;index=1.2;mp=1
+  History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D408>;\
+                index=1.2;mp=1
   History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D408>;\
-                index=1.2.1;index=1.2.1;rc=1.2
+                index=1.2.1;rc=1.2
   History-Info: <sip:[email-masked]>;index=1.3;mp=1
   History-Info: <sip:[email-masked]>;index=1.3.1;rc=1.3

3.6.  PBX Voicemail Example

  Alice      example.com       Bob          Carol        VM

  | INVITE F1    |              |             |          |
  |------------->|              |             |          |
  |              | INVITE  F2   |             |          |
  |              |------------->|             |          |
  |              |              |             |          |
  |  100 Trying  |              |             |          |
  |<-------------| 302 Moved Temporarily F3   |          |
  |              |<-------------|             |          |
  |              |              |             |          |
  |             ACK             |             |          |
  |---------------------------->|             |          |
  |              |              |             |          |
  |              | INVITE F4    |             |          |
  |              |--------------------------->|          |
  |              |              |             |          |
  |              |         180 Ringing  F5    |          |
  |              |<---------------------------|          |
  |              |              |             |          |
  | 180 Ringing  |              |             |          |
  |<-------------|              |             |          |
  |              |              |             |          |
  |              |       (timeout)            |          |
  |              |              |             |          |
  |              | INVITE  F6   |             |          |
  |              |-------------------------------------->|
  |              |              |             |          |
  |              |               200 OK  F7              |
  |              |<--------------------------------------|
  |   200 OK     |              |             |          |
  |<-------------|              |             |          |
  |              |              |             |          |
  |                         ACK                          |
  |----------------------------------------------------->|

Here, I assume we are using the "cause" URI parameter to indicate
redirection reasons per RFC 4458.  The redirection from Bob to Carol
is "Deflection immediate response", which is translated into the SIP
cause 480.  The redirection from Carol to VM is "No reply", which is
translated into SIP cause 408.  We assume the "cause" parameter is
preserved when AORs are mapped to their contacts.

Here, we choose the "cause" that is sent to VM to be 408, because the
immediately preceeding INVITE failed due to 408.  But the VM box is
Bob's, and the call to Bob failed due to cause=480.  The choice
probably depends on the application logic rather than standards.
(History-Info, however, captures the entire history of the call.)

The Reason value for index 1.2.1 has been corrected to 408.

  F7 200 OK VM -> Example.com

  History-Info: <sip:[email-masked]>;index=1
  History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D302>;\
                     index=1.1;rc=1
- History-Info: <sip:[email-masked]>;index=1.2;mp=1
- History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D480>;\
-                    index=1.2.1;rc=1.2
- History-Info: <sip:[email-masked];\
-                    target=sip:bob%40example.com>;\
-                    index=1.3;mp=1
- History-Info: <sip:[email-masked];\
-                    target=sip:bob%40example.com>;\
-                    index=1.3.1;rc=1.3
+ History-Info: <sip:[email-masked];cause=480?Reason=SIP%3Bcause%3D408>;\
+                    index=1.2;mp=1
+ History-Info: <sip:[email-masked];cause=480?Reason=SIP%3Bcause%3D408>;\
+                    index=1.2.1;rc=1.2
+ History-Info: <sip:[email-masked];\
+                    target=sip:bob%40example.com;cause=408>;\
+                    index=1.3;mp=1
+ History-Info: <sip:[email-masked];\
+                    target=sip:bob%40example.com;cause=408>;\
+                    index=1.3.1;rc=1.3

3.7.  Consumer Voicemail Example

   Alice      example.com       Bob          Carol        VM

   | INVITE F1    |              |             |          |
   |------------->|              |             |          |
   |              | INVITE  F2   |             |          |
   |              |------------->|             |          |
   |              |              |             |          |
   |  100 Trying  |              |             |          |
   |<-------------| 302 Moved Temporarily F3   |          |
   |              |<-------------|             |          |
   |              |              |             |          |
   |             ACK             |             |          |
   |---------------------------->|             |          |
   |              |              |             |          |
   |              | INVITE F4    |             |          |
   |              |--------------------------->|          |
   |              |              |             |          |
   |              |         180 Ringing  F5    |          |
   |              |<---------------------------|          |
   |              |              |             |          |
   | 180 Ringing  |              |             |          |
   |<-------------|              |             |          |
   |              |              |             |          |
   |              |       (timeout)            |          |
   |              |              |             |          |
   |              | INVITE  F6   |             |          |
   |              |-------------------------------------->|
   |              |              |             |          |
   |              |               200 OK  F7              |
   |              |<--------------------------------------|
   |   200 OK     |              |             |          |
   |<-------------|              |             |          |
   |              |              |             |          |
   |                         ACK                          |
   |----------------------------------------------------->|

Here, hi-entry 1.2.1 should have a Reason value, but the Reason value
on 1.2 is optional.

Since <sip:[email-masked];target=sip:carol...> is generated from
<sip:[email-masked]> (index 1.2), it should have index 1.2.2, not
1.3.

   F7 200 OK VM -> Example.com

   History-Info: <sip:[email-masked]>;index=1
   History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D302\
-                                                          ;text="Moved Temporarily">\
+                %3Btext%3D%22Moved%20Temporarily%22>\
                 ;index=1.1;rc=1
   History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D408>;\
                      index=1.2;mp=1
-  History-Info: <sip:[email-masked]>;index=1.2.1;rc=1.2
+  History-Info: <sip:[email-masked]?Reason=SIP%3Bcause%3D408>;\
+                index=1.2.1;rc=1.2
   History-Info: <sip:[email-masked];target=sip:carol%40example.com>;\
-                      index=1.3;mp=1.2
+                      index=1.2.2;mp=1.2
   History-Info: <sip:[email-masked];target=sip:carol%40example.com>;\
-                      index=1.3.1;rc=1.3
+                      index=1.2.2.1;rc=1.2.1

Dale

---

From: OKUMURA Shinji <[email-masked]>
Date: Thu, 07 Mar 2013 20:11:53 +0900

one point.

[email-masked] (Dale R. Worley)
Fri, 1 Mar 2013 16:19:00 -0500 (EST)
<snip/>
>3.7.  Consumer Voicemail Example
<snip/>
>   History-Info: <sip:[email-masked];target=sip:carol%40example.com>;\
                                         ^^^^^
                                         1.2.2
Shinji.

---

From: Shida Schubert <[email-masked]>
Date: Thu, 7 Mar 2013 17:02:38 -0800

Thanks Dale and Shinji;

 I will reflect these in the upcoming update. 

 Thanks
  Shida

On Mar 1, 2013, at 1:19 PM, Dale R. Worley wrote:

> _______________________________________________
> sipcore mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/sipcore

---

From: [email-masked] (Dale R. Worley)
Date: Thu, 21 Mar 2013 18:02:34 -0400 (EDT)

> From: OKUMURA Shinji <[email-masked]>
> Date: Thu, 07 Mar 2013 20:11:53 +0900
> 
> one point.
> 

Yes, you are right about that.

Dale