专利名称:一种电话自动呼叫的系统及方法
技术领域:
本发明涉及电话呼叫技术,特别是涉及一种电话自动呼叫的系统及方法。
背景技术:
随着通信技术的迅速发展,电话自动呼叫技术也得到越来越广泛的应用。图1是一种现有技术中电话自动呼叫系统的结构示意图。从图1中可以看到,电话自动呼叫系统包括呼叫接续模块、呼叫分配模块以及多个逻辑控制层,呼叫接续模块连接到公用电话交换网(PSTN)。其中,呼叫接续模块用于接续用户呼叫,并且还可以提供有限的资源。呼叫分配模块用于在呼叫到达时,选择一个逻辑控制层实体为该呼叫服务。逻辑控制层的作用在于解释业务逻辑,并根据业务逻辑的要求调用系统资源与用户进行交互。在这种系统中,当用户进行电话呼叫时,首先由呼叫接续模块接入该呼叫,然后将呼叫信号发送到呼叫分配模块,呼叫分配模块根据逻辑控制层的状态在多个逻辑控制层中选择其中一个,被选中的逻辑控制层调用系统资源和用户交互,从而完成一次电话呼叫。
在这种电话呼叫系统中,由于系统资源只能采用交换机内置资源,目前的资源主要是指用于放音的语音资源,而交换机由于容量有限,因此其内置资源也非常有限,不能很好地满足用户对电话呼叫业务的多种需求,而如果要在交换机内更换或扩充这些资源,其操作非常复杂,需要耗费大量的时间和费用。因此这种电话系统给业务的拓展带来了很大的阻碍,已经不能适应当今技术的发展需要。
为了解决资源有限的问题,目前又提出了另一种电话自动呼叫系统,其结构示意图如图2所示。从图2中可以看到,这种电话自动呼叫系统包括板卡、资源层和逻辑控制层。其中板卡是插在计算机主板或母板上、用来处理电话信号的硬件,它用于完成对电话呼叫的接入。资源层用于完成对各种资源的操作,并在呼叫到达时选取一个正常的逻辑控制层为该呼叫服务。逻辑控制层的作用依然是解释业务逻辑,并根据业务逻辑的要求调用资源层内的资源与用户进行交互。在这种系统中,板卡通过电话线路或中继线路连接到PSTN,资源层和板卡位于同一个计算机,而逻辑控制层位于不同的计算机,并能和资源层进行消息交互。
在第二种系统中,用户通过电话发起呼叫时,呼叫经过PSTN和电话线路或中继线路到达板卡,板卡检测到有电话呼叫信息,上报给资源层有呼叫到达。资源层选择一个正常的逻辑控制层的实体为该呼叫提供服务,逻辑控制层根据业务逻辑,要求资源层启动某个资源,用来播放业务内容或者接收用户输入。业务逻辑执行完毕后,或者用户挂机,系统清除该呼叫占用的系统资源,例如将资源层的一个线程和逻辑控制层的一个线程设置为空闲,以便重新使用这些线程。在这种电话自动呼叫系统中,当某个逻辑控制层的实体发生故障时,资源层就不再选用该实体,而是选择其他正常的逻辑控制层的实体,因此整个系统仍然能够正常运转,所用的呼叫都能够得到正常的服务。
相对于第一种电话自动呼叫系统,第二种系统使用由逻辑控制层控制的资源层,解决了资源容量少和不能扩展的缺陷,但是在第二种系统中,由于某个电话线路上的呼叫与板卡和资源层程序是一一对应关系,也就是一个电话线路上的呼叫只对应一个板卡,一个电话线路上的呼叫也只对应一个资源层程序,因此只要板卡或资源层程序出现故障,就会有一些线路上的呼叫无法得到正常的服务,造成呼叫无应答或呼叫损失,从而造成单点失效,极大地影响了服务质量。
同时,由于将用户的呼叫分配到哪个电话线路上去不是由电话自动呼叫系统决定的,因此系统无法实现负荷分担。虽然可以要求电信公司使用线路轮选的方式,但是这并不是真正意义上的负荷分担,仍然会出现负荷不均的现象。也就是说,在第二种呼叫系统中,容易出现某些板卡上有较多呼叫,而另外一些板卡上却只有很少的呼叫的情况,从而容易在呼叫较多的板卡上造成堵塞,同样会影响服务质量。
发明内容
有鉴于此,本发明的一个目的是提供一种能克服现有技术的不足,具有高可靠性、稳定性和扩展性的电话自动呼叫系统。
本发明的另一个目的是提供一种利用上述系统实现电话自动呼叫的方法。
本发明的上述目的是通过如下的技术方案予以实现的一种电话自动呼叫系统,包括逻辑控制层,用于解释业务逻辑并根据业务逻辑要求调用资源层内的资源与电话呼叫进行交互;资源层,用于完成对各种资源的操作;呼叫接续模块,用于接入电话呼叫并将其接续到板卡;呼叫分配模块,用于在电话呼叫到达时选择一个逻辑控制层实体为该电话呼叫服务、并透传逻辑控制层和资源层之间的交互消息;板卡,用于为电话呼叫提供信道服务;其中呼叫接续模块通过话路连接到PSTN和板卡,呼叫接续模块、呼叫分配模块、逻辑控制层和资源层之间通过局域网连接。
在上述电话自动呼叫系统中,呼叫分配模块、逻辑控制层和资源层分别在独立的设备上实现,或者集成在一个或一个以上的设备中实现。
一种使用权利要求1的电话自动呼叫系统进行电话自动呼叫的方法,包括如下步骤a.呼叫接续模块接收到呼叫到达信息后,选择一个资源层实体的板卡信道,并向呼叫分配模块发送请求进行呼叫分配消息,呼叫分配模块选择一个逻辑控制层实体并将呼叫分配到所选择的逻辑控制层;b.逻辑控制层根据呼叫请求所希望的业务逻辑,通过呼叫分配模块透传交互信息从资源层内调用资源,实现电话自动呼叫。
在上述方法中,在步骤b之前可以进一步包括在接收到逻辑控制层返回的呼叫应答消息后,系统建立电话信道与板卡信道的连接,呼叫接续模块分别向资源层和逻辑控制层发送信道分配通知消息和信道分配成功消息。
在上述方法中可以进一步包括在接收到呼叫结束消息后,呼叫接续模块向资源层发送释放信道通知,系统断开电话信道与板卡信道之间的连接。
在上述方法中,步骤a中呼叫接续模块选择资源层的板卡信道以及呼叫分配模块选择逻辑控制层实体采用负荷均分原则。
在上述方法中,步骤a中还可以包括呼叫接续模块接收到呼叫到达信息后,呼叫接续模块进一步判断是否找到一个资源层实体上的可用信道,如果是,标记该信道为忙信道,并向呼叫分配模块发送请求进行呼叫分配消息;否则拒绝接受呼叫,标记该线程为空闲状态。并且在呼叫接续模块向呼叫分配模块发送请求进行呼叫分配消息后,呼叫接续模块可以进一步判断是否在规定时间内接收到信道呼叫应答消息,如果是,向PSTN发送接受呼叫消息,并执行步骤b;否则拒绝接受呼叫,标记该信道为空闲状态,同时标记该线程为空闲状态。
在上述方法中,步骤a中还包括呼叫分配模块选择一个逻辑控制层实体后,呼叫分配模块进一步判断是否在预定时间内接收到该逻辑控制层的反馈消息,如果是,标记该逻辑控制层线程忙,并将呼叫分配到所选择的逻辑控制层;否则标记该逻辑控制层线程故障,并继续等待。
在上述方法中,步骤b中呼叫分配模块透传逻辑控制层对资源层资源的调用进一步包括呼叫分配模块判断是否在预定时间内接收到消息,如果是,进一步判断该消息类型,如果该消息是释放呼叫通知消息,则向相应逻辑控制层线程发送该释放呼叫通知;如果该消息是业务逻辑执行完毕通知,则向呼叫接续模块发送呼叫结束消息;如果该消息是交互消息,则将其透传到该消息目的地;如果没有在预定时间内接收到消息,则标记该逻辑控制层线程故障。并且在呼叫分配模块向相应逻辑控制层线程发送释放呼叫通知后,可以进一步判断是否在预定时间内接收到逻辑控制层的呼叫释放成功消息,如果是,标记该逻辑控制层线程空闲;否则标记该逻辑控制层线程故障。
在上述方法中,在接收到呼叫结束消息后,呼叫接续模块可以进一步判断呼叫结束消息是来自PSTN还是来自呼叫分配模块,如果呼叫结束消息来自PSTN,呼叫接续模块通过呼叫分配模块向资源层对应线程发送呼叫释放通知;如果呼叫结束消息来自呼叫分配模块,呼叫接续模块向PSTN发送呼叫结束通知。并且在呼叫接续模块向资源层发送释放信道通知后,呼叫接续模块可以进一步判断在预定时间内是否接收到信道释放成功消息,如果是,标记该信道为空闲信道;否则标记该信道为故障信道。
通过本发明的技术方案可以看出,本发明在参考现有技术中两种电话自动呼叫系统的基础上,通过将现有的第一种系统的呼叫接续模块和呼叫分配模块引入到第二种系统中,并对呼叫接续模块和呼叫分配模块以及逻辑控制层、资源层、板卡等各个硬件的连接关系进行了重新设计,对消息传送路径进行了重大修改,同时呼叫接续模块和呼叫分配模块与现有技术相比在功能和对消息的处理流程上都发生了很大变化,这样根据本发明的系统以及使用根据本发明系统的方法就融合了现有技术的优点,并克服了它们各自的缺点。
根据本发明,在部分逻辑控制层出现故障时,电话呼叫会由呼叫分配模块传送到空闲并且没有故障的其它逻辑控制层处理,在部分资源层出现故障时,电话呼叫会由呼叫接续模块接续到空闲并且没有故障的其它资源层处理,从而不会造成这部分呼叫的损失,提高了系统的可靠性。
根据本发明,呼叫分配模块可以根据逻辑控制层的状态采用负荷均分原则选择逻辑控制层的线程,呼叫接续模块可以根据资源层的状态采用负荷均分原则选择资源层的线程,从而可以使用户的电话呼叫更合理地分配到各个逻辑控制层实体或资源层实体上去,提高了系统的稳定性。
并且,由于本发明采用资源层来处理资源,便于资源的扩充和修改,方便向用户提供不同的资源功能,提高了系统的可扩展性。
因此,使用本发明可以向用户提供更好的服务,极大地提升了服务提供商的服务质量和综合竞争力。
图1是现有技术中一种电话自动呼叫系统的结构示意图;图2是现有技术中另一种电话自动呼叫系统的结构示意图;图3是本发明中电话自动呼叫系统的结构示意图;图4是本发明中电话自动呼叫系统的系统组网示意图;图5是本发明中电话自动呼叫系统接入呼叫和为呼叫提供服务的流程图;图6是本发明中呼叫主动结束情况下的结束呼叫的流程图;图7是本发明中业务逻辑执行完成情况下的结束呼叫的流程图;图8是本发明中呼叫接续模块的处理流程图;图9是本发明中呼叫分配模块的处理流程图。
具体实施例方式
为了使本发明的目的、技术方案和优点更清楚,下面结合附图和具体实施方式
对本发明作进一步描述。
图3是本发明中电话自动呼叫系统的结构示意图。从图中可以看出,和现有技术的第二种电话自动呼叫系统相比,本发明的电话自动呼叫系统除了板卡、资源层和逻辑控制层以外,还包括呼叫接续模块和呼叫分配模块。其中,呼叫接续模块通过诸如电话线路或中继线路的话路连接到PSTN,并通过局域网和呼叫分配模块相连,呼叫分配模块还同时连接到逻辑控制层和资源层,和资源层位于同一个计算机的板卡也通过诸如电话线路或中继线路的话路连接到PSTN。逻辑控制层和资源层不再直接进行消息交互,它们之间的消息交互需要经过呼叫分配模块的透传。
在本发明中,呼叫接续模块的作用是用于完成电话呼叫的接入,并负责将呼叫接续到没有故障并且其所在的资源层也没有故障的板卡上。呼叫分配模块的作用是当呼叫到达时,选择一个没有故障的逻辑控制层实体为该呼叫服务。逻辑控制层的作用是解释业务逻辑,并根据业务逻辑要求调用资源层内的资源与呼叫进行交互。资源层的作用是完成各种资源的操作,常见的资源包括“放音”、“电话按键收号”、“录音”、“语音识别”以及“文语转换”等等。板卡的作用是为某个呼叫提供信道服务,例如对呼叫进行放音、收号、录音等操作,而不再具有第二种现有技术中的呼叫接入功能。来自外部的电话线路或中继线路不再接到板卡,而是接到呼叫接续模块上。逻辑控制层与资源层之间的消息交互需要经过呼叫分配模块的透传,但在物理连接上,逻辑控制层和资源层是通过局域网相连的,呼叫分配模块在透传消息的过程中同时对消息流进行监控,具体的透传和监控过程将在介绍整个方法时详细介绍。
图4是本发明中电话自动呼叫系统的系统组网示意图。从图4中可以看到,呼叫接续模块、呼叫分配模块、多个资源层以及多个逻辑控制层可分别由独立的设备实现,并都与局域网相连,其中资源层实体还通过安装在其上的板卡上的电话线路插孔与呼叫接续模块通过电话线路连接。在本发明中,呼叫接续模块虽然不是计算机,但在呼叫接续模块中安装有类似于计算机网卡的网络通讯装置,用于和局域网中的其他组件进行通信。
在实际应用中,呼叫接续模块采用交换机实现。呼叫分配模块通过一个计算机应用程序实现,为了使系统运行稳定,通常呼叫分配模块在单独的一台服务器上实现。逻辑控制层也是通过计算机程序实现,同样为了使系统运行稳定,逻辑控制层也在单独的一台服务器上实现。资源层也是通过计算机程序实现,资源层在安装有板卡的工控机上实现。在系统负荷允许的情况下,可以将呼叫分配模块、逻辑控制层和资源层的程序进行适当合并,也就是说,可以在一台或几台计算机或者服务器上实现上述三个实体的功能,而不会影响到这些功能之间的逻辑关系。
下面介绍本发明的电话自动呼叫系统如何进行一个完整的电话呼叫服务。
图5是本发明中电话自动呼叫系统对呼叫接入和为呼叫提供服务的流程图。在系统启动的时候,资源层程序和逻辑控制层程序分别将自己的状态报告给呼叫接续模块和呼叫分配模块,呼叫接续模块根据各个资源层实体的状态,决定将呼叫的话路信道接到哪个资源层实体的板卡上,呼叫分配模块根据各个逻辑控制层实体的状态,决定将呼叫的逻辑控制权分配给哪个逻辑控制层实体。
当用户拨打电话自动呼叫系统的接入号码时,呼叫接续模块从电话线路或中继线路检测到有电话呼叫,向呼叫分配模块发送请求进行呼叫分配的信息。呼叫分配模块在接收该信息后,将呼叫分配给某个逻辑控制层,逻辑控制层将呼叫应答信息通过呼叫分配模块返回给呼叫接续模块。呼叫接续模块将用户的电话接入,然后建立电话信道和板卡信道之间的连接。随后呼叫接续模块给资源层发送信道分配通知,并向逻辑控制层发送信道分配成功通知。资源层和逻辑控制层在接收到来自呼叫接续模块的通知后,它们之间即可实现消息交互。
逻辑控制层与资源层之间的消息交互与现有技术中实现的过程基本相同。首先,逻辑控制层调用资源层内的资源,例如向电话信道放音,资源层即通过板卡向用户进行放音操作。在放音结束之后,资源层向逻辑控制层返回资源使用结果,在这里就是放音结果。这个交互过程根据用户的业务请求可以进行多次,当然,除了放音之外,逻辑控制层也可以调用资源层实现对电话信道进行语音识别、文语转换等等操作。这里需要说明的是,在本发明中,资源层和逻辑控制层之间的消息交互需要经过呼叫分配模块的透传,呼叫分配模块透传消息的具体过程在稍后的介绍呼叫分配模块的处理流程部分加以详细说明。
在电话呼叫建立之后,断开该电话呼叫有两种情况。一种情况是用户主动挂断电话,另一种情况是业务逻辑执行完成后由电话自动呼叫系统结束该呼叫过程。下面分别就这两种情况说明本发明的结束呼叫的过程。
图6是呼叫主动结束情况下的结束呼叫的流程图。如图6所示,当用户需要挂断电话,也就是用户需要主动结束呼叫时,用户通过挂断电话的形式向电话自动呼叫系统表明呼叫主动结束。呼叫接续模块在接收到该由呼叫方主动发出的呼叫结束通知后,向呼叫分配模块发送呼叫释放通知。呼叫分配模块随即向逻辑控制层发送释放呼叫通知,逻辑控制层接收到该通知后释放信道,然后通过呼叫分配模块向呼叫接续模块返回呼叫释放成功通知。然后呼叫接续模块向资源层发送释放信道通知,资源层在释放信道后返回信道释放成功消息。此时电话自动呼叫系统断开电话信道与板卡信道之间的连接。
图7是业务逻辑执行完成情况下的结束呼叫的流程图。如图7所示,当逻辑控制层和资源层进行多次交互后完成了用户请求的业务逻辑时,逻辑控制层向呼叫分配模块发送业务逻辑执行完毕通知,呼叫分配模块接收到该信息后向呼叫接续模块发送呼叫结束通知。然后呼叫接续模块向用户发送呼叫结束通知。呼叫接入模块向资源层发送释放信道通知,资源层在接收到该信息后释放信道,并向呼叫接续模块返回信道释放通知。此时断开电话信道和板卡信道之间的连接,至此一次电话呼叫结束。
以上说明了本发明中一次电话呼叫的执行过程。下面具体介绍呼叫接续模块和呼叫分配模块在该电话呼叫的执行过程中所进行的处理。
呼叫接续模块是一个多线程功能实体,每个线程具有两种状态空闲状态和呼叫接通状态。当主线程接收到电话呼叫时,选择一个处于空闲状态的线程来处理该电话呼叫。其具体的处理过程如图8所示。
图8是本发明中呼叫接续模块的处理流程图。从图8中可以看到,呼叫接续模块始终处于等待呼叫请求的状态,当接收到来自PSTN的用户电话呼叫时,呼叫接续模块执行如下处理步骤步骤801呼叫接续模块先标记本线程为呼叫接通状态,然后寻找资源层实体的可用信道,并判断是否找到了这样的一个可用信道。在前面介绍过,当系统启动时,资源层程序将自己的状态报告给呼叫接续模块。此时呼叫接续模块根据资源层的状态,按照负荷均分的原则选择一个没有故障并且处于空闲状态的资源层的板卡信道,作为将要建立连接的信道。具体如何实行负荷分均的方法将在后面详细说明。如果在此步骤中,呼叫接续模块没有找到可用信道,则执行步骤802至步骤803;如果找到了一个可用信道,则先将该信道标记为使用中状态,然后执行步骤804及后续步骤。
步骤802、803呼叫接续模块拒绝接受呼叫,并标记本线程为空闲状态。然后呼叫接续模块的该线程进入空闲状态。
步骤804呼叫接续模块标记在步骤801中找到的可用信道为忙信道。
步骤805呼叫接续模块向呼叫分配模块请求进行分配。
步骤806判断是否在规定时间内接收到来自呼叫分配模块的“呼叫应答”消息。如果在规定时间内接收到该消息,执行步骤810及后续步骤;否则执行步骤807至步骤809。
步骤807-809呼叫接续模块拒绝接受呼叫,标记该可用信道为空闲信道,并标记本线程为空闲状态。然后呼叫接续模块的该线程进入空闲状态。
步骤810呼叫接续模块向PSTN发送接受呼叫消息。此时系统建立电话信道与资源层板卡信道的连接。
步骤811呼叫接续模块向资源层发送信道分配通知。
步骤812呼叫接续模块向逻辑控制层发送信道分配成功消息。
然后逻辑控制层和资源层之间进行消息交互,呼叫接续模块则处于等待“呼叫结束”消息的状态。当接收到“呼叫结束”消息后,呼叫接续模块继续执行如下步骤的处理步骤813判断该“呼叫结束”消息是否是由呼叫方发出。如果该消息是由呼叫方发出,则执行步骤814、步骤816及后续步骤;否则执行步骤815、步骤816及后续步骤。
步骤814呼叫接续模块向呼叫分配模块对应线程发送呼叫释放通知。
步骤815呼叫接续模块向PSTN发送呼叫结束通知。
步骤816呼叫接续模块向资源层对应线程发送释放信道通知。
步骤817呼叫接续模块判断是否在规定时间内接收到“信道释放成功”消息。如果在规定时间内接收到该消息,执行步骤818;否则执行步骤819。
步骤818呼叫接续模块将释放成功的信道标记为空闲信道。
步骤819呼叫接续模块将未释放成功的信道标记为故障信道。
在呼叫接续模块将信道标记为空闲信道或者故障信道后,系统断开电话信道与板卡信道之间的连接,呼叫接续模块的该线程进入空闲状态,并继续等待来自PSTN的电话呼叫。
上面讲述了呼叫接续模块在本发明中的处理过程。下面接着介绍呼叫分配模块在本发明中的处理过程。
和呼叫接续模块一样,呼叫分配模块也是一个多线程功能实体,每一个线程同样具有两种状态,分别是空闲状态和忙状态。当主线程接收到来自呼叫接续模块的“请求呼叫分配”消息时,呼叫分配模块选择一个处于空闲状态的线程来处理该事件。其具体的处理过程如图9所示。
图9是根据本发明的呼叫分配模块的处理流程图。从图9中可以看到,呼叫分配模块始终处于等待“请求呼叫分配”消息的状态,当接收到来自呼叫接续模块的“请求呼叫分配”消息时,呼叫分配模块执行如下步骤的处理步骤901呼叫分配模块先将本线程标记为忙状态,然后选择一个可用的逻辑控制层程序上的可用线程,并向该线程发送呼叫分配消息。在前面说过,当系统启动时,逻辑控制层程序将自己的状态报告给呼叫分配模块。此时呼叫分配模块根据逻辑控制层的状态,按照负荷均分原则选择一个没有故障并且处于空闲状态的逻辑控制层的线程,作为将要建立信道连接的线程,并将该信道标记为使用中状态。同样,这里如何实行具体的负荷分均将在后面详细说明。
步骤902判断是否在规定时间内接收到了来自逻辑控制层的“请求信道资源”消息。如果在规定时间内接收到了该消息,执行步骤904及后续步骤;否则执行步骤903。
步骤903标记该逻辑控制层线程为故障状态。然后呼叫分配模块进入空闲状态,即进入初始等待“请求呼叫分配”状态。
步骤904标记该逻辑控制层线程为忙状态。
此后呼叫分配模块开始等待消息。逻辑控制层和资源层进行消息交互,而它们之间的消息发送都要经过呼叫分配模块的透传。也就是说,逻辑控制层先将消息发送给呼叫分配模块,呼叫分配模块然后将该消息转发给资源层。同样,资源层也需要将消息先发送给呼叫分配模块,然后由呼叫分配模块将该消息转发给逻辑控制层。呼叫分配模块对消息进行透传的目的是为了监视消息发送状态,如果逻辑控制层和资源层之间长时间没有消息发送,呼叫分配模块可以进行及时处理,避免了系统对用户业务请求长时间没有响应,从而给用户带来时间的浪费的现象。
步骤905判断是否在规定时间内接收到消息。如果在规定时间内没有接收到消息,则执行步骤906、步骤910和步骤912。如果在规定时间内接收到了消息,则执行步骤907及后续步骤。
步骤906标记该逻辑控制层线程为故障。
步骤907进一步判断所接收的消息类型。如果所接收的消息是逻辑控制层和资源层之间的交互消息,则执行步骤908;如果所接收的消息是“释放呼叫通知”,则执行步骤909及后续步骤;如果所接收的消息是“业务逻辑执行完毕通知”,则执行步骤910和步骤912。
步骤908呼叫分配模块将所接收的交互消息进行透传,也就是继续传送到目的地。
步骤909呼叫分配模块向与本线程对应的逻辑控制层程序线程发送“释放呼叫通知”。然后执行步骤911。
步骤910呼叫分配模块向呼叫接续模块发送呼叫结束通知。然后执行步骤912。
步骤911判断在规定时间内是否接收到来自逻辑控制层的“呼叫释放成功”消息。如果接收到了该消息,执行步骤912。如果没有接收到该消息,执行步骤913。
步骤912标记该逻辑控制层线程为空闲。
步骤913标记该逻辑控制层线程为故障。
呼叫分配模块在标记该逻辑控制层线程为故障或空闲后,呼叫分配模块的该线程进入空闲状态,即继续进入等待“请求呼叫分配”的状态。
在本发明中,逻辑控制层也是一个多线程功能实体,每个线程分为三种状态空闲状态、通话中状态和故障状态。所有的线程只与给自己发送呼叫分配消息的呼叫分配模块线程进行消息交互。同样,资源层也是一个多线程功能实体,每一个线程也分为三种状态空闲状态、使用中状态和故障状态。由于一个信道对应一个资源层线程,所以对应的信道也被分为空闲信道、使用中的信道和故障信道。所有的线程与给自己发送信道分配请求的呼叫接续模块线程,以及和用来传递与逻辑控制层的消息交互的呼叫分配模块线程进行消息交互。
作为本发明的一个优点,呼叫接续模块和呼叫分配模块分别在选择资源层实体的板卡信道和逻辑控制层实体时采用了负荷均分的原则,从而避免了第二种现有技术中无法实现负荷分担从而容易出现负荷分配不均的缺点。负荷均分的具体内容不属于本发明创新的范畴,因此下面只通过一个示例简单地说明在本发明中可以如何实现负荷均分。
对于呼叫接续模块而言,可以建立一个包括资源层实体ID、总资源数、占用数和占用率等字段的资源层实体状态记录表。其中资源层实体ID在系统启动之前就已经设置完成。在系统启动时,呼叫接续模块接收由资源层实体上报的资源层实体资源总数,并将占用数和占用率清零。在前述步骤801中,第一次可以任意选择一个资源层实体,并在其中找到一个可用信道,然后在将所确定的可用信道标记为忙信道的步骤804中,将对应的资源层实体的占用数加上1,然后根据新的占用数更新表中的占用数和占用率。在将释放成功的信道标记为空闲信道的步骤818中,将对应的资源层实体的占用数减去1,然后根据新的占用数更新表中的占用数和占用率。这样在下一次的步骤801中,则根据各个资源层实体的占用率选择占用率最低的资源层实体的板卡信道。从而实现呼叫接续模块的负荷均分的原则。
与呼叫接续模块相似,对于呼叫分配模块而言,可以建立一个包括逻辑控制层实体ID、总资源数、占用数和占用率等字段的逻辑控制层实体状态记录表。其中逻辑控制层实体ID在系统启动之前就已经设置完成。在系统启动时,呼叫分配模块接收由逻辑控制层实体上报的逻辑控制层实体资源总数,并将占用数和占用率清零。在前述步骤901中,第一次可以任意选择一个逻辑控制层实体,并在其中找到一个可用线程,然后在将所确定的可用线程标记为忙的步骤904中,将对应的逻辑控制层实体的占用数加上1,然后根据新的占用数更新表中的占用数和占用率。在将释放成功的线程标记为空闲线程的步骤913中,将对应的逻辑控制层实体的占用数减去1,然后根据新的占用数更新表中的占用数和占用率。这样在下一次的步骤901中,则根据各个逻辑控制层实体的占用率选择占用率最低的逻辑控制层实体的可用线程,从而实现呼叫分配模块的负荷均分的原则。
可以理解,本发明的附图和上述说明只是对本发明精神的一种解释,并不用以限定本发明的保护范围。
权利要求
1.一种电话自动呼叫系统,包括逻辑控制层,用于解释业务逻辑并根据业务逻辑要求调用资源层内的资源与电话呼叫进行交互;资源层,用于完成对各种资源的操作;其特征是,该系统进一步包括呼叫接续模块,用于接入电话呼叫并将其接续到板卡;呼叫分配模块,用于在电话呼叫到达时选择一个逻辑控制层实体为该电话呼叫服务、并透传逻辑控制层和资源层之间的交互消息;板卡,用于为电话呼叫提供信道服务;所述呼叫接续模块通过话路连接到PSTN和板卡,呼叫接续模块、呼叫分配模块、逻辑控制层和资源层之间通过局域网连接。
2.根据权利要求1所述的电话自动呼叫系统,其特征是,所述呼叫分配模块、逻辑控制层和资源层分别在独立的设备上实现,或者集成在一个或一个以上的设备中实现。
3.一种使用权利要求1的电话自动呼叫系统进行电话自动呼叫的方法,包括如下步骤a.呼叫接续模块接收到呼叫到达信息后,选择一个资源层实体的板卡信道,并向呼叫分配模块发送请求进行呼叫分配消息,呼叫分配模块选择一个逻辑控制层实体并将呼叫分配到所选择的逻辑控制层;b.逻辑控制层根据呼叫请求所希望的业务逻辑,通过呼叫分配模块透传交互信息从资源层内调用资源,实现电话自动呼叫。
4.根据权利要求3所述的方法,其特征是,在步骤b之前进一步包括在接收到逻辑控制层返回的呼叫应答消息后,系统建立电话信道与板卡信道的连接,呼叫接续模块分别向资源层和逻辑控制层发送信道分配通知消息和信道分配成功消息。
5.根据权利要求3所述的方法,其特征是,该方法进一步包括在接收到呼叫结束消息后,呼叫接续模块向资源层发送释放信道通知,系统断开电话信道与板卡信道之间的连接。
6.根据权利要求3所述的方法,其特征是,步骤a中所述呼叫接续模块在选择资源层的板卡信道时以及呼叫分配模块在选择逻辑控制层实体时采用负荷均分原则。
7.根据权利要求3或6所述的方法,其特征是,步骤a中还包括呼叫接续模块接收到呼叫到达信息后,呼叫接续模块进一步判断是否找到一个资源层实体上的可用信道,如果是,标记该信道为忙信道,并向呼叫分配模块发送请求进行呼叫分配消息;否则拒绝接受呼叫,标记该线程为空闲状态。
8.根据权利要求7所述的方法,其特征是,步骤a中还包括呼叫接续模块向呼叫分配模块发送请求进行呼叫分配消息后,呼叫接续模块进一步判断是否在规定时间内接收到信道呼叫应答消息,如果是,向PSTN发送接受呼叫消息,并执行步骤b;否则拒绝接受呼叫,标记该信道为空闲状态,同时标记呼叫接续模块的相应线程为空闲状态。
9.根据权利要求3或6所述的方法,其特征是,步骤a中还包括呼叫分配模块选择一个逻辑控制层实体后,呼叫分配模块进一步判断是否在预定时间内接收到该逻辑控制层的反馈消息,如果是,标记该逻辑控制层线程忙,并将呼叫分配到所选择的逻辑控制层;否则标记该逻辑控制层线程故障,并继续等待。
10.根据权利要求3或6所述的方法,其特征是,步骤b中所述呼叫分配模块透传逻辑控制层对资源层资源的调用进一步包括呼叫分配模块判断是否在预定时间内接收到消息,如果是,进一步判断该消息类型,如果该消息是释放呼叫通知消息,则向相应逻辑控制层线程发送该释放呼叫通知;如果该消息是业务逻辑执行完毕通知,则向呼叫接续模块发送呼叫结束消息;如果该消息是交互消息,则将其透传到该消息目的地;如果没有在预定时间内接收到消息,则标记该逻辑控制层线程故障。
11.根据权利要求10所述的方法,其特征是,在呼叫分配模块向相应逻辑控制层线程发送释放呼叫通知后,进一步判断是否在预定时间内接收到逻辑控制层的呼叫释放成功消息,如果是,标记该逻辑控制层线程空闲;否则标记该逻辑控制层线程故障。
12.根据权利要求5所述的方法,其特征是,在接收到呼叫结束消息后,呼叫接续模块进一步判断呼叫结束消息是来自PSTN还是来自呼叫分配模块,如果呼叫结束消息来自PSTN,呼叫接续模块通过呼叫分配模块向资源层对应线程发送呼叫释放通知;如果呼叫结束消息来自呼叫分配模块,呼叫接续模块向PSTN发送呼叫结束通知。
13.根据权利要求12所述的方法,其特征是,在呼叫接续模块向资源层发送释放信道通知后,呼叫接续模块进一步判断在预定时间内是否接收到信道释放成功消息,如果是,标记该信道为空闲信道;否则标记该信道为故障信道。
全文摘要
本发明公开了一种电话自动呼叫系统,包括用于解释业务逻辑并根据业务逻辑要求调用资源层内的资源与电话呼叫进行交互的逻辑控制层、用于操作各种资源的资源层,并进一步包括用于接入电话呼叫并将其接续到板卡的呼叫接续模块,用于在电话呼叫到达时选择一个逻辑控制层实体为该电话呼叫服务、并透传逻辑控制层和资源层之间的交互消息的呼叫分配模块,用于为电话呼叫提供信道服务的板卡,其中呼叫接续模块通过话路连接到PSTN和板卡,呼叫接续模块、呼叫分配模块、逻辑控制层和资源层之间通过局域网连接。本发明还公开了这种电话自动呼叫系统的自动呼叫处理方法。本发明能提高系统的可靠性、稳定性和可扩展性。
文档编号H04M1/26GK1510892SQ0215807
公开日2004年7月7日 申请日期2002年12月24日 优先权日2002年12月24日
发明者刘永红, 谢春风, 李慧强, 冯源, 曹立格特, 特 申请人:华为技术有限公司