Subject: [sipcore] Comments on draft-barnes-sipcore-rfc4244bis-callflows-00

From: Hadriel Kaplan <[email-masked]>
Date: Mon, 30 Aug 2010 14:07:00 -0400

Howdy,
While reviewing 4424bis-01, I also reviewed the call-flows I-D.  I found the examples in the call-flows generally more relevant and useful than the example call flows in Appendix B of the 4424bis, btw.  Especially for figuring out why an "rc" param is useful to anyone.

Comments:

1) Section 3.1 on ACD says:
  Upon receipt of the call at the agent assigned to handle the
  incoming call, based upon the History-Info header in the message, the
  application at the agent can provide an indication that this is a
  Gold call by extracting the hi-entry associated with the incoming
  request which is determined by locating the hi-entry whose index is
  reflected in the first hi-entry with an hi-target of "mp".

And yet the example shows that is not in fact the case.  The first hi-entry with "mp" is for Silver, not Gold.  Furthermore, the call could have been diverted multiple times before reaching the ACD system, which means the _first_ called identity may not matter at all.  What it should probably look for is the identity before the _last_ "mp", since the last "mp" (if there are any) is itself, so the identity before that is what it wants (Gold).  

2) Section 3.2 in Alias determination says:
  The alias for the call is determined by the UAS extracting the hi-entry
  prior to the last hi-entry with the "rc" tag.

That's true only because the example shows it to be the case.  If John was one of multiple registered contacts for the Alias, and was tried later in forking, there would be multiple "rc" entries prior to the last one which are not the Alias.  

Furthermore, it is not at all clear that a Proxy, which resolves an Alias to a registered contact for a real AoR, shouldn't in fact add the "real" AoR as another entry.  In other words, it may add a <sip:[email-masked]> H-I entry right after <sip:[email-masked]>, before the registered contact for john.  This won't be "rc" or "mp" tagged (right?).  

3) Section 3.4 on Call Center Voicemail.  I think this section is mislabeled, or the wrong case - a call to a call center voicemail may or may not use Carol for the voicemail; a clearer case to show the point, which I believe is to show the inverse case of example section 3.1, is to just have the call diverted in a service provider and call it "POTS voicemail" or "consumer voicemail" or some such.

Editorial comments (I think):
1) Section 3.1's ACD example has an error, I believe.  When the INVITE is redirected to Silver, the index is incremented from the base number, even though it's the Proxy recursing the redirect, not the UAC.  Instead of setting it to index=2, it should be index=1.2 (and the next entry be 1.2.1 not 2.1).  Also, the example incorrectly shows the redirect server adding the embedded Reason header in the H-I, vs. the proxy.

2) Section 3.2's example message F4 says INVITE -> Bob, but really it's to John.