1.概述
SDP也是MMUSIC工作组的一个产品,在MBONE内容中用得很多。其目的就是在媒体会话中,传递媒体流信息,允许会话描述的接收者去参与会话。SDP基本上在internet上工作。它定义了会话描述的统一格式,但并不定义多播地址的分配和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成.典型的会话传送协议包括:SAP(Session Announcement Protocol 会话公告协议),SIP,RTSP,HTTP和使用MIME的E-Mail.(注意:对SAP只能包含一个会话描述,其它会话传输协议的SDP可包含多个会话描述)
SDP包括以下一些方面
1)会话的名称和目的
2)会话存活时间
3)包含在会话中的媒体信息,包括:
媒体类型(video, audio, etc)
传输协议(RTP/UDP/IP, H.320, etc)
媒体格式(H.261 video, MPEG video, etc)
多播或远端(单播)地址和端口
4)为接收媒体而需的信息(addresses, ports, formats and so on)
5)使用的带宽信息
6)可信赖的接洽信息(Contact information)
7)等......
2.协议
Session description //格式及举例
v= (protocol version) //v=0
o= (owner/creator and session identifier)
//o=<用户名><会话id><版本><网络类型><地址类型><地址>
//o=sname 1234567890 0987654321 I IP4 126.15.64.3
s= (session name) //会话名
i=* (session information) //会话信息
u=* (URI of description) //u=http://www.zte.com.cn/staff/sdp.ps
e=* (email address) //e=zte@isi.edu(general text如:王先生)
//或e=Mr. Wang<wang@zte.com>
p=* (phone number) //p=+86-0755-26773000-7110(wang) or p=+1 617 253 6011
c=* (connection information -如已经包含在所有媒体中则该行不需要)
//c=<网络类型><地址信息><连接地址>
//多点会议包括TTL
//连接地址: <base multicast address>/<ttl>/<number of addresses>
//c=IN IP4 224.2.13.23/127
//c=IN IP4 224.2.1.1/127/3
b=* (bandwidth information) //b=<修改量(CT Conference Total
//IAS Application-specific Max)>:<带宽值(kb/s)>
//b=CT:120
One or more time descriptions (see below)
z=* (time zone adjustments) //时区调整
k=* (encryption key) //k=<方法>:<密钥>或k=<方法>
a=* (zero or more session attribute lines
//a=<属性> 或a=<属性>:<值>
Zero or more media descriptions (see below)
各行严格按顺序,其中:
时间描述:
t= (time the session is active) //<开始时间><结束时间>,单位秒,十进制NTP
//t=2873397468 2873404969
r=* (zero or more repeat times) //<重复时间><活动持续时间以开始时刻为参考的偏移列表>单位秒
//r=604800 3666 90000 或写成r=7d 1h 0 25h
媒体描述:
m= (media name and transport address)
//m=<媒体><端口><传送><格式列表>
//m=audio 49170 RTP/AVP 0 3
//协议为RTP,剖面为AVP
//参考rtp-parameters.txt
i=* (media title) //媒体称呼
c=* (connection information – 如已经包含在会话级描述则为可选)
b=* (bandwidth information) //同c
k=* (encryption key) //会话级为摸认值,同c
a=* (zero or more media attribute lines)
//两种形式:(也同c)(见后说明)
//a=<attribute>如:
//a=recvonly
//a=<attribute>:<value>
注:v,o,s,t,m为必须的,其他项为可选。
如果SDP语法分析器不能识别某一类型(Type),则整个描述丢失;[?什么意思]
如果”a=”的某属性值不理解,则予以丢失
整个协议区分大小写
“=”两侧不允许有空格
会话级的描述就是媒体级描述的缺省值
所有均格式为<type>=<value>
An example SDP description is:
v=0
o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e=mjh@isi.edu (Mark Handley)
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
m=audio 49170 RTP/AVP 0
m=video 51372 RTP/AVP 31
m=application 32416 udp wb
a=orient:portrait
//////////////////////////////////////////////////////////
Protocol Version
v=<version>
// v=0
v:该SDP协议的版本号
Origin
o=<username> <session id> <version> <network type> <address type><address>
// o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
o:标示了该会话的全局唯一性
<username>:用于登陆创建主机的ID,若该主机不支持侧应为"-",该字段内不能包含空格
<session id>:用于唯一的标示该会话描述,建议采用Network Time Protocol (NTP)的时间戳来保证唯一性
<version>:该公告的版本号,用于区别同个会话内的多个公告
<network type>:网络类型 IN(Internet)
<address type>:地址类型 IP4/IP6
<address>:该会话创建者的地址
Session Name
s=<session name>
// s=SDP Seminar
s:会话名,每个会话仅有一个
Session and Media Information
i=<session description>
// i=A Seminar on the session description protocol
i:会话信息,每个会话至多有一个,每个媒体至多有一个,常用于标识一个会话内多个同类型的媒体流。
URI
u=<URI>
// u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
u:该会话的URI(Universal Resource Identifier)地址
Email Address and Phone Number
e=<email address>
p=<phone number>
e/p:添加会话负责人的私人信息
// EMAIL地址格式:e=mjh@isi.edu (Mark Handley) or e=Mark Handley <mjh@isi.edu>
// 电话号码的格式:p=+44-171-380-7777 or p=+1 617 253 6011
Connection Data
c=<network type> <address type> <connection address>
// c=IN IP4 224.2.17.12/127
c:连接数据,每个会话公告应包含一个连接描述在每个媒体描述中,
单播的时候通过该IP地址发送,多播时通过TTL与IP地址共同决定那些包将被发送
<connection address>:IP addr/TTL[/IP NUMS] example:192.168.1.2/127[/2],单播[多播]
IP address together with TTL define which muticast pakets will be
(popy) |