背景技术
T5是机器类通信-互联服务器(Machine Type Communications-Inter WorkingFunction,MTC-IWF)与服务节点(Serving Node)之间的接口。T5接口上支持设备触发(Device Trigger)功能,其要求使用T5接口上的通信格式(generic format)的消息来封装Device Trigger,通过generic format的消息,使得Device Trigger的内容不再局限于短消息服务(Short Message Service,SMS)消息的长度,而且在generic format的消息中还可以添加其他信息,例如优先级,有效期等,具有很好的扩展性。
基于T5接口投递Device Trigger的流程如下:
步骤1、MTC-IWF根据从归属签约用户服务器(Home Subscriber Server,HSS)获得的用户设备(User Equipment,UE)的能力和核心网(CN)节点的能力,确定通过T5接口投递Trigger消息。
其中,UE的能力指示了该UE是否支持T5接口的触发功能,CN节点的能力指示了该CN节点是否支持T5接口的触发功能。
步骤2、MTC-IWF向HSS查询UE当前的服务节点。
其中,服务节点可以但不仅限于是移动性管理实体(Mobility ManagementEntity,MME)/公共陆地移动网络(Visited Public Land Mobile Network,VPLMN)的服务GPRS支持节点(Serving GPRS Support Node,SGSN)。
步骤3、MTC-IWF向查询到的服务节点发送包含国际移动用户识别码(International Mobile Subscriber Identification Number,IMSI),机器类通信-互联服务器标识(MTC-IWF ID),生命周期,优先级等信息的Trigger消息,并产生计费数据记录(Charging Data Record,CDR)信息。
其中,Trigger消息即上述的封装Device Trigger的generic format的消息,来自于业务能力服务器/应用服务器(Services Capability Server,SCS/ApplicationServer,AS)。
步骤4、服务节点将接收到的Trigger消息封装到非接入层(NAS)消息,投递给UE。
步骤5、UE向对应的应用程序(application)提供通用容器(generic container)中的内容。
步骤6、基于收到的NAS消息中的协议数据单元(Protocol Data Unit,PDU),UE执行相应的动作,例如建立到业务能力服务器/应用服务器(Services Capability Server,SCS/Application Server,AS)的连接。
步骤7、UE响应消息中的Device Trigger,将响应消息封装在通用非接入层容器(generic NAS container)中发送给服务节点。
步骤8、服务节点发送投递报告(Delivery Report)到MTC-IWF,指示Trigger消息是否成功投递到UE,如果投递失败,还可以指示失败原因。
步骤9、如果投递报告指示Trigger消息未被成功投递,并且生命周期指示这不是一次性投递Trigger,那么MTC-IWF向HSS注册UE可达通知(reachability notification)。如果投递报告指示Trigger消息被成功投递,MTC-IWF通知服务节点将再次传递Trigger消息。
其中,如果生命周期的值为0,则该消息是一次性投递Trigger,如果生命周期的值不为0,则该消息不是一次性投递Trigger。
为了防止网络拥塞,网络需要保证在拥塞场景下不能触发UE。那么,在上述投递流程中,当MME/SGSN过载或拥塞时,MME/SGSN在收到MTC-IWF发送的Trigger消息后,不将其封装到NAS消息中投递给UE,而是发送消息 到T5接口,向MTC-IWF指示禁止(suppression)参数,包括禁止因子(suppression factor)、禁止持续时间(suppression duration)和suppression子类型。当从到T5接口,向MTC-IWF指示禁止(suppression)参数,包括禁止因子(suppression factor)、禁止持续时间(suppression duration)和suppression子类型。当从T5接口收到MME/SGSN发送的suppression参数时,MTC-IWF认为Trigger消息投递失败,进而按照以下方式进行过载控制:根据接收到的suppression参数执行触发禁止,从而停止向发生过载的MME/SGSN发送Trigger消息;以合适的原因值(caurce value)向SCS/AS返回失败报告(failure report),从而禁止SCS/AS下发触发消息;决定是否在一个或多个SCS/AS的Tsp接口上执行负载控制(load control)。
当MME/SGSN从过载(overload)状态或者拥塞(congestion)状态恢复时,MME/SGSN通过T5接口向MTC-IWF更新suppression参数,从而允许更多的Trigger消息下发,或者继续处理来自MTC-IWF的Trigger消息。
现有方法中,MTC-IWF从MME/SGSN收到MME/SGSN拥塞的信息(即上述禁止参数)后,将认为Trigger消息投递失败,并需要向SCS/AS报告在拥塞持续时间(可根据禁止持续时间确定)内,不能发送下行Trigger。由SCS/AS根据接收到的拥塞持续时间维护定时器,在定时器超时前,不再下发Trigger消息。这将容易造成SCS/AS在拥塞持续时间消失后突发大量下行Trigger(例如SCS/AS立刻发送所有缓存的Trigger消息),或者造成SCS/AS不能及时投递下行Trigger(例如在拥塞持续时间消失后,SCS/AS缓慢发送缓存的Trigger消息)。另外,由SCS/AS侧维护定时器,并在拥塞持续时间消失后重发下行Trigger,还增加了Tsp接口的信令负担。而且SCS/AS不知道被拥塞的MME/SGSN拒绝的Trigger消息之外的其他Trigger将通过哪个MME/SGSN传递,因此SCS/AS针对每个UE都维护定时器,增加了SCS/AS开销。
具体实施方式
为解决背景技术中所描述的服务节点拥塞情况下,基于T5接口的触发消息投递问题,本发明实施例提供的技术方案如下:MTC-IWF向UE的服务节点投递来自SCS/AS的触发消息,在接收到服务节点的拥塞控制指示和拥塞持续时间后,根据拥塞持续时间启动定时器,将拥塞持续时间与被拒绝的触发消息的生命周期进行比较,只有在拥塞持续时间大于触发消息的生命周期时,才向SCS/AS发送投递失败消息,否则,在MTC-IWF上缓存触发消息,以便在定时器超时后再次投递该触发消息。由于在MTC-IWF上维护基于拥塞持续时 间启动的定时器,并在满足条件时缓存触发消息,而非在SCS/AS上维护该定时器及缓存触发消息。因此,就不会出现拥塞持续时间消失后,SCS/AS突发大量触发消息或者触发消息投递不及时的情况,也避免了额外的Tsp接口的信令负担。SCS/AS不再维护定时器,也就避免了额外的开销。
下面将结合附图,对本发明实施例提供的技术方案进行详细说明。
本发明实施例提供的一种触发消息投递控制方法,其实现方式如图1所示,具体包括如下操作:
步骤100、MTC-IWF通过T5接口向UE的服务节点投递来自SCS/AS的触发消息。
本发明实施例中,服务节点可以但不仅限于是MME/SGSN。
如果UE的服务节点处于过载或拥塞状态,在收到该触发消息后,会向MTC-IWF返回拥塞控制指示和拥塞持续时间,以拒绝该触发消息。
其中,拥塞控制指示可以但不仅限于是上述的suppression factor、suppression子类型等等,拥塞持续时间可以但不仅限于是上述的suppression duration。
步骤110、MTC-IWF接收上述服务节点返回的拥塞控制指示和拥塞持续时间。
MTC-IWF在收到返回的拥塞控制指示及拥塞持续时间,则认为触发消息投递失败。
步骤120、MTC-IWF根据上述拥塞持续时间启动定时器。
本发明实施例中,根据拥塞持续时间启动的定时器的计时时间可以是该拥塞持续时间所指示的时长,也可以是该拥塞持续时间所指示的时长与预配置的触发消息传输时延之和。
步骤130、MTC-IWF将上述定时器的计时时间和上述投递失败的触发消息的生命周期进行比较。
如果计时时间大于该触发消息的生命周期,执行步骤140、MTC-IWF向 上述SCS/AS发送触发消息投递失败消息。
如果计时时间不大于该触发消息的生命周期,执行步骤150、MTC-IWF缓存该触发消息,并在定时器超时后,再次通过T5接口投递该触发消息。
本发明实施例中,在定时器超时后,再次通过T5接口投递触发消息的实现方式有多种。下面例举其中两种优选的实现方式。
再次投递触发消息的第一种实现方式:
在上述定时器超时后,向上述UE的HSS查询该UE当前的服务节点,通过T5接口向查询到的服务节点投递该触发消息。
基于第一种再次投递触发消息的方式,一种T5触发消息的投递方法如图2所示,具体包括如下操作:
步骤200、MTC-IWF通过Tsp接口接收SCS/AS发送的下行Trigger消息。
本发明实施例中,来自SCS/AS的下行Trigger消息简称为Trigger消息。
步骤210、MTC-IWF根据Trigger消息中携带的UE的外部标识(external ID),向该UE的HSS查询该UE的服务MME/SGSN。
具体的,HSS根据该UE的外部标识,查询该UE的IMSI,进而根据该UE的IMSI查询该UE的MME/SGSN并告知MTC-IWF。
步骤220、MTC-IWF通过T5接口向查询到的MME/SGSN投递上述Trigger消息。
步骤230、上述MME/SGSN向MTC-IWF返回拥塞控制指示和拥塞持续时间(durationtime)。
步骤240、MTC-IWF根据duration time启动定时器(timer)。
该实施例中,假设timer的计时时间即为duration time。
步骤250、MTC-IWF将duration time和Trigger消息的生命周期(life time)进行比较。
如果duration time>life time,执行步骤260、MTC-IWF向上述SCS/AS返回Trigger消息投递失败的消息。
如果duration time≤life time,执行步骤270、MTC-IWF向HSS查询上述UE当前服务的MME/SGSN,并在timer超时后,再次通过T5接口向查询到的MME/SGSN投递上述Trigger消息。
应当指出的是,步骤270中查询到的UE当前服务的MME/SGSN可能不是发送拥塞控制指示和拥塞持续时间的MME/SGSN,这在图中没有示出。
再次投递触发消息的第二种实现方式:
在上述定时器超时后,通过T5接口向发送上述拥塞控制指示和拥塞持续时间的服务节点投递上述触发消息。
在第二种实现方式的基础上,如果再次投递触发消息失败,且服务节点返回的失败原因指示为没有该UE上下文,则MTC-IWF向该UE的HSS查询该UE当前的服务节点,并通过T5接口向查询到的服务节点投递该触发消息。
基于第二种再次投递触发消息的方式,另一种T5触发消息的投递方法如图3所示,具体包括如下操作:
步骤300、MTC-IWF通过Tsp接口接收SCS/AS发送的下行Trigger消息。
本发明实施例中,来自SCS/AS的下行Trigger消息简称为Trigger消息。
步骤310、MTC-IWF根据Trigger消息中携带的UE的external ID,向该UE的HSS查询该UE的服务MME/SGSN。
具体的,HSS根据该UE的external ID,查询该UE的IMSI,进而根据该UE的IMSI查询该UE的MME/SGSN并告知MTC-IWF。
步骤320、MTC-IWF通过T5接口向查询到的MME/SGSN投递上述Trigger消息。
步骤330、上述MME/SGSN向MTC-IWF返回拥塞控制指示和拥塞持续时间(durationtime)。
步骤340、MTC-IWF根据duration time启动定时器(timer)。
该实施例中,假设timer的计时时间即为duration time。
步骤350、MTC-IWF将duration time和Trigger消息的生命周期(life time) 进行比较。
如果duration time>life time,执行步骤360、MTC-IWF向上述SCS/AS返回Trigger消息投递失败的消息。
如果duration time≤life time,执行步骤370、MTC-IWF向发送上述拥塞控制指示和拥塞持续时间的MME/SGSN再次投递上述触发消息。
步骤380、如果MME/SGSN针对步骤370投递的触发消息返回投递失败指示,并在失败原因中是指没有UE的上下文,MTC-IWF向该UE的HSS查询该UE当前服务的MME-SGSN,并通过T5接口向查询到的MME-SGSN投递该触发消息。
应当指出的是,步骤380中查询到的UE当前服务的MME/SGSN可能不是发送拥塞控制指示和拥塞持续时间的MME/SGSN,这在图中没有示出。
基于上述任一方法实施例,在定时器计时时间内,如果MTC-IWF收到发往拥塞服务节点的触发消息,可以参照步骤130~150的实现方式。具体的:
MTC-IWF收到触发消息,确定在定时器计时时间内接收到的该触发消息的目标UE当前的服务节点为发送上述拥塞控制指示和拥塞持续时间的服务节点;
将在定时器计时时间内接收到的该触发消息的生命周期与定时器的计时时间进行比较;
如果定时器的计时时间大于在定时器计时时间内接收到的该触发消息生命周期,MTC-IWF向在定时器计时时间内发送该触发消息的SCS/AS发送触发消息投递失败消息;
如果定时器的计时时间不大于在定时器计时时间内接收到的该触发消息生命周期,MTC-IWF缓存在定时器计时时间内接收到的该触发消息,并在定时器超时后,再次通过T5接口投递在定时器计时时间内接收到的该触发消息。
本发明实施例中,MTC-IWF替代SCS/AS维护定时器,SCS/AS侧可能不再维护定时器,则在拥塞持续时间内,SCS/AS仍然可能向拥塞的服务节点发 送触发消息。这时,可以通过上述处理过程,由MTC-IWF控制触发消息的投递。
基于与方法同样的发明构思,本发明实施例还提供一种MTC-IWF,其结构如图4所示,具体实现结构包括:
触发消息投递模块401,用于通过T5接口向UE的服务节点投递来自业务能力服务器/应用服务器的触发消息;
拥塞指示接收模块402,用于接收所述服务节点返回的拥塞控制指示和拥塞持续时间;
定时器维护模块403,用于根据所述拥塞持续时间启动定时器;
时间比较模块404,用于将所述定时器的计时时间和所述触发消息的生命周期进行比较;
触发消息投递控制模块405,用于如果所述计时时间大于所述触发消息生命周期,向SCS/AS发送触发消息投递失败消息;如果所述计时时间不大于所述触发消息生命周期,缓存所述触发消息,并在所述定时器超时后,控制所述触发消息投递模块401再次通过T5接口投递所述触发消息。
较佳地,在所述定时器超时后,控制所述触发消息投递模块401再次通过T5接口投递所述触发消息可以包括:
在所述定时器超时后,所述触发消息投递控制模块405用于向所述UE的归属签约用户服务器查询所述UE当前的服务节点,控制所述触发消息投递模块401通过T5接口向查询到的服务节点投递所述触发消息。
较佳地,在所述定时器超时后,控制所述触发消息投递模块401再次通过T5接口投递所述触发消息还可以包括:
在所述定时器超时后,所述触发消息投递控制模块405用于控制所述触发消息投递模块401通过T5接口向发送所述拥塞控制指示和拥塞持续时间的服务节点投递所述触发消息。
如果再次投递所述触发消息失败,且失败原因指示为没有所述UE上下文, 所述触发消息投递控制模块405还用于:
向所述UE的归属签约用户服务器查询所述UE当前的服务节点,并控制所述触发消息投递模块401通过T5接口向查询到的服务节点投递所述触发消息。
在上述任一设备实施例基础上,在所述定时器计时时间内,所述触发消息投递控制模块405还用于:
收到触发消息,确定在所述定时器计时时间内接收到的触发消息的目标UE当前的服务节点为所述发送所述拥塞控制指示和拥塞持续时间的服务节点;
将在所述定时器计时时间内接收到的所述触发消息的生命周期与所述定时器的计时时间进行比较;
如果所述定时器的计时时间大于在所述定时器计时时间内接收到的所述触发消息生命周期,向在所述定时器计时时间内发送所述触发消息的SCS/AS发送触发消息投递失败消息;
如果所述定时器的计时时间不大于在所述定时器计时时间内接收到的所述触发消息生命周期,缓存所述触发消息,并在所述定时器超时后,控制所述触发消息投递模块401再次通过T5接口投递所述触发消息。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。