Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 6787

Media Resource Control Protocol Version 2 (MRCPv2)

Pages: 224
Proposed Standard
Errata
Part 8 of 8 – Pages 196 to 224
First   Prev   None

Top   ToC   RFC6787 - Page 196   prevText

15. ABNF Normative Definition

The following productions make use of the core rules defined in Section B.1 of RFC 5234 [RFC5234]. LWS = [*WSP CRLF] 1*WSP ; linear whitespace SWS = [LWS] ; sep whitespace UTF8-NONASCII = %xC0-DF 1UTF8-CONT / %xE0-EF 2UTF8-CONT / %xF0-F7 3UTF8-CONT / %xF8-FB 4UTF8-CONT / %xFC-FD 5UTF8-CONT UTF8-CONT = %x80-BF UTFCHAR = %x21-7E / UTF8-NONASCII param = *pchar
Top   ToC   RFC6787 - Page 197
quoted-string    =    SWS DQUOTE *(qdtext / quoted-pair )
                      DQUOTE

qdtext           =    LWS / %x21 / %x23-5B / %x5D-7E
                 /    UTF8-NONASCII

quoted-pair      =    "\" (%x00-09 / %x0B-0C / %x0E-7F)

token            =    1*(alphanum / "-" / "." / "!" / "%" / "*"
                      / "_" / "+" / "`" / "'" / "~" )

reserved         =    ";" / "/" / "?" / ":" / "@" / "&" / "="
                      / "+" / "$" / ","

mark             =    "-" / "_" / "." / "!" / "~" / "*" / "'"
                 /    "(" / ")"

unreserved       =    alphanum / mark

pchar            =    unreserved / escaped
                 /    ":" / "@" / "&" / "=" / "+" / "$" / ","

alphanum         =    ALPHA / DIGIT

BOOLEAN          =    "true" / "false"

FLOAT            =    *DIGIT ["." *DIGIT]

escaped          =    "%" HEXDIG HEXDIG

fragment         =    *uric

uri              =    [ absoluteURI / relativeURI ]
                      [ "#" fragment ]

absoluteURI      =    scheme ":" ( hier-part / opaque-part )

relativeURI      =    ( net-path / abs-path / rel-path )
                      [ "?" query ]

hier-part        =    ( net-path / abs-path ) [ "?" query ]

net-path         =    "//" authority [ abs-path ]

abs-path         =    "/" path-segments

rel-path         =    rel-segment [ abs-path ]
Top   ToC   RFC6787 - Page 198
rel-segment      =    1*( unreserved / escaped / ";" / "@"
                 /    "&" / "=" / "+" / "$" / "," )

opaque-part      =    uric-no-slash *uric

uric             =    reserved / unreserved / escaped

uric-no-slash    =    unreserved / escaped / ";" / "?" / ":"
                      / "@" / "&" / "=" / "+" / "$" / ","

path-segments    =    segment *( "/" segment )

segment          =    *pchar *( ";" param )

scheme           =    ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

authority        =    srvr / reg-name

srvr             =    [ [ userinfo "@" ] hostport ]

reg-name         =    1*( unreserved / escaped / "$" / ","
                 /     ";" / ":" / "@" / "&" / "=" / "+" )

query            =    *uric

userinfo         =    ( user ) [ ":" password ] "@"

user             =    1*( unreserved / escaped
                 /    user-unreserved )

user-unreserved  =    "&" / "=" / "+" / "$" / "," / ";"
                 /    "?" / "/"

password         =    *( unreserved / escaped
                 /    "&" / "=" / "+" / "$" / "," )

hostport         =    host [ ":" port ]

host             =    hostname / IPv4address / IPv6reference

hostname         =    *( domainlabel "." ) toplabel [ "." ]

domainlabel      =    alphanum / alphanum *( alphanum / "-" )
                      alphanum

toplabel         =    ALPHA / ALPHA *( alphanum / "-" )
                      alphanum
Top   ToC   RFC6787 - Page 199
IPv4address      =    1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "."
                      1*3DIGIT

IPv6reference    =    "[" IPv6address "]"

IPv6address      =    hexpart [ ":" IPv4address ]

hexpart          =    hexseq / hexseq "::" [ hexseq ] / "::"
                      [ hexseq ]

hexseq           =    hex4 *( ":" hex4)

hex4             =    1*4HEXDIG

port             =    1*19DIGIT

; generic-message is the top-level rule

generic-message  =    start-line message-header CRLF
                      [ message-body ]

message-body     =    *OCTET

start-line       =    request-line / response-line / event-line

request-line     =    mrcp-version SP message-length SP method-name
                      SP request-id CRLF

response-line    =    mrcp-version SP message-length SP request-id
                      SP status-code SP request-state CRLF

event-line       =    mrcp-version SP message-length SP event-name
                      SP request-id SP request-state CRLF

method-name      =    generic-method
                 /    synthesizer-method
                 /    recognizer-method
                 /    recorder-method
                 /    verifier-method

generic-method   =    "SET-PARAMS"
                 /    "GET-PARAMS"

request-state    =    "COMPLETE"
                 /    "IN-PROGRESS"
                 /    "PENDING"
Top   ToC   RFC6787 - Page 200
event-name       =    synthesizer-event
                 /    recognizer-event
                 /    recorder-event
                 /    verifier-event

message-header   =  1*(generic-header / resource-header / generic-field)

generic-field    =    field-name ":" [ field-value ]
field-name       =    token
field-value      =    *LWS field-content *( CRLF 1*LWS field-content)
field-content    =    <the OCTETs making up the field-value
                      and consisting of either *TEXT or combinations
                      of token, separators, and quoted-string>

resource-header  =    synthesizer-header
                 /    recognizer-header
                 /    recorder-header
                 /    verifier-header

generic-header   =    channel-identifier
                 /    accept
                 /    active-request-id-list
                 /    proxy-sync-id
                 /    accept-charset
                 /    content-type
                 /    content-id
                 /    content-base
                 /    content-encoding
                 /    content-location
                 /    content-length
                 /    fetch-timeout
                 /    cache-control
                 /    logging-tag
                 /    set-cookie
                 /    vendor-specific

; -- content-id is as defined in RFC 2392, RFC 2046 and RFC 5322
; -- accept and accept-charset are as defined in RFC 2616

mrcp-version     =    "MRCP" "/" 1*2DIGIT "." 1*2DIGIT

message-length   =    1*19DIGIT

request-id       =    1*10DIGIT

status-code      =    3DIGIT
Top   ToC   RFC6787 - Page 201
channel-identifier =  "Channel-Identifier" ":"
                      channel-id CRLF

channel-id       =    1*alphanum "@" 1*alphanum

active-request-id-list = "Active-Request-Id-List" ":"
                         request-id *("," request-id) CRLF

proxy-sync-id    =    "Proxy-Sync-Id" ":" 1*VCHAR CRLF

content-base     =    "Content-Base" ":" absoluteURI CRLF

content-length   =    "Content-Length" ":" 1*19DIGIT CRLF

content-type     =    "Content-Type" ":" media-type-value CRLF

media-type-value =    type "/" subtype *( ";" parameter )

type             =    token

subtype          =    token

parameter        =    attribute "=" value

attribute        =    token

value            =    token / quoted-string

content-encoding =    "Content-Encoding" ":"
                      *WSP content-coding
                      *(*WSP "," *WSP content-coding *WSP )
                      CRLF

content-coding   =    token

content-location =    "Content-Location" ":"
                      ( absoluteURI / relativeURI )  CRLF

cache-control    =    "Cache-Control" ":"
                      [*WSP cache-directive
                      *( *WSP "," *WSP cache-directive *WSP )]
                      CRLF

fetch-timeout    =    "Fetch-Timeout" ":" 1*19DIGIT CRLF

cache-directive  =    "max-age" "=" delta-seconds
                 /    "max-stale" ["=" delta-seconds ]
                 /    "min-fresh" "=" delta-seconds
Top   ToC   RFC6787 - Page 202
delta-seconds    =    1*19DIGIT

logging-tag      =    "Logging-Tag" ":" 1*UTFCHAR CRLF

vendor-specific  =    "Vendor-Specific-Parameters" ":"
                      [vendor-specific-av-pair
                      *(";" vendor-specific-av-pair)] CRLF

vendor-specific-av-pair = vendor-av-pair-name "="
                          value

vendor-av-pair-name     = 1*UTFCHAR

set-cookie        = "Set-Cookie:" SP set-cookie-string
set-cookie-string = cookie-pair *( ";" SP cookie-av )
cookie-pair       = cookie-name "=" cookie-value
cookie-name       = token
cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
token             = <token, defined in [RFC2616], Section 2.2>

cookie-av         = expires-av / max-age-av / domain-av /
                     path-av / secure-av / httponly-av /
                     extension-av / age-av
expires-av        = "Expires=" sane-cookie-date
sane-cookie-date  = <rfc1123-date, defined in [RFC2616], Section 3.3.1>
max-age-av        = "Max-Age=" non-zero-digit *DIGIT
non-zero-digit    = %x31-39
domain-av         = "Domain=" domain-value
domain-value      = <subdomain>
path-av           = "Path=" path-value
path-value        = <any CHAR except CTLs or ";">
secure-av         = "Secure"
httponly-av       = "HttpOnly"
extension-av      = <any CHAR except CTLs or ";">
age-av            = "Age=" delta-seconds

; Synthesizer ABNF

synthesizer-method    =    "SPEAK"
                      /    "STOP"
                      /    "PAUSE"
                      /    "RESUME"
                      /    "BARGE-IN-OCCURRED"
                      /    "CONTROL"
                      /    "DEFINE-LEXICON"
Top   ToC   RFC6787 - Page 203
synthesizer-event     =    "SPEECH-MARKER"
                      /    "SPEAK-COMPLETE"

synthesizer-header    =    jump-size
                      /    kill-on-barge-in
                      /    speaker-profile
                      /    completion-cause
                      /    completion-reason
                      /    voice-parameter
                      /    prosody-parameter
                      /    speech-marker
                      /    speech-language
                      /    fetch-hint
                      /    audio-fetch-hint
                      /    failed-uri
                      /    failed-uri-cause
                      /    speak-restart
                      /    speak-length
                      /    load-lexicon
                      /    lexicon-search-order

jump-size             =    "Jump-Size" ":" speech-length-value CRLF

speech-length-value   =    numeric-speech-length
                      /    text-speech-length

text-speech-length    =    1*UTFCHAR SP "Tag"

numeric-speech-length =    ("+" / "-") positive-speech-length

positive-speech-length =   1*19DIGIT SP numeric-speech-unit

numeric-speech-unit   =    "Second"
                      /    "Word"
                      /    "Sentence"
                      /    "Paragraph"

kill-on-barge-in      =    "Kill-On-Barge-In" ":" BOOLEAN
                           CRLF

speaker-profile       =    "Speaker-Profile" ":" uri CRLF

completion-cause         =  "Completion-Cause" ":" cause-code SP
                            cause-name CRLF
cause-code               =  3DIGIT
cause-name               =  *VCHAR
Top   ToC   RFC6787 - Page 204
completion-reason     =    "Completion-Reason" ":"
                           quoted-string CRLF

voice-parameter       =    voice-gender
                      /    voice-age
                      /    voice-variant
                      /    voice-name

voice-gender          =    "Voice-Gender:" voice-gender-value CRLF

voice-gender-value    =    "male"
                      /    "female"
                      /    "neutral"

voice-age             =    "Voice-Age:" 1*3DIGIT CRLF

voice-variant         =    "Voice-Variant:" 1*19DIGIT CRLF

voice-name            =    "Voice-Name:"
                           1*UTFCHAR *(1*WSP 1*UTFCHAR) CRLF

prosody-parameter     =    "Prosody-" prosody-param-name ":"
                           prosody-param-value CRLF

prosody-param-name    =    1*VCHAR

prosody-param-value   =    1*VCHAR

timestamp             =    "timestamp" "=" time-stamp-value

time-stamp-value      =    1*20DIGIT

speech-marker         =    "Speech-Marker" ":"
                           timestamp
                           [";" 1*(UTFCHAR / %x20)] CRLF

speech-language       =    "Speech-Language" ":" 1*VCHAR CRLF

fetch-hint            =    "Fetch-Hint" ":" ("prefetch" / "safe") CRLF

audio-fetch-hint      =    "Audio-Fetch-Hint" ":"
                          ("prefetch" / "safe" / "stream") CRLF

failed-uri            =    "Failed-URI" ":" absoluteURI CRLF

failed-uri-cause      =    "Failed-URI-Cause" ":" 1*UTFCHAR CRLF

speak-restart         =    "Speak-Restart" ":" BOOLEAN CRLF
Top   ToC   RFC6787 - Page 205
speak-length          =    "Speak-Length" ":" positive-length-value
                           CRLF

positive-length-value   =  positive-speech-length
                        /  text-speech-length

load-lexicon          =    "Load-Lexicon" ":" BOOLEAN CRLF

lexicon-search-order  =    "Lexicon-Search-Order" ":"
          "<" absoluteURI ">" *(" " "<" absoluteURI ">") CRLF

; Recognizer ABNF

recognizer-method     =    recog-only-method
                      /    enrollment-method

recog-only-method     =    "DEFINE-GRAMMAR"
                      /    "RECOGNIZE"
                      /    "INTERPRET"
                      /    "GET-RESULT"
                      /    "START-INPUT-TIMERS"
                      /    "STOP"

enrollment-method     =    "START-PHRASE-ENROLLMENT"
                      /    "ENROLLMENT-ROLLBACK"
                      /    "END-PHRASE-ENROLLMENT"
                      /    "MODIFY-PHRASE"
                      /    "DELETE-PHRASE"

recognizer-event      =    "START-OF-INPUT"
                      /    "RECOGNITION-COMPLETE"
                      /    "INTERPRETATION-COMPLETE"

recognizer-header     =    recog-only-header
                      /    enrollment-header

recog-only-header     =    confidence-threshold
                      /    sensitivity-level
                      /    speed-vs-accuracy
                      /    n-best-list-length
                      /    input-type
                      /    no-input-timeout
                      /    recognition-timeout
                      /    waveform-uri
                      /    input-waveform-uri
                      /    completion-cause
                      /    completion-reason
                      /    recognizer-context-block
Top   ToC   RFC6787 - Page 206
                      /    start-input-timers
                      /    speech-complete-timeout
                      /    speech-incomplete-timeout
                      /    dtmf-interdigit-timeout
                      /    dtmf-term-timeout
                      /    dtmf-term-char
                      /    failed-uri
                      /    failed-uri-cause
                      /    save-waveform
                      /    media-type
                      /    new-audio-channel
                      /    speech-language
                      /    ver-buffer-utterance
                      /    recognition-mode
                      /    cancel-if-queue
                      /    hotword-max-duration
                      /    hotword-min-duration
                      /    interpret-text
                      /    dtmf-buffer-time
                      /    clear-dtmf-buffer
                      /    early-no-match

enrollment-header     =    num-min-consistent-pronunciations
                      /    consistency-threshold
                      /    clash-threshold
                      /    personal-grammar-uri
                      /    enroll-utterance
                      /    phrase-id
                      /    phrase-nl
                      /    weight
                      /    save-best-waveform
                      /    new-phrase-id
                      /    confusable-phrases-uri
                      /    abort-phrase-enrollment

confidence-threshold  =    "Confidence-Threshold" ":"
                           FLOAT CRLF

sensitivity-level     =    "Sensitivity-Level" ":" FLOAT
                           CRLF

speed-vs-accuracy     =    "Speed-Vs-Accuracy" ":" FLOAT
                           CRLF

n-best-list-length    =    "N-Best-List-Length" ":" 1*19DIGIT
                           CRLF

input-type            =    "Input-Type" ":"  inputs CRLF
Top   ToC   RFC6787 - Page 207
inputs                =    "speech" / "dtmf"

no-input-timeout      =    "No-Input-Timeout" ":" 1*19DIGIT
                           CRLF

recognition-timeout   =    "Recognition-Timeout" ":" 1*19DIGIT
                           CRLF

waveform-uri          =    "Waveform-URI" ":" ["<" uri ">"
                           ";" "size" "=" 1*19DIGIT
                           ";" "duration" "=" 1*19DIGIT] CRLF

recognizer-context-block = "Recognizer-Context-Block" ":"
                           [1*VCHAR] CRLF

start-input-timers    =    "Start-Input-Timers" ":"
                           BOOLEAN CRLF

speech-complete-timeout =  "Speech-Complete-Timeout" ":"
                           1*19DIGIT CRLF

speech-incomplete-timeout = "Speech-Incomplete-Timeout" ":"
                            1*19DIGIT CRLF

dtmf-interdigit-timeout = "DTMF-Interdigit-Timeout" ":"
                          1*19DIGIT CRLF

dtmf-term-timeout     =    "DTMF-Term-Timeout" ":" 1*19DIGIT
                           CRLF

dtmf-term-char        =    "DTMF-Term-Char" ":" VCHAR CRLF

save-waveform         =    "Save-Waveform" ":" BOOLEAN CRLF

new-audio-channel     =    "New-Audio-Channel" ":"
                           BOOLEAN CRLF

recognition-mode      =    "Recognition-Mode" ":"
                           "normal" / "hotword" CRLF

cancel-if-queue       =    "Cancel-If-Queue" ":" BOOLEAN CRLF

hotword-max-duration  =    "Hotword-Max-Duration" ":"
                           1*19DIGIT CRLF

hotword-min-duration  =    "Hotword-Min-Duration" ":"
                           1*19DIGIT CRLF
Top   ToC   RFC6787 - Page 208
interpret-text        =    "Interpret-Text" ":" 1*VCHAR CRLF

dtmf-buffer-time      =    "DTMF-Buffer-Time" ":" 1*19DIGIT CRLF

clear-dtmf-buffer     =    "Clear-DTMF-Buffer" ":" BOOLEAN CRLF

early-no-match        =    "Early-No-Match" ":" BOOLEAN CRLF

num-min-consistent-pronunciations    =
    "Num-Min-Consistent-Pronunciations" ":" 1*19DIGIT CRLF

consistency-threshold =    "Consistency-Threshold" ":" FLOAT
                           CRLF

clash-threshold       =    "Clash-Threshold" ":" FLOAT CRLF

personal-grammar-uri  =    "Personal-Grammar-URI" ":" uri CRLF

enroll-utterance      =    "Enroll-Utterance" ":" BOOLEAN CRLF

phrase-id             =    "Phrase-ID" ":" 1*VCHAR CRLF

phrase-nl             =    "Phrase-NL" ":" 1*UTFCHAR CRLF

weight                =    "Weight" ":" FLOAT CRLF

save-best-waveform    =    "Save-Best-Waveform" ":"
                           BOOLEAN CRLF

new-phrase-id         =    "New-Phrase-ID" ":" 1*VCHAR CRLF

confusable-phrases-uri =   "Confusable-Phrases-URI" ":"
                           uri CRLF

abort-phrase-enrollment =  "Abort-Phrase-Enrollment" ":"
                           BOOLEAN CRLF

; Recorder ABNF

recorder-method       =    "RECORD"
                      /    "STOP"
                      /    "START-INPUT-TIMERS"

recorder-event        =    "START-OF-INPUT"
                      /    "RECORD-COMPLETE"
Top   ToC   RFC6787 - Page 209
recorder-header       =    sensitivity-level
                      /    no-input-timeout
                      /    completion-cause
                      /    completion-reason
                      /    failed-uri
                      /    failed-uri-cause
                      /    record-uri
                      /    media-type
                      /    max-time
                      /    trim-length
                      /    final-silence
                      /    capture-on-speech
                      /    ver-buffer-utterance
                      /    start-input-timers
                      /    new-audio-channel

record-uri            =    "Record-URI" ":" [ "<" uri ">"
                           ";" "size" "=" 1*19DIGIT
                           ";" "duration" "=" 1*19DIGIT] CRLF

media-type            =    "Media-Type" ":" media-type-value CRLF

max-time              =    "Max-Time" ":" 1*19DIGIT CRLF

trim-length           =    "Trim-Length" ":" 1*19DIGIT CRLF

final-silence         =    "Final-Silence" ":" 1*19DIGIT CRLF

capture-on-speech     =    "Capture-On-Speech " ":"
                           BOOLEAN CRLF

; Verifier ABNF

verifier-method       =    "START-SESSION"
                      /    "END-SESSION"
                      /    "QUERY-VOICEPRINT"
                      /    "DELETE-VOICEPRINT"
                      /    "VERIFY"
                      /    "VERIFY-FROM-BUFFER"
                      /    "VERIFY-ROLLBACK"
                      /    "STOP"
                      /    "CLEAR-BUFFER"
                      /    "START-INPUT-TIMERS"
                      /    "GET-INTERMEDIATE-RESULT"

verifier-event        =    "VERIFICATION-COMPLETE"
                      /    "START-OF-INPUT"
Top   ToC   RFC6787 - Page 210
verifier-header       =    repository-uri
                      /    voiceprint-identifier
                      /    verification-mode
                      /    adapt-model
                      /    abort-model
                      /    min-verification-score
                      /    num-min-verification-phrases
                      /    num-max-verification-phrases
                      /    no-input-timeout
                      /    save-waveform
                      /    media-type
                      /    waveform-uri
                      /    voiceprint-exists
                      /    ver-buffer-utterance
                      /    input-waveform-uri
                      /    completion-cause
                      /    completion-reason
                      /    speech-complete-timeout
                      /    new-audio-channel
                      /    abort-verification
                      /    start-input-timers
                      /    input-type

repository-uri        =    "Repository-URI" ":" uri CRLF

voiceprint-identifier        =  "Voiceprint-Identifier" ":"
                                vid *[";" vid] CRLF
vid                          =  1*VCHAR ["." 1*VCHAR]

verification-mode     =    "Verification-Mode" ":"
                           verification-mode-string

verification-mode-string = "train" / "verify"

adapt-model           =    "Adapt-Model" ":" BOOLEAN CRLF

abort-model           =    "Abort-Model" ":" BOOLEAN CRLF

min-verification-score  =  "Min-Verification-Score" ":"
                           [ %x2D ] FLOAT CRLF

num-min-verification-phrases = "Num-Min-Verification-Phrases"
                               ":" 1*19DIGIT CRLF

num-max-verification-phrases = "Num-Max-Verification-Phrases"
                               ":" 1*19DIGIT CRLF
Top   ToC   RFC6787 - Page 211
voiceprint-exists     =    "Voiceprint-Exists" ":"
                           BOOLEAN CRLF

ver-buffer-utterance  =    "Ver-Buffer-Utterance" ":"
                           BOOLEAN CRLF

input-waveform-uri    =    "Input-Waveform-URI" ":" uri CRLF

abort-verification    =    "Abort-Verification " ":"
                           BOOLEAN CRLF

   The following productions add a new SDP session-level attribute.  See
   Paragraph 5.

   cmid-attribute     =    "a=cmid:" identification-tag

   identification-tag =    token

16. XML Schemas

16.1. NLSML Schema Definition

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ietf:params:xml:ns:mrcpv2" xmlns="urn:ietf:params:xml:ns:mrcpv2" elementFormDefault="qualified" attributeFormDefault="unqualified" > <xs:annotation> <xs:documentation> Natural Language Semantic Markup Schema </xs:documentation> </xs:annotation> <xs:include schemaLocation="enrollment-schema.rng"/> <xs:include schemaLocation="verification-schema.rng"/> <xs:element name="result"> <xs:complexType> <xs:sequence> <xs:element name="interpretation" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="instance"> <xs:complexType mixed="true"> <xs:sequence minOccurs="0"> <xs:any namespace="##other" processContents="lax"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="input" minOccurs="0">
Top   ToC   RFC6787 - Page 212
                 <xs:complexType mixed="true">
                   <xs:choice>
                     <xs:element name="noinput" minOccurs="0"/>
                     <xs:element name="nomatch" minOccurs="0"/>
                     <xs:element name="input" minOccurs="0"/>
                   </xs:choice>
                   <xs:attribute name="mode"
                                 type="xs:string"
                                 default="speech"/>
                   <xs:attribute name="confidence"
                                 type="confidenceinfo"
                                 default="1.0"/>
                   <xs:attribute name="timestamp-start"
                                 type="xs:string"/>
                   <xs:attribute name="timestamp-end"
                                 type="xs:string"/>
                 </xs:complexType>
               </xs:element>
             </xs:sequence>
             <xs:attribute name="confidence" type="confidenceinfo"
                           default="1.0"/>
             <xs:attribute name="grammar" type="xs:anyURI"
                           use="optional"/>
           </xs:complexType>
         </xs:element>
         <xs:element name="enrollment-result"
                     type="enrollment-contents"/>
         <xs:element name="verification-result"
                     type="verification-contents"/>
       </xs:sequence>
       <xs:attribute name="grammar" type="xs:anyURI"
                     use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="confidenceinfo">
     <xs:restriction base="xs:float">
        <xs:minInclusive value="0.0"/>
        <xs:maxInclusive value="1.0"/>
     </xs:restriction>
   </xs:simpleType>
 </xs:schema>
Top   ToC   RFC6787 - Page 213

16.2. Enrollment Results Schema Definition

<?xml version="1.0" encoding="UTF-8"?> <!-- MRCP Enrollment Schema (See http://www.oasis-open.org/committees/relax-ng/spec.html) --> <grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="urn:ietf:params:xml:ns:mrcpv2" xmlns="http://relaxng.org/ns/structure/1.0"> <start> <element name="enrollment-result"> <ref name="enrollment-content"/> </element> </start> <define name="enrollment-content"> <interleave> <element name="num-clashes"> <data type="nonNegativeInteger"/> </element> <element name="num-good-repetitions"> <data type="nonNegativeInteger"/> </element> <element name="num-repetitions-still-needed"> <data type="nonNegativeInteger"/> </element> <element name="consistency-status"> <choice> <value>consistent</value> <value>inconsistent</value> <value>undecided</value> </choice> </element> <optional> <element name="clash-phrase-ids"> <oneOrMore> <element name="item"> <data type="token"/> </element> </oneOrMore> </element> </optional> <optional> <element name="transcriptions"> <oneOrMore>
Top   ToC   RFC6787 - Page 214
               <element name="item">
                 <text/>
               </element>
             </oneOrMore>
           </element>
         </optional>
         <optional>
           <element name="confusable-phrases">
             <oneOrMore>
               <element name="item">
                 <text/>
               </element>
             </oneOrMore>
           </element>
         </optional>
       </interleave>
     </define>

   </grammar>

16.3. Verification Results Schema Definition <?xml version="1.0" encoding="UTF-8"?>

<!-- MRCP Verification Results Schema (See http://www.oasis-open.org/committees/relax-ng/spec.html) --> <grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="urn:ietf:params:xml:ns:mrcpv2" xmlns="http://relaxng.org/ns/structure/1.0"> <start> <element name="verification-result"> <ref name="verification-contents"/> </element> </start> <define name="verification-contents"> <element name="voiceprint"> <ref name="firstVoiceprintContent"/> </element> <zeroOrMore> <element name="voiceprint"> <ref name="restVoiceprintContent"/> </element> </zeroOrMore> </define>
Top   ToC   RFC6787 - Page 215
     <define name="firstVoiceprintContent">
       <attribute name="id">
         <data type="string"/>
       </attribute>
       <interleave>
         <optional>
           <element name="adapted">
             <data type="boolean"/>
           </element>
         </optional>
         <optional>
           <element name="needmoredata">
             <ref name="needmoredataContent"/>
           </element>
         </optional>
         <optional>
           <element name="incremental">
             <ref name="firstCommonContent"/>
           </element>
         </optional>
         <element name="cumulative">
           <ref name="firstCommonContent"/>
         </element>
       </interleave>
     </define>

     <define name="restVoiceprintContent">
       <attribute name="id">
         <data type="string"/>
       </attribute>
       <element name="cumulative">
         <ref name="restCommonContent"/>
       </element>
     </define>

     <define name="firstCommonContent">
       <interleave>
         <element name="decision">
           <ref name="decisionContent"/>
         </element>
         <optional>
           <element name="utterance-length">
             <ref name="utterance-lengthContent"/>
           </element>
         </optional>
         <optional>
           <element name="device">
             <ref name="deviceContent"/>
Top   ToC   RFC6787 - Page 216
           </element>
         </optional>
         <optional>
           <element name="gender">
             <ref name="genderContent"/>
           </element>
         </optional>
         <zeroOrMore>
           <element name="verification-score">
             <ref name="verification-scoreContent"/>
           </element>
         </zeroOrMore>
       </interleave>
     </define>

     <define name="restCommonContent">
       <interleave>
         <optional>
           <element name="decision">
             <ref name="decisionContent"/>
           </element>
         </optional>
         <optional>
           <element name="device">
             <ref name="deviceContent"/>
           </element>
         </optional>
         <optional>
           <element name="gender">
             <ref name="genderContent"/>
           </element>
         </optional>
        <zeroOrMore>
           <element name="verification-score">
             <ref name="verification-scoreContent"/>
           </element>
        </zeroOrMore>
        </interleave>
     </define>

     <define name="decisionContent">
       <choice>
         <value>accepted</value>
         <value>rejected</value>
         <value>undecided</value>
       </choice>
     </define>
Top   ToC   RFC6787 - Page 217
     <define name="needmoredataContent">
       <data type="boolean"/>
     </define>

     <define name="utterance-lengthContent">
       <data type="nonNegativeInteger"/>
     </define>

     <define name="deviceContent">
       <choice>
         <value>cellular-phone</value>
         <value>electret-phone</value>
         <value>carbon-button-phone</value>
         <value>unknown</value>
       </choice>
     </define>

     <define name="genderContent">
       <choice>
         <value>male</value>
         <value>female</value>
         <value>unknown</value>
       </choice>
     </define>

     <define name="verification-scoreContent">
       <data type="float">
         <param name="minInclusive">-1</param>
         <param name="maxInclusive">1</param>
       </data>
     </define>

   </grammar>
Top   ToC   RFC6787 - Page 218

17. References

17.1. Normative References

[ISO.8859-1.1987] International Organization for Standardization, "Information technology - 8-bit single byte coded graphic - character sets - Part 1: Latin alphabet No. 1, JTC1/ SC2", ISO Standard 8859-1, 1987. [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981. [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, November 1987. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming Protocol (RTSP)", RFC 2326, April 1998. [RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource Locators", RFC 2392, August 1998. [RFC2483] Mealling, M. and R. Daniel, "URI Resolution Services Necessary for URN Resolution", RFC 2483, January 1999. [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.
Top   ToC   RFC6787 - Page 219
   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, November 2003.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              January 2004.

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, March 2004.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, January 2005.

   [RFC4145]  Yon, D. and G. Camarillo, "TCP-Based Media Transport in
              the Session Description Protocol (SDP)", RFC 4145,
              September 2005.

   [RFC4288]  Freed, N. and J. Klensin, "Media Type Specifications and
              Registration Procedures", BCP 13, RFC 4288, December 2005.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC4568]  Andreasen, F., Baugher, M., and D. Wing, "Session
              Description Protocol (SDP) Security Descriptions for Media
              Streams", RFC 4568, July 2006.

   [RFC4572]  Lennox, J., "Connection-Oriented Media Transport over the
              Transport Layer Security (TLS) Protocol in the Session
              Description Protocol (SDP)", RFC 4572, July 2006.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

   [RFC5322]  Resnick, P., Ed., "Internet Message Format", RFC 5322,
              October 2008.

   [RFC5646]  Phillips, A. and M. Davis, "Tags for Identifying
              Languages", BCP 47, RFC 5646, September 2009.
Top   ToC   RFC6787 - Page 220
   [RFC5888]  Camarillo, G. and H. Schulzrinne, "The Session Description
              Protocol (SDP) Grouping Framework", RFC 5888, June 2010.

   [RFC5905]  Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network
              Time Protocol Version 4: Protocol and Algorithms
              Specification", RFC 5905, June 2010.

   [RFC5922]  Gurbani, V., Lawrence, S., and A. Jeffrey, "Domain
              Certificates in the Session Initiation Protocol (SIP)",
              RFC 5922, June 2010.

   [RFC6265]  Barth, A., "HTTP State Management Mechanism", RFC 6265,
              April 2011.

   [W3C.REC-semantic-interpretation-20070405]
              Tichelen, L. and D. Burke, "Semantic Interpretation for
              Speech Recognition (SISR) Version 1.0", World Wide Web
              Consortium Recommendation REC-semantic-
              interpretation-20070405, April 2007,
              <http://www.w3.org/TR/2007/
              REC-semantic-interpretation-20070405>.

   [W3C.REC-speech-grammar-20040316]
              McGlashan, S. and A. Hunt, "Speech Recognition Grammar
              Specification Version 1.0", World Wide Web Consortium
              Recommendation REC-speech-grammar-20040316, March 2004,
              <http://www.w3.org/TR/2004/REC-speech-grammar-20040316>.

   [W3C.REC-speech-synthesis-20040907]
              Walker, M., Burnett, D., and A. Hunt, "Speech Synthesis
              Markup Language (SSML) Version 1.0", World Wide Web
              Consortium Recommendation REC-speech-synthesis-20040907,
              September 2004,
              <http://www.w3.org/TR/2004/REC-speech-synthesis-20040907>.

   [W3C.REC-xml-names11-20040204]
              Layman, A., Bray, T., Hollander, D., and R. Tobin,
              "Namespaces in XML 1.1", World Wide Web Consortium First
              Edition REC-xml-names11-20040204, February 2004,
              <http://www.w3.org/TR/2004/REC-xml-names11-20040204>.

17.2. Informative References

[ISO.8601.1988] International Organization for Standardization, "Data elements and interchange formats - Information interchange - Representation of dates and times", ISO Standard 8601, June 1988.
Top   ToC   RFC6787 - Page 221
   [Q.23]     International Telecommunications Union, "Technical
              Features of Push-Button Telephone Sets", ITU-T Q.23, 1993.

   [RFC2046]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part Two: Media Types", RFC 2046,
              November 1996.

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC4217]  Ford-Hutchinson, P., "Securing FTP with TLS", RFC 4217,
              October 2005.

   [RFC4267]  Froumentin, M., "The W3C Speech Interface Framework Media
              Types: application/voicexml+xml, application/ssml+xml,
              application/srgs, application/srgs+xml, application/
              ccxml+xml, and application/pls+xml", RFC 4267,
              November 2005.

   [RFC4301]  Kent, S. and K. Seo, "Security Architecture for the
              Internet Protocol", RFC 4301, December 2005.

   [RFC4313]  Oran, D., "Requirements for Distributed Control of
              Automatic Speech Recognition (ASR), Speaker
              Identification/Speaker Verification (SI/SV), and Text-to-
              Speech (TTS) Resources", RFC 4313, December 2005.

   [RFC4395]  Hansen, T., Hardie, T., and L. Masinter, "Guidelines and
              Registration Procedures for New URI Schemes", BCP 35,
              RFC 4395, February 2006.

   [RFC4463]  Shanmugham, S., Monaco, P., and B. Eberman, "A Media
              Resource Control Protocol (MRCP) Developed by Cisco,
              Nuance, and Speechworks", RFC 4463, April 2006.

   [RFC4467]  Crispin, M., "Internet Message Access Protocol (IMAP) -
              URLAUTH Extension", RFC 4467, May 2006.

   [RFC4733]  Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF
              Digits, Telephony Tones, and Telephony Signals", RFC 4733,
              December 2006.

   [RFC4960]  Stewart, R., "Stream Control Transmission Protocol",
              RFC 4960, September 2007.

   [RFC6454]  Barth, A., "The Web Origin Concept", RFC 6454,
              December 2011.
Top   ToC   RFC6787 - Page 222
   [W3C.REC-emma-20090210]
              Johnston, M., Baggia, P., Burnett, D., Carter, J., Dahl,
              D., McCobb, G., and D. Raggett, "EMMA: Extensible
              MultiModal Annotation markup language", World Wide Web
              Consortium Recommendation REC-emma-20090210,
              February 2009,
              <http://www.w3.org/TR/2009/REC-emma-20090210>.

   [W3C.REC-pronunciation-lexicon-20081014]
              Baggia, P., Bagshaw, P., Burnett, D., Carter, J., and F.
              Scahill, "Pronunciation Lexicon Specification (PLS)",
              World Wide Web Consortium Recommendation
              REC-pronunciation-lexicon-20081014, October 2008,
              <http://www.w3.org/TR/2008/
              REC-pronunciation-lexicon-20081014>.

   [W3C.REC-voicexml20-20040316]
              Danielsen, P., Porter, B., Hunt, A., Rehor, K., Lucas, B.,
              Burnett, D., Ferrans, J., Tryphonas, S., McGlashan, S.,
              and J. Carter, "Voice Extensible Markup Language
              (VoiceXML) Version 2.0", World Wide Web Consortium
              Recommendation REC-voicexml20-20040316, March 2004,
              <http://www.w3.org/TR/2004/REC-voicexml20-20040316>.

   [refs.javaSpeechGrammarFormat]
              Sun Microsystems, "Java Speech Grammar Format Version
              1.0", October 1998.
Top   ToC   RFC6787 - Page 223

Appendix A. Contributors

Pierre Forgues Nuance Communications Ltd. 1500 University Street Suite 935 Montreal, Quebec Canada H3A 3S7 EMail: forgues@nuance.com Charles Galles Intervoice, Inc. 17811 Waterview Parkway Dallas, Texas 75252 USA EMail: charles.galles@intervoice.com Klaus Reifenrath Scansoft, Inc Guldensporenpark 32 Building D 9820 Merelbeke Belgium EMail: klaus.reifenrath@scansoft.com

Appendix B. Acknowledgements

Andre Gillet (Nuance Communications) Andrew Hunt (ScanSoft) Andrew Wahbe (Genesys) Aaron Kneiss (ScanSoft) Brian Eberman (ScanSoft) Corey Stohs (Cisco Systems, Inc.) Dave Burke (VoxPilot) Jeff Kusnitz (IBM Corp) Ganesh N. Ramaswamy (IBM Corp) Klaus Reifenrath (ScanSoft) Kristian Finlator (ScanSoft) Magnus Westerlund (Ericsson) Martin Dragomirecky (Cisco Systems, Inc.) Paolo Baggia (Loquendo) Peter Monaco (Nuance Communications) Pierre Forgues (Nuance Communications)
Top   ToC   RFC6787 - Page 224
   Ran Zilca (IBM Corp)
   Suresh Kaliannan (Cisco Systems, Inc.)
   Skip Cave (Intervoice, Inc.)
   Thomas Gal (LumenVox)

   The chairs of the SPEECHSC work group are Eric Burger (Georgetown
   University) and Dave Oran (Cisco Systems, Inc.).

   Many thanks go in particular to Robert Sparks, Alex Agranovsky, and
   Henry Phan, who were there at the end to dot all the i's and cross
   all the t's.

Authors' Addresses

Daniel C. Burnett Voxeo 189 South Orange Avenue #1000 Orlando, FL 32801 USA EMail: dburnett@voxeo.com Saravanan Shanmugham Cisco Systems, Inc. 170 W. Tasman Dr. San Jose, CA 95134 USA EMail: sarvi@cisco.com