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

Jonathan Rosenberg <jdrosen@dynamicsoft.com> Tue, 08 July 2003 16:00 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 MAA28574 for <sipping-archive@odin.ietf.org>; Tue, 8 Jul 2003 12:00:33 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19Zusw-0002E6-GK for sipping-archive@odin.ietf.org; Tue, 08 Jul 2003 12:00:06 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h68G06LK008558 for sipping-archive@odin.ietf.org; Tue, 8 Jul 2003 12:00:06 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19Zusv-0002Dx-VV for sipping-web-archive@optimus.ietf.org; Tue, 08 Jul 2003 12:00:05 -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 MAA28535 for <sipping-web-archive@ietf.org>; Tue, 8 Jul 2003 12:00:02 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19Zusu-00035u-00 for sipping-web-archive@ietf.org; Tue, 08 Jul 2003 12:00:04 -0400
Received: from ietf.org ([132.151.1.19] helo=optimus.ietf.org) by ietf-mx with esmtp (Exim 4.12) id 19Zusu-00035r-00 for sipping-web-archive@ietf.org; Tue, 08 Jul 2003 12:00:04 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19Zusr-0002Cv-MW; Tue, 08 Jul 2003 12:00:01 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19ZusP-0002C3-Ql for sipping@optimus.ietf.org; Tue, 08 Jul 2003 11:59:33 -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 LAA28503 for <sipping@ietf.org>; Tue, 8 Jul 2003 11:59:30 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19ZusO-00035L-00 for sipping@ietf.org; Tue, 08 Jul 2003 11:59:32 -0400
Received: from [63.113.44.69] (helo=mail3.dynamicsoft.com) by ietf-mx with esmtp (Exim 4.12) id 19ZusN-00034y-00 for sipping@ietf.org; Tue, 08 Jul 2003 11:59:31 -0400
Received: from dynamicsoft.com ([63.113.47.242]) by mail3.dynamicsoft.com (8.12.8/8.12.1) with ESMTP id h68Fx0iB005698 for <sipping@ietf.org>; Tue, 8 Jul 2003 11:59:00 -0400 (EDT)
Message-ID: <3F0AEA40.4020208@dynamicsoft.com>
Date: Tue, 08 Jul 2003 11:58:56 -0400
From: Jonathan Rosenberg <jdrosen@dynamicsoft.com>
Organization: dynamicsoft
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: sipping <sipping@ietf.org>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Subject: [Sipping] How to report DTMF - conclusion of the app interaction design team: SIP MESSAGE
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

Folks,

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

http://www.ietf.org/internet-drafts/draft-rosenberg-sipping-app-interaction-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