SDP协议简述

来源:互联网 发布:java获取post请求数据 编辑:程序博客网 时间:2024/04/28 02:33

SDP协议概述

简介

SDP 完全是一种会话描述格式, 它不属于传输协议.

它使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、 实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。

SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强, 这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商, 所以在流媒体中只用来描述媒体信息。媒体协商这一块要用RTSP来实现.

SDP协议格式

SDP描述由许多文本行组成,文本行的格式为<类型>=<值>,<类型>是一个字母,<值>是结构化的文本串,其格式依<类型>而定。

<type>=<value>[CRLF]

sdp的格式:

v=<version>o=<username> <session id> <version> <network type> <address type> <address>s=<session name>i=<session description>u=<URI>e=<email address>p=<phone number>c=<network type> <address type> <connection address>b=<modifier>:<bandwidth-value>t=<start time> <stop time>r=<repeat interval> <active duration> <list of offsets from start-time>z=<adjustment time> <offset> <adjustment time> <offset> ....k=<method>k=<method>:<encryption key>a=<attribute>a=<attribute>:<value>m=<media> <port> <transport> <fmt list>v = (协议版本)o = (所有者/创建者和会话标识符)s = (会话名称)i = * (会话信息)u = * (URI 描述)e = * (Email 地址)p = * (电话号码)c = * (连接信息)b = * (带宽信息)z = * (时间区域调整)k = * (加密密钥)a = * (0 个或多个会话属性行)时间描述:t = (会话活动时间)r = * (0或多次重复次数)媒体描述:m = (媒体名称和传输地址)i = * (媒体标题)c = * (连接信息 — 如果包含在会话层则该字段可选)b = * (带宽信息)k = * (加密密钥)a = * (0 个或多个媒体属性行)

SDP协议举例说明

SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,它是一个基于文本的协议,用于会话建立过程中的媒体类型和编码方案的协商等。

消息正文格式:

v=0 //该行指示协议的版本

o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 //o行中包含与会话所有者有关的参数

  • 第一个参数表明会话发起者的名称,该参数可不填写,如填写和SIP消息中,from消息头的内容一致。
  • 第二个参数为主叫方的会话标识符。
  • 第三个参数为主叫方会话的版本,会话数据有改变时,版本号递增。
  • 第四个参数定义了网络类型,IN表示Internet网络类型,目前仅定义该网络类型。
  • 第五个参数为地址类型,目前支持IPV4和IPV6两种地址类型。
  • 第六个参数为地址:表明会话发起者的IP地址,该地址为信令面的IP地址,信令PDP激活时为手机分配。

s=SDP Seminar //表明本次会话的标题,或会话的名称

i=A Seminar on the session description protocol //会话的描述

u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps //会话的URI,通过该地址可以查阅到会话的更多内容

e=mjh@isi.edu (Mark Handley) //会话责任人的EMIAL地址

c=IN IP4 224.2.17.12/127 //C行包含为多媒体会话而建立的连接的信息,其中指出了真正的媒体流使用的IP地址

  • 第一个参数为网络类型,目前仅定义INTERNET网络类型。用“IN”表示。
  • 第二个参数为地址类型,目前支持两种地址类型:IPV4和IPV6。
  • 第三个参数为地址,该地址为多媒体流使用的IP地址。

t=2873397496 2873404696 //表示会话的开始时间和结束时间

  • 第一个参数表明会话的开始时间,数字表明从1900年1月1日00:00以来所经过的秒数。
  • 第二个参数表明会话的结束时间,数字表明从1900年1月1日00:00以来所经过的秒数。

m=audio 3458 RTP/AVP 0 96 97 // m行又称媒体行,描述了发送方所支持的媒体类型等信息

  • 第一个参数为媒体名称:表明支持音频类型。
  • 第二个参数为端口号,表明UE在本地端口为3458上发送音频流。
  • 第三个参数为传输协议,一般为RTP/AVP协议。
  • 第四~七参数为所支持的四种净荷类型编号

a=rtpmap:0 PCMU //a行为媒体的属性行,以属性的名称:属性值的方式表示。
a=rtpmap:96 G726-32/8000
a=rtpmap:97 AMR-WB

格式为:a=rtpmap:<净荷类型><编码名称> * 净荷类型0固定分配给了PCMU, * 净荷类型96对应的编码方案为G.726,为动态分配的。 * 净荷类型97对应的编码方式为自适应多速率宽带编码(AMR-WB),为动态分配的。

m=video 3400 RTP/AVP 98 99 //m行又称媒体行,描述了发送方所支持的媒体类型等信息

  • 第一个参数为媒体名称:表明支持视频类型。
  • 第二个参数为端口号,表明UE在本地端口为3400上发送视频流。
  • 第三个参数为传输协议,一般为RTP/AVP协议。
  • 四、五参数给出了两种净荷类型编号

a=rtpmap:98 MPV
a=rtpmap:99 H.261

格式为:a=rtpmap:<净荷类型><编码名称> * 净荷类型98对应的编码方案为MPV,为动态分配的。 * 净荷类型97对应的编码方式为H.261,为动态分配的。

0 0
原创粉丝点击