基于sip协议的forking功能的研究和实现

基于sip协议的forking功能的研究和实现

ID:10367433

大小:54.50 KB

页数:4页

时间:2018-07-06

基于sip协议的forking功能的研究和实现_第1页
基于sip协议的forking功能的研究和实现_第2页
基于sip协议的forking功能的研究和实现_第3页
基于sip协议的forking功能的研究和实现_第4页
资源描述:

《基于sip协议的forking功能的研究和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于SIP协议的forking功能的研究和实现  摘要:SIP协议是用于建立、更改和终止呼叫的应用层协议,在IMS系统中使用非常广泛。而Fork是SIP中一个非常实用非常重要的功能,本文阐述了在Fork功能的基本原理,并在已有的SIP架构上,分析了此功能的实现方法和具体的流程。  关键词:SIP;Fork;TU  SIP简介  SIP(会话初始协议,RFC3261)是IETF定义的通过IP网络建立和管理多媒体会话的协议,它采用的是众所周知的客户机服务器模式,它借鉴了SMTP(简单邮件传送协议,RFC2821)以及HTTP(超文本传送协议,RFC2616)的原理,而这两个协议是因特

2、网上最成功的协议,同时,SIP是一个基于文本的协议,这意味着它更易于扩展、纠错和构建各种业务。因此,在IMS(IP多媒体子系统)中,选择SIP作为其会话控制协议,更易于建立具有更大承载能力的业务。  根据协议标准定义及实际研制经验,协议平台的SIP协议分析划分为以下几部分内容:SIP事务用户层(TU,TransactionUser),事务层(TR,TRansaction),传输层(TP,TransPort),编解码模块(SIPPARSER/SDPPARSER,SIP协议编解码及SDP编解码),信令压缩模块(SIGP)几个协议主体部分。除了这几个协议主体以外,SIP还需要实现和上层

3、业务、数据库以及底层承载之间的接口,方便进行数据以及消息的交互。  SIP协议的TU层是SIP协议主体的重要组成部分,它的功能包含几个方面:(1)负责SIP消息到上层应用进程的消息分发;对上层应用屏蔽底层协议实现和分布式处理的细节;(2)对于需要创建对话的,维护对话的生命周期,管理对话的事务列表;(3)完成UAC,UAS或者代理proxy的协议栈行为。  SIP采用的是一种offer/ans,To以及Call-ID中的信息将都会保存在leg中。  数据区的创建根据协议栈的行为分为UA和proxy两种情况。  Proxy方式下会存在一人一出两个Leg对象,人呼侧由TU收到事务层的初

4、始请求而创建人呼侧Leg对象,消息通过人呼侧Leg处理后上报上层应用,上层应用处理结束后,转发初始请求到TU的出呼侧,TU进而创建出呼侧Leg对象以及下发SIP消息。  UA方式下,作为被叫网元,TU协议栈收到事务的初始请求后,创建人呼Leg后,通过初始请求消息上报上层业务,上层业务处理完业务逻辑后,通过人呼Leg回送响应到事务层。后续请求和响应都是通过人呼Leg传送。作为主叫网元,上层应用调用发送初始请求接口到TU,TU创建出呼侧Leg后,初始请求消息通过该Leg发送至事务层,后续请求和响应都是通过出呼侧Leg传递。  一、forking功能  fork即常说的分叉,一个请求可

5、以分叉为发往多个目标地址的请求。假定B用户为一号多机用户,即一个SIP用户可以同时在很多终端上注册,每种终端可以实现不同的功能,比如便携PC支持视频而固定SIP电话可能功能简洁,B用户多个终端同时在线,当A用户呼叫B用户时,那么B用户的多个终端都会收到呼叫请求,它的任意终端都可以去响应这个呼叫。A最终会选择一个终端创建会话。  在IMS中实现fork功能涉及到的网元类型分为终端(UA行为)以及代理服务器(proxy)行为,根据协议的描述,梳理不同网元的处理原则。  1.1终端处理原则  (1)请求  根据协议的描述,只有初始对话(独立事务)请求才会发生fork。终端可以在初始请求

6、INVITE的码流中的通过添加Request-Disposition头部中指示代理进行fork的相关处理。同时,当被叫终端注册了多个时,主叫终端可以添加Accept-Contact,Reject-Contact参数,指示代理选择符合用户偏好的被叫以及优先级更高的被叫。  (2)响应  当fork发生时,多个被叫终端都会对主叫产生响应,未创建对话前,主叫终端可以接受或拒绝任何被叫终端的Fork应答,如果终端拒绝fork临时应答,那么必须发送cancel或者bye请求,这些请求是针对每个终端即每一个fork的分支都需要发出。  主叫终端如果接收到被叫终端一个fork分支的成功应答即2

7、xx响应,开始创建会话;应该释放其他fork分支的早对话和非早对话,具体释放的方式根据各个fork分支的不同而不同。其中对于已经收到了临时响应的fork分支,不管是否建立起了早对话,则发送CANCEL请求来释放;对于没有收到任何的临时响应的fork分支,则不能发送CANCEL请求,通过TU设置的保护定时器超时,来释放该分支的相关资源。  主叫终端只能收到一条最终响应,如果收到2xx响应,则建立对话,如果为2xx以上的响应,则认为无法建立呼叫,则需要释放呼叫。  1.2代理处理原则

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。