您的位置:首页 > 其它

sip与sdp

2017-12-19 09:25 441 查看
sip协议基础 

会话初始协议(seesion initiation protocol)是一个控制发起,修改和终结交互式多媒体会话的信令协议。 

sip是一个基于文本的协议。http请求与sip请求:
http:
GET /index.html HTTP/1.1
SIP:
INVITE sip:seven@freeswitch.org.cn SIP/2.0
1
2
3
4
5

在http请求中,GET指明一个获取资源的动作,/index.html则是资源的地址,最后HTTP/1.1是协议版本号;而在SIP中,INVITE表示发起一次呼叫请求,seven@freeswitch.org.cn为请求的地址,第三部分的sip/2.0也是版本号。



sip和sdp:

Sip负责建立和释放会话,一般来说,会话会包含相关的媒体,如视频和音频。媒体数据是有sdp描述的。Sdp一般不单独使用,他与sip配合使用时会放到sip协议的征文(boby)中。 

会话建立时,需要媒体协商,双方才能确定对方的媒体能力以及交换媒体数据。(这就是sdp的工作) 



一个空行把sip头和sip正文部分隔开。 

主要介绍一下sdp的内容: 

1 v=:Version ,表示协议的版本号 

2 o=: Origin,表示源。值域中各项的含义依次是username(用户名),sess-id(会话ID),sess-version(会话版本号),nettype(网络类型),addrtype(地址类型),unucast-address(单播地址)。 

3 s=:Session Name,表示本sdp所描述的session的名称 

4 c=:Connection Data 链接数据。其中值域中以空格分配的两个字段分贝是网络类型和网络地址,以后的RTP流就会发到该地址上。 

5 b=:Badwidth type,带宽类型 

6 t=:Timing ,起止时间,0表示无限 

7 m=:audio Media Type,媒体类型。audio表示音频,50452表示音频端口号,RTP/AVR是传输协议;后面是支持的Codec类型,与RTP流中的PayloadType(载荷类型)相对应,在这里分别是8,0,98和101,8和0分别代表PCMA和PCMU,他们属于静态编码,大于95的编码都属于动态编码,需要在后面使用“a=rtpmap”进行说明。 

8 a=: Attributes,属性。 它用于描述上面的音频的属性。如本例中98代表8000hz的ILBC编码,101代表RFC2833dtmf事件。a=sendrecv表示该媒体流可用于收和发,其他的还有sendonly(仅收),recvonly(仅发)和inactive(不收不发) 

9 v=:Video,视频。 

媒体流的协商过程称为soa。通俗的讲,他首先由一方提供支持的codec类型,由另一方选择。

Sip承载:http使用tcp承载的,而sip则支持tcp和udp承载。我们常见的sip都是用udp承载的,由于udp是面向无连接的,在大并发量的情况下与tcp相比较可也减少开销。但超出了ip层窗口的大小,在经过路由器的时候可能会被拆包,造成消息可能丢失,乱序,这时候就是用tcp.

转自: http://blog.csdn.net/duolezengjie/article/details/51089037
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sip spd