posts - 297,  comments - 1618,  trackbacks - 0
 

蜜果私塾:SIP协议学习

版权所有,转载请注明出处:http://www.blogjava.net/amigoxie/archive/2009/07/15/286793.html 

1.     相关规范

RFC3261:基本的会话初始协议,见http://www.ietf.org/rfc/rfc3261.txt

RFC3264:定义了SDP的提供应答模式,见http://www.ietf.org/rfc/rfc3264.txt

RFC37253PCC全称Third Party Call Control,是指由第三方来实现的主被叫通话。SIP3PCC流程定义于RFC3725中。见http://www.ietf.org/rfc/rfc3725.txt

2.     相关概念

2.1   SIP简介

SIP是应用层控制协议,可以创建,修改,以及中止一个或多个参与者的对话。在INTERNET上有很多这样的应用,我们需要建立和管理一个对话,这个对话是用来在一组参与者的连接上来进行数据交换。因为一些参与者实际的行为,操作变得复杂了。比如用户可能在终端移动;他们可能有多个地址;也可能在用多种媒体形式进行交流-有时还是同步的。一组协议被用来传送不同形式的实时多媒体对话数据,比如语音数据,视频数据,文件消息等等。SIP和其他协议一起工作,使INTERNET终端找到另一个终端,然后用他们所取得一致的特性进行交流。

2.2   offer/answer机制

定义与RFC3264,利用该机制两个实体可以使用SDP对他们之间的多媒体会话达成一致。在该模式中,一个参加者向另一个参加者提供它期望建立的会话的描述,另一个参加者应答它期望建立的对话。

提供应答模式是SIP必须使用的基本机制。

2.3   3PCC

3PCC全称Third Party Call Control,是指由第三方来实现的主被叫通话。

在常见的业务流程中,应用服务器作为第三方,需要根据业务流程控制主叫、被叫、媒体服务器之间的对话的建立和切断。所以应用服务器上的信令流程都以3pcc为基础。

RFC3725中定义了四种基本的3pcc流程,在后面将详细描述,3PCC的目标是让要建立会话的两个网元进行完整的offer/answer协商。

3.     offer/answer

3.1   原则

1) 在一次提供应答完成之前,不能进行新的提供应答协商;

2) 提供者在没有收到应答的时候,不能发送新的提供;

3) 应答者在没有发送应答的时候,也不能发送新的提供

3.2   流程

根据3.1中的原则,可知如下流程都是正确的:

流程1

 流程2

如下的流程在offer还没有得到响应者应答的时候发送了新的offer,因此是错误流程:

如下的流程发送者在offer还没有得到响应应答的时候,由响应者发送了新的offer,因此也是错误流程:

4.     3PCC

4.1   3PCC基本流程1

RFC3725中定义的流程1如下所示:

该流程是比较常用的流程,用于AB双方在收到INVITE后都能立刻回送200OK的场景。当B不能立刻回送200 OK的情况(可能耗时很多秒),A需要多次进行重发,此时使用那个这种流程不合适。

4.2   3PCC基本流程2

RFC3725中定义的流程2如下所示:

流程2从单边来说虽然遵守了offer/answer,但总体上并没有完全按照offer/answer实现,因为第(8)中带出来的sdp2并没有再次发送给B,有可能会造成单通的情况,不推荐使用。

4.3   3PCC基本流程3

RFC3725中定义的流程3如下所示:

流程3是最为通用的流程,对于初始发起呼叫来说比较合适,不要求AB立刻回200OK响应,也不会因此单通的情况。

4.4   3PCC基本流程4

RFC3725中定义的流程4如下所示:

流程4和流程3差不多,对于初始发起呼叫来说比较合适,也不要求AB立刻回200OK响应。由于大多数终端都不支持no mediasdp,所以流程3更通用一些.

posted on 2009-07-15 10:56 阿蜜果 阅读(1802) 评论(1)  编辑  收藏 所属分类: 协议


FeedBack:
# re: SIP协议学习
2009-07-31 15:19 | 路人甲
你对SIP协议研究多久了?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

      生活将我们磨圆,是为了让我们滚得更远——“圆”来如此。
      我的作品:
      玩转Axure RP  (2015年12月出版)
      

      Power Designer系统分析与建模实战  (2015年7月出版)
      
     Struts2+Hibernate3+Spring2   (2010年5月出版)
     

留言簿(262)

随笔分类

随笔档案

文章分类

相册

关注blog

积分与排名

  • 积分 - 2286201
  • 排名 - 3

最新评论

阅读排行榜

评论排行榜