《最新SDP协议原理及应用.doc》由会员分享,可在线阅读,更多相关《最新SDP协议原理及应用.doc(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料SDP协议原理及应用.SDP协议原理及应用编者:尚 森审核:王高原中兴通讯固网交换用服部修改记录文档编号版本号拟制人/修改人审核人拟制/修改日期更改理由主要更改内容(写要点即可)无V1.00尚森王高原2008-2-2008年专题文档光盘编写初稿生成目录第1章 SDP的协议原理1.1 SDP的概述SDP(SDP:SessionDescriptionProtocol会话描述协议)是由IETF(Interne工程任务组)作为RFC4566颁布,描述流媒体初始化参数的格式。其目的就是在媒体会话中,传递媒体流信息,允许会话描述的接收者去参与会话。定义了会话描述的统一格式,但并不定义多播地址的分配
2、和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成。会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。SDP即用于将这种信息传输到接收端。SDP完全是一种会话描述格式它不属于传输协议它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP的设计宗旨是通用性,它可以应用于大范围的网络环境和应用程序,而不仅仅局限于组播会话目录,但SDP不支持会话内
3、容或媒体编码的协商。在因特网组播骨干网(Mbone)中,会话目录工具被用于通告多媒体会议,并为参与者传送会议地址和参与者所需的会议特定工具信息,这由SDP完成。SDP连接好会话后,传送足够的信息给会话参与者。SDP信息发送利用了会话通知协议(SAP),它周期性地组播通知数据包到已知组播地址和端口处。这些信息是UDP数据包,其中包含SAP协议头和文本有效载荷(textpayload)。这里文本有效载荷指的是SDP会话描述。此,外信息也可以通过电子邮件或WWW(WorldWideWeb)进行发送。SDP文本信息包括:l会话名称和意图;l会话持续时间;l构成会话的媒体;l有关接收媒体的信息(地址等)
4、。1.2 SDP协议字段SDP信息是文本信息,采用UTF-8编码中的ISO10646字符集。SDP会话描述如下:(标注*符号的表示可选字段):表 11 SDP会话描述 会话描述格式及举例v=(protocolversion)v=0o=(owner/creatorandsessionidentifier)o=o=sname12345678900987654321IN IP4126.15.64.3s=(sessionname)会话名i=*(sessioninformation)会话信息e=*(emailaddress)e=zteisi.edu(generaltext或e=Mr.Wangp=*(ph
5、onenumber)p=+86-0755-26773000-7110(wang)orp=+16172536011c=*(connectioninformation-如已经包含在所有媒体中则该行不需要)c=多点会议包括TTL连接地址:/c=INIP4224.2.13.23/127c=INIP4224.2.1.1/127/3b=*(bandwidthinformation)b=:b=CT:120一个或更多时间描述z=*(timezoneadjustments)时区调整k=*(encryptionkey)k=:或k=a=*(zeroormoresessionattributelines)a=或a=:
6、时间描述t=(timethesessionisactive),单位秒,十进制NTPt=28733974682873404969r=*(zeroormorerepeattimes)单位秒r=604800366690000或写成r=7d1h025h媒体描述m=(medianameandtransportaddress)m=m=audio49170RTP/AVP03协议为RTP,剖面为AVP,参考rtp-parameters.txti=*(mediatitle)媒体称呼c=*(connectioninformation)如已经包含在会话级描述则为可选b=*(bandwidthinformation同
7、ck=*(encryptionkey)会话级为摸认值,同ca=*(zeroormoremediaattributelines)两种形式:(也同c)(见后说明)a=如:a=recvonlya=:1.3 说明1v,o,s,t,m为必须的,其他项为可选;2如果SDP语法分析器不能识别某一类型(Type),则整个描述丢失;3如果“a=”的某属性值不理解,则予以丢失;4整个协议区分大小写;5“=”两侧不允许有空格;6会话级的描述就是媒体级描述的缺省值;7所有均格式为=。第2章 SDP的应用2.1 SDP在SIP电话中的应用SDP用于构建INVITE和200OK响应消息的消息体,供主被叫用户交换媒体信息。
8、1媒体流的配置(1)主被叫的媒体描述必须完全对应主被叫的第n个媒体流(“m=“)对应,都包含”a=rtpmap”.这样的目的是易于适应静态净荷类型到动态净荷类型的转换。(2)如被叫不想接收主叫提出的某个媒体流则在响应中设置该媒体流的端口号为0.并且必须返回对应的媒体流行。2单播SDP值的设定(1)对于只发媒体流,端口号无意义,应设为0。(2)每个媒体流的净载荷类型例表应传送两个信息:能接受/发送的编译码,和用以标识这些编译码的RTP净载荷类型号。(3)如对于某一媒体流,主/被叫没有公共的媒体格式,被叫仍然要求返回媒体流的”m=“行,端口好为0,同时,不列净载荷类型。(4)如果所有媒体流均无公共
9、的媒体格式,则被叫回送400响应(坏请求),并加入304警告头字段(无媒体类型)。3多播操作(1)接受和发送的多播地址是相同的。(2)被叫不允许改变媒体流的只发,只收,或收/发特性。(3)如果被叫不支持多播,则回送400响应和330警告(多播不可用)。4延时媒体流由于主叫可能实际上是一个和其他协议(如H.323)互同的协议的网关,与S要求呼叫建立后进行媒体协商.这样,主叫可以先发不带SDP的INVITE,通过ACK或重新发一个INVITE请求修改被叫的会话描述(SDP)。5媒体流保持如果要求对方进入HOLD,即暂时停止发送一个或多个媒体流,这可以用Re-INVITE,话描述和原来的请求或响应中
10、的描述相同,只是,”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:给出消息体的字节数。2.2 SDP各type的详细解释1协议版本:o=SDP版本目前为0,没有子版本。2会话源:v=用户在发起主机上登录名,如果主机不支持用户标识的概念,则
11、为”-”。3会话id一般为数字串,其分配由创建工具决定,建议用网络时间协议(NTP)时戳,以确保唯一性。4版本该会话公告的版本,供公告代理服务器检测同一会话的若干个公告哪个是最新公告.基本要求是会话数据修改后该版本值递增,建议用NTP时戳为文本串”IN”。5地址类型“IP4”(可为域名或点分十进制)/”IP6”(域名或压缩文本地址形式)6会话:s=ISO10646字符表示的会话名7会话信息:v=ISO10646字符表示的会话信息8URIu=能提供会议进一步信息的URI地址9Email地址:e=给出会议负责人的联系信息他不一定是创建会议公告的人电话号码p=给出会议负责人的联系信息,他不一定是创建
12、会议公告的人10连接数据:c=媒体连接数据,会话级为媒体级的默认值11带宽:b=给出会话或媒体所用带宽,单位为kbit/s.修饰语:CT(会议总带宽,表示所有地点所有媒体的总带宽),AS(应用特定最大带宽,表示一个地点单一媒体带宽)12时间描述:t=见上13r=见上14时区调整:z=见上15加密密钥:k=已定义的方法有k=clear:密钥没有变换k=base64:已编码,因为它含有SDP禁用16k=uri:k=prompt。SDP没有提供密钥但该会话或媒体流是要求加密的。17属性:a= 一个m=行可有多个a=行,SDP建议扩展如下:18会话级:a=cat:/给出点分层次式会话分类号,供接收方筛
13、选会话a=keywds:/供接收方筛选会话a=tool:/创建会话描述的工具名和版本号a=recvonly/sendrecv/sendonly/收发模式a=type:/有:广播,聚会,主席主持,测试,H.323a=charset:/显示会话名和信息数据的字符集a=sdplang:/描述所有语言a=lang:/会话描述的缺省语言或媒体描述的语言a=framerate:/单位:帧/秒a=quality:/视频的建议质量(10/5/0)a=fmtp:/定义指定格式的附加参数19媒体级:a=ptime:/媒体分组的时长(单位:秒)a=recvonly/sendrecv/sendonly/收发模式a=o
14、rient:/指明白板在屏莫上的方向a=sdplang:/描述所有语言a=lang:/会话描述的缺省语言或媒体描述的语言20媒体描述m=有5种类型:音频/视频/应用(如白板信息)/数据(不向用户显示的)/控制21端口媒体流发往传输层的端口。取决于c=行规定的网络类型和接下来的22传送层协议:对UDP为1024-65535;对分层编码应用23c=行没有多播地址,要给出多播端口数,如:m=video49170/2RTP/AVP31(表示:端口49170和49171为第一对RTP/RTCP端口,49172和49173为第二对的端口)。24传送层协议与c=行的地址类型有关。对大多的媒体在RTP/UDP
15、上传送,定义2种:RTP/AVP:IETFRTP协议,音/视频应用文档。在UDP上传送。Udp:UDP协议。25格式列表对音/视频,就是音/视频应用文档中规定媒体净荷类型。列表中都有可能用,但第一个为缺省值,分为静态绑定和动态绑定:静态绑定即使媒体编码方式有净荷类型号完全确定,动态绑定则媒体编码方式(如时钟频率,音频信道数等)没有完全确定,需要进一步的属性说明。分别举例如下:Alaw的PCM编码单信道Audio,其净荷类型号为8,把它发往UDP端口49232,则:m=audio49232RTP/AVP816bit线性编码,双声道立体声,抽样速率16kHz,其动态净荷类型号98,则:m=audi
16、o49232RTP/AVP98a=rtpmap:98L16/16000/2说明:1a=rtpmap:/对音频,编码参数为音频信道数;对视频没有定义2SDP允许rtpmap规定实验性编码格式,但编码名必须以X-起,表示此格式还没正式登记。2.3 SDP在H.248的应用H.248/Megaco在对媒体流进行描述时,消息格式既可以采用文本格式,也可以采用ASN.1的二进制编码格式。,如果消息格式是文本格式,则采用SDP描述媒体流。如果消息格式是二进制编码格式,则使用协议规定的编码。第3章 SDP的实例应用3.1 SDP的举例描述v=0(版本为0)o=bell536557652353687637IN
17、IP4128.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
18、/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.17
19、7软交换IP:219.150.172.66呼叫过程:主叫摘机拨号,被叫振铃,被叫摘机,通话,主叫挂机,被叫听忙音,被叫挂机。1主叫摘机拨号INVITEsip:5361201219.150.172.66SIP/2.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”From:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITEContact:Max-Forwards:70User-Agent:
20、ZTEMULTIMEDIASIPPHONE/V1.004-01-10Content-Type:application/sdp/表示是SDP会话描述Content-Length:266/消息体为266字节v=0/版本为0o=536120333395842673608019723INIP4219.150.170.175/会话源:用户名5361203,会话标识3339584267,版本3608019723,网络类型internet,地址类型Ipv4,地址主叫ip219.150.170.175s=sessionSDP/会话名:sessionSDPc=INIP4219.150.170.175/连接数据:
21、网络类型internet,地址类型Ipv4,连接地址219.150.170.175t=00/无开始和结束时间m=audio10000RTP/AVP048/媒体格式:媒体类型audio,端口号10000,传送层协议RTP/AVP,格式列表为048a=ptime:20/媒体分组的时长20sa=rtpmap:0PCMU/8000/净荷类型0,编码名PCMU,抽样速度为8kHZa=rtpmap:4G723/8000/净荷类型4,编码名G723,抽样速度为8kHZa=rtpmap:8PCMA/8000/净荷类型8,编码名PCMA,抽样速度为8kHZm=video10002RTP/AVP34/媒体格式:媒
22、体类型video,端口号10002,传送层协议RTP/AVP,格式列表为34a=rtpmap:34H263/90000/净荷类型34,编码名H263,抽样速度为90kHZ。2软交换应答TryingSIP/2.0100TryingVia:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”From:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITE。3软交换转发INVITE到被叫INVITEsip:5
23、361201219.150.170.177SIP/2.0Via:SIP/2.0/UDP219.150.172.66:5060;branch=751e6026.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”From:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITEContact:Max-Forwards:69Record-Route:User-Agent:ZTEMULTIMEDIAS
24、IPPHONE/V1.004-01-10Content-Type:application/sdpContent-Length:266v=0o=536120333395842673608019723INIP4219.150.170.175s=sessionSDPc=INIP4219.150.170.175t=00m=audio10000RTP/AVP048a=ptime:20a=rtpmap:0PCMU/8000a=rtpmap:4G723/8000a=rtpmap:8PCMA/8000m=video10002RTP/AVP34a=rtpmap:34H263/90000。4被叫应答TryingS
25、IP/2.0100TryingVia:SIP/2.0/UDP219.150.172.66:5060;branch=751e6026.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”From:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITERecord-Route:Content-Length:0。5被叫应答RingingSIP/2.0180RingingVia:SIP/2.0/UDP
26、219.150.172.66:5060;branch=751e6026.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITERecord-Route:Contact:Content-Length:0。6被叫应答OKSIP/2.0200OKVia:SIP/2.0/UDP219.150.1
27、72.66:5060;branch=751e6026.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITERecord-Route:Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,MESSAGE,INFO,UPDATEContact:Content-Type:a
28、pplication/sdp/表述SDP会话描述Content-Length:218/消息长度字节数218v=0/版本号o=536120133395842683608019724INIP4219.150.172.66/会话源:用户名5361201,会话标识3339584268,版本3608019724,网络类型internet,地址类型Ipv4,地址219.150.172.66s=SDPSessionForC&SMoIP/会话名:SDPSessionForC&SMoIPc=INIP4219.150.170.177/连接数据:网络类型internet,地址类型Ipv4,连接地址219.150.1
29、70.177t=00/开始结束时间,无m=audio40000RTP/AVP0/被叫匹配的媒体格式:媒体类型audio,端口号40000,传送层协议RTP/AVP,格式列表为0a=rtpmap:0PCMU/8000/净荷类型0,编码名PCMU,抽样速度为8kHZm=video40002RTP/AVP34/媒体格式:媒体类型video,端口号40002,传送层协议RTP/AVP,格式列表为34a=rtpmap:34H263/90000/净荷类型34,编码名H263,抽样速度为90kHZ。7软交换转发RingingSIP/2.0180RingingVia:SIP/2.0/UDP219.150.17
30、0.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITEContact:Record-Route:Content-Length:0。8软交换转发OKSIP/2.0200OKVia:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW5
31、6kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15688INVITEContact:Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,MESSAGE,INFO,UPDATERecord-Route:Content-Type:application/sdpContent-Length:218v=0o=536120133395842683608019724INIP4219.150.172.66s=SDPSessionForC&SMoIPc=INIP42
32、19.150.170.177t=00m=audio40000RTP/AVP0a=rtpmap:0PCMU/8000m=video40002RTP/AVP34a=rtpmap:34H263/90000。9主叫发送ACKACKsip:219.150.172.66SIP/2.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.1
33、75CSeq:15688ACKContact:Max-Forwards:70Route:。10软交换转发ACKACKsip:5361201219.150.170.177SIP/2.0Via:SIP/2.0/UDP219.150.172.66:5060;branch=4b781cbf.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK56fb62b7To:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.15
34、0.170.175CSeq:15688ACKContact:Max-Forwards:69。11主叫挂机BYEsip:219.150.172.66SIP/2.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK5b9377abTo:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15689BYEMax-Forwards:70Route:User-Agent:ZTEMULTIM
35、EDIASIPPHONE/V1.004-01-10。12软交换转发BYEBYEsip:5361201219.150.170.177SIP/2.0Via:SIP/2.0/UDP219.150.172.66:5060;branch=03e255d5.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK5b9377abTo:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15689
36、BYEMax-Forwards:69User-Agent:ZTEMULTIMEDIASIPPHONE/V1.004-01-10。13被叫应答OKSIP/2.0200OKVia:SIP/2.0/UDP219.150.172.66:5060;branch=03e255d5.0Via:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK5b9377abTo:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.1
37、75CSeq:15689BYEContent-Length:0。14软交换转发OKSIP/2.0200OKVia:SIP/2.0/UDP219.150.170.175:5060;branch=z9hG4bK5b9377abTo:”5361201”;tag=jmNAzkktW56kiV0M1YFrom:”5361203”;tag=afaa96db-30263Call-ID:1b4659ea-afaa96db219.150.170.175CSeq:15689BYEContent-Length:0。3.2 H.248中sdp消息举例描述这个例子中只列举到通话状态这部分。其中主叫IP:219.150.
38、172.177被叫IP:219.150.172.178软交换IP:219.150.172.66。1主叫摘机:MEGACO/1219.150.172.177:2944Transaction=29317Context=-Notify=AG58901ObservedEvents=200020020403T01231800:al/of。2软交换要求主叫检测挂机:!/1219.150.172.66:2944T=27587C=-MF=AG58901E=2001al/on,al/fl,SG。3软交换向主叫下发号码表:!/1219.150.172.66:2944T=27588C=-MF=AG58901DM=D
39、M664432644872(116117|11819|179xx|19020x|53xxxxx|999xxxx|10xxxSx.F),E=2002dd/ceDM=DM664432644872,mfd/ceDM=DM664432644872,al/on,al/fl,SGcg/dt。4主叫拨号:MEGACO/1219.150.172.177:2944Transaction=29318Context=-Notify=AG58901ObservedEvents=200220020403T01232100:dd/ceds=“5365001”,Meth=FM。5软交换要求主叫增加媒体:!/1219.150
40、.172.66:2944T=27589C=$A=AG58901E=2003al/on,al/fl,A=$MST=1OMO=RC,nt/jit=40,L/软件换要求增加本地sdp媒体描述v=0/版本为0c=INIP4$/要求增加网络类型internet,地址类型Ipv4,连接地址m=audio$RTP/AVP0/媒体格式:媒体类型audio端口号,传送层协议RTP/AVP,格式为0a=ptime:20/媒体打包时长为20s,E=1976nt/netfail,nt/qualertth=0MEGACO/1219.150.172.177:2944Reply=27589Context=29320Add=AG58901,Add=RTP/00000MediaStream=1Local