一种实现状态订阅的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及通讯领域,尤其涉及一种实现状态订阅的方法、装置及系统。
【背景技术】
[0002]在实现状态订阅的现有技术中,网络中的通信终端向状态服务器发送订阅消息(如SIP SUBSCRIBE)以订阅被订阅实体的状态,订阅消息先后经过通信终端归属的SBC (Sess1n Border Controller,会话边界控制器)和该通信终端注册的MGC (MediaGateway Controller,媒体网关控制器)的转发到达所述状态服务器,当被订阅实体的状态发生改变时(如,从离线状态改变为在线状态),状态服务器将包括该被订阅实体的当前状态的通知消息(如SIP NOTIFY)沿着该订阅消息的传输路径逐跳反向发送至该通信终端,即该通知消息先后经过MGC和SBC的转发到达该通信终端。
[0003]在实际的网络环境中,一个网络实体的状态往往会同时被几十甚至几百个通信终端订阅,当该网络实体的状态发生变化时,状态服务器将向订阅该网络实体的状态的所有通信终端推送通知消息,也就是说该网络实体的一次状态变化将在网络中产生几十甚至几百个通知消息。这些通知消息均采用逐跳传输的方式依次经过MGC、SBC发到订阅该网络实体的状态的所有通信终端上。MGC、SBC处理这些数量庞大的通知消息时将消耗大量资源,造成通知消息转发延迟,甚至导致MGC、SBC处理正常呼叫消息的呼叫接通率降低,而这些通知消息对于MGC、SBC实体来说完全是多余的。
【发明内容】
[0004]本发明提供了一种实现状态订阅的方法、装置和系统,用以解决现有技术中沿着订阅消息的传输路径逐跳发送通知消息所导致的对MGC和SBC的性能影响较大的问题。
[0005]第一方面,提供了一种实现状态订阅的方法,所述方法包括:
[0006]状态服务器接收通信终端发送的用于订阅被订阅实体的状态的订阅消息,所述订阅消息包括旁路字段,所述旁路字段中的IP地址为所述通信终端的IP地址;
[0007]所述状态服务器通过所述旁路字段中的IP地址向所述通信终端发送包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述旁路字段中的IP地址。
[0008]在第一方面的第一种可能的实现方式中,所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息之前还包括,所述状态服务器判断所述订阅消息中的联系(CONTACT)字段中的IP地址和所述旁路字段中的IP地址是否相同,并在判断结果为相同时执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0009]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括,所述状态服务器在判断结果为不同时,检测所述旁路字段中的IP地址是否路由可达,并在检测出路由可达时执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0010]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括,如果判断结果为不同,确定所述CONTACT字段中的IP地址为所述通信终端归属的会话边界控制器(SBC)的IP地址,并在确定所述CONTACT字段中的IP地址为所述通信终端归属的SBC的IP地址且检测出所述旁路字段中的IP地址路由不可达时,通过所述CONTACT字段中的所述SBC的IP地址向所述通信终端发送通知消息,其中,所述通知消息的目的IP地址为所述SBC的IP地址。
[0011]第二方面,提供了一种实现状态订阅的方法,所述方法包括:
[0012]通信终端向状态服务器发送订阅消息以订阅被订阅实体的状态,所述订阅消息包括旁路字段,所述旁路字段中的IP地址为所述通信终端的IP地址;
[0013]所述通信终端接收所述状态服务器通过所述旁路字段中的IP地址发送的包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述旁路字段中的IP地址。
[0014]在第二方面的第一种可能的实现方式中,所述方法还包括,所述通信终端接收所述状态服务器在确定所述订阅消息的联系(CONTACT)字段中的IP地址为所述通信终端归属的会话边界控制器(SBC)的IP地址时,通过所述CONTACT字段中的IP地址发送的包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述CONTACT字段中的IP地址。
[0015]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述向所述状态服务器发送所述订阅消息之前还包括,所述通信终端向鉴权服务器获取所述状态服务器的IP地址和所述SBC的IP地址;所述通信终端接收到所述状态服务器发送的通知消息之后还包括,判断接收的通知消息的源IP地址是否为所述通信终端从所述鉴权服务器获取的所述状态服务器的IP地址或所述SBC的IP地址,如果不是,则丢弃所述通知消息。
[0016]第三方面,提供了一种状态服务器,所述状态服务器包括:接收单元和通知单元;
[0017]所述接收单元,用于接收通信终端发送的用于订阅被订阅实体的状态的订阅消息,所述订阅消息包括旁路字段,所述旁路字段中的IP地址为所述通信终端的IP地址;
[0018]所述通知单元,用于通过所述旁路字段中的IP地址向所述通信终端发送包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述旁路字段中的IP地址。
[0019]在第三方面的第一种可能的实现方式中,所述状态服务器还包括判断单元;
[0020]所述判断单元,用于判断所述订阅消息中的联系(CONTACT)字段中的IP地址和所述旁路字段中的IP地址是否相同;所述通知单元,具体用于在所述判断单元的判断结果为相同时执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0021]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述判断单元,还用于在判断结果为不同时,检测所述旁路字段中的IP地址是否路由可达;所述通知单元,具体还用于在所述判断单元检测出所述旁路字段中的IP地址路由可达时,执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0022]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述判断单元还用于,如果判断出所述CONTACT字段中的IP地址和所述旁路字段中的IP地址不同,确定所述CONTACT字段中的IP地址为所述通信终端归属的会话边界控制器(SBC)的IP地址;所述通知单元还用于,在所述判断单元确定所述CONTACT字段中的IP地址为所述通信终端归属的SBC的IP地址且所述判断单元检测出所述旁路字段中的IP地址路由不可达时,通过所述CONTACT字段中的所述SBC的IP地址向所述通信终端发送通知消息,其中,所述通知消息的目的IP地址为所述SBC的IP地址。
[0023]第四方面,提供了一种通信终端,所述通信终端包括订阅单元和接收单元;
[0024]所述订阅单元,用于向状态服务器发送订阅消息以订阅被订阅实体的状态,所述订阅消息包括旁路字段,所述旁路字段中的IP地址为所述通信终端的IP地址;
[0025]所述接收单元,用于接收所述状态服务器通过所述旁路字段中的IP地址发送的包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述旁路字段中的IP地址。
[0026]在第四方面的第一种可能的实现方式中,所述接收单元,还用于接收所述状态服务器在确定所述订阅消息的联系(CONTACT)字段中的IP地址为所述通信终端归属的会话边界控制器(SBC)的IP地址时,通过所述CONTACT字段中的IP地址发送的包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述CONTACT字段中的IP地址。
[0027]结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述通信终端还包括获取单元和判断单元;
[0028]所述获取单元,用于向鉴权服务器获取所述状态服务器的IP地址和所述SBC的IP地址,并将所述状态服务器的IP地址和所述SBC的IP地址传输给所述判断单元;所述判断单元,还用于从所述获取单元接收所述状态服务器的IP地址和所述SBC的IP地址,并用于判断所述接收单元从所述状态服务器接收的通知消息的源IP地址是否为所述通信终端从所述鉴权服务器获取的所述状态服务器的IP地址或所述SBC的IP地址,如果不是,则丢弃所述通知消息。
[0029]第五方面,提供了一种状态订阅系统,所述状态订阅系统包括:通信终端和状态服务器;
[0030]所述通信终端,用于向所述状态服务器发送订阅消息以订阅被订阅实体的状态,所述订阅消息包括旁路字段,所述旁路字段中的IP地址为所述通信终端的IP地址;
[0031]所述状态服务器,用于接收所述订阅消息,并通过所述旁路字段中的IP地址向所述通信终端发送包括所述被订阅实体的状态的通知消息,其中,所述通知消息的目的IP地址为所述旁路字段中的IP地址。
[0032]在第五方面的第一种可能的实现方式中,所述状态服务器,在通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息之前,还用于,判断所述订阅消息中的联系(CONTACT)字段中的IP地址和所述旁路字段中的IP地址是否相同,并在判断结果为相同时执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0033]结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述状态服务器还用于,在判断结果为不同时,检测所述旁路字段中的IP地址是否路由可达,并在检测出路由可达时执行所述通过所述旁路字段中的IP地址向所述通信终端发送所述通知消息的操作。
[0034]结合第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述状态服务器还用于,如果判断结果为不同,确定所述CONTACT字段中的IP地址为所述通信终端归属的会话边界控制器(SBC)的IP地址,并在确定所述CONTACT字段中的IP地址为所述通信终端归属的SBC的IP地址且检测出所述旁路字段中的IP地址路由不可达时,通过所述CONTACT字段中的所述SBC的IP地址向所述通信终端发送通知消息,其中,所述通知消息的目的IP地址为所述SBC的IP地址。
[0035]结合第五方面的第三种可能的实现方式,在第四种可能的实现方式中,所述通信终端,在向所述状态服务器发送所述订阅消息之前,还用于向鉴权服务器获取所述状态服务器的IP地址和所述SBC的IP地址;所述通信终端,