具有通用应用程序接口用于标准化交互呼叫处理通信的电信交换器的制作方法

文档序号:7570629阅读:472来源:国知局
专利名称:具有通用应用程序接口用于标准化交互呼叫处理通信的电信交换器的制作方法
背景技术
发明领域本发明一般涉及电信领域,更具体地讲,涉及一个用于标准化交互呼叫处理并具有支持各种电信应用的可编程电信交换器和主机计算机的通用应用程序接口(API)。
相关技术描述可编程电信交换器被用于诸如话音通知,远程销售业务等多种应用中。一台运行电信应用程序的计算机。一个可编程交换器通常由一个主机设备控制,一般地,可以购买与主机和交换器硬件兼容的商用应用程序或选择编写用户定义程序。
在大多数应用中,可编程交换器通过一个或多个终接于交换器的模拟中继线或数字跨线(例如T1跨线(Span))与公共电话网连接。该交换器还可以终接一条或多条连接到诸如电话机那样的设备的“用户线”。根据所分配的信令协议完成任何给定中继线、跨线或用户线上的通信。
对各种交换系统应用,必须根据必要的协议控制交换事件的顺序和执行交换功能。在世界各地使用的“标准”信令协议有许多,包括E&M信号启动、环路启动、接地启动的协议,使用MFR2地址信令的国际互控R2协议,以及使用DTMF/MFR1信令的E1信道随路信令(CAS)协议。一般地,传统的可编程交换器被配置为使一种特定的信令协议与一种特定的中继线、跨线或用户线相关联。
为了在满足特定交换功能所必要的各种级别上控制电信交换器,传统的主机应用程序被配置为产生与许多交换事件对应的数字信号命令。相应地,传统的通信交换器被配置为产生与各端口上这些事件的处理有关的数字信号应答。这些消息是固定的或“硬编码的”消息,每个消息用于在主机应用程序与交换器之间传送特定的信息。用以传送这些消息的电信应用程序与交换器之间的接口称为应用程序接口,或API。
每个信令协议需要建立包括一个或多个固定消息交换的预定的主机-交换器呼叫控制处理协议。因此,要控制可编程交换器执行维持通信所必要的交换事件,各通信交换器必须能够支持极大数目的这些特定主机-交换器的命令消息及相关协议。有鉴于此,每个信令协议应与在主机及交换器中存储和索引的一个或多个不同的消息集相关联。该消息集和最终的主机-交换器协议还依赖于具体的电信应用程序要求,诸如一个应用程序为适当控制交换器以支持一个特定的信令协议所要求的信息数量和类型。
此外,传统的可编程交换器也可以被连接在公共电话网和诸如话音通知系统一类的其他设备之间。因为这种设备可以执行专用的功能并且无意直接与公共电话网连接,所以它们一般不遵守各种标准信令协议。因此,为使用户能够按以下的方式控制可编程交换器,即使之维持与公共电话网和连接于该交换器的其他设备的适当通信,就必须满足多种复杂的API信令协议要求。传统的通信交换器实现许多特定的API消息集,以支持这些多种多样的要求。
由于固定消息的执行及各种电信应用和信令协议的要求,主机应用程序与电信交换器之间没有标准接口。这使得在为每条中继线、跨线及用户线开发支持特定API协议以满足主机应用程序要求和信令协议要求所必要的硬件及软件时费用增加。
另外,由于具有各自专用于特定命令或数据传送的、分离和不同的API消息,对电信交换器增加特性需要创建和实现一个或多个附加的API消息,以支持主机与交换器之间的相关API协议。为实现每个新的独特消息,必须对交换器和主机进行耗资而且费时的软件修改。
因而,所需要的是一个与主机应用程序或信令协议要求无关的支持主机-交换器呼叫控制处理的标准化API消息协议。进一步地,这样的通用API协议必须是定义成足够灵活和适应多用途的,以支持现在或今后所开发的电信应用和信令协议的当前和未来的要求。
发明概述本发明是用于执行呼叫控制处理的,能够被设置为满足电信应用和网络信令协议要求的一个标准化的主机-交换器应用程序接口(API)。该通用API包括一个或多个具有用于在主机应用程序与交换器之间发送命令、状态和数据的可编程域的一般消息。本发明进一步包括一个可编程电信交换器,该交换器给用户提供定义所需API协议的能力,这些协议就性质而言是“标准的”或自定义的,用于执行任何所需要交换功能。
本发明包括一个使用户能够为交换器所提供的每个端口定义分离有限状态机的协议开发环境。通过将被称为原子函数的一系列基本处理步骤与原语(Primitives)结合,后者又依次与状态和事件结合以定义所需要的状态机,使每个有限状态机可以被独立地定义。这样的状态机可以包括配置为在预定条件下产生预定消息并包含预定信息的原子函数。上述状态机可以进一步包括应答状态事件的能力,状态事件包括配置为给状态机提供来自主机应用程序的信息的一般API消息的接收。
另外,本发明可以作为一种开发工具用来创建用户定义的API协议,这些协议具有支持诸如个人通信业务(PCS),800/900号业务,话音邮件,远程销售及其它电信应用的用户定义的标准消息。本发明还可以用来通过传送一般API消息来控制或管理可编程交换器内的多种的通信业务,包括会议电话、话音录音通知、信号音产生、信号音识别、呼叫进程分析、话音识别、话音压缩和传真编码/译码。
本发明的通用API也可以用于实现交换器内部的通信。例如,通用API的标准化消息可以用来支持交换器内部任何软件层之间的通信。
本发明的一般消息结构有利之处在于能够给电信交换器加入附加的呼叫处理特性,主机能够引进这些特性而不需实现专用于该特性的附加特定内容的API消息。这使得用户自定义API消息协议的创建不受用于特定特性和特定功能的特定消息的限制。
本发明的一般消息结构的另一个优点是它为应用程序开发提供了标准化接口所必要的公共性和灵活性。这有效地减小了主机/交换器通信接口的复杂性并免除了支持一个由许多专门消息所组件的接口的费用。
本发明的另一个优点是它为用户提供了使用标准化消息向交换器所有软件层发送和接收信息的能力。这在很大程度上消除了不得不存储大量用于管理交换器的相同或不同软件层所执行的不同功能的不同消息的负担。因此,本发明避免了在传统交换器中所存储并索引的大的消息集。
本发明的另一个优点是增加了与主机交互作用的程度,这可以通过在不同的处理点引入在交换器中各处发送和接收数据的原子函数来简单地得以实现。
本发明的另一个优点是它使用户能够通过创建寻址每种信令协议的分离的状态机来创建多个网络信令协议。通用API可以被编程以实现支持每个特定协议状态机所必要的通信。因此,尽管交换器支持多个信令协议,包括主机-交换器接口的消息结构可以保持不变。
参照附图,以下对本发明的更多的特性和优点以及本发明的各种实施例的结构和操作进行详细描述。图中,同样的参考数字指示相同的或功能相似的部分。另外,参考数字最左的一或二位数字标识此参考数字初次出现的图。
附图简述本发明在所附权利要求中详细指出。可以参考下列结合附图的描述更好地了解本发明的以上和更多的优点,附图中

图1是可由用户按照本发明的优选实施例编程的可编程电信交换器的方框图;图2是描述用于控制图1交换器的软件层的图;图3A和图3B描述了与图2所描述的软件层相关联的一些具体特性和功能;图4是按照本发明的优选实施例构造的有限状态机开发环境的方框图;图5是说明本发明的一般PPL事件指示和PPL事件请求消息的结构及内容的方框图;图6是本发明的PPL事件指示确认消息和PPL事件请求确认消息的方框图;图7A和图7B是使用本发明的通用API提供呼叫控制处理以支持高度交互作用的主机电信应用要求的有限状态机的状态图;图7C是支持图7A和图7B所说明的呼叫控制处理的通用API的接口图;图7D和图7E是图7A和图7B的有限状态机的框图,在此图中,原子函数的每个序列被定义为一个原语;图7F和图7G是说明图7A-7E中的原子函数、原语及状态的对应关系的表格;图8A和图8B是使用本发明的通用API提供呼叫控制处理以支持有限交互作用的主机电信应用要求的有限状态机的状态图;图8C是在图8A和图8B中说明的呼叫控制处理所产生的主机-交换器API的接口图;图8D和图8E是图8A和图8B的有限状态机的图,在此图中,原子函数的每个序列被定义为一个原语;图8F和图8G是说明图8A-8E中的原子函数、原语及状态的对应关系的表格;图9是说明创建一个PPL事件指示消息的示范进程流程的功能方框图;图10是在创建图9的PPL事件指示消息的过程中第四层PPL处理器所创建的消息缓存区的方框图;以及图11是说明创建一个PPL事件请求消息的示范进程流程的功能方框图。
发明详述图1表示一个市场上可以买到的个人计算机(PC)102,它包括通过PC输入/输出(I/O)总线108及PC电源总线109互连的一个PC中央处理单元(CPU)104和一个硬盘驱动器106。PC102优选International Business Machines(IBM)所售的PC-AT或其兼容机。也可以采用比PC-AT具有更多内存或更强CPU的其他个人计算机。PC102优选地在诸如DOS或UNIX的面向应用的操作系统下运行。
PC102包括一个机箱或箱体,内置一块母板和硬盘驱动器106以及诸如软盘驱动器、调制解调器之类的其他可选组件。PC CPU104被安置在母板上,母板包括一系列印制板插座,其他板或卡可以插入其中,从而与PC的I/O总线108及电源总线109连接。
一个可编程电信交换器110置于PC102内。一个CPU/矩阵卡112插于母板的一个槽位从而连接到总线108和109。CPU/矩阵卡112与一个数字(T1)线路卡114、一个数字(E1)线路卡115、一个数字信号处理(DSP)卡116、一个打包机卡117、一个模拟(通用的)线路卡118以及一个终端连接器卡119通过四条总线互相连接,这四条总线是高级数据链路控制(HDLC)或处理机间总线120;时分复用(TDM)总线122;线路卡(LC)状态/控制总线124;以及定时/控制总线126。电池/振铃电压总线128给模拟线路卡118提供电池电压(48VDC)和振铃电压(109VAC)。终端连接器卡119用于物理终接总线120、122、124、126和128。
线路卡114、115和118以及DSP卡116都与PC电源总线109连接并从中获取基本操作用电。尽管只描述了一个数字(T1)线路卡114、一个数字(E1)线路卡115和一个模拟线路卡118,但应该明白,可以加入任何类型的其他线路卡,所受的两个实际限制是(1)CPU/矩阵卡112的最大交换容量,以及(2)PC102机箱内的物理空间。
可以包括一个分离的个人计算机、工作站或其他计算机的一个外部主机130可任选地通过通信信道132连接到CPU/矩阵卡112。CPU/矩阵卡112优选地包括一个用于连接信道132的传统的RS-232兼容接口。外部主机130优选地在面向应用的操作系统下运行。
如果需要,交换器110可以安置在一个无源背板(没有CPU104或盘106)上,从该板获得供电并受控于外部主机130。例如,本发明可以在其他处理平台上实现,诸如在题为可扩展的电信系统(ExpandableTelecommunication System)、共同未决的专利申请、序号为08/207,931中所公开的可扩展电信交换器,该专利转让于本申请的受让人,在此整体引入作为参考。
一个外部的电池/振铃供电器131通过路径133与终端连接器卡119连接。作为一个例子,供电器131可以包括(例如)可在市场上买到的供电器。
除了数字(E1)线路卡115、DSP卡116及打包机卡117以外,有关图1所示各种卡的结构的细节在题为用于个人计算机的可编程电信交换器(Programmable Telecommunications Switch for PersonalComputer)的美国专利号5,321,744中已有陈述,该专利转让于本申请的受让人,在此整体引入作为参考。数字(E1)线路卡115优选地采用与公开的数字(T1)线路卡114相似的硬件来构造,常规电路中的不同在于允许线路卡115终接E1跨线,而不是T1跨线。
有关DSP卡116和打包机卡117结构的细节,在题为具有可编程通信业务的电信交换器(Telecommunications Switch withProgrammable Communications Services)的美国专利号5,349,579中已有陈述,该专利转让于本申请的受让人,在此整体引入作为参考。
图2是用于控制图1所示可编程交换器110的软件分层模型。图2左侧栏表示开放系统互连(OSI)参考模型所定义的七层模型。图2右侧栏表示用于控制交换器2的五层模型以及其与OSI模型的一般对应关系。
现在参照图1和图2,应用层5(一般与OSI模型的应用层对应)表示典型地运行于PC CPU104或外部主机130的应用软件。应用层5的软件可以用于实现任何需要的电信业务,如免费(800)业务、话音邮件、自动呼叫分配(ACD)等,在此不一一列举。应用层5可以通过本发明的应用程序接口与可编程交换器的任何其他层进行通信。当应用层5存在于外部主机130时,API管理通信信道132上的通信。当应用层5存在于PC CPU104时,API管理PC I/O总线108上的呼叫控制处理通信。
一般地,呼叫管理层104与OSI模型中的表示层、会话层及运输层对应,表示运行于CPU/矩阵卡12的软件。呼叫管理层4负责执行集中呼叫处理功能并向应用层5提供一个与交换器102内部使用的网络信令协议的类型无关的公共接口。一般地,呼叫管理层4执行随后的呼叫建立所需要的功能。
一般地,网络信令协议层3与OSI模型中的网络层对应。网络信令协议层3所表示的软件运行于CPU/矩阵卡112,或者运行于包括各自的微处理器的各线路卡,诸如线路卡114或115或打包机卡117,并负责带内及带外网络信令监控以及来话和去话的网络协议级控制。
一般地,链路层2与OSI模型中的数据链路层对应。链路层2的软件运行于CPU/矩阵卡112、包括各自的微处理器的线路卡、DSP卡116或打包机卡117(每个卡包含自己的微处理器),并且负责检测及物理传输通过网络或线路接口的网络信令信息。
最后,物理层1对应于OSI模型中的物理层。线路卡114、115及118分别给交换器110提供物理的T1、E1以及模拟的电气接口。
图3A和图3B是图2的软件层2-5的每层所提供的代表性的特性和功能的列表。本发明可作为一种开发工具用于开发适当的软件,以实现图3A和图3B所示的任何特性及功能。在美国专利号5,426,694中陈述了在2-5层使用本发明的说明性例子,该专利转让于本发明的受让人,在此整体引入作为参考。
图4是根据本发明的优选实施例所构建的有限状态机开发环境的总体方框图,使用户或使用者能够创建和定义用于实现所需要的电信功能并通过本发明的通用API受控于一个或多个应用程序的有限状态机。在详细考虑此图之前,应先给出一些术语的定义。
如在此所用的那样,术语状态涉及一个数字,该数字代表某一特定信道或端口的当前的“前后关系”(context)。在本发明的优选实施例中定义了三类状态正常的、内部的和阻塞的。正常状态可以是等待状态(即SEIZE ACK状态,在此状态下,中止进一步行动,直到某一特定事件发生)或稳定状态(即通话正在进行之中)。内部状态用于条件检测以及有效地起判决分支的作用。根据本发明,可由用户或使用者规定正常和内部状态,定义实现所需功能的有限状态机。阻塞状态由本发明自动产生并用于逐信道与板外资源的管理相连接。
一个事件是一个数字,该数字标识了被某一特定状态接受的一个条件。数据可以与一个事件关联。
一个原子函数是执行诸如设置定时器那样的基本任务的一个函数。用户规定的数据可以与一个原子函数关联。原语是在某一特定事件发生时所调用的原子函数的一个预定序列。用户可以从一个可用的原子函数库创建或定义原语。在优选实施例中,每个原语可以包括多达20个原子函数。
状态/事件表定义某一特定状态的有效事件以及在每一个这样的事件的发生时所调用的原语。在优选实施例中,一个状态/事件表可以包括多达100个状态,并且每个状态包括多达20个事件。
原语表定义状态/事件表所用的原语。在优选实施例中,一个原语表可以包括多达200个原语。
协议定义为各种表的关联,它至少包括一个状态/事件表和一个原语表并由一个协议ID(一个数字)所标识。
API协议定义为主机应用程序与交换器软件层之间的主机-交换器控制协议。
程序协议语言(PPL)是用于管理网络信令协议和通信业务的可编程环境。
诸如参考数字40a、40n所表示的数据块被分配给交换器的每个信道(端口)0……n。40a到40n的每个数据块包括以下与其各自信道有关的信息信道的当前状态;一个指向活动状态/事件表的指针;一个指向活动原语表的指针;一个指向所分配的状态/事件表的指针;以及一个指向所分配的原语表的指针。
就信道0而言,如虚线所指示的那样,活动状态/事件表和活动原语表的指针指向由参考数字442a表示的表,这些表与常驻协议0关联。信道0的所分配的活动状态/事件表和活动原语表的指针指向与被动态装载、用户定义的协议1关联的、由参考数字444a表示的表。
存在并可用的其他协议是常驻协议1……n(442b,442c)及下载的用户定义的协议n+1…m(444b,444c)。常驻协议442b-442c表示预编程的或“标准的”协议,一般由生产厂家随交换器一起提供。相反,用户定义的协议n+1…m是由用户或使用者创建的,并且就性质来说,可以是完全“自定义的”或“专有的”。
一个层依赖原子函数库446与状态机引擎(engine)448连接并为其提供信息。状态机引擎448也与活动状态/事件表指针和活动原语表指针相连接,以从440a-440n的每个数据块接收活动状态/事件表指针和活动原语表指针。而且,如参考数字450所示,为层依赖支撑环境提供实用程序。
状态机引擎448的作用是按照所分配的协议驱动每个信道,所分配的协议由所分配的状态/事件表和所分配的原语表予以定义。正常状态的一个有效事件一旦发生,就根据所分配的状态/事件表的各表目调用一个原语。状态机引擎448利用原子函数库446执行所调用的原语表示的原子函数。
状态机引擎448在任何必要的内部状态将始终驱动并自动地产生适当的阻塞状态,直到信道再次达到正常状态。这时,由状态机引擎448所进行的处理完成,直到另一个有效事件发生。
每个信道起初被分配一个用户定义的协议或一个可编程协议。这通过从应用层5向呼叫管理层4传送API消息,而呼叫管理层4又依次向也可以按照本发明的API设置的第3层发送适当的消息来完成。所分配的状态/事件表指针和所分配的原语表指针指向新近分配的协议。因而,用户可以通过简单地指明数据块中合适的指针来分配一个想要的可用协议。采用这种方式,本发明有利于允许用户逐信道地从常驻在单个交换器中的多个协议中分配一个想要的协议。
替换地,如果用户选定不给一些或全部信道分配协议,则默认值会被优选地提供,从而使每个信道总是有一个被分配的有效协议(例如,常驻协议442a-442c之一)。
为状态机引擎448提供的活动状态/事件表和活动原语表的指针指向当前控制信道的协议。
分配给某一特定信道的协议没有必要是永久的,正如结合图7所详细描述的那样,可以响应于具体事件的发生实时、动态地加以改变。进一步讲,因为库446提供的原子函数表示基本功能,有利于用户或使用者能够对协议实现所需要的改变而不对基础代码进行本质的改变,或者可能的话,不进行任何改变。另外,为用户或使用者提供了支撑环境实用程序,以简化协议的开发。这些实用程序提供了现成的资源管理功能(如定时器),大大简化了实现想要协议所需要的状态机逻辑。由于每层所需要的资源可以不同,所以为每个软件层最好提供不同的实用程序。
按照本发明,一般常驻于外部主机130的应用层5与图2所说明的交换器102的其他层之间的呼叫处理控制通信,通过传输本发明通用API的一般消息来进行管理。具体地讲,在本发明通用API的优选实施例中,用一种称为PPL事件请求消息的单个消息类型,从主机应用层(第5层)向电信交换器(所有其他软件层)传送所有的呼叫控制处理命令和数据。同样地,用一种称为PPL事件指示消息的单个消息,从电信交换器向主机应用层传送所有的呼叫控制处理状态和数据。这些一般API消息具有任选的域,对保持呼叫处理是唯一必要的消息,与应用要求、网络信令协议要求、或电信交换器当前存在或要增加的特性无关。本发明的可编程交换器使用户能够定义和分配所需要的应用程序接口协议,就性质而言,这些协议是“标准的”或自定义的,用于实现适应以上任何要求的各种交换功能。
参考图5,一个PPL事件请求消息从主机发送到交换器以启动带有可选ICB数据的、关于某一PPL组件的主机事件。PPL事件请求消息是从主机向交换器传递的唯一呼叫控制处理消息,并且,在优选实施例中,具有图5所说明的消息500的格式。PPL事件请求消息包括若干域和子域,描述如下。
PPL事件请求消息包括一个帧字节502,它是一个不变的值,标识它为一帧的第一个字节。
消息长度域504包括特定PPL事件请求消息的长度。由于本发明的一般API消息有包括可选域的能力,消息的长度是改变的,所以消息长度域是必要的。一般地,长度域的值不包括帧字节502。
消息类型域506包括一个不变的值,标识此特定消息为PPL事件请求消息。所有PPL事件请求消息的消息类型域是固定的。
序列号域508是由主机应用程序产生的、分配给每个PPL事件请求消息的一个特定的数字标识符。该值用于区分从主机向交换器传送的不同的PPL事件请求消息。例如,当主机确认一个PPL事件请求消息的接收时,在其确认消息中包括一个序列号,以标识哪个PPL事件请求消息与确认消息内所包含的状态信息相关联。
如上所述,交换器中每个PPL组件状态机被分配了一个唯一的参考数字。PPL组件ID域510是一个字域,该域标识了特定的PPL事件请求消息500参考(reference)在交换器中实现的哪个PPL组件。
在任意给定时刻,交换器中可以有多个PPL组件状态机的实例。例如,在优选实施例中,有分配给每个信道的一个E1 PPL组件状态机。因此,其中单个E1卡支持256个信道的说明实施例中,可以有多达256个E1 PPL组件状态机的实例,每个实例与一个不同的信道关联。为了有选择地访问PPL组件的每个实例,本发明的通用API提供了进行多级寻址的能力。因此,一旦PPL组件在PPL组件ID域510中被标识,就有一个地址单元域514被提供,以标识所参考的是PPL组件状态机的哪个实例。如图5所示,PPL事件请求消息提供了包括任意多个地址单元域514的能力,因此,可以同时与一个PPL组件状态机的多个实例通信。一个PPL事件请求消息中包括的地址单元域514的总数在地址单元数目域512中给出。
为适应上面提及的其他级别寻址,地址单元域514包括许多个子域,用于进一步标识哪个状态机实例要接收PPL事件请求消息。具体地讲,提供了一个地址单元类型域516,以参考可能包含所需要的状态机实例或与其关联的交换器分级组件。在上面有一个E1 PPL状态机实例的例子中,地址单元类型域516指示状态机实例与哪种跨线和信道有关联。地址信息子域520给出在地址单元类型域516中所指示的每个分级组件的具体地址。
由于域520中所包含的寻址信息根据所寻址的设备类型改变,AE域514的长度也可以变化,因而在长度子域518中给出AE域514的长度。可以采用适合特殊PPL组件状态机和交换器结构的其他寻址方案,这对相关领域的技术人员来说是显而易见的。还应该指出,在上面的实例中,由于给每个信道单独分配了PPL组件状态机,所以对于每个信道存在一个单个的状态机实例。然而,一个特定的状态机可以被设置为管理任意多个信道,这对相关领域的技术人员来说也是显而易见的。
多级寻址为通用API PPL事件请求消息提供了一个灵活的寻址方案。这使采用单个PPL事件请求消息的主机应用程序能够寻址具有共同的PPL组件ID的一系列状态机实例以在所有所寻址的状态机中产生一个特定事件。
每个PPL事件具有一个相对每个PPL组件的唯一ID。PPL事件ID域522为交换器提供了一个交换器认为正与特定请求关联的用户定义的PPL事件ID。接收者的PPL组件将唯一PPL事件ID映射成一个PPL事件,该事件对该PPL组件是唯一的。
每个PPL事件请求消息还可以以信息控制块(ICB)的形式包括一个或多个数据域。每个PPL组件的ICB是根据软件层和PPL组件所支持的通信协议而定义的。因而,采用本发明的一般可编程消息可以在主机和交换器之间传递任何信令信息。
仍然参照图5,一个PPL组件将具有任选ICB数据的一个PPL事件指示消息从交换器发送到主机,以向主机报告各端口上的一个事件。PPL事件指示消息是从交换器向主机传递的唯一呼叫控制处理消息,并且,在优选实施例中,与图5所说明的PPL事件请求消息具有相同的格式。除了下面提到的以外,PPL事件指示消息的域与上面讨论的PPL事件请求消息的类似域是一致的,并具有相同的功能。
如上所述,可以有一个PPL组件状态机的多个实例。对PPL事件指示消息而言,地址单元域指示特定状态机的哪个实例正在实际调用产生PPL事件指示消息的原子函数。
在PPL事件指示消息中,PPL事件ID域522是一个特定数值,它表示交换器中导致PPL组件状态机发送PPL事件指示消息的特定事件的发生。如上所述,这是用原子函数来管理的,原子函数被编程,以响应于一个特定事件的发生,发送特定的PPL事件指示消息,消息中所包含的PPL事件ID由用户编程。
对相关领域的技术人员来说,显然可以采用本发明的通用程序API设置包括层与层间通信的所有信息传送。例如,在上面引入的美国专利号5,426,694中所描述的示范性通信可以由本发明的通用API消息所替代。
PPL组件可以是特定层的、特定功能的、特定接口的、特定协议的、或特定信道的。这使得主机第5层的电信应用程序能够如所需要或必要的那样交互访问交换器的每层,并且管理每个PPL组件而不管组件位于何处。因而,一个应用程序可以用通用API接口管理任何PPL组件。这提供了一个始终如一的、可预测的管理交换器中每个PPL组件的方法,该方法与正执行处理的级别无关,范围包括例如,从一个非常详细的信令分析到网络信令、到高级呼叫路由选择、直到呼叫管理连接功能。
在本发明的优选实施例中,数据被标识并传递到主机的方式包括实现用于在特定存储位置存取确定类型数据的一个或多个原子函数,以及实现用于产生将所有以前所存储的数据提供给主机的一般PPL事件指示的一个或多个原子函数。然而,本领域的技术人员显然会发现,设置原子函数在PPL事件指示消息中传递数据的方法是很多的。例如,可以用一个分离的原子函数在一个PPL事件指示消息中传送特定类型的数据。
图5底部表示描述PPL事件请求和PPL事件指示消息的简化表示法。
参照图6,电信交换器用具有消息600的格式的PPL事件请求响应消息来响应PPL事件请求。类似地,主机应用程序用PPL事件指示确认消息来响应PPL事件指示消息,也具有在图6中所说明的格式。一般确认消息600包括一个帧字节602,长度字节604,消息类型606,以及序列号608,它们都执行与PPL事件请求消息500中的对应域相同的功能。另外,状态域610为接收者提供特定消息的状态信息。描述PPL事件请求确认和PPL事件指示确认的消息的简化表示法示于图6中。
下面参照图7A-8G给出利用本发明通用API实现交互话音处理功能的两个例子。第一个例子说明当电信交换器在高度交互作用的主机应用层5的控制下执行交互话音通知时,用于管理主机-交换器通信的通用API。第二个例子说明当主机应用层5与电信交换器的交互作用是有限的而执行的功能相同时,用于管理主机-交换器通信的通用API。这些例子说明了通用API适应各种应用要求的能力。
在以下图中,状态表示为圆圈,原子函数表示为矩形框,事件用沿着通向状态外路径的缩写字表示。原子函数中括号内所示信息表示与该函数关联的变元或数据。当有必要避免与其他数字表示符混淆时,就在括号底部给出参考数字。
图7A-7B说明本发明应用于具有主机应用层5所要求的高级交互作用的呼叫管理层4的一个例子,在该例子中,本发明用于实现一个协议,该协议用于在对来话进行交互话音应答的整个过程中提供主机应用判决。
协议从关联信道(信道1)在正常状态NS0,即空闲状态702开始。一旦第3层事件发生,即向第4层发送一个建立消息((50)L4PPLevL3_SETUP_INDICATION)),则执行原子函数af35。如它的描述符所表示的那样,第4层PPL事件(L4PPLev)是从网络信令协议层3(L3)接收的,它报告已检测到一个来话(SETUP_INDICATION)。在消息描述符前面的括号中的数字50是第4层PPL分配给该事件的PPL事件ID。因而,当第4层被通知有PPL事件ID 50所表示的来话时,图7A的PPL组件状态机离开空闲状态702并执行原子函数af35(704)。
原子函数af35(704)运行,以通知该事件给主机应用层(第5层)并为事件分配一个PPL事件ID 1。主机应用程序将此PPL事件ID(数字1)解释为一个来话通知。参照图7C,原子函数35(704)产生一个PPL事件指示消息701,从而通知来话给主机。这个PPL事件指示消息具有以下格式PPL Event Ind(L4PPL,ch1,1)其中,PPL组件ID指示第4层PPL组件(L4PPL),该消息所访问的第4层PPL组件状态机的实例是与信道1(ch1)关联的实例,并且,PPL事件ID(1)表明当PPL组件状态机已处于空闲状态NS0时,业已接收到来话消息。
如图所示,与原子函数af35(704)关联的变元指定了第4层PPL事件ID。应注意到,更一般地讲,原子函数af35是一个PPL发送事件指示消息原子函数,每当要把一个PPL事件指示消息发送到主机第5层时,就使用该原子函数,每个消息具有指示唯一PPL事件ID的变元,该PPL事件ID与不同事件的发生相关联。主机用PPL事件指示确认消息703来响应,该消息具有一般格式PPL Event Ind Ack(sequence#,status)其中序列号(sequence#)是PPL事件指示消息701中给出的序列号,而status指示了所关联的PPL事件指示消息的状态。就本例子及以下例子而言,PPL事件指示确认消息都指示前一个PPL事件指示消息被成功地接收。
在电信交换器采用本发明的PPL事件指示消息向主机给出来话通知之后,第4层PPL组件状态机进入正常状态NS1,它是一个等待状态706,在此状态下,第4层PPL组件等待主机应用程序对通知的响应。主机发送一个第5层的事件ID为1的PPL事件请求消息705(看图7C),表明它正请求交换器继续处理信道1上收到的呼叫。消息705具有以下格式PPL Event Req(L4PPL,ch1,1)该消息表明交换器必须响应信道1收到的来话。第4层PPL组件状态机将PPL事件ID为1的PPL事件请求消息解释为一个事件。如图7A所说明的那样,第4层PPL组件状态机为收到的PPL事件请求消息分配一个第4层的唯一PPL事件ID 501,表明一个第5层的PPL事件请求(具有PPL事件ID 1)已发生。
作为PPL事件501的响应,第4层的PPL组件状态机执行5个原子函数原子函数af60(708)、原子函数af62(710)、原子函数af140(712)、原子函数af212(714)和原子函数af50(716)。原子函数af60是根据本发明产生一般PPL事件请求确认消息的原子函数。每当交换器的一个PPL组件将要确认收到一个PPL事件请求消息时,便可以使用此原子函数af60。变元值16表示PPL事件请求消息被成功接收的一种确认状态。原子函数af60(708)产生PPL事件请求确认消息707,该消息与上面描述的PPL事件指示确认消息具有相同的一般格式。PPL事件请求确认消息707表明上面的来话消息已被成功接收。
原子函数af62(710)和原子函数af140(712)分别用于向第3层发送连接消息(应答呼叫)和发送消息从而为交互数字串集(collection)分配DSP资源。原子函数af212(714)向主叫发一个开放通知(Opening announcement)。如图所示,有两个变元(argument)给af212通知ID和通知控制选项。af212(714)被选择以发开放通知。根据原子函数af212(714)所发通知而进入的原子函数af50(716)被执行以设置定时器,使其等待一段选定时间以接收来话数字。如图所示,第一个变元表明用于执行该函数的多用途定时器是定时器1。第二个变元表明定时器将要计数的1000ms单位的数目。这里,第二个变元是10,表明定时器1将计时10秒。因此,原子函数af50(716)使定时器1在10秒时计满,在此期间,第4层PPL组件进入正常状态S2,它是等待状态718,在此状态下,PPL状态机在信道1等待要检测的数字。
如果下一个PPL事件是定时器1((191)PPLev TIMER1)计时满,表明10秒内未收到数字(digit),则原子函数af35(720)被执行以通知主机未收到数字。第4层PPL组件为收到的PPLevTIMER1消息分配一个PPL事件ID191。如上所述,原子函数35产生本发明的PPL事件指示消息。但是,这里,PPL事件指示消息中包含PPL事件ID 4,表明在所选择的信道上检测数字失败。因此,该PPL事件指示消息的格式是PPL Event Ind(L4PPL,ch1,4)该消息表示当第4层PPL组件处于等待状态718时,在与第4层PPL组件的信道1实例相关联的信道上未检测到数字。
由于图7C的接口示意图说明了与成功的数字接收及后续的呼叫通知处理相关联的通用API协议,所以这一消息在图7C中没有说明。然后,在主机应用程序的控制下通过执行本发明的通用API,处理以一系列未示出的原子函数继续进行,其中,响应于信道1上检测数字的失败,电信交换器执行各种功能。
如果当第4层PPL组件状态机处于等待状态718时下一个要发生的事件是接收到表明在信道1检测到数字的消息,((66)L4PPLevDSP_RESULT_DIGITS),则执行原子函数af47(722)。给这一消息的接收分配一个唯一PPL事件ID 66。因此,当第4层被通知已经接收到数字时,第4层PPL组件状态机离开等待状态S2(718)并执行原子函数af47(722)。如原子函数的变元所指示的那样,原子函数af47使原子函数af50(716)所选择的PPL多用途定时器(定时器1)停止工作。原子函数af53(724)将接收到的数字存储在选定的通用寄存器中。这里,af53(724)将接收到的数字存储在通用寄存器1中。
根据本发明,原子函数af36(726)是一个被配置为发送具有所选择的通用寄存器的内容(变元2)和一个PPL事件ID(变元1)的PPL事件指示消息的原子函数。这里,原子函数af36(726)将通用寄存器1的内容以事件ID为2的PPL事件指示消息709的形式发送到第5层主机应用层。PPL事件指示消息709的格式是PPL Event Ind(L4PPL,ch1,2,digit)其中,L4PPL是PPL组件ID,ch1是地址单元,2是PPL事件ID,而“digit”是所收到的数字。该PPL事件指示消息作为一个例子说明了本发明的通用API采用单个一般PPL事件指示消息格式传输数据及命令的能力。主机用PPL事件指示确认消息711应答,表示PPL事件指示消息709被成功接收。然后,执行原子函数af147(728),从而断开DTMP接收器与信道1的连接以取消数字接收。
第4层PPL组件状态机然后进入状态S4,即等待状态730,其中,第4层PPL组件状态机无定期地等待主机应用层5指示第4层PPL组件状态机如何应答所接收的数字。如图7B所示,在示范的实施例中,主机应用程序可以向第4层PPL组件发送具有PPL事件ID504、505和506的三种不同的应答之一。
如果第4层PPL组件状态机接收到PPL事件ID为4的PPL事件请求消息713,((504)PPLevL5_EVENT_REQ_4),则为其分配一个第4层的唯一PPL事件ID 504,表明第5层给出了一个PPL事件ID为4的PPL事件请求消息。PPL事件请求消息711命令第4层PPL组件状态机发出一个特定的呼出通知。PPL事件请求消息713的格式是PPL Event Req(L4PPL,ch1,4)其中的PPL组件ID表明此消息是以第4层的PPL组件(L4PPL)为目标的,地址单元表明正在通信的信道是信道1(ch1),而PPL事件ID(4)表明一个特定的附加的呼出通知将在所标识的信道上发出。
作为PPL事件504的响应,第4层执行4个原子函数原子函数af60(732),原子函数af140(734),原子函数af212(736)和原子函数af50(738)。原子函数af60(732)是按照本发明产生一般PPL事件请求确认消息的原子函数。如上所述,每当一个PPL组件要对一个PPL事件请求消息的接收进行确认时,就使用原子函数af60。变元值16表示PPL事件请求消息被成功接收的确认状态。此原子函数产生上述一般格式的PPL事件请求确认消息。
原子函数af140(734)用来给信道1分配用于交互数字串集的DSP资源。原子函数af212(736)在信道1上发附加的呼出通知。第一个变元指明通知ID为3;根据第二个变元没有选项被选择。原子函数af50(738)用于设置定时器1,等待10秒的时间以接收呼入数字。PPL组件进入状态S5(740)以在选定时间周期内等待呼入数字。
原子函数af212(736)的执行导致向主叫发一个通知。如图所示,af212有两个变元通知ID和通知控制选项。原子函数af212(736)被选择以用来发呼出通知。
作为对原子函数af212(736)所发通知的响应而进入的原子函数af50(738)用于设置定时器,以在选定的时间内等待接收呼入数字。根据变元,原子函数af212(736)将定时器1设置为10秒计时满。在此时间周期内,第4层PPL组件状态机进入状态S5,即一个等待状态740,状态机在此状态下等待接收数字。
在此示范的实施例中,主机可以用PPL事件ID为5或6的PPL事件请求交替地应答,以向第4层的PPL组件表明要执行没有表示出的其他功能。在两种情况下,PPL组件状态机执行原子函数af60(分别为731,733),表明各自的PPL事件请求消息被成功接收。
如果下一个事件是定时器1计时满((191)PPLevTIMER1),则协议再次执行原子函数af35。执行原子函数af35(742)以通知主机在给定时间内未收到数字。如上所述,原子函数af35配置为按照本发明产生PPL事件指示消息。这里,原子函数af35(742)产生的PPL事件指示消息中包含PPL事件ID 4,表明在选定信道上接收数字失败。该PPL事件指示消息的格式是PPL Event Ind(L4PPL,ch1,4)
它表明信道1的第4层PPL组件实例在指定时间内没有检测到数字。由于图7C的接口示意图说明的是与呼叫通知序列的成功处理相关联的API协议,所以该消息没有在图7C中说明。
如果下一个PPL事件是表明10秒周期内没有接收到数字的定时器1计时满((191)PPLevTIMER1),则原子函数af35(742)被执行,以便通过产生具有PPL事件ID为4的本发明的PPL事件指示消息,通知主机没有接收到数字,其格式为PPL Event Ind(L4PPL,ch1,4)出于以上给出的原因,该消息没有表示在图7C中。然后,在主机应用程序控制下通过执行本发明的通用API,以一系列没有表示出的原子函数使处理继续进行,其中,响应于信道1上检测数字失败,电信交换器执行各种功能。
如果当第4层的PPL组件状态机处于等待数字状态740时发生的下一个事件是接收到表明在信道1上接收到数字的消息,((66)L4PPLevDSP_RESULT_DIGITS),则原子函数af47(744)、af53(746)和af36(748)被分别执行,以使前面所选的PPL多用途定时器(定时器1)停止工作,将接收到的数字存储在选定的通用寄存器中,并发送一个PPL事件指示消息717。
根据本发明,原子函数af36(748)是配置为发送具有通用寄存器1内容、PPL事件ID为3的PPL事件指示消息的原子函数。这里,原子函数af36(748)以事件ID为3的PPL事件指示消息717的形式将通用寄存器1的内容发送到第5层的主机应用程序。PPL事件指示消息717的格式为PPL Event Ind(L4PPL,ch1,3,digit)其中,I4PPL是PPL组件ID,ch1是地址单元,3是PPL事件ID,而“digit”是所收到的数字。这一事件ID表明,返回的数字是对发出通知ID为3的呼出通知的原子函数af212的响应。主机以一个表明PPL事件指示消息711被成功接收的PPL事件指示确认消息719进行应答。
现在参照图7D,可以看到,图7A-7B中所示的每个原子函数序列已被定义为一个原语。实际上,每个原语提供了一个标识要调用的想要的原子函数序列的简化方法。图7D的表格以列表方式为每个原语列出了原子函数序列。
图7E是一个定义图7D中的状态、事件和原语之间关系的状态/事件表。根据本发明的优选实施例,一个希望创建图7A-7B所描述协议的用户只需要定义图76D和7E所示的表格。然后,通过一系列消息从主机设备把那些表格下载到交换器102(图1)。
参照图8A-8G,说明了被配置为管理主机-交换器通信的本发明通用API的第二个例子。在此例子中,主机应用层5在执行这些功能时与电信交换器的交互作用是有限的。具体地讲,电信交换器被配置为自动应答进入的数字。与前一个例子相反,第4层的PPL状态机包括应答数字成组期间所产生的内部提示的内部状态。交换器的这些方面替代了为提供所接收数字的主机产生PPL事件指示消息的原子函数,以及后续的等待状态,其中交换器等待主机给它提供PL事件请求消息。
图8A-8B说明了本发明应用于具有主机应用层5所要求的有限交互作用的呼叫管理层4的一个例子,该例子实现一个协议,用于在对来话进行交互话音应答过程中提供有限主机应用判决。
协议从关联信道(信道1)在正常状态S0,即空闲状态702开始。一旦第3层事件发生,即向第4层发送一个建立消息((50)L4PPLevL3_SETUP_INDICATION)),则图8A中的PPL组件状态机离开空闲状态802并执行原子函数af35(804)。
原子函数af35(804)运行以通知事件给主机应用层(第5层),并给该事件分配一个PPL事件ID 1。主机应用程序将此PPL事件ID值1解释为一个来话通知。参照图8C,原子函数35(804)产生一个PPL事件指示消息801,从而通知主机有来话。该PPL事件指示消息与PPL事件指示消息701具有相同的格式,它表明在第4层PPL组件状态机处于空闲状态时,这一消息所寻址的第4层PPL组件状态机的信道1实例接收到一个呼入消息。
主机以一个具有上述一般格式的PPL事件指示确认消息702应答,表明前一个PL事件指示消息被成功接收。
在电信交换器采用本发明的PPL事件指示消息向主机给出来话通知之后,第4层PPL组件状态机进入正常状态S1,即等待状态706,在此状态下,第4层PPL组件等待主机应用程序对该通知的响应。主机发送一个事件ID为1的第5层PPL事件请求消息705,表明它正请求交换器继续处理信道1上收到的呼叫。该消息具有上面描述的格式,它表明在信道1已经收到第4层PPL组件实例的呼入消息而第4层的PPL组件状态机已处于空闲状态。
该PPL事件请求消息的接收被第4层的PPL组件状态机识别为一个PPL事件并被分配一个表明第5层PPL事件请求(1)已发生的第4层唯一PPL事件ID 501。
作为PPL事件501的响应,第4层的PPL组件状态机执行5个原子函数原子函数af60(808)、原子函数af62(810)、原子函数af140(812)、原子函数af212(814)和原子函数af50(816)。如上所述,每当PPL组件要确认收到一个PPL事件请求消息时,原子函数af60被使用。变元值16表示PPL事件请求消息被成功接收的一种确认状态。该原子函数af60(808)产生PPL事件请求确认消息807,该消息与上面描述的PPL事件指示确认消息具有相同的一般格式。PPL事件请求确认消息807表明上面的呼入消息已被成功接收。
原子函数af62(810)、af140(812)、af212(814)和af50(816)与上面参照图7A所描述的类似原子函数具有相同的功能。原子函数af50(816)使定时器1计时满,在此期间,第4层PPL组件进入正常状态S2,即等待状态818,在此状态下,PPL状态机等待要在信道1检测的数字。
正如上面的例子,如果下一个事件是定时器1计时满((191)PPLevTIMER1),表明在所选等待周期内未收到数字,则执行原子函数af35(820)。
如果当第4层PPL组件状态机处于等待状态818时发生的下一个事件是接收到表明在信道1检测到数字的消息,((66)L4PPLevDSP_RESULT_DIGITS),则执行原子函数af47(822)、af53(824)及af47(828)。这些原子函数执行与上面参照图7A-7B所描述的类似原子函数相似的功能。应注意到,与af36(726)类似的原子函数没有被调用。因此,所接收的数字没有被提供给主机应用层。
原子函数af28(829)被执行,以测试在用于原子函数af63(824)存储所收到数字的通用寄存器中所存储的数字的值。第4层PPL组件状态机进入内部状态IS3,即测试状态830,在此状态下,第4层PPL组件状态机测试接收到的并存储在通用寄存器1中的数字值。如图7B所示,在示范的实施例中,被测试的数字可能有三种不同的值的任一种值,每种产生具有PPL事件ID 200、201及202的一个内部事件。
如果一个PPL事件ID为0的PPL内部事件消息((200)PPLevINT_EVENT_0)被提供给第4层的PPL组件状态机,则第4层的PPL组件状态机为其分配一个第4层的唯一PPL事件ID 200以表明接收到一个PPL事件ID为0的内部事件。
作为PPL事件200的应答,第4层的PPL组件状态机执行3个原子函数af140(834)、af212(836)和原子函数af50(838),每个原子函数执行与上面参照图7A和7B所描述的类似原子函数相似的功能。应注意到,由于交换器自己测试呼入数字,而不是等待主机所产生的PPL事件请求消息,所以与af60(732)类似的原子函数没有被执行。因而,也不需要产生确认。
然后,第4层PPL组件状态机进入正常状态NS4,即等待状态840,在此状态下状态机再次等待要接收的数字。
如果没有接收到数字,下一个事件是定时器1计时满((191)PPLevTIMER1),则协议执行原子函数af35(842),以通知主机在指定时间内没有收到数字。然后,在主机应用程序控制下通过执行本发明的通用API,以一系列没有表示出的原子函数使处理继续进行,其中,作为在信道1检测数字失败的响应,电信交换器执行各种功能。
如果当第4层PPL组件状态机处于等待数字状态840时,发生的下一个事件是接收到表明在信道1检测到数字的消息,((66)L4PPLevDSP_RESULT_DIGITS),则执行原子函数af147(844)、af53(846)。这些原子函数执行与上面参照图7A和7B所描述的类似原子函数的相似的功能。进一步地,原子函数af28(847)被执行,以测试存储在通用寄存器1中的第二个接收到数字的值。与原子函数af36(748)类似的函数没有被执行,因而,没有给主机提供PPL事件指示消息。
现在参照图8D-8E,可以看到,图8A-8B中所示的每个原子函数序列已被定义为一个原语。事实上,每个原语提供了一个标识调用想要的原子函数序列的简化方法。图8F的表格以列表方式为每个原语列出了原子函数序列。
图8F是一个定义图8D中状态、事件和原语之间关系的状态/事件表。根据本发明的优选实施例,一个希望创建图8A-8B所描述协议的用户只需要定义图8D和8E所示的表格。然后,通过一系列原语从主机设备把那些表格下载到交换器102(图1)。
参照图9-11,第4层PPL组件901作为第4层PPL处理器902的一部分被执行。如上所述,一个PPL组件的多个实例可以同时运行,每个实例有一个相关联的状态机和表格。第4层PPL组件901的所有实例在PPL状态机引擎1104上加以执行。第4层PPL处理器902还包括一个用于接收和处理内部PPL事件请求消息1106的第4层PPL消息处理器1102。诸如第4层PPL处理器902的每个PPL处理器可以包括任意数目的PPL组件。在图9和图11表示的示范实施例中,第4层PPL处理器902包括单个第4层PPL组件901。
图9说明有关调用和执行原子函数以创建一个PPL事件指示消息的进程流程。为了示范,图9说明有关创建PPL事件指示消息701的1号原语(750)的原子函数af35(704)的处理所执行的功能。原子函数af35(704)是第4层PPL组件901的一部分。
在上述说明性实施例中,第4层PPL处理器902位于CPU/矩阵卡112中,并根据状态/事件表和原语表调用原子函数,以执行包括上面参考图2的呼叫管理层4所讨论的功能的各种功能。如上所述,呼叫管理层4负责执行集中呼叫处理功能以及为应用层5提供一个公共接口。
在本发明的优选实施例中,第4层PPL处理器902所完成的功能在可从Integrated Systems,Inc.,Santa Clara,California,USA公开买到的,称为PSOS的专有操作系统上实现。然而,正如相关领域的技术人员所显而易见的那样,本发明可以用任何众所周知的软件程序以及任何现在或以后所开发的软件语言实现。
通常,第4层PPL处理器902调用产生PPL事件指示消息的内部表示的原子函数。为了翻译为本发明通用API的PPL事件指示消息,将内部消息传递给也位于CPU/矩阵卡112中的通信处理器906。
如上述原语表780所示,当第4层PPL处理器902执行PPL组件状态机的一个原语时,它调用与该原语关联的每个原子函数。在上面参考图7A和图7B所讨论的例子中,原子函数af35(704)是1号原语(750)所包括的唯一原子函数。如上所述,原子函数35是一个PPL发送事件指示原子函数,每当要向主机发送一个PPL事件指示时,就使用原子函数af35,每次具有不同PPL事件ID的原子函数的发生表明不同事件的发生。
以下描述的若干功能的每一种由第4层PPL原子函数af35(704)执行,以创建传送给第5层主机应用程序的PPL事件指示消息701。参照图10,第4层PPL处理器902分配一个消息缓冲区1050以“附加(attach)”到由原子函数af35(704)产生的PPL事件指示消息904的内部表示。PSOS操作系统用消息缓冲区来存储创建PPL事件指示消息701的必要信息。当消息缓冲区被分配时,通过PSOS操作系统获得一个指向该缓冲区的指针。
一旦消息缓冲区被分配,目的和源ID域1052、1054就被装载。这两个域的内容由发送和接收单元的相对位置决定。除了使PPL组件能够与位于主机的第五层应用程序通信外,本发明的通用API可以被实现为管理位于相同或不同PPL处理器中的任何PPL组件的任何两个实例之间的通信。
当通用API用于在位于或“隶属于”相同PPL处理器的PPL组件之间实现通信时,源和目的ID域被装入PPL组件ID。否则,源和目的ID域被装入处理器虚拟ID,并且,消息类型域1058被目的PPL组件或应用程序用来将消息送向位于目的PPL处理器的所要PPL组件的合适的实例。
第4层PPL处理器902还在消息缓冲区的关联域1056中装入一个PPL事件ID,该事件ID在PPL原语表780中被标识并提供给原子函数af35(704)。在图7所说明的例子中,原子函数af35(704)表明在空闲状态S0下检测到一个来话并被分配PPL事件ID 1。
如果存在尾随的ICB数据域1064,则在ICB计数域1062中装入其个数。
第4层PPL处理器902将数据缓冲区1050传送给PPL事件指示消息904。这是通过调用一个函数来完成的,此函数向通信处理器906提供一个指向数据缓冲区1050的指针,从而将所分配的缓冲区1050附加到PPL事件指示消息904中。通信处理器906对本发明的API消息重新格式化,由PPL处理器902所使用的内部表示变成向主机应用程序发送的图5所示的格式。通信处理器906执行众所周知的消息处理通信处理器所执行的典型的翻译操作,这在本领域中被认为是众所周知的。然后,通信处理器通过API接口908将PPL事件指示消息701发送给位于主机计算机130中的应用程序。
用下列伪码表示上述与第4层PPL处理器902有关的方案。可以想象,这种伪码可以用来以诸如C,C++或PASCAL的任何合适的语言产生本发明的源代码1.allocate psos msg data buffer(ppl_data_buff);2.psos_msg.ppl_component=L4PPL;3.psos_msg.event_id=event_id;4.psos-msg.destination=HOST;5.psos_msg.source=L4PPL;6.psos_msg.timeslot_addr=CHANNEL 1;7.l4ppl_send_msg(psos_msg,comm queue);图11说明了与PPL事件请求消息的接收和处理有关的进程流程。为了示范,图11说明了与在等待状态S1(706)所接收的PPL事件请求消息705的处理有关的功能,如原语表780所示,调用原语2的原子函数。
通信处理器1006执行的操作与以上针对PPL事件指示消息所执行的操作相反。也就是说,通信处理器1006在API 1008接收API版本的PPL事件请求消息705并将其翻译为内部PSOS PPL事件请求消息1106。通信处理器1006将PPL事件请求消息1106传送给第4层PPL处理器1002。第4层PPL消息处理器1102接收和处理内部PPL事件请求消息1106,并产生一个用于第4层PPL状态机引擎1104的不同的第4层PPL事件。
第4层PPL消息处理器1102通过在PPL事件ID中加入第5层事件请求基值500,将消息705的PPL事件ID 522转换为用于第4层PPL状态机1104的第4层的唯一PPL事件ID。因而,在示范的实施例中,第4层PPL消息处理器1102将PPL事件请求消息的PPL事件ID 1与基值500相加,从而产生了第4层的唯一PPL事件ID 501。
一旦PPL事件请求消息被映射为一个第4层唯一PPL事件ID,就根据包括逻辑跨距(Span)和信道ID的消息中的地址单元值导出选定信道的PPL数据的指针。换句话说,第4层PPL消息处理器1102将逻辑地址转换为物理地址,即交换器102中一个物理时隙。继而调用PPL状态机引擎,一般作为一个功能呼叫,该调用以PPL组件实例数据块的信道指针和指向与从通信处理器1006接收的PPL事件请求消息1106关联的数据块的指针来完成。
第4层PPL组件状态机引擎1104对第4层唯一PPL事件ID进行处理,在状态/事件表790中查找当前状态的该PPL事件ID。如果找到一个匹配事件,状态机引擎1104调用状态/事件表中所标识的原语,从原语表780中检索出与原语ID关联的原子函数。
因此,在所说明的实施例中,第4层PPL组件状态机引擎1104处理PPL事件501,在状态/事件表790中查找当前状态S1(706)的PPL事件ID 501并调用与2号原语关联的原子函数。在处理了与原语2关联的所有的原子函数之后,PPL状态机引擎1104进入在第4层PPL状态/事件表790中所指示的状态。
如本发明实施例所预期的,第4层PPL消息处理器1102的伪码公开如下1.ppl_event=psos_msg.ppl_data_buffppl_event+ppl_L5_event_req_base2.ppl_chan_ptr=ppl_data[psos_msg.hdr.timeslot_addr]3.ppl_stmch(ppl_chan_ptr,ppl_event,psos.msg)应该明白,本发明的实施例可以用硬件、软件或软硬件结合实现。在这样的实施例中,用硬件和/或软件实现各种组件和步骤,以执行本发明的功能。在本发明的这种实施例中,可以使用任何当前可用的或将来开发的计算机软件语言和/或硬件组件。尤其是,上述的伪码可能对创建软件实施例特别有用。
尽管参照其优选实施例对本发明进行了具体的说明和描述,本领域的技术人员将会明白,可以在形式和细节上进行各种改变而不背离本发明的构思和范围。进一步讲,所用的术语和词句是作为描述而不是限制语汇而使用的,并且在使用这些术语和词句时,无意排除所说明和所描述的特性或其部分的等价术语及词句,但是认识到,在本发明权利要求的范围内进行各种修改是可能的。
权利要求
1.一个电信系统,包括一个主机设备;一个与所述主机设备连接并进行通信和应答的可编程电信交换器,用于执行与多个信道的各种信道之间所建立的通信通道有关的呼叫处理功能;一个具有用于在所述主机设备和所述电信交换器之间通信的标准消息的通用应用程序接口(API)。
2.权利要求1的系统,其特征在于,其中所述的通用API包括一个称为可编程协议语言(PPL)事件请求消息的单个消息类型,用于从所述主机设备向所述电信交换器传送所有的呼叫控制处理命令和数据;以及一个称为PPL事件指示消息的单个消息类型,用于从所述电信交换器向所述主机设备传送所有的呼叫控制处理状态和数据。
3.权利要求2的系统,其特征在于,其中所述的电信交换器进一步包括一个或多个有限状态机的一个或多个实例,每个所述的一个或多个有限状态机表示所述一个或多个协议之一并包括,一个或多个库,每个库包括一个或多个预定函数;一个或多个预定逻辑状态;至少一个与每个所述的一个或多个预定逻辑状态相关联的预定事件,每个所述至少一个预定事件相对于每个所述一个或多个PPL事件组件状态机被唯一标识;以及其中一旦所述的一个或多个预定事件之一发生,就调用一个与该发生的事件相关联的预定原语,所述的预定原语包括一个或多个所述的预定函数的一个预定序列。
4.权利要求3的系统,其特征在于,其中所述的交换器进一步包括一个或多个状态机引擎,其中每个所述一个或多个状态机被配置为由一个或多个状态机引擎所解释(interprete)。
5.权利要求3的系统,其特征在于,其中所述的PPL事件请求消息包括一个PPL组件ID,用于标识特定的PPL事件请求消息参考哪个所述一个或多个状态机;一个或多个地址单元,每个地址单元标识所述PPL组件ID域所标识的所述状态机的所述一个或多个实例之一;以及一个用户定义的PPL事件ID,表示一个与所述PPL组件ID域所标识的特定状态机相关联的所述的至少一个预定事件的一个相关事件。
6.权利要求5的系统,其特征在于,其中所述的PPL事件请求消息进一步包括一个与所述地址单元相关联的地址单元类型,用于参考与所述相关的地址单元所标识的所述状态机实例相关联的所述电信交换器的组件;以及一个由所述地址单元类型所标识的每个所述的电信交换器组件的组件地址。
7.权利要求5的系统,其特征在于,其中所述的PPL事件请求消息进一步包括一个或多个与每个所述的一个或多个状态机相关联的数据域,用于从所述的主机设备向所述的电信交换器传送呼叫控制处理信息。
8.权利要求3的系统,其特征在于,其中所述的PPL事件指示信息包括一个PPL组件ID,用于标识特定PPL事件指示消息参考哪个所述一个或多个状态机;一个或多个地址单元,每个地址单元标识已调用产生所述的PPL事件指示消息的函数的所述状态机的所述一个或多个实例之一;以及一个用户定义的PPL事件ID,表示在所述电信交换器中所述至少一个事件的一个具体事件的发生,这导致由所述状态机产生一个特定PPL事件指示消息。
9.权利要求8的系统,其特征在于,其中每个所述的PPL事件指示消息由所述一个或多个函数之一产生,该函数配置为响应于一个特定事件的发生而发送PPL事件指示消息,并且其中每个所述的一个或多个地址单元域包括一个地址单元类型,用于参考与所述的一个或多个地址单元所标识的所述状态机实例相关联的所述电信交换器的PPL组件;以及一个由所述的地址单元类型所标识的每个所述PPL组件的PPL组件地址。
10.权利要求8的系统,其特征在于,其中所述的PPL事件指示消息进一步包括一个或多个与每个所述的一个或多个状态机关联的数据域,用于从所述的主机设备向所述的电信交换器传送呼叫控制处理信息。
11.一个电信系统,包括一个主机设备;一个与所述主机设备连接并进行通信和应答的可编程电信交换器,用于执行与多个信道的各种信道之间所建立的通信通道有关的呼叫处理功能;以及采用可编程通用应用程序接口(API)在所述的交换器和所述的主机之间完成通信的装置,所述的可编程通用应用程序接口包括在所述的主机和交换器之间传送信息的标准化消息。
12.权利要求11的系统,其特征在于,其中所述的API可以被设置以满足电信应用和网络信令协议的要求。
13.权利要求11的系统,其特征在于,其中所述的API包括第一预定的消息格式,用于从所述的主机设备向所述的电信交换器传送呼叫控制处理信息的所有消息;以及第二预定的消息格式,用于从所述的电信交换器向所述的主机设备传送呼叫控制处理信息的所有消息。
14.权利要求13的系统,其特征在于,其中所述的电信交换器进一步包括一个或多个可编程协议语言(PPL)组件状态机,每个表示用于执行所述呼叫处理功能的所述一个或多个协议之一,所述的一个或多个状态机应答一个或多个与所述的状态机关联的预定事件。
15.权利要求14的系统,其特征在于,其中所述的交换器进一步包括一个或多个状态机引擎,并且其中每个所述的一个或多个有限状态机包括一个或多个预定函数的库,其中每个所述的一个或多个有限状态机被配置为由所述一个或多个状态机引擎之一解释。
16.权利要求15的系统,其特征在于,其中每个所述一个或多个状态机由一个状态/事件表和一个原语表的功能结合所定义,其中所述的状态/事件表定义了一个或多个预定逻辑状态以及与每个所述的一个或多个预定逻辑状态关联的至少所述一个或多个预定事件之一,并且其中所述的原语表定义了一个或多个原语,每个原语包括一个或多个所述的预定函数的预定的序列,一旦所述的一个或多个预定事件之一发生,就调用一个与此发生事件关联的预定原语。
17.权利要求14的系统,其特征在于,其中所述的第一预定消息格式是长度可变的PPL事件请求消息,它包括一个PPL组件ID,用于标识特定PPL事件请求消息参考哪个所述一个或多个PPL组件状态机。
18.权利要求14的系统,其特征在于,其中所述的电信交换器进一步包括每个所述一个或多个PPL组件状态机的一个或多个实例。
19.权利要求18的系统,其特征在于,其中所述的第一消息格式是长度可变的PPL事件请求消息,它包括一个PPL组件ID,标识特定的PPL事件请求消息参考哪个所述一个或多个PPL组件状态机;以及一个或多个地址单元,每个地址单元标识由所述PPL组件ID所标识的所述PPL组件状态机的所述一个或多个实例之一。
20.权利要求19的系统,其特征在于,其中每个所述的地址单元包括一个地址单元类型,用于参考与所述一个或多个地址单元所标识的所述状态机实例关联的所述电信交换器的组件;以及PPL组件地址信息,用于为每个由所述的一个或多个地址单元所标识的每个所述PPL组件提供特定的地址。
21.权利要求18的交换器,其特征在于,其中所述的PPL事件请求消息包括可编程的可变寻址方案,以寻址每个所述多个PPL组件状态机的所述至少一个实例的所要的一个或多个实例。
22.权利要求19的系统,其特征在于,其中每个所述的一个或多个事件相对每个所述的一个或多个PPL组件状态机被唯一标识,并且其中,所述的PPL事件请求消息进一步包括一个PPL事件ID域,该域包括一个用户定义的事件ID,表示与所述PPL组件ID域所标识的特定PPL组件状态机唯一关联的事件。
23.权利要求22的系统,其特征在于,其中所述的PPL事件请求消息进一步包括与每个所述的一个或多个PPL组件状态机关联的一个或多个数据域,用于从所述主机向所述的交换器传送呼叫控制处理信息。
24.权利要求14的系统,其特征在于,其中所述的第二预定的消息格式是长度可变的PPL事件指示消息,它包括一个PPL组件ID,用于标识特定的PPL事件指示消息参考哪个所述一个或多个PPL组件状态机。
25.权利要求18的系统,其特征在于,其中所述的PPL事件指示消息包括可编程的可变寻址方案,以寻址每个所述多个PPL组件状态机的所述至少一个实例的所要的一个或多个实例。
26.权利要求18的系统,其特征在于,其中所述的第一消息格式是长度可变的PPL事件指示消息,它包括一个PPL组件ID,标识特定的PPL事件指示消息参考哪个所述一个或多个PPL组件状态机;以及一个或多个地址单元,每个地址单元标识所述PPL组件状态机的所述一个或多个实例中的一个已调用产生所述的PPL事件指示消息的函数。
27.权利要求26的系统,其特征在于,其中所述的PPL事件指示消息由所述一个或多个函数之一产生,该函数配置为响应于一个特定事件的发生而发送特定PPL事件指示消息,并且其中每个所述的一个或多个地址单元域包括一个地址单元类型子域,用于参考与所述的一个或多个地址单元域所标识的所述状态机实例关联的所述电信交换器的组件;以及一个地址信息子域,为每个由所述的地址单元类型域所指示的分级组件提供特定的地址。
28.权利要求26的系统,其特征在于,其中每个所述的一个或多个事件相对每个所述的一个或多个PPL组件状态机被唯一标识,并且其中,所述的PPL事件指示消息进一步包括一个PPL事件ID域,该域包括一个用户定义的事件ID,表示在所述交换器中一个特定事件的发生,这导致由所述的PPL组件状态机产生特定PPL事件指示消息。
29.权利要求23的系统,其特征在于,其中所述的PPL事件指示消息进一步包括与每个所述的一个或多个PPL组件状态机关联的一个或多个数据域,用于从所述的主机向所述的交换器传送呼叫控制处理信息。
30.权利要求11的系统,其特征在于,其中所述的呼叫处理功能包括在多个信道的各种信道之间动态地连接或断开通信通道。
31.一个功能分层的可编程电信交换器包括可控交换装置,用于响应于电信业务应用所产生的消息,在多个信道的各种信道之间动态地连接或断开通信通道;多个可编程协议语言(PPL)组件状态机的一个或多个实例,每个实例与所述的电信交换器的一个PPL组件关联,并且表示用于执行与所述多个信道有关的呼叫处理功能的多个协议的一个协议,其中所述的多个PPL组件状态机在功能上与包括所述PPL组件的电信交换器的功能层相关联;以及一个可编程通用应用程序接口(API),用于在所述的功能层之间和所述的功能层与所述的交换器业务应用程序之间传送标准化消息。
32.权利要求31的电信交换器,其特征在于,其中所述的电信交换器的所述功能层包括一个应用层,包括配置为与一个或多个所述的功能层联合操作以实现电信业务功能的所述电信业务应用程序。
33.权利要求32的电信交换器,其特征在于,其中所述的应用层位于所述电信交换器中,并且其中所述的通用API定义在所述电信交换器内部总线上发生的通信。
34.权利要求32的电信交换器,其特征在于,其中所述的功能层进一步包括一个位于与所述电信交换器连接的主机计算机系统的应用层,并且其中所述的API定义了在连接所述电信交换器和所述主机设备的通信信道上发生的通信。
35.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所提供的所述电信业务包括免费业务功能。
36.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所提供的所述电信业务包括话音邮件业务功能。
37.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所提供的所述电信业务包括自动呼叫分配业务功能。
38.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括交互话音应答功能。
39.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括个人通信业务功能。
40.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括信号音产生功能。
41.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括电话会议功能。
42.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括呼叫管理功能。
43.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括呼叫进行音控制功能。
44.权利要求32的电信交换器,其特征在于,其中由所述的电信业务应用所执行的所述呼叫处理功能包括入局呼叫选路由和排队功能。
45.权利要求31的电信交换器,其特征在于,其中所述的功能层包括用于执行集中呼叫处理功能的呼叫管理层。
46.权利要求45的电信交换器,其特征在于,其中由所述的呼叫管理层执行的所述集中呼叫处理功能包括用于支持交互话音应答应用的录音通知控制功能。
47.权利要求45的电信交换器,其特征在于,其中由所述的呼叫管理层执行的所述集中呼叫处理功能包括重新连接和转移功能。
48.权利要求45的电信交换器,其特征在于,其中由所述的呼叫管理层执行的所述集中呼叫处理功能包括提供多种呼叫管理特性。
49.权利要求45的电信交换器,其特征在于,其中由所述的呼叫管理层执行的所述集中呼叫处理功能包括会议连接管理功能。
50.权利要求31的电信交换器,其特征在于,其中所述的功能层包括一个用于执行网络信令功能的网络信令协议层。
51.权利要求50的电信交换器,其特征在于,其中由所述的网络信令协议层所执行的所述网络信令功能包括带内和带外网络信令监督管理。
52.权利要求50的电信交换器,其特征在于,其中由所述的网络信令协议层所执行的所述网络信令功能包括来话和去话的网络协议级控制。
53.权利要求31的电信交换器,其特征在于,其中所述的功能层包括一个用于检测和传送通过网络或线路接口的网络信令信息的链路层。
54.权利要求53的电信交换器,其特征在于,其中所述的链路层运行于CPU/矩阵卡。
55.权利要求53的电信交换器,其特征在于,其中所述的链路层运行于线路卡。
56.权利要求53的电信交换器,其特征在于,其中由所述的链路层所执行的所述功能包括T1丢失(robbed)比特信号扫描。
57.权利要求53的电信交换器,其特征在于,其中由所述的链路层所执行的所述功能包括E1信道随路信令扫描。
58.权利要求53的电信交换器,其特征在于,其中由所述的链路层所执行的所述功能包括T1/E1线路接口机架告警控制。
59.权利要求53的电信交换器,其特征在于,其中由所述的链路层所执行的所述功能包括DSP信号音产生控制。
60.权利要求53的电信交换器,其特征在于,其中由所述的链路层所执行的所述功能包括DSP录音话音通知控制。
61.权利要求31的电信交换器,其特征在于,其中所述的功能层包括一个在线路卡上实现的、为交换器提供网络及线路的物理和电气接口的物理层。
62.权利要求31的系统,其特征在于,其中所述的API包括用于在所述的功能层之间传送呼叫控制处理命令、状态及数据的所有消息的预定的消息格式。
63.权利要求31的电信交换器,其特征在于,其中每个所述的一个或多个PPL组件状态机包括一个或多个各包括一个或多个预定函数的库;一个或多个预定逻辑状态;至少一个与每个所述的一个或多个预定逻辑状态关联的预定事件,每个所述的至少一个预定事件相对每个所述的一个或多个PPL组件状态机被唯一标识;并且其中一旦所述的一个或多个预定事件之一发生,就调用与该发生的事件关联的一个预定原语,所述的原语包括一个或多个所述预定函数的一个预定序列。
64.权利要求63的交换器,其特征在于,其中所述的交换器进一步包括一个或多个状态机引擎,并且其中每个所述的一个或多个组件状态机包括一个或多个预定函数库,其中每个所述的一个或多个组件状态机配置为被一个或多个状态机引擎所解释。
65.权利要求63的交换器,其特征在于,每个所述的一个或多个有限状态机包括,一个或多个库,每个库包括一个或多个预定函数;一个或多个预定逻辑状态;至少一个与每个所述一个或多个预定逻辑状态关联的预定事件,每个所述的至少一个预定事件相对每个所述的一个或多个PPL组件状态机被唯一标识;以及一个或多个所述的预定函数的一个预定序列,其中一旦所述的一个或多个预定事件之一发生,就调用与该发生的事件关联的一个预定原语。
66.权利要求65的交换器,其特征在于,其中每个所述的一个或多个状态机由一个状态/事件表和一个原语表的功能结合所定义,其中所述的状态/事件表定义了一个或多个预定逻辑状态以及至少一个与每个所述的一个或多个预定逻辑状态关联的所述一个或多个预定事件,并且其中所述的原语表定义了一个或多个原语,每个原语包括一个或多个所述的预定函数的一个预定序列。
67.权利要求65的交换器,其特征在于,其中所述的交换器进一步包括一个或多个状态机引擎,并且其中所述的每个所述一个或多个有限状态机配置为被一个或多个状态机引擎所解释。
68.权利要求65的系统,其特征在于,其中所述的PPL事件请求消息包括一个PPL组件ID,用于标识一个特定的PPL事件请求消息参考哪个所述一个或多个PPL组件状态机;一个或多个地址单元域,每个地址单元域标识由所述的PPL组件ID域所标识的所述PPL组件状态机的所述一个或多个实例的一个实例;以及一个包括一个用户定义的事件ID的PPL事件ID域,表示与由所述的PPL组件ID域所标识的一个特定的PPL组件状态机唯一关联的事件。
69.权利要求68的系统,其特征在于,其中每个所述的一个或多个地址单元域包括一个地址单元类型子域,用于参考与所述的一个或多个地址单元域所标识的所述状态机实例关联的所述交换器的组件;以及一个地址信息子域,为每个由所述的地址单元类型域所指示的分级组件提供特定的地址。
70.权利要求68的系统,其特征在于,其中所述的PPL事件请求消息进一步包括一个或多个与每个所述的一个或多个PPL组件状态机关联的数据域,用于从所述的主机向所述的交换器传送呼叫控制处理信息。
71.权利要求65的系统,其特征在于,其中所述的PPL事件指示消息包括一个PPL组件ID,用于标识一个特定PPL事件指示消息参考哪个所述一个或多个PPL组件状态机;一个PPL组件ID域,用于标识一个特定PPL事件指示消息参考哪个所述一个或多个PPL组件状态机;一个或多个地址单元域,每个地址单元域标识所述PPL组件状态机的所述一个或多个实例之一已调用产生所述的PPL事件指示消息的函数;以及一个含有用户定义的事件ID的PPL事件ID域,表示在所述交换器中一个特定事件的发生,这导致由所述的PPL组件状态机产生特定PPL事件指示消息。
72.权利要求71的系统,其特征在于,其中所述的PPL事件指示消息由所述一个或多个函数之一产生,这些函数配置为响应于一个特定事件的发生发送特定PPL事件指示消息,并且其中每个所述的一个或多个地址单元域包括一个地址单元类型子域,用于参考与所述的一个或多个地址单元域所标识的所述状态机实例关联的所述的交换器的组件;以及一个地址信息子域,为所述地址单元类型域所指示的每个分级组件提供特定地址。
73.权利要求71的系统,其特征在于,其中所述的PPL事件指示消息进一步包括一个或多个与每个所述多个PPL组件状态机关联的数据域,用于在所述的功能层之间传送呼叫控制处理信息,所述数据块是根据所述PPL组件状态机与哪个功能层有关联和该PPL组件状态机所支持的通信协议,为每个所述的多个PPL组件予以定义的。
74.一个通用应用程序接口(API),用于在电信系统的功能层之间进行标准化交互呼叫处理通信,所述的电信系统包括一个电信交换器和一个与该交换器连接的主机设备,该通用应用程序接口包括用于从所述主机向所述的电信交换器的所述功能层传送所有呼叫控制处理命令和数据的第一可编程消息;以及用于从所述的电信交换器的所述功能层向所述主机传送所有呼叫控制处理状态和数据的第二可编程消息。
75.权利要求74的API,其特征在于,其中所述的电信交换器包括一个或多个PPL组件状态机的一个或多个实例,每个实例表示一个呼叫处理协议,每个所述的一个或多个有限状态机包括,一个或多个库,每个库包括一个或多个预定函数;一个或多个预定逻辑状态;至少一个与每个所述的一个或多个预定逻辑状态关联的预定事件,每个所述的一个预定事件相对每个所述的一个或多个PPL组件状态机被唯一标识;以及其中一旦所述的一个或多个预定事件之一发生,就调用一个与该发生事件关联的预定原语,所述的原语包括一个或多个所述的预定函数的一个预定序列,其中所述的一个或多个预定事件包括接收所述的第一可编程消息以及其中至少一个所述一个或多个预定函数产生所述的第二可编程消息。
76.权利要求75的交换器,其特征在于,其中所述的电信交换器进一步包括一个或多个状态机引擎,并且其中每个所述的一个或多个PPL组件状态机包括所述一个或多个预定函数的一个或多个库,并且其中每个所述的一个或多个PPL组件状态机配置为被一个或多个状态机引擎所解释。
77.权利要求75的交换器,其特征在于,其中所述的API进一步包括一个包括一个状态域的确认消息,该状态域为接收者提供特定消息的状态信息,其中所述的主机设备一旦收到所述的第一可编程消息,就向所述的电信交换器发送所述的确认消息,并且其中所述的交换器一旦收到第二可编程消息,就设置一个所述的一个或多个预定函数以向所述主机设备发送所述的确认消息。
78.一种用于开发呼叫相关协议的方法,用于执行有关在可编程电信交换器中在多个信道的各信道间建立的通信通道的呼叫处理功能,所述的呼叫处理功能与所述的交换器的特定功能层所执行的功能相关联,该方法包括以下步骤(a)创建一个或多个状态/事件表,每个状态/事件表定义许多预定逻辑状态,一个或多个与每个所述的多个预定逻辑状态关联的预定事件,所述的一个或多个预定事件包括接收在相同或不同的功能层所产生的作为所述创建的呼叫相关协议的一个或多个应用程序接口(API)消息,以及一个与每个所述的一个或多个预定事件关联的原语,其中一旦一个所述的一个或多个关联事件发生就调用一个所述的原语;(b)创建一个或多个原语表,每个原语表为每个所述原语定义一个预定的层依赖函数的预定序列,一个或多个所述的预定函数产生一个到所述的功能层的API消息;以及(c)创建一个或多个协议,每个协议由一个或多个所述的状态/事件表和一个或多个所述的原语表的一个预定关联表示。
79.权利要求78的方法,其特征在于,该方法进一步包括以下步骤(d)存储存于所述的可编程电信交换器内的所述的一个或多个呼叫相关协议;以及(e)在所述的电信交换器内执行所述的一个或多个呼叫相关协议。
80.权利要求78的方法,其特征在于,其中每个所述的一个或多个协议由一个有限状态机表示,该有限状态机可以访问包括所述的预定函数定义的库并配置为被一个状态机引擎所解释,所述的状态机引擎响应于所述的指针而运行。
81.一个按功能分层的可编程电信交换器包括一个特定层处理器,具有配置为执行一个PPL组件状态机实例的状态机引擎,所述的PPL状态机实例表示在交换器中与一个通信信道关联的呼叫处理协议,所述的状态机根据当前状态和一个预定事件的发生调用一个或多个预定函数,其中所述的一个或多个预定函数包括产生第一应用程序接口(API)消息,所述的第一应用程序接口(API)消息具有用于从所述的状态机传送呼叫控制信息的所有消息的第一预定消息格式;并且其中所述的预定事件是许多事件之一,包括接收具有用于向所述的状态机传送呼叫控制处理的所有消息的第二预定消息格式的第二API消息。
82.权利要求81的交换器,其特征在于,其中所述的特定层处理器配置为处理内部表示形式的所述的第一和第二API消息,并且其中所述的交换器进一步包括一个与所述的特定层处理器连接的通信处理器,配置为在内部表示的API消息形式和所述的通用标准化API消息形式之间进行转换,并进一步配置为传送所述的第一通用API消息。
83.权利要求82的交换器,其特征在于,其中所述的系统包括一个配置为支持位于应用层的应用程序的主机,并且其中所述的API消息从交换器向主机传送,反之亦然。
84.权利要求81的交换器,其特征在于,其中所述的处理器包括一个原子函数消息缓冲区,包括一个目的标识域和一个源标识域,分别含有一个源地址和位于相同或不同PPL处理器上的接收PPL组件实例的地址;以及用于将所述的消息缓冲区附加到由所述的原子函数所产生的所述的PPL事件指示消息的所述内部表示上的装置。
85.权利要求84的交换器,其特征在于,其中所述的消息缓冲区进一步包括一个PPL事件标识域,标识产生所述的原子函数的事件。
86.权利要求84的交换器,其特征在于,其中所述的消息缓冲区进一步包括一个或多个数据域,包括与所述的事件和所述的原子函数关联的、用于接收实例的信息。
87.权利要求83的交换器,其特征在于,其中所述的许多PPL组件状态机是特定层的。
88.权利要求83的交换器,其特征在于,其中所述的许多PPL组件状态机是特定功能的。
89.权利要求83的交换器,其特征在于,其中所述的许多PPL组件状态机是特定接口的。
90.权利要求83的交换器,其特征在于,其中所述的许多PPL组件状态机是特定协议的。
91.权利要求83的交换器,其特征在于,其中所述的许多PPL组件状态机是特定协议的。
92.一种使用标准化通用应用程序接口(API)在按功能分层的可编程电信交换系统的两层之间进行通信的方法,该方法包括以下步骤(1)在具有一个状态机引擎的特定层PPL处理器中调用一个或多个特定层程序协议语言(PPL)组件状态机的实例,每个所述的一个或多个实例表示一个呼叫处理协议;(2)根据定义所述的状态机并存储于处理器中以执行各种功能的状态/事件表和原语表调用原子函数,所述的原子函数产生一个API事件指示消息的内部表示;以及(3)将所述的内部表示的PPL事件指示消息传送到一个与所述的处理器连接的通信处理器,以将其翻译为通用的标准化PPL事件指示消息。
93.权利要求92的方法,进一步包括以下步骤(4)将所述的通用API消息传送给位于相同或不同PPL处理器的另一个PPL组件状态机实例。
94.权利要求92的方法,其特征在于,其中所述的系统包括一个支持位于应用层的应用程序的主机,并且其中的方法进一步包括以下步骤(4)将所述的通用API消息传送到位于主机中的一个应用程序。
95.权利要求93的方法,进一步包括以下步骤(5)由所述的处理器创建一个原子函数消息缓冲区,该缓冲区包括分别含有所述的源地址和接收PPL组件实例的地址的一个目的标识域和一个源标识域;以及(6)将所述的消息缓冲区附加到由所述的原子函数产生的所述的PPL事件指示消息的内部表示中。
96.权利要求95的方法,其特征在于,其中所述的消息缓冲区进一步包括一个标识产生所述的原子函数的事件的PPL事件标识域。
97.权利要求95的方法,其特征在于,其中所述的消息缓冲区进一步包括一个或多个包括与一个接收实例的所述事件和所述原子函数关联的信息的数据域。
98.权利要求92的方法,进一步包括以下步骤(4)在所述的通信处理器接收一个通用API PPL事件请求消息;(5)在所述的通信处理器将所述的通用API PPL事件请求消息翻译为内部表示的PPL事件请求消息;(6)将所述的内部表示的PPL事件请求消息传送到所述的特定层PPL处理器;(7)在所述的特定层PPL处理器,接收并处理所述的内部表示的PPL事件请求消息;以及(8)将所述的内部表示的PPL事件请求消息中所包含的PPL事件ID值转换为用于所述的特定层状态机的特定层唯一PPL事件标识值;以及(9)由特定层PPL组件状态机引擎处理该层唯一PPL事件标识值。
99.权利要求98的方法,其特征在于,其中所述的步骤(9)包括以下步骤(a)在所述状态/事件表中查询所述状态机当前状态的那个PPL事件标识值;(b)当找到匹配事件时,调用在状态/事件表中被标识的原语,从原语表中检索出与该原语ID关联的原子函数;(c)在状态/事件表中调用一个被标识的原语;以及(d)从原语表中检索出与该原语ID关联的原子函数。
全文摘要
本发明是一个用于执行呼叫控制处理并能够被设置为满足电信应用和网络信令协议要求的标准化主机—交换器应用程序接口(API)。该通用API包括一个或多个具有用于在主机应用程序与交换器之间发送命令、状态和数据的可编程域的一般消息。本发明进一步包括一个可编程电信交换器,该交换器为用户提供定义就性质来说为“标准的”或自定义的、用于执行任何所需要的交换功能的所需要的API协议的能力。本发明包括一个使用户能够为交换器所提供的每个端口定义独立有限状态机的协议开发环境。通过将被称为原子函数的一系列基本处理步骤与各原语结合,后者又依次与状态和事件结合以定义所需要的状态机,使每个有限状态机可以被独立地定义。上述的状态机可以包括用于在预定条件下产生包含预定信息的预定消息的原子函数。上述状态机可以进一步包括应答状态事件的能力,状态事件包括配置为从主机应用层给状态机提供信息的一般API消息的接收。
文档编号H04Q3/62GK1179872SQ96192846
公开日1998年4月22日 申请日期1996年11月27日 优先权日1996年11月27日
发明者M·P·赫伯尔特 申请人:埃克斯塞尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1