【转】SDP

SDP语法

  一个SDP描述含有会话级信息和媒体级信息。会话级信息应用于整个会话。例如:它能成为会话始发者或者会话的名字。媒体级信息作用于特殊的媒体流。例如:它能作为一个编码器给音频流编码或者是给视频流发送端口号。

  一个SDP会话描述以会话级信息和媒体级信息开始,如果任意一个出现,另外一个就接着在后面出现。会话级部分以v=0开始,v代表类型,0为值,意思是协议版本号为0(SDP版本为0).接下来的行直到媒体级部分或者会话描述的终点,提供了整个会话的信息。

  媒体级部分以m行开始。下面的行直到下一个m行出现,或者直到会话描述的终点,提供了特定媒体流的信息。

   m=<媒体类型><端口号><传输协议><媒体格式>

  <端口号>说明了在什么地方能够接收到媒体。

   <传输协议>域通常取值为RTP/AVP,但如果不使用RTP协议,也能够取其他值。

   <媒体格式>取决于媒体传输的类型。对于音频,它就是正在使用的编码解码器。

  下面是一个SDP会话描述的例子:

  /*****************会话级部分-开始*****************/

    v=0

    //协议版本号为0

    o=Bob 2890844526 289084207 IN IP4 131.160.1.112

    //o行说明了会话的创建者(Bob)和他的站点的地址

    s=SIP Seminar

    //s行包含了会话的名字

    i=A Seminar on the Session Initiation Protocol

    //i行包含了会话的一般信息

    u=http://www.cs.columbia.edu/sip

    //u行提供了统一资源定位器(URL,Uniform Resource Locator),在这个地址中能够检索到有关会话主题的更多内容

    e=bob@university.edu

    //e行含有会话联系人的E-mail地址

    c=IN IP4 224.2.17.12/127

    //c行描述了能够接收到会话的多播地址

    t=2873397496 2873404696

    //t行说明了什么时候会话是激活的

    a=recvonly

    //a行说明了这个会话不是交互式的,它只能接收

  /*****************会话级部分-结束*****************/

  /*****************媒体级部分-开始*****************/

    m=audio 49170 RTP/AVP 0

    //RTP/AVP指对于RTP的音频/视频描述文件,经过编码的音频和视频是在UDP上使用RTP传输,值0意味音频是在单个信道中使用PCM u-law进行编码和以8kHz的频率采样。

    a=rtpmap:0 PCMU/8000

    //a=rtpmap行传送有关媒体使用的信息,如时钟频率和信道数量。

    m=vidio 51372 RTP/AVP 31

    a=rtpmap:31 H261/9000

    //媒体格式号31是指H.261协议并且使用90kHz的时钟频率

    m=video 53000 RTP/AVP 32

    a=rtpmap:32 MPV/90000

    //第一个媒体流的类型为音频,第二个和第三个媒体流的类型为视频

  /*****************媒体级部分-结束*****************/ 

SDP类型

v

协议版本
b 带宽信息
o 会话的主人和会话标识
z 调节时区
s 会话的名称
k 密钥
i 会话信息
a 属性行
u 含有会话描述的URL
t 会话激活的时间
e 获得会话信息的E-Mail地址
r 会话重复的次数
p 获得会话信息的电话号码
m 媒体行
c 连接信息
i 媒体行信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

扩展SDP

  媒体属性行(也就是a行)提供了一种扩展SDP的方法。当应用需要一个在SDP中没有包含的特征时,可以通过增加a行来包含这个特征。例如,如果多播会话的创建者想要接收者以某种特定音量播放音频,他或她能够定义一个新的媒体属性,并把这种新媒体属性加在媒体级部分的末端。

  m=audio 49170 RTP/AVP 0

  a=volume:8

  随后,理解这个新a行的应用程序就以音量8播放音频。当应用程序发现一个它不能理解的a行时,就简单地忽视这一行并继续往下处理,就像没有遇到此行一样。尽管它不能以正确的音量回放音频,不能理解新行a=volume的应用程序仍然能够正确接收该媒体。   

 

如有不对的地方,非常欢迎各位给予指导!

——来自Gonzalo著,白建军译《SIP揭密》

 

posted on 2017-07-08 16:17  Engraver  阅读(352)  评论(0编辑  收藏  举报

导航