发明内容
本发明需要解决的技术问题是提供一种实现IMS核心网消息转发的系统及方法,不需要对现有业务和软交换机做任何改动,可以简化系统并降低硬件成本以及软件维护成本。
为了解决上述技术问题,本发明提供了一种实现IP多媒体子系统核心网消息转发的系统,包括:
会话初始协议(SIP)平台,用于接收终端的SIP请求消息,并转发给鉴权指示模块,根据所述鉴权指示模块的指示返回SIP应答消息给所述终端和/或将所述SIP请求消息转发至目标设备;
鉴权指示模块,用于接收所述SIP平台发送的所述SIP请求消息,并对所述SIP请求消息进行鉴权认证后,下发指示给所述SIP平台。
进一步地,所述鉴权指示模块,还用于配置所述目标设备的地址信息,并将所述地址信息携带在所述指示中下发给所述SIP平台,所述目标设备包括一个或多个。
进一步地,所述目标设备包括:应用服务器和/或SIP分发代理。
进一步地,所述SIP平台,还用于在释放了会话数据后又收到所述目标设备或所述终端的会话内消息时,如果检测到所述会话内消息对应的会话的数据区不存在,则重建会话并完成所述会话内消息的转发。
进一步地,所述SIP平台释放了会话数据后又收到所述目标设备的会话内消息,重建会话并完成所述会话内消息的转发包括:所述SIP平台申请数据区,向所述鉴权指示模块查询用户状态,根据所述鉴权指示模块返回的用户状态信息完成所述会话内消息的转发;
所述鉴权指示模块,还用于查询数据库以获取用户状态信息,将所述用户状态信息返回给所述SIP平台。
进一步地,所述SIP平台,还用于如果所述用户状态信息为用户在线,则将所述会话内消息转发至所述终端;如果所述用户状态信息为用户离线,则返回表示会话不存在的消息给所述目标设备。
进一步地,所述SIP平台释放了会话数据后又收到所述终端的会话内消息,重建会话并完成所述会话内消息的转发包括:所述SIP平台申请数据区,并将所述会话内消息转发给鉴权指示模块,根据所述鉴权指示模块的指示将所述会话内消息转发至目标设备;
鉴权指示模块,用于接收所述SIP平台发送的所述会话内消息,并对所述会话内消息进行鉴权认证后,下发指示给所述SIP平台。
为了解决上述技术问题,本发明还提供了一种实现IP多媒体子系统核心网消息转发的方法,包括:
会话初始协议(SIP)平台接收终端的SIP请求消息,并转发给鉴权指示模块,根据所述鉴权指示模块的指示返回SIP应答消息给所述终端和/或将所述SIP请求消息转发至目标设备。
进一步地,所述目标设备包括一个或多个。
进一步地,所述指示中还包括所述目标设备的地址信息。
进一步地,所述目标设备包括:应用服务器和/或SIP分发代理。
进一步地,SIP平台释放了会话数据后又收到所述目标设备或所述终端的会话内消息时,如果所述SIP平台检测到所述会话内消息对应的会话的数据区不存在,则重建会话并完成所述会话内消息的转发。
进一步地,所述SIP平台释放了会话数据后又收到所述目标设备的会话内消息,重建会话并完成所述会话内消息的转发过程包括:
所述SIP平台申请数据区,并向所述鉴权指示模块查询用户状态,接收所述鉴权指示模块返回的用户状态信息,根据所述用户状态信息完成所述会话内消息的转发。
进一步地,所述根据用户状态信息完成所述会话内消息的转发包括:
如果所述用户状态信息为用户在线,则所述SIP平台将所述会话内消息转发至所述终端;
如果所述用户状态信息为用户离线,则所述SIP平台返回表示会话不存在的消息给所述目标设备。
进一步地,所述SIP平台释放了会话数据后又收到所述终端的会话内消息,重建会话并完成所述会话内消息的转发过程包括:
所述SIP平台申请数据区,并将所述会话内消息转发给鉴权指示模块,根据所述鉴权指示模块的指示将所述会话内消息转发至目标设备。
与现有技术相比,本发明不需要对现有业务和软交换机做任何改动,简化了系统,该系统只包括SIP平台和鉴权指示模块,大大降低了硬件成本以及软件维护成本。
实施例:
如图1所示,本实施例提供了一种在NGN中实现IMS核心网消息转发的系统,包括SIP平台和鉴权指示模块,其中:
所述SIP平台,用于接收终端的SIP请求消息,并转发给鉴权指示模块,根据所述鉴权指示模块的指示返回SIP应答消息给所述终端和/或将所述SIP请求消息转发至目标设备;
其中,SIP请求消息包括会话类请求消息以及非会话类请求消息,其中,会话类请求消息包括邀请会话类消息(包括INVITE、ACK、UPDATE、INFO、RE-INVITE)、订阅消息(包括SUBSCRIBE、NOTIFY)、REFER消息等等;非会话类请求消息包括注册(REGISTER)消息、MESSAGE消息、PUBLISH消息、OPTION消息等等。
所述SIP平台,还用于链路管理与消息收发、SIP消息编解码、转发消息超时处理、会话管理。
所述鉴权指示模块,用于接收所述SIP平台转发的SIP请求消息,并对所述SIP请求消息进行鉴权认证后,下发指示给所述SIP平台;还用于配置所述目标设备的地址信息,并将该地址信息携带在所述指示中下发给SIP平台,其中,目标设备为一个或多个,包括:应用服务器(AS)和/或SIP分发代理。
此外,目前,核心网释放会话后,如果再次收到会话内消息(该会话内消息属于SIP请求消息),要么抛弃该消息,要么回复“会话不存在”应答,但这样的处理对于正常的消息是不合适的。本实施例中的SIP平台当因为某种场合(例如,系统异常重启时)释放了会话数据,但是UE、鉴权指示模块很可能并未感知到SIP平台释放了会话,UE会继续发送会话内消息给SIP平台,在SIP平台收到目标设备或终端的会话内消息后,如果检测到该消息对应的会话的数据区不存在,则重建会话并完成所述会话内消息的转发。
如果SIP平台释放了会话数据后收到的是目标设备发来的会话内消息(如NOTIFY会话内消息),则SIP平台重建会话并完成所述会话内消息的转发过程包括:SIP平台申请数据区,并向所述鉴权指示模块发送查询用户状态消息,接收所述鉴权指示模块返回的用户状态信息,根据所述用户状态信息完成所述会话内消息的转发;鉴权指示模块接收到SIP平台的查询用户状态消息后,查询数据库以获取用户状态信息,并将所述用户状态信息携带在所述指示中返回给所述SIP平台。
其中,当用户状态信息为用户在线时,SIP平台将所述会话内消息转发至终端;当所述用户状态信息为用户离线,所述SIP平台则返回表示会话不存在的消息给AS或SIP分发代理。
如果SIP平台释放了会话数据后收到的是终端发来的会话内消息(刷新订阅会话内请求消息),则SIP平台重建会话并完成所述会话内消息的转发过程包括:SIP平台申请数据区,并将终端发来的该会话内消息转发给鉴权指示模块,根据鉴权指示模块的指示将该会话内消息转发至目标设备。
如图2所示,本实施例还提供了一种NGN中实现IMS核心网消息转发的方法,包括以下步骤:
S101:SIP平台接收到终端的SIP请求消息,转发给鉴权指示模块;
S102:SIP平台收到鉴权指示模块的指示;
该指示包括SIP平台返回SIP应答消息给终端的指示,和/或SIP平台将所述SIP请求消息转发至目标设备的指示,该指示还包括目标设备的地址信息。
S103:SIP平台根据所述鉴权指示模块的指示返回SIP应答消息给所述终端和/或将所述SIP请求消息转发至目标设备。
其中,目标设备可以是AS和/或SIP分发代理,包括一个或多个。
在上述步骤中,当SIP平台释放了会话数据后又收到目标设备或终端的会话内消息(该会话内消息属于SIP请求消息)后,如果所述SIP平台检测到该消息对应的会话的数据区不存在,则重建会话并完成该会话内消息的转发。
如果SIP平台释放了会话数据后收到的是目标设备发来的会话内消息(如NOTIFY会话内消息),则SIP平台重建会话并完成所述会话内消息的转发过程包括:SIP平台申请数据区,并向所述鉴权指示模块发送查询用户状态消息,接收所述鉴权指示模块返回的用户状态信息,根据所述用户状态信息完成所述会话内消息的转发;
其中,当用户状态信息为用户在线时,SIP平台将所述会话内消息转发至终端;当所述用户状态信息为用户离线,所述SIP平台则返回表示会话不存在的消息给AS或SIP分发代理。
如果SIP平台释放了会话数据后收到的是终端发来的会话内消息(刷新订阅会话内请求消息),则SIP平台重建会话并完成所述会话内消息的转发过程包括:SIP平台申请数据区,并将终端发来的该会话内消息转发给鉴权指示模块,根据鉴权指示模块的指示将该会话内消息转发至目标设备。
在一个应用示例中,如图3所示,本实施例提供的方法包括以下步骤:
S301:终端向SIP平台发送注册(REGISTER)消息;
该终端包括运行在PC设备与非PC设备(比如手机)上的具备终端功能的产品,在PC设备上运行的如SoftDA客户端,在非PC设备上运行的如手机装载的通信客户端。
S302:SIP平台向鉴权指示模块转发该REGISTER消息;
S303:鉴权指示模块向SIP平台下发“先返回SIP应答消息再转发SIP请求消息”的指示;
该指示中包含目标设备的地址信息,所述地址信息包括目标设备的地址,或者,包括目标设备的地址和端口;
S304:SIP平台收到“先返回SIP应答消息再转发SIP请求消息”的指示后,首先向终端发送SIP应答消息;
S305:在向终端发送SIP应答消息后,SIP平台在终端发送的REGISTER消息的基础上进行必要的头域处理,然后根据各目标设备的地址和端口信息向各个目标设备(各个SIP分发代理)发送该REGISTER消息;
SIP平台可以设置多个目标设备,即多个AS或SIP分发代理,由鉴权指示模块为各个AS和SIP分发代理设置地址与端口。
S306:SIP分发代理收到该REGISTER消息后根据分发策略将其分发到不同的AS上;
S307:AS收到该REGISTER消息后经过处理,然后向SIP分发代理发送SIP应答消息;
S308:SIP分发代理收到SIP应答消息后转发该SIP应答消息到SIP平台;
S309:SIP平台收到SIP应答消息后,经过必要的头域校验处理后,向鉴权指示模块返回SIP应答消息。
上述REGISTER消息,即SIP登录请求消息仅为示例,本实施例中提供的方法及装置均可以转发其他类型的SIP请求消息。
此外,在不同业务部署在不同平台时,可以通过配置新的SIP分发代理作为SIP设备、鉴权指示模块指示SIP平台转发消息到该新的SIP分发代理即可。本实施例可以根据现场实际情况灵活部署网元,大大提高了嵌套业务的处理性能和扩展性,并且通过动态调整保证了平台的稳定性。
在另一个应用示例中,如图4所示,本实施例还提供了一种SIP平台在释放了会话数据后又收到目标设备的会话内消息后,SIP平台重建会话完成IMS核心网消息转发的方法,该终端的会话内消息以NOTIFY会话内消息为例,包括以下步骤:
S401:系统出现异常重启,SIP释放了会话数据;
S402:SIP平台收到AS或SIP分发代理发送的NOTIFY消息;
S403:SIP平台检测到该NOTIFY消息对应的会话的数据区不存在,则申请数据区并向鉴权指示模块发送查询用户状态消息;
其中,所述用户是指NOTIFY消息To头域中的用户,也就是对端用户,即查询对端用户的状态。
S404:鉴权指示模块查询数据库以获取用户状态信息,并将所述用户状态信息携带在指示中下发给所述SIP平台;
此外,该指示还包括SIP平台将该NOTIFY消息转发至终端的指示,以及该终端的地址信息。
所述用户状态信息包括用户在线或用户离线。
S405:SIP平台根据收到的用户状态信息决定是否要向终端转发NOTIFY消息。
其中,如果所述用户状态信息为用户在线,则SIP平台根据鉴权指示模块的指示将所述NOTIFY请求消息转发至终端;
如果所述用户状态信息为用户离线,则SIP平台返回表示会话不存在的消息给AS或SIP分发代理。
此外,SIP平台还可能会收到终端发送的刷新订阅请求消息,该刷新订阅请求消息也属于会话内消息。如图5所示,本实施例还提供了一种SIP平台在释放了会话数据后又收到终端的会话内消息后,SIP平台重建会话完成IMS核心网消息转发的方法,该终端的会话内消息以刷新订阅请求消息为例,包括以下步骤:
S501:系统出现异常重启,SIP释放了会话数据;
S502:SIP平台收到终端发送的刷新订阅请求消息;
S503:SIP平台检测到该刷新订阅请求消息对应的会话的数据区不存在,则申请数据区并向鉴权指示模块发送该刷新订阅请求消息;
S504:鉴权指示模块向SIP平台下发转发该刷新订阅请求消息到目标设备(AS或者SIP分发代理)的指示;
S505:SIP平台将该刷新订阅请求消息转发至AS或者SIP分发代理。
这样,通过上述方法即使SIP平台因为某种原因释放了会话数据,但是,在SIP平台收到终端或目标设备的会话内消息后依然可以重建会话完成IMS核心网消息的转发。
从上述实施例可以看出,相对于现有技术,上述实施例中的系统不需要对现有业务和软交换机做任何改动,简化了系统,该系统只包括SIP平台和鉴权指示模块,大大降低了硬件成本以及软件维护成本。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。