RE: [Sipping] How to report DTMF - conclusion of the app interaction design team: SIP MESSAGE

"Steve Fisher" <sfisher1@att.com> Thu, 17 July 2003 07:49 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id DAA21129 for <sipping-archive@odin.ietf.org>; Thu, 17 Jul 2003 03:49:42 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19d3Vr-0001OP-Fp for sipping-archive@odin.ietf.org; Thu, 17 Jul 2003 03:49:15 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h6H7nF4F005347 for sipping-archive@odin.ietf.org; Thu, 17 Jul 2003 03:49:15 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19d3Vr-0001OA-9w for sipping-web-archive@optimus.ietf.org; Thu, 17 Jul 2003 03:49:15 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id DAA21084 for <sipping-web-archive@ietf.org>; Thu, 17 Jul 2003 03:49:11 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19d3Vo-0002Wp-00 for sipping-web-archive@ietf.org; Thu, 17 Jul 2003 03:49:12 -0400
Received: from ietf.org ([132.151.1.19] helo=optimus.ietf.org) by ietf-mx with esmtp (Exim 4.12) id 19d3Vi-0002Wj-00 for sipping-web-archive@ietf.org; Thu, 17 Jul 2003 03:49:06 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19d3Ve-0001LV-OO; Thu, 17 Jul 2003 03:49:02 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19cwfq-0000RF-EH for sipping@optimus.ietf.org; Wed, 16 Jul 2003 20:31:06 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id UAA23752 for <sipping@ietf.org>; Wed, 16 Jul 2003 20:31:02 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19cwfo-00056w-00 for sipping@ietf.org; Wed, 16 Jul 2003 20:31:04 -0400
Received: from ckmso1.att.com ([12.20.58.69] helo=ckmso1.proxy.att.com) by ietf-mx with esmtp (Exim 4.12) id 19cwfd-00056T-00 for sipping@ietf.org; Wed, 16 Jul 2003 20:30:53 -0400
Received: from maillennium.att.com ([135.25.114.99]) by ckmso1.proxy.att.com (AT&T IPNS/MSO-5.0) with ESMTP id h6H0U38Z009103 for <sipping@ietf.org>; Wed, 16 Jul 2003 20:30:03 -0400
Received: from fisherlatitude (unknown[135.210.82.64](misconfigured sender)) by maillennium.att.com (mailgw1) with SMTP id <20030717002812gw100r9hi1e>; Thu, 17 Jul 2003 00:28:13 +0000
From: Steve Fisher <sfisher1@att.com>
To: 'sipping' <sipping@ietf.org>
Subject: RE: [Sipping] How to report DTMF - conclusion of the app interaction design team: SIP MESSAGE
Date: Wed, 16 Jul 2003 20:29:22 -0400
Message-ID: <001401c34bfa$78c41750$4052d287@fisherlatitude>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.4024
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Importance: Normal
In-reply-to: <3F0AEA40.4020208@dynamicsoft.com>
Content-Transfer-Encoding: 7bit
Sender: sipping-admin@ietf.org
Errors-To: sipping-admin@ietf.org
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Id: SIPPING Working Group (applications of SIP) <sipping.ietf.org>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

Great work on the app interaction drafts! I have a few
comments/questions:

1) The framework document refers to both "one shot" and "monitor"
models, and while KPML supports both, support for the "monitor" model is
somewhat awkward (requires having the device quarantine digits and then
issue a new KPML document via a re-INVITE). Is there a reason the
initial KPML document couldn't just specify which model was desired for
that particular interaction, and, if "monitor" was desired, simply keep
monitoring for the specified digits? If we've adandoned HTTP reporting,
I don't see what the downside to this would be.

2) I think that some example message flows would be helpful to tie all
these pieces together, and I would be happy to help draft some if you'd
like.

3) An Jonathan said in the note below, the KPML draft still describes
HTTP reporting, and also mentions NOTIFY. Just to clarify -- are these
mistakes, and the team is now only proposing to use MESSAGE?

4) I also would prefer a new SIP method, instead of overloading MESSAGE.

5) I'm confused how the device determines the Request-URI for the
MESSAGE. The KPML document says:

   When the
   user enters keypress(es) that match a <regex> tag, the user device
   will issue a SIP MESSAGE to the Request-URI specified by the href
   attribute. 
 
and

   The specification of any scheme-specific part, that is, anything
   following the colon in "sip:", is an error.  The interpreter MUST
   reject the request.

If the href attribute can't specify any scheme-specific part, how does
the device determine the Request-URI from the href attribute?

Thanks, and great work!
Steve
 
-----Original Message-----
From: sipping-admin@ietf.org [mailto:sipping-admin@ietf.org] On Behalf
Of Jonathan Rosenberg
Sent: Tuesday, July 08, 2003 11:59 AM
To: sipping
Subject: [Sipping] How to report DTMF - conclusion of the app
interaction design team: SIP MESSAGE


Folks,

The application interaction design team is near completion of our set 
of documents:

http://www.ietf.org/internet-drafts/draft-rosenberg-sipping-app-interact
ion-framework-01.txt
http://www.ietf.org/internet-drafts/draft-jennings-sip-app-info-01.txt
http://www.ietf.org/internet-drafts/draft-burger-sipping-kpml-02.txt
http://www.ietf.org/internet-drafts/draft-culpepper-sipping-app-interact
-reqs-03.txt

There are really few open issues that we are aware of. The main point 
of contention, and I think the issue most folks want to see a decision 
on, is how to actually convey the DTMF to the application when KPML is 
used. Even within the design team we never really had strong consensus 
here. However, in the interests of progress, we chose the path we felt 
was the one of "least evil". That path was to use a SIP MESSAGE 
request from the client to the application, with content that contains 
the digits. Not ideal, no doubt. I suspect its also not clear from the 
documents that this was our decision. The KPML draft has some artifact 
text that mentions NOTIFY, and it also still talks about HTTP. The 
team did decide not to go with those.

Here were the choices, and the reasoning we went through:

1. Use HTTP POST, as is done in VoiceXML, HTML, WML

This approach works well when the post returns another script to 
execute, as is the case for the above markups. However, because KPML 
has no presentation, only input, there is really little value in doing 
that. KPML is useful for two things. The first are "one shots", where 
the KPML waits for a single sequence, and when it finds it, reports it 
to the application. From there, the application interacts with the 
user using media, and the KPML script is done. Common case: long pound 
in pre-paid. Another modality is what I call "monitor", where the KPML 
stays resident for the ENTIRE call, and simply reports sequences as it 
gets them. Once it reports one, it continues waiting for more.

Neither of these modes quite fit the bill for HTTP. It could be done, 
by having the HTTP POST return the same script that is currently 
running. Not perfect, though. Furthermore, folks were concerned that 
HTTP was too much effort to put on a device just to report DTMF.

2. Use SIP INFO

No doubt this represents the bulk of the implementations today, all 
non-interoperable unfortunately. The problem with INFO is that the 
message from the client to the application needs to be OUTSIDE the 
dialog. Otherwise, every proxy on the path sees it. There are lots of 
other problems with sending INFO within the dialog of the call setup. 
So, once you decide that the messaging from the client to the app is 
outside the dialog, you can't use INFO. INFO is constrained to be 
within the scope of a dialog.

3. Use NOTIFY, have App-Info create an implicit subscription

The client would send a NOTIFY to the application when the digit 
sequence was matched. There would be no SUBSCRIBE. Rather, the 
App-Info header, which was used to pass the script to the client, 
would effectively create an implicit subscription.

Implicit subscriptions have all kinds of troubles, which have been 
discussed on the list. We then need to manage a dialog between the 
client and application just for reporting DTMF.

4. Use an explicit SUBSCRIBE from the application to the client

This has lots of problems. First, it needs to be done outside of the 
original call setup dialog. That means it needs GRUUs for the 
application to target the SUBSCRIBE to the specific UA instance that 
made the call. It also introduces a lot of extra overhead, and would 
repeat information in the App-Info header (i.e., an expression of 
interest)

5. New Method

We could invent a new method, like REPORT-EVENT or something, sent 
from the client to the application. However, that seemed too 
specialized. Also not clear what is really gained from a new method 
above MESSAGE, see below.

6. Messaging Sessions

Use an INVITE from the client to the application, for the purpose of 
setting up a messaging session, ala MSRP. Once the session is setup, 
convey the digits using content in MSRP messages.

This seemed like a lot of overhead and work for what is probably going 
to be one or two messages.

7. SIP MESSAGE

Send a SIP MESSAGE request from the client to the application, 
containing the digit sequence to report.

This was a bit of a bending of the semantic of MESSAGE, which is 
really meant for conveying information for display to a user. However, 
the issue is mostly philosophical in nature. We didnt see any 
particular technical issue that would prevent this from working, 
unlike all of the above ones which had technical issues.


So, as the path of least ugliness and minimal resistance, we went for 
MESSAGE. No doubt folks will have comments. The design team is at the 
point now where broader group input is needed to determine if there is 
consensus around this, or any other, direction. We felt it was 
important to capture our thinking on the options above, to give people 
a context for our decision and to serve as a grounding for further 
discussion.

So, please fire away.

Thanks,
Jonathan R.
-- 
Jonathan D. Rosenberg, Ph.D. 600 Lanidex Plaza
Chief Technology Officer Parsippany, NJ 07054-2711
dynamicsoft
jdrosen@dynamicsoft.com FAX: (973) 952-5050
http://www.jdrosen.net PHONE: (973) 952-5000
http://www.dynamicsoft.com



_______________________________________________
Sipping mailing list https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip Use
sip@ietf.org for new developments of core SIP


_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sip@ietf.org for new developments of core SIP