|
|
|
|
|
|
ABNF Grammar for MSRP -- Message Session Relay Protocol
|
This page documents the ABNF (Augmented Backus-Naur Form) definitions for MSRP
text messages, defined in
[RFC 4975] and
[RFC 4976].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| transact-id | = |
ident
|
| comment | = |
utf8text
|
| continuation-flag | = |
"+"
/ "$"
/ "#"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##
##
##
##
##
##
##
##
##
##
##
##
##
##
## |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| Success-Report | = |
"Success-Report:"
( "yes"
/ "no" )
|
|
|
|
|
|
|
|
| | |
| Failure-Report | = |
"Failure-Report:"
( "yes"
/ "no"
/ "partial" )
|
|
|
|
|
|
|
|
| | |
| Byte-Range | = |
"Byte-Range:"
SP range-start
"-"
range-end
"/"
total
|
| range-start | = |
1*DIGIT
|
| range-end | = |
1*DIGIT
/ "*"
|
| total | = |
1*DIGIT
/ "*"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| Min-Expires | = |
"Min-Expires:" SP 1*DIGIT
|
|
|
|
|
|
|
|
| | |
| Max-Expires | = |
"Max-Expires:" SP 1*DIGIT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| WWW-Authenticate | = |
"WWW-Authenticate:"
SP "Digest"
SP digest-param
*(","
SP digest-param)
|
| digest-param | = |
( realm
/ nonce
/ [ opaque ]
/ [ stale ]
/ [ algorithm ]
/ qop-options
/ [ auth-param ] )
|
| realm | = |
"realm="
realm-value
|
| realm-value | = |
quoted-string
|
| nonce | = |
"nonce="
nonce-value
|
| nonce-value | = |
quoted-string
|
| opaque | = |
"opaque="
quoted-string
|
| stale | = |
"stale="
( "true"
/ "false" )
|
| algorithm | = |
"algorithm="
( "MD5"
/ token )
|
| qop-options | = |
"qop="
QUOTE
qop-list
QUOTE
|
| qop-list | = |
qop-value
*( ","
qop-value )
|
| qop-value | = |
"auth"
/ token
|
| auth-param | = |
token
"="
( token
/ quoted-string )
|
|
|
|
|
|
|
|
| | |
| Authorization | = |
"Authorization:"
SP credentials
|
| credentials | = |
"Digest"
SP digest-response
*( ","
SP digest-response)
|
| digest-response | = |
( username
/ realm
/ nonce
/ response
/ [ algorithm ]
/ cnonce
/ [ opaque ]
/ message-qop
/ [ nonce-count ]
/ [ auth-param ] )
|
| username | = |
"username="
username-value
|
| username-value | = |
quoted-string
|
| response | = |
"response="
request-digest
|
| request-digest | = |
QUOTE
32LHEX
QUOTE
|
| cnonce | = |
"cnonce="
cnonce-value
|
| cnonce-value | = |
nonce-value
|
| message-qop | = |
"qop="
qop-value
|
| nonce-count | = |
"nc="
nc-value
|
| nc-value | = |
8LHEX
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| content-stuff | = |
*(Other-Mime-header CRLF)
Content-Type 2CRLF
data CRLF
|
| Content-Type | = |
"Content-Type:"
SP media-type
|
| media-type | = |
type
"/"
subtype
*( ";"
gen-param )
|
| type | = |
token
|
| subtype | = |
token
|
| gen-param | = |
pname
[ "="
pval ]
|
| pname | = |
token
|
| pval | = |
token /
quoted-string
|
| data | = |
*OCTET
|
| Other-Mime-header | = |
(Content-ID
/ Content-Description
/ Content-Disposition
/ MIME-extension-field)
; Content-ID, and Content-Description are defined in
RFC 2045
; Content-Disposition is defined in RFC 2183
|
| Content-ID | = |
"Content-ID:"
msg-id
|
| Content-Description | = |
"Content-Description:"
*text
|
| Content-Disposition | = |
"Content-Disposition:"
disposition-type
*(";"
disposition-parm)
|
| disposition-type | = |
"inline"
/ "attachment"
/ extension-token
; values are not case-sensitive
|
| extension-token | = |
ietf-token
/ x-token
|
| ietf-token | = |
<An extension token defined by a standards-track RFC and registered with IANA>
|
| x-token | = |
<The two characters "X-" or "x-" followed, with no intervening white space, by any token>
|
| disposition-parm | = |
filename-parm
/ creation-date-parm
/ modification-date-parm
/ read-date-parm
/ size-parm
/ parameter
|
| filename-parm | = |
"filename="
value
|
| creation-date-parm | = |
"creation-date="
quoted-date-time
|
| modification-date-parm | = |
"modification-date="
quoted-date-time
|
| read-date-parm | = |
"read-date="
quoted-date-time
|
| size-parm | = |
"size=" 1*DIGIT
|
| parameter | = |
attribute
"="
value
|
| attribute | = |
token
; Matching of attributes
; is ALWAYS case-insensitive
|
| value | = |
token
/ quoted-string
|
| token | = |
1*
<any (US-ASCII) CHAR except SPACE, CTLs, or tspecials>
|
| tspecials | = |
"("
/ ")"
/ "<"
/ ">"
/ "@"
/ ","
/ ";"
/ ":"
/ "\"
/ <">
/ "/"
/ "["
/ "]"
/ "?"
/ "="
; Must be in quoted-string,
; to use within parameter values
|
| quoted-date-time | = |
quoted-string
; contents MUST be an RFC 822 'date-time'
; numeric timezones (+HHMM or -HHMM) MUST be used
|
| MIME-extension-field | = |
<Any RFC 822 header field which begins with the string "Content-">
; MIME-extension-field indicates additional MIME extension
; header fields as described in
RFC 2045
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| MSRP-URI | = |
msrp-scheme
"://"
authority
["/"
session-id]
";"
transport
*( ";"
URI-parameter)
|
| msrp-scheme | = |
"msrp"
/ "msrps"
|
| session-id | = |
1*( unreserved /
"+"
/ "="
/ "/" )
|
| transport | = |
"tcp" / 1*ALPHANUM
|
| URI-parameter | = |
token
["="
token]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
; 200 |
Success
|
| |
; 400 |
Unintelligible
|
| |
; 401 |
Unauthorized
|
| |
; 403 |
Action-not-allowed
|
| |
; 408 |
Transaction-did-not-complete-in-allotted-time
|
| |
; 413 |
Stop-sending-message
|
| |
; 415 |
MIME-not-understood
|
| |
; 423 |
Parameter-out-of-bounds
|
| |
; 481 |
Session-does-not-exist
|
| |
; 501 |
Request-method-not-understood
|
| |
; 506 |
Session-already-in-use
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| ident | = |
ALPHANUM 3*31ident-char
|
| ident-char | = |
ALPHANUM
/ "."
/ "-"
/ "+"
/ "%"
/ "="
|
| utf8text | = |
*(HTAB / %x20-7E / UTF8-NONASCII)
|
| 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
|
| token | = |
1*(%x21 / %x23-27 / %x2A-2B / %x2D-2E
/ %x30-39 / %x41-5A / %x5E-7E)
; token is compared case-insensitive
|
| quoted-string | = |
DQUOTE *(qdtext
/ qd-esc) DQUOTE
|
| qdtext | = |
SP / HTAB / %x21 / %x23-5B / %x5D-7E / UTF8-NONASCII
|
| qd-esc | = |
(BACKSLASH BACKSLASH)
/ (BACKSLASH DQUOTE)
|
| BACKSLASH | = |
"\"
|
| UPALPHA | = |
%x41-5A
|
| ALPHANUM | = |
ALPHA / DIGIT
|
| QUOTE | = |
%x22
|
| LHEX | = |
DIGIT / %x61-66
; lowercase a-f
|
|
|
|
|
|
|
|