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]