会话描述协议(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. ios 获取屏幕的属性

    屏幕尺寸     CGRect screen = [UIscreen mainScreen].bounds 状态栏尺寸  CGRect rect = [[UIApplication sharedApp ...

  2. c_str()函数

    #include <string.h> const char *c_str(); 返回字符串地址,是一个c函数,返回类型const char*c_str()函数返回一个指向正规C字符串的指 ...

  3. GitHub项目协作基本步骤

    1.查找某个项目,然后Fork 2.打开GitHub For Windows,发现刚才Fork的项目 3.对着项目点击Clone,将之复制至本地 4.使用Eclipse等进行开发,如新增一个文件 5. ...

  4. 我的开源框架之Accordion控件

    需求: (1)实现手风琴面板控件,支持静态HTML与JSON方式创建控件 (2)支持远程加载数据 (3)支持面板激活.远程加载事件注册 (4)支持动态添加.删除项目 实现图例 客户代码 <div ...

  5. Django学习之路

    Django Website Collect django packages http://djangopackages.com/ django project http://code.djangop ...

  6. Radar Installation(POJ 1328 区间贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 68578   Accepted: 15 ...

  7. 启动PL/SQL Developer 报字符编码不一致错误,Database character set

    错误内容: Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character ...

  8. C# 编写服务 Windows service

    1.编写服务教程 http://jingyan.baidu.com/article/ea24bc395e16f8da62b331e7.html 这里不多说了. 给大家一个连接,上面有详细的教程,下面说 ...

  9. JSON 数字排序 多字段排序

    原文http://bbs.csdn.net/topics/390594744?page=1#post-395599672 //排序数组 function SortBy(field, reverse, ...

  10. 数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总

    习·D3.js 学习资源汇总 除了D3.js自身以外,许多可视化工具包都是基于D3开发的,所以对D3的学习就显得很重要了,当然如果已经有了Javascript的经验,学起来也会不费力些. Github ...