CN101809609A - 统一消息通信状态机 - Google Patents

统一消息通信状态机 Download PDF

Info

Publication number
CN101809609A
CN101809609A CN200880109277A CN200880109277A CN101809609A CN 101809609 A CN101809609 A CN 101809609A CN 200880109277 A CN200880109277 A CN 200880109277A CN 200880109277 A CN200880109277 A CN 200880109277A CN 101809609 A CN101809609 A CN 101809609A
Authority
CN
China
Prior art keywords
xml
menu
computer implemented
implemented system
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200880109277A
Other languages
English (en)
Other versions
CN101809609B (zh
Inventor
T·W·米利特
S·曼达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ivalley Holding Co Ltd
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101809609A publication Critical patent/CN101809609A/zh
Application granted granted Critical
Publication of CN101809609B publication Critical patent/CN101809609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

统一消息通信(UM)应用程序受益于平台独立性以及人类对可扩展标记语言(XML)的理解。利用XML特征来创建UM应用程序的有限状态机(FSM)以基于UM软件组件创建有效菜单状态。对作为UM应用程序的上下文或设置的UM软件组件而言,XML条件属性决定UM FSM的提示、转移或语法节点。对作为XML摘录的UM软件组件而言,XML导入元素在编译时复制XML摘录,以避免手动代码复制的耗时和易于出错的需求。对诸如外部方法、函数、变量或动作等UM软件组件而言,函数包装XML工具来在构建时确认此类外部UM软件组件的存在并在执行时捕捉版本信息以验证同一版本的可用性。

Description

统一消息通信状态机
技术领域
本发明一般涉及计算机系统,尤其涉及方便经由以灵活、粒度、且显式的方式指定菜单活动、提示、或转移的文件声明来动态配置菜单驱动通信应用程序且在硬编码的状态机或文档服务器的领域之外的系统和方法。
发明背景
通信技术正处于信息时代的快速改变的需求的前沿。仅在短短几年前,传真机技术通过电子地编码内容并通过电话线传递消息威胁了以邮件方式接收信息的传统方式。此技术彻底变革了此业务进行了数百年的方式。几乎在传真机变得无处不在的同时,被称为电子邮件的新技术开始压倒之前仅在传真机的领域中的许多应用。随着电子邮件应用的增长,还有诸如即时消息通信服务等其它通信技术出现,其再次威胁了较老式的通信形式。与诸如电子邮件和传真机等文本驱动技术一起,语音通信也从硬连线连接变成当前日益流行并成长的无线技术。
为管理对许多用户可用的各种通信选项,提供用于处理对用户可用的许多通信选项的服务的统一消息通信(UM)应用程序开始出现。统一消息通信一般意味着语音、传真、电子邮件等的集成以允许用户在所选的任何地点、任何时间、从任何终端访问这些消息中的任一个。统一消息通信系统的一个目标是简化并加速通信过程以达成公司或其它实体内的时间和成本节省。
现代通信系统的一个共同特征是一般给予用户来自不同风格的菜单的各种配置选项以定制这些系统用于特定通信偏好。因此,语音邮件、统一消息通信以及其它智能语音识别(IVR)应用程序具有通常为菜单驱动的用户界面。例如,可在电话上向最终用户播放由一个或多个提示组成的菜单。用户通过诸如使用双音多频(DTMF)键区等一个或多个方法来作出菜单选择。在存在许多输入选项时,DTMF导航技术可被证明使用起来是繁琐的。此外,在脱手通信设备的使用增加的情况下,DTMF键区输入可能不是方便或合适的。
最近,在UM菜单中以某一程度采用自动语音识别(ASR)以使得它们更易于使用。然而,给定语言、方言、语音模式、以及个体倾向中的巨大差异,ASR必须处理大量可能的语音场景以避免失败可能的高百分比。如此,诸如常规状态机等硬编码解决方案因为不能在没有繁重的代码开发和测试的情况下适应新UM特征而变得不切实际。
发明概述
以下给出本发明的简要概述,以便提供对本发明一些方面的基本理解。这一概述不是本发明的广泛概览。并不旨在鉴别本发明的关键/重要的元素或描绘本发明的范围。其唯一目的是以简化的形式给出本发明的一些概念,作为后面给出的更加详细的描述的前奏。
本发明涉及用于统一消息通信(UM)应用程序的编程的系统和方法。具体而言,平台独立性的好处和人类对扩展标记语音(XML)的理解度由编程环境采用以产生由用户提示定义的菜单状态和根据用户响应到另一菜单状态的转移的有限状态机(FSM)。在一方面中,编程环境使用XML特征来基于UM软件组件创建有效菜单状态。因此,可创建具有增加的复杂性的菜单。
为了实现前述及相关目的,在这里结合以下描述及附图来描述本发明的某些说明性方面。这些方面指示可按其实践本发明的各种方式,所有方式旨在由本发明所覆盖。通过结合附图考虑本发明的以下详细描述,本发明的其它优点以及新颖的特征将变得显而易见。
附图简述
图1示出根据本发明的一方面的用于可配置消息通信系统的编程环境的示意性框图。
图2示出图5的消息通信系统的示例性菜单选项的框图。
图3示出图2的菜单选项的扩展的说明性图示。
图4示出根据图3的消息通信系统的菜单分层结构的说明性图示。
图5示出使用按图1的编程环境用目录搜索菜单的导入生成的菜单分层结构的框图。
图6是通过使用图1的编程环境促进的菜单分层结构的示例性框图。
图7是根据本发明的一方面的通过语法引擎增强的呼叫会话的框图。
图8示出例示由图1的编程环境产生的可配置消息通信系统的示意性框图。
图9示出例示根据本发明的一个方面的示例性配置文件的框图。
图10示出根据本发明的一个方面的示例性统一消息通信系统的框图。
图11示出具有消息提示的本地化的示例性统一消息通信系统的框图。
图12示出例示根据本发明的一个方面的合适操作环境的示意性框图。
图13示出本发明可与其交互的示例计算环境的示意性框图。
发明详述
本发明涉及允许动态编程并执行电子通信对话以作为统一消息通信(UM)应用程序的一部分的系统和方法。具体而言,平台独立性的好处和人类对扩展标记语音(XML)的理解度由编程环境采用以产生由用户提示定义的菜单状态和根据用户响应的到另一菜单状态的转移的有限状态机(FSM)。编程环境使用XML特征来基于UM软件组件创建有效菜单状态。因此,可创建具有增加的复杂性的菜单。在一个方面中,对作为UM应用程序的上下文或设置的UM软件组件(UM服务对特定用户的可用性)而言,编程环境使用XML条件属性来调节UM FSM的提示、转移或语法节点。因此,可将高层判定引入菜单结构以取得定制的响应。在另一方面中,对XML摘录的UM软件组件而言,编程环境可利用XML导入元素来在编译时复制该XML摘录,以避免手动代码复制的耗时并易于出错的需求。在又一方面中,对诸如外部方法、函数、变量或动作等UM软件组件而言,编程环境利用函数包装XML工具来在构建时确认此类外部UM软件组件的存在并在执行时捕捉用于验证同一版本的可用性的版本信息。因此,保证了系统完整性。
在本申请中所使用的,术语“组件”、“文件”、“系统”、“对象”、“控制器”等旨在表示计算机相关的实体,它可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。还有,这些组件可以从具有其上存储的数据结构的各种计算机可读介质来执行。组件可通过本地和/或远程过程诸如按照具有一或多个数据分组(例如,来自一个通过信号与本地系统、分布式系统中的另一组件交互和/或跨网络诸如因特网的其它系统交互的组件的数据)的信号来通信。
在图1中,UM实现系统12的统一消息通信(UM)编程环境10方便了灵活的编程构建、现有程序元素的重用、以及由编程环境10产生并使用在UM执行机器16上的所产生的UM应用程序14的完整性的验证。
在说明性版本中,编辑器18产生可满足UM应用程序的快速改变的需要的UM菜单有限状态机(FSM)20。为减轻用于处理消息的硬编码特性和控制元素的负担,使用可扩展标记语言(XML)来创建FSM 20。XML是被归类为可扩展语言的通用标记语言,因为其允许其用户定义他们自己的标签。XML具体经由因特网方便了在不同信息系统上共享结构化数据。因此,其用途涵盖文档编码领域和数据串行化领域。
文档(或被称为应用的一组相关文档)形成会话UM有限状态机20。用户一次总在一个会话状态、或对话中。每一对话确定要转移到的下一对话。使用标识符来指定转移,标识符定义要使用的下一文档和对话。用户通过用户界面(未示出)与编辑器18交互以组装对话/状态,这被示为UM提示22、以及转移24。有利的是,用户可重用被示为UM XML定义文件26的XML摘录,因为编程环境10提供对XML子例程和文件包括的支持。例如,使用DTMF拼写要“寻找用户”的代码是相当复杂的菜单序列(例如,第一菜单要求拼写、第二菜单确认、另一菜单允许用户重新开始、另一菜单表示没有找到结果等)。此外,在多个位置中使用“寻找用户”的特征(例如,出于呼叫联系人的目的而查找他、寻找个人的地址以转发语音邮件、寻找个人的地址以转发会议请求等)。结果,存在为每一上下文正确地复制XML摘录的频繁需要。
为此,将在28被示出的被称为<FsmImport(Fsm导入)>的XML语言元素包括在状态机定义中。元素包括名称“FsmModule(Fsm模块)”并可任选地包括文件引用。在系统启动时,将FsmImport标签展开成其引用的模块。例如,以下标签将由文件‘Common(公共).fsm’中被称为“SearchMenus(搜索菜单)”的代码的XML块所替换。
<FsmImport file(Fsm导入文件)=”common.fsm”module(模块)=”SearchMenus’/>
图2是未从导入特征中获益的应用程序32的图示。考虑应用程序18允许向用户“转发”各种不同的交换项目。例如,可转发电子邮件消息、语音邮件消息、或日历项目。经由XML定义中的不同“菜单状态”表达所有这些选项,因为每一选项实际上在许多方面中彼此相当不同且需要独特的提示和转移。然而,在判断谁应该接收所转发的消息时,即使每个选项在这一点上不是完全相同的,它们也都非常类似。供转发的说明性对话可如下:
系统:“你想要将此转发给谁?”
用户:“汤姆”
系统:“我想你说的是约翰,对吗”
用户:“不,我说汤姆”
系统:“哦,好的。汤姆,对吧”
用户:“是的”
此类对话实际上可以是相当复杂的,需要以复杂方式交互的很多不同菜单。每一目录搜索菜单必须按如图2示出在每一转发结构中被复制,如电子邮件转发语句34,通过目录搜索菜单36到电子已被邮件转发语句38。语音转发语句40通过目录搜索菜单42的第一次复制到语音已被转发语句44。日历转发语句46通过目录搜索菜单48的第二次复制到日历已被转发语句50。
在图3中,图示例示如何使得用于在运行时“导入”子例程的机制避免复制此类XML摘录的需要。出现在XML配置文件中的FsmImport技术消费XML FsmModules(Fsm模块)。可因此将目录搜索菜单36的单个副本重用于将电子邮件转发语句34链接到电子邮件已被转发语句38、将语音邮件转发语句40链接到语音已被转发语句44、并将日历转发语句46链接到日历已被转发语句50以形成搜索菜单32′。可将搜索菜单32′的XML代码写为样本1:
1:<EmailManager(电子邮件管理器)>
2:   <Menu id(菜单id)=”EmailForwardStatement(电子邮件转发语句)”>
3:      <Prompts(提示)>
4:         <Prompt id(提示id)=”ForwardingEmail(转发电子邮件)”/>
5:      </Prompts>
6:      <Transitions(转移)>
7:         <Transition event(转移事件)=“1”refId(引用id)=”SearchMenuStart(搜索菜单开始)”/>
8:      </Transitions>
9:   </Menu(菜单)>
10:  <FsmImport file=”Search.fsm(搜索.fsm)”moduleId(模块id)=”CommonSearchMenus(公共搜索菜单)”/>
11:</EmailManager>
第十行告知消费XML定义的有限状态机引擎在名为Search.fsm的文件中查看并将这些菜单定义、内联导入到EmailManager上下文。这允许了具有ID EmailForwardStatement的菜单引用名为SearchMenuStart的菜单,否则SearchMenuStart将不出现在EmailManager上下文中,因为其仅在被引用的文件中。
编辑器18也能够利用添加到状态机菜单定义的条件属性60的XML元素来促进FSM 20的编程的额外复杂性和方便。考虑在图4中,菜单70仅包括由一组指令创建要向用户播放的四个状态(“提示”)和基于用户输入下一状态应该是什么(“转移”)。在说明性示例中,主菜单状态72告知用户为语音邮件而按下“1”、为电子邮件而按下“2”,或为日历而按下“3”。取决于用户按下的键(被示为用户在74按下“1”、在76按下“2”或在78按下“3”),对话移动到语音邮件子系统80、电子邮件子系统82或日历子系统84的相应状态。
使用XML来编码此信息可如以下的用于此特定菜单70的样本2中所示:
    <Menu id=”MainMenuState(主菜单状态)”>
      <Prompts>
         <Prompt id=”mainMenu(主菜单)”/>
         <Prompt id=”voicemailOption1(语音邮件选项1)”/>
         <Prompt id=”emailOption2(电子邮件选项2)”/>
         <Prompt id=”calendarOption3(日历选项3)”/>
      </Prompts>
      <Transitions>
         <Transition event=“1”refId=”VoicemailSubsystem(语音邮件子
系统)”/>
         <Transition event=“2”refId=”EmailSubsystem(电子邮件子系
统)”/>
         <Transition event=“3”refId=”CalendarSubsystem(日历子系
统)”/>
      </Transitions>
    </Menu>
应该理解,每一菜单状态72、80、82、84位于“上下文”中。主菜单状态72位于“全局管理器上下文”中,在“全局管理器上下文”中在存储器中存在存储与此特定菜单有关的某些信息的被称为GlobalManager(全局管理器)的对象。GlobalManager的代码的示例可如以下样本3中所述:
<GlobalManager>
   <Menu id=”MainMenuState”>
     <Prompts>
        <Prompt id=”mainMenu”/>
        <Prompt id=”voicemailOption1”/>
        <Prompt id=”emailOption2”/>
        <Prompt id=”calendarOption3”/>
     </Prompts>
     <Transitions>
        <Transition event=“1”refId=”VoicemailSubsystem”/>
        <Transition event=“2”refId=”EmailSubsystem”/>
        <Transition event=“3”refId=”CalendarSubsystem”/>
     </Transitions>
  </Menu>
</GlobalManager>
在图5中,UM菜单86有利地结合条件XML元素属性。假设,特征设计要求电子邮件选项仅在管理员指定了允许呼叫者访问它的标志时才播放。这可被认为是在主菜单72状态开始前引入了被示为电子邮件启用条件88的顶层判断。如果在来自条件88的转移90处存在“是”标志,则主状态72如前所述地实现。然而,如果“否”标志存在于来自条件88的转移92,则进入缩短的主菜单状态94。提示用户为语音邮件输入“1”或为日历输入“3”,这分别导致在96为“1”转到到语音邮件子系统状态80和在98为“3”转移到日历子系统状态84。如果在100处位于“2”的转移中,则进入“错误!选项不可用”的状态102。因此,条件88避免了更麻烦并易于出错的菜单结构。
编码UM菜单86可如样本4中达成:
    <GlobalManager>
      <Menu id==”MainMenuStateWithEmailOption(具有电子邮件选项的
主菜单状态)”>
        <Prompts>
          <Prompt id=“mainMenu”/>
          <Prompt id=”voicemailOption1”/>
          <Prompt id=”emailOption2”/>
          <Prompt id=”calendarOption3”/>
       </Prompts>
       <Transitions>
          <Transition event=”1”refId=”VoicemailState(语音邮件状
态)”/>
          <Transition event=”2”refId=”EmailState(电子邮件状态)”/>
          <Transition event=”3”refId=”CalendarState(日历状态)”/>
       </Transitions>
    </Menu>
    <Menu id==”MainMenuStateWithoutEmailOption(不具有电子邮件选
项的主菜单状态)”>
         <Prompts>
            <Prompt id=“mainMenu”>
            <Prompt id=”voicemailOption1”/>
            <Prompt id=”calendarOption3”/>
         </Prompts>
         <Transitions>
            <Transition event=”1”refId=”VoicemailState”/>
            <Transition event=”3”refId=”CalendarState”/>
         </Transitions>
      </Menu>
    </GlobalManager>
为扩展此示例,考虑如果管理员还选择有条件地禁用日历访问会发生什么。常规上,将需要四个菜单,如:MainMenuAllOptions(主菜单全部选项)、MainMenuNoEmail(主菜单无电子邮件)、MainMenuNoCalendar(主菜单无日历)、以及MainMenuNoEmailNoCalendar(主菜单无电子邮件无日历)。
相反,条件的使用通过向XML定义提供允许有条件地应用提示和转移的扩展来产生更优雅的方法,如样本5中所示:
    <Menu id==”MainMenuStateWithEmailOption”>
         <Prompts>
            <Prompt id=“mainMenu”>
            <Prompt id=”voicemailOption1”/>
            <Prompt condition(提示条件)”IsEmailEnabled(电子邮件是
否启用)”id=”emailOption2”/>
            <Prompt id=”calendarOption3”/>
         </Prompts>
         <Transitions>
            <Transition event=”1”refId=”VoicemailState”/>
            <Transition condition(转移条件)”IsEmailEnabled”event=”2”
refId=”EmailState”/>
            <Transition event=”3”refId=”CalendarState”/>
         </Transitions>
    </Menu>
变量名称“电子邮件是否启用”是位于全局管理器上下文中的布尔值(真/假)。在运行时,XML状态机引擎将查看XML并基于其条件属性运行时值来决定各元素应该是否是“活跃的”。
条件属性语言是相当稳健的,支持逻辑运算符AND(与)、OR(或)、NOT(非)、GT(大于)、LT(小于)等来组合上下文变量。例如,可用如条件=“IsEmailEnabled AND IsVoicemailEnabled(语音邮件是否被禁用)”等来标记提示。将使用简单替换简化解析器将此表达式解析成解析树并在运行时评估它。
条件属性不仅应用于提示和转移,还应用于语法节点。所以,应使某希命令语法在语音菜单的迭代期间有条件地活跃。在共同拥有并待批准的美国专利申请号11/238,521,公开号2007/0073544 A1中描述了自动语音识别(ASR)的一般概念,其公开通过引用被整体包括在此。在图1中的110处示出的ASR的使用因此由容易地将此小型状态机导入到语音菜单的每一合适部分以及更容易地使用条件来构建的能力来增强。
在图6的与ASR 110交互的示例中,在进入主状态112时,期待来自用户的某一语音响应。ASR 110的此部分示出何时不能获取有意义的响应。在沉默1状态114中,如果用户沉默则提示播放(例如,“抱歉,我听不见你。”)。如果接着发生沉默2状态116,则如果用户连续二次沉默则提示播放(例如,“抱歉,我仍然听不见你。”)。如果用户在沉默1状态114之后作出咕哝,则在咕哝状态118中提示播放(例如,“抱歉,我不明白。”)。如果用户在主状态112之后而不是沉默之后作出咕哝,则启动另一咕哝1状态120。如果这之后是沉默,则调用沉默1状态122。如果相反,之后是另一咕哝,则咕哝2状态124使得如果用户连续两次沉默则提示播放(例如,“抱歉,我仍然不理解你说什么。以下是你可以说的…”)。随后帮助状态126给出用于此菜单的帮助提示。或者,来自用户的响应可被理解但对此菜单不合适,使得无效命令状态128给出提示(例如,“我们理解用户说的东西,但他们所说的不是当前的有效选项”、“抱歉,我不能取消此会议,因为你不是组织者”、重复用户最后说的话)。在过多失败的尝试之后(例如,三次沉默或咕哝),随后语音错误状态130向用户通知此失败并采取恢复动作(例如,“抱歉我不能帮助你。返回至主菜单”)。
在图7中,如果从用户处获取了有意义的响应而不是咕哝或沉默,则由导入和条件增强的另一方面是如何将用户的语音传送到状态机层并在菜单层消费用户的语音。例如,存在说“是”的许多方法。可以说“是啊、是的、嗯、是先生、好的、当然”,它们都在语义上等同于“是”并在132、134、136处示出。通过采用“SML”语义标记语言,语法引擎138中的命令语法定义被传送到状态机的“语义事件”的值,被示为以谈话A 142响应于识别为是而以谈话B 144响应于识别为否的是/否菜单140。该菜单甚至从来都不知道用户实际说什么。
回到图1,在具有导入和条件特征的优点的情况下,产生了UM FSM20,其包括ASR 110、XML代码146、媒体文件148、类定义150和资源文件152。尽管使用XML编码具有多个优点,但是经常有丢失变量或引用文件的情况。在产生UM应用程序14的过程中将在相当后面才会检测到这样的疏忽。因此,动作/变量包装工具156是C#编译阶段的一部分,被示为构建时编译器158。包装工具156消费状态机XML文件并生成被示为UM构建时二进制160的包装,其引用在现有C#(代码)定义161中为其相关联的管理器定义的方法和函数。例如,给定具有返回串的被称为NextMessage(下一消息)的方法的名为EmailManager(电子邮件管理器)的类,用于此方法的说明性包装可如以下样本6中所示:
1         string NextMessage(EmailManager m)
2         {
3                            return m.NextMessage();
4         }
因为行1的“string NextMessage”和行3的“NextMessage”部分在XML定义文件中被声明并用于生成以上包装,所以包装的行3确保在一般编译阶段期间类EmailManager实际上具有被称为NextMessage的方法。此外,包装的行3确保方法NextMessage返回串。如果没有满足这两个检查,则包装导致编译错误发生。
因此,包装工具156的使用确保XML定义文件不能引用实际上不存在于也被编译的代码161中的方法或变量,且确保这些方法和变量具有正确的类型(例如,布尔)。如果XML定义文件将引用不存在的方法或变量,则包装工具156生成这些包装并随后在“编译”阶段生成构建中断。一旦成功编译,即产生构建时UM二进制160以供从编程环境10与UM定义文件162一起导出。
例如,如果EmailManager类包含被称为NextMessage的方法且XML定义将其标识为被称为NextMessageItem(下一消息项目),且工具具有被适当生成的代码包装,则C#编译阶段将产生构建中断。随后,将生成诸如“错误:类EmailManager不包含NextMessageItem的定义”等编译时错误。此类实现的示例如样本7给出:
  //
  //
  //
  internal class EmailManager
  {
       ?internal static void
GetScope(取得范围)(Microsoft.Exchange.UM.UMCore(UM核
心).ActivityManager(活动管理器)manager(管理器),out
Microsoft.Exchange.UM.UMCore.EmailManager scope(范围))?
           {
              scope           =             manager    as
Microsoft.Exchange.UM.UMCore.EmailManager;
              while(null(空)==scope)
              {
                 if(null==manager.Manager)
                 {
                    throw new FsmConfigurationException(FSM配置异
常)(String.Empty)
                 }
                 else
                 {
                    manager=manager.Manager;
                    scope          =           manager         as
Microsoft.Exchange.UM.UMCore.EmailManager;
                 }
              }
           }
       //
       //动作代理
       //
       //
       //
       ?internal static TransitionBase(转移基础)
NextMessage(下一消息)
(Microsoft.Exchange.UM.UMCore.ActivityManager manager,string
actionName(动作名称),BaseUMCallSession(基础UM调用会话)vo)?
         {
            Microsoft.Exchange.UM.UMCore.EmailManager scope=
manager as Microsoft.Exchange.UM.UMCore.EmailManager;
            if(null==scope)
            {
               GetScope(manager,out scope);
            }
            return manager.GetTransition(scope.NextMessage(vo));
         }
  //
         //变量代理
         //
         //
         //
         internal static System.Boolean
    IsSentImportant(发送是否重要)
(Microsoft.Exchange.UM.UMCore.ActivityManager manager,string
variableName(变量名称))
          {
             Microsoft.Exchange.UM.UMCore.EmailManager scope=
manager as Microsoft.Exchange.UM.UMCore.EmailManager;
             if(null==scope)
             {
                GetScope(manager,out scope);
             }
             return scope.IsSentImportant;
           }
验证的第二部分在UM应用程序14被安装并运行于UM执行机器16上时发生。在UM应用程序14启动时,其读取XML配置文件162。在UM应用程序14例如在EmailManager中遇到的调用EmailManager类上的某些方法的XML定义时,由微软.Net平台提供的.NET反射164在UM二进制160中寻找所生成的包装。.Net反射164允许以C#编写的程序检查以C#编写的另一程序的程序结构。例如,程序可审核另一程序的二进制内容并枚举其所有的函数以及它们的名称。如果此包装不存在,则XML文件不是在运行时用于生成该包装的那一个且给出版本不匹配错误。否则,如166处所示,允许运行有效的XML和二进制。
.Net反射的使用补充了由包装工具156在包装和编译阶段期间启用的验证。在两种情况下,对样本6的包装代码的示例而言,检查FSM定义以确定被称为EmailManager的类具有被称为NextMessage的方法。在构建时进行的包装阶段中,生成此验证代码。在运行时进行的反射阶段中,.Net反射164确保包装函数实际存在于UM二进制160中。可因此防止使用不正确或损坏的版本的尝试。
在图8中,可配置消息通信系统200可由编程环境10产生。系统200包括与一个或多个用户和/或自动应用程序220交互以方便各种通信应用程序的处理的消息通信组件210。消息通信组件210可与诸如统一消息通信应用程序、语音邮件处理、或基本上任何类型的语音识别应用程序等各种应用程序相关联。通常,与消息通信组件210的交互是通过双音多频(DTMF)输入的,但诸如语音或文本输入等其它类型的输入也可工作。
一般而言,配置文件230存储驱动与用户或应用程序220的接口对话会话240的指令或命令的组。此类指令或命令可使得对话会话240生成并处理例如共同控制与用户或应用程序220的交互的菜单的一个或多个项目。例如,第一项目可涉及标识会话的问候,第二项目可要求密码输入,而第三项目可请求将语音邮件消息记录在与消息通信组件210相关联的文件中。如以下将更详细地描述的,配置文件可指定控制对话会话240以及最终消息通信组件如何与用户或应用程序220交互的活动、提示、或转移。
配置文件230通常指定例如要在对话会话240中完成什么活动以及在给定活动完成或中止之后要转移到哪个状态。这些状态由指示消息处理组件260(或诸如服务等组件)在系统200中执行某些动作(例如,记录语音邮件、回放消息、检查用户输入等)的状态控制器250管理。配置文件230允许管理员为多个不同的通信应用程序动态地适配消息通信组件210的功能。这通过以可扩展标记语言(XML)或协作控制消息通信组件210的状态的其它类型的语言指定对话交互或命令来达成。在此情况下,配置文件230内的指令从状态控制器250中移除硬编码的状态实现并允许管理员在不必在作出改变之后也修改状态控制器的情况下适应于改变的情况。
因为到其它状态的转移被包含在配置文件230内,所以可在粒度级上为给定对话会话240动态地指定对话控制(例如,将转移指定为文件内的组而不转移到外部文档),同时减少与其它计算机/组件的交互以确定系统200的合适状态或动作。因此,本发明方便了在XML文件(或其它类型)中为对话会话240配置菜单及其转移而不是在状态控制器250中对这些方面进行硬编码。此特征方便了可扩展性,其中可在没有对消息通信组件210的改变的情况下添加新菜单和转移。同样,配置文件230减少了应用程序开发时间并允许管理员和最终用户可能能够通过其添加新菜单并改变现有菜单转移以适应其需要的定制。其它方面包括通过仅修改一个或多个配置文件230同时消息通信系统200的底层应用程序实现可保持不变来以其它语言(例如,德语、法语、英语等)添加提示、菜单和转移的语言支持。在共同拥有并待批准的美国专利申请号11/068,691,公开号2007/0055751A1中描述了示例性配置文件的其它方面,其公开通过引用被整体包括在此。
现在参考图9,示出了根据本发明的一方面的示例性配置文件270。一般而言,配置文件270包括被安排在280处示出的一个或多个对话命令组(例如,组101、102、103等)中的活动元素、提示元素、以及转移元素,其中此类组指定用户界面或菜单与通信或消息通信系统交互的操作。例如,在XML配置文件中描述用于统一消息通信示例的电话用户界面(TUI)。具有“id”属性的元素描述活动。例如,菜单、记录等是活动的示例。提示元素表示要向最终用户播放的提示,而转移元素描述要执行的下一活动和要在转移之前采取的动作。
通常,对话应用程序的一个可能的实现包括每一状态被映射到配置文件270中的活动的状态机。例如,可将状态转移映射到XML中的转移元素。动作属性表示要在状态转移前一刻执行的动作。同样,在此模型中还支持子状态机转移。例如,Record Voicemail(记录语音邮件)可以是具有包括菜单和记录的许多子活动的父活动。例如,统一消息通信应用程序接收到来自最终用户的呼叫,可采用关于该调用的XML配置(预先载入存储器中)且整个活动状态机为此呼叫执行。此加载配置的按呼叫的粒度为管理员和最终用户扩展、定制以及支持其它语言给出了巨大灵活性。
转到图10,根据本发明的一方面示出了示例统一消息通信系统300。在此示例中,系统300示出统一消息通信系统300如何在PBX 310和会话发起协议(SIP)网关320的上下文中协作。网关320可使用SIP协议通过IP网络340将呼叫330(有线或无线)路由到统一消息通信系统300。这允许统一消息通信系统300不与PBX 310同在一处。其它组件可包括用于存储消息的邮箱服务器350和管理消息的活跃目录360。如所述地,统一消息通信系统300可包括处理传入呼叫330的诸如文本到语音(TTS)和语音识别引擎370等组件,尽管还可提供诸如DTMF控件等其它类型的组件。应该理解,在具有本发明的优点的情况下,可提供加载并执行配置文件以创建与生成呼叫330的用户(或应用程序)交互的接口会话的统一消息通信服务或服务(未示出)。这可包括管理系统300的状态操作的各种对象和类的操作。
在图11中,如其公开通过引用被整体包括在此的共同拥有并待批准的美国专利申请号11/238,521,公开号2007/0073544 A1中所述,图1的编程环境10有利地支持并增强消息提示的本地化。系统400具有计算机402、计算机可执行代码404、类定义表406、资源文件408、以及本地化媒体文件410。计算机402执行指定用于呈现提示的方法(例如,播放表示口语提示的音频文件)的代码404。系统400有利地允许在不影响对代码404的任何修改的情况下将资源串和媒体文件分开并单独地修改或翻译成本地化语音。此显著的优点允许代码404由程序员编写一次以在多种不同的本地化语言中使用。一旦以特定语言(例如,英语)创建了代码404和资源串,翻译器可审阅资源串并提供该资源串的本地化翻译(例如,法语)。随后将翻译保存在用于法语的本地化资源文件中。同样地,翻译器可使用本地化语言(例如,法语)记录资源串和资源串片断的口语媒体剪辑并将这些记录保存为在播放由代码404调出的本地化媒体剪辑时由计算机402访问的本地化媒体文件。
例如,代码404基于分配到KEY变量的值来指定创建分配到变量名称的名称(例如,“消息”)。计算机402访问类定义表406以标识对应于KEY变量的值的语法变量(例如,“_复数”)。代码404创建新名称(例如,“消息_复数”)、将新名称分配到变量名称、并指示计算机402标识对应于该变量名称(即,“消息_复数”)的媒体文件。计算机402访问资源文件408并定位对应于变量名称的资源串。计算机402分析资源串并确定对应于该资源串的媒体文件以及资源串中的媒体文件的次序。计算机402访问对应于来自本地化媒体文件410的资源串的媒体文件。代码404随后指示计算机402以在资源串中标识的语法上正确的次序来呈现本地化媒体文件。
在一版本中,类定义表406包含可以是前缀、后缀、或其组合的语法变量。随后将语法变量追加到被分配到变量名称的名称以使其对应于与KEY的数值相关联的语法上正确的资源串资源文件。例如,如果KEY的值是“1”,则相关联的资源串将是对单数值语法上正确的串(例如,“Youhave 4 new message(你有4条新消息)”)。例如,如果KEY的值是“5”,则相关联的资源串将是对复数值语法上正确的串(例如,“You have 5 newmessages(你有5条新消息)”)。例如,如果KEY的值是“0”,则相关联的资源串将是对零或空值语法上正确的串(例如,“You have no newmessages(你没有新消息)”)。
在另一版本中,位于资源文件408中的资源串与代码404分开且可在不需要修改或重新编译代码404的情况下由本地语言翻译器翻译成非英语语言。在翻译期间,可将资源串和数值翻译成本地语言且可为翻译后的语言以语法上正确的次序重新安排资源串和数值。例如,用于英语资源串的语法上正确的次序和时态,“You have(你有)”{0}“new messages(新消息)”包含两个文本片断“You have”和“new messages”,其中在此示例中“{0}”是复数值。然而,如果将资源翻译成法语,则语法上正确的次序和时态可以是{0}“nouveau messages sont arrives”,其中数值位于表示接收到了两个或更多消息的句子的开始处。
在又一版本中,媒体文件包括资源串和对应于资源串的资源串片断的本地化记录。媒体文件还可以在不需要修改或重新编译代码404的情况下由代码404记录并利用。
因此,应该理解,在具有之前公开的便利的情况下,各方面可包括仅DTMF的UM应用程序、仅ASR的UM应用程序、或混合DTMF/ASR UM应用程序。
参考图12,用于实现本发明的各方面的示例性环境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)以及直接存储器总线(Rambus)RAM(DRRAM)。
计算机912还包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图12示出了盘存储924。盘存储924包括但不限于诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡、或者记忆棒之类的设备。此外,盘存储924可以包括独立的或者与其它存储介质结合的存储介质,其它存储介质包括但不限于诸如紧致盘ROM设备(CD-ROM)、可记录CD驱动器(CD-R驱动器)、可重写CD驱动器(CD-RW驱动器)或者数字多功能盘ROM驱动器(DVD-ROM)这样的光盘驱动器。为了便于将盘存储设备924连接到系统总线918,通常使用诸如接口926等可移动或不可移动接口。
可以理解,图12描述了用户与在合适的操作环境910中描述的基本计算机资源之间担当中介的软件。这样的软件包括操作系统928。可被存储在盘存储924上的操作系统928用于控制并分配计算机系统912的资源。系统应用程序930通过存储在系统存储器916或盘存储924上的程序模块932和程序数据934来利用操作系统928对资源的管理。应该明白,本发明可用各种操作系统或操作系统的组合来实现。
用户通过输入设备936将命令或信息输入到计算机912中。输入设备936包括但不限于诸如鼠标、跟踪球、指示笔、触摸垫等定点设备、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、网络摄像头等等。这些以及其它输入设备通过系统总线918经由接口端口938连接至处理单元914。接口端口938包括,例如串行端口、并行端口、游戏端口、以及通用串行总线(USB)。输出设备940利用与输入设备936相同类型的某些端口。因此,例如,USB端口可以用来向计算机912提供输入,以及将来自计算机912的信息输出到输出设备940。输出适配器942是用来举例说明除了其它输出设备940之外还有些象监视器、扬声器、以及打印机这样的输出设备940需要专用适配器。输出适配器942包括,作为说明而非限制,提供输出设备940和系统总线918之间的连接手段的显卡和声卡。应该注意到,其它设备和/或设备系统提供了输入和输出能力,诸如远程计算机944。
计算机912可以使用至诸如远程计算机944等一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或者其它常见的网络节点等,且通常包括相对于计算机912所描述的多个或者全部元件。为了简明起见,对远程计算机946仅示出了存储器存储设备944。远程计算机944经由网络接口948被逻辑地连接到计算机912,然后经由通信连接950物理地连接。网络接口948涵盖诸如局域网(LAN)和广域网(WAN)这样的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(CDDI)、以太网/IEEE 802.3、令牌环/IEEE 802.5等。WAN技术包括但不限于,点对点链路、诸如综合业务数字网(ISDN)及其各种变体等电路交换网、分组交换网、以及数字用户线(DSL)。
通信连接950指的是用于将网络接口948连接到总线918的硬件/软件。虽然为了清楚地举例说明,通信连接950被示为在计算机912的内部,但其也可以在计算机912的外部。仅出于示例的目的,连接到网络接口948所需要的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、电缆调制解调器以及DSL调制解调器等调制解调器,ISDN适配器,和以太网卡。
图13是本发明可与其交互的示例计算环境1000的示意框图。系统1000包括一个或多个客户机1010。客户机1010可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1000还包括一个或多个服务器1030。服务器1030也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器1030可容纳线程,以例如通过使用本发明执行变换。在客户端1010和服务器1030之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。系统1000包括可以用来使客户机1010和服务器1030之间通信更容易的通信框架1050。客户机1010可在操作上连接到一个或多个可以用来存储对客户机1010本地的信息的客户机数据存储1060。同样地,服务器1030可在操作上连接到一个或多个可以用来存储对服务器1030本地的信息的服务器数据存储1040。
以上所描述的包括本发明的示例。当然,不可能为了描述本发明而描述组件或方法的每一可想到的组合,但是本领域的普通技术人员可以认识到,本发明的许多其它组合和置换都是可能的。因此,本发明旨在涵盖所有这些落入所附权利要求书的精神和范围内的改变、修改和变动。此外,就在说明书或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡此时所解释的相似的方式为包含性的。
应该理解,被称为通过引用包含的整体或部分的任何专利、公开、或其它公开材料仅被包含在此到所包含的材料不与在本公开中阐述的现有定义、声明、或其它公开材料冲突的程度。如此,在必要的程度上,如此处所显示阐述的公开取代通过参考被包含在此处的任何冲突材料。被称为通过参考被包含在此处但与此处所阐述的现有定义、声明、或其它公开材料冲突的任何材料,或其中的部分将仅在没有冲突在被包含的材料与现有公开材料之间产生的程度上被包含。

Claims (14)

1.一种用于编程统一消息通信(UM)应用程序的计算机实现的系统(12、200、300、400、1000),所述系统包括:
用户界面(936、940);
经由所述用户界面(936、940)访问的用于使用可扩展标记语言(XML)构成UM有限状态机(FSM)(20)的编程环境(10、910),所述UM有限状态机(FSM)(20)包括由多个用户提示和用户提示之间的转移定义的菜单状态,每一转移由对提示的特定用户响应定义;
UM软件组件;以及
由所述编程环境(10、910)利用来基于所述UM软件组件创建有效菜单状态的XML特征。
2.如权利要求1所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述UM软件组件包括UM应用程序的设置(14),所述XML特征包括预先确定所述UM FSM(20)的转移的条件属性。
3.如权利要求2所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述条件属性包括由上下文变量构成的属性。
4.如权利要求3所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述条件元素包括由适于解析成解析树的至少一个逻辑运算符所组合的多个上下文变量所构成的属性。
5.如权利要求2所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述UM软件组件包括语法节点,所述XML特征包括使得命令语法选择性活跃的条件元素属性。
6.如权利要求1所述的计算机实现的系统(12、200、300、400、1000),其特征在于,其特征在于,所述UM软件组件包括XML摘要,所述XML特征包括由所述编程环境(10、910)利用来在编译时复制所述XML摘要的导入元素。
7.如权利要求6所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述XML摘要包括定义响应于非响应性用户发言的提示和转移的语音菜单。
8.如权利要求7所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述非响应性用户发言是从包括沉默、咕哝、以及在当前上下文中不适用的词的组中选择的一个或多个响应。
9.如权利要求1所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述UM软件组件包括由UM FSM(20)调用的外部组成部分,所述XML特征包括验证所述外部组成部分的函数包装。
10.如权利要求9所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述外部组成部分是包括方法、函数、变量和动作的组中的一个。
11.如权利要求9所述的计算机实现的系统(12、200、300、400、1000),其特征在于,所述函数包装确认所述外部组成部分在构建时造成在编译期间不存在的错误。
12.如权利要求9所述的计算机实现的系统(12、200、300、400、1000),其特征在于,还包括在执行UM FSM(20)时调用的验证工具(156),所述验证工具(156)比较在构建时存在的外部组成部分的版本与可用于执行的外部组成部分的版本相同。
13.如权利要求1所述的计算机实现的系统(12、200、300、400、1000),其特征在于,还包括用于将语义事件定义为语义上与用户提示等同的多个用户响应之一的自动语音识别菜单,所述转移取决于具体的语义事件。
14.如权利要求1所述的计算机实现的系统(12、200、300、400、1000),其特征在于,还包括拨号音多频(DTMF)接(210、370),所述拨号音多频(DTMF)接(210、370)将语义事件定义为DTMF键区输入(210、370)。
CN200880109277.0A 2007-09-24 2008-09-17 统一消息通信状态机 Active CN101809609B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/860,028 2007-09-24
US11/860,028 US8074199B2 (en) 2007-09-24 2007-09-24 Unified messaging state machine
PCT/US2008/076588 WO2009042456A1 (en) 2007-09-24 2008-09-17 Unified messaging state machine

Publications (2)

Publication Number Publication Date
CN101809609A true CN101809609A (zh) 2010-08-18
CN101809609B CN101809609B (zh) 2015-04-22

Family

ID=40473079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880109277.0A Active CN101809609B (zh) 2007-09-24 2008-09-17 统一消息通信状态机

Country Status (8)

Country Link
US (1) US8074199B2 (zh)
EP (1) EP2193492A4 (zh)
JP (1) JP5228053B2 (zh)
KR (1) KR101560600B1 (zh)
CN (1) CN101809609B (zh)
BR (1) BRPI0815183A2 (zh)
RU (1) RU2470364C2 (zh)
WO (1) WO2009042456A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133684A (zh) * 2014-08-04 2014-11-05 浪潮通用软件有限公司 一种基于状态机的用户图形界面状态控制方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024173B1 (en) 2006-09-11 2011-09-20 WordRake Holdings, LLC Computer processes for detecting and correcting writing problems associated with nominalizations
US8392882B2 (en) * 2006-11-30 2013-03-05 Caterpillar Inc. Engine state-based control of software functions
US20090147932A1 (en) * 2007-09-19 2009-06-11 Genesis Financial Solutions, Inc. Enhanced programming model and controller for ivr
US8286131B2 (en) * 2008-03-24 2012-10-09 Oracle International Corporation Environment definition files for an environment definition system
US8137201B2 (en) * 2009-01-09 2012-03-20 Microsoft Corporation Arrangement for building and operating human-computation and other games
US20130263014A1 (en) * 2010-10-14 2013-10-03 Ori Chalak Method and system for sending an interactive message
US9821230B2 (en) 2011-11-08 2017-11-21 Zynga Inc. Data-driven state machine for user interactive displays
US9463386B1 (en) 2011-11-08 2016-10-11 Zynga Inc. State machine scripting in computer-implemented games
US8914451B2 (en) * 2012-02-17 2014-12-16 Blackberry Limited Electronic device configured with messaging composition interface
US9426238B2 (en) * 2012-12-05 2016-08-23 Oracle International Corporation System and method for providing simplified programming constructs for user activities in a telecommunications application
US9274909B2 (en) 2013-08-23 2016-03-01 Scaleo Chip Method and apparatus for error management of an integrated circuit system
US9953646B2 (en) 2014-09-02 2018-04-24 Belleau Technologies Method and system for dynamic speech recognition and tracking of prewritten script
US10360287B2 (en) * 2015-05-22 2019-07-23 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing user callouts
US20160344677A1 (en) * 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US10248396B1 (en) * 2017-09-18 2019-04-02 Amazon Technologies, Inc. Code review with automated translation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030002634A1 (en) * 2001-06-29 2003-01-02 Virad Gupta Event notification in a unified message system using an event notification server
US20030018700A1 (en) * 2001-03-26 2003-01-23 Giroti Sudhir K. Unified XML voice and data media converging switch and application delivery system
US20050114534A1 (en) * 2003-11-25 2005-05-26 Aaron Lee Apparatus, method and system for providing automated services to heterogenous devices across multiple platforms
CN1828528A (zh) * 2005-02-28 2006-09-06 微软公司 统一消息通信状态改变的动态配置
CN1838694A (zh) * 2005-03-22 2006-09-27 微软公司 可选择状态机用户接口系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425119B1 (en) * 1996-10-09 2002-07-23 At&T Corp Method to produce application oriented languages
WO2000018100A2 (en) 1998-09-24 2000-03-30 Crossmedia Networks Corporation Interactive voice dialog application platform and methods for using the same
US6766298B1 (en) * 1999-09-03 2004-07-20 Cisco Technology, Inc. Application server configured for dynamically generating web pages for voice enabled web applications
US6990514B1 (en) * 1999-09-03 2006-01-24 Cisco Technology, Inc. Unified messaging system using web based application server for management of messages using standardized servers
AU2001263138A1 (en) 2000-05-15 2001-11-26 Infoactiv, Inc. Automated voice-based dialogue with a voice mail system by imitation of the human voice
AU2001294555A1 (en) * 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
US20040030554A1 (en) 2002-01-09 2004-02-12 Samya Boxberger-Oberoi System and method for providing locale-specific interpretation of text data
CA2475869C (en) 2002-02-11 2011-02-01 Unified Dispatch, Inc. Automated transportation call-taking system
US7197460B1 (en) 2002-04-23 2007-03-27 At&T Corp. System for handling frequently asked questions in a natural language dialog service
US7290215B2 (en) * 2002-06-03 2007-10-30 Microsoft Corporation Dynamic wizard interface system and method
US7260535B2 (en) * 2003-04-28 2007-08-21 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting for call controls
US7200559B2 (en) * 2003-05-29 2007-04-03 Microsoft Corporation Semantic object synchronous understanding implemented with speech application language tags
US7454469B2 (en) * 2003-12-22 2008-11-18 International Business Machines Corporation Method and system for instant messaging Bots specification using state transition methodology and XML
US7551727B2 (en) 2004-10-20 2009-06-23 Microsoft Corporation Unified messaging architecture
US7409344B2 (en) 2005-03-08 2008-08-05 Sap Aktiengesellschaft XML based architecture for controlling user interfaces with contextual voice commands
US7561953B2 (en) * 2005-03-14 2009-07-14 Robert Bosch Gmbh Method and system of controlling a vehicle in the presence of a disturbance
US7587415B2 (en) * 2005-03-14 2009-09-08 Microsoft Corporation Single-pass translation of flat-file documents into XML format including validation, ambiguity resolution, and acknowledgement generation
US7640533B1 (en) * 2005-03-30 2009-12-29 Emc Corporation System and methods for defining a software build
US8090584B2 (en) * 2005-06-16 2012-01-03 Nuance Communications, Inc. Modifying a grammar of a hierarchical multimodal menu in dependence upon speech command frequency
US7899160B2 (en) * 2005-08-24 2011-03-01 Verizon Business Global Llc Method and system for providing configurable application processing in support of dynamic human interaction flow
US7672852B2 (en) 2005-09-29 2010-03-02 Microsoft Corporation Localization of prompts
US8495578B2 (en) * 2005-12-19 2013-07-23 International Business Machines Corporation Integrated software development system, method for validation, computer arrangement and computer program product
US7912592B2 (en) * 2006-06-09 2011-03-22 Garmin International, Inc. Automatic speech recognition system and method for aircraft
US20080109292A1 (en) * 2006-11-03 2008-05-08 Sap Ag Voice-enabled workflow item interface
US7801728B2 (en) * 2007-02-26 2010-09-21 Nuance Communications, Inc. Document session replay for multimodal applications
US8464228B2 (en) * 2007-08-23 2013-06-11 Accenture Global Services Limited Binary library

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018700A1 (en) * 2001-03-26 2003-01-23 Giroti Sudhir K. Unified XML voice and data media converging switch and application delivery system
US20030002634A1 (en) * 2001-06-29 2003-01-02 Virad Gupta Event notification in a unified message system using an event notification server
US20050114534A1 (en) * 2003-11-25 2005-05-26 Aaron Lee Apparatus, method and system for providing automated services to heterogenous devices across multiple platforms
CN1828528A (zh) * 2005-02-28 2006-09-06 微软公司 统一消息通信状态改变的动态配置
CN1838694A (zh) * 2005-03-22 2006-09-27 微软公司 可选择状态机用户接口系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133684A (zh) * 2014-08-04 2014-11-05 浪潮通用软件有限公司 一种基于状态机的用户图形界面状态控制方法

Also Published As

Publication number Publication date
CN101809609B (zh) 2015-04-22
EP2193492A1 (en) 2010-06-09
US20090083709A1 (en) 2009-03-26
JP2010541387A (ja) 2010-12-24
KR101560600B1 (ko) 2015-10-16
US8074199B2 (en) 2011-12-06
EP2193492A4 (en) 2012-03-28
JP5228053B2 (ja) 2013-07-03
WO2009042456A1 (en) 2009-04-02
RU2010111118A (ru) 2011-09-27
RU2470364C2 (ru) 2012-12-20
BRPI0815183A2 (pt) 2015-03-31
KR20100059878A (ko) 2010-06-04

Similar Documents

Publication Publication Date Title
CN101809609A (zh) 统一消息通信状态机
JP4950447B2 (ja) ワークフロースケジュールのオーサリングツール
US6445782B1 (en) Service management system for use in communications
US7398215B2 (en) Prompt language translation for a telecommunications system
US9247054B2 (en) Systems and methods for generating and testing interactive voice response applications
US7593980B2 (en) Application server system and method
US20080126486A1 (en) Personal messaging application programming interface for integrating an application with groupware systems
US20110179398A1 (en) Systems and methods for per-action compiling in contact handling systems
US8463852B2 (en) Groupware portlets for integrating a portal with groupware systems
US20140229868A1 (en) Multi-modal/multi-channel application tool architecture
US8638906B1 (en) Automated application testing
CN101729694A (zh) 一种自动业务实现流程配置及运行的方法及系统
CN101138228A (zh) 个性化语音扩展标记语言应用
CN1828528B (zh) 统一消息通信状态改变的动态配置
US20110179304A1 (en) Systems and methods for multi-tenancy in contact handling systems
Cisco Release Notes for uOne 4.2(5)s
Cisco Release Notes for uOne 4.2(5)s (Revision 2)
Cisco Release Notes for Cisco Unity Release 2.4(6.126)ML
EP0940047B1 (en) A service management system for use in communications
Cisco Chapter 1 -- Overview
US20060140357A1 (en) Graphical tool for creating a call routing application
WO1998023098A9 (en) A service management system for use in communications
CN116954739A (zh) Rpa系统的版本兼容方法、装置、电子设备和存储介质
CN115550342A (zh) 基于微服务的文件迁移方法及相关设备
de Oliveira Sismeiro Bot Federation Skill Delegation Feature for Wit Bot Engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150729

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160726

Address after: Grand Cayman, Georgetown, Cayman Islands

Patentee after: IValley Holding Co., Ltd.

Address before: Washington State

Patentee before: Micro soft technique license Co., Ltd