sip与sdp

sip协议基础
会话初始协议(seesion initiation protocol)是一个控制发起,修改和终结交互式多媒体会话的信令协议。
sip是一个基于文本的协议。http请求与sip请求:


http:
GET /index.html HTTP/1.1
SIP:
INVITE sip:seven@freeswitch.org.cn SIP/2.0

在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.

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duolezengjie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值