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: ************** * 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: Content-Length: 171 Content-Type:application/sdp Contact: 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: Content-Length: 171 Content-Type:application/sdp Contact: 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: Contact: 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: 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: Content-Length: 30 Content-Type:application/mrcp Contact: 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: Content-Length: 0 Contact: 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: Contact: 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: 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: 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: Content-Length: 30 Content-Type:application/mrcp Contact: 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: Contact: 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: Contact: 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: 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: 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: Content-Length: 0 Contact: 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: Content-Length: 27 Content-Type:application/mrcp Contact: 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: Contact: 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: Content-Length: 0 Contact: 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: Contact: 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: 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: 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: Content-Length: 30 Content-Type:application/mrcp Contact: 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: Contact: 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: Content-Length: 0 Contact: 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]