SDP参数讲解

原文装载:http://blog.csdn.net/xu_fu/article/details/7560720#comments


v=  (protocol version)                                           //v=0


o=  (owner/creator and session identifier).    //o=<用户名><会话id><版本><网络类型><地址类型><地址>


//例如:o=sname1234567890 0987654321 IN IP4126.15.64.3
s= (session name)                                             //会话名


i=* (session information)                                  //会话信息


u=* (URI of description)                                    //URI


e=* (email address)       //email                                                                      


p=* (phone number)                                         //phone                                                                            


c=* (connection information -如已经包含在所有媒体中则该行不需要)


                                                                            //c=<网络类型><地址信息><连接地址> 例如:c=IN IP4 224.2.13.23/127                                                                    


b=* (bandwidth information)             //b=<修改量(CT Conference Total IASApplication-specific Max)>:<带宽值(kb/s)>


                                                                           //例如:b=CT:120


z=* (time zone adjustments)                        //时区调整


k=* (encryption key)                                        //k=<方法>:<密钥>或k=<方法>


a=* (zero or more session attribute lines)     //a=<属性>  或a=<属性>:<值>




时间描述:


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,如果端口号为0则表示端口还未确定                                                                           


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>


SDP各type的详细解释:


协议版本 v=  SDP版本目前为0,没有子版本


会话源   o=  <用户名>用户在发起主机上登录名,如果主机不支持用户标识的概念,则为”-”


                      <会话id>一般为数字串,其分配由创建工具决定,建议用网络时间协议(NTP)时戳,以确保唯一性.


                       <版本>该会话公告的版本,供公告代理服务器检测同一会话的若干个公告哪个是最新公告.基本要求是会话数据修改后该版本值递增,建议用NTP时戳


                       <网络类型>为文本串”IN”


                       <地址类型>”IP4”(可为域名或点分十进制)/”IP6”(域名或压缩文本地址形式)


                        <地址>


会话名      s=  ISO10646字符表示的会话名


会话信息  i=   ISO10646字符表示的会话信息


URI      u=能提供会议进一步信息的URI地址


Email        e=给出会议负责人的联系信息,他不一定是创建会议公告的人


电话号码  p=给出会议负责人的联系信息,他不一定是创建会议公告的人(国际通用形式)


连接数据  c= 媒体连接数据,会话级为媒体级的摸认值


带宽          b= 给出会话或媒体所用带宽,单位为kbit/s.修饰语:CT(会议总带宽,表示所有地点所有媒体的总带宽),AS(应用特定最大带宽,表示一个地点单一媒体带宽)


加密密钥  k= 已定义的方法有


                  k=clear:<加密密钥>密钥没有变换


                  k=base64:<编码密钥>已编码,因为它含有SDP禁用的字符


                  k=uri:<获得密钥的URI>


                  k=prompt。SDP没有提供密钥但该会话或媒体流是要求加密的。


属性          a= (一个m=行可有多个a=行),SDP建议扩展如下


                 会话级:       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=video 49170/2 RTP/AVP31(表示:端口49170和49171为第一对RTP/RTCP端口,49172和49173为第二对的端口)。


                         <传送层协议>与c=行的地址类型有关。对大多的媒体在RTP/UDP上传送,定义2种:RTP/AVP:IETF RTP协议,音/视频应用文档。在UDP上传送。


                         <格式列表>对音/视频,就是音/视频应用文档中规定媒体净荷类型。列表中都有可能用,但第一个为缺省值,分为静态绑定和动态绑定:静态绑定即使媒体编码                                        方式有净荷类型号完全确定,动态绑定则媒体编码方式(如时钟频率,音频信道数等)没有完全确定,需要进一步的属性说明。分别举例如下:


                            Alaw的PCM编码单信道Audio,其净荷类型号为8,把它发往UDP端口49232,则:m=audio 49232 RTP/AVP 8


                            16bit线性编码,双声道立体声,抽样速率16kHz,其动态净荷类型号98,则:m=audio 49232 RTP/AVP 98


                            a=rtpmap:98 L16/16000/2


                            说明:1)a=rtpmap:<净荷类型号><编码名>/<时钟速率>[/<编码参数>]


                                       对音频,编码参数为音频信道数;对视频没有定义


                                       2)SDP允许rtpmap规定实验性编码格式,但编码名必须以X-起,表示此格式还没正式登记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值