SDP:Session Description Protocol

SDP格式:

   Session description
       v=  (protocolversion)
       o=  (owner/creatorand session identifier)
       s=  (sessionname)
        i=* (sessioninformation)
        u=* (URI ofdescription)
        e=* (emailaddress)
        p=* (phonenumber)
        c=*(connection information - not required if included in allmedia)
        b=* (zero ormore bandwidth information lines)
        One or moretime descriptions ("t=" and "r=" lines, see below)
        z=* (timezone adjustments)
        k=*(encryption key)
        a=* (zero ormore session attribute lines)
        Zero or moremedia descriptions

Time description
       t=  (time thesession is active)
        r=* (zero ormore repeat times)

Media description, if present
       m=  (media nameand transport address)
        i=* (mediatitle)
        c=*(connection information - optional if included at
           session-level)
        b=* (zero ormore bandwidth information lines)
        k=*(encryption key)
        a=* (zero ormore media attribute lines)

以上带"*"号的是可选的,其余的是必须的。一般顺序也按照上面的顺序来排列。

a=*是sdp协议扩展属性定义,除上面以外的,分解时其它的都可以扔掉。
a=charset属性指定协议使用的字符集。一般的是ISO-10646。

示例:
v=<username><sess-id><sess-version><nettype><addrtype><unicast-address>
  其中:nettype是IN,代表internet,addrtype是IP4或IP6。unicast-address任务创建计算机的地址。
   整个这个属性,是唯一表示一个任务。

e=123@126.com 或 p=+1 616555-6011
对于一个任务只能两者之中的一个,表示会议控制者的联系方式。邮件地址可以是[email]j.doe@example.com[/email](Jane Doe)形式,括号里面的是描述联系人的名称,或者Jane Doe<[email]j.doe@example.com[/email]>,前面的是联系人的名称。

c=<nettype><addrtype><connection-address>
这个连接数据,可以是传话级别的连接数据,或者是单独一个媒体数据的连接数据。在是多播时,connection-address就该是一个多播组地址,当是单播时,connection-address就该是一个单播地址。对于addrtype是IP4的情况下,connection-address不仅包含IP地址,并且还要包含a time to live value(TTL 0-255),如:c=IN IP4224.2.36.42/128,IP6没有这个TTL值。还允许象这样的<base multicastaddress>[/<ttl>]/<numberof addresses>格式的connection-address。如:c=IN IP4224.2.1.1/127/3等同于包含c=IN IP4 224.2.1.1/127, c=IN IP4 224.2.1.2/127,c=IN IP4 224.2.1.3/127三行内容。

b=<bwtype>:<bandwidth>bwtype可以是CT或AS,CT方式是设置整个会议的带宽,AS是设置单个会话的带宽。缺省带宽是千比特每秒。
t=<start-time><stop-time>,这个可以有行,指定多个不规则时间段,如果是规则的时间段,则r=属性可以使用。start-time和stop-time都遵从NTP(Network TimeProtocol),是以秒为单位,自从1900以来的时间。要转换为UNIX时间,减去2208988800。如果stop-time设置为0,则会话没有时间限制。如果start-time也设置为0,则会话被认为是永久的。

r=<repeat-interval><active duration><offsets fromstart-time>重复次数在时间表示里面可以如下表示:
     d - days (86400 seconds)
     h - hours (3600 seconds)
     m - minutes (60 seconds)
     s - seconds (allowed for completeness)
z=<adjustment time><offset> <adjustmenttime> <offset>....
k=<method>
k=<method>:<encryptionkey>
a=<attribute>
a=<attribute>:<value>
m=<media><port><proto><fmt> ...
m=<media><port>/<number ofports> <proto><fmt> ...
其 中:<media>可以是,"audio","video","text", "application" and"message"。<port>是媒体传送的端口号,它依赖于c=和<proto>。<proto>可以是,udp,RTP/AVP和RTP/SAVP。

a=cat:<category>分类,根据分类接收者隔离相应的会话
a=keywds:<keywords>关键字,根据关键字隔离相应的会话
a=tool:<name and version oftool>创建任务描述的工具的名称及版本号
a=ptime:<packettime>在一个包里面的以毫秒为单位的媒体长度
a=maxptime:<maximum packettime>以毫秒为单位,能够压缩进一个包的媒体量。
a=rtpmap:<payload type><encoding name>/<clockrate> [/<encoding  parameters>]
a=recvonly
a=sendrecv
a=sendonly
a=inactive,
a=orient:<orientation>其可能的值,"portrait","landscape" and "seascape" 。
a=type:<conferencetype>,建议值是,"broadcast", "meeting", "moderated","test" and "H332"。
a=charset:<character set>
a=sdplang:<languagetag>指定会话或者是媒体级别使用的语言
a=framerate:<framerate>设置最大视频帧速率
a=quality:<quality>值是0-10
a=fmtp:<format><format specific parameters>

在SIP协议的包含的内容是SDP时,应该把Content-Type设置成application/sdp。

SDP协议 学习笔记相关推荐

  1. Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  2. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  3. POP3协议学习笔记

    今日得闲,于是将POP3的学习笔记也整理出来! 互联网上的TCP/IP,POP3/SMTP等资料多如牛毛,这里只是自己一点点心得,另外对于各位网络方面的大牛请安静的路过,我可不喜欢在关公面前耍大刀.. ...

  4. CoAP协议学习笔记 1.3 用UDP工具来调试CoAP

    1 前言 CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持. 既然CoAP是基于UDP来组包的,那肯定是可以实现. 所以这篇文章给 ...

  5. 网络协议学习笔记 · 22

    IPv6 · 流媒体 · 即时通讯 · 缓存 · 网络爬虫 VPN 作用 VPN与代理的区别 实现原理(隧道协议) 网络爬虫 简易实例 robots.txt 无线网络 缓存(Cache) 响应头 请求 ...

  6. CoAP协议学习笔记 1.2 一张表了解 CoAP 协议

    1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来.我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题. 本篇笔记中先对 CoAP 协议内容做个基础了解 ...

  7. CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍

    CoAP协议学习笔记可点此查看. 1 前言 在之前的学习中,没有过多关注加密.但实际部分厂家的IoT平台(阿里云.OneNET)已经启用了相关安全处理,有必要深入学习下. 在 CoAP 协议 RFC7 ...

  8. BGP协议学习笔记——BGP基础

    BGP协议学习笔记--BGP基础(BGP概念.BGP报文.BGP状态机.BGP关系建立.BGP路由通告) 说明:本文学习笔记整理自网络.华为公开产品文档.华为公开PPT及部分的自我理解 一.BGP简介 ...

  9. 极客HTTP协议学习笔记破冰篇(1-7)

    极客HTTP协议学习笔记破冰篇(1-7) 前言 各篇章笔记链接 一.学习笔记 1.HTTP的前世今生 2.HTTP是什么 3.与HTTP相关的各种概念(上) 4.与HTTP相关的各种概念(下) 5.常 ...

最新文章

  1. 通过Windows的远程桌面连接树莓派
  2. Py之PyTables:PyTables的简介、安装、使用方法详细攻略
  3. python下载地址 windows
  4. ASP.NET MVC 实现多文件上传
  5. % mysql 代表_MySQL中的星号(*)和百分号(%)代表表示什么,MySQL的库名、表名、字段名、字段值是否区分大...
  6. 图文+动画讲解排序算法总结!!
  7. collection集合 多少钱_面试必备-Java集合框架
  8. ecmall挂件开发
  9. hadoop漏洞_【漏洞公告】CVE-2017-7669:Apache Hadoop远程权限提升漏洞
  10. HDOJ-2091 空心三角形 C语言
  11. 【MATLAB深度学习工具箱】学习笔记--螃蟹公母分类Crab Classification
  12. 2019年第十届C/C++ B组蓝桥杯省赛真题
  13. 应用,传输层协议和端口对应关系
  14. 硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等
  15. 中国域名8大玩家传奇故事
  16. 惊!用python将数据存到txt文件中发现顺序乱排或缺斤少两
  17. 如何设置excel中一部分表格显示但是不打印?
  18. 【Altium designer】PCB 各层简介
  19. 推荐一个博客工具——Boke宝贝
  20. 透视表中如何使用多条件中位数

热门文章

  1. LSGO软件技术团队2015~2016学年第十周(1102~1108)总结
  2. 【转】WebApi 身份认证解决方案:Basic基础认证
  3. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
  4. 【转】OneDrive开发入门
  5. a标签里面设置onclick_实现a标签中的各种点击(onclick)事件的方法
  6. 【51nod - 1875】 丢手绢(约瑟夫问题,可打表,用STL模拟)
  7. python 问题集
  8. 获取键盘录入的5个int数,并存放到int数组arr中,输入前提示输入的是第几个值 * * 2.2 传递数组arr调用getNum(int[] arr)方法,获取返回值,并打印输出
  9. .写一个方法 void printScore(int score),输出相应的等级。score代表分数,等级格式如下:
  10. 编译安装mysql5.6.36_MySQL5.6.36编译安装