一种基于TCAP协议的应用层呼叫转发的方法
技术领域
本发明涉及移动通信系统中事务能力应用部分业务的领域,更具体地说,涉及一种基于TCAP协议的应用层呼叫转发的方法。
背景技术
在某些应用场景下,服务节点可能需要获取一类呼叫信息,但是这类呼叫中有些不属于这个服务节点的处理的范围,为了不影响正常的呼叫流程,这个服务节点就需要将这个呼叫转发出去,并且不希望处理这个呼叫的后续消息。
在SS7(Signaling System No.7,七号信令)系统中,基于TCAP(TransactionCapability Application Part,事务能力应用部分)的应用层协议缺少呼叫重新路由的相关流程定义。如果服务节点收到了一个不能处理的呼叫,服务节点一般会选择结束这个呼叫,或者是转发这个呼叫。
目前,在传统呼叫转发方法中,服务节点收到了一个不能处理的呼叫后,该服务节点就需要双向转发与这个呼叫相关的所有消息,即充当一个代理服务器的角色,具体地,变更目的地址,并重新创建一个呼叫发送到目的节点,同时关联呼入呼叫和呼出呼叫,使得该服务节点作为中间节点,后续与本次呼叫相关的消息都由中间节点(即转发节点)负责转发。
但是,上述传统呼叫转发方法不仅繁琐而且浪费资源,同时还会降低系统可靠性,具体存在的缺陷表现如下:
(1)转发节点需要进行呼入呼叫和呼出呼叫关联,增加了呼叫处理的逻辑复杂度;
(2)转发节点需要双向转发源节点和目的节点之间的所有消息,增加了代理节点的额外负荷;
(3)转发节点进行呼叫转发增加了额外的系统开销,降低了系统可靠性。
发明内容
本发明要解决的技术问题在于,针对传统呼叫转发方法存在的缺陷,提供一种基于TCAP协议的应用层呼叫转发的方法,能更简单、更高效、更可靠的实现呼叫转发。
本发明解决上述问题的技术方案是提供了一种基于TCAP协议的应用层呼叫转发的方法,其特征在于,该方法包括以下步骤:
S1、中间节点的TCAP层从网络接收第一TR_BEGIN消息,将该第一TR_BEGIN消息转化为TC_BEGIN原语,并发送至应用层;
S2、应用层经过解析应用层数据获得呼叫信息,并使用预先配置的数据判断该呼叫信息是否属于所述中间节点的处理范围,若不属于,则变更该呼叫信息的目的地址;
S3、应用层使用TCAP层扩展的TC_RELAY原语转发呼叫至TCAP层;
S4、TCAP层根据TC_RELAY原语中的Dialogue ID参数查找本地事务,在找到本地事务后将TC_RELAY原语转化为TR_RELAY原语,并发送到TCAP事务子层;
S5、TCAP事务子层将TR_RELAY原语转化为第二TR_BEGIN消息,并发送到网络。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S1之前包括:
源节点向中间节点发送第一TR_BEGIN消息。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S3中,TC_RELAY原语中的被叫地址是变更后的目的地址。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S4中,TC_RELAY原语包含Transaction reference参数。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S5中,在TR_RELAY原语转化为第二TR_BEGIN消息时没有创建新事务,且在第二TR_BEGIN消息转发后,结束第一TR_BEGIN消息创建的本地事务。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S5中,第二TR_BEGIN消息中的主叫地址和源事务ID的取值均为第一TR_BEGIN消息中的取值。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S1中,事务状态由I变成IR;在所述步骤S4中,事务状态由IR变为I,其中:I表示事务未初始化或者不存在;IR表示事务收到初始化消息。
在上述的基于TCAP协议的应用层呼叫转发的方法中,在所述步骤S4中,还将TC_RELAY原语转化为TR_RELAY原语和TR_END原语。
在上述的基于TCAP协议的应用层呼叫转发的方法中,该方法进一步包括如下步骤:
目标节点回复TR_CONTINUE消息到源节点,以建立对话;
源节点修改呼叫的目的地址,并与目标节点交互;
源节点向目标节点发送TR_END消息以结束对话。
实施本发明的基于TCAP协议的应用层呼叫转发的方法的有益效果有:可以更简单、更高效、更可靠的实现呼叫转发,简化了呼叫转发处理流程,提高了呼叫转发处理效率。
附图说明
图1是包含本发明实施例中的呼叫转发的一次呼叫的流程图。
图2是本发明第一实施例的基于TCAP协议呼叫转发的处理流程图。
图3是图2的中间节点B基于TCAP协议呼叫转发的流程简图。
图4是本发明第一实施例的TCAP呼叫转发事务的状态机。
图5是本发明第二实施例的基于TCAP协议呼叫转发的流程简图。
具体实施方式
本发明提供一种基于TCAP协议的应用层呼叫转发的方法。该方法基于TCAP协议,增加TR_RELAY原语和TC_RELAY原语定义,应用层和TCAP层根据TR_RELAY原语和TC_RELAY原语进行呼叫转发,进而使得呼叫流程中只有TR_BEGIN消息会发送到转发节点,其他消息不需要通过转发节点转发。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,是包含本发明实施例中的呼叫转发的一次呼叫的流程图。该呼叫过程包括以下步骤:
S100、源节点A向中间节点B发送第一TR_BEGIN消息(起始消息);
S200、中间节点B基于TCAP协议转发第一TR_BEGIN消息,发送第二TR_BEGIN消息到目标节点C;
此步骤内容将在下面进行详细说明,在此不再赘述。
S300、目标节点C回复TR_CONTINUE消息(继续消息)到源节点A,以建立对话;
S400、源节点A修改呼叫的目的地址,并与目标节点C交互;
S500、源节点A向目标节点C发送TR_END消息(结束消息)以结束对话。
可以看出,本次呼叫过程中只有TR_BEGIN消息会发送到中间节点B,其他消息不需要中间节点B转发。
如图2所示,是本发明第一实施例的基于TCAP协议呼叫转发的处理流程图,即步骤S200,具体包括以下步骤:
S201、中间节点B的TCAP层从网络接收第一TR_BEGIN消息,将该第一TR_BEGIN消息转化为TC_BEGIN原语,并发送至应用层;
在此步骤中,其中,本领域技术人员均知悉,中间节点B也可称为本地服务节点;TC_BEGIN原语与第一TR_BEGIN消息是一致的。
S202、应用层经过解析应用层数据获得呼叫信息,并使用预先配置的数据判断该呼叫信息是否属于中间节点B的处理范围,若不属于,则变更该呼叫信息的目的地址;
在此步骤中,可以理解,若属于中间节点B的处理范围,则表明是源节点A与中间节点B之间的呼叫,不存在呼叫转发的情况。
S203、应用层使用TCAP层扩展的TC_RELAY原语转发呼叫;
其中,TC_RELAY原语中的被叫地址(Destination address)是变更后的目的地址。
S204、TCAP层根据TC_RELAY原语中的Dialogue ID(对话ID)参数查找本地事务,在找到本地事务后将TC_RELAY原语转化为TR_RELAY原语,并发送到TCAP事务子层;
S205、TCAP事务子层将TR_RELAY原语转化为第二TR_BEGIN消息,并发送到网络。
其中,第二TR_BEGIN消息中的主叫地址和源事务ID的取值均为第一TR_BEGIN消息中的取值。
在此步骤中,在TR_RELAY原语转化为第二TR_BEGIN消息时没有创建新事务,且在第二TR_BEGIN消息转发后,结束第一TR_BEGIN创建的本地事务。
如图3所示,是图2的中间节点B基于TCAP协议呼叫转发的流程简图。
在本实施例中,TCAP成份子层定义TC_RELAY原语,其中,TCAP成份子层用于向TC用户传递成份,及将TC用户要发送的成份发送至TCAP事务子层,具体定义如下表:
其中,Quality of Service(服务质量)参数、Destination address(目的地址)参数、Application context name(应用内容名称)参数、Originating address(源地址)参数、Dialogue ID(对话ID)参数、User information(用户信息)参数、Components(成份)参数的含义参考ITU-T Q.771,其中,Quality of Service参数、Application context name参数、Originating address参数、Dialogue ID参数、User information参数、Components参数的取值与TC-BEGIN原语中的取值一致,O表示可选的参数,M表示必选的参数。TC_RELAY原语中一定包含Destination address参数、Originating address参数和Dialogue ID参数。
在本实施例中,TCAP事务子层定义TR_RELAY原语,其中,TCAP事务子层用于管理事务,具体定义如下表:
其中,Transaction reference参数为本地事务引用,其取值为接收到第一TR_BEGIN消息时分配的本地事务ID,Destination address参数的取值来自上述TC_RELAY原语,Quality of Service参数、Originating address参数、Transaction ID(源事务ID)参数和User data(用户数据)参数来自第一TR_BEGIN消息,即与第一TR_BEGIN消息中对应的参数取值是一致的,O表示可选的参数,M表示必选的参数。TR_RELAY原语中一定包含Destination address参数、Originating address参数、Transaction ID参数和Transaction reference参数。
如图4所示,是本发明第一实施例的TCAP呼叫转发事务的状态机,在本实施例中,中间节点B的TCAP层接收到第一TR_BEGIN消息时,即在步骤S201中,事务状态由I变成IR;中间节点B的TCAP层从应用层接收到TR_RELAY原语时,即在步骤S204中,事务状态由IR变为I。其中:I(Idle状态)表示事务未初始化或者不存在;IR(Init Receive状态)表示事务收到初始化消息。
如图5所示,是本发明第二实施例的基于TCAP协议呼叫转发的流程简图,与第一实施例中不同之处为:在步骤S204中,将TC_RELAY原语转化为TR_RELAY原语和TR_END原语,此时,TR_RELAY原语可以不包括Transaction reference参数,且TR_END原语中的Termination参数取值为prearranged end,表明该TR_END原语不发送至网络,仅用于结束本地事务。其他的内容均与第一实施例中的内容相同,为节省篇幅,在此不再赘述。
综述,本发明的基于TCAP协议的应用层呼叫转发的方法简化了的呼叫转发处理流程,提高了呼叫转发处理效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。