统一消息通信状态改变的动态配置的利记博彩app

文档序号:7952301阅读:634来源:国知局

专利名称::统一消息通信状态改变的动态配置的利记博彩app
技术领域
:本发明一般涉及计算机系统,尤其涉及便于通过文件声明来动态配置菜单驱动通信应用程序的系统和方法,该文件声明以灵活、粒度化且显式的方式指定了菜单活动、提示或转换,且在硬编码状态机或文档服务器的域之外的。
背景技术
:通信技术处于信息时代迅速改变的需求的最前沿。仅短短几年前,传真机技术通过电子编码内容并经由电话线传递消息威胁了以邮件接收信息的传统方式。该技术革命了几百年来运作商业的方式。几乎在传真机普遍的同时,被称为电子邮件或email的新技术开始赶超之前且唯一地处于传真机领域的众多应用程序。随着电子邮件应用程序的发展,诸如即时消息通信服务等其它通信技术也在发展,这再次威胁到较旧形式的通信。连同诸如电子邮件和传真机等文本驱动的技术,语音通信也从硬连线连接改变为今天更流行并持续发展的无线技术。为了管理众多用户可用的大量通信选项,统一消息通信(UM)应用程序开始出现,它们提供用于处理用户可用的众多通信选项的服务。统一消息通信一般蕴含语音、传真、电子邮件等的集成,从而允许用户随时随地从选择的任何终端访问这些消息中的任一个。统一消息通信系统的一个目的是简化并加速通信过程,来获得公司或其它实体内时间和成本的节省。现代通信系统的一个公共特征是,用户一般被给予来自不同样式菜单的各种配置选项,以为特定通信偏好定制这些系统。因此,语音邮件、统一消息通信和其它智能语音识别(IVR)应用程序含有一般为菜单驱动的用户界面。菜单包括,例如可以在电话上向终端用户播放的一个或多个提示。在提示的结尾,用户使用双音多频(DTMF)输入响应,使得应用程序改变至不同的菜单。现有技术的一个问题是,各种应用程序实现使用有限状态机来映射这些菜单改变。一般这些实现对菜单改变进行硬编码,使得难以扩展和定制菜单。在减轻硬编码特性的负担并控制用于处理消息的元素的尝试中,出现了诸如语音可扩展标记语言(VoiceXML)等技术。VoiceXML的一个目的是,将Web开发和内容传递的完全能力带给语音响应应用程序,并将这些应用程序的作者从低级程序设计和资源管理中解放出来。它使得能够使用熟知的客户机—服务器范例来将语音服务与数据服务集成。语音服务被示为用户与实现平台之间的交互对话的序列。对话是由文档服务器提供的,文档服务器可以在各自的实现平台外部。文档服务器维护总服务逻辑,执行数据库和传统系统操作,并产生对话。VoiceXML文档(或调用应用程序的一组相关文档)形成了常规的有限状态机。用户在一个时刻总是处于一个常规状态或对话中。每一对话确定将转移至的下一对话。使用URI来指定转移,URI定义将使用的下一文档和对话。如果URI没有引用文档,那么假定为当前文档。如果它没有引用对话,那么假定为文档中的第一个对话。当对话没有指定后继者,或如果它含有显式退出对话的元素时,执行终止。在VoiceXML中如何处理状态转移的一个问题涉及,状态改变可指定将由文档服务器检索的新文档的事实。因此,与特定用户的任何交互一般需要与文档服务器的多个转移,以完成给定的对话会话。随着顾客的数量增长,各个文档服务器上的负载变得不可管理。这可能会导致要消耗更多的资源,诸如添加更多的服务器来处理负载。文档自身内的另一个低效问题涉及从一个文档或对话转移至另一个所需的脚本代码的数量。
发明内容以下呈现了本发明的简化概述,以提供对本发明的某些方面的基本理解。该概述不是本发明的宽泛的概观。它不旨在标识本发明的关键/重要的元素,也不描绘本发明的范围。它唯一的目的是以简化的形式呈现本发明的某些概念,作为之后呈现的更详细描述的序言。本发明涉及以灵活且有效的方式为各种消息通信应用程序控制菜单驱动活动的系统和方法。在一个方面中,配置文件指定通信系统中的对话界面的活动、提示和/或转移。活动和转移在配置文件内被显式地调出,并为与通信系统交互的用户形成对话会话。可在对话过程中向用户提供通信选项(例如,选择“1”来离开语音邮件或选择“2”来退出)的配置文件内指定各个提示。通过控制配置文件界限内的对话状态和向其它状态的转移,可以实现这样一种通信界面,它具有多个用户,而当改变与每一各个用户的对话条件时不必依赖于与外部服务器的多个交互。配置文件提供允许管理员在系统需求随时间改变时能容易地适应对话菜单的方便和动态的机制。例如,配置文件可以用诸如XML等语言来编码,其中如果所需,对给定界面的改变可被指定为导致对话的新的或不同的状态转移的新的或不同的活动。在一个特定示例中,最初可以用英语来传递对话,带有以英语提供的对话交互的选项。随着时间的推移,可能期望为不说英语的用户添加后继的语言界面。因为配置文件是可适应并可编程的,管理员可以轻易地在配置文件内指定新语言选项而不会引起对底层通信系统的修改以实现这样的改变。为了达到前述及相关目的,此处结合以下描述及附图描述了本发明的某些说明性方面。这些方面指示可实现本发明多种方式,所有这些都旨在被本发明所覆盖。当结合附图考虑,通过阅读本发明的以下详细描述时,本发明的其它优点和新颖的特征将变得明显。图1是示出根据本发明的一方面的可配置消息通信系统的示意性框图。图2是示出根据本发明的一方面的示例性配置文件的框图。图3示出了根据本发明的一方面的示例性统一消息通信系统。图4和5是示出根据本发明的一方面用于管理调用活动的示例服务进程的流程图。图6示出了根据本发明的一方面用于处理调用的示例服务类。图7示出了根据本发明的一方面用于处理调用的示例配置类。图8示出了根据本发明的一方面用于处理调用的示例活动类。图9是示出根据本发明的一方面的合适的操作环境的示意性框图。图10是示出本发明可与之交互的示例计算环境的示意性框图。具体实施例方式本发明涉及能够进行动态程序设计和执行电子通信对话的系统和方法。在一个方面中,提供了可配置的消息通信系统。该系统包括描述计算机化的对话会话的界面选项的配置文件(例如,与统一消息通信应用程序交互的选项的电子菜单)。配置文件指定配置文件内的界面选项之间的界面活动和状态转移,这减少了与外部通信服务器之间不必要的交互。状态控制器在与对话会话的通信活动过程中执行界面选项。配置文件也描述向用户或应用程序请求信息的提示元素,这允许以灵活且有效的方式对给定对话进行改变。如在本申请中所使用的,术语“组件”、“文件”、“系统”、“对象”、“控制器”等指的是计算机相关的实体,或者是硬件、硬件和软件的组合、软件或者执行中的软件。例如,组件可以是但不限于,运行在处理器上的进程、处理器、对象、可执行代码、执行的线程、程序和/或计算机。作为示例,运行在服务器上的应用程序和服务器本身都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。同样,这些组件也可以从其上存储各种数据结构的各种计算机可读介质执行。组件可以通过本地和/或远程进程通信,诸如根据含有一个或多个数据包的信号(例如,来自一个组件的数据通过信号与本地系统、分布式系统中的另一组件和/或跨诸如因特网等网络与其它系统交互)。最初参考图1,示出了根据本发明一方面的可配置消息通信系统100。系统100包括与一个或多个用户和/或自动化应用程序120交互以便于处理各种通信应用程序的消息通信组件110。消息通信组件110可以与各种应用程序相关联,诸如统一消息通信应用程序、语音邮件处理、或基本上任何类型的语音识别应用程序。通常,与消息通信组件110交互是通过双音多频(DTMF)输入进行的,但是也可使用诸如语音或文字输入等其它类型的输入。一般而言,配置文件130存储驱动与用户或应用程序120的界面对话会话140的指令或命令组。这样的指令或命令可以使得对话会话140生成并处理例如一个或多个菜单项,它们共同控制与用户或应用程序120的交互。例如,第一项可以与标识会话的问候相关,第二项可以请求口令输入,第三项可以请求在与消息通信组件110相关联的文件中记录语音邮件消息。如将在以下更详细描述的,配置文件可以指定控制对话会话140的活动、提示或转移,以及最终消息通信组件将如何与用户或应用程序120交互。配置文件130一般指定,例如在对话会话140中将完成什么活动,以及当完成或中止给定的活动之后将转移至何种状态。状态是由指示消息处理组件160(或诸如服务等组件)在系统100中执行某些动作(例如,记录语音邮件、回放消息、检查用户输入等)的状态控制器150来管理的。配置文件130允许管理员为多个不同的通信应用程序动态地适应消息通信组件110的功能。这通过以可扩展标记语言(XML)或其它类型的语言指定对话交互或命令来完成,这些对话交互或命令协助来控制消息通信组件110的状态。在这种情况中,配置文件130内的指令从状态控制器150中移除硬编码的状态实现,并允许管理员适应于改变的情况,而不必在进行改变之后修改状态控制器。因为至其它状态的转移被包含在配置文件130内,对给定对话会话140的对话控制可以在更细粒度的级别上动态指定(例如,将转移指定为文件内而不是文档外部的组),同时减少与其它计算机/组件的交互以确定系统100的适当的状态或动作。因此,本发明便于在XML文件(或其它类型)中为对话会话140配置菜单及其转移,而不是在状态控制器150中硬编码这些方面。该特征促进可扩展性,其中可以无需对消息通信组件110的改变而添加新的菜单和转移。同样,配置文件130减少了应用程序开发时间并允许定制,从而管理员和终端用户可潜在地添加新的菜单并改变现有菜单转移以适应其需求。其它方面包括,对添加其它语言(例如,德语、法语、英语等)的提示、菜单和转移的语言支持,这是通过仅修改配置文件130(或文件),而同时保持消息通信系统100的底层应用程序实现不变来完成的。现在参考图2,示出了根据本发明一方面的示例性配置文件200。一般而言,配置文件200包括在210示出的一个或多个对话命令组(例如,组101、102、103等)中排列的活动元素、提示元素和转换元素,其中这样的组指定用于与通信或消息通信系统交互的用户界面或菜单的操作。例如,如下在附录A中作为示例1示出了在XML配置文件中描述的统一消息通信示例的电话用户界面(TUI)。具有“id”属性的元素描述一个活动。例如,Menu(菜单)、Record(记录)等都是活动的示例。Prompt(提示)元素表示向终端用户播放的提示,而Transition(转换)元素描述将要执行的下一活动以及在转移之前采取的动作。一般而言,对话应用程序的一个可能的实现包括每一状态映射至配置文件210中的一个活动的状态机。例如,状态转移可以被映射至XML中的转移元素。Action(动作)属性表示刚好要在状态转换之前执行的动作。同样,该模型中也支持子状态机转移。例如,RecordVoicemail(记录语音邮件)可以是含有包含菜单和记录的众多子活动的父活动。当在如以下附录A再现的示例1示出的该示例中时,统一消息通信应用程序接收来自终端用户的调用,可使用涉及该调用的XML配置(预先加载至存储器中),且为该调用执行整个活动状态机。该加载配置的预调用粒度为管理员和终端用户扩展、定制和支持其它语言给出了极大的灵活性。转向图3,示出了根据本发明一方面的示例统一消息通信系统300。在该示例中,系统300描述了统一消息通信系统300如何在PBX310和会话发起协议(SIP)网关320的环境中协作。网关320可以通过IP网络340使用SIP协议将调用330路由至(有线或无线地)统一消息通信系统300。这允许统一消息通信系统300不与PBX310连用。其它组件可包括用于存储消息的邮箱服务器350和管理消息的现用目录360。如图所示,统一消息通信系统300可以包括诸如文本—语音(TTS)和语音识别引擎370等处理输入调用330的组件,尽管也可提供诸如DTMF控件等其它类型的组件。如将在以下更详细描述的,可以提供一个或多个统一消息通信服务,它加载并执行配置文件来创建界面会话来与生成调用330的用户(或应用程序)交互。这可包括管理系统300的状态操作的各个对象和类的操作。图4和5示出了根据本发明的一方面用于管理调用的示例服务方法。尽管为了说明的简明性起见,方法被示出和描述为一连串或多个动作,但是可以理解和领会,本发明不受动作的顺序的限制,如根据本发明,某些动作可以按与此处示出和描述的不同的顺序发生和/或与其它动作同时发生。例如,本领域的技术人员可以理解和领会,方法可以替换地被表示为诸如状态图中的一连串互相关联的状态或事件。而且,并非所有示出的动作都是实现根据本发明的方法所必需的。图4示出在与调用者交互的服务的启动过程中的该服务的调用流程400。前进至410,进程读取全局配置XML文件和统一消息通信配置XML文件,并然后填充统一消息通信配置类。在420处,确定并检索给定机器上可用的软件信息通路(trunk)的数量,其中各个信息通路与一给定的调用者相关联。在430,对在420处描述的每一信息通路,执行在440中示出的以下进程a.创建新的线程。b.在该新线程中创建语音对象(VoiceObject)并初始化该对象。c.注册传入调用(OnIncomingCall)事件处理程序;以及d.运行服务应用程序来处理各个调用。一般而言,进程在该线程中等待。这会开始用于处理线程上的调用的应用程序消息循环,以便于将在同一线程上执行事件回叫。图5示出了在处理传入调用的过程中与调用者交互的服务的调用流程500。前进至图5的510,该服务将在创建语音对象的同一线程上调用在启动过程中注册的传入调用(以上在图4中描述)。在520处,检索调用者、被调用者和/或其它类型的调用信息并初始化语音对象的调用上下文(CallContext)。在530处,从同一消息通信配置文件中读取第一活动id(ActivityId),且该进程从该活动id创建活动。在540处,执行Activity.OnStart(活动开始)函数,开始执行基于上述全局配置文件和/或统一消息通信配置文件的内容的与调用者的对话。基于统一消息通信配置文件中的活动配置,Onstart函数异步地执行语音对象的功能之一(例如,播放提示(PlayPrompt)、记录文件(RecordFile)等)并然后退出各个线程。在550处,当完成语音对象任务之后,例如,可以调用诸如OnDtmfInput(DTMF输入)/OnPromptComplete(提示完成)/OnRecordComplete(记录完成)/OnUserHangup(用户挂起)/和OnTimeout(超时)等函数。该回叫基于统一消息通信配置文件创建了新的活动。注意到,如果检测到该新活动为空,那么可以在550处对调用断开连接,否则该进程返回至540处来执行新的活动。图6示出了根据本发明一方面用于处理调用的示例服务类600。在该方面中,消息服务类600负责启动、创建和结束与组件的交互,后者为用户或应用程序与消息通信系统的交互处理传入调用并控制界面。服务类600的各方面包括初始化服务调用的对象的入口点610。在620处,服务类包括起始点,在此点上可以读取配置文件并可至少部分基于该文件启动活动。在630处,消息类600使用在服务完成时执行的方法,诸如调用终止给定调用者或信息通路的活动的关闭逻辑。以下代码示出了示例服务类600。示例2该类为实现服务的启动和关闭代码。publicclassUMServiceSystem.ServiceProcess.ServiceBase{///顶层活动配置列表internalstaticActivityConfigListumconfig=null;//<概述>///由services.msc调用的UM服务的构造函数///</概述>publicUMService();///<概述>///当从服务MSC启动服务时的入口点///</概述>protectedoverridevoidOnStart(string[]args){1.读取全局配置文件2.读取UM配置文件并构造umconfig(UM配置)对象3.创建IncomingCallControl(传入调用控制)对象4.将IncomingCallHandler(传入调用处理程序)注册为使用IncomingCallControl的回叫。5.调用IncomingCallControl.Start(传入调用控制.开始)}///<概述>///当从服务MSC停止服务时的入口点///</概述>protectedoverridevoidOnStop(){1.调用IncomingCallControl.Shutdown(传入调用控制.关闭)}///<概述>///当从网关接收到调用时的入口点///</概述>staticvoidIncomingCallHandler(VoiceObjectvoiceObject){1.创建初始活动(基于配置)2.调用初始Activity.Start(活动.开始)}}图7示出了根据本发明的一方面用于处理调用的示例配置类700。类700可用于在存储器中存储配置文件。在该文件中的每一活动包含,例如要播放的提示、期望的DTMF、在DTMF上采取的动作以及在DTMF上进行的下一活动。存在如读取语音邮件等含有自己的一组活动的某些活动。类700显示了活动配置类的继承性分层结构。ActivityConfig(活动配置)是活动配置的基类。它为可能的事件和特定活动的该事件的下一活动存储散列表。这是基于配置文件的。以下代码示例示出了示例配置类700。示例3///<概述>///活动配置的基类///</概述>internalabstractclassActivityConfig{protectedstringactivityId;///所有活动与此活动对等protectedActivityConfigListpeerActivities;///包含DTMF与NextActivity(下一活动)之间的映射///NextActivity是ActivityConfigList(活动配置列表)中的引用。protectedHashtableactivityDtmfMap;///<概述>//获取活动id///</概述>internalstringActivityId{get{returnthis.activityId;}}///<概述>///基于DTMF获取下一活动///该活动的数位(digit)///</概述>internalNextActivityGetNextActivityId(stringdtmfDigits);///<概述>///activityconfig的构造函数///</概述>internalActivityConfig(ActivityConfigListconfig,stringactivityId);//为活动解析XML,且如果存在如activityDtmfMap(活动Dtmf映射)//、提示和子活动等字段,则全部填充。从UmConfig.Parse调用internalabstractvoidLoad(XmlNoderootNode);//创建对应于该ActivityConfig的NewActivity(新活动)对象并返//回。internalabstractActivityCreateNewActivity();///<概述>//向activityDtmfMap添加活动节点的函数。这由Load使用。//</概述>privatevoidAddActivityNode(XmlNodenodeCurrent);}以下是由示例统一信使服务实现的不同的活动配置。1.MenuConfig这也基于XML为该活动存储提示。2.RecordVmailConfig这也存储对ActivityConfigList的引用与对该活动本地的ActivityConfig。3.ReadVmailConfig这也存储对ActivityConfigList的引用与对该活动本地的ActivityConfig。4.ReadEmailConfig这也存储对ActivityConfigList的引用与对该活动本地的ActivityConfig。5.ReadCalendarConfig这也存储对ActivityConfigList的引用与对该活动本地的ActivityConfig。6.ReadContactsConfig这也存储对ActivityConfigList的引用与对该活动本地的ActivityConfig。图8示出了根据本发明的一方面用于处理调用的示例活动类800。当调用进入统一消息通信服务时,可以由状态机对其处理,状态机基于上述的配置文件从一个状态移动至另一个状态。该机器中的状态是语音形式的,它们确定将要播放的提示或采取的动作。事件可以是来自终端用户的DTMF或语音输入或诸如邮件结束等内部事件。Activity(活动)类800实现状态机的一个状态。这是活动的基类。示例4internalabstractclassActivity{//当执行动作时生成事件protectedstringautoEvent;internalActivity();internalabstractvoidOnStart(VoiceObjectvoiceObject);internalabstractvoidOnDtmfInput(VoiceObjectvoiceObject);internaIabstractvoidOnUserHangup(VoiceObjectvoiceObject);internalabstractvoidOnPromptComplete(VoiceObjectvoiceObject);internalabstractvoidOnRecordComplete(VoiceObjectvoiceObject);internalabstractvoidOnTimeout(VoiceObjectvoiceObject);protectedvoidExecuteNextAction(stringaction,VoiceObjectvoiceObject){1.基于传递给它的动作执行适当的动作。2.当执行动作时,这可生成autoEvent(自动事件)。}}以下是由服务实现的不同活动。这些将含有可被传递给构造函数的对相应的ActivityConfig类的引用。1.MenuActivity用于播放提示和等待用户输入(DTMF或语音)。这是基本活动。2.RecordVmailActivity维护记录语音消息所需的活动集。3.ReadVmailActivity维护读取语音消息所需的活动集。4.ReadEmailActivity维护读取消息所需的活动集。5.ReadCalendarActivity维护读取日历所需的活动集。6.ReadContactsActivity维护读取联系人所需的活动集。参考图9,用于实现本发明各方面的示例性环境910包括计算机912。计算机912包括处理单元914、系统存储器916和系统总线918。系统总线918将包括但不限于系统存储器916的系统组件耦合至处理单元914。处理单元914可以是任何各种可用的处理器。也可以使用双微处理器和其它多处理器体系结构作为处理单元914。系统总线918可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线或外部总线和/或使用任何各种可用的总线体系结构的局部总线,可用的总线体系结构包括,但不限于,11位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。系统存储器916包括易失性存储器920和非易失性存储器922。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机912中元件之间传递信息的基本例程,它通常存储在非易失性存储器922中。作为说明,而非限制,非易失性存储器922可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器920可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明,而非限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接RambusRAM(DRRAM)。计算机912也包括可移动/不可以移动、易失性/非易失性计算机存储介质。例如,图9示出磁盘存储924。磁盘存储924包括,但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、闪存卡或记忆棒的设备。另外,磁盘存储924可以包括独立或与其它存储介质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将磁盘存储设备924连接至系统总线918,一般使用诸如接口926等可移动或不可移动接口。可以理解,图9描述了作为用户和在合适的操作环境910中描述的基本计算机资源之间的中介的软件。这样的软件包括操作系统928。可被存储在磁盘存储924上的操作系统928用来控制和分配计算机系统912的资源。系统应用程序930通过存储在系统存储器916或者磁盘存储914上的程序模块932和程序数据934利用了操作系统928执行的资源管理。可以理解,本发明可以使用各种操作系统或操作系统的组合来实现。用户通过输入设备936向计算机912输入命令或信息。输入设备936包括,但不限于,诸如鼠标、跟踪球、指示笔等定点设备、触摸垫、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口938通过系统总线918连接至处理单元914。接口端口938包括,例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备940使用某些与输入设备936相同类型的端口。从而,例如,USB端口可以用于向计算机912提供输入,并向输出设备940提供来自计算机912的输出信息。提供输出适配器942来示出,存在类似监视器、扬声器和打印机以及其它需要专用适配器的输出设备940的某些输出设备940。作为说明而非限制,输出适配器942包括提供输出设备940和系统总线918之间的连接手段的显卡和声卡。应该注意,诸如远程计算机944等其它设备和/或设备系统同时提供输入和输出能力两者。计算机912可使用至一台或多台远程计算机,诸如远程计算机944的逻辑连接在网络化环境中操作。远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络节点等,且通常包括上文相对于计算机912描述的许多或所有元件。为简洁起见,对于远程计算机944仅示出存储器存储设备946。远程计算机944通过网络接口948被逻辑连接至计算机912,并且然后通过通信连接950被物理地连接。网络接口948包括诸如局域网(LAN)和广域网(WAN)的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网/IEEE802.3、令牌环/IEEE802.5等。WAN技术包括,但不限于,点对点链路、类似综合业务数字网(ISDN)及其变体的电路交换网络、分组交换网络和数字用户线(DSL)。通信连接950指的是用来将网络接口948连接至总线918的硬件/软件。尽管为说明清楚,将通信连接950示为位于计算机912内,然而它也可以在计算机912外部。仅为示例的目的,连接至网络接口948所必需的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。图10是本发明可与之交互的示例计算环境1000的示意性框图。系统1000包括一个或多个客户机1010。客户机1010可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1000也包括一个或多个服务器1030。服务器1030也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器1030可以容纳通过使用本发明来执行转换的线程。客户机1010和服务器1030之间的一种可能的通信可以是适于在两个或多个计算机进程之间传输的数据包的形式。系统1000包括可以被用来促进客户机1010和服务器1030之间通信的通信架构1050。客户机1010可操作地连接至可用来存储对客户机1010本地的信息的一个或多个客户机数据存储1060。类似地,服务器1030可操作地连接至可被用来存储对服务器1030本地的信息的一个或多个服务器数据存储1040。以上描述的包括本发明的示例。当然,不可能为描述本发明而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,本发明的众多其它组合和排列是可能的。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。而且,就在详细描述和权利要求书中都使用的术语“包括”而言,当被用作权利要求书中的过渡词时,这样的术语旨在类似于解释术语“包含”的方式是包含性的。附录A示例1<?xmlversion=″1.0″encoding=″utf-8″?><UmConfigfirstActivityId=″100″><!--检查是否从网关接收到有效转移--><Menuid=″100″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Transitionevent=″noKey″refId=″101″action=″getExtension″></Transition><Transitionevent=″extensionFound″refId=″700″action=″null″></Transition></Menu><!--欢迎来到统一消息通信--><Menuid=″101″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Prompttype=″wave″name=″0020.wav″/><Transitionevent=″noKey″refId=″102″action=″null″/></Menu><!--仅输入分机或#--><Menuid=″102″minDtmfSize=″1″maxDtmfSize=″6″dtmfInputValue=″option″dtmfStopTones=″#*″interDigitTimeout=″5″><Prompttype=″wave″name=″0510.wav″></Prompt><Transitionevent=″#″refId=″106″action=″validateCaller″></Transition><Transitionevent=″anyKey″refId=″102″action=″validExtension″></Transition><Transitionevent=″extensionFound″refId=″700″action=″null″></Transition><Transitionevent=″invalidExtension″refId=″115″action=″null″></Transition><Transitionevent=″maxInvalidExtensions″refId=″116″action=″null″></Transition><Transitionevent=″mailboxFound″refId=″104″action=″getName″></Transition><Transitionevent=″0″action=″notImplemented″refId=″102″/><Transitionevent=″*″action=″notImplemented″refId=″102″/></Menu><Menuid=″103″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Prompttype=″wave″name=″0000.wav″></Prompt><Transitionevent=″noKey″refId=″103″action=″disconnect″></Transition></Menu><!--输入口令--><Menuid=″104″minDtmfSize=″1″maxDtmfSize=″24″dtmfInputValue=″password″dtmfStopTones=″*#″interDigitTimeout=″5″><Prompttype=″tempwave″name=″userName″/><Prompttype=″wave″name=″0015.wav″/><Transitionevent=″*″action=″null″refId=″106″/><Transitionevent=″anyKey″action=″doLogon″refId=″140″/><Transitionevent=″logonOk″action=″null″refId=″400″/><Transitionevent=″firstTimeUserTask″action=″null″refId=″600″/><Transitionevent=″changePasswordTask″action=″null″refId=″600″/><Transitionevent=″badPasswordDisconnect″action=″null″refId=″141″/><Transitionevent=″badPasswordLockout″action=″null″refId=″142″/></Menu><!--主菜单--><Menuid=″105″minDtmfSize=″1″maxDtmfSize=″2″dtmfInputValue=″option″><PromptSwitchevaluate=″more″><Casecondition=″more″><PrompttyPe=″wave″name=″0516.wav″/></Case><Casecondition=″default″><Prompttype=″wave″name=″0515.wav″/></Case></PromptSwitch><Transitionevent=″1″action=″null″refId=″800″/><Transitionevent=″2″action=″null″refId=″200″/><Transitionevent=″3″action=″notImplemented″refId=″105″/><Transitionevent=″4″action=″notImplemented″refId=″105″/><Transitionevent=″5″action=″null″refId=″130″/><Transitionevent=″6″action=″null″refId=″600″/><Transitionevent=″7″action=″notImplemented″refId=″105″/><Transitionevent=″0″action=″null″refId=″105″/><Transitionevent=″00″action=″more″refId=″105″/><Transitionevent=″*″action=″disconnect″refId=″105″/></Menu><!--记录语音邮件管理器--><RecordVoicemailid=″700″firstActivityId=″701″><Transitionevent=″out-1″action=″null″refId=″150″/><!--记录语音邮件获取问候菜单--><Menuid=″701″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Transitionevent=″noKey″action=″getGreeting″refId=″702″/><Transitionevent=″noGreeting″action=″null″refId=″703″/></Menu><!--记录语音邮件找到问候菜单--><Menuid=″702″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Transitionevent=″noKey″action=″null″refId=″704″/><Prompttype=″tempwave″name=″customGreeting″/></Menu><!--记录语音邮件未找到问候菜单--><Menuid=″703″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Transitionevent=″noKey″action=″null″refId=″704″/><Prompttype=″wave″name=″0003a.way″></Prompt><Prompttype=″text″name=″userName″/></Menu><!--记录语音邮件主菜单--><Menuid=″704″minDtmfSize=″0″maxDtmfSize=″1″dtmfInputValue=″option″><Transitionevent=″noKey″action=″null″refId=″705″/><Transitionevent=″*″action=″fillCallerInfo″refId=″out-1″/><PrompttyPe=″wave″name=″0000.wav″></Prompt></Menu><Recordid=″705″saveTo=″voicemailMessage″minDtmfSize=″1″maxDtmfSize=″1″dtmfStopTones=″#*″><Transitionevent=″#″action=″recordPlayTime″refId=″706″/><Transitionevent=″*″action=″clearVoiceMail″refId=″713″/><Transitionevent=″anyKey″action=″recordPlayTime″refId=″706″/><Transitionevent=″silence″action=″null″refId=″709″/><Transitionevent=″timeout″action=″null″refId=″706″/></Record><!--记录语音邮件记录后菜单--><Menuid=″706″minDtmfSize=″1″maxDtmfSize=″2″dtmfInputValue=″option″><PromptSwitchevaluate=″more″><Casecondition=″more″><Prompttype=″wave″name=″0501.wav″/></Case><Casecondition=″default″><Prompttype=″wave″name=″0500.wav″/></Case></PromptSwitch><Transitionevent=″11″action=″notImplemented″refId=″706″/><Transitionevent=″1″action=″submitVoiceMail″refId=″707″/><Transitionevent=″2″action=″null″refId=″708″/><Transitionevent=″3″action=″clearVoiceMail″refId=″704″/><Transitionevent=″4″action=″notImplemented″refId=″706″/><Transitionevent=″0″action=″null″refId=″706″/><Transitionevent=″00″action=″more″refId=″706″/><Transitionevent=″*″acction=″clearVoiceMail″refId=″713″/></Menu><Menuid=″707″minDtmfSize=″0″maxDtmfSize=″0″dtmfInputValue=″option″><Prompttype=″wave″name=″1075.wav″></Prompt><Prompttype=″wave″name=″0565.wav″></Prompt><Transitionevent=″noKey″refId=″707″action=″disconnect″></Transition></Menu></RecordVoicemail></UmConfig>权利要求1.一种可配置的消息通信系统,包括描述计算机化对话会话的界面选项的配置文件,所述配置文件指定所述配置文件内界面选项之间的界面活动和状态转移;以及在与所述对话会话的通信活动过程中执行所述界面选项的状态控制器。2.如权利要求1所述的系统,其特征在于,所述配置文件描述向至少一个用户或应用程序请求信息的提示元素。3.如权利要求2所述的系统,其特征在于,还包括执行所述配置文件并与所述状态控制器交互的消息处理组件。4.如权利要求1所述的系统,其特征在于,还包括接收语音或双音多频(DTMF)输入的组件。5.如权利要求1所述的系统,其特征在于,所述配置文件和所述状态控制器与统一消息通信应用程序相关联。6.如权利要求1所述的系统,其特征在于,所述配置包括一个或多个活动元素、一个或多个提示元素以及一个或多个转移元素,以便于所述对话会话。7.如权利要求6所述的系统,其特征在于,所述活动元素、提示元素和转移元素被组成组来创建所述对话会话。8.如权利要求1所述的系统,其特征在于,还包括操作配置类和活动类中的至少一个来操作所述对话会话的服务。9.如权利要求1所述的系统,其特征在于,还包括网关组件、协议组件、语音引擎、邮箱服务器以及目录服务器中的至少一个以便于与用户或应用程序交互。10.如权利要求1所述的系统,其特征在于,还包括与所述配置文件协作以启用所述对话会话的全局配置文件。11.如权利要求1所述的系统,其特征在于,还包括支持所述对话会话的至少一个语音对象。12.如权利要求11所述的系统,其特征在于,所述语音对象在数字化音频文件中存储语音数据。13.如权利要求11所述的系统,其特征在于,所述配置文件是通过可扩展标记语言(XML)来编程的。14.如权利要求1所述的系统,其特征在于,还包括控制菜单操作、记录语音邮件活动、读取语音邮件活动、读取电子邮件活动、读取日历活动和读取联系人活动的至少一个功能。15.一种其上存储用于实现如权利要求1所述的组件的计算机可读指令的计算机可读介质。16.一种用于配置消息通信系统的方法,包括创建为用户定义界面活动的配置文件;在所述配置文件内定义至少一个活动、提示和转移;执行所述配置文件;以及基于所述配置文件内的指令,为所述用户自动创建界面会话。17.如权利要求16所述的方法,其特征在于,还包括创建含有配置类或活动类来操作所述配置文件的服务。18.如权利要求16所述的方法,其特征在于,还包括使用多个人类语言选项对所述配置文件编程。19.如权利要求16所述的方法,其特征在于,还包括使用无线协议来操作所述界面会话。20.一种提供统一消息通信服务的系统,包括用于为用户或系统定义界面选项的装置;用于根据所述界面选项执行活动、提示或转移的装置;用于在执行所述活动、提示或转移之后操作对话会话的装置;以及用于存储由所述对话会话产生的数据的装置。全文摘要本发明涉及允许动态编程和执行电子通信对话的系统和方法。在一个方面中,提供了可配置的消息通信系统。该系统包括描述计算机化的对话会话的界面选项的配置文件,其中配置文件指定该配置文件内的界面选项之间的界面活动和状态转移。状态控制器在与对话会话的通信活动过程中执行界面选项。配置文件也可描述向用户或应用程序请求信息的提示元素。文档编号H04L29/06GK1828528SQ20061000462公开日2006年9月6日申请日期2006年1月26日优先权日2005年2月28日发明者D·A·豪威尔,J·M·莱昂,S·森达拉拉曼,S·R·曼达申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1