公开/公告号CN106209723A
专利类型发明专利
公开/公告日2016-12-07
原文格式PDF
申请/专利权人 中国电信股份有限公司;
申请/专利号CN201510209786.2
申请日2015-04-29
分类号H04L29/06;H04L12/803;
代理机构中国国际贸易促进委员会专利商标事务所;
代理人方亮
地址 100033 北京市西城区金融大街31号
入库时间 2023-06-19 01:03:10
法律状态公告日
法律状态信息
法律状态
2019-08-13
授权
授权
2017-01-18
实质审查的生效 IPC(主分类):H04L29/06 申请日:20150429
实质审查的生效
2016-12-07
公开
公开
技术领域
本发明涉及IMS技术领域,尤其涉及一种基于BAC集群的呼叫处理方法及BAC集群装置。
背景技术
IMS(IP Multimedia Subsystem,IP多媒体系统)承载语音业务时,对于移动IMS语音终端、部署在家庭的固定软终端或SIP(SessionInitiation Protocol,会话初始协议)硬终端,需要在访问IMS核心网元前增加业务边缘接入控制BAC设备。BAC设备解决网络的安全、QoS、私网穿越等问题。IMS终端配置统一的BAC域名接入IMS服务。DNS(Domain Name System,域名系统)授权服务器会将BAC域名解析为一个统一的BAC IP地址。
随着网络IP化的发展,企业开始部署基于IP的即时通信系统,为了应用层的安全,多在企业私网出口处部署了BAC。通常情况下,一个BAC对应一个注册IP地址,若用户数增加,需部署多个BAC(多个地址),由于无法通过公网DNS解析,需要在客户端配置不同的注册地址。当用户规模扩大时,需增加BAC设备,一个BAC对应一个注册IP地址,部署较繁琐。由于无法通过公网DNS解析,需要在客户端配置不同的注册地址,对终端有一定的能力要求,目前,现网中的普通的负载均衡设备只负责二层转发,不处理应用层,无法将BAC组成集群。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种基于BAC集群的呼叫处理方法,能够通过入口BAC设备将SIP消息分发到后端BAC设备。
一种基于BAC集群的呼叫处理方法,包括:入口BAC设备接收到主叫终端发送的SIP消息;所述入口BAC设备将主叫终端发送的SIP消息的contact头域中的主叫终端地址替换为所述入口BAC设备的内网地址,并转发到后端BAC设备;所述后端BAC设备将所述入口BAC设备发送的SIP消息的contact头域中的所述入口BAC设备的内网地址替换为所述后端BAC设备的外网地址,并发送给被叫终端。
根据本发明的一个实施例,进一步的,所述后端BAC设备接收到被叫终端发送的SIP消息;所述后端BAC设备将被叫终端发送的SIP消息的contact头域中的被叫终端地址替换为所述入口BAC设备的内网地址,并转发到所述入口BAC设备;所述入口BAC设备将所述后端BAC设备发送的SIP消息的contact头域中的所述入口BAC设备的内网地址替换为主叫终端地址,并转发到主叫终端。
根据本发明的一个实施例,进一步的,所述入口BAC设备接收到主叫终端发送的register消息,将所述register消息中contact头域的主叫终端地址替换为所述入口BAC设备的内网地址;所述入口BAC设备将所述register消息转发到后端BAC设备,并在本地存储主叫终端与后端BAC设备的对应转发关系。
根据本发明的一个实施例,进一步的,当收到终端注销消息或者终端注册刷新超时消息时,所述后端BAC设备删除该终端注册状态,并向所述入口BAC设备发送注销通知消息;其中,所述注销通知消息为option消息,此option消息中包含终端注册号码字段;所述入口BAC设备根据所述注销通知消息,删除此终端与后端BAC设备的对应转发关系。
根据本发明的一个实施例,进一步的,所述入口BAC设备向所述后端BAC设备发送option消息;所述后端BAC设备向所述入口BAC设备返回负载状态消息;其中,所述负载状态消息为200OK消息,此200OK消息中包括负载权重字段;所述入口BAC设备存储所述负载权重字段携带的负载信息。
根据本发明的一个实施例,进一步的,所述入口BAC设备根据存储的负载信息,将所述register消息转发到当前负载最小的后端BAC设备。
根据本发明的一个实施例,进一步的,所述入口BAC设备接收到主叫终端发送的invite消息,将所述invite消息中contact头域的主叫终端地址替换为所述入口BAC设备的内网地址;所述入口BAC设备判断是否在本地保存有此主叫终端与后端BAC设备的对应转发关系,如果是,则将所述invite消息转发到与此主叫终端对应的后端BAC设备,如果否,则根据所述负载信息,将所述invite消息转发到当前负载最小的后端BAC设备,并在本地存储主叫终端与后端BAC设备之间的对应转发关系。
本发明要解决的一个技术问题是提供一种BAC集群装置,能够通过入口BAC设备将SIP消息分发到后端BAC设备。
一种BAC集群装置,包括:入口BAC设备,包括:入口消息接收单元,用于接收到主叫终端发送的SIP消息;入口消息转换单元,用于将主叫终端发送的SIP消息的contact头域中的主叫终端地址替换为所述入口BAC设备的内网地址;入口消息发送单元,用于转发SIP消息到后端BAC设备;后端BAC设备,包括:后端消息接收单元,用于接收从所述入口BAC设备发送的SIP消息;后端消息转换单元,用于将所述入口BAC设备发送的SIP消息的contact头域中的所述入口BAC设备的内网地址替换为所述后端BAC设备的外网地址;后端消息发送单元,用于将SIP消息发送给被叫终端。
根据本发明的一个实施例,进一步的,所述后端消息接收单元,还用于接收被叫终端发送的SIP消息;所述后端消息转换单元,还用于将被叫终端发送的SIP消息的contact头域中的被叫终端地址替换为所述入口BAC设备的内网地址;所述后端消息发送单元,还用于将SIP消息发送到所述入口BAC设备;所述入口消息转换单元,还用于将所述后端BAC设备发送的SIP消息的contact头域中的所述入口BAC设备的内网地址替换为主叫终端地址;所述入口消息发送单元,还用于将SIP消息转发到主叫终端。
根据本发明的一个实施例,进一步的,所述入口消息接收单元,还用于接收主叫终端发送的register消息;所述入口消息转换单元,还用于将所述register消息中contact头域的主叫终端地址替换为所述入口BAC设备的内网地址;所述入口消息发送单元,还用于将所述register消息转发到后端BAC设备,所述入口BAC设备,还包括:转发关系存储单元,用于存储主叫终端与后端BAC设备的对应转发关系。
根据本发明的一个实施例,进一步的,所述后端消息接收单元,还用于当收到终端注销消息或者终端注册刷新超时消息时,删除该终端注册状态,所述后端消息发送单元,还用于发送注销通知消息;其中,所述注销通知消息为option消息,此option消息中包含终端注册号码字段;所述转发关系存储单元,还用于根据所述注销通知消息,删除此终端与后端BAC设备的对应转发关系。
根据本发明的一个实施例,进一步的,状态检测单元,用于向所述后端BAC设备发送option消息;状态反馈单元,用于向所述入口BAC设备返回负载状态消息;其中,所述负载状态消息为200OK消息,此200OK消息中包括负载权重字段;其中,所述状态检测单元存储所述负载权重字段携带的负载信息。
根据本发明的一个实施例,进一步的,所述入口消息发送单元,还用于根据存储的负载信息,将所述register消息转发到当前负载最小的后端BAC设备。
根据本发明的一个实施例,进一步的,所述入口消息接收单元,还用于接收主叫终端发送的invite消息;所述入口消息转换单元,还用于将所述invite消息中contact头域的主叫终端地址替换为所述入口BAC设备的内网地址;所述入口消息发送单元,还用于判断是否在本地保存有此主叫终端与后端BAC设备的对应转发关系,如果是,则将所述invite消息转发到与此主叫终端对应的后端BAC设备,如果否,则根据所述负载信息,将所述invite消息转发到当前负载最小的后端BAC设备;所述转发关系存储单元,还用于存储此主叫终端与后端BAC设备之间的对应转发关系。
本发明的基于BAC集群的呼叫处理方法及BAC集群装置,将多台BAC设备组成集群,实现根据负载分配集群中BAC处理资源,能够实现对信令消息处理的负载分担,提高网络运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明的基于BAC集群的呼叫处理方法的一个实施例的流程图;
图2为根据本发明的基于BAC集群的呼叫处理方法的另一个实施例的消息流程图;
图3为根据本发明的基于BAC集群的呼叫处理方法的又一个实施例的流程图;
图4为根据本发明的BAC集群装置的一个实施例的组网结构示意图;
图5为根据本发明的BAC集群装置的一个实施例的模块结构示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
图1为根据本发明的基于BAC集群的呼叫处理方法的一个实施例的流程图,如图1所示:
步骤101,入口BAC设备接收到主叫终端发送的SIP消息。
步骤102,入口BAC设备将主叫终端发送的SIP消息的contact头域中的主叫终端地址替换为入口BAC设备的内网地址,并转发到后端BAC设备。
步骤103,后端BAC设备将入口BAC设备发送的SIP消息的contact头域中的入口BAC设备的内网地址替换为后端BAC设备的外网地址,并发送给被叫终端。
上述实施例的基于BAC集群的呼叫处理方法,通过对应用层SIP消息特定头域字段的处理,实现多台BAC设备协同工作,使得多台BAC设备的处理资源得到弹性调用。
Contact头域用于INVITE、ACK和REGISTER请求以及成功响应、呼叫进展响应和重定向响应消息,给出其后和用户直接通信的地址。入口BAC设备判断主叫终端发送的是INVITE、REGISTER等SIP消息,替换“Contact”头域,以便后端BAC能够正确处理应用层消息,一个带有Contact头域的SIP消息的例子如下所示:
MESSAGE sip:1897778888@192.168.2.48:6010SIP/2.0
Call-ID:8e12c17121ac4121bf927f6fd8013358@192.168.2.89
From:<sip:01052237300@192.168.2.89>;tag=-0037-708c9a5cba8dd878
To:<sip:1897778888@192.168.2.89>
CSeq:1MESSAGE
Via:SIP/2.0/UDP 192.168.2.89:14010;branch=z9hG4bK--22bd7222
Max-Forwards:30
Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact:<sip:192.168.2.89:14010>
Content-Type:text/plain
Content-Length:5
入口BAC设备发送option消息,定期查询后端BAC状态及负载的状态,一个option消息的例子如下所示:
OPTIONS sip:carol@chicago.com
Via:SIP/2.0/UDP pc33.atlanta.com;branch=z9Hg4bKhjhs8ass877
Max-Forwards:70
To:<sip:carol@chicago.com>
From:Alice<sip:alice@atlanta.com>;tag=1928301774
Call-ID:a84b4c76e66710
Cseq:63104OPTIONS
Contact:<sip:alice@pc33.atlanta.com>
Accept:application/sdp
Content-Length:0
后端BAC设备通过200OK(option)向入口设备返回工作状态和负载,入口BAC设备通过反馈的状态信息对后端BAC的负载进行比较,分配BAC并记录转发关系。终端注销时或者终端注册刷新超时,后端BAC设备在删除该终端注册状态的同时,通过option消息通知入口BAC设备。入口BAC设备根据后端BAC的option消息,删除已有的转发关系。
图2为根据本发明的基于BAC集群的呼叫处理方法的另一个实施例的消息流程图;如图2所示:
步骤201,主叫终端向入口BAC设备发送SIP协议的register消息,register消息中的contact头域中携带主叫终端自身的公网IP地址。
步骤202,入口BAC设备接收到主叫终端发送的register消息,将register消息中contact头域的主叫终端地址替换为入口BAC设备的内网地址。入口BAC设备将register消息转发到后端BAC设备,并在本地存储主叫终端与后端BAC设备的对应转发关系。
步骤203,后端BAC设备将入口BAC设备发送的register消息的contact头域中的入口BAC设备的内网地址替换为后端BAC设备的外网地址,并发送给IMS网络中的被叫终端。
步骤204,后端BAC设备接收到IMS网络中的被叫终端发送的200OK消息。
步骤205,后端BAC设备将被叫终端发送的200OK消息的contact头域中的被叫终端地址替换为入口BAC设备的内网地址,并转发到入口BAC设备。
步骤206,入口BAC设备将后端BAC设备发送的SIP消息的contact头域中的入口BAC设备的内网地址替换为主叫终端地址,并转发到主叫终端。
入口BAC设备只替换contact头域,不处理其他SIP消息内容:将UNI终端地址替换为自身UNN地址,提交后端BAC处理;将UNN后端BAC地址替换为自身UNI地址,提交终端处理。后端BAC处理SIP消息,负责应用层防护,并且,后端BAC处理媒体资源分配、媒体转发。
步骤207,入口BAC设备向后端BAC设备发送option消息。
步骤208,后端BAC设备向入口BAC设备返回负载状态消息。负载状态消息为200OK消息,此200OK消息进行了扩展,包括负载权重字段。入口BAC设备存储负载权重字段携带的负载信息。
入口BAC设备通过OPTION消息检测后端BAC设备的工作状态,后端BAC根据当前自身负载,在应答消息中返回权重值。负载状态消息指对入口BAC设备发送给后端BAC设备的OPTION消息的响应,即后端BAC设备发送给入口BAC的200OK(option)。
例如,在200OK(option)中扩充字段,例如a=50,“a”即为权重值,最高100(表示满负荷),由后端BAC设备根据自身负载情况进行填充,入口BAC设备比较各个后端BAC的“a”值,优选数值小的作为转发目标。入口BAC设备和后端BAC设备之间交互的OPTION和200OK消息中的contact头域不用替换。
入口BAC设备可以根据存储的负载信息,将register消息转发到当前负载最小的后端BAC设备。
步骤209,当收到终端注销消息或者终端注册刷新超时消息时,后端BAC设备删除该终端注册状态,并向入口BAC设备发送注销通知消息。注销通知消息为option消息,此option消息进行了扩展,包含终端注册号码字段,例如,终端注册号码字段为b,携带终端的注册号码信息。
步骤210,入口BAC设备根据注销通知消息,删除此终端与后端BAC设备的对应转发关系。
图3为根据本发明的基于BAC集群的呼叫处理方法的又一个实施例的流程图,如图3所示:
步骤301,入口BAC设备接收到主叫终端发送的消息。入口BAC检测UNI侧是否为SIP消息包,负责二层防护。
步骤302,判断此消息是否为SIP消息,如果是,则进入步骤304,丢弃此消息,如果否,则进入步骤303。
步骤303,判断是否配置有后端BAC设备,如果有,则进入步骤305,如果否,则进入步骤304。
步骤305,入口BAC设备判断是否在本地保存有此主叫终端与后端BAC设备的对应转发关系。如果是,进入步骤307,如果否,进入步骤306.
步骤306,对SIP消息进行处理。例如invite消息,将invite消息中contact头域的主叫终端地址替换为入口BAC设备的内网地址,根据负载信息,将invite消息转发到当前负载最小的后端BAC设备,并在本地存储主叫终端与后端BAC设备之间的对应转发关系。BAC负责应用层SIP消息的处理,完成应用层防护。
步骤307,将invite消息转发到与此主叫终端对应的后端BAC设备。对初始消息包优先向负载较轻的BAC转发,BAC组资源得到均衡使用。
上述实施例提供的基于BAC集群的呼叫处理方法,针对目前二层负载均衡设备无法将BAC组成集群的问题,提出了通过对OPTION消息的扩展、BAC处理流程的优化,将多台BAC设备组成集群的方法,实现根据BAC负载动态分配集群中BAC处理资源。
上述实施例提供的基于BAC集群的呼叫处理方法,在不改变原有SIP用户向IMS/软交换网络的SIP消息流程、基本遵循现有网络架构的前提下,统一终端与网络的信令交互入口,充分利用BAC处理资源,降低企业部署BAC的成本、提高部署的灵活性,提高了网络运行效率。
图4为根据本发明的BAC集群装置的一个实施例的组网结构示意图,如图4所示:由多台BAC设备组成的集群装置包括:入口BAC设备31和后端BAC设备32、33。入口BAC31处理SIP终端34、35进行的呼叫过程,替换SIP消息中的contact头域,以便后端BAC设备32、33能够正确处理应用层消息。
入口BAC设备31对后端BAC设备32、33的负载进行探寻,根据后端BAC设备应答结果进行比较。根据比较分配处理资源、记录转发关系。后端BAC设备32、33根据当前自身负载,对入口BAC的OPTION消息,进行应答。
BAC集群装置由一台入口BAC设备31与多台后端BAC设备32、33组成。入口BAC设备31主动向后端BAC设备32、33查询工作状态和负载情况。后端BAC设备32、33优化业务逻辑,将入口BAC设备31对外地址与本机私网地址相互映射。
上述实施例的BAC集群装置,可以使UNI侧用户终端通过统一的地址与网络交互,BAC集群能够根据BAC负载动态分配集群中BAC处理资源。
图5为根据本发明的BAC集群装置的一个实施例的模块结构示意图,如图5所示:BAC集群装置包括:入口BAC设备40和后端BAC设备50。入口消息接收单元41接收到主叫终端发送的SIP消息。入口消息转换单元42将主叫终端发送的SIP消息的contact头域中的主叫终端地址替换为入口BAC设备的内网地址;入口消息发送单元43转发SIP消息到后端BAC设备。
后端消息接收单元51接收从入口BAC设备发送的SIP消息;后端消息转换单元52将入口BAC设备发送的SIP消息的contact头域中的入口BAC设备的内网地址替换为后端BAC设备的外网地址。后端消息发送单元53将SIP消息发送给被叫终端。
后端消息接收单元51接收被叫终端发送的SIP消息。后端消息转换单元52将被叫终端发送的SIP消息的contact头域中的被叫终端地址替换为入口BAC设备的内网地址。后端消息发送单元53将SIP消息发送到入口BAC设备。入口消息转换单元42将后端BAC设备发送的SIP消息的contact头域中的入口BAC设备的内网地址替换为主叫终端地址,入口消息发送单元43将SIP消息转发到主叫终端。
在一个实施例中,入口消息接收单元41接收主叫终端发送的register消息。入口消息转换单元42将register消息中contact头域的主叫终端地址替换为入口BAC设备的内网地址。入口消息发送单元43将register消息转发到后端BAC设备。转发关系存储单元44存储主叫终端与后端BAC设备的对应转发关系。
后端消息接收单元51当收到终端注销消息或者终端注册刷新超时消息时,删除该终端注册状态,后端消息发送单元53发送注销通知消息。注销通知消息为option消息,此option消息中包含终端注册号码字段。转发关系存储单元44根据注销通知消息,删除此终端与后端BAC设备的对应转发关系。
状态检测单元45向后端BAC设备发送option消息。状态反馈单元54向入口BAC设备返回负载状态消息。负载状态消息为200OK消息,此200OK消息中包括负载权重字段,状态检测单元存储负载权重字段携带的负载信息。
入口消息发送单元43根据存储的负载信息,将register消息转发到当前负载最小的后端BAC设备。入口消息接收单元41接收主叫终端发送的invite消息,入口消息转换单元42将invite消息中contact头域的主叫终端地址替换为入口BAC设备的内网地址,入口消息发送单元43判断是否在本地保存有此主叫终端与后端BAC设备的对应转发关系,如果是,则将invite消息转发到与此主叫终端对应的后端BAC设备;如果否,则根据负载信息,将invite消息转发到当前负载最小的后端BAC设备,转发关系存储单元44存储此主叫终端与后端BAC设备之间的对应转发关系。
上述实施例中提供的基于BAC集群的呼叫处理方法及BAC集群装置,通过对OPTION消息的扩展、BAC处理流程的优化,将多台BAC设备组成集群,实现根据BAC负载动态分配集群中BAC处理资源。
上述实施例中提供的基于BAC集群的呼叫处理方法及BAC集群装置,适用于所有通过BAC接入IMS网络的SIP用户,能够实现对BAC信令消息处理的负载分担,提高网络运行效率。
上述实施例中提供的基于BAC集群的呼叫处理方法及BAC集群装置,解决了目前二层负载均衡设备无法将BAC组成集群的问题,将多台BAC设备组成集群的方法,实现根据BAC负载动态分配集群中BAC处理资源。并且,在不改变原有SIP用户向IMS/软交换网络的SIP消息流程、基本遵循现有网络架构的前提下,统一终端与网络的信令交互入口,充分利用BAC处理资源,降低企业部署BAC的成本、提高部署的灵活性,提高了网络运行效率。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
机译: 基于集群之间的条件概率,在按集群创建和删除顺序排列的数据中检测集群的方法和装置
机译: 提供基于虚拟集群办公室地址的服务的系统,基于系统的虚拟集群办公室地址提供服务的装置和方法
机译: 集群束生成装置,基板处理装置,集群束生成方法和基板处理方法