SDP协议 学习笔记

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太坊私有链 使用dev模式

dev 使用dev模式&#xff0c;创建一个管理员账号&#xff0c;控制挖矿&#xff0c;将证明机制改为POA启动dev模式&#xff0c;需要重新创建一个文件夹&#xff0c;重新搭建私有链条 命令 mkdir myDevChain cd myDevChain geth --datadir . --dev console 2>output.log 实…

超文本传输协议

超文本传输协议 超文本传输协议超文件传输协定(HTTP&#xff0c;HyperTextTransfer Protocol)是因特网上应用最为广泛的一种网络传输协定。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 目录 介绍请求信息请求方法安全方法超…

以太坊区块链 JSON-RPC

RPC定义 以太坊客户端提供了API和一组远程调用的&#xff08;RPC&#xff09;命令&#xff0c;这些命令被编码成json的格式&#xff0c;被叫做JSON-RPC-API。本质上&#xff0c;JSON-RPC API就是一个接口&#xff0c;允许我们编写的程序使用以太坊客户端作为网关&#xff0c;访…

利用MFC调用libvlc.dll作一个简单的播放器

简单介绍MFC调用libvlc.dll作一个简单的播放器&#xff0c;抛砖引玉&#xff0c;各位VC达人继续深入研究&#xff0c;Jeremiah对VC确实不太感兴趣&#xff0c;所以就不做太深入的研究了。2009.10.29修改&#xff1a;加入clip_children属性设置。参开第1步。环境&#xff1a; …

对于以太坊虚拟机 (EVM)及其相关知识的讲解

以太坊虚拟机&#xff08;EVM&#xff09; EVM是智能合约的运行环境作为区块验证协议的一部分&#xff0c;参与网络的每个节点都会运行EVM&#xff0c;审查节点会检查验证正在验证的区块中列出的交易&#xff0c;并运行EVM中交易触发的代码EVM是沙盒封装的&#xff0c;并且是完…

对于以太坊的Solidity语言介绍

Solidity是什么 Solidity是一门面向合约的、为实现智能合约而创建的高级编程语言&#xff0c;主要目的是为了在以太坊虚拟机&#xff08;EVM&#xff09;上运行Solidity是静态语言&#xff0c;支持继承、库和复杂的用户定义等特性内含的类型除了常见的编程语言中的标准类型&am…

live555 接收rtsp视频流流程分析

live555 接收rtsp视频流流程分析 RTSP交互流程 C表示RTSP客户端&#xff0c;S表示RTSP服务端 ① C->S: OPTIONrequest //询问S有哪些方法可用 S->C: OPTION response //S回应信息中包括提供的所有可用方法 ② C->S: DESCRIBErequest //要求得到S…

使用Remix编写Solidity语言的小例子

设置数值/取数值/加法运算 讲解 uint默认使用256位数的整型view表示这个函数仅仅对于数据仅仅是读取&#xff0c;没有修改操作returns(uint )&#xff0c;如果单纯指定uint&#xff0c;返回的是函数体内的return值&#xff0c;如果包含uint sum,uint SAD_a&#xff0c;那么返…

RTP协议栈简介

流媒体指的是在网络中使用流技术传输的连续时基媒体&#xff0c;其特点是在播放前不需要下载整个文件&#xff0c;而是采用边下载边播放的方式&#xff0c;它是视频会议、IP电话等应用场合的技术基础。RTP是进行实时流媒体传输的标准协议和关键技术&#xff0c;本文介绍如何在L…

深入理解Solidity

Solidity源文件布局 pragma&#xff08;版本杂注&#xff09; 用于指定源文件的版本&#xff0c;表明编译器的版本&#xff0c;例如 pragma solidity ^0.4.0^用于指代版本号需要大于0.4.0但是不可以超过大的层级&#xff0c;必须小于0.5.0也可以使用大于等于小于来指定版本 i…

H264 流媒体 编码汇总

实时传输协议&#xff08;RTP&#xff09;和实时控制协议&#xff08;RTCP&#xff09; RTP是一种提供端对端传输服务的实时传输协议&#xff0c;用来支持在单目标广播和多目标广播网络服务中传输实时数据&#xff0c;而实时数据的传输则由RTCP协议来监视和控制。 RTP定义在RFC…

使用多线程的方式调用chineseocr_API

ChineseOCR在线API 网页链接 界面 提供多种接口调用方式&#xff0c;比如在线调用、Javascript api调用、curl api调用和python api调用四种方式&#xff0c;本次使用javascript api调用的方式进行OCR识别代码 import glob import base64 import os import requests import …

开源好代码 音视频

VirtualDub 一、简介 图1VirtualDub主界面 VirtualDub是一款开源的音视频捕获、处理软件。VirtualDub也可称为一款多媒体编辑软件&#xff0c;因为它包含了多媒体输入、编辑、处理、输出等各个环节&#xff0c;但是作者并未将它定位为一款多媒体编辑软件&#xff08;参见官网&a…

MAC对于Excel表格换行操作

按住option之后&#xff0c;点击Enter就可以完成换行操作

深入理解Solidity 二

Solidity数据位置 所有复杂的数据类型&#xff0c;即数组、结构和映射类型&#xff0c;都会有一个额外属性“数据位置”&#xff0c;用来指定数据的存储位置&#xff0c;即数据是存储在memory还是存储在storage里面根据上下文环境&#xff0c;IDE会自动指定数据的默认存储位置…

VOIP简介

一、什么是VOIP VOIP全称为&#xff08;VoiceOver Internet Protocol&#xff09;&#xff0c;是一种利用Internet网络进行语音通信的技术&#xff0c;更通俗一点说&#xff0c;就是IP电话。就是以IP分组交换网为传输平台&#xff0c;对模拟的语音信号进行编码压缩&#xff0c…

深入理解Solidity 三

Solidity函数声明和类型 函数的值类型有两类&#xff1a;内部&#xff08;internal&#xff09;类型和外部&#xff08;external&#xff09;类型内部函数只可以在当前合约内部被调用&#xff08;即在当前代码块内&#xff0c;包括内部库函数和继承函数&#xff09;&#xff0c…

HTTP状态代码及其定义

状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。在大多数情况下&#xff0c;除了Content-Type之外的所有应答头都是可选的。但Content-Type是必需的&#xff0c;它描述的是后面文档的MIME类型。虽然大多数应答都包含一个文档&#xff0c;但也有一些不包含&#…

安装solc模块4.25版本

使用国产阿里云的cnpm 如果不知道cnpm 参考链接 安装solc模块4.25版本 npm i solc0.4.25 --save -g查看安装是否成功 可以配置软连接使用solc&#xff0c;我的没有配置 solcjs --version

conda关键命令

创建环境 创建名字为python3的虚拟环境&#xff0c;并且指定conda的python版本为3.6--name也可以缩写为-namepython3.6 是指定python的版本号,如果不指定就默认为装anaconda时python版本python3是创建的新的虚拟环境的名字&#xff0c;创建完&#xff0c;虚拟环境安装在anacon…