专注SIP通讯产品与方案

SDP协议介绍与分析

上面介绍的协议用到了SDP,实际上SDP就是用来描述多媒体会话通告,多媒体会话邀请和其他形式的多媒体会话初始化的协议。SDP包通常包括以下信息:
1.会话信息
会话信息主要有:
•会话名和目的。
•会话活动时间。
由于参与会话的资源是受限制的,因此包括以下附加信息是非常有用的。
•会话使用的带宽信息。
•会话负责人的联系信息。
2.媒体信息
媒体信息主要有:
•媒体类型,例如视频和音频。
•传输协议,例如RTP/UDP/IP和H.320。
•媒体格式,例如H.261视频和MPEG视频。
•多播地址和媒体传输端口(IP多播会话)。
•用于联系地址的媒体和传输端口的远端地址(IP单播会话)。
SDP描述由许多文本行组成,文本行的格式为<类型>=<值〉,<类型〉是一个字母,<值>是结构化的文本串,其格式依<类型〉而定。
3.SDP语法
SDP语法如下:
announcement:=proto-versionorigin-fieldsession-name-fieldinformation-fielduri-fieldemail-fieldsphone-fieldsconnection-fieldbandwidth-fieldstime-fieldskey-fieldattribute-fieldsmedia-descriptions
proto-version:="v="1*DIGITCRLF:协议版本
origin-field:="o="usernamespacesess-idspacesess-versionspacenettypespaceaddrtypespaceaddrCRLF
session-name-field:="s="textCRLF;会话名称
information-field:=["i="textCRLF];信息
uri-field:=["u="uriCRLF1;URI地址
email-fields:=*("e="email-addressCRLF);电子邮件
phone-fields:=*("p="phone-numberCRLF)
connection-field:=["c="nettypespaceaddrtypespaceconnection-addressCRLF];连接
bandwidth-fields:=*("b="bwtypebandwidthCRLF)
time-fields:=1*("t="start-timespacestoD-time*(CRLFrepeat-fields)CRLF)
「zone-adjustmentsCRLF]
repeat■五elds:="r="repeat-intervalspacetyped・timel*(spacetyped-time)zoiie・adjustments:=timespacetyped・time*(spacetimespacetyr>ed・time)
key・field:=["k="key・typeCRLF]
kty-type:="prompt"I"clear:"key・dataI”base64:”key・dataI"uri:"uri
key・data:=email-safeII"
attribute-fields:=*r'a=”attributeCRLF)
media・descriptions:=*(media・fieldinfonnatioii-field*(corniection-field)bandwidth-fieldskey-fieldattribute”五elds)
media-field:="m="mediaspaceport["/"integer]spaceproto1*(spacefmt)CRLF
media:=1*(alpha・mimeric);为"audio”,"video","application"或者"data"
fmt:=1*(alpba・innneric);为RTP载荷类型
proto:=l*(alpha-numeric);典型的值为"RTP/AVP"或者"udp"
port:=1*(DIGIT);范围应在1024到65535
attribute:=(att・fieldatzalue)Iatt・field
att・field:=1*(alpha-numeric)
att・value:=byte-string
sess・id:=1*(DIGIT);应该惟_
sess-version:=1*(DIGIT);0表示新的会话
connectiomaddress:=multicast-addressIADdr
multicast・addTess:=3*(decimal-uchardecimal・ucharttl[integer];多播地址范围为22400.0到239.255.255.255
ttl:=decimal-uchar
starMime:=timeI"0"
stop・time:=timeI"0"
time:=POS-DIGIT9*(DIGIT)
repeat-interval:=typed-time
typed・time:=1*(DIGIT)「fixedJemtime-imitl
fixed・lemtime・imit:="d"InhHI"m"I"s"
bwtype:=1*(alpha-mimeric)
bandwidth:=1*(DIGIT)
username:=safe
email-address:=emailIemail"("email-safe")'*Iemail-safef,<,femail,f>Kemail:=淀义在RFC822uri:=;定义在RFC1630
phone-number:=phoneIphone"("email-safe")"Iemail-safe"<"phonen>n
Dhone:=n+"POS・DIGIT1"spaceI,,-nIDIGIT)
nettype:="IN*'
addrtyDe:="IP4H丨”IP6”
addr:=FODNIunicast・address
FODN:=4*(alpha-mMnericl”JTT')
unicast-address:=IP4_addressIIP6・address
IP4_addTess:=bldecimal-ucharn."decimabucharb4
bl:=decimahuchar;小于224,且不能为0和127
b4:=decimal・uchar;不能为0
IP6-address:=
text:=byte・string
l>yte・string:二1*(0x01..0x09l0x0bl0x0cl0x0e..OxfT);anybyteexceptNUL,CRorLFdecimal-uchar:=DIGITIPOS・DIGITDIGITICl"2*(DIGIT))I("2"(“0T1T2T3T4”)DIGIT)I(”2“H5"(“0T1T2T3T4T5”))
integer:二POS-DIGIT*(DIGIT)
alphanumeric:=ALPHAIDIGIT
DIGIT:="0"IPOS-DIGIT
POS-DIGIT:=”i”r2T3T4T5T6T7T8T9”
ALPHA:=”aTbTcTdTeTfTgThTiTjTk”l“lTmTnTo,T'p'T,q,T,r,T,s,T,t'T,u'T,v"l”wTxTyTzTATBTCTDTETFTGJ“HTITJTKTLTMTNTOTPTQTR”I”STTTUTVTWTXTYTZ”e
mail・safe:=safeIspaceItab
safe:=alphanumericI,H"IIIIIII,,,,nI*II”&”In*nI";'*||"@H|
I丁II[丁I“F「屮I”
space:=%d32
tab:=%d9
CRLF:=%dl3.10
4.下一代SDP
最新的SDPng扩展了SDP,使其可用于流服务、会议邀请、主从设备控制。与SDP相比,SDPng提供了更为丰富的会话描述、可以更好地协商能力。但即使扩展了SDP,也不会影响其设计的简明性这一特征。