SDP学习
来源:互联网 发布:淘宝联盟21号不能提现 编辑:程序博客网 时间:2024/06/10 07:38
在SIP编程中,设置SDP的过程很简单,
snprintf (tmp, 4096,
"v=0\r\n"
"o=anonymous 0 0 IN IP4 0.0.0.0\r\n"
"t=1 10\r\n"
"a=username:rainfish\r\n"
"a=password:123\r\n");
osip_message_set_body (invite, tmp, strlen(tmp));
osip_message_set_content_type (invite, "application/sdp");
其实SDP只是一个字符串,只需要按照格式写好字符串直接放入SDP里即可。关键是要知道具体意思和如何写SDP,下面主要参看百度文档中兴的SDP协议原理及应用
----------
会话描述
格式及举例
v=(protocolversion)
v=0
o=(owner/creator and session identifier)
o=<</FONT>用户名><</FONT>会话id><</FONT>版本><</FONT>网络类型><</FONT>地址类型><</FONT>地址>
o=sname1234567890098765432
s=(session name)
会话名
i=*(session information)
会话信息
e=*(email address)
e=zte@isi.edu(generaltext
或e=Mr.Wang
p=*(phone number)
p=+86-0755-26773000-7110(wang)
orp=+16172536011
c=*(connection information-如已经包含在所有媒体中则该行不需要)
c=<</FONT>网络类型><</FONT>地址信息><</FONT>多点会议包括TTL连接地址:的address>//
c=INIP4224.2.13.23/127
c=INIP4224.2.1.1/127/3
b=*(bandwidthinformation)
b=<</FONT>修改量(CTConferenceTotal
IASApplication-specificMax)>:<</FONT>带宽
值(kb/s)>
b=CT:120
一个或更多时间描述
z=*(time zone adjustments)
时区调整
k=*(encryption key)
k=<</FONT>方法>:<</FONT>密钥>或k=<</FONT>方法>
a=*(zero or more session attributelines)
a=<</FONT>属性>或a=<</FONT>属性>:<</FONT>值>
时间描述
t=(timethesessionisactive)
<</FONT>开始时间><</FONT>结束时间>,单位秒,十进制NTP
t=28733974682873404969
r=*(zero or more repeat times)
<</FONT>重复时间><</FONT>活动持续时间以开始时刻为参考的偏移列表>单位秒r=604800366690000或写成r=7d1h025h
媒体描述
m=(media name and transportaddress)
m=<</FONT>媒体><</FONT>端口><</FONT>传送><</FONT>格式列表>
m=audio49170RTP/AVP03
协议为RTP,剖面为AVP,参考rtp-parameters.txt
i=*(mediatitle)
媒体称呼
c=*(connectioninformation)
如已经包含在会话级描述则为可选
b=*(bandwidthinformation
同c
k=*(encryptionkey)
会话级为摸认值,同c
a=*(zeroormoremediaattribute
两种形式:(也同c)(见后说明)a=如:
a=recvonly
a=:
说明:
1.
2.
3.
4.
5.
6.
7.
SDP各type的详细解释:
会话描述:
1.
2.
3.
4.
5.
6.
7.
时间描述:
8
9.
10.
11.
12.