用于将发起呼叫所用的服务器从结果通信路径移除的路径替换的制作方法

文档序号:7939677阅读:202来源:国知局
专利名称:用于将发起呼叫所用的服务器从结果通信路径移除的路径替换的制作方法
技术领域
本发明总的涉及通信会话。更具体地,本发明涉及用于使用计算装置来建立通信
会话的系统和方法。
背景技术
已经进行了多种努力以使计算装置的终端用户可以从他们的计算装置建立通信 会话。 一些这种努力主要关注用web服务器定位web页面中的电话号码并将拨号应用程序 和所定位的电话号码连接。典型地,这些服务(例如,Vonage类的服务)要求服务提供特 定的软件应用程序来完成呼叫。可从任何应用程序进行通信会话会是有益的。

发明内容
—方面,描述并且示出从用户交换机释放通信设备以在网络的两个终端之间通过 用户交换机建立通信会话的方法。在一个实施例中,该方法可以包括向用户交换机发出路 径替换命令,从用户交换机接收发往通信会话的一个终端的设备消息,并且将所接收的设 备消息发送到通信会话的另一个终端。 另一个实施例中,该方法包括由所述用户交换机向所述通信会话的每一个终端发
出释放命令。在进一步的实施例中,发出释放命令可以包括发出ISDN释放命令。 在另一个实施例中,该方法包括从所述通信设备发出路径替换命令。该方法还可
以包括由所述通信设备接收设备消息。 在另一方面中,示出并且描述通过用户交换机从通信会话的介质路径部分释放通 信设备的方法。在一个实施例中,该方法包括向第一通信会话的第一终端发出第一邀请命 令,所述邀请命令包括第二通信会话的端口广告,并且向第二终端发出第二邀请命令,所述 第二邀请命令包括所述第一通信会话的端口广告。 在一个实施例中,该方法包括通过所述用户交换机在所述第一终端和所述第二终 端之间建立通信会话,该通信会话包括RTP介质。在另一个实施例中,该方法包括在所建立 的通信会话期间由所述通信设备向所述用户交换机发出控制命令。在另一个实施例中,该 方法包括向第一终端发出SIP邀请命令。 在另一方面中,描述并且示出将通信设备从用户交换机释放以在网络的两个终端
之间通过所述用户交换机建立通信会话的系统。该系统包括用于向所述用户交换机发出路
径替换命令的装置,用于从所述用户交换机接收发往通信会话的一个终端的设备消息的装
置,和用于将所接收的设备消息发送到所述通信会话的另一个终端的装置。 在另一方面中,示出并且描述通过用户交换机从通信会话的介质路径部分释放通
信设备的系统。该系统可以包括用于向第一通信会话的第一终端发出第一邀请命令的装
置,所述邀请命令包括第二通信会话的端口广告,和用于向第二终端发出第二邀请命令的
装置,所述第二邀请命令包括所述第一通信会话的端口广告。
4
在又一个方面,描述并且示出其上具有指令的计算机可读介质,该指令在执行时
可以导致处理器从用户交换机至少部分释放通信设备以在网络的两个终端之间通过所述 用户交换机建立通信会话。在一个实施例中,该计算机可读介质包括向用户交换机发布路 径替换命令的指令,从所述用户交换机接收发往通信会话的一个终端的设备消息的指令, 以及将所接收的设备消息发送到所述通信会话的另一个终端的指令。 在另一方面中,示出并且描述示出其上具有指令的计算机可读介质,该指令在执
行时导致处理器通过用户交换机从通信会话的介质路径部分释放通信设备。在一个实施例 中,该计算机可读介质包括向第一通信会话的第一终端发出第一邀请命令的指令,所述邀 请命令包括第二通信会话的端口广告,和向第二终端发出第二邀请命令的指令,所述第二 邀请命令包括所述第一通信会话的端口广告。


参考结合附图的以下描述,本发明的前述和其他目的、方面、特征和优势将会变得 更加明显更好理解,其中 图1示出用于提供通信的环境的实施例; 图2A和2B是计算装置实施例的框图; 图3A是用于支持通信会话的客户应用程序的实施例框图; 图3B是确定所要研究的屏幕部分的客户应用程序的实施例框图; 图3C是显示支持通信会话的用户界面元件的客户应用程序的实施例框图; 图3D是用于定位目录中保存的信息的方法的实施例的流程图; 图3E是用于识别应用程序输出中的字符模式的方法的实施例的流程图; 图4是通信网关实施例的框图; 图5是建立通信会话的方法的流程图; 图6是使用客户软件和通信网关建立通信会话的方法的实施例框图; 图7是在具有相关的语音信箱服务的终端之间建立通信会话的方法的实施例的
流程图; 图8是从用户交换机至少部分释放通信应用程序的方法的实施例的流程图;以及 图9是从用户交换机至少部分释放通信应用程序的方法的实施例的流程图。
具体实施例方式
参考图l,示出并描述用于提供语音通信(例如语音呼叫)的环境100的一个实施 例。环境100包括多个终端用户106A、106B、106C、106D(总的称为终端用户106),这些终端 用户使用以下一个或者多个网络进行通信移动网络108、分组交换网络IIO和电路交换网 络112。其中一个终端用户106通过网络114和通信网关116通信。通信网关116还和用 户交换机(PBX) 120通信。PBX和移动网络108、分组交换网络110和电路交换网络112中 的一个或者多个通信。同样,通信网关116和PBX 120通过第二网络114'互相通信。在一 个实施例中,第一网络114和第二网络114'是同一网络。第二网络114'可以包括一个或 多个QSIG中继线、H. 323中继线和SIP中继线。QSIG是指用于在专用集成服务网络(PISN) 的节点之间发信号的基于ISDN的信令协议。QSIG协议承载用户交换机之间的用户和特征信息。H.323是指限定IP网络中相交互的语音、视频和数据的协议框架的ITU标准。SIP
是指会话初始协议,其用于在因特网上建立通信会话,如电话、存在、事件通知和即时消息。
SIP协议将呼叫建立、路由、认证和其他特征消息发送给IP域内的终端。 每个终端用户106可以具有执行软件的计算装置105,该软件至少提供下述功能
中的一些功能。终端用户106和计算装置105交互,使计算装置105例如发出命令给通信
网关116 ,通信网关116进而发出命令给PBX120 ,以建立语音通信会话。 第一网络114和第二网络114'可以是局域网(LAN)、城域网(MAN)或者如因特网
或者万维网的广域网(WAN)。计算装置105经由通信链路使用如下多种连接中的任一种连
接到网络114,这些连接包括但不限于标准电话线、LAN或WAN链路(例如,Tl、 T3、56kb、
X. 25)、宽带连接(ISDN、帧中继、ATM)和无线连接。可用多种通信协议(例如TCP/IP、IPX、
SPX、 NetBIOS和直接异步连接)来建立连接。 其他实施例中,终端用户106的计算装置105通过另外的网络(未示出)连接到通信网关116,该另外的网络使用将网络114与之连接的另一通信链路。用于通过通信链路通信的协议可以包括用于长距离或者短距离传输的任一种协议。例如,也可以使用TCP/IP、 IPX、 SPX、 NetBIOS、 NetBEUI、 SONET和SDH协议,或者任一类型和形式的传输控制协议,如修改的传输控制协议,例如事务TCP(T/TCP)、具有选择确认的TCP(TCPSACK)、具有大窗口的TCP (TCP-LW);如TCP-Vegas协议的拥塞预测协议;以及TCP欺骗协议。其它实施例中,可以使用任一类型和形式的用户数据报协议(UDP),如IP网络中的UDP。网络114的组合可以概念性地理解为因特网。本发明所用的因特网指连接全球的计算机网络和机构计算机设备的电子通信网络。 分组交换网络110直接或者间接和PBX 120通信。此处所用的分组交换网络指数据通信网络,其中将信息(如语音或者数据)分别分成分组并且将信息传送至其目的地,信息传送可能经由不同路径。 一些分组交换网络提供IP网语音(VoIP)功能。PBX 120可以为具有端接在分组交换网络110上的电话装置的终端用户106提供电话服务。此处所用的电话装置指电话机、传真机、计算机、IP电话、软件电话、视频电话、移动电话、wlan电话或者可以发送并且接收声音信息的其他装置。 电路交换网络112也直接或者间接和PBX 120通信。此处所用的电路交换指在发起者和目的地之间通过交换中心路由业务,该业务来自本地用户或者其他交换中心,从而在主叫和被叫站之间建立并且保持连续电路,直到其中一个站释放该电路。例如,电路交换网络112可以是公用交换电话网络(PSTN) 。 PBX 120可以为具有端接在电路交换网络112上的电话装置的终端用户106提供电话服务。 移动网络108直接或者间接和PBX 120通信。此处所用的移动通信网络是指由电话运营商运营的用于提供公用移动通信服务的设备。PBX 120可以为具有端接在移动交换网络108上的电话装置的企业用户提供电话服务。 以下为工作概述,PBX 120连接到移动网络108、分组交换网络110和电路交换网络112中的一个或者多个,并且连接到通信网关116。终端用户106发起与另一个终端用户106的通信会话请求。作为响应,终端用户106的计算装置105发出信号(例如,命令)给通信网关116。作为响应,通信网关106和PBX 120建立通信并且发出信号(例如命令)给PBX,以在终端用户106之间建立通信会话。这样的实施例中,由PBX 120建立通信会话
6并作为会话的主机。 可将计算装置105、通信网关116和PBX 120部署为并/或运行在任一类型和形式的计算装置上,如,计算机、网络装置或可以在任一类型和形式的网络上通信并执行此处描述的或者本领域公知的操作的设备。如图2A和2B所示,每个计算装置200包括中央处理单元201和主存储器单元122。如图2A所示,计算装置200可以包括可视显示装置224、键盘226和/或可以控制光标的指示装置227,如鼠标。每个计算装置200还可以包括另外的可选部件,例如一个或多个输入/输出装置230a-230b (通常用参考标记230指示),以及与中央处理单元201通信的高速缓存240。 中央处理单元201是响应并处理取自主存储器单元222的指令的任一逻辑电路。在许多实施例中,中央处理单元由微处理器单元提供,例如由位于Mountain View,California的英特尔公司出品的产品;由位于Schaumburg, Illinois的摩托罗拉公司出品的产品;由位于SantaClara, California的Transmeta公司出品的产品;由位于WhitePlains, NewYork的国际商业机器公司出品的RS/6000处理器;或者由位于Sunnyvale,California的Advanced Micro Devices公司出品的产品。计算装置200可以基于这些处理器中的任一个,或者是可以进行所述操作的任一其它处理器。 主存储器单元222可以是可以保存数据并允许微处理器201直接访问任一存储位置的一个或多个存储芯片,例如静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(ED0RAM)、扩展数据输出DRAM (EDO DRAM)、突发式扩展数据输出DRAM (BED0 DRAM)、增强型DRAM (EDRAM)、同步DRAM (SDRAM) 、 JEDEC SRAM、 PC100SDRAM、双数据速率SDRAM (DDR SDRAM)、增强型SDRAM (ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、或铁电RAM(FRAM)。主存储器222可以基于上述任意一种存储芯片,或者可以基于可进行所述操作的任一其它可用的存储芯片。在图2A中所示的实施例中,处理器201通过系统总线250(在下面进行更详细的描述)与主存储器222进行通信。图2A描述了计算装置200的实施例,其中处理器通过存储器端口 203直接与主存储器222通信。例如,在图2B中,主存储器222可以是DRDRAM。 图2B示出主处理器201通过二级总线直接与高速缓存240通信的实施例,二级总线有时称为后端总线。在其它实施例中,主处理器201使用系统总线250与高速缓存240进行通信。高速缓存240通常具有比主存储器222更快的响应时间,并且通常使用SRAM、BSRAM或EDRAM。在图2A中所示的实施例中,处理器201通过本地系统总线250与多个I/O装置230进行通信。可用多种总线将中央处理单元201连接到任意一种1/0装置230,所述总线包括VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-E邓ress总线或NuBus。对于1/0装置是视频显示器224的实施例,处理器201可以使用高级图形端口 (AGP)与显示器224进行通信。图2B示出主处理器201通过HyperTransport、快速I/O或InfiniBand直接与I/O装置230通信的计算机200的实施例。图2B还示出了混合本地总线和直接通信的实施例处理器201使用本地互连总线与I/O装置230进行通信,同时直接与I/O装置230进行通信。 计算装置200可以支持任一适当的安装装置216,例如用于容纳像3. 5英寸、5. 25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM
7驱动器、各种格式的磁带驱动器、USB装置、硬盘驱动器,或适于安装如任一客户软件或其一 部分的软件和程序的任一其它装置。计算装置200还可以包括存储装置228,例如一个或 多个硬盘驱动器,或独立磁盘的冗余阵列,用于存储操作系统及其它相关软件,并用于保存 软件应用程序,如与客户软件包220相关的任一程序。可选地,任意一种安装装置216还 可用作存储装置228。另外,可以从可引导介质运行操作系统和软件,所述可引导介质如像 KN0PPIX⑧的可引导CD、由knoppix. net发布的可用作GNU/Li皿x的GNU/Li皿x的可引导 CD。 此外,计算装置200可以包括网络接口 218,以通过多种连接与局域网(LAN)、广域 网(WAN)或因特网连接,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如, 802. 11、 Tl、 T3、56kb、 X. 25)、宽带连接(例如,ISDN、帧中继、ATM)、无线连接,或上述任一 或所有连接的一些组合。网络接口 218可以包括内置网络适配器、网络接口卡、PCMCIA网 卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器,或适于将计算装 置100连接到可以通信并执行此处所述操作的任一类型的网络的任一其它装置。
计算装置200中可以有各种1/0装置230a-230n,其中一些可用作指示装置。输 入装置包括键盘、鼠标、跟踪垫、跟踪球、麦克风以及绘画板。输出装置包括视频显示器、扬 声器、喷墨打印机、激光打印机和染料升华打印机。1/0装置230可以由如图2A所示的1/ 0控制器223控制。I/O控制器可以控制如键盘226和指示装置227的一个或多个I/O装 置,指示装置227例如为鼠标或光笔。此外,I/O装置还可以为计算装置200提供存储装置 228和/或安装介质216。另一实施例中,计算装置200可以提供USB连接,以接纳手持USB 存储装置,如由位于Los Alamitos, California的Twintechlndustry公司出品的USB闪存 驱动器系列装置。 在一些实施例中,计算装置200可以包括或连接到多个显示装置224a-224n,每个 显示装置可以是相同或不同的类型和/或形式。因而,任意一种1/0装置130a-130n和/ 或I/O控制器223可以包括任一类型和/或形式的适当硬件、软件或硬件和软件的组合, 以支持、使能或提供通过计算装置200连接和使用多个显示装置224a-224n。例如,计算 装置200可以包括任一类型和/或形式的视频适配器、视频卡、驱动器和/或库,以和显示 装置224a-224n接口、通信、连接,或以其他方式使用显示装置224a_224n。在一个实施例 中,视频适配器可以包括多个连接器,以连接到多个显示装置224a-224n。在其它实施例 中,计算装置IOO可以包括多个视频适配器,每个视频适配器连接到一个或多个显示装置 224a-224n。在一些实施例中,可将计算装置200的操作系统的任一部分配置用于使用多个 显示器224a-224n。在其它实施例中,可以由一个或多个如计算装置200a和200b(例如通 过网络连接到计算装置200)的其它计算装置来提供一个或多个显示装置224a-224n。这些 实施例可以包括设计和构建用于将另一个计算机的显示装置用作计算装置100的第二显 示装置224a的任一类型的软件。本领域普通技术人知道且理解将计算装置200配置为具 有多个显示装置224a-224n的各种方法和实施例。 在更多实施例中,I/O装置230可以是系统总线250和外部通信总线之间的网桥 270,所述外部通信总线例如为USB总线、A卯le Desktop总线、RS-232串行连接、SCSI总线、 FireWire总线、FireWire 800总线、以太网总线、A卯leTalk总线、千兆以太网总线、异步传 送模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel
8总线或串行附连小型计算机系统接口总线。 图2A和2B中所示类型的计算装置200通常在操作系统的控制下工作,操作系统 控制任务调度和对系统资源的访问。计算装置200可以运行任一操作系统,如任意版本的 微软⑧Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的 任一版本的MAC OS、任一嵌入式操作系统、任一实时操作系统、任一开源操作系统、任一专 用操作系统、用于移动计算装置的任一操作系统、或者可以在计算装置上运行并执行此处 所述的操作的任一其它操作系统。典型的操作系统其中包括WIND0WS 3. x、 WIND0WS95、 WINDOWS 98、WIND0WS 2000、WIND0WS NT 3. 51、WIND0WS NT 4. 0、WIND0WSCE和WINDOWS XP, 所有这些均由位于Redmond, Washington的微软公司出品;由位于Cupertino, California 的苹果计算机出品的MAC OS ;由位于Armonk, New York的国际商业机器公司出品的OS/2 ; 以及由位于Salt LakeCity,Utah的Caldera公司发布的免费操作系统Li皿x,或者任一类 型和/或形式的Unix操作系统,以及其它。 其它实施例中,计算装置200可以具有和该装置一致的不同处理器、操作系统和 输入装置。例如, 一个实施例中,计算机100是由Palm公司出品的Treo 180、270、 1060、 600、650、680或700智能电话。在该实施例中,Treo智能电话在PalmOS操作系统的控制下 工作,包括指示笔输入装置以及五向导航装置。此外,计算装置200可以是任一工作站、台 式计算机、膝上型或笔记本计算机、服务器、手持式计算机、移动电话、任一其它计算机,或 者是可以通信并具有执行此处所述操作的足够处理器能力和存储容量的其它形式的计算 或通信装置。 —些实施例中,客户软件220提供和建立通信会话相关的功能,如电话呼叫、聊天 会话、电子邮件会话、或者其它通信会话。此外,客户软件220可以为客户106的终端用户 105提供允许终端用户来"点击"软件应用程序输出中的电话号码或者其他识别模式并"呼 叫"该电话号码的功能。选择该电话号码后,客户计算机106用信号通知通信网关116向 PBX 120发出命令,PBX 120进而建立通信会话。此外,终端用户可在建立呼叫之前编辑电 话号码,并且,如果终端用户105远离和PBX 120相关联的自己的电话时,还可以指定终端 用户期望呼叫的电话号码。而且,客户软件220可以执行目录遍历,以寻找不在应用程序输 出中而是保存在一个或多个同类或者异类目录服务(例如Outlook联系人和其它目录源) 中的号码。下文对客户软件220的其他细节进行描述。 现在参考图3A,其中示出客户软件220的实施例。总的来说,客户软件220包括光 标检测钩子机制304、多个应用程序专用的进程处理程序308a、308b、308c(总的称为进程 处理程序308)、解析程序模块312、呼叫进程316和一个或者多个目录处理器。这些模块的 每一个可以使用公知的编程技术相互直接或者间接通信。 在图3A的更多细节中,光标检测机制304包括用来检测客户计算装置105屏幕上 的光标或者指示装置的状态、移动或者活动的任一逻辑、功能和/或操作。光标检测机制 304可以包括软件、硬件或者软件和硬件的任一组合。在一些实施例中,光标检测机制304 包括应用程序、程序、库、进程、服务、任务或者线程。在一个实施例中,光标检测机制304可 以包括和操作系统挂接的应用编程接口 (API),以获取或者获得对和光标及其在屏幕上的 运动相关的事件和信息的访问。使用API钩子技术,客户软件220和/或光标检测机制304 监控并且拦截与光标相关和/或应用程序所使用的操作系统API调用。在一些实施例中,光标检测机制304 API在运行时动态拦截现有系统或者应用程序的函数。
在另一个实施例中,光标检测机制304可以包括任一类型的钩子、过滤器或者源 代码,用来接收光标事件或者光标在屏幕上的位置的运行时信息,或者按钮点击或者光标 的其他功能所产生的任一事件。在其他实施例中,光标检测机制304可以包括任一类型或 者形式的指示装置驱动器、光标驱动器、过滤器或者任一其他API或者能够接收、拦截或者 访问和屏幕上的光标相关的事件和信息的可执行指令集。在一些实施例中,光标检测机制 304检测光标或者指示装置在屏幕上的位置,如光标在屏幕上的x坐标和y坐标。在一个实 施例中,光标检测机制304检测、跟踪或者比较光标的X坐标和Y坐标相对于之前报告或者 接收的X和Y坐标位置的移动。 —个实施例中,光标检测机制304包括用来检测光标或者指示设备是否闲置或者 已经闲置预定或者预先确定时长的逻辑、功能和/或操作。在一些实施例中,光标检测机制 304检测光标已经闲置了 100ms和lsec之间的预定时长,如100ms、200ms、300ms、400ms、 500ms、600ms、700ms、800ms或者900ms。 一个实施例中,光标检测机制304检测光标已闲置 约500ms的预定时长,如490ms、495ms、500ms、505ms或者510ms。在一些实施例中,检测并 确认光标闲置的预定时长由光标检测机制304设置。其他实施例中,由用户或者应用程序 通过API、图形用户界面或者命令行界面配置预定时长。 —些实施例中,可以设置光标检测机制304的灵敏度,从而,可以接收光标的X或 者Y坐标位置的移动但仍然检测和/或认为光标是闲置的。 一个实施例中,灵敏度可以指 示允许光标检测机制304将光标视为是闲置的X和Y坐标的一个或者二者改变的范围。例 如,如果光标已经闲置200ms并且用户将光标在X和/或Y方向移动两个或几个像素/坐 标,并且随后光标再闲置300ms,则光标检测机制205可以指示光标已经闲置约500ms。
应用程序专用的进程处理程序308分析应用程序输出的内容。 一些实施例中,应 用程序输出显示在应用程序窗口内。 一些实施例中,每个应用程序专用的处理程序308和 一种类型的应用程序交互。例如,MICROSOFTINTERNET EXPLORER、MICROSOFT W0RD、编辑字 段(这包括写字板)和静态文本字段,每个都可以具有专用的进程处理程序308。其他实 施例中,包括用于其他应用程序(例如,ADOBE READER, MICR0S0FTP0WERP0INT, MICROSOFT EXCEL等)的其他进程处理程序。同样,一个应用程序处理程序可以和具有相似特征的多个 应用程序交互。由此,应用程序专用的处理程序的数量可比应用程序数量少。当指示装置 328闲置时,客户软件220开始每个应用程序专用的进程处理程序308。其他实施例中,仅 开始专用的进程处理程序。客户软件220确定哪个窗口是活动窗口,因而确定哪个应用在 活动窗口中产生输出。如果有用于该应用程序的应用程序专用的进程处理程序308,则进程 处理程序确定相对于光标328位置确定的特定区域内是否存在特定模式的字符,下文参考 图3B对此进行详细描述。 例如,如果活动窗口是静态窗口 ,应用程序专用的处理程序用WM_GETTEXT消息从 应用程序获得文本。然后分析返回内容的模式。 一个例子中,如果找到电话号码,则将其显 示给终端用户。另一个例子中,如果编辑窗口是活动窗口 ,则应用程序专用的处理程序使用 EM_*消息,该消息是操作系统API的一部分。使用WM_GETTEXT和EM_CHARFR0MP0S消息返 回指示装置位置附近的文本。 另一个例子中,如果活动窗口是Internet E邓lorer窗口 ,则应用程序专用的进程处理程序使用WM_HTML_GETOBJECT消息从该窗口提取底层的HTMLDocument2对象。处理程 序随后遍历HTML以得到IHTMLBodyElement对象,可从IHTMLBodyElement对象中提取包含 指示装置位置下的文本的IHTMLTxtRange对象。如果活动窗口是MICR0S0FTW0RD窗口 ,则 应用程序专用的进程处理程序使用AccessibleObjectFromWindow API方法从该窗口提取 底层的1ID—Window对象。RangeFromPoint方法从该对象返回包含指示装置位置处的文本 的IID_Range对象。 如果没有一个应用程序专用的进程处理程序308可以解决活动窗口中的应用程 序输出,则调用默认的进程处理程序。 一个实施例中,默认的进程处理程序执行截屏、对象 字符识别和模式匹配,这和2006年10月6日提交的美国专利申请序列号No. 11/539, 515 所述的操作类似。将该申请的全部内容通过引用并入。 进程处理程序308所研究的应用程序窗口区域可以是屏幕的预定部分。 一个实施 例中,是基于系统所用字体计算得到的预定大小或者尺寸的矩形区域。 一个实施例中,客户 软件220根据屏幕分辨率、屏幕字体和光标的X和Y坐标对屏幕的矩形部分(即扫描区域) 进行截屏。尽管通常描述的是截取矩形,但是,执行此处描述的客户软件220的技术和操作 时,可以使用任何形状的扫描区域。例如,扫描区域可以是任一类型和形式的多边形,或者 可以是圆形或者椭圆形。此外,扫描区域的位置可以相对于光标328的位置具有任一偏移 量或者具有或远或近的任一距离关系。例如,扫描区域或者所分析的屏幕部分可以挨着光 标328位置、在其下、在其上,或者为上述任意组合。 可以设置扫描区域的尺寸,这样可以通过屏幕图像获得文本元素的任何文本,而 不使扫描区域太大以至于耗用不期望或者不适合数量的处理时间。这里描述的扫描区域尺 寸和客户软件220执行此处所述操作的期望时间之间的平衡取决于计算资源、客户计算装 置105的能力和容量、屏幕的尺寸和字体以及系统和其它应用程序消耗资源的效应。
如图3A所示,客户软件220包括或者使用解析程序312。解析程序312包括具有 用于对任何文本执行模式匹配的逻辑、函数或者操作的软件、硬件或者其任一组合。客户计 算装置105可通过操作系统、应用程序或者任一进程、程序、服务、任务、线程、脚本或者可 执行指令将任一类型和形式的文本元素320显示在屏幕上或者屏幕外(如虚拟或者可滚动 桌面屏幕的情况下)。文本元素320是可以可视显示一个或者多个字符文本的任一用户界 面元素,字符例如是字母、数字或者文字数字混合的任一组合,或者是作为屏幕可视文本的 字符的组合。 一个实施例中,文本元素320可以作为图形用户界面的一部分显示。另一个实 施例中,文本元素320可以作为命令行或者基于文本的界面的一部分显示。尽管示出的是 文本,但是,可将文本元素320实现为与设备相关或者与应用程序相关的内部形式、格式或 者表示。例如,应用程序可以用内部表示以特定编程语言源代码的形式来显示文本,如实现 为将文本作为其部分实现显示的ActiveX控件或者Java脚本的控件或者窗口小部件。一 些实施例中,尽管屏幕的像素示出可被人类视为文本的文本数据,产生该显示的底层程序 可以不具有电子形式的文本,该文本可以由客户软件220通过和程序的接口提供或获取。
解析程序312可以将一个或者多个记录(如字符串列表中的一个或者多个字符 串)与识别出的活动应用程序窗口的文本进行比较和/或匹配。 一个实施例中,解析程序 312执行精确匹配,如,将字符串列表中的第一字符串和识别出的文本进行比较,以确定字 符串是否相同。另一个实施例中,解析程序312执行第一字符串与第二字符串(如识别出的文本)的近似匹配或不精确匹配。 一些实施例中,近似或者不精确匹配包括比较第一字 符串与第二字符串,以确定第一字符串与第二字符串之间的一个或者多个差别是否位于预
定或者期望的阈值内。如果确定的差别小于或者等于预定阈值,则可认为字符串近似匹配。
—个实施例中,解析程序312使用一个或者多个决策树或者图形节点技术进行近 似匹配。另一个实施例中,解析程序312可以使用任意类型或者形式的模糊逻辑。另一个实 施例中,解析程序312可以使用任意字符串比较函数或者自定义逻辑进行匹配和比较。另 一实施例中,解析程序312在一个或多个数据库中进行查询或查找,以确定是否可将文本 识别为特定的类型或者形式。解析程序312的任意实施例还可以包括边界和/或条件的实 现,以改进匹配算法或者字符串比较函数的性能或者效率。 —些实施例中,解析程序312对所识别文本进行字符串或者数字比较以确定文 本是否是电话、传真、移动电话号码的形式。例如,解析程序312可以确定所识别文本是 否是电话号码的形式或者具有电话号码的格式,如### ####, ###_####, (###)###-####, ###-####-####, +##-##-###-####等等,其中#是数字或电话号码数字。如图2A所示,客 户计算装置105可将任何类型和形式的联系人信息324在屏幕上显示为文本元素320。联 系人信息324可以包括人的名字、街道地址、城市/乡镇、州、国家、电子邮件地址、通信号码 (电话、传真、移动电话、TTY、 Skype等等)、即时消息联系人信息、系统用户名、web页面或 者统一资源定位符(URL)和公司信息。由此,其他实施例中,解析程序312进行比较以确定 所识别的文本是否是联系人信息324的形式、文本元素的组合的形式,或者其部分的形式。 同样,一些实施例中,解析程序312排除特定的模式类型。例如,如果电话号码之前有字符 TTY,解析程序可以忽略该模式,这是由于使用"点击呼叫"功能对这样的号码可能不起作 用。 尽管通常结合电话号码或者联系人信息324描述解析程序312,但是可将解析程 序312配置、设计或者构建成确定文本是否具有所关心的任何模式类型或形式,如与任何 预先确定或预定模式的文本匹配(例如,web页面地址)。由此,可以用客户软件220来分 离出识别文本中的任意模式,并且客户软件220可基于这些预定模式使用此处所述的任一 技术。 呼叫进程316将所识别的模式呈现给终端用户106,为用户提供编辑待呼叫号码、 使用目录处理程序查询另外的号码或者联系人信息以及/或者选择新的待呼叫号码的机 会。此外,终端用户可以改变发起呼叫的号码,以改变联系他们所用的呼叫方号码。然后, 用户106可以点击呼叫按钮来发起呼叫。 —些实施例中,可以从通信网关116自动地或以其他方式获取、提供或者下载客 户软件220或其一部分。 一个实施例中,客户软件220自动安装在客户计算装置105上。例 如,当客户计算装置105的用户106例如通过web页面(例如登录到网络114的web页面) 访问通信网关220时,可以自动安装客户软件220。 一些实施例中,以对用户或客户计算装 置105的应用程序透明的静默模式安装客户软件220。另一个实施例中,安装客户软件220 使得不需要重新引导或者重启客户计算装置105。 在操作上总的来说,计算装置105在屏幕上显示包括联系人信息324的应用程序 输出320,可通过指示装置(例如,光标328)访问该输出。客户软件220通过光标检测钩子 机制304检测到光标328已经闲置了预定的时间,响应于该检测,客户软件220开始多个应
12用程序专用的进程处理程序308。 在一个实施例中,截取挨着或者临近光标的屏幕的矩形部分。客户软件启动应用 程序专用的进程处理程序来识别应用程序输出320中可包括的文本元素的任何文本。使用 解析程序312,客户软件220确定所识别的文本是否具有感兴趣的任何模式,如电话号码或 者其它联系人信息320。 确定之后,客户软件220可通过在屏幕上提供用户可选的用户界面元件来对所识 别的文本进行动作,以进行和所识别的文本相关的动作。例如, 一个实施例中,客户软件220 可以识别截屏文本中的电话号码并且提供用户界面元件(如菜单选项窗口中的图标),让 用户选择来发起通信会话。即,一种情况下,响应于识别出文本信息的截屏图像中的电话号 码,客户软件220自动提供活动用户界面元件,其包括或者链接到使通信会话开始的指令。 一些情况下,可称之为给用户提供"点击呼叫"的用户界面元件。 现在参考图3B,其中示出并且描述用于建立通信会话的客户软件220的示例实施 例。总的来说,客户计算装置105的屏幕示出包括电话号码形式的联系人信息324的文本 元素320。光标328位于或者位置靠近文本元素320的左上角,即靠近电话号码列表中的第 一电话号码。例如,光标328目前可能闲置在屏幕上的该位置。客户软件220检测光标328 可能闲置预定长度的时间并且开始一个或者多个进程处理程序308,并且基于光标的位置 对扫描区域340进行扫描。如实例所示,扫描区域340可以是矩形。而且,如图2B所示,矩 形扫描区域340可以包括屏幕上显示的文本元素320的电话号码部分。扫描区域340的计 算345基于一个或者多个以下类型的信息1)默认字体,2)屏幕分辨率和光标3)位置。
在图3B所示实施例的更多细节中,扫描区域340的计算345基于一个或者多个以 下变量 Fp -默认字距 F(w) _模式中用像素计算的默认字体字符的最大字符宽度 Sw _屏幕分辨率宽度 Sh _屏幕分辨率高度 P(l) _匹配模式的最大字符串长度 Cx _光标位置x坐标 Cy -光标位置y坐标 在 一 个实施例中,客户软件2 20可以通过对操作系统或者应用程序的API调 用来设置上述任一个值。例如,在Windows操作系统的情况下,客户软件220可以调用 GetSystemMetrics()函数来确定有关屏幕分辨率的信息。另一个例子中,客户软件220可 以使用API调用来读取注册表以获取默认系统字体的信息。另一个例子中,客户软件220 调用函数GetCursorPos()来获取当前光标的X和Y坐标。 一些实施例中,可以配置上述任 一变量。用户可以通过客户软件220的图形用户界面或者命令行界面来指定变量值。
—个实施例中,客户软件220或其任一部分(如进程处理程序308和解析程序 312)相对于屏幕分辨率宽度Sw和高度Sh计算扫描区域240矩形
int max_string_width = P(I)*F(w);
int max_string_height = Fp ;
RECT r ;
13
r. left = MAX(0, Cx-(max_string_width/2)-l);
r. top =恵(O, Cy_(max_string_height/2)_1);
r. right = MIN(Sw, Cx+((max_string_width/2) _1);
r. bottom = MIN(Sh, Cy+(max_string_height/2) _1); 在其他实施例中,客户软件220或者其任一部分可以分别使用光标位置的X和Y 坐标中的一个或两个的任一偏移量变量Cx和Cy计算矩形340。例如,可以对光标位置应用 偏移量,以使扫描区域340位于屏幕上相对于光标328位置的偏左、偏右、偏上和/或偏下 或者其任一组合的任一位置。而且,确定上述计算中的max_string_width和max_string_ height变量时,客户软件220可以使用任一因子或者加权。尽管扫描区域240的角的计算通 常是对称的,但是,扫描区域240的左、上、右和下位置中的任一个可以相对于max—string— width和max_string_height变量在不同位置处计算。 一个实施例中,客户软件220可以将 扫描区域340的角计算为设置在预定或固定的尺寸,使得其与默认字体大小无关。
现在参考图3C,其中示出提供和所识别的文本元素的文本相关的可选用户界面元 件的客户软件220的实施例。总的来说,客户软件220以不侵入应用程序但覆盖或者叠加应 用程序的一部分屏幕区域的方式单独或者以不同组合显示可选用户界面元件,如窗口 360、 图标360'、或者超链接360",应用程序的该部分屏幕区域显示具有被客户软件220识别的 文本的文本元素320。如例子所示,客户软件220将接近光标328位置的一部分文本元素 320识别为电话号码。确定所识别的文本与电话号码模式匹配后,客户软件220显示用户可 选用户界面元件360、360',以采取和所识别的文本或者文本元素相关的动作。
在更多细节中,可选用户界面元件360可包括任一类型或者形式的用户界面元 件。 一些实施例中,客户软件220可以显示用于所识别的文本元素320的文本或者所识别 的文本元素的文本的多个实例的多种类型或者形式的用户界面元件360。 一个实施例中, 可选用户界面元件包括具有任意类型图形设计或者外观的图标360'。 一些实施例中,图标 360'具有和所识别文本相关的图形设计,或者使得用户认为图标和文本相关,或者采取和 文本相关的动作。例如,如图3C中所示,电话的图形表示可用于提示用户选择图标360',以 发起电话呼叫。进行选择后,客户软件220发起到文本元素320的文本中所识别的电话号 码(例如,1(408)678-3300)的通信会话。 另一个实施例中,可选用户界面元件360包括窗口 360,其提供可对识别的文本采 取的一个或者多个动作或者选项的菜单。例如,如图3C所示,客户软件220可以显示允许用 户选择多个菜单项362A-362N之一的窗口 360。例如,菜单项362A可以允许用户发起到文本 元素320的文本中所识别的电话号码(例如,1 (408)678-3300)的通信会话。菜单项362B可 允许用户查询和所识别文本相关的其他信息,如具有该电话号码(例如,1 (408)678-3300) 的个人或者公司的联系人信息(例如,名称、地址、电子邮件等等)。 窗口 360'可以配置有菜单项362N,以采取和所识别的文本元素文本相关的任一 期望的、合适的或者预定的动作。例如,菜单项362N可允许用户给和电话号码相关的人发 送电子邮件而不是呼叫该电话号码。在另一个例子中,菜单项362N可以允许用户将所识别 的文本保存在另一个应用程序中,如在联系人管理系统或者客户关系管理系统中创建联系 人记录,联系人管理系统如微软公司出品的MICROSOFT OUTLOOK,客户关系管理系统如加利 福尼亚州三藩市的Salesforce. com公司提供的salesforce. com。另一个例子中,菜单项362N可允许用户通过数据库来验证所识别的文本。在另外的例子中,如果所识别的文本是 不合法的格式、不正确或者不对应相关的文本,则菜单项362N可以允许用户向客户代理给 出反馈或者提示。菜单项362N还可以允许终端用户106改变他们当前的联系号码。该号 码是PBX 120拨打以联系终端用户106从而建立一部分呼叫的号码。 例如,客户软件220可以遍历客户计算装置105上的一个或者多个异类目录。在 一些实施例中,客户软件220包括目录专用的处理程序317。 一个实施例中,每一个目录 专用的处理程序搜索客户机上的特定目录。例如,Outlook目录处理程序遍历客户105的 Outlook联系人,而Skype目录处理程序遍历客户的Skype目录。同样,LDAP目录处理程序 可以搜索驻留在通信网关116上的LDAP目录或者保存在客户105处的其本地版本。在这 样的实施例中,不需要"合并"客户105的目录。也就是说,不需要将来自多个目录的信息 导入一个目录。来自多个目录专用的处理程序的结果被合并,并且显示给客户计算装置105 的终端用户。 参考图3D,其中示出并描述用于定位保存在计算装置的一个或者多个目录中的信 息的方法390。方法390包括接收(步骤392)指令以定位保存在一个或者多个目录中的一 部分联系人信息。响应于接收到该命令,客户软件220启动(步骤393)多个目录处理程序 例程。多种目录源可以不同格式保存联系人信息,因此不同的处理程序和不同类型的目录 相关联。然而,如果多个目录以基本相似的方式保存联系人信息,则一个目录处理程序就可 以对这些目录进行操作。目录处理程序例程遍历(步骤394)计算装置的目录并且定位(步 骤395)所请求的联系人信息。如果多个目录具有所请求的联系人信息,则客户软件220集 合(步骤396)所定位的信息。 一些实施例中,移除重复的联系信息。 一旦集合后,将定位 的信息显示(步骤397)给计算装置的终端用户。 再参考图3C,另一个实施例中,用户界面元件可以包括图形元件,以模拟、表示或 者显示为超链接360"。例如,如图3C中所示,图形元件可以是出现在所识别文本下面的线 条形式,以使所识别的文本显示为超链接。如所识别文字周围的虚线所示,用户元件360' 可以包括覆盖或者叠加于所识别文本(例如,电话号码1(408)678-3300)之上的热点或者 透明可选背景。这样,用户可以选择超链接图形的下划线部分或者背景部分来选择用户界 面元件360"。 在一个示例性实施例中,用户界面元件360是以可编辑字段方式提供要呼叫的号 码的电话条,这样用户在需要时可以修改该号码。用户界面元件360还可以包括用来发起 呼叫的按钮。同样,终端用户106可以访问目录服务、呼叫日志和其它源,以搜索其他电话 号码。在一些实施例中,呼叫日志可以包括最近拨打的号码、拨打时间和其他信息的列表。 最初,电话条具有很低的初始透明态,意味着其基本是透明的。随着用户移动光标328,电话 条窗口的透明态将增加或减小。光标328离电话条越近,窗口就变得更可视。当透明态下 降到零值,电话条消失,直到再次需要。在一个实施例中,透明态的改变速率具有两种模式, 当电话条第一次出现,其很快地淡入和淡出, 一旦鼠标经过该条,该速率变得较慢。这使用 户106在不想进行呼叫时可容易地忽略该条,但是,一旦用户将鼠标放置在电话条上,禁止 偏离拉动使该条消失。 任一类型和形式的用户界面元件360、360'或者360"可以是活动的或者可选的, 以采取与其相关联的期望或者预定动作。 一个实施例中,用户界面元件360可以包括用以采取动作的任一类型的逻辑、函数或者操作。在一些实施例中,用户界面元件360包括统一 资源定位符。在其他实施例中,用户界面元件360包括指向网络114上可用的web页面、目 录或者文件的URL地址。 一些实施例中,用户界面元件360发送消息、命令或者指令。例如, 用户界面元件360可以发送或者使客户软件320发送消息给通信网关116。另一个实施例 中,用户界面元件360包括脚本、代码或者其他可执行指令,以进行API或者函数调用、执行 程序、脚本或者应用程序,或者以其他方式使得计算装置105、应用程序或者任一其他系统 或者装置来采取期望的动作。 例如,在一个实施例中,用户界面元件260调用电话应用编程接口 (TAPI)函数以 与另一个终端用户106通信。在另一个实施例中,使用呼叫处理程序或者其他计算服务。 用户界面元件360被配置、设计或者构建成经由通信网关116和PBX 120发起或者建立到 文本元素320的所识别文本中标识的电话号码的通信会话。在另一个实施例中,用户界面 元件360被配置、设计或者构建成发送消息给通信网关116,或者使客户软件220发送消息 给设备200,以发起或者建立到文本元素320的所识别文本中标识的电话号码的通信会话。 在又一个实施例中,响应于用户界面元件的消息、呼叫或者事务,通信网关116和客户软件 220 —起工作以发起或者建立通信会话。 如此处所述,通信会话包括使用任一类型和形式的协议经由任一类型和形式的有 线、无线或者其它介质的任一类型和形式的通信。举例来说,通信会话可以包括但不限于电 话、移动电话、VoIP、软件电话、电子邮件、传真、寻呼机、即时消息/信使、视频、聊天室、短 消息服务(SMS) 、 web页面或者blog通信或者任一其他形式的电子通信。
参考图3E,其中示出并描述用于识别应用程序输出中的字符模式的方法370。在 一个实施例中,该方法370包括确定(步骤372)指示装置的状态,开始(步骤374)多个 应用程序专用的窗口处理程序例程,并且选择(步骤376)多个例程中的一个来操作应用程 序输出。该方法370还包括识别(步骤378)应用程序输出中的模式,将函数和所识别的模 式相关联(步骤380),并且响应于经由客户计算装置105的输入装置接收的预定输入,执行 (步骤382)该函数。 参考图4,其中示出并描述通信网关116的实施例。网关可以包括电话管理器模块 402、电话服务器406、服务器410、本地文件系统414和管理模块418。电话管理器模块402 和服务器410、电话服务器406、文件系统414、客户106通信,在一些实施例中还和许可服务 器422通信。电话服务器406经由可以作为第二网络114' 一部分的一个或者多个QSIG、 匿S100、H. 323以及SIP中继线与PBX 120通信,电话服务器406还和本地文件系统414通 信。管理模块418和电话管理器模块402、本地文件系统414、服务器410以及管理员计算 装置426通信。在一个实施例中,服务器410经由一个或者多个网络114和业务连续性服 务相通信。 —个实施例中,电话管理器模块402包括许可模块434、点击呼叫模块338和可选 的连续性模块442。每个这些模块可以是通信网关116上执行的独立程序。同样,可以用一 个应用程序提供这些模块的功能。操作上总的来说,电话管理器模块402用作电话服务器 306、客户软件220和可选业务连续性服务430的中间件。电话管理器模块418接受来自电 话服务器406的业务连续性查询请求、来自客户106的点击呼叫请求,并通过本地服务将这 些请求委托给业务连续性服务或者点击呼叫服务,以下对业务连续性服务和点击呼叫服务
16进行详细描述。电话管理器402还通过经由电话服务器API 442进行到PBX的呼出呼叫来 控制其行为。电话管理器402在接收到来自管理模块418的一个或者多个命令时还用于开 始/停止/重新开始电话服务器406。 许可模块434和许可服务器422通信。许可模块与许可服务器422进行核对以控 制通信网关116的各个特征。在一些实施例中,许可模块434基于所提供的域用户证书执 行终端用户105认证。更详细地,许可模块434向从所验证的终端用户105发来的请求发 出句柄。 电话服务器406使通信网关116通过一个或者多个QSIG、H. 323或者SIP中继线来 和多个顾客PBX集成。在一个实施例中,电话服务器306基于Digium公司发布的ASTERISK PBX软件。Asterisk是软件形式的完整IP PBX。其运行于多种操作系统上,包括Li皿x、 Mac OS X、 OpenBSD、 FreeBSD和Sun Solaris,并且提供PBX的所有特征,包括通常和高端 (且高成本)专用PBX相关联的许多高级特征。Asterisk⑤以多种协议支持IP网络中的语 音通话,并且可以使用相对廉价的硬件和几乎所有的基于标准的电话装备互操作。工作时, 电话管理器模块402收到来自终端用户106的计算装置105的呼入呼叫请求,并且通过向 PBX 120发信号来开始进行一个或者多个呼出呼叫。 在一个实施例中,服务器410包括可选的本地业务连续性服务446、本地点击呼叫 服务450、目录导入模块454和本地数据库458。 一个实施例中,本地业务连续性服务446 提供重定向的电话号码的周期性同步和请求重定向号码查询的通信服务器的验证。
—个实施例中,本地点击呼叫服务450提供对通过通信网关116接收的点击呼叫 请求的验证,并使用目录信息查询终端用户105的PBX分机或者终端用户105的当前联系 人号码。 一个实施例中,将与点击呼叫请求一起提供的令牌或者登录证书和一系列保存的 证书进行比较,以验证终端用户106。在一个实施例中,与该请求一起提供许可句柄,并且由 许可模块434进行验证。 —个实施例中,目录导入模块454周期性地将目录信息从一个或者多个轻型目录 访问协议(LDAP)源导入到本地数据库458中。获取的信息由本地点击呼叫服务450用于 将终端用户106登录身份解析为电话号码或者PBX分机。此外,目录导入模块可以将其内 容和其最初导入数据的源相同步。该同步可以定期或者不定期发生。 在一个实施例中,本地数据库458是SQL数据库并且使用SQL命令和服务器410 的不同模块相通信。尽管所描述的是关系数据库,但是也可以使用其它类型的数据库。例 如,可实现为平面文件数据库。 文件系统414通常根据在磁盘操作系统中实现的方式来组织目录和文件。文件系 统类型的例子包括但不限于FAT 16、 FAT32、 EAFS、 NTFS、 HPFS、 S51K、 Ext2、 AFS。在一些实施 例中,文件系统414保存配置文件、日志、用户配置、目录和数据库。文件系统414还可以保 存其他数据。 管理模块418提供用于提供通信网关116某些方面的功能。管理员计算装置426 和管理模块418通信,并且允许管理员计算装置426的终端用户配置用于服务的通信网关 116。例如,可用管理员模块418提供PBX 120和通信网关116之间的链路。管理模块418 还可以配置PBX 120接口和其他服务的特征和方面。此外,管理模块418可以和许可服务 器交互,并且配置用户配置和网络设置。 一个实施例中,管理员计算装置426和通信网关之间的交互是基于web的。 许可服务器422控制通信网关116的各个特征和其最大容量。例如,并行的终端用 户106数量,并且按需要增加和减少。 一个实施例中,许可服务器422参与终端用户验证。 一个实施例中,许可服务器位于通信网关116外部。另一个实施例中,许可服务器422包括 在通信网关116中。 业务连续性服务430也可以直接或者间接和通信网关116通信。因自然灾害或 者其它事件而发生服务中断时,业务连续性服务430提供和计算维持相关的功能和通信功 能。 操作上总的来说,通信网关116接收来自客户106的命令和信号,并且通过向PBX 120发出其他命令和信号来响应这些命令,一些实例中,还向业务连续性服务430发出命令 和信号。例如,来自客户的点击呼叫请求由电话管理器402接收,由服务器410验证,并且 转发给电话服务器406。作为响应,用来建立通信会话的命令和信号从电话服务器406经由 一个或者多个不同中继线转发给PBX 120。 参考图5,其中示出并描述用于建立通信会话的方法500。方法500包括由通信 网关116接收(步骤510)来自一个客户计算装置的请求,将所接收的请求的至少一部分转 发(步骤520)到PBX 120,并且建立(步骤530)通信会话。 —个实施例中,通信网关116使用任一前述协议及其等价协议从网络上的一个或 者多个客户计算机接收(步骤510)请求。在一些实施例中,客户计算机执行至少一部分客 户软件220 。例如,客户计算机可以执行使用前述系统和方法来定位用于建立通信会话的地 址信息(例如电话号码或者电子邮件地址)的程序。 通信网关116将所接收请求的至少一部分转发(步骤520)给PBX 120。该部分可 以包括全部所定位的地址信息或者其中的一部分。例如,是电话号码的情况下,可将区号转 发PBX 120,或者不转发给PBX 120。在其他实施例中,其他部分被转发给PBX 120。
响应于接收到地址信息,PBX 120在请求会话的终端和包括在地址信息中的终端 之间建立(步骤530)通信会话。换句话说,在请求终端和另一个终端之间建立通信会话。 一个实施例中,独立建立通信会话的每一支路(leg)。例如,首先建立PBX 120和请求终端 之间的支路,并且随后建立第二支路。在另一个实施例中,首先建立第二支路。在其他实施 例中,近乎同时建立通信会话的支路。 在更多细节中,参考图6,响应于终端用户105在他们的客户计算装置106上选择 电话号码,由客户软件220将点击呼叫(C2C)请求发送给通信网关116。 一个实施例中,该 请求包括终端用户唯一的身份(例如,登录名、令牌、或者任一其他标识符)和目的电话号 码。作为响应,通信网关116通过在本地LDAP目录中进行查找将终端用户105的身份转换 为用户PBX分机。在另一个实施例中,终端用户105将终端用户105请求呼叫的当前位置 指定为请求的一部分,或稍后进行指定。例如,终端用户可以选择将呼叫连接到他们的蜂窝 电话、家庭电话、软件电话、或者任一其它通信装置。 确定目的电话号码和终端用户105的目的号码之后,通信网关116向PBX 120发 信号,PBX 120进而进行到用户当前目的地(例如,PBX分机)的呼叫。在用户105应答该 目的地时,在一些实施例中,PBX 120请求终端用户采取动作来完成到其他目的号码的呼 叫。例如,提示终端用户按下键盘的#1。或者,可能要求终端用户说出数字"l"或者一些其
18他短语。在完成到其他电话号码的呼叫之前请求终端用户做出肯定动作可防止两个语音信 箱系统互相连接。例如,如果终端用户输入不正确的当前位置号码,则PBX在建立第一呼叫 时可能连接到语音信箱系统。如果另一电话号码不应答并且进入语音信箱,则两个语音信 箱系统都等待来自对方的输入,因此PBX会被占用一段时间。 —旦终端用户提供肯定指示,通信网关向PBX发信号,PBX随之进行到外部(S卩,第 二)号码的呼叫并且允许用户听到呼叫过程。如果被呼叫方接听电话或者该呼叫被转接到 被呼叫方的语音信箱,则认为点击呼叫操作是成功的。 一旦建立该呼叫,在一些实施例中, 则期望通信网关116将自身从呼叫路径中移除。 参考图7,其中示出并描述用于在两个终端之间建立语音通信会话的方法700,每 一个终端具有与其相关的语音信箱服务。该方法700包括从第一终端(例如客户计算装 置)发出(步骤710)邀请。该方法700还包括接收(步骤720)第一终端可进行通信会话 且该邀请未以和第一终端关联的语音信箱服务结束的指示。响应于接收到该指示,PBX 120 发出(步骤730)邀请加入到第二终端的语音通信会话。 在一个实施例中,PBX 120使用任一上述方法和系统及其等价方法和系统来发出 通信请求。该邀请可以是SIP邀请或者一些其他已知的通信协议(例如,H. 323)。
在一个实施例中,接收(步骤720)指示包括接收来自终端用户终端装置的"按钮 音"响应。例如,终端用户可以按下他们电话键盘上的数字1来指示终端用户已经应答该邀 请。包括这样的肯定动作降低了互相连接终端用户的语音信箱系统的可能性。这样的动作 还有助于确保终端用户没有提供终端用户的不正确当前位置给PBX。 —旦终端用户提供了合适的肯定动作,PBX 120发出(步骤730)邀请给第二终端, 以在两个终端之间建立通信会话。同样的,可以使用前述的系统和方法及其等价方法和系 统来发出该邀请。 PBX 120建立通信会话之后,在一个实施例中,通过使用QSIG呼叫路径替代或者 SIP re-INVITE来执行直接的介质桥接,通信网关116将自己从介质路径释放。此时,从介 质路径释放通信网关116的资源。在其他实施例中,用其他命令从介质路径释放通信网关 116。此处所用的SIPre-INVITE指在通信会话期间初始INVITE命令之后发出的I INVITE 命令。 参考图8,其中示出并且描述用于从PBX 120释放通信设备(例如通信网关116) 的方法800。该方法800包括由通信设备向PBX 120发出(步骤810)路径替代命令。作为 响应,通信设备从PBX 120接收(步骤820)发往通信会话的一个终端的设备消息。作为响 应,通信设备将所接收的设备消息发送给通信会话的另一个终端(步骤830)。
在一个实施例中,如果使用QSIG中继线,则通信网关116发出QSIG路径替换附加 网络特征。这使得PBX 120在一个支路上发送FACILITY消息,通信网关116将该FACILITY 消息重新广播给另一个支路。最后,PBX120向两个支路发送ISDN RELEASE,并且本地桥接 呼叫方和PBX 120用户之间的交谈路径。此时,通信网关处在信令路径外,可在释放的DSO 信道上的接受新的呼叫。 参考图9,其中示出并且描述用于通过用户交换机从通信会话的介质路径部分释 放通信设备的方法900的实施例。该方法900可包括由通信设备发出(步骤910)邀请命 令给第一通信会话的第一终端。第一邀请命令包括由PBX 120和通信网关116单独或者组合支持的第二通信会话的端口广告。该方法900还包括由通信设备发出(步骤920)第二邀请命令给通信会话的第二终端。所述第二邀请命令包括所述第一通信会话的端口广告。
另一个实施例中,如果在通信网关116和PBX 120之间使用SIP中继线,则网关116发出SIP邀请给呼出呼叫支路,广告呼入呼叫的介质端口。在呼出PBX 120呼叫支路用SIP 200 0K响应回答该呼叫时,通信网关116向呼入呼叫支路发送SIP re-INVITE,广告呼出呼叫支路的介质端口。这样得到的连接中,通信网关116在呼叫期间控制两个信令呼叫支路,但是一直在两个IP PBX端口之间直接发送RTP介质,将通信网关116保持在介质路径之外。
权利要求
一种将通信设备从用户交换机释放以在网络的两个终端之间通过用户交换机建立通信会话的方法,上述方法包括向所述用户交换机发出路径替换命令;接收从所述用户交换机发往通信会话的一个终端的设备消息;并且将所接收的设备消息发送到所述通信会话的另一个终端。
2. 如权利要求1所述的方法,还包括由所述用户交换机向所述通信会话的每个终端发 出释放命令。
3. 如权利要求2所述的方法,其中,所述发出释放命令包括发出ISDN释放命令。
4. 如权利要求1所述的方法,其中,所述发出路径替换命令包括从所述通信设备发出 路径替换命令。
5. 如权利要求1所述的方法,其中,所述接收设备消息包括由所述通信设备接收设备 消息。
6. —种通过用户交换机从通信会话的介质路径部分释放通信设备的方法,所述方法包括向第一通信会话的第一终端发出第一邀请命令,所述邀请命令包括第二通信会话的端 口广告;并且向第二终端发出第二邀请命令,所述第二邀请命令包括所述第一通信会话的端口广告
7. 如权利要求6所述的方法,还包括通过所述用户交换机在所述第一终端和所述第二 终端之间建立通信会话,所述通信会话包括RTP介质。
8. 如权利要求7所述的方法,还包括在所建立的通信会话期间由所述通信设备向所述 用户交换机发出控制命令。
9. 如权利要求6所述的方法,其中,所述发出邀请命令包括向所述第一终端发出SIP邀 请命令。
10. —种从用户交换机释放通信设备以在网络的两个终端之间通过所述用户交换机建 立通信会话的系统,所述系统包括用于向所述用户交换机发出路径替换命令的装置;用于从所述用户交换机接收发往通信会话的一个终端的设备消息的装置;以及 用于将所接收的设备消息发送到所述通信会话的另一个终端的装置。
11. 如权利要求io所述的系统,还包括用于由所述用户交换机向所述通信会话的每一个终端发出释放命令的装置。
12. 如权利要求ll所述的系统,其中,所述用于发出释放命令的装置包括用于发出 ISDN释放命令的装置。
13. 如权利要求IO所述的系统,其中,所述用于发出路径替换命令的装置包括用于从 所述通信设备发出路径替换命令的装置。
14. 如权利要求IO所述的系统,其中,所述用于接收设备消息的装置包括用于由所述 通信设备接收设备消息的装置。
15. —种通过用户交换机从通信会话的介质路径部分释放通信设备的系统,所述系统 包括用于向第一通信会话的第一终端发出第一邀请命令的装置,所述邀请命令包括第二通 信会话的端口广告;以及用于向第二终端发出第二邀请命令的装置,所述第二邀请命令包括所述第一通信会话 的端口广告。
16. 如权利要求15所述的系统,还包括用于通过所述用户交换机在所述第一终端和所 述第二终端之间建立通信会话的装置,所述通信会话包括RTP介质。
17. 如权利要求16所述的系统,还包括用于在所建立的通信会话期间由所述通信设备 向所述用户交换机发出控制命令的装置。
18. 如权利要求15所述的系统,其中,所述用于发出邀请命令的装置包括用于向所述 第一终端发出SIP邀请命令的装置。
19. 一种其上具有指令的计算机可读介质,所述指令在执行时可以导致处理器从用户 交换机至少部分释放通信设备以在网络的两个终端之间通过用户交换机建立通信会话,所 述计算机可读介质包括向所述用户交换机发出路径替换命令的指令;从所述用户交换机接收发往通信会话的一个终端的设备消息的指令;以及 将所接收的设备消息发送到所述通信会话的另一个终端的指令。
20. 如权利要求19所述的计算机可读介质,还包括用于由所述用户交换机向所述通信 会话的每一个终端发出释放命令的指令。
21. 如权利要求20所述的计算机可读介质,其中,所述发出释放命令包括发出ISDN释 放命令。
22. 如权利要求19所述的计算机可读介质,其中,所述发出路径替换命令的指令包括 用于从所述通信设备发出路径替换命令的指令。
23. 如权利要求19所述的计算机可读介质,其中,所述接收设备消息的指令包括由所 述通信设备接收设备消息的指令。
24. —种其上具有指令的计算机可读介质,所述指令在执行时导致处理器通过用户交 换机从通信会话的介质路径部分释放通信设备,所述计算机可读介质包括向第一通信会话的第一终端发出第一邀请命令的指令,所述邀请命令包括第二通信会 话的端口广告;以及向第二终端发出第二邀请命令的指令,所述第二邀请命令包括所述第一通信会话的端 口广告。
25. 如权利要求24所述的计算机可读介质,还包括通过用户交换机在所述第一终端和 所述第二终端之间建立通信会话的指令,所述通信会话包括RTP介质。
26. 如权利要求25所述的计算机可读介质,还包括用于在所建立的通信会话期间由所 述通信设备发布控制命令给所述用户交换机的指令。
27. 如权利要求24所述的计算机可读介质,其中,所述发出邀请命令的指令包括向所 述第一终端发出SIP邀请命令的指令。
全文摘要
本发明示出并描述了用于从用户交换机部分释放设备的系统和方法。该方法可以包括向所述用户交换机发出路径替换命令,从所述用户交换机接收发往通信会话的一个终端的设备消息;并且将所接收的设备消息发送到所述通信会话的另一个终端。
文档编号H04M3/50GK101785289SQ200880103712
公开日2010年7月21日 申请日期2008年8月19日 优先权日2007年8月22日
发明者A·科瓦伦克 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1