(Logo Tech-invite)  

a Portal devoted to SIP and Security technologies

  (World Map)    
    Search Home Site Map Contact
 SIP/IMS Standardization
> IETF Standardization Process
> RFCs related to SIP (4 p.) o
> SIP-SIPPING-SIMPLE... I-Ds (22 p.) o
> Audio-Video Transport RFCs (2 p.)
> 3GPP Specifications (12 p.)
> OMA Specifications related to SIP
> TISPAN NGN Specifications (3 p.) o
> SIP Topics
> IMS Topics
 SIP/IMS Call Flows
> RFC3261's Example
> Basic -- RFC3665
> SIP PSTN -- RFC3666 (3 p.)
> SIP Service Examples (19 p.)
> IMS Signaling Flows (35 p.)
 SIP/IMS Architecture
> SIP Protocol Structure
> Dialogs & Routing
> UMTS Network Evolution
 Security
> PKIX-TLS-SMIME... Standards (20 p.) o
> Cryptography Basics
> ASN.1 for PKI Certificate & CRL Profile
> ASN.1 for CMS
> RFC3280's Certificate Examples (4)
> RFC4134's CMS-S/MIME Examples (14)
> RFC4474's SIP Authentication Service
> SSL/TLS Time-Diagrams
> IPSec Guides
 ABNF Grammars
> ABNF Notation & Rules
> URI Generic Syntax
> ABNF for SIP
> SIP Messages & URIs
> SIP Header Fields
> MIME Media Types
> ABNF for SDP
> ABNF for MSRP
> ABNF for MRCPv2
> ABNF for RTSP 2.0
> Internet Message Format
 DiffServ CoS Simulation
> IPVCoSS Simulator
> IP-VPN Case Study
  o (daily updated)

ABNF Grammar for MRCPv2
-- Media Resource Control Protocol version 2

This page documents the ABNF (Augmented Backus-Naur Form) definitions for MRCPv2 text messages, defined in
[draft-ietf-speechsc-mrcpv2].

Navigation Tip: ABNF non-basic rules (not defined in RFC 5234) that are used in a rule definition, and that are not defined under the same banner, have a link (color: red) to the banner under which they are defined, within this page or in another page.

Top  Generic  Synthesizer  Recognizer  Recorder  Verifier  Common Headers  URI  Common Rules

MRCPv2 Messages

generic-message= start-line   message-header   CRLF
[ message-body ]
 
start-line= request-line   /   status-line   /   event-line
 
message-header= 1* (generic-header / resource-header)
 
resource-header=     synthesizer-header
/   recognizer-header
/   recorder-header
/   verifier-header
 
message-body= *OCTET
 
request-line= mrcp-version   SP   message-length   SP   method-name
SP   request-id   CRLF
 
status-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
 
mrcp-version= "MRCP"   "/"   1*2DIGIT   "."   1*2DIGIT
 
message-length= 1*19DIGIT
 
method-name=     generic-method
/   synthesizer-method
/   recognizer-method
/   recorder-method
/   verifier-method
 
request-id= 1*19DIGIT
 
status-code= 3DIGIT
 
request-state=     "COMPLETE"
/   "IN-PROGRESS"
/   "PENDING"
 
event-name=     synthesizer-event
/   recognizer-event
/   recorder-event
/   verifier-event
 
generic-method   Up Top
## generic-method ## synthesizer-method ## recognizer-method ## recorder-method ## verifier-method ## 
generic-method=     "SET-PARAMS"
/   "GET-PARAMS"
 
generic-header   Up Top
## generic-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
/   set-cookie2
/   vendor-specific
 
Channel-Identifier   Up Top
channel-identifier= "Channel-Identifier"   ":"
channel-id
CRLF
 
channel-id= 1*alphanum   "@"   1*alphanum
 
Accept   Up Top
Note: as defined in RFC 2616, section section-14.1.
accept= "Accept"   ":"
*( media-range   [ accept-params ] )
 
media-range= ( "*/*"
/   ( type   "/"   "*" )
/   ( type   "/"   subtype )
)   *(   ";"   parameter )
 
accept-params= ";"   "q"   "="   qvalue   *( accept-extension )
 
accept-extension= ";"   token   [ "="   ( token   /   quoted-string ) ]
 
Active-Request-Id-List   Up Top
active-request-id-list= "Active-Request-Id-List"   ":"
request-id   *(","   request-id)
CRLF
 
Proxy-Sync-Id   Up Top
proxy-sync-id= "Proxy-Sync-Id"   ":"
1*VCHAR
CRLF
 
Accept-Charset   Up Top
Note: as defined in RFC 2616, section section-14.2.
Content-Type   Up Top
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-Id   Up Top
Note: as defined in RFC 2392, RFC 2046, and RFC 2822.
Content-Base   Up Top
content-base= "Content-Base"   ":"
absoluteURI
CRLF
 
Content-Encoding   Up Top
content-encoding= "Content-Encoding"   ":"
*WSP   content-coding
  *(*WSP   ","   *WSP   content-coding   *WSP )
CRLF
 
content-coding= token
 
Content-Location   Up Top
content-location= "Content-Location"   ":"
( absoluteURI / relativeURI )
CRLF
 
Content-Length   Up Top
content-length= "Content-Length"   ":"
1*19DIGIT
CRLF
 
Fetch-Timeout   Up Top
fetch-timeout= "Fetch-Timeout"   ":"
1*19DIGIT
CRLF
 
Cache-Control   Up Top
cache-control= "Cache-Control"   ":"
[ *WSP   cache-directive
*( *WSP   ","   *WSP   cache-directive   *WSP ) ]
CRLF
 
cache-directive=   "max-age" "=" delta-seconds
/ "max-stale" [ "=" delta-seconds ]
/ "min-fresh" "=" delta-seconds
 
Logging-Tag   Up Top
logging-tag= "Logging-Tag"   ":"
1*UTFCHAR
CRLF
 
Set-Cookie   Up Top
set-cookie= "Set-Cookie:"
cookies
CRLF
 
cookies= cookie   *( ","   *LWS   cookie )
cookie= attribute   "="   value *( ";"   cookie-av )
cookie-av=     "Comment"   "="   value
/   "Domain"   "="   value
/   "Max-Age"   "="   value
/   "Path"   "="   value
/   "Secure"
/   "Version"   "="   1*19DIGIT
/   "Age"   "="   delta-seconds
 
Set-Cookie2   Up Top
set-cookie2= "Set-Cookie2:"
cookies2
CRLF
 
cookies2= cookie2   *( ","   *LWS   cookie2)
cookie2= attribute   "="   value *( ";"   cookie-av2)
cookie-av2=     "Comment"   "="   value
/   "CommentURL"   "="   DQUOTE   uri   DQUOTE
/   "Discard"
/   "Domain"   "="   value
/   "Max-Age"   "="   value
/   "Path"   "="   value
/   "Port"   [ "="   DQUOTE   portlist   DQUOTE ]
/   "Secure"
/   "Version"   "="   1*19DIGIT
/   "Age"   "="   delta-seconds
portlist= portnum   *( ","   *LWS   portnum )
portnum= 1*19DIGIT
 
Vendor-Specific-Parameters   Up Top
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
 
Top  Generic  Synthesizer  Recognizer  Recorder  Verifier  Common Headers  URI  Common Rules

MRCPv2 Speech Synthesizer Resource

synthesizer-method   Up Top
## generic-method ## synthesizer-method ## recognizer-method ## recorder-method ## verifier-method ## 
synthesizer-method=     "SPEAK"
/   "STOP"
/   "PAUSE"
/   "RESUME"
/   "BARGE-IN-OCCURRED"
/   "CONTROL"
/   "DEFINE-LEXICON"
 
synthesizer-event   Up Top
## synthesizer-event ## recognizer-event ## recorder-event ## verifier-event ## 
synthesizer-event=     "SPEECH-MARKER"
/   "SPEAK-COMPLETE"
 
synthesizer-header   Up Top
## generic-header ## synthesizer-header ## recognizer-header ## recorder-header ## verifier-header ## 
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   Up Top
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   Up Top
kill-on-barge-in= "Kill-On-Barge-In"   ":"
BOOLEAN
CRLF
 
Speaker-Profile   Up Top
speaker-profile= "Speaker-Profile"   ":"
absoluteURI
CRLF
 
voice-parameter   Up Top
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   Up Top
prosody-parameter= "Prosody-"   prosody-param-name   ":"
[prosody-param-value]
CRLF
 
prosody-param-name= 1*VCHAR
prosody-param-value= 1*VCHAR
 
Speech-Marker   Up Top
speech-marker= "Speech-Marker"   ":"
timestamp
[ ";"   1*(UTFCHAR   /   %x20) ]
CRLF
 
timestamp= "timestamp"   "="   time-stamp-value
time-stamp-value= 1*20DIGIT
 
Fetch-Hint   Up Top
fetch-hint= "Fetch-Hint"   ":"
1*ALPHA
CRLF
 
Audio-Fetch-Hint   Up Top
audio-fetch-hint= "Audio-Fetch-Hint"   ":"
1*ALPHA
CRLF
 
Speak-Restart   Up Top
speak-restart= "Speak-Restart"   ":"
BOOLEAN
CRLF
 
Speak-Length   Up Top
speak-length= "Speak-Length"   ":"
positive-length-value
CRLF
 
positive-length-value=     positive-speech-length
/   text-speech-length
 
Load-Lexicon   Up Top
load-lexicon= "Load-Lexicon"   ":"
BOOLEAN
CRLF
 
Lexicon-Search-Order   Up Top
lexicon-search-order= "Lexicon-Search-Order"   ":"
"<"   absoluteURI   ">"   *( " "   "<"   absoluteURI   ">" )
CRLF
 
Top  Generic  Synthesizer  Recognizer  Recorder  Verifier  Common Headers  URI  Common Rules

MRCPv2 Speech Recognizer Resource

recognizer-method   Up Top
## generic-method ## synthesizer-method ## recognizer-method ## recorder-method ## verifier-method ## 
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   Up Top
## synthesizer-event ## recognizer-event ## recorder-event ## verifier-event ## 
recognizer-event=     "START-OF-INPUT"
/   "RECOGNITION-COMPLETE"
/   "INTERPRETATION-COMPLETE"
 
recognizer-header   Up Top
## generic-header ## synthesizer-header ## recognizer-header ## recorder-header ## verifier-header ## 
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
/   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   Up Top
confidence-threshold= "Confidence-Threshold"   ":"
FLOAT
CRLF
 
Speed-Vs-Accuracy   Up Top
speed-vs-accuracy= "Speed-Vs-Accuracy"   ":"
FLOAT
CRLF
 
N-Best-List-Length   Up Top
n-best-list-length= "N-Best-List-Length"   ":"
1*19DIGIT
CRLF
 
Recognition-Timeout   Up Top
recognition-timeout= "Recognition-Timeout"   ":"
1*19DIGIT
CRLF
 
Recognizer-Context-Block   Up Top
recognizer-context-block= "Recognizer-Context-Block"   ":"
[1*VCHAR]
CRLF
 
Speech-Incomplete-Timeout   Up Top
speech-incomplete-timeout= "Speech-Incomplete-Timeout"   ":"
1*19DIGIT
CRLF
 
DTMF-Interdigit-Timeout   Up Top
dtmf-interdigit-timeout= "DTMF-Interdigit-Timeout"   ":"
1*19DIGIT
CRLF
 
DTMF-Term-Timeout   Up Top
dtmf-term-timeout= "DTMF-Term-Timeout"   ":"
1*19DIGIT
CRLF
 
DTMF-Term-Char   Up Top
dtmf-term-char= "DTMF-Term-Char"   ":"
VCHAR
CRLF
 
Recognition-Mode   Up Top
recognition-mode= "Recognition-Mode"   ":"
1*ALPHA
CRLF
 
Cancel-If-Queue   Up Top
cancel-if-queue= "Cancel-If-Queue"   ":"
BOOLEAN
CRLF
 
Hotword-Max-Duration   Up Top
hotword-max-duration= "Hotword-Max-Duration"   ":"
1*19DIGIT
CRLF
 
Hotword-Min-Duration   Up Top
hotword-min-duration= "Hotword-Min-Duration"   ":"
1*19DIGIT
CRLF
 
Interpret-Text   Up Top
interpret-text= "Interpret-Text"   ":"
1*VCHAR
CRLF
 
DTMF-Buffer-Time   Up Top
dtmf-buffer-time= "DTMF-Buffer-Time"   ":"
1*19DIGIT
CRLF
 
Clear-DTMF-Buffer   Up Top
clear-dtmf-buffer= "Clear-DTMF-Buffer"   ":"
BOOLEAN
CRLF
 
Early-No-Match   Up Top
early-no-match= "Early-No-Match"   ":"
BOOLEAN
CRLF
 
Num-Min-Consistent-Pronunciations   Up Top
num-min-consistent-pronunciations= "Num-Min-Consistent-Pronunciations"   ":"
1*19DIGIT
CRLF
 
Consistency-Threshold   Up Top
consistency-threshold= "Consistency-Threshold"   ":"
FLOAT
CRLF
 
Clash-Threshold   Up Top
clash-threshold= "Clash-Threshold"   ":"
FLOAT
CRLF
 
Personal-Grammar-URI   Up Top
personal-grammar-uri= "Personal-Grammar-URI"   ":"
uri
CRLF
 
Enroll-Utterance   Up Top
enroll-utterance= "Enroll-Utterance"   ":"
BOOLEAN
CRLF
 
Phrase-ID   Up Top
phrase-id= "Phrase-ID"   ":"
1*VCHAR
CRLF
 
Phrase-NL   Up Top
phrase-nl= "Phrase-NL"   ":"
1*UTFCHAR
CRLF
 
Weight   Up Top
weight= "Weight"   ":"
weight-value
CRLF
 
weight-value= FLOAT
 
Save-Best-Waveform   Up Top
save-best-waveform= "Save-Best-Waveform"   ":"
BOOLEAN
CRLF
 
New-Phrase-ID   Up Top
new-phrase-id= "New-Phrase-ID"   ":"
1*VCHAR
CRLF
 
Confusable-Phrases-URI   Up Top
confusable-phrases-uri= "Confusable-Phrases-URI"   ":"
uri
CRLF
 
Abort-Phrase-Enrollment   Up Top
abort-phrase-enrollment= "Abort-Phrase-Enrollment"   ":"
BOOLEAN
CRLF
 
Top  Generic  Synthesizer  Recognizer  Recorder  Verifier  Common Headers  URI  Common Rules

MRCPv2 Speech Recorder Resource

recorder-method   Up Top
## generic-method ## synthesizer-method ## recognizer-method ## recorder-method ## verifier-method ## 
recorder-method=     "RECORD"
/   "STOP"
 
recorder-event   Up Top
## synthesizer-event ## recognizer-event ## recorder-event ## verifier-event ## 
recorder-event=     "START-OF-INPUT"
/   "RECORD-COMPLETE"
 
recorder-header   Up Top
## generic-header ## synthesizer-header ## recognizer-header ## recorder-header ## verifier-header ## 
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
/   new-audio-channel
/   start-input-timers
/   input-type
 
Record-URI   Up Top
record-uri= "Record-URI"   ":"
[  "<"   uri   ">"
  ";"   "size"   "="   1*19DIGIT
  ";"   "duration"   "="   1*19DIGIT   ]
CRLF
 
Max-Time   Up Top
max-time= "Max-Time"