SDP协议原理及应用.docx
- 文档编号:5505480
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:28
- 大小:25.12KB
SDP协议原理及应用.docx
《SDP协议原理及应用.docx》由会员分享,可在线阅读,更多相关《SDP协议原理及应用.docx(28页珍藏版)》请在冰点文库上搜索。
SDP协议原理及应用
SDP协议原理及应用
编者:
尚森
审核:
王高原
中兴通讯固网交换用服部
修改记录
文档
编号
版本号
拟制人/修改人
审核人
拟制/修改
日期
更改理由
主要更改内容
(写要点即可)
无
V1.00
尚森
王高原
2008-2-20
08年专题文档光盘编写
初稿生成
目录
第1章SDP的协议原理1
1.1SDP的概述1
1.2SDP协议字段1
1.3说明3
第2章SDP的应用4
2.1SDP在SIP电话中的应用4
2.2SDP各type的详细解释5
2.3SDP在H.248的应用7
第3章SDP的实例应用8
3.1SDP的举例描述8
3.2H.248中sdp消息举例描述15
SDP的协议原理
SDP的概述
SDP(SDP:
SessionDescriptionProtocol会话描述协议)是由IETF(Interne工程任务组)作为RFC4566颁布,描述流媒体初始化参数的格式。
其目的就是在媒体会话中,传递媒体流信息,允许会话描述的接收者去参与会话。
定义了会话描述的统一格式,但并不定义多播地址的分配和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成。
会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。
会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。
SDP即用于将这种信息传输到接收端。
SDP完全是一种会话描述格式――它不属于传输协议――它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME扩展协议的电子邮件以及超文本传输协议(HTTP)。
SDP的设计宗旨是通用性,它可以应用于大范围的网络环境和应用程序,而不仅仅局限于组播会话目录,但SDP不支持会话内容或媒体编码的协商。
在因特网组播骨干网(Mbone)中,会话目录工具被用于通告多媒体会议,并为参与者传送会议地址和参与者所需的会议特定工具信息,这由SDP完成。
SDP连接好会话后,传送足够的信息给会话参与者。
SDP信息发送利用了会话通知协议(SAP),它周期性地组播通知数据包到已知组播地址和端口处。
这些信息是UDP数据包,其中包含SAP协议头和文本有效载荷(textpayload)。
这里文本有效载荷指的是SDP会话描述。
此,外信息也可以通过电子邮件或WWW(WorldWideWeb)进行发送。
SDP文本信息包括:
会话名称和意图;
会话持续时间;
构成会话的媒体;
有关接收媒体的信息(地址等)。
SDP协议字段
SDP信息是文本信息,采用UTF-8编码中的ISO10646字符集。
SDP会话描述如下:
(标注*符号的表示可选字段):
表11SDP会话描述
会话描述
格式及举例
v=(protocolversion)
v=0
o=(owner/creatorandsessionidentifier)
o=<用户名><会话id><版本><网络类型><地址类型><地址>
o=sname12345678900987654321INIP4126.15.64.3
s=(sessionname)
会话名
i=*(sessioninformation)
会话信息
e=*(emailaddress)
e=zte@isi.edu(generaltext
或e=Mr.Wang
p=*(phonenumber)
p=+86-0755-26773000-7110(wang)
orp=+16172536011
c=*(connectioninformation-如已经包含在所有媒体中则该行不需要)
c=<网络类型><地址信息><多点会议包括TTL连接地址:
c=INIP4224.2.13.23/127
c=INIP4224.2.1.1/127/3
b=*(bandwidthinformation)
b=<修改量(CTConferenceTotal
IASApplication-specificMax)>:
<带宽
值(kb/s)>
b=CT:
120
一个或更多时间描述
z=*(timezoneadjustments)
时区调整
k=*(encryptionkey)
k=<方法>:
<密钥>或k=<方法>
a=*(zeroormoresessionattributelines)
a=<属性>或a=<属性>:
<值>
时间描述
t=(timethesessionisactive)
<开始时间><结束时间>,单位秒,十进制NTP
t=28733974682873404969
r=*(zeroormorerepeattimes)
<重复时间><活动持续时间以开始时刻为参考的偏移列表>单位秒r=604800366690000或写成r=7d1h025h
媒体描述
m=(medianameandtransportaddress)
m=<媒体><端口><传送><格式列表>
m=audio49170RTP/AVP03
协议为RTP,剖面为AVP,参考rtp-parameters.txt
i=*(mediatitle)
媒体称呼
c=*(connectioninformation)
如已经包含在会话级描述则为可选
b=*(bandwidthinformation
同c
k=*(encryptionkey)
会话级为摸认值,同c
a=*(zeroormoremediaattributelines)
两种形式:
(也同c)(见后说明)a=
a=recvonly
a=
说明
1.v,o,s,t,m为必须的,其他项为可选;
2.如果SDP语法分析器不能识别某一类型(Type),则整个描述丢失;
3.如果“a=”的某属性值不理解,则予以丢失;
4.整个协议区分大小写;
5.“=”两侧不允许有空格;
6.会话级的描述就是媒体级描述的缺省值;
7.所有均格式为
SDP的应用
SDP在SIP电话中的应用
SDP用于构建INVITE和200OK响应消息的消息体,供主\被叫用户交换媒体信息。
1.媒体流的配置
(1)主被叫的媒体描述必须完全对应主被叫的第n个媒体流(“m=“)对应,都包含”a=rtpmap”.这样的目的是易于适应静态净荷类型到动态净荷类型的转换。
(2)如被叫不想接收主叫提出的某个媒体流则在响应中设置该媒体流的端口号为0.并且必须返回对应的媒体流行。
2.单播SDP值的设定
(1)对于只发媒体流,端口号无意义,应设为0。
(2)每个媒体流的净载荷类型例表应传送两个信息:
能接受/发送的编译码,和用以标识这些编译码的RTP净载荷类型号。
(3)如对于某一媒体流,主/被叫没有公共的媒体格式,被叫仍然要求返回媒体流的”m=“行,端口好为0,同时,不列净载荷类型。
(4)如果所有媒体流均无公共的媒体格式,则被叫回送400响应(坏请求),并加入304警告头字段(无媒体类型)。
3.多播操作
(1)接受和发送的多播地址是相同的。
(2)被叫不允许改变媒体流的只发,只收,或收/发特性。
(3)如果被叫不支持多播,则回送400响应和330警告(多播不可用)。
4.延时媒体流
由于主叫可能实际上是一个和其他协议(如H.323)互同的协议的网关,与S要求呼叫建立后进行媒体协商.这样,主叫可以先发不带SDP的INVITE,通过ACK或重新发一个INVITE请求修改被叫的会话描述(SDP)。
5.媒体流保持
如果要求对方进入HOLD,即暂时停止发送一个或多个媒体流,这可以用Re-INVITE,话描述和原来的请求或响应中的描述相同,只是,”c=“为”0.0.0.0”,还有就是Re_INVITE中的Cseq得递增。
6.对应于SIP中有3个实体字段
(1)Content-Type:
指明消息体类型,有两种:
i.Application/sdp:
表示是SDP会话描述ii.Text/html。
表示是普通文本或HTML格式的描述。
(2)Content-Encoding:
补充说明消息体类型,使用户可以采用压缩编码编辑消息体。
(3)Content-Length:
给出消息体的字节数。
SDP各type的详细解释
1.协议版本:
o=SDP版本目前为0,没有子版本。
2.会话源:
v=<用户名>用户在发起主机上登录名,如果主机不支持用户标识的概念,则为”-”。
3.会话id一般为数字串,其分配由创建工具决定,建议用网络时间协议(NTP)时戳,以确保唯一性。
4.版本>该会话公告的版本,供公告代理服务器检测同一会话的若干个公告哪个是最新公告.基本要求是会话数据修改后该版本值递增,建议用NTP时戳<网络类型>为文本串”IN”。
5.地址类型>“IP4”(可为域名或点分十进制)/”IP6”(域名或压缩文本地址形式)
6.会话:
s=ISO10646字符表示的会话名
7.会话信息:
v=ISO10646字符表示的会话信息
8.URIu=能提供会议进一步信息的URI地址
9.Email地址:
e=给出会议负责人的联系信息他不一定是创建会议公告的人电话号码p=给出会议负责人的联系信息,他不一定是创建会议公告的人
10.连接数据:
c=媒体连接数据,会话级为媒体级的默认值
11.带宽:
b=给出会话或媒体所用带宽,单位为kbit/s.修饰语:
CT(会议总带宽,表示所有地点所有媒体的总带宽),AS(应用特定最大带宽,表示一个地点单一媒体带宽)
12.时间描述:
t=见上
13.r=见上
14.时区调整:
z=见上
15.加密密钥:
k=已定义的方法有k=clear:
<加密密钥>密钥没有变换k=base64:
<编码密钥>已编码,因为它含有SDP禁用
16.k=uri:
<获得密钥的URI>k=prompt。
SDP没有提供密钥但该会话或媒体流是要求加密的。
17.属性:
a=一个m=行可有多个a=行,SDP建议扩展如下:
18.会话级:
a=cat:
<类别>//给出点分层次式会话分类号,供接收方筛选会话
a=keywds:
<关键词>//供接收方筛选会话
a=tool:
<工具名和版本号>//创建会话描述的工具名和版本号
a=recvonly/sendrecv/sendonly//收发模式
a=type:
<会议类型>//有:
广播,聚会,主席主持,测试,H.323
a=charset:
<字符集>//显示会话名和信息数据的字符集
a=sdplang:
<语言标记>//描述所有语言
a=lang:
<语言标记>//会话描述的缺省语言或媒体描述的语言
a=framerate:
<帧速率>//单位:
帧/秒
a=quality:
<质量>//视频的建议质量(10/5/0)
a=fmtp:
<格式><格式特定参数>//定义指定格式的附加参数
19.媒体级:
a=ptime:
<分组时间>//媒体分组的时长(单位:
秒)
a=recvonly/sendrecv/sendonly//收发模式
a=orient:
<白板方向>//指明白板在屏莫上的方向
a=sdplang:
<语言标记>//描述所有语言
a=lang:
<语言标记>//会话描述的缺省语言或媒体描述的语言
20.媒体描述
m=<媒体>有5种类型:
音频/视频/应用(如白板信息)/数据(不向用户显示的)/控制
21.端口>媒体流发往传输层的端口。
取决于c=行规定的网络类型和接下来的
22.传送层协议:
对UDP为1024-65535;对分层编码应用
23.c=行没有多播地址,要给出多播端口数,如:
m=video49170/2RTP/AVP31(表示:
端口49170和49171为第一对RTP/RTCP端口,49172和49173为第二对的端口)。
24.传送层协议>与c=行的地址类型有关。
对大多的媒体在RTP/UDP上传送,定义2种:
RTP/AVP:
IETFRTP协议,音/视频应用文档。
在UDP上传送。
Udp:
UDP协议。
25.格式列表>对音/视频,就是音/视频应用文档中规定媒体净荷类型。
列表中都有可能用,但第一个为缺省值,分为静态绑定和动态绑定:
静态绑定即使媒体编码方式有净荷类型号完全确定,动态绑定则媒体编码方式(如时钟频率,音频信道数等)没有完全确定,需要进一步的属性说明。
分别举例如下:
Alaw的PCM编码单信道Audio,其净荷类型号为8,把它发往UDP端口49232,则:
m=audio49232RTP/AVP816bit线性编码,双声道立体声,抽样速率
16kHz,其动态净荷类型号98,则:
m=audio49232RTP/AVP98
a=rtpmap:
98L16/16000/2
说明:
1.a=rtpmap:
<净荷类型号><编码名>/<时钟速率>[/<编码参数>]对音频,编码参数为音频信道数;对视频没有定义
2.SDP允许rtpmap规定实验性编码格式,但编码名必须以X-起,表示此格式还没正式登记。
SDP在H.248的应用
H.248/Megaco在对媒体流进行描述时,消息格式既可以采用文本格式,也可以采用ASN.1的二进制编码格式。
,如果消息格式是文本格式,则采用SDP描述媒体流。
如果消息格式是二进制编码格式,则使用协议规定的编码。
SDP的实例应用
SDP的举例描述
v=0(版本为0)
o=bell536557652353687637INIP4128.3.4.5(会话源:
用户名bell,会话标
识53655765,版本2353687637,网络类型internet,地址类型Ipv4,地址128.3.4.5)
s=Mr.Watson,comehere.(会话名:
Mr.Watson,comehere.)
i=ASeminaronthesessiondescriptionprotocol(会话信息:
)
t=31493286000(起始时间:
t=3149328600(NTP时间值),终止时间:
无)
c=INIP4kton.bell-(连接数据:
网络类型internet,地址类型Ipv4,连接地址kton.bell-)
m=audio3456RTP/AVP0345(媒体格式:
媒体类型audio,端口号3456,传送层协议RTP/AVP,格式列表为0345)
a=rtpmap:
0PCMU/8000(净荷类型0,编码名PCMU,抽样速度为8kHZ)
a=rtpmap:
3GSM/8000(净荷类型3,编码名GSM,抽样速度为8kHZ)
a=rtpmap:
4G723/8000(净荷类型4,编码名G723,抽样速度为8kHZ)
a=rtpmap:
5DVI4/8000(净荷类型5,编码名DVI4,抽样速度为8kHZ)
Sip中sdp消息举例描述
下例是个典型正常的sip电话呼叫流程:
主叫IP:
219.150.170.175被叫IP:
219.150.170.177软交换IP:
219.150.172.66
呼叫过程:
主叫摘机拨号,被叫振铃,被叫摘机,通话,主叫挂机,被叫听忙音,被叫挂机。
1.主叫摘机拨号
INVITEsip:
5361201@219.150.172.66SIP/2.0
Via:
SIP/2.0/UDP219.150.170.175:
5060;branch=z9hG4bK56fb62b7
To:
”5361201” 5361201@219.150.172.66> From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE Contact: 5361203@219.150.170.175: 5060> Max-Forwards: 70 User-Agent: ZTEMULTIMEDIASIPPHONE/V1.004-01-10 Content-Type: application/sdp//表示是SDP会话描述 Content-Length: 266//消息体为266字节 v=0//版本为0 o=536120333395842673608019723INIP4219.150.170.175 //会话源: 用户名5361203,会话标识3339584267,版本3608019723,网络类型internet,地址类型Ipv4,地址主叫ip219.150.170.175 s=sessionSDP//会话名: sessionSDP c=INIP4219.150.170.175//连接数据: 网络类型internet,地址类型Ipv4,连接地址219.150.170.175 t=00//无开始和结束时间 m=audio10000RTP/AVP048//媒体格式: 媒体类型audio,端口号10000,传送层协议RTP/AVP,格式列表为048 a=ptime: 20//媒体分组的时长20s a=rtpmap: 0PCMU/8000//净荷类型0,编码名PCMU,抽样速度为8kHZ a=rtpmap: 4G723/8000//净荷类型4,编码名G723,抽样速度为8kHZ a=rtpmap: 8PCMA/8000//净荷类型8,编码名PCMA,抽样速度为8kHZ m=video10002RTP/AVP34//媒体格式: 媒体类型video,端口号10002,传送层协议RTP/AVP,格式列表为34 a=rtpmap: 34H263/90000//净荷类型34,编码名H263,抽样速度为90kHZ。 2.软交换应答Trying SIP/2.0100Trying Via: SIP/2.0/UDP219.150.170.175: 5060;branch=z9hG4bK56fb62b7 To: ”5361201” 5361201@219.150.172.66> From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE。 3.软交换转发INVITE到被叫 INVITEsip: 5361201@219.150.170.177SIP/2.0 Via: SIP/2.0/UDP219.150.172.66: 5060;branch=751e6026.0 Via: SIP/2.0/UDP219.150.170.175: 5060;branch=z9hG4bK56fb62b7 To: ”5361201” 5361201@219.150.172.66> From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE Contact: 5361203@219.150.170.175: 5060> Max-Forwards: 69 Record-Route: 219.150.172.66> User-Agent: ZTEMULTIMEDIASIPPHONE/V1.004-01-10 Content-Type: application/sdp Content-Length: 266 v=0 o=536120333395842673608019723INIP4219.150.170.175 s=sessionSDP c=INIP4219.150.170.175 t=00 m=audio10000RTP/AVP048 a=ptime: 20 a=rtpmap: 0PCMU/8000 a=rtpmap: 4G723/8000 a=rtpmap: 8PCMA/8000 m=video10002RTP/AVP34 a=rtpmap: 34H263/90000。 4.被叫应答Trying SIP/2.0100Trying Via: SIP/2.0/UDP219.150.172.66: 5060;branch=751e6026.0 Via: SIP/2.0/UDP219.150.170.175: 5060;branch=z9hG4bK56fb62b7 To: ”5361201” 5361201@219.150.172.66> From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE Record-Route: 219.150.172.66> Content-Length: 0。 5.被叫应答Ringing SIP/2.0180Ringing Via: SIP/2.0/UDP219.150.172.66: 5060;branch=751e6026.0 Via: SIP/2.0/UDP219.150.170.175: 5060;branch=z9hG4bK56fb62b7 To: ”5361201” 5361201@219.150.172.66>;tag=jmNAzkktW56kiV0M1Y From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE Record-Route: 219.150.172.66> Contact: 5361201@219.150.170.177> Content-Length: 0。 6.被叫应答OK SIP/2.0200OK Via: SIP/2.0/UDP219.150.172.66: 5060;branch=751e6026.0 Via: SIP/2.0/UDP219.150.170.175: 5060;branch=z9hG4bK56fb62b7 To: ”5361201” 5361201@219.150.172.66>;tag=jmNAzkktW56kiV0M1Y From: ”5361203” 5361203@219.150.172.66>;tag=afaa96db-30263 Call-ID: 1b4659ea-afaa96db@219.150.170.175 CSeq: 15688INVITE Record-Route: 219.150.172.66> Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,MESSAGE,INFO,UPDATE Contact: 5361201@219.150.170.177> Content-Type: application/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SDP 协议 原理 应用