RFC2327sdp中文.docx
- 文档编号:26334867
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:16
- 大小:21.76KB
RFC2327sdp中文.docx
《RFC2327sdp中文.docx》由会员分享,可在线阅读,更多相关《RFC2327sdp中文.docx(16页珍藏版)》请在冰豆网上搜索。
RFC2327sdp中文
SDP:
SessionDescriptionProtocol(会话描述协议)
(RFC2327)
1.概述
SAP(SessionAnnouncementProtocol会话公告协议),SIP,RTSP,HTTP,和使用MIME的E-Mail.(注意:
对SAP只能包含一个会话描述,其它会话传诵协议的SDP可包含多个绘画描述)SDP包括以下一些方面:
1)会话的名称和目的
2)会话存活时间
3)包含在会话中的媒体信息,包括:
媒体类型(video,audio,etc)
传输协议(RTP/UDP/IP,H.320,etc)
媒体格式(H.261video,MPEGvideo,etc)
多播或远端(单播)地址和端口
4)为接收媒体而需的信息(addresses,ports,formatsandsoon)
5)使用的带宽信息
6)可信赖的接洽信息(Contactinformation)
2.协议
Sessiondescription//格式及举例
//o=<用户名><会话id><版本><网络类//型><地址类型><地址>
//o=sname9021IN//IP4
126.15.
64.3
s=(sessionname)//会话名
i=*(sessioninformation)
u=*(URIofdescription)
e=*(emailaddress)
p=*(phonenumber)//会话信息
//u=http:
//e=zte@isi.edu(generaltext如:
//orp=+16172536011
//c=<网络类型><地址信息><连接地址>//多点会议包括TTL
//连接地址:
//address>/ 224.2. 13.23/127 //c=INIP4 224.2. 1.1/127/3 //IASApplication-specificMax)>: <带宽//值(kb/s)> v=(protocolversion)//v=0 o=(owner/creatorandsessionidentifier). //p=+86--7110(wang) c=*(connectioninformation-如已经包含在所有媒体中则该行不需要) b=*(bandwidthinformation)//b=<修改量(CTConferenceTotal //b=CT: 120 Oneormoretimedescriptions(seebelow) z=*(timezoneadjustments) k=*(encryptionkey)//时区调整 //k=<方法>: <密钥>或k=<方法> a=*(zeroormoresessionattributelines)//a=<属性>或a=<属性>: <值> Zeroormoremediadescriptions(seebelow) 各行严格按顺序,其中: 时间描述: t=(timethesessionisactive)//<开始时间><结束时间>,单位秒,十 //进制NTP //t=6869 r=*(zeroormorerepeattimes)//<重复时间><活动持续时间 //以开始时刻为参考的偏移列表>单位秒//r=6048003666900或写成//r=7d1h025h 媒体描述: m=(medianameandtransportaddress)//m=<媒体><端口><传送><格式列表> // //同c //会话级为摸认值,同c //两种形式: (也同c)(见后说明) //a= //a=recvonly //a= //m=audio49170RTP/AVP03 //协议为RTP,剖面为AVP //参考rtp-parameters.txt i=*(mediatitle媒体称呼) c=*(connectioninformation–如已经包含在会话级描述则为可选) b=*(bandwidthinformation) k=*(encryptionkey) 注: v,o,s,t,m为必须的,其他项为可选。 如果SDP语法分析器不能识别某一类型(Type),则整个描述丢失; 如果”a=”的某属性值不理解,则予以丢失 整个协议区分大小写 “=”两侧不允许有空格 会话级的描述就是媒体级描述的缺省值 所有均格式为 SDP用于构建INVITE和200OK响应消息的消息体,供主\被叫用户交换媒体信息. 1.媒体流的配置 1)主被叫的媒体描述必须完全对应: 主被叫的第n个媒体流(“m=”)对应,都包含”a=rtpmap”.这样的目的是易于适应静态净荷类型到动态净荷类型的转换. 2)如被叫不想接收主叫提出的某个媒体流则在响应中设置该媒体流的端口号为 0.并且,必须返回对应的媒体流行. a=*(zeroormoremediaattributelines) 3.SDP在IP电话中的使用 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. ii.Application/sdp: 表示是SDP会话描述 Text/html: 表示是普通文本或HTML格式的描述 2)Content-Encoding: 补充说明消息体类型,使用户可以采用压缩编码编辑消息体 3)Content-Length: 给出消息体的字节数 7.SDP各type的详细解释: 协议版本o= 会话源v=SDP版本目前为0,没有子版本 <用户名>用户在发起主机上登录名,如果主机不支持用户标识的概念,则为”-” <会话id>一般为数字串,其分配由创建工具决定,建议用网络时间协议(NTP)时 戳,以确保唯一性. <版本>该会话公告的版本,供公告代理服务器检测同一会话的若干个公告哪个是最新公告.基本要求是会话数据修改后该版本值递增,建议用NTP时戳 <网络类型>为文本串”IN” <地址类型>”IP4”(可为域名或点分十进制)/”IP6”(域名或压缩文本地址形式) <地址> 会话名s=ISO10646字符表示的会话名 会话信息v=ISO10646字符表示的会话信息 URIu=能提供会议进一步信息的URI地址 E妹地址e=给出会议负责人的联系信息,他不一定是创建会议公告的人 电话号码p=给出会议负责人的联系信息,他不一定是创建会议公告的人(国际通用形式) 连接数据c=媒体连接数据,会话级为媒体级的摸认值 带宽b=给出会话或媒体所用带宽,单位为kbit/s.修饰语: CT(会议总带宽,表示所有地点所有媒体的总带宽),AS(应用特定最大带宽,表示一个地点单一媒体带宽)时间描述t=见上 r=见上 时区调整z=见上 加密密钥k=已定义的方法有 k=clear: <加密密钥>密钥没有变换 k=base64: <编码密钥>已编码,因为它含有SDP禁用的字符 k=uri: <获得密钥的URI> k=prompt。 SDP没有提供密钥但该会话或媒体流是要求加密的。 属性a=一个m=行可有多个a=行,SDP建议扩展如下: (具体见[1].Page419) 媒体描述会话级: 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: <格式><格式特定参数>//定义指定格式的附加参数 媒体级: a=ptime: <分组时间>//媒体分组的时长(单位: 秒) a=recvonly/sendrecv/sendonly//收发模式 a=orient: <白板方向>//指明白板在屏莫上的方向 a=sdplang: <语言标记>//描述所有语言 a=lang: <语言标记>//会话描述的缺省语言或媒体描述的语言 m=<媒体>有5种类型: 音频/视频/应用(如白板信息)/数据(不向用户显示的)/控制<端口>媒体流发往传输层的端口。 取决于c=行规定的网络类型和接下来的传送层协议: 对UDP为1024-65535;对分层编码应用(c=行没有多播地址),要给出多播端口数,如: m=video49170/2RTP/AVP31(表示: 端口49170和49171为第一对RTP/RTCP端口,49172和49173为第二对的端口)。 <传送层协议>与c=行的地址类型有关。 对大多的媒体在RTP/UDP上传送,定义2种: RTP/AVP: IETFRTP协议,音/视频应用文档。 在UDP上传诵。 Udp: UDP协议。 <格式列表>对音/视频,就是音/视频应用文档中规定媒体净荷类型。 列表中都有可能用,但第一个为缺省值,分为静态绑定和动态绑定: 静态绑定即使媒体编码方式有净荷类型号完全确定,动态绑定则媒体编码方式(如时钟频率,音频信道数等)没有完全确定,需要进一步的属性说明。 分别举例如下: Alaw的PCM编码单信道Audio,其净荷类型号为8,把它发往UDP端口49232,则: m=audio49232RTP/AVP8 16bit线性编码,双声道立体声,抽样速率16kHz,其动态净荷类型号98,则: m=audio49232RTP/AVP98 a=rtpmap: 98L16/16000/2 说明: 1)a=rtpmap: <净荷类型号><编码名>/<时钟速率>[/<编码参数>] 对音频,编码参数为音频信道数;对视频没有定义 2)SDP允许rtpmap规定实验性编码格式,但编码名必须以X-起,表示此格式还没正式登记。 4.SDPGrammar announcement=proto-version origin-field session-name-field information-field uri-field email-fields phone-fields connection-field bandwidth-fields time-fields key-field attribute-fields media-descriptions proto-version="v="1*DIGITCRLF ;thismemodescribesversion0 origin-field="o="usernamespace sess-idspacesess-versionspace addrCRLF session-name-field="s="textCRLF information-field=["i="textCRLF] uri-field=["u="uriCRLF] email-fields=*("e="email-addressCRLF) phone-fields=*("p="phone-numberCRLF) connection-addressCRLF] ;aconnectionfieldmustbepresent ;ineverymediadescriptionoratthe ;session-level bandwidth-fields=*("b="bwtype": "bandwidthCRLF) time-fields=1*("t="start-timespacestop-time *(CRLFrepeat-fields)CRLF) [zone-adjustmentsCRLF] repeat-fields="r="repeat-intervalspacetyped-time 1*(spacetyped-time) zone-adjustments=timespace["-"]typed-time *(spacetimespace["-"]typed-time) key-field=["k="key-typeCRLF] key-type="prompt"| "clear: "key-data| "base64: "key-data| "uri: "uri key-data=email-safe|"~"|" attribute-fields=*("a="attributeCRLF) media-descriptions=*(media-field information-field *(connection-field) bandwidth-fields key-field attribute-fields) media-field="m="mediaspaceport["/"integer] spaceproto1*(spacefmt)CRLF media=1*(alpha-numeric) ;typically"audio","video","application" ;or"data" fmt=1*(alpha-numeric) ;typicallyanRTPpayloadtypeforaudio ;andvideomedia proto=1*(alpha-numeric) ;typically"RTP/AVP"or"udp"forIP4 port=1*(DIGIT) ;shouldintherange"1024"to"65535"inclusive ;forUDPbasedmedia attribute=(att-field": "att-value)|att-field att-field=1*(alpha-numeric) att-value=byte-string sess-id=1*(DIGIT) ;shouldbeuniqueforthisoriginatingusername/host sess-version=1*(DIGIT) ;0isanewsession connection-address=multicast-address |addr multicast-address=3*(decimal-uchar".")decimal-uchar"/"ttl ["/"integer] ;multicastaddressesmaybeintherange;224.0. 0.0to 239.255. 255.255 ttl=decimal-uchar start-time=time|"0" stop-time=time|"0" time=POS-DIGIT9*(DIGIT) ;sufficientfor2morecenturies repeat-interval=typed-time typed-time=1*(DIGIT)[fixed-len-time-unit] fixed-len-time-unit="d"|"h"|"m"|"s" bwtype=1*(alpha-numeric) bandwidth=1*(DIGIT) username=safe ;prettywidedefinition,butdoesn'tincludespace email-address=email|email"("email-safe")"| email-safe"<"email">" email=;definedinRFC822 uri=;definedinRFC1630 phone-number=phone|phone"("email-safe")"| phone= addrtype= addr= FQDN= unicast-address= IP4-address= b1= b4= IP6-address= text= byte-string= decimal-uchar= integer= alpha-numeric= DIGIT= POS-DIGIT= ALPHA=email-safe"<"phone">" "+"POS-DIGIT1*(space|"-"|DIGIT) ;theremustbeaspaceorhyphenbetweenthe ;internationalcodeandtherestofthenumber. "IN" ;listtobeextended "IP4"|"IP6" ;listtobeextended FQDN|unicast-address 4*(alpha-numeric|"-"|".") ;fullyqualifieddomainnameasspecifiedinRFC1035 IP4-address|IP6-address b1"."decimal-uchar"."decimal-uchar"."b4 decimal-uchar ;lessthan"224";not"0"or"127" decimal-uchar ;not"0" ;tobedefined byte-string ;defaultistointerpretthisasIS0-10646UTF8 ;ISO8859-1requiresa"a=charset: ISO-8859-1" ;session-levelattributetobeused 1*(0x 01..0x09|0x0b|0x0c|0x0e..0xff) ;anybyteexceptNUL,CRorLF DIGIT |POS-DIGITDIGIT |("1"2*(DIGIT)) |("2"("0"|"1"|"2"|"3"|"4")DIGIT) |("2""5"("0"|"1"|"2"|"3"|"4"|"5")) POS-DIGIT*(DIGIT) ALPHA|DIGIT "0"|POS-DIGIT "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"| "l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|"v"| "w"|"x"|"y"|"z"|"A"|"B"|"C"|"D"|"E"|"F"|"G"| "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"| "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z" email-safe=safe|space|tab safe=alpha-numeric| "'"|"'"|"-"|"."|"/"|": "|"? "|"""| "#"|"$"|"&"|"*"|";"|"="|"@"|"["| "]"|"^"|"_"|"`"|"{"|"|"|"}"|"+"| "~"|" space=%d32 tab=%d9 CRLF=%d 13.10 [References] 1.《IP网络电话技术》人民邮电出版社,糜正琨编著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RFC2327sdp 中文