会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。它只是用来描述,而不是一种传输协议。举例,在SIP协议的Message Header的Content-type字段为application/sdp,表明使用的是SDP协议。

SDP 会话描述如下:(标注 * 符号的表示可选字段):

协议结构



v = (协议版本) (v=0表明使用RFC4566)

o = (所有者/创建者和会话标识符) o=<username>
<session id> <version> <network type> <address type><address>

<username> 是登录会话起源主机的用户ID,如果会话起源主机没有用户ID的概念用"-"表示。用户ID不能包含空格。

<session id> 是数字串,<username>, <session id>, <network type>,<address type> 和 <address> 在一个会话中是全局唯一的。 <session id> 的分配方法依赖于创建工具,但通常建议用网络时间协议Network Time Protocol (NTP)的时间戳以保证它的唯一性。

<version>是宣告(announcement)的版本号。代理宣告(proxy announcements)需要使用它来探测同一个会话中哪些宣告是最近的,另外,它的使用依赖于创建工具。每一次会话数据的修改,需要增加<version>,建议(并非强制)使用NTP的时间戳。

<network type> 是描述网络类型的字符串。"IN"表示"Internet"。

<address type>是描述地址类型的字符串。目前定义了"IP4"、"IP6"。

<address> 是创建会话的机器的唯一全局地址。对于IP4类型,它是机器名或点号分割的IP地址。如果离开局域网,不要使用本地IP,因为这个IP已经没有什么意义。

s = (会话名称)  "s="
域指示会话名,每一个会话有且只有一个"s=" 域.

i = * (会话信息)  i=<session
description>

"i=" 域指示会话相关信息。 会话描述层至多可以有一个"i="域,每个媒体也可以至多有一个"i="域。"i="域是非强制的,可以省略。在媒体定义中,"i=" 域主要是标识一个媒体流。对于一种媒体类型有多个媒体流是很有用的,比如:有两个白板,一个用于放映幻灯,一个用于交流。

u = * (URI 描述) u=<URI>

一个URI是一个WWW资源的唯一资源标识符(Universal Resource Identifier);一个URI应该是一个会议的额外信息指示器;这个域是可选的,但是如果指定,它应该在第一个媒体域之前出现;每一个会话描述不能有超过一个的URI域。

e = * (Email 地址) e=<email
address>

p = * (电话号码) p=<phone
number>

c = * (连接信息 ― 如果包含在所有媒体中,则不需要该字段) 

b = * (带宽信息)

z = * (时间区域调整) 

k = * (加密密钥) 

a = * (0 个或多个会话属性行) 

时间描述



t = (会话活动时间) 

r = * (0或多次重复次数)

媒体描述

m = (媒体名称和传输地址) (常见的有‘audio’语音。‘video’视频)

i = * (媒体标题) 

c = * (连接信息 — 如果包含在会话层则该字段可选) 

b = * (带宽信息) 

k = * (加密密钥) 

a = * (0 个或多个会话属性行)

  

SDP协议的更多相关文章

  1. 蓝牙的SDP协议总结

    1.概念     SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性.SDP只提供发现服务的机制,不提供使用这些服务的方法.每个蓝牙设备都需要一个SDP Service, ...

  2. SDP协议译稿(Part 1)

    本文的翻译内容是基于Bluetooth Core Spec 2.1+EDR 协议中对SDP的描述,很多都是个人的理解,难免有疏漏,有争议或者疑问的地方,欢迎在此留言进行探讨. 2. Overview ...

  3. SDP协议分析

    一.SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP).会话初始协议(SIP).实时流协议(RTSP).MIME 扩展协 ...

  4. [转] SDP协议

    [转] SDP协议 http://blog.csdn.net/dxpqxb/article/details/18706471 1.SDP协议概述 SDP(Session Description Pro ...

  5. 蓝牙SDP协议概述

    之前写了一篇 bluedroid对于sdp的实现的源码分析   ,他其实对于sdp 协议本身的分析并不多,而是侧重于 sdp 处于Android bluedroid 架构中的代码流程,这篇文章,是针对 ...

  6. SDP协议简述

    SDP协议也是文本协议,只需要按照协议本身的格式填充.SDP协议格式即详细信息如下: 会话描述 格式及举例 v=(protocol version) v=0 o=(owner/creator and ...

  7. (转)SDP协议概述

    1 简介 SDP 完全是一种会话描述格式, 它不属于传输协议. 它使用不同的适当的传输协议,包括会话通知协议(SAP).会话初始协议(SIP). 实时流协议(RTSP).MIME 扩展协议的电子邮件以 ...

  8. SDP协议介绍

    一.SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP).会话初始协议(SIP).实时流协议(RTSP).MIME 扩展协 ...

  9. rtsp和sdp协议简介

    RTSP是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议. 实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,如音频和视频.尽管 ...

随机推荐

  1. alarm函数可以定时

    貌似是可以的,不过感觉好像这样用不是很好,最好还是用回timer_settimer一些列函数吧,不过既然开了头,就看下alarm怎么用吧. 1. 所需头文件  #include<unistd.h ...

  2. python 3.6 import pymysql错误

    在3.x之后可以用pymysql来代替之前的mysqldb模块. 首先安装pip: 终端命令: easy_install pip 随后成功安装pip 继续输入命令 pipinstall PyMySQL ...

  3. javaScript事件机制兼容【整理】

    [添加事件机制]  addEventListener  和  attachEvent [W3C] addEventListener('click' , function(){alert('Hello ...

  4. OpenCV——分水岭算法

    分水岭算法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形 ...

  5. uva 1596 Bug Hunt

    In this problem, we consider a simple programming language that has only declarations of one-dimensi ...

  6. TexturePacker文件的反向解析-TextureUnpacker

    最近在使用cocos2d-x做开发,其中会用到TexturePacker工具打包纹理文件,但是有时候想从打包好的.plist和.png大图文件反向生成原始的小图文件,TexturePacker好像没有 ...

  7. eclipse中默认的提示键

    Alt+/:代码提示 Ctrl+/:注释/取消注释 Ctrl+D:删除光标所在行 Ctrl+K:将光标停留在变量上,按Ctrl+K键可以查找到下一个同样的变量 Shift+Ctrl+K:和Ctrl+K ...

  8. (原)Ubuntu16中编译caffe

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5797526.html 参考网址: http://caffe.berkeleyvision.org/in ...

  9. 关于《Cocos2d-x建工程时避免copy文件夹和库》的更新

    在前几篇博文中大概了解了Cocos2d-x引擎的基本结构后打算开始实际操作,便在网上转载了一篇关于VS新建Cocos2d-x项目的文章.今天实际操作的时候发现博主使用的引擎版本和我的不一致(<C ...

  10. CentOS 6.4 LNMP 环境编译安装

    1.关闭 SELinux 编辑 /etc/selinux/config SELINUX="disabled" 2.安装编译器 yum install gcc gcc-c++ -y ...