Network Working Group F.Robinson
Internet-Draft B.Marquette
Expires: July 3, 2002 R.Hernandez
SandCherry Networks, Inc.
January 2, 2002
Using Media Resource Control Protocol over SIP
draft-robinson-mrcp-sip-00
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 3, 2002.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
This Draft presents a method for using Media Resource Control
Protocol (MRCP) in the body of SIP messages for the purpose of
controlling Prompt Players, Text to Speech, and Speech Recognition
Engines. Here we present MRCP->SIP as a function of the "Service
Controller," identified in the decomposition of Application Server
Compenent Architecutures for SIP (draft-rosenberg-sip-app-components-
01). The aurthor's believe that MRCP->SIP brings some powerful
synergies to bare; rapid development of reliable media resource
control, and the highly available, redundant, SIP infrastructure,
capable of intelligent resource location.
F.Robinson, et al. Expires July 3, 2002 [Page 1]
Internet-Draft MRCP over SIP January 2002
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . 3
2. Call Flow . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 INVITE FROM USER AGENT . . . . . . . . . . . . . . . . . 5
2.2 VXML BROWSER INVITES SPEECH RECOGNITION ENGINE . . . . . 6
2.3 200 OK PROXIED TO USER AGENT . . . . . . . . . . . . . . 8
2.4 MRCP: RECOGNIZE PROXIED TO SPEECH RECO, PROMPT PLAYER
INVITED . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 200 OK'S FROM SPEECH RECO AND PROMPT PLAYER . . . . . . 12
2.6 MRCP: SPEAK 1 PROXIED TO PROMPT PLAYER, MRCP:
IN-PROGRESS RETURNED . . . . . . . . . . . . . . . . . . 14
2.7 MRCP: START-OF-SPEECH AND MRCP: BARGE-IN-OCCURED . . . . 16
2.8 200 OK FROM SPEECH RECO, PROMPT PLAYER RETURNS MRCP:
COMPLETE . . . . . . . . . . . . . . . . . . . . . . . . 18
2.9 MRCP: RECOGNITION-COMPLETE . . . . . . . . . . . . . . . 20
2.10 MRCP: SPEAK 5 PROXIED TO PROMPT PLAYER, MRCP:
IN-PROGRESS RETURNED . . . . . . . . . . . . . . . . . . 22
2.11 MRCP: SPEAK-COMPLETE RETURNED FROM PROMPT PLAYER . . . . 24
3. Summary . . . . . . . . . . . . . . . . . . . . . . . . 26
References . . . . . . . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . 27
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . 28
Full Copyright Statement . . . . . . . . . . . . . . . . 29
F.Robinson, et al. Expires July 3, 2002 [Page 2]
Internet-Draft MRCP over SIP January 2002
1. Introduction
Session Initiation Protocol (SIP) continues to be instrumental in
moving the voice network from a monolithic, closed system,
architecture to a distributed, open system, component architecture.
SIP provides the versatility to allow distributed application server
components to provide advanced intelligent services to remote
clients. The benefits to the component server architecture include
increased scalability, fault tolerance, and load balancing
capabilities. However, control of distributed Media Resources
remains an open issue. Oftentimes Media Resource control is
determined by the composition of a particular network deployment or
the specific media needs of an application. Here we present an open,
network and application agnostic, standard, Media Resource Control
Protocol (MRCP), for controlling distributed Media Resources.
The following example illustrates a distributed server architecture
for delivering voice-enabled applications. The components will
include the following: VoiceXML browser, Prompt Server and Automatic
Speech Recognition (ASR) Server. The VoiceXML browser includes a
back-to-back SIP Agent. The Prompt Server and ASR Server include a
User Agent Server and are collectively termed Media Resources. The
application logic resides on a Web Server and is accessed by the
VoiceXML browser. After fetching the VoiceXML script the browser
parses the document and begins processing the call. When a resource
is needed the appropriate Media Resource must be accessed and
controlled to perform the work item. How this interaction is defined
and implemented is debatable, here we suggest one manner of achieving
the desired end result.
The method for tunneling the MRCP to the servers is the SIP re-INVITE
message. The VoiceXML browser will obtain the type of Media Resource
needed by performing a standard SIP INVITE / 200 OK, all subsequent
call control messages and server events are transported in SIP re-
INVITE messages. For example, when the welcome.wav audio prompt
needs to be streamed to the user the VoiceXML browser will act as an
MRCP client and send an MRCP SPEAK request to the Prompt Server via
SIP re-INVITE. When the Prompt server has finished fetching the
audio prompt it responds with an MRCP IN-PROGRESS event to the
VoiceXML browser. When the Prompt Server has completed streaming the
audio prompt it initiates an MRCP COMPLETE event to the VoiceXML
browser.
The following call flow illustrates an advanced, interactive, voice
telephone call. The caller, noted by User Agent "A," interacts with
a VXML Browser "B," Prompt Player "C," and Speech Recognition Engine
"D."
F.Robinson, et al. Expires July 3, 2002 [Page 3]
Internet-Draft MRCP over SIP January 2002
The call flow illustrates a user dialing an information service and
interacting with an interactive voice system. In this case the user
knows the choices being played by the Prompt Player, hence the user
doesn't wait for the completion of the prompts to respond. The user
responds, at Step 21, and the Speech Recognition Engine sends an
"MRCP: START-OF-SPEECH" message to the Prompt Player to terminate the
prompt playing. The speech is recognized and the associated,
informational, prompt is played to the user.
NOTE: Following each flow diagram are actual SIP messages that
demonstrate the insertion of MRCP message bodies. Identical,
sequential ingress and egress SIP messages are combined for brevity.
F.Robinson, et al. Expires July 3, 2002 [Page 4]
Internet-Draft MRCP over SIP January 2002
2. Call Flow
2.1 INVITE FROM USER AGENT
User Agent "A" sends an INVITE to the VXML Browser requesting the
service "myapplication."
UserAgent Service VXML Browser
"A" Controller "B"
10.20.2.14 10.20.1.125 10.20.1.78
| | |
| 1. INVITE, SDP: A | |
|------------------------->| |
| | 2. INVITE, SDP: A |
| |------------------------->|
| | |
| | |
| | |
**************
* Step 1 & 2 *
**************
INVITE sip:myapplication@10.20.1.125 SIP/2.0
From: sip:4444@10.20.2.14;tag=1c27508
To: sip:myapplication@10.20.1.125
Call-ID: call-1001631757-5@10.20.2.14
CSeq: 1 INVITE
Contact:sip:4444@10.20.2.14
Content-Type:application/sdp
Content-Length: 193
Accept-Language:en
Supported:sip-cc, sip-cc-01, timer
User-Agent:Pingtel/1.0.6 (VxWorks)
Via: SIP/2.0/UDP 10.20.2.14:5060
v=0
o=Pingtel 5 5 IN IP4 10.20.2.14
s=phone-call
c=IN IP4 10.20.2.14
t=0 0
m=audio 8766 RTP/AVP 0 96 8
a=rtpmap:0 pcmu/8000/1
a=rtpmap:96 telephone-event/8000/1
a=rtpmap:8 pcma/8000/1
F.Robinson, et al. Expires July 3, 2002 [Page 5]
Internet-Draft MRCP over SIP January 2002
2.2 VXML BROWSER INVITES SPEECH RECOGNITION ENGINE
The VXLM Browser host's a VXML script for "myapplication." The
script requires the services of Speech Recognition, an INVITE is
proxied to the Speech Recognition to ascertain the availability of
the resource.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 3. INVITE D | | |
|<-----------------| | |
| | | |
| | | |
| | | |
| 4. INVITE D | | |
|------------------------------------------------------->|
| | | |
| | | |
| | | |
| 5. 200 OK, SDP: D| | |
|<-------------------------------------------------------|
| | | |
| | | |
| | | |
| 6. 200 OK, SDP: D| | |
|----------------->| | |
| | | |
| | | |
| | | |
**********
* Step 3 *
**********
INVITE sip:sipproxy@10.20.1.125:5060 SIP/2.0
From: sip:recoclient@10.20.1.78:6106
To: sip:myappreco@10.20.1.125
Contact: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 943958389 INVITE
Content-Length: 0
**********
* Step 4 *
**********
F.Robinson, et al. Expires July 3, 2002 [Page 6]
Internet-Draft MRCP over SIP January 2002
INVITE sip:sipproxy@10.20.1.98 SIP/2.0
From: sip:recoclient@10.20.1.78:6106
To: sip:myappreco@10.20.1.125
Contact: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 943958389 INVITE
Content-Length: 0
Via: SIP/2.0/UDP 10.20.1.125:5060;branch=1_MtrMzjN1TzZJj4HRDKZskA99
Via: SIP/2.0/UDP 10.20.1.78:6106
Record-Route: <sip:sipproxy@10.20.1.98:5060;transport=udp;maddr=10.20.1.125>
**************
* Step 5 & 6 *
**************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:recoclient@10.20.1.78:6106
To: sip:myappreco@10.20.1.125;tag=ds071ee
Call-ID: 1001631391281@10.20.1.78
CSeq: 943958389 INVITE
Record-Route:<sip:sipproxy@10.20.1.98:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 171
Content-Type:application/sdp
Contact:<sip:10.20.1.98:6105;transport=udp>
v=0
o=sandcherry 1001623233343 1001623233343 IN IP4 10.20.1.98
s=sales@sandcherry.com
e=sales@sandcherry.com
c=IN IP4 10.20.1.98
b=0
t=0 0
m=audio 17560 RTP/AVP 0
F.Robinson, et al. Expires July 3, 2002 [Page 7]
Internet-Draft MRCP over SIP January 2002
2.3 200 OK PROXIED TO USER AGENT
When the VXML Browser receieves the 200 OK from the Speech
Recognition Engine the call setup proceeds. The 200 OK is proxied to
User Agent "A" with Speech Recognition SDP information.
UserAgent Service VXML Browser
"A" Controller "B"
10.20.2.14 10.20.1.125 10.20.1.78
| | |
| | 7. 200 OK, SDP: D |
| |<-------------------------|
| 8. 200 OK, SDP: D | |
|<-------------------------| |
| | |
| | |
| | |
**************
* Step 7 & 8 *
**************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.2.14:5060
From: sip:4444@10.20.2.14;tag=1c27508
To: sip:myapplication@10.20.1.125;tag=ds05569
Call-ID: call-1001631757-5@10.20.2.14
CSeq: 1 INVITE
Record-Route:<sip:myapplication@10.20.1.78:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 171
Content-Type:application/sdp
Contact:<sip:10.20.1.78:6106;transport=udp>
v=0
o=sandcherry 1001623233343 1001623233343 IN IP4 10.20.1.98
s=sales@sandcherry.com
e=sales@sandcherry.com
c=IN IP4 10.20.1.98
b=0
t=0 0
m=audio 17560 RTP/AVP 0
F.Robinson, et al. Expires July 3, 2002 [Page 8]
Internet-Draft MRCP over SIP January 2002
2.4 MRCP: RECOGNIZE PROXIED TO SPEECH RECO, PROMPT PLAYER INVITED
The VXML Browser sends a re-INVITE to the Speech Recognition Engine
with "MRCP: RECOGNIZE" in the the message boday. This instruction
tells the Speech Recognition Engine to begin listening for speech.
The MRCP message body also contains the "MY APPLICATION GRAMMAR"
instruction that tells the Speech Recognition Engine which grammars,
or sets of words, to listen for.
Following the re-INVITE to the Speech Recognition Engine the VXML
Browser, per the VXML script, INVITEs the Prompt Player with SDP of
User Agent "A."
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 9. INVITE D | | |
| MRCP: RECOGNIZE | |
|<-----------------| | |
| | | |
| | | |
| 10. INVITE D | | |
| MRCP: RECOGNIZE | |
|------------------------------------------------------->|
| | | |
| | | |
| 11. INVITE C | | |
| SDP: A | | |
|<-----------------| | |
| | | |
| | | |
| 12. INVITE C, SDP: A | |
|------------------------------------>| |
| | | |
| | | |
| | | |
***************
* Step 9 & 10 *
***************
INVITE sip:sipproxy@10.20.1.98 SIP/2.0
From: sip:recoclient@10.20.1.78:6106
To: sip:myappreco@10.20.1.125;tag=ds071ee
Call-ID: 1001631391281@10.20.1.78
CSeq: 943958390 INVITE
F.Robinson, et al. Expires July 3, 2002 [Page 9]
Internet-Draft MRCP over SIP January 2002
Content-Length: 178
Content-Type:application/mrcp
Route: <sip:10.20.1.98:6105;transport=udp>
Contact:<sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.78:6106
RECOGNIZE 0 MRCP/1.0
N-Best-List-Length:2
Content-Type:text/uri-list
No-Input-Timeout:3000
Recognition-Timeout:10000
Recognizer-Start-Timers:false
Content-Length:5
MY APPLICATION GRAMMAR
***********
* Step 11 *
***********
INVITE sip:sipproxy@10.20.1.125:5060 SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125
Contact: sip:promptclient@10.20.1.78:6106
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052353 INVITE
Content-Length: 193
Content-Type: application/sdp
v=0
o=Pingtel 5 5 IN IP4 10.20.2.14
s=phone-call
c=IN IP4 10.20.2.14
t=0 0
m=audio 8766 RTP/AVP 0 96 8
a=rtpmap:0 pcmu/8000/1
a=rtpmap:96 telephone-event/8000/1
a=rtpmap:8 pcma/8000/1
***********
* Step 12 *
***********
INVITE sip:sipproxy@10.20.1.76 SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125
Contact: sip:promptclient@10.20.1.78:6106
Call-ID: 1001631393109@10.20.1.78
F.Robinson, et al. Expires July 3, 2002 [Page 10]
Internet-Draft MRCP over SIP January 2002
CSeq: 1601052353 INVITE
Content-Length: 193
Content-Type:application/sdp
Via: SIP/2.0/UDP 10.20.1.125:5060;branch=1_qrF28qA691vuJeW3TTgHBwQ99
Via: SIP/2.0/UDP 10.20.1.78:6106
Record-Route: <sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
v=0
o=Pingtel 5 5 IN IP4 10.20.2.14
s=phone-call
c=IN IP4 10.20.2.14
t=0 0
m=audio 8766 RTP/AVP 0 96 8
a=rtpmap:0 pcmu/8000/1
a=rtpmap:96 telephone-event/8000/1
a=rtpmap:8 pcma/8000/1
F.Robinson, et al. Expires July 3, 2002 [Page 11]
Internet-Draft MRCP over SIP January 2002
2.5 200 OK'S FROM SPEECH RECO AND PROMPT PLAYER
The Speech Recognition returns a 200 OK with "MRCP: IN-PROGRESS"
message body, and Prompt Player returns a 200 OK.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 13. 200 OK | | |
| MRCP: IN-PROGRESS | |
|<-------------------------------------------------------|
| | | |
| | | |
| 14. 200 OK | | |
| MRCP: IN-PROGRESS | |
|----------------->| | |
| | | |
| | | |
| 15. 200 OK | | |
|<------------------------------------| |
| | | |
| | | |
| 16. 200 OK | | |
|----------------->| | |
| | | |
| | | |
| | | |
****************
* Step 13 & 14 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:recoclient@10.20.1.78:6106
To: sip:myappreco@10.20.1.125;tag=ds071ee
Call-ID: 1001631391281@10.20.1.78
CSeq: 943958390 INVITE
Record-Route:<sip:sipproxy@10.20.1.98:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 30
Content-Type:application/mrcp
Contact:<sip:10.20.1.98:6105;transport=udp>
MRCP/1.0 0 200 IN-PROGRESS
****************
F.Robinson, et al. Expires July 3, 2002 [Page 12]
Internet-Draft MRCP over SIP January 2002
* Step 15 & 16 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052353 INVITE
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 0
Contact:<sip:10.20.1.76:6101;transport=udp>
F.Robinson, et al. Expires July 3, 2002 [Page 13]
Internet-Draft MRCP over SIP January 2002
2.6 MRCP: SPEAK 1 PROXIED TO PROMPT PLAYER, MRCP: IN-PROGRESS RETURNED
The VXML Browser sends a re-INVITE with "MRCP: SPEAK 1" message body.
"SPEAK 1" tells the Prompt Player to play "1" prompts. 200 OK with
"MRCP: IN-PROGRESS" message body is returned from Prompt Player.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 17. INVITE C | | |
| MRCP: | | |
| SPEAK 1 | | |
|<-----------------| | |
| | | |
| | | |
| 18. INVITE C | | |
| MRCP: | | |
| SPEAK 1 | | |
|------------------------------------>| |
| | | |
| | | |
| 19. 200 OK | | |
| MRCP: IN-PROGRESS | |
|<------------------------------------| |
| | | |
| | | |
| 20. 200 OK | | |
| MRCP: IN-PROGRESS | |
|----------------->| | |
| | | |
| | | |
| | | |
***********
* Step 17 *
***********
INVITE sip:sipproxy@10.20.1.76 SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052354 INVITE
Content-Length: 108
Content-Type:application/mrcp
Route: <sip:10.20.1.76:6101;transport=udp>
Contact:<sip:10.20.1.78:6106;transport=udp>
F.Robinson, et al. Expires July 3, 2002 [Page 14]
Internet-Draft MRCP over SIP January 2002
Via: SIP/2.0/UDP 10.20.1.78:6106
SPEAK 1 MRCP/1.0
Content-Type:text/uri-list
Content-Length:41
***********
* Step 18 *
***********
INVITE sip:10.20.1.76:6101;transport=udp SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052354 INVITE
Content-Length: 108
Content-Type:application/mrcp
Contact: <sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.125:5060;branch=1_z6Y1Q7rzmpD2qNxn54enPA99
Via: SIP/2.0/UDP 10.20.1.78:6106
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
SPEAK 1 MRCP/1.0
Content-Type:text/uri-list
Content-Length:41
****************
* Step 19 & 20 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052354 INVITE
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 30
Content-Type:application/mrcp
Contact:<sip:10.20.1.76:6101;transport=udp>
MRCP/1.0 1 200 IN-PROGRESS
F.Robinson, et al. Expires July 3, 2002 [Page 15]
Internet-Draft MRCP over SIP January 2002
2.7 MRCP: START-OF-SPEECH AND MRCP: BARGE-IN-OCCURED
The Speech Recognition Engine detects speech and immediately sends an
INVITE, with "MRCP: START-OF-SPEECH" message body, to the VXML
Browser notifying the VXML Browser that User Agent "A" is speaking.
The VXML Browser must send a termination instruction to the Prompt
Player to inform Prompt Player to stop playing prompt. The VXML
Browser uses a re-INVITE with "MRCP: BARGE-IN-OCCURED" to terminate
prompt playing.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 21. INVITE | | |
| MRCP: START-OF-SPEECH | |
|<-------------------------------------------------------|
| | | |
| | | |
| 22. INVITE | | |
| MRCP: START-OF-SPEECH | |
|----------------->| | |
| | | |
| | | |
| 23. INVITE | | |
| MRCP: BARGE-IN-OCCURED | |
|<-----------------| | |
| | | |
| | | |
| 24. INVITE | | |
| MRCP: BARGE-IN-0CCURED | |
|------------------------------------>| |
| | | |
| | | |
| | | |
****************
* Step 21 & 22 *
****************
INVITE sip:sipproxy@10.20.1.98 SIP/2.0
From: sip:myappreco@10.20.1.125;tag=ds071ee
To: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 903953173 INVITE
Content-Length: 31
Content-Type:application/mrcp
F.Robinson, et al. Expires July 3, 2002 [Page 16]
Internet-Draft MRCP over SIP January 2002
Route: <sip:10.20.1.78:6106;transport=udp>
Contact:<sip:10.20.1.98:6105;transport=udp>
Via: SIP/2.0/UDP 10.20.1.98:6105
START-OF-SPEECH 0 MRCP/1.0
***********
* Step 23 *
***********
INVITE sip:sipproxy@10.20.1.76 SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052355 INVITE
Content-Length: 31
Content-Type:application/mrcp
Route: <sip:10.20.1.76:6101;transport=udp>
Contact:<sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.78:6106
BARGE_IN_OCCURED 2 MRCP/1.0
***********
* Step 24 *
***********
INVITE sip:10.20.1.76:6101;transport=udp SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052355 INVITE
Content-Length: 31
Content-Type:application/mrcp
Contact: <sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.125:5060;branch=1_z6Y1Q7rzmpD2qNxn54enPA99
Via: SIP/2.0/UDP 10.20.1.78:6106
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
BARGE_IN_OCCURED 2 MRCP/1.0
F.Robinson, et al. Expires July 3, 2002 [Page 17]
Internet-Draft MRCP over SIP January 2002
2.8 200 OK FROM SPEECH RECO, PROMPT PLAYER RETURNS MRCP: COMPLETE
The VXML Browser acknowledges the INVITE with "MRCP: START-OF-SPEECH"
from the Speech recognition Engine.
The Prompt Player responds to the "MRCP: BARGE-IN-OCCURED" with a 200
OK with "MRCP: COMPLETE" message body. "MRCP: COMPLETE" confirms the
Prompt Player terminated prompt playing.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 25. 200 OK | | |
|<-----------------| | |
| | | |
| | | |
| 26. 200 OK | | |
|------------------------------------------------------->|
| | | |
| | | |
| 27. 200 OK | | |
| MRCP: COMPLETE | |
|<------------------------------------| |
| | | |
| | | |
| 28. 200 OK | | |
| MRCP: COMPLETE | |
|----------------->| | |
| | | |
| | | |
| | | |
****************
* Step 25 & 26 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.98:6105
From: sip:myappreco@10.20.1.125;tag=ds071ee
To: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 903953173 INVITE
Record-Route:<sip:sipproxy@10.20.1.98:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 0
Contact:<sip:10.20.1.78:6106;transport=udp>
F.Robinson, et al. Expires July 3, 2002 [Page 18]
Internet-Draft MRCP over SIP January 2002
****************
* Step 27 & 28 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052355 INVITE
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 27
Content-Type:application/mrcp
Contact:<sip:10.20.1.76:6101;transport=udp>
MRCP/1.0 2 200 COMPLETE
F.Robinson, et al. Expires July 3, 2002 [Page 19]
Internet-Draft MRCP over SIP January 2002
2.9 MRCP: RECOGNITION-COMPLETE
The Speech Recognition Engine recognizes the speech and sends a re-
INVITE with "MRCP: RECOGNITION- COMPLETE." In the "MRCP:
RECOGNITION-COMPLETE" message boday the recognized words are
inserted, "hello world."
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 29. INVITE | | |
| MRCP: RECOGNITION-COMPLETE | |
|<-------------------------------------------------------|
| | | |
| | | |
| 30. INVITE | | |
| MRCP: RECOGNITION-COMPLETE | |
|----------------->| | |
| | | |
| | | |
| 31. 200 OK | | |
|<-----------------| | |
| | | |
| | | |
| 32. 200 OK | | |
|------------------------------------------------------->|
| | | |
| | | |
| | | |
****************
* Step 29 & 30 *
****************
INVITE sip:icm@10.20.1.98 SIP/2.0
From: sip:busreco@10.20.1.125;tag=ds071ee
To: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 903953174 INVITE
Content-Length: 156
Content-Type:application/mrcp
Route: <sip:10.20.1.78:6106;transport=udp>
Contact:<sip:10.20.1.98:6105;transport=udp>
Via: SIP/2.0/UDP 10.20.1.98:6105
RECOGNITION-COMPLETE 0 COMPLETE MRCP/1.0
F.Robinson, et al. Expires July 3, 2002 [Page 20]
Internet-Draft MRCP over SIP January 2002
Completion-Cause:0 success
Content-Length:65
SWI_meaning=hello world
RESULT=hello world
SWI_literal=hello world
SWI_grammarName=MY APPLICATION grammar
****************
* Step 31 & 32 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.98:6105
From: sip:myappreco@10.20.1.125;tag=ds071ee
To: sip:recoclient@10.20.1.78:6106
Call-ID: 1001631391281@10.20.1.78
CSeq: 903953174 INVITE
Record-Route:<sip:sipproxy@10.20.1.98:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 0
Contact:<sip:10.20.1.78:6106;transport=udp>
F.Robinson, et al. Expires July 3, 2002 [Page 21]
Internet-Draft MRCP over SIP January 2002
2.10 MRCP: SPEAK 5 PROXIED TO PROMPT PLAYER, MRCP: IN-PROGRESS RETURNED
The VXML Browser receives "hello world" in the "MRCP: RECOGNITION-
COMPLETE" message body. From the executing VXML script the VXML
Browser determines that "hello world" corresponds to "SPEAK 5," and
sends a re-INVITE to the Prompt Player with "MRCP: SPEAK 5." 200 OK
with "MRCP: IN-PROGRESS" is returned, prompt "5" is being played.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 33. INVITE | | |
| MRCP: | | |
| SPEAK 5 | | |
|<-----------------| | |
| | | |
| | | |
| 34. INVITE | | |
| MRCP: | | |
| SPEAK 5 | | |
|------------------------------------>| |
| | | |
| | | |
| 35. 200 OK | | |
| MRCP: IN-PROGRESS | |
|<------------------------------------| |
| | | |
| | | |
| 36. 200 OK | | |
| MRCP: IN-PROGRESS | |
|----------------->| | |
| | | |
| | | |
| | | |
***********
* Step 33 *
***********
INVITE sip:sipproxy@10.20.1.76 SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052356 INVITE
Content-Length: 106
Content-Type:application/mrcp
F.Robinson, et al. Expires July 3, 2002 [Page 22]
Internet-Draft MRCP over SIP January 2002
Route: <sip:10.20.1.76:6101;transport=udp>
Contact:<sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.78:6106
SPEAK 5 MRCP/1.0
Content-Type:text/uri-list
Content-Length:39
***********
* Step 34 *
***********
INVITE sip:10.20.1.76:6101;transport=udp SIP/2.0
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052356 INVITE
Content-Length: 106
Content-Type:application/mrcp
Contact: <sip:10.20.1.78:6106;transport=udp>
Via: SIP/2.0/UDP 10.20.1.125:5060;branch=1_z6Y1Q7rzmpD2qNxn54enPA99
Via: SIP/2.0/UDP 10.20.1.78:6106
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
SPEAK 5 MRCP/1.0
Content-Type:text/uri-list
Content-Length:39
****************
* Step 35 & 36 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.78:6106
From: sip:promptclient@10.20.1.78:6106
To: sip:myappprompt@10.20.1.125;tag=ds0f262
Call-ID: 1001631393109@10.20.1.78
CSeq: 1601052356 INVITE
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 30
Content-Type:application/mrcp
Contact:<sip:10.20.1.76:6101;transport=udp>
MRCP/1.0 5 200 IN-PROGRESS
F.Robinson, et al. Expires July 3, 2002 [Page 23]
Internet-Draft MRCP over SIP January 2002
2.11 MRCP: SPEAK-COMPLETE RETURNED FROM PROMPT PLAYER
When prompt "5" finishes playing the Prompt Player sends an INVITE
with "MRCP: SPEAK-COMPLETE" message body to notify the VXML Browser
prompt "5" has finished. The VXML Browser responds to the "MRCP:
SPEAK-COMPLETE" with a 200 OK.
Service VXML Browser Prompt Player Speech Reco
Controller "B" "C" "D"
10.20.1.125 10.20.1.78 10.20.1.76 10.20.1.98
| | | |
| 37. INVITE | | |
| MRCP: SPEAK-COMPLETE | |
|<------------------------------------| |
| | | |
| | | |
| 38. INVITE | | |
| MRCP: SPEAK-COMPLETE | |
|----------------->| | |
| | | |
| | | |
| 39.200 OK | | |
|<-----------------| | |
| | | |
| | | |
| 40. 200 OK | | |
|------------------------------------>| |
| | | |
| | | |
| | | |
****************
* Step 37 & 38 *
****************
INVITE sip:sipproxy@10.20.1.76 SIP/2.0
From: sip:myappprompt@10.20.1.125;tag=ds0f262
To: sip:promptclient@10.20.1.78:6106
Call-ID: 1001631393109@10.20.1.78
CSeq: 904379283 INVITE
Content-Length: 66
Content-Type:application/mrcp
Route: <sip:10.20.1.78:6106;transport=udp>
Contact:<sip:10.20.1.76:6101;transport=udp>
Via: SIP/2.0/UDP 10.20.1.76:6101
SPEAK-COMPLETED 5 COMPLETE MRCP/1.0
F.Robinson, et al. Expires July 3, 2002 [Page 24]
Internet-Draft MRCP over SIP January 2002
Completion-Cause:0 normal
****************
* Step 39 & 40 *
****************
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.20.1.76:6101
From: sip:myappprompt@10.20.1.125;tag=ds0f262
To: sip:promptclient@10.20.1.78:6106
Call-ID: 1001631393109@10.20.1.78
CSeq: 904379283 INVITE
Record-Route:<sip:sipproxy@10.20.1.76:5060;transport=udp;maddr=10.20.1.125>
Content-Length: 0
Contact:<sip:10.20.1.78:6106;transport=udp>
F.Robinson, et al. Expires July 3, 2002 [Page 25]
Internet-Draft MRCP over SIP January 2002
3. Summary
The SIP INFO Method was explored as a possible alternative to the re-
INVITE method demonstrated here. However, due to the stateless
nature of the INFO Method it was determined that the INFO Method did
not lend itself to the stateful MRCP message structure. Like SIP,
MRCP is comprised of Initial, Informational, and Final Response
messages. Due to the complexity and depth of interaction involved in
multi-component interaction, debugging communication failures among
the components is greatly simplified by mapping SIP message state to
MRCP message state.
Also note that the call flow illustrated in this draft does not use
Informational Response Messages, ie., 1xx messages. Currently, the
application(s) supported are basic and do not use the full range of
MRCP messages, hence many MRCP Informational Messages are not
implemented and those that are are being carried in re-INVITE
messages. Our expectation is that as applications mature it will
become increasingly necessary to incorporate the complete MRCP
message set, and as a matter of course it will become a natural
evolution to strictly map all MRCP Informational Response Messages to
SIP Informational Respones Messages.
F.Robinson, et al. Expires July 3, 2002 [Page 26]
Internet-Draft MRCP over SIP January 2002
References
[1] Handley, M., Schulzrinne, H., Schooler, E., and J. Rosenberg,,
"SIP: Session Initiatin Protocol", RFC 2543, March 1999.
[2] Shanmugham, S., Monaco, P., and B. Eberman, "draft-shanmugham-
mrcp-01", (work in progress) , September 29 2001.
[3] Rosenberg, Mataga, Schulzrine, "draft-rosenberg-sip-app-
components-01", Expires May 2001 , November 15 2000.
Authors' Addresses
Fred Robinson
SandCherry Networks, Inc.
2845 Wilderness Pl
Boulder, CO 80301
USA
Phone: 720.562.4523
Fax: 720.562.4501
EMail: frobinson@sandcherry.com
URI:
Brian Marquette
SandCherry Networks, Inc.
2845 Wilderness Pl
Boulder, CO 80301
USA
Phone: 720.562.4518
Fax: 720.562.4501
EMail: bmarquette@sandcherry.com
URI:
Robert Hernandez
SandCherry Networks, Inc.
2845 Wilderness Pl
Boulder, CO 80301
USA
Phone: 720.562.4517
Fax: 720.562.4501
EMail: rhernandez@sandcherry.com
URI:
F.Robinson, et al. Expires July 3, 2002 [Page 27]
Internet-Draft MRCP over SIP January 2002
Appendix A. Acknowledgements
The authors gratefully acknowledge the contributions of: Swavek
Skret, SandCherry Networks, Inc. Chris Kramp, SandCherry Networks,
Inc. Eric Burger, Snowshore Networks, Inc.
F.Robinson, et al. Expires July 3, 2002 [Page 28]
Internet-Draft MRCP over SIP January 2002
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
F.Robinson, et al. Expires July 3, 2002 [Page 29]