Tech-invite3GPPspaceIETFspace

ABNF for SDP — Session Description

RFC 4566 – Section 5 (spec) —  Section 9 (grammar)
session-description =
proto-version
; "v="  protocol version
origin-field
; "o="  originator and session identifier
session-name-field
; "s="  session name
information-field
; "i="  session information (OPTIONAL)
uri-field
; "u="  URI of description (OPTIONAL)
email-fields
; "e="  email address (OPTIONAL)
phone-fields
; "p="  phone number (OPTIONAL)
connection-field
; "c="  connection information (OPTIONAL)
bandwidth-fields
; "b="  zero or more bandwidth information lines (OPTIONAL)
time-fields
; one or more time descriptions
; "t="  time the session is active
; "r="  zero or more repeat times (OPTIONAL)
; "z="  time zone adjustments (OPTIONAL)
key-field
; "k="  encryption key (OPTIONAL)
attribute-fields
; "a="  zero or more session attribute lines (OPTIONAL)
media-descriptions
; zero or more media descriptions
; "m="  media name and transport address
; "i="  media title (OPTIONAL)
; "c="  connection information (OPTIONAL)
; "b="  zero or more bandwidth information lines (OPTIONAL)
; "k="  encryption key (OPTIONAL)
; "a="  zero or more media attribute lines (OPTIONAL)

Top


v=0
o=alice  2890844526  2890844526  IN  IP4  host.atlanta.example.com
s=
c=IN  IP4  host.atlanta.example.com
t=0  0
m=audio  49170  RTP/AVP  0  8  97
a=rtpmap:0  PCMU/8000
a=rtpmap:8  PCMA/8000
a=rtpmap:97  iLBC/8000
m=video  51372  RTP/AVP  31  32
a=rtpmap:31  H261/90000
a=rtpmap:32  MPV/90000

Top



proto-version =
%x76   "="  1*DIGITCRLF

Top



origin-field =
%x6f   "="  usernameSPsess‑idSPsess‑versionSPnettypeSPaddrtypeSPunicast‑addressCRLF
Top
username =
Up
sess-id =
1*DIGIT
Up
sess-version =
1*DIGIT
Up
nettype =
token

; Network Type
; → IANA
; IN
; → RFC 4566Section 8.2.6
; TN
; → RFC 2848Section 3.4.1
; ATM
; → RFC 3108Section 9
; PSTN
; → RFC 7195Section 8.2

Up
addrtype =
token

; Address Type
; → IANA
; IP4,  IP6
; → RFC 4566Section 8.2.7
; NSAP,  GWID,  E164
; → RFC 3108Section 9
; E164
; → RFC 7195Section 8.3

Up

Top



session-name-field =
%x73   "="  textCRLF

Top



information-field =
[ %x69   "=" textCRLF ]

Up

Top



uri-field =
[ %x75   "=" uriCRLF]
Top
uri =
Up
Up

Top



email-fields =
*( %x65   "="  email‑addressCRLF )
Top
email-address =
Up
address-and-comment =
addr‑spec  1*SP  "("  1*email‑safe  ")"
Up
dispname-and-address =
1*email‑safe  1*SP  "<"  addr‑spec  ">"
Up

Top



phone-fields =
*( %x70   "="  phone‑numberCRLF )
Top
phone-number =
phone  *SP  "("  1*email‑safe  ")" /  1*email‑safe  "<"  phone  ">" /  phone
Up
phone =
[ "+" ]  DIGIT  1*( SP /  "-" /  DIGIT )
Up

Top



Top



bandwidth-fields =
*( %x62   "="  bwtype  ":"  bandwidthCRLF )
Top
Up
bwtype =
token

; Bandwidth Type
; → IANA
; "CT"  Conference Total
; "AS"  Application Specific
; → RFC 4566 – Section 5.8
; "RS"  RTCP for Senders
; "RR"  RTCP for Receivers
; → RFC 3556Section 2
; "TIAS"  Transport Independent Application Specific
; → RFC 3890Section 6.2.2

Up
bandwidth =
1*DIGIT
Up

Top



time-fields =
1*( %x74   "="  start‑timeSPstop‑time  *( CRLFrepeat‑fields )  CRLF)  [ zone‑adjustmentsCRLF ]
Top
start-time =
time /  "0"
Up
stop-time =
time /  "0"
Up
time =
Up
Up
repeat-fields =
%x72   "="  repeat‑intervalSPtyped‑time  1*( SPtyped‑time )
Up
repeat-interval =
Up
typed-time =
Up
Up
fixed-len-time-unit =
"d" /  "h" /  "m" /  "s"
Up
zone-adjustments =
%x7a   "="  timeSP  [ "-" ]  typed‑time  *( SPtimeSP  [ "-" ]  typed‑time )
Up

Top



key-field =
[ %x6b   "="  key‑typeCRLF ]
Top
Up
key-type =
"prompt" /  "clear:"  text /  "base64:"  base64 /  "uri:"  uri
Up
base64 =
Up
base64-unit =
Up
base64-pad =
2base64‑char  "==" /  3base64‑pad  "="
Up
base64-char =
ALPHA /  DIGIT /  "+" /  "/"
Up

Top



attribute-fields =
*( %x61   "="  attributeCRLF )
Top
Up
attribute =
att‑field  ":"  att‑value ) /  att‑field
Up
att-field =
Up
att-value =
Up

Top



media-descriptions =
Top
media-field =
%x6d   "="  mediaSPport  [ "/"  integer ]  SPproto  1*( SPfmt )  CRLF
Up
media =
token

; Media Type
; → IANA
; audio,  video,  text,  application,  message
; → RFC 4566Section 8.2.1
; image
; → RFC 6466Section 1

Up
port =
1*DIGIT
Up
proto =
token  *( "/"  token )

; Transport Protocol,   see:  IANA
; RTP/AVP
; RTP/SAVP
; udp
; → RFC 4566Section 8.2.2
; TCP
; → RFC 4145Section 3
; TCP/RTP/AVP
; → RFC 4571Section 4
; TCP/TLS
; → RFC 8122Section 4
; TCP/BFCP
; TCP/TLS/BFCP
; → RFC 4583Section 3
; RTP/AVPF
; → RFC 4585Section 9
; TCP/MSRP
; TCP/TLS/MSRP
; → RFC 4975Section 8.1
; RTP/SAVPF
; → RFC 5124Section 3.1
; DCCP
; DCCP/RTP/AVP
; DCCP/RTP/SAVP
; DCCP/RTP/AVPF
; DCCP/RTP/SAVPF
; → RFC 5762Section 5.1
; UDP/TLS/RTP/SAVP
; DCCP/TLS/RTP/SAVP
; UDP/TLS/RTP/SAVPF
; DCCP/TLS/RTP/SAVPF
; → RFC 5764Section 9
; UDP/MBMS-FEC/RTP/AVP
; UDP/MBMS-FEC/RTP/SAVP
; UDP/MBMS-REPAIR
; → RFC 6064Section 8.1
; FEC/UDP
; UDP/FEC
; → RFC 6364Section 8.1
; TCP/MRCPv2
; TCP/TLS/MRCPv2
; → RFC 6787Section 13.7.1
; PSTN
; → RFC 7195Section 8.4
; UDP/TLS/UDPTL
; → RFC 7345Section 7
; TCP/RTP/AVPF
; TCP/RTP/SAVP
; TCP/RTP/SAVPF
; TCP/DTLS/RTP/SAVP
; TCP/DTLS/RTP/SAVPF
; TCP/TLS/RTP/AVP
; TCP/TLS/RTP/AVPF
; → RFC 7850Section 5

Up
fmt =
Up

Top