按照美国法典35U.S.C.第119(e)条的规定,本申请要求属于同一个申请人、共同待审的两项美国临时专利申请的优先权。这两项专利的申请分别是,编号No.60/161,144,标题为“使用智能电话机的通信网络”,申请日期1999年10月26日;和编号No.60/190,613,标题为“为一个通信系统安排配置信息的方法和设备”,申请日期2000年3月20日。这两项专利申请都作为它们的实体参考结合到本文件中。
本发明的详细说明
1.电话系统结构
电话系统结构是指包括一个或多个相互关联的系统组件的系统结构,这些组件一起定义一个电话通信设备(TCD)上可利用的电话应用程序。开放式电话系统结构是指这样的一个电话系统结构,即除了供货商控制开发的一个或多个由电话系统结构定义的电话应用程序外,在应用程序安装到现场的电话通信设备上后,用户和第三方供货商也能够访问系统结构以便修改一个或多个电话应用程序中的电话功能。可扩充的电话系统结构是一个允许在已经部署在现场的电话通信设备上增加电话应用程序的系统结构。
图1是一个方框图,说明电话通信设备用的开放式和可扩充的电话系统结构1的一个实例实施方案。可扩充的电话系统结构可以看作是一个分层结构1,其中相邻的各个抽象层(或层)之间互相通信,在一个给定层两侧的层是相互独立的。换句话说,可以定义这种功能,即一个高层的抽象层可以在一个不相邻的低层的抽象层实现而不必知道或说明该非相邻低层层的细节。
为了便于说明,装有电话系统结构1的电话通信设备在本文件中称作第一电话通信设备。所述第一电话通信设备可以连接到一个通信网络上,在下面谈到图7时对这个问题将作更加详细地介绍。
开放式和可扩充的电话系统结构可以包含一个应用程序层3,一个开放式应用程序设计接口层5,一个核心电话功能层9,一个操作系统层11,一个软件/硬件接口层13和一个电话硬件层15。
1.1电话硬件层
所述电话硬件层或电话硬件部分15包括几个硬件单元,用于完成与电话通话有关的电话作业。电话硬件部分15可以包括处理机,用于处理对应于电话作业的指令。在选择处理机时可以按照这样的要求,使处理机能够按照实时速率处理电话通话,从而参加电话通话的用户感受不到与电话通话有关的电话功能的延迟现象,特别是当传输音频数据时。例如,可以选用StrongArm1110作为处理机,其运行速度为206兆赫。
电话硬件部分15还可以包括用于存储信息的存储器。例如,所述存储器可以包括非易失性存储器,如快闪只读存储器,用于持久性地存储电话应用程序和数据;还可以包括易失性存储器,如同步动态随机存取存储器,用于临时储存和快速访问电话应用程序和数据。
易失性存储器和非易失性存储器的存储能力可以按照存储需要和网络里的第一电话通信设备的配置进行选择和更换。例如,对于第一电话通信设备可以这样配置,即可作为被起始的一部分,从网络上的一个或多个存储资源下载电话应用程序和/或非电话应用程序。在这样的配置中第一电话通信设备可以有一个容量较大的易失性存储器用于快速处理,因为可以用容量较小的非易失性存储器存储应用程序。
与此相反,第一电话通信设备可以配置成能存储大量的数据,例如音频文件,或者存储一个或多个大型应用程序或大数量的应用程序。在这样的配置中,第一电话通信设备可以有容量较大的非易失性存储器用于存储数据和应用程序,从而使易失性存储器容量较小。很明显,易失性和非易失性存储器的能力还受到第一电话通信设备里可用物理空间的限制。
电话硬件部分15还可以包括音频处理电路,用于处理电话通话期间传输的音频信息。所述音频处理电路可以包括编解码器,用于完成典型的音频处理功能,包括对传输到通信网络的音频数据和从通信网络接收到的音频数据分别进行压缩和解压缩。音频处理模块可以设计成能够按照多种大小对音频数据进行取样,并且可以按照多种取样速率中的任何速率处理音频数据。例如,音频处理模块可以包括菲利普半导体公司生产的UDA1341TS立体声编解码器,按照16比特大小和32千赫的取样速率对音频数据进行取样。也可以采用其它取样速率,例如44.1和48千赫。
电话硬件部分15还可以包括视频处理电路,包含一个或多个视频编解码器,利用已知技术处理视频图象。
在下面讨论图5时还将作详细说明,电话硬件部分15还可以包括一个显示屏和有关的图形逻辑电路。在一种实施方案中,显示屏为160×160象素图形显示器。所述显示屏可以显示彩色、单色或灰度级象素。例如,在一个实施方案中,显示屏采用15色灰度级显示象素。
电话硬件部分15还可以包括网络接口,用于在第一电话通信设备和通信网络里的传输媒体之间进行通信。在一个实施方案中,所述通信网络遵守以太网协议,并且网络接口采用以太网接口,例如,Cirrus Logic公司生产的CS8900A-CQ3 10BaseT以太网控制器。
电话硬件部分15还可以包括一个电源电路,为第一电话通信设备提供电源。在一个实施方案中,电话硬件部分15包含一个电源电路,接收由5类(Cat5)电缆提供的电源。电源电路可以采用与Cisco Inline-Power电源技术相兼容的供电方案,该项技术是由思科系统有限公司为Cat5/以太网局域网研制的。
1.2软件/硬件接口层
软件/硬件接口层11可以定义多个驱动程序,用于操作电话硬件层15的硬件元件。驱动程序可以用多种程序设计语言中的任何一种语言编写,例如C语言。
1.3操作系统层
操作系统层11可以包括多个操作系统中的任何操作系统。下面讨论图2时将作更加详细的说明,核心电话功能层是这样配置的,抽象层1、3和5可以独立程序设计,不受操作系统层11的操作系统的限制。
操作系统层11的操作系统可以是一个实时操作系统(RTOS),或另一个操作系统,例如Windows、NT、Mac、OS、UNIX或LINUX,这些都是通用计算机更通用的操作系统。
在操作系统层11的一个实施方案中采用了RTOS操作系统,它可以是Wind River系统有限公司生产的VxWorks操作系统,而且操作系统层11还可以包含由Wind River公司提供的其它功能部分,包括:Personal JWorks 3.0(Personal Java,JDK1.1.6);TrueFFS Flash文件系统管理器;简单网络管理协议(SNMP)v1/v2c;和Rogue Wave工具.h++数据库。
1.4核心电话功能层
核心电话功能层9定义与电话通话有关的核心电话功能。图2是一个方框图,说明核心电话功能层9的一个实例实施方案,它包括一个操作系统抽象层33,核心电话功能模块25,电话应用程序目标模块23和核心电话功能应用程序设计接口模块21。
1.4.1操作系统抽象层
操作系统抽象层33连接操作系统层11的本地操作系统和电话系统结构的其余的模块和层,包括模块21、23和25以及层3和5。操作系统抽象层33提供了到本地操作系统(例如VxWorks或Windows NT)的接口,从而防止了其余的模块和层对本地操作系统的依赖。操作系统抽象层33可以包括抽象程序,用于保持数据和时间信息,登记事件,管理消息排队,管理插入式通信,使电话通信设备上的电话工作同步,管理作业和提供计时器。
1.4.2核心电话功能模块
核心电话功能模块25包括电话机管理模块27,媒体处理模块29和通话处理模块31。电话机管理模块27包括定义的一些抽象程序,用于处理低层设备的相互作用,如按钮的操作、键的操作和指示灯(发光二极管)的控制。
1.4.2.1媒体处理模块
媒体处理模块29为第一电话通信设备提供了一个框架,为一个或多个电话通话进行实时音频处理。媒体处理模块29可以这样组织,即把媒体数据流动时的等待时间减到最小。音频数据可以成块地处理,每个数据块是来自特定暂存区间的音频数据。例如,媒体处理模块29可以以10毫秒数据组为单位处理音频数据。例如,如同下面讲解图3时详细说明的那样,媒体处理元件30中的每个处理单元都可以以10毫秒数据组为单位处理媒体。
媒体处理模块29可以包括一个或多个媒体处理元件,每个媒体处理元件对应特定电话通话。在一个硬件实施方案中,媒体处理模块29可以包括多个在物理上相互独立的媒体处理元件,因而该媒体处理模块可以同时处理的电话通话的个数是由这些在物理上相互独立的媒体处理元件的个数限定的。在这种硬件实施方案中,至少媒体处理模块29的一部分可以通过专用的数字信号处理机来实现。
在软件实施方案中,使用面向目标的程序设计语言,例如C++或Java。可以使用一个或多个抽象程序(例如类别或结构)来代表媒体处理模块29以及一个或多个媒体处理元件,如同下面讲解图4时详细说明的那样。
1.4.2.1.1媒体处理元件
图3是一个数据流程图,说明媒体处理元件30的一个实例实施方案。按照传统,只有音频与电话通话有关,但是最近视频也成为了电话通话的一个组成部分。如同下面详细说明的那样,第一电话通信设备可以支持包括音频、视频和其它有关数据的电话通话。同样地,虽然下面描述的大部分媒体数据和媒体处理元件是与音频有关的,但是媒体处理元件30也可以包括视频处理单元,该视频处理单元同媒体处理元件30里的音频处理单元协调处理视频数据。
媒体处理元件30可以包括一个或多个连接媒体输入接口41,用户媒体输入接口59,本地通话桥接器51,一个或多个连接媒体输出接口87和用户媒体输出接口82。
对于第一电话通信设备的一个或多个第一用户和一个或多个第二电话通信设备的一个或多个第二用户之间的电话通话来说,对于每个第二电话通信设备,通话处理模块31(下面与图4一起作更详细地介绍)保持与第二电话通信设备的相对应的连接。该电话通话的媒体处理由媒体处理元件30实现。每个连接媒体输入接口41和相关的连接媒体输出接口87一起实现第一电话通信设备和第二电话通信设备之间的连接。
每个网络连接媒体输入接口41包括输入缓冲存储器42,稳定缓冲存储器44和解码器47。
输入缓冲存储器42接收连接输入媒体40并产生连接媒体43。连接输入媒体40是,通过来自另一个电话通话参加者的网络连接,从网络的传输媒体接收的媒体数据,并且它可以以数据包的形式接收,所述数据包符合一个或多个媒体传输协议,例如实时传输协议(RTP)和实时传输控制协议(R传输控制协议)。输入缓冲存储器42可以打开连接输入媒体40,方法是把媒体传输信息从连接输入媒体40的音频数据包中移出,从而产生连接媒体43。
连接输入媒体40可以是来自一个暂存间隔的一个数据块,该暂存间隔大于媒体处理元件30按照配置应处理的暂存间隔,例如10毫秒。同样,输入缓冲存储器42可以按照配置存储连接输入媒体40,以对应于配置的暂存间隔的数据块的形式处理输入连接媒体40,并且以符合配置的暂存间隔的数据块的形式输出连接媒体43。虽然在图3中没有表示出来,其它的输入、麦克风音频数据55、音调指示器57和存储的音频数据58也可以被输入缓冲存储器接收并储存起来,致使回音抑制器/消除器61、音调产生器69和第一混合器74接收到的输入各自都成为一个符合配置的暂存间隔的数据块。
稳定缓冲存储器44接收连接媒体43并且产生稳定媒体43。稳定缓冲存储器44利用已知技术从连接媒体43移动信息以便从向第一电话通信设备的用户播放的合成媒体中消除“抖动”。在通过通信网络的网络媒体传输的过程中,连接输入媒体40的数据包可能已经被按照规定路线发送并复制了,从而连接输入媒体40可以包括重新要求的数据包和/或多个相同的数据包。例如,如果要求的数据包1、2和3已经从一个第二电话通信设备发送给了第一电话通信设备,数据包1可能复制了并且这些数据包可能重新要求了,致使数据包1、3、1和2都到达第一电话通信设备。电话通信设备的稳定缓冲存储器44包括识别以及消除重复要求和复制数据包的逻辑线路,致使稳定媒体45包括初始传送的媒体数据包1、2和3,这些是适当要求的并且没有重复。
所述连接输入媒体可能在传输到第一电话通信设备之前已经被第二电话通信设备利用已知技术编码了。解码器47接收稳定媒体45,并且利用已知技术对稳定媒体45解码以便产生解码的连接媒体49,然后连接媒体49被发送到本地通话桥接器51。
用户媒体输入接口59包括回波抑制器/消除器61,音调产生器69,第一混合器74,第二混合器65和分离器73。
回波抑制器/消除器61接收麦克风音频数据55并且产生消除了回波的音频数据63。麦克风音频数据55是通过麦克风从所述电话通信设备的用户接收的音频数据。例如,麦克风音频数据55可以从一部电话手机的麦克风、作为扬声器电话的一部分内置于电话基座里的麦克风或用作计算机输入的麦克风中接收到。
回波抑制器/消除器61可以包括抑制逻辑电路以控制麦克风音频数据55中的回波抑制。例如,如果电话通信设备有扬声器电话基座组件,包括基座扬声器,用于播放电话通话的音频信号,回波抑制器/消除器61可以包括回波抑制逻辑电路,以便发现什么时候麦克风音频数据55包含话音数据并且由于这个发现而关闭基座扬声器。因此,用户在通话期间正在使用的麦克风不从基座扬声器接收任何声音,否则这些声音会造成回波,使电话通话中的一个或多个话音包含在麦克风音频数据55中。
回波抑制器/消除器61还可以包括应用回波消除技术的回波消除逻辑电路,识别回波中的低密度、延迟的音频信号,并且从麦克风音频数据55中减去这些信号以产生去回波音频数据63。也可以采取其它回波抑制和消除技术。
音调产生器69接收音调指示器57的信号并产生指示音调71。指示音调71是在音调指示器57上指示出的音调。例如,音调指示器57可以代表用户从标准的按键式音频拨号键盘、计算机键盘或鼠标上输入的电话号码里的数字。在这个例子中,按照双音多频标准,音调产生器69产生的指示音调71可以是与所述数字相关的音调。
音调指示器57还可以代表与电话通话相关的其它音调。例如,为响应从钩键上摘下手持送受话器或按动电话机基座上的按键的用户,音调指示器57可以表示音调产生器69产生的拨号音。为回答与另一个正占线的电话通信设备建立通话的尝试,音调指示器57可以表示占线信号,并且音调产生器69可以像指示音调71那样,产生相应的占线信号。更进一步,为回答来自另一个电话通信设备的通话建立消息,音调指示器57可以代表来话指示器,例如铃声。与电话通话有关的其它音调可以由音调产生器69产生。
第一混合器74可以接收指示音调71和存储的音频数据58。存储的音频数据58可以是音频文件的一部分,或存储在音频存储媒体60里的其它形式的音频数据。例如,存储的音频数据58可以是流动音频,该音频是语音邮件的一部分或是预先录制的声音。音频存储媒体60可以是电话通信设备上的非易失性存储器或所述电话通信设备所在的通信网络上的其它存储资源。存储的音频数据58可以按照电话应用程序发送给第一混合器74。
第一混合器74可以配置一个或多个混合参数76。例如,一个或多个混合参数76可以指示与指示音调71和存储的音频数据58有关的权数。这些权数可以加权指示音调71和存储的音频数据58的幅度以便产生混合音频75。同样,混合参数76可以有效地使指示音调71或存储的音频数据58不能够混合,可以使其中的任何一个输入在产生混合音频75时受到更大的影响,或者加权,从而使存储音频数据58中的指示音调71均匀地混合。
分离器73接收混合音频75并且将混合音频75发送到第二混合器65和第三混合器83。
第二混合器65接收混合音频75和去回波音频数据63,并且将这两个输入混合以产生混合用户音频67。混合用户音频67被发送到本地通话桥接器51,本地通话桥接器51确定发送到通话的每个参加者的媒体。同样,第二混合器65可以配置一个或多个混合参数76以加权混合音频75和去回波音频数据的幅度,从而规定了这些输入中的每个输入对混合用户音频67的影响。
本地通话桥接器51接收混合用户音频67和一个或多个解码的连接媒体49,每个解码的连接媒体49对应于一个连接,并且产生一个或多个连接混合媒体53和用户专用的混合媒体81。本地通话桥接器51确定解码的连接媒体49中的哪一个和混合用户音频67混合以产生用户专用的混合媒体81以及每个所述一个或多个连接混合媒体53。更进一步,本地通话桥接器51可以接收桥接器参数52,桥接器参数52使本地通话桥接器51实现所述的混合。
例如,本地通话桥接器51可以这样配置,使用户指定的混合媒体81不包括混合用户音频67的部分或全部。这样的配置避免了电话通信设备用户听到用户说出的麦克风音频数据55。这种预防措施可能是用户所希望的,这不仅是因为用户可能不需要听到自己的声音,而且因为听到自己的稍微延迟的声音作为混合音频输出85的一部分可能会给用户带来混乱,或至少会使混合音频输出更加难以听懂。
同样,本地通话桥接器51可以这样配置,使与第一连接相对应的每个连接混合媒体53不包括与第一网络连接相对应的连接输入媒体43的媒体。例如,考虑会议通话,其中包括与第一电话通信设备对应的参加者U1,与第二电话通信设备对应的参加者U2和与第三个电话通信设备对应的参加者U3。本地通话桥接器51接收混合用户音频67,M1,对应第一用户和两个解码的连接媒体59,M2和M3分别对应第一用户U1和第二用户U2。本地通话桥接器51可以这样配置,将媒体M1和媒体M3混合以便产生连接混合媒体53,C1被发送到第二用户U2。与此类似,本地通话桥接器51可以这样配置,将媒体M1和媒体M2混合以便产生连接混合媒体53,C2被发送到第三个用户U3。
尽管对一些混合配置方案作了上述说明,本地通话桥接器51可以这样设计,桥接器参数52可以将本地通话桥接器51配置成能以多种方法中的任何一种方法进行混合。例如,如同下面讨论关于特点电话应用程序时描述的那样,应用程序可以定义特定的混合,或者说用户可以通过应用程序为一个或多个桥接器参数52赋值,它们定义特定的混合,致使混合用户音频67和一个或多个解码的网络媒体49的特定组合可以被混合,并且避免了产生用户专用混合媒体81和/或一个或多个连接混合媒体53的混合。
每个连接媒体输出接口87可以包括编码器89,它接收连接混合媒体53,并且利用已知技术为所述媒体编码,以便产生编码媒体91。输出缓冲存储器97接收编码媒体91并且使编码媒体91成形,例如,用增加运输协议数据(例如RTP和R传输控制协议)的方法产生连接输出媒体99。连接输出媒体99被传输到电话通信设备,该电话通信设备通过与连接输出媒体99对应的连接进行连接。
第三混音器83接收用户专用的混合媒体81和混合用户音频67,并且将这些输入混合以便产生混合音频输出85。混合音频输出85可以发送到多种音频输出装置中的任何装置,例如,第一电话通信设备的电话送受话器的扬声器或第一电话通信设备基座上的基座扬声器。
记录缓冲存储器93可以接收混合音频输出85和存储到音频存储媒体62的混合音频输出,例如,非易失存储媒体或通信网络上的第一电话通信设备外部的另一个存储资源。音频存储媒体62和音频存储媒体60可以是同一个存储媒体或者各自是同一个存储媒体的一部分。
第三混合器83的配置可以采用一个或多个混合参数76以便加权用户专用混合媒体81和混合音频75的幅度,从而限定了这些输入中的每一个对混合音频输出85的影响。
媒体处理模块29的各个处理单元,包括41、42、44、47、51、59、61、65、69、73、74、82、83、89和97以及与此有关的数据单元,包括40、43、45、49、52、53、55、57、58、63、67、71、75、76、81、85、91和99可以用软件、固件、硬件或其中的任何组合表示。
在一个软件实施方案的例子中,每个处理单元和相关的数据单元可以用通用面向目标的程序设计语言来表示,例如C++或Java。
图4是一个方框图,表示图2中通话处理模块31的一个示范实施方案以及与其有关的媒体处理模块29的一个示范软件实施方案。在所述媒体处理模块29的一个示范软件实施方案中,媒体处理单元30用面向目标的程序设计语言来表示,例如C++或Java来表示。
媒体处理模块29可以包括多个媒体处理控制程序115和多个媒体处理单元30,在这里每个媒体处理控制程序115和媒体处理单元30对应于特定的电话通话。
媒体处理单元30包括多个媒体处理抽象程序117,在这里每个媒体处理抽象程序117代表图3中的处理单元以及与所述处理单元有关的输入和输出数据单元。每个媒体处理抽象程序117可以是不同的类型,在这里每个类型继承了主媒体处理抽象程序。
每个媒体处理抽象程序117可以包括一个属性,验明媒体处理抽象程序117是属于哪一个媒体处理单元30,还可以包括能够在媒体处理抽象程序117上调用的多个方法。为一个或两个媒体处理抽象程序117定义的这些方法可以包括完成下列工作的方法:启动和关闭媒体处理抽象程序117,用媒体处理抽象程序117起始处理它接收到的媒体信息块,确定媒体处理抽象程序117的一个或两个状态,确定媒体处理抽象程序117是属于哪一个媒体处理单元30,确定媒体处理抽象程序117的名称和专用标识符,确定关于从媒体处理抽象程序117来的数据输入和输出信息,确定媒体处理抽象程序117输入和输出的最大和最小数目,确定为媒体处理抽象程序117规定的输入和输出的当前数目,确定是否媒体处理抽象程序117的一个输入或一个输出当前正处于连接状态,等等。
1.4.2.1.2媒体处理控制程序
媒体处理控制程序115控制媒体处理单元30的生成、运行和销毁。更具体地说,媒体处理控制程序115控制媒体处理抽象程序117的生成,媒体处理抽象程序117之间相互关系的定义,媒体处理抽象程序117的运行和媒体处理抽象程序117的销毁。
例如,媒体处理控制程序115可以包括生成和销毁媒体处理抽象程序117的方法。媒体处理控制程序115还可以包括将两个媒体处理抽象程序117连接在一起的方法,从而规定第一媒体处理抽象程序117的输出是第二媒体处理抽象程序117的输入。媒体处理控制程序115还可以包括破坏这种连接的方法,从而破坏了两个媒体处理抽象程序117之间的关系。这种对抽象程序和连接的增加和破坏可以被认为是分别建立和拆除媒体处理单元30,同样可以被认为是分别建立和断开电话通话。
应用程序层3里的电话应用程序和其它高层的抽象程序可以使用媒体处理控制程序115以便动态地生成媒体处理单元30,和在电话通话期间连接媒体处理单元。更进一步,电话应用程序可以被定义为使媒体处理单元以独特的方法配置,以便按照电话应用程序提供的特点生成用户媒体处理抽象程序。
媒体处理控制程序115可以包括启动和关闭媒体处理单元30的方法。如果当前有多个媒体处理单元30,代表多个电话通话,理想的做法可能是,如果特定媒体处理单元30所代表的电话通话没有被激活(例如,处于保持状态),则应该将这个媒体处理单元关闭,从而保护了处理资源。相反,如果电话通话被激活,则可以使用启动方法以便启动相关的媒体处理单元30。
媒体处理控制程序115可以包括指示媒体处理单元30何时作好处理媒体的准备的方法,以及指示该媒体处理单元30不再需要了,可以破坏了的方法。
媒体处理控制程序115可以包括下列方法:用媒体处理单元30起始下一个数据块的处理,给媒体处理抽象程序117定位,确定媒体处理单元30的媒体处理抽象程序117的数目和确定媒体处理单元30的连接的数目。
如同上述说明图3时描述的那样,媒体处理单元30可以包括一个或多个连接的表达式。同样,媒体处理控制程序115可以包括与媒体处理单元30所代表的每个连接相关的属性。更进一步,媒体处理单元30也可以包括检索到连接的指示符的方法。
如同上述说明图3的连接媒体输入接口41和连接媒体输出接口87时描述的那样,媒体可以以符合一个或多个媒体传送协议的数据包的形式接收和传输。同样,媒体处理模块29可以包含抽象程序,用于代表媒体传送协议的对话,例如RTP对话;并且媒体处理控制程序115可以包含指向这种属性的属性。更进一步,对于代表电话通话的连接的媒体处理抽象程序117来说,媒体传送协议,例如R传输控制协议,可以保持与所述连接有关的统计信息。一个或多个连接的统计信息可以累计并且由一个抽象程序代表以便监视在每个连接上媒体的传送。例如,该抽象程序可以是R传输控制协议对话。媒体处理控制程序115可以包含指向这个R传输控制协议对话的一个属性,并且可以包括一种检索到R传输控制协议对话的指示符的方法。
为在第一电话通信设备和另一个电话通信设备之间建立通话,媒体处理控制程序115可以包括一种方法,即确定每个电话通信设备支持的一个或多个音频处理编码算法。由于这个确定,媒体处理控制程序115可以分别控制媒体处理单元30的解码器47和编码器89所使用的解码和编码算法。
媒体处理控制程序115还可以包括一种生成连接媒体处理抽象程序117的方法,例如,连接媒体输入接口41和连接媒体输出接口87。
媒体处理控制程序115还可以包括控制进入媒体处理模块29的媒体输入的开始和停止的方法。例如,媒体处理模块29可以包括完成下列一个或多个功能的方法:控制音调产生器69以开始或停止产生指示音调71;控制连接输入媒体接口41,特别是输入缓冲存储器42,以便开始和停止产生连接媒体43;控制回波抑制器/消除器61以便开始和停止接收麦克风音频数据55;控制第一混合器74以便停止、开始或暂停接收存储音频数据58以产生混合音频75。
媒体处理控制程序115还可以包括控制媒体处理单元30的媒体输出的方法。例如,媒体处理单元可以包括实现下列功能的方法:控制用户输出媒体接口以便开始和停止向音频输出硬件传送混合音频输出85,以及开始和停止向音频存储媒体62存储混合音频输出85;和控制连接媒体输出接口,特别是输出缓冲存储器97,以便开始和停止向通信网络输出连接输出媒体99。
虽然第一电话通信设备当前可能包括多个电话通话,但是第一电话通信设备的用户在同一时间内只能有效地参与一个电话通话。例如,用户可以有两个电话通话处于保持状态,并有效地参与第三个电话通话。由于用户在同一时间内只能有效地参与一个电话通话,在任何给定时间,只有一个媒体处理单元30需要使用所述第一电话通信设备的一个或多个麦克风和一个或多个扬声器。因此,媒体处理控制程序115可以包括向媒体处理单元30分配和不分配麦克风和扬声器的方法。
为响应高层抽象程序,如应用层3的电话应用程序,所定义的功能,所述与媒体处理控制程序115和媒体处理单元30有关的所有功能都可以调用。明确地说,这些电话应用程序与通话处理模块31通信,以便控制同一个或多个电话通话有关的通话处理,并且通话处理模块31控制媒体处理模块29以便按照一个或多个电话通话对媒体进行处理。
独立地表示通话的媒体处理和通话处理,例如用通话处理模块31和媒体处理模块29,为通话处理模块31的设计提供了灵活性。例如,媒体处理模块可以作为数字信号处理的一部分或者作为一个或多个软件抽象程序来实现。因此,通话处理模块31可以这样配置,即通话处理模块31的抽象程序是多个媒体处理模块通用的,因而只需要编较少的程序就能使通话处理模块31适合媒体处理模块29的某个特定应用。1.4.2.2通话处理模块
图4更加详细地表示了图2中的通话处理模块31。通话处理模块31可以为一个或多个电话通话的状态过渡建立模型。因此,在第一电话通信设备上运行的应用程序,例如应用程序层3中定义的应用程序,可以查询通话处理模块31的抽象程序以确定电话通话的状态和它的连接。更进一步,应用程序可以设定,如果电话通话的状态,包括其连接中的一个,改变了,或者如果其它电话事件发生了,所述应用程序可以自动地得到提示。
通话处理模块31可以包括下列抽象程序:通话管理程序105,一个或多个通话109,一个或多个通话处理媒体接口113,一个或多个通话控制连接111,通话控制传送控制器107,一个或多个通话控制网络输入接口101和一个或多个通话控制网络输出接口103。
通话处理模块31完成的处理任务包括按照一个或多个通话控制协议,(例如信号协议)控制一个或多个通话,以及控制与每个通话有关的媒体处理和包含在所述通话中的一个或多个连接。1.4.2.2.1通话管理器
通话管理器105可以被看作是通话处理模块31的核心,并且作为通话处理模块和高层抽象程序之间的接口。通话管理器105控制代表第一电话通信设备当前正在参加的电话通话的一个或多个通话109。通话管理器105向有关的通话109通报电话事件。这些数据可以包括通话控制事件,例如通话控制信息,和应用级事件,例如指示生成新的通话109或连接,或终止连接或通话。例如,在电话通话期间,或者在建立或断开电话通话的过程中,高层电话应用程序可以调用通话管理器105定义的方法。随后通话管理器105可以调用有关通话109的相关方法。
每个通话109可以包括多种方法,其中很多方法同105的方法相关,通话管理器105是按照电话通话的完成而执行的。与有关的通话109对比,最好配置更高层的抽象程序同通话管理器105通信,因为通话109相对来讲是瞬变抽象程序,它们可能是一回来(例如电话通话期间)而一回去(例如某人挂断电话后)。相应地,通话管理器105提供时间较长的抽象程序,即不管第一电话通信设备当前是否参加电话通话,它都可以利用。
因为通话管理器105和它管理的每一个通话109都包括多种类似的方法,应该理解,为便于说明,下面描述几个与通话管理器105和通话109有关的方法,但是根据这些抽象程序的不同配置,这些方法对于这两种抽象程序都是适用的。
通话管理器105可以包含多种功能,用于控制电话通话的建立、保持、断开和媒体处理。
通话管理器105可以包含一个属性,它保持通话处理模块31当前所代表的所有通话109的单子,并且可以包括建立和断开通话的方法。例如,通话管理器可以通过回答用户拨号或进入URL,或者是通过响应用户拿起电话送受话器或按下按钮接电话而建立通话。
为响应第一电话通信设备用户挂上电话或为响应从另一个电话通信设备接收到的信号指示该机的用户已经结束了电话通话,通话管理器105可以断开通话。
通话管理器105可以包括一种确定通话处理模块31当前所代表的通话109的数目,和确定这些通话109中每个的通话状态的方法。通话管理器105和通话109定义模拟电话通话的状态与Java电话应用程序接口模拟电话通话相似。相应地,为电话通话定义的状态包括:通话状态,例如空闲、有效、或无效;终端状态,代表第一电话通信设备的状态;网络地址状态,代表第一电话通信设备的网络地址(即电话号码或URL);通话连接状态,使第一电话通信设备的网络地址和电话通话相关;和终端连接状态,使第一电话通信设备和连接相关。
终端连接可能最好是定义特定终端连接的状态,因为一个或多个电话通信设备可能与同一个网络地址相关。例如,一个家庭可能有多部电话用同一个电话号码。
通话管理器105可以包括与电话通话一般地相关的多种方法,包括给电话通话增加连接,断开电话通话,和将一个电话通话转移给另一个电话通信设备的方法。其它方法包括,为响应从另一个电话通信设备接收通话建立消息,可以定义接收与另一个电话通信设备连接的功能。接收电话通话可以包括调用媒体处理接口113上的控制电话响铃的功能。进一步的方法包括,为响应接收通话建立消息,可以定义功能,即或者是拒绝连接,包括调用媒体处理控制程序115的方法以控制产生占线信号并且将该信号发送给通话中的电话通信设备,或者是将发话中的电话通信设备改道到另一个电话通信设备。
通话管理器105还可以包括一种将连接从电话通话断开的方法,例如,为响应来自第一电话通信设备用户的输入或为响应接收到的信号,该信号指示另一个电话通信设备用户已经挂机。
通话管理器105还可以包括确定通话109的通话控制连接111的数目的方法,控制通话控制连接111的方法,和确定通话控制连接111的状态的方法。
通话管理器105还可以包括确定作为通话109的一部分已经通话了的网络地址的方法和确定作为通话109的一部分已经通话了第一电话通信设备的电话通信设备的网络地址的方法。
通话管理器105还可以包括完成第一电话通信设备和第二电话通信设备之间建立连接的方法,即向通话控制建立信息发送一个响应或向另一个电话通信设备发送一个通知,通报另一个电话通信设备已接收了通话邀请。这些方法可以与通话控制传送控制器107进行通信,下面将作详细说明。1.4.2.2.2媒体处理接口
对于每个通话109,媒体处理接口113提供通话109和媒体处理控制程序115之间的接口,以及对应于通话109的媒体处理单元30。通过媒体处理接口113通话109可以独立地控制它自己的媒体处理,不受其它通话109媒体处理的限制。
媒体处理接口113可以包括与媒体处理控制程序115的方法相应的多种方法。进一步说,媒体处理接口113可以包括根据特定电话事件控制媒体处理模块29处理媒体的方法。如同说明图4时描述的那样,媒体处理控制程序115可以包括这样的功能,即控制音调产生器69起始和停止指示音调71的产生。媒体处理接口113可以包括这样的功能,即控制媒体处理控制程序115以便控制对应于电话事件的特定音调的产生。例如,媒体处理接口113可以包括起始和停止播放特定音调的功能,如DTMF音调、拨号音调、指示另一个电话通信设备正在占线的音调(如忙音)、和指示电话通话正在到来的音调(如响铃)等等。
下述例子说明媒体处理接口113可具有的功能。通话管理器105可以接收,例如从电话机管理模块25,用户已经按下了电话机键盘上的按键的指示。通话管理器105确定与被按下的键有关的通话109,并且调用通话109上的一种方法以播放与该键相关的DTMF音调。随后,通话109调用媒体处理接口113上的有关方法以便开始播放DTMF音调,并且这种方法调用媒体处理控制程序115的有关方法以便控制音调产生器69接收音调指示器57。音调指示器57指示DTMF音调,并且产生像指示音调71一样的DTMF音调。
媒体处理接口113还可以包括一个或多个查询媒体处理模块29的方法。例如,媒体处理接口113可以包括判明媒体处理模块正在接收连接输入媒体40和传送连接输出媒体99的方法。
媒体处理接口113还可以包括向电话机管理模块25查询关于低层设备的状态,如钩键,的方法。例如,媒体处理接口113可以包括一个或两个查询电话机管理模块25的一个或两个抽象程序的方法,以便判明电话机是否处于摘机状态。
媒体处理接口113还可以包括下列方法:确定电话通信设备所支持的编码解码算法,指定音频输出装置以便发送混合音频输出85,以及确定音频输出装置当前是否可接收通信,例如通过查询电话机管理模块25。
媒体处理接口113可以是任何一种类型的媒体处理接口113。例如,作为电话系统结构1的一个部分驻留在第一电话通信设备中。在另一个例子中通话处理模块31可以配置在两个网络之间的媒体网关上,或不同信号协议之间的信号网关上完成通话处理。在这些情况下,媒体处理接口113可以是这种类型,即它是为特定网关所需的处理类型而专门定义的。
媒体处理接口113主要对付处理媒体。通话处理媒体31的另一个方面是控制电话通话,包括使用通话控制(即信号)协议。现在将对通话处理模块31的这方面的功能作详细说明。1.4.2.2.2通话控制协议
通话109可以是通话的特定种类,例如,同等对同等(同等通话)或主/从通话(从属通话)。同等通话109代表的通话包括遵守同等对同等协议的一个或多个连接,例如会话启动协议或H.323,并且可以包括遵守主/从协议的一个或两个连接,例如媒体网关控制协议、Megaco/H.248或Skinny Station。从属通话109代表的通话包括遵守主/从协议的一个或两个连接。通话109的每个类型都包括抽象程序,用于定义符合通话中连接类型的数据,和定义根据协议类型控制电话通话的方法。
从通话109是由第一电话通信设备外部的网络资源控制的通话。从通话109可以是多个主/从通话类型中的一种,这些类型包括媒体网关控制协议通话、Megaco/H248通话或SkinnyStation通话。媒体网关控制协议通话109、Megaco/H248通话109或Skinny Station通话109分别是遵守媒体网关控制协议、Megaco/H248和Skinny Station协议的通话。每种类型的从通话可以被定义为抽象程序,该抽象程序继承通用从通话109的抽象程序,并且可以进一步定义与它代表的从通话类型有关的功能。
通话处理模块31包括一个或多个通话控制连接111。每个通话控制连接111(幻影通话连接除外,下面将作详细说明)有一个对应的媒体控制通话连接,该连接由媒体处理模块29的媒体处理抽象程序117代表。如同上面关于媒体处理单元30的说明一样,这些媒体处理抽象程序代表了连接的媒体流动。与此相反,通话109的通话控制连接111定义和控制第一电话通信设备上的信号通信,这些通信根据特定的通话控制协议与通话109相联系。
从通话109可以包括多个从通话控制连接111,它们按照从通话控制连接111所代表的主/从通话控制协议的类型控制第一电话通信设备上的通话信号通信。
对于同等通话109,每个通话控制连接111可以是多种类型中的一个,这些类型包括H.323通话控制连接、会话启动协议通话控制连接、幻影通话控制连接和从代理通话控制连接。
H.323通话控制连接和会话启动协议通话控制连接分别按照H.323协议和会话启动协议控制第一电话通信设备上连接的信号通信。
幻影通话控制连接代表两个另外的电话通信设备之间的连接。例如,如果第一电话通信设备传送通话给另一个电话通信设备,并且由于某种原因想跟踪所传送的连接的进展情况,这时可以使用幻影通话控制连接以便监视这两个另外的电话通信设备之间的连接的状况。为监视所传送的连接的状况,幻影通话控制连接可以从这两个另外的电话通信设备中的接收通信。因为这个连接是在这两个另外的电话通信设备之间,幻影通话控制连接没有对应的媒体处理连接。
如果同等通话109代表包含从连接器的通话,则可以使用代理从通话控制连接111的从代理通话控制连接111来代表所述从连接111。
通话109代表的电话通话可以包括多个连接,每个连接由通话控制连接111代表。如同上述说明的那样,包含在电话通话中的每一个连接可以遵守多个通话控制协议中的任何一个协议。因此,通话109可以控制一个或多个通话控制连接111,而每个通话控制连接111都属于不同类型,如,H.323通话控制连接或会话启动协议通话控制连接。
用独立的通话控制连接111代表电话通话的每个连接,元件独立地代表电话通话的媒体处理和通话处理使包含多个通话控制连接111的通话109能够同时代表和控制每个连接,在这里每个连接可以遵守多个通话控制协议中的任何一个协议。
例如,在第一电话通信设备、第二电话通信设备和第三个电话通信设备之间进行电话通话期间,第一和第二电话通信设备之间可能存在第一连接,而第一和第三个电话通信设备之间可能存在第二连接。第一连接可以由会话启动协议通话控制连接111代表,而第二连接可以由H.323通话控制连接111代表。更进一步,第一和第二连接可以由代表连接的媒体处理的独立媒体处理抽象程序117代表。
代表这种电话通话的通话109可以控制会话启动协议和H.323通话控制连接111以及相应的媒体处理抽象程序117。在电话通话期间,对于每个通话控制连接111,按照该连接所代表的通话控制协议,会话启动协议或H.323,通话109可以调用媒体处理接口113的方法,该接口调用媒体处理控制器里的方法以便通过相关的媒体处理抽象程序117控制有关连接上的媒体的处理。
通话控制连接111在较高的层次上控制第一电话通信设备上的连接的信号通信。通话处理模块31也包含通话控制传送控制器107,该控制器在较低的级别上控制第一电话通信设备上的连接的信号通信,即控制信号的运送和保证从通话处理模块31发出的和在该模块上收到的信号信息的可靠性。
通话处理模块31还包括通话处理网络输入接口101,用于接收符合通话控制协议的通话控制信息;和通话处理网络输出接口103,将通话控制传送控制器107来的通话控制信息传送给通信网络。
要发送通话控制信息,例如会话启动协议信息,通话控制连接111发送所述信息到通话控制传送控制器107,然后该控制器将通话控制信息发送到通话处理网络输出接口103,然后该接口将通话控制信息发送到通信网络。
对于输入的通话控制信息,通话处理网络输入接口101接收通话处理信息并将所述信息通报给通话控制传送控制器107,该控制器将输入通话控制信息通报给通话管理器105。通话管理器105随后将通话控制信息发送给有关的通话109,它包括通话控制连接111,该连接代表网络连接,所述通话控制信息就是从该网络连接接收到的。
通话控制传送控制器107还向通话管理器105通报,已经发送到通信网络上的通话控制信息,但由于某种原因没有到达它们的目的地。更进一步,为了应付上述情况,通话控制传送控制器107可以通过通话处理网络输出接口103重新发送通话控制信息给通信网络。
使用上述各种抽象程序,通话处理模块31可以配置成支持多种通话控制协议中的任何一种协议。更进一步,通话处理模块31,或使用通话处理模块31的应用程序,可以配置成为了特定的连接选用多个通话控制协议中的一种协议。这种选择可以取决于多种因素中的任何因素,包括网络资源以及使用该连接与第一电话通信设备相连接的电话通信设备的能力。
对于从第一电话通信设备输出的通话,通话处理模块31或其它电话应用程序可以这样配置,即选择通话控制协议以便按照用户的URL输入或数字顺序与另一个电话通信设备建立通话。例如,应用程序可以定义规则,指出如果用户键入三个数字的分机号码号,使用H.323协议控制电话通话。更进一步,应用程序可以包括一个规则,指出如果用户键入由十个数字组成的公共交换电话网的电话号码,则使用会话启动协议控制电话通话。
在另一个例子中,应用程序可以定义一个规则,指出,如果用户键入包含字符串“会话启动协议”的URL,则电话通话用会话启动协议控制;如果用户键入包含字符串“H.323”的URL,则用H.323协议控制。
重要的是,因为与不同通话控制协议有关的细目由通话控制模块31管理,核心电话应用程序设计接口层21和开放应用程序设计接口层5可以用来开发所有通话控制协议通用的应用程序,从而使通话控制细目由通话控制模块31管理,下文将分别对核心电话应用程序设计接口层21和开放应用程序设计接口层5作更详细的说明。因此,通话控制模块31允许核心电话应用程序设计接口层21和开放应用程序设计接口层5两者的应用程序设计接口成为独立的-通话-控制-协议。
虽然可以在第一电话通信设备的配置中使它能够支持任何数目的通话控制协议,并且可以为连接选择特定通话控制协议,然而通话控制模块31,核心电话功能层9的另一个模块,或应用层3的一个或多个电话应用程序可以将第一电话通信设备配置成只支持某些通话控制协议。为了便于说明,将结合通话控制模块31对支持特定通话控制协议的第一电话通信设备在配置中可能使用的各种技术作一介绍,尽管其它的模块或层也可能定义应用程序使用同样的技术。
通话控制模块31可以被配置成能够确定第一电话通信设备所在的通信网络所支持的通话控制协议。例如,当在用户驻地第一次启动时,通话控制模块31可以发送通信到用户通信网络以便确定支持何种通话控制协议,确定第一电话通信设备应该用什么网络资源进行通信以便执行通话控制协议,以及安装支持通话控制协议的各种必要软件。更进一步说,通话控制模块31可以这样配置,即能够确定对于打进来的和打出去的电话通话,该通信网络支持何种通话控制协议。
通话控制模块31可以配置成能够以多种方式完成上述发现过程,包括:由于在现场被启动的结果、定期地、按照用户要求、或其中的任意组合。更进一步说,这个发现过程可以由另一个网络资源为第一电话通信设备完成,例如,电话通信设备排定服务器,下面和图7一起作详细讨论。
在一个实施方案中,通话控制模块31的程序被设计为能够知道执行一个或多个通话控制协议可能使用的一个或多个网络资源的位置。
第一电话通信设备所在的通信网络可以包括动态主机配置协议(DHCP)服务器。该动态主机配置协议服务器可以配置成能存储关于所述通信网络支持的通话控制协议的信息,并且能够指出可以用来帮助执行一个或多个通话控制协议的一个或多个服务器。如果有这样动态主机配置协议服务器,通话处理模块31可以访问该动态主机配置协议服务器以便检索上述通话控制信息。使用动态主机配置协议服务器查找通话控制服务器见2000年4月6日IETF发布的互联网文件草案,标题是“DHCPOptions for Call Control Servers”(动态主机配置协议通话控制服务器的选择方案)见URL:
http://www.ietf.org/internet- drafts/draft-ietf-dhcp-01.txt。
如果通信网络没有包括动态主机配置协议服务器,或由于某种原因动态主机配置协议服务器不能返回必要的通话控制协议信息,通话处理模块31可以配置成能够与一个或多个其它网络资源联系以便确定该通信网络支持的通话控制协议,以及它们相关的服务器。
例如,为确定该通信网络是否支持H.323协议,以及通信网络上的H.323/会话启动协议信号网关的位置,可以使用看门人发现技术。例如,国际电信联盟在ITU-T Recommendation中描述的看门人发现技术:H.323分组式多媒体通信系统(H.323Packet-Based Multi-Media Communications Systems),瑞士日内瓦,1998年2月。
为确定通信网络是否支持会话启动协议,以及通信网络上的会话启动协议服务器的位置,通话处理模块31可以这样配置,即使用SRV DNS记录确定一个或多个会话启动协议服务器的位置。参见RFC2543文件中的附件D,见会话启动协议:SessionInitiation Protocol by IETF,1999年10月26日。如果会话启动协议发现技术失败,通话处理模块31可以这样配置,即尝试使用用户数据协议和/或传输控制协议在系统设定口5060处的会话启动协议.<local domain>处联系会话启动协议代理服务器。
为确定通信网络是否支持媒体网关控制协议,以及通信网络上的WGCP通话代理人的位置,通话处理模块31可以配置成能使用SRV DNS记录的方法(类似上述为RFC2543中会话启动协议描述的技术)。媒体网关控制协议通话代理人是一个实体,负责控制使用媒体网关控制协议的通信网络里的电话通话。通话处理模块31可以这样配置,即如果定位媒体网关控制协议通话代理人的尝试没有成功,则尝试使用在媒体网关控制协议的系统设定口,2427口处的用户数据协议联系媒体网关控制协议.<local domain>处的媒体网关控制协议通话代理人。
为确定通信网络是否支持Megaco/H.248协议,通话处理模块31可以配置成使用上述媒体网关控制协议所用的类似的技术。Megaco/H.248协议标准见IETF RFC2885和ITU H.248。
通话处理模块31可以这样配置,即如果通信网络不支持特定的通话控制协议,可以为所述特定的通话控制协议安装节省空间的接线柱作为通话控制连接111。
通话处理模块31可以这样配置,即使用特定的通话控制协议,如会话启动协议,作为所有去话的通话控制协议。但是,如果通话处理模块31确定通信网络只支持单个的控制协议,通话处理模块31可以将该通话控制协议指定为所有去话都要使用的协议。
更进一步说,如果通话处理模块31确定通信网络支持去话的多个通话控制协议,但入站通话只有一个多个单个通话控制协议,通话处理模块31可以将这个单个通话控制协议指定为所有去话都要使用的通话控制协议。
通话处理模块31还可以这样配置,即使用特定的通话控制协议作为所有来话的通话控制协议。但是,如果通话处理模块31确定通信网络只支持单个的控制协议,通话处理模块31可以将该通话控制协议指定为所有来话都要使用的协议。
更进一步说,如果通话处理模块31确定通信网络支持来话的多个通话控制协议,但出站通话只有一个单个通话控制协议,通话处理模块31可以将这个单个通话控制协议指定为所有来话都要使用的通话控制协议。
使用抽象程序101-103,通话处理模块31可以这样配置,即按照通话控制协议,如会话启动协议,可以支持多个特点。这些通话控制特点可以包括:按照多种运送层协议,如运送控制协议(TCP)和用户数据协议(UDP),传送和接收通话控制信息;基本的通话建立功能,如发送通话建立消息和响应通话建立消息;和防火墙支持。
通话处理模块31可以支持在登记处或号码簿上,例如,在会话启动协议服务器上,登记第一电话通信设备。这种登记薄可以装在第一电话通信设备或另一个网络资源,例如,第一电话通信设备的伴随计算机或网络服务器。如同下面关于图7的说明中详细介绍的那样,这种服务器的每一个输入都可以将用户的名称或URL变换到第一电话通信设备的网络网络地址。
通话处理模块31还可以支持这种功能,即过了排定的时间后,可以使相对于第一电话通信设备的登记输入过期作废。更进一步说,通话处理模块31可以这样配置,即这种输入可以定期更新,以便防止当电话通信设备处于有效状态时(即通电时)用户的输入过期。
通话处理模块31还可以这样配置,即起始将电话通话置于保持状态。例如,可以从第一电话通信设备发送信号到另一个电话通信设备,表明第一电话通信设备将停止占用带宽。与此类似,通话处理模块31还可以这样配置,即从另一个电话通信设备接收信息,表明另一个电话通信设备将停止占用带宽(即将这个电话通话置于保持状态)。
通话处理模块31可以这样配置,即可以用多种方式重新安排电话通话。例如,通话处理模块31可以这样配置,如果第一电话通信设备用户正在参加另一个电话通话,则来话被重新安排到通信网络的另一个设备。例如,另一个设备可能是播放用户语音邮件的语音邮件服务器,或者可能是另一个电话通信设备。更进一步说,用户输入,例如从用户接口按键来的输入,可能表明用户不想受到打扰,不论用户是否正在参加电话通话。因此,来话将被自动重新安排。另一方面,如果在排定的时间过后或排定的响铃次数过后来话没有接,来话也可以被重新安排。最后,来话可以在接到用户输入后按要求重新安排。
通话处理模块31可以这样配置,即支持电话通话的盲目传送和协商传送。在进行盲目传送时,通话处理模块31可以这样配置,对于第一电话通信设备的第一用户和第二电话通信设备的第二用户之间的电话通话,指示第二电话通信设备与电话通信设备的第三个用户建立通话。为第二电话通信设备下达指示后,第一电话通信设备将确定第一电话通信设备和第二个电话通信设备之间的连接,不需要预先同第三个电话通信设备用户协商。
对于协商式传送,第一电话通信设备将建立与第三个电话通信设备的连接。然后第一用户可以与第三个电话通信设备的用户协商(即通话),之后第一电话通信设备可以指示第二电话通信设备建立与第三个电话通信设备的通话,或者指示第三个电话通信设备建立与第二电话通信设备的连接。
不论是盲目传送还是协商传送,应用程序都监视建立新连接的进展情况,使用包括幻影通话控制连接111的通话109。原来被第一电话通信设备指示建立包含新连接的新的电话通话的另一个电话通信设备可以向第一电话通信设备发送一个或多个通话控制信息,向第一电话通信设备通报新连接的状况。如果由于某种原因,想监视和/或记录新连接的状况,幻影通话控制连接111可以保持所述状态信息。
通话处理模块31可以这样配置,即记录与电话通话有关的一个或多个连接的常规信息。这些常规信息可以包括作为电话通话的一部分的连接的持续时间,并且所述常规信息可用作多种用途,包括作帐单。
通话处理模块31,按照连接的通话控制协议,还可以支持将非-通话控制协议信息,例如,音频文件、正文文件、应用程序、数据文件以及数据文件或应用程序的指示字等,附在通话控制协议信息上。例如,通话处理模块31可以这样配置,即多部分MIME(多用途互联网邮件扩展)可以附在会话启动协议信息上。
通话处理模块31可以这样配置,即按照连接的通话控制协议,将第一电话通信设备支持的系统能力和/或附加特点和功能通报给另一个电话通信设备。例如,通话处理模块31可以这样配置,即使用会话启动协议信息的场地将第一电话通信设备的能力和附加特点通报给其它电话通信设备,并且可以协商两个电话通信设备之间使用的公共权能。
通话处理模块31可以这样配置,即记录第一电话通信设备和另一个电话通信设备之间连接的持续时间。更进一步说,通话处理模块31可以这样配置,即按照排定时间间隔向另一个电话通信设备发送和/或从另一个电话通信设备接收信息,以便指示信息的发送者现在仍然参加通话。在始终接收不到挂断电话的通话控制信息的情况下,按照排定间隔发送这种信息可以防止判断电话通话持续时间时出现错误。
通话处理模块31可以这样配置,即支持多种已知的鉴别方法,包括基本的和分类的鉴别方法。更进一步说,通话处理模块31可以这样配置,即对第一电话通信设备提供不同的已知鉴别,包括与另一个电话通信设备一起的对称鉴别,以及当为另一个网络资源作鉴别时采用的代理鉴别。
更进一步说,通话处理模块31可以这样配置,即重新邀请通话参加者回到通话中来。当更改连接所用的编码算法时重新邀请可能是一个好的方法,所述更改是为了响应可利用的网络资源的变化或者为了响应会议通话中涉及到的连接数目的变化。
通话处理模块31可以这样配置,即将两个电话通话合并成一个电话通话。例如,通话管理器105可能管理第一电话通话109,包括第一会话启动协议通话控制连接111和第一H.323通话连接111,和第二电话通话109,包括第二会话启动协议连接111。在这里,每个通话控制连接111还有一个相应的媒体处理连接117。将这两个电话通话合并在一起,通话管理器105可以这样配置,即在代表所述第二会话启动协议连接111的第一通话109上生成第三连接,以及生成一个相关的媒体处理连接117。当关于第二通话109和第二会话启动协议连接111的所有信息传输后,通话管理器105可以断开第二通话109。因此,所述第一通话109保持,包括两个会话启动协议通话控制连接111、一个H.323通话连接111和三个媒体处理连接117。
回到图2,电话机管理模块27、媒体处理模块29和通话处理模块31是相对低层的模块,包括抽象程序,它们采集电话事件并将这些事件通报给其它抽象程序。得到通报的抽象程序可以是由核心电话功能模块中的其它模块27、29或31中的模块定义的抽象程序,或者可以是来自电话应用目标模块23的抽象程序。1.4.3电话应用目标模块
电话应用目标模块23可以包括多个电话应用抽象程序,例如,用户抽象程序、服务器抽象程序、信息抽象程序、和运送抽象程序,以便实现应用层3中定义的电话应用程序和核心电话应用模块25定义的核心电话功能程序和与JT应用程序设计接口定义的电话抽象程序相关的抽象程序之间的本地和远程通信。
电话应用目标层23可以包括逻辑程序,实现同步和非同步通信以便处理要求-应答指令和事件通报;以及抽象程序,定义到核心电话功能应用程序设计接口层21的接口以便实现在核心电话功能层21上的抽象程序的远程功能通话。
因此,电话应用目标层23允许层15、13、11、33和25在逻辑上和实物上保持独立,独立于其它的层21、5和3。因此层21、5和3可以完成配置在第一电话通信设备中,并且调用核心电话功能层9的抽象程序上的远程功能通话以便开发和执行电话应用程序,或者可以部分地配置在电话通信设备内而其余部分配置在第一电话通信设备的外部。
电话应用目标层23可以用面向目标的程序设计语言编写,如C++或JAVA,并且可以包含相当于JAVA定义的抽象程序的抽象程序。1.4.4核心电话功能应用程序设计接口
核心电话功能应用程序设计接口21提供了到第一电话通信设备的核心电话功能的程序设计接口。核心电话功能应用程序设计接口21可以包含多个相当于JTAPI提供的抽象程序的抽象程序。例如,核心电话功能应用程序设计接口21可以包含多个用C++语言编写的抽象程序,它们是从JT应用程序设计接口的JAVA抽象程序仿造来的。核心电话功能应用程序设计接口21可以用PT应用程序设计接口执行,PT应用程序设计接口由马萨诸塞州沃伯恩的Pingtel公司提供。
如上所述,核心电话功能应用程序设计接口21的每个抽象程序可以有定义好的状态和事件集,它们随着状态的转换而被激活。同JT应用程序设计接口类似,核心电话功能应用程序设计接口21的核心抽象程序可以包含下列抽象程序:提供者、网络地址、终端通话、连接、终端连接、终端和听众。核心电话功能应用程序设计接口21可以这样配置,即只有持特许证的供货商才有权使用、因而才能够操作第一电话通信设备的核心电话功能。
电话系统结构层9-15向第一电话通信设备提供了核心电话功能和程序设计接口,以便持有特许证的供货商操作核心电话功能和在它上面增加附加功能。因此,如果第一电话通信设备部署在现场并且只配有层9-15,只有持特许证的供货商才能够扩展或修改第一电话通信设备的电话功能。
为了使第一电话通信设备正常工作,最好将某些核心电话功能封闭。例如,最好是限制使用在核心电话层定义的抽象程序,它控制通话建立消息的配置要符合特定的通话控制协议,如会话启动协议。如果不对这个使用加以限制,就可能造成第三方供货商或用户破坏这些抽象程序,从而使第一电话通信设备不能够向符合会话启动协议的通信网络发送信息。
在另一方面,最好使用户和第三方供货商能够开发在第一电话通信设备上运行或与第一电话通信设备配套的应用程序。因此,最好有更加开放和可以扩充的电话系统结构。1.5开放式应用程序设计接口层
相应地,电话系统结构1可以包含层1-5以便允许第一电话通信设备在现场部署后其功能可以扩展和修改。
开放式应用程序设计接口层包含抽象程序,它们是由应用程序设计接口层5为应用层3开发的应用程序。例如,开放式应用程序设计接口层5的应用程序可以包含用JAVA程序设计语言编写的电话框架级别,以及包含一个太阳微系统公司生产的JAVA虚拟机(JVM)。
开放式应用程序设计接口层5为软件开发者提供开放式应用程序设计接口以便为应用层3开发应用程序,包括电话应用程序和非电话应用程序。为使开放式应用程序设计接口层5向软件开发者们开放,开放式应用程序设计接口层的应用程序设计接口,如应用程序设计接口6、7和8,和10可以配发或在互联网上公开。例如,xpressa Development Kit可以提供一个或多个应用程序设计接口,并且可以从Pingtel公司获得,网络地址为
http://www.pingtel.com.。
开放式应用程序设计接口层5可以包含一个或多个用户接口应用程序设计接口6,一个或多个系统应用程序设计接口7,一个或多个电话应用程序设计接口8,和一个或多个媒体应用程序设计接口10。1.5.1用户接口应用程序设计接口
用户接口应用程序设计接口6帮助开发者为第一电话通信设备开发图形用户接口(GUI)。用户接口应用程序设计接口6可以提供多个控制器和格式,用于设计图形用户接口。例如,用户接口应用程序设计接口可以是JAVA抽象窗口工具包(AWT)或xpressa窗口工具包(xWT),它是JAVA AWT的扩展,可以从Pingtel公司获得,网络地址为http://www.pingtel.com.。1.5.2电话应用程序设计接口
电话应用程序设计接口8提供多个抽象程序,用于为第一电话通信设备增加功能和用于操作第一电话通信设备的功能。电话应用程序设计接口8可以是太阳微系统公司的JT应用程序设计接口,或其中的一个执行程序。JT应用程序设计接口规范可以从网上获得,网络地址
http://java.sun.com/products/jtapi/。相应地,电话应用程序设计接口8可以包含多个与JT应用程序设计接口对应的抽象程序,包括第一电话通信设备的网络地址,第一电话通信设备参加的电话通话,这些电话通话中包括的连接,一个或多个提供第一电话通信设备相关电话服务的提供者,与第一电话通信设备相关的终端等。其它抽象程序可以包括观察者、听众、特例、事件、状态、与此有关的方法、或JT应用程序设计接口提供的任何其它抽象程序。
其它电话应用程序设计接口8可以包括JT应用程序设计接口的简化版本,适合更现代化和更简单的用法。例如,电话应用程序设计接口8可以包括简单的电话应用程序设计接口(ST应用程序设计接口),可以从Pingtel公司获得,网络地址为http://www.pingtel.com.。
除了事件抽象程序和听者接口外,电话应用程序设计接口可以包括挂钩以便使应用程序开发者改变第一电话通信设备的某些时间性很强的行为。挂钩是一种方法,例如,一种JAVA方法,如果发生特殊类型的事件,它可以被抽象程序调用。例如,电话应用程序设计接口6-8中的每一个都可以提供挂钩,它们使开发者改变主叫用户识别信息,重新安排或过滤电话通话,以及确定第一电话通信设备如何向用户指示来话。例如,第一电话通信设备可以用视觉指示来话,如闪光;可以用听觉指示来话,如发出嘟嘟声;或它们的组合。
开放式应用程序设计接口层5还包括语言接口,用于连接开放式应用程序设计接口层5定义的抽象程序和核心电话功能层9定义的抽象程序,特别是电话应用目标模块23定义的抽象程序。例如,如果开放式应用程序设计接口层5的一个或多个应用程序设计接口是用JAVA定义的,而电话应用目标模块是用C++定义的,则语言接口可以是JAVA Native Interface(JNI)。1.5.3系统应用程序设计接口
系统应用程序设计接口7为电话系统结构1提供系统范围内的工具。例如,系统应用程序设计接口可以包括应用管理器,用于启动、停止、加载、卸载和监控在应用层3运行的应用程序。更进一步,系统应用程序设计接口7还可以包括应用仲裁程序,用于调节应用程序,防止应用程序之间产生矛盾和解决它们之间的矛盾。系统应用程序设计接口可以提供部分xpressa开发工具包。1.5.3.1应用管理器
应用管理器包括安装在第一电话通信设备里的Web服务器,用于加载和卸载第一电话通信设备上的应用程序。相应地,用户可以使用Web浏览器进入Web服务器。该Web浏览器可以装在第一电话通信设备上,或者装在另外一个网络资源上,如计算机。例如,如同下面介绍图7时描述的那样,如果第一电话通信设备配置成一部电话机,最好将Web浏览器和其它工具装在计算机上,以便应用程序开发者和其它人员可以使用计算机更广大的资源(如内存、视频监视器、键盘、鼠标)开发和加载应用程序。
要通过应用管理器Web服务器向应用层3增加应用程序,用户可以规定地点和文件名称。例如,通过Web浏览器用户可以指定URL,可执行的文件,如JAVA档案文件(.JAR)就存放在这里。
根据第一电话通信设备的配置,应用管理器Web服务器可以将指定文件存储在第一电话通信设备本身,将指定文件存储在另一个网络资源并保持到该网络地址的标识符,或将标识符存储在用户指定的URL里。
要卸下应用程序用户只需简单地通过Web浏览器输入应用程序名称,应用管理器Web服务器将卸下指定的应用程序。
除了Web上的用户/服务器应用程序外,应用管理器可以使用其它类型的应用程序实现。1.5.3.2应用程序仲裁器
应用程序仲裁器可以这样配置,即提供两个普通功能,安全和解决矛盾。
应用程序仲裁器可以为第一电话通信设备提供安全,方法是对应用程序的添加、修改和执行进行管制。例如,为了达到某些标准,应用程序仲裁器可以要求在第一电话通信设备上安装、或改装和重新安装一个应用程序。例如,对于应用程序执行中需要使用的第一电话通信设备资源,如抽象程序,该应用程序必须登记一个关于这些资源的清单。应用程序仲裁器可以这些配置,即如果应用程序不包括这个清单,应用程序仲裁器就拒绝这个应用程序。
如果应用程序包括这个清单,对清单进行检查后应用程序仲裁器可以拒绝这个应用程序,要求对该应用程序进行改装以便不使用某些资源。与此相反,应用程序仲裁器可以接受这个应用程序,并且附上批准该应用程序的标志,从而该应用程序可以在第一电话通信设备上执行。
应用程序仲裁器可以这样配置,即自动接受或拒绝应用程序,或者提供用户接口使用户,如系统管理员,评审每个应用程序的资源清单,并且用手动方法接受或拒绝该应用程序。
应用程序仲裁器可以这样配置,即对执行中的应用程序进行监控。如果该应用程序所使用的资源没有在应用程序仲裁器处登记,应用程序仲裁器可以停止该应用程序的继续执行。
应用程序仲裁器提供的另一个普通功能是解决矛盾。对于典型的通信网络来说,在通信网络上运行的电话功能之间会出现矛盾。从历史上说,以PBX为基础的电话网络进行过矛盾检查测试并且提供了矛盾出现时的有关处理方法。但是,在有一个或多个具有可修改和可扩充功能的电话通信设备的通信网络上,每个电话通信设备可以有一个定义在它上面的特殊应用程序集,从而可能会出现多种多样的矛盾。因此,最好使用更加主动的技术来对待这些潜在的矛盾,包括防止应用程序之间矛盾的技术以及当矛盾出现时发现和解决矛盾的技术。
相应地,应用程序仲裁器可以配置成能够解决驻留在电话通信设备或在电话通信设备上执行的一个或多个应用程序之间的矛盾。
如上所述,应用程序可以与核心电话功能层9的抽象程序交流以便监视电话事件。特别是应用程序可以登记这种功能,即当事件发生后它可以得到通知。对待应用程序之间的矛盾,首先,对于这样的矛盾,即两个或多个应用程序已经登记了如果发生矛盾要得到通知,应用程序仲裁器可以配置成定义一个命令,命令将矛盾通知到所述应用程序。其次,应用程序仲裁器可以这样配置,即规定是否由应用程序a)处理和转播电话事件,b)毁灭和不转播电话事件。
如果应用程序处理这个事件,当应用程序按照事件的发生执行功能后,应用程序将事件的发生通知下一个登记过的应用程序。如果规定应用程序毁灭这个事件,当应用程序按照事件的发生执行功能后,应用程序将不把事件的发生通知下面任何一个登记过的应用程序。
例如,通话等待应用程序可以这样配置,即监视通话处理模块31定义的当前的通话事件以便发现任何状态变化,并且可以监视从网络来的通话事件以便确定是否有新通话到来。如果当前的通话状态没有变化(即电话通话仍在进行),这时如果发生来话事件,通话等待应用程序可以(a)处理这个事件,即激活通话等待并且将新的来话信息传给其它登记有权知道的应用程序;或(b)毁灭这个事件,即激活通话等待,但是不将新的来话信息传给其它登记有权知道的应用程序,甚至包括那些登记为自动被告知的应用程序。例如,即使通话传送应用程序可能被登记为当有来话发生时被告知,如果该通话传送应用程序在通话等待应用程序之后到来,并且该通话等待应程序被定义为毁灭来话事件,则通话传送应用程序将得不到关于来话的通知或接收不到任何有关来话的信息。依靠防止通话传送应用程序得到关于来话的通知这种办法,避免了通话等待应用程序和通话传送应用程序之间的矛盾。1.5.4媒体应用程序设计接口
虽然电话应用程序设计接口8使开发者能够使用定义好的高层积木式程序块,如JT应用程序设计接口提供的抽象程序,开发电话应用程序,但是最好使用低层媒体处理积木式程序块设计更专业化的媒体处理应用程序。
相应地,媒体应用程序设计接口10可以提供工具使开发者直接接触和操作媒体处理模块29的媒体抽象程序,在上面介绍图3和4时对该模块有更详细的描述。开发者可以使用媒体应用程序设计接口10开发专业化的媒体处理应用程序,在第一电话通信设备上运行,以便定义用户媒体功能,例如,调用媒体处理控制器115的方法连接、生成和销毁媒体处理单元。
例如,媒体应用程序设计接口10可以用来生成和合并媒体处理模块29的各种处理单元,以便开发允许会议通话中的两个或多个参加者在会议通话期间开小会的应用程序,或者能使符合特定协议,如MP3,的流动音频混合到电话通话中的应用程序,或者在第一电话通信设备上执行个性化语音邮件系统的应用程序。
应用程序层3里的电话应用程序,和其它高层抽象程序可以使用媒体处理控制器115以便动态地生成媒体处理单元30,并且在电话通话期间连接媒体处理单元。更进一步,可以定义电话应用程序以特殊方式配置媒体处理单元,以便按照电话应用程序提供的特点生成用户媒体处理抽象程序。2.电话通信设备的电话机实施方案
图5所示的是第一电话通信设备作为电话机200的实施方案的一个例子。电话机200可以是台式电话机,与通信网络里的通信媒体有连接。例如,电话机200可以是局域网连接的台式电话机,如位于马萨诸塞州沃伯恩的Pingtel公司生产的Pingtelxpressa品牌,并且可能有一个装饰设计,该装饰设计见美国设计专利申请号No.29/120,479,标题是“电话机基座”,申请人JamesA.Batson,Jr.et al.,申请日期为2000年3月20日。
在另一方案中,第一电话通信设备可以采用更加小型化方案,例如,电池操作的无线电话,如模拟式移动电话,个人通信服务公司的无线电话,或第三代无线电话。
如图5所示,电话机200提供用户接口,包括电话基座202和手机204。电话基座202可以包括:显示屏206;屏幕滚动轮208;内容专用按钮210、按钮212;拨号按钮214;音量按钮216;电话功能按钮218;和相对于基座扬声器/麦克风222的扬声器送受话器按钮220,以及视频指示器224。
拨号按钮24可以用来拨电话号码。另一方面,电话基座202可以包括其它接口控制装置,例如旋转拨号器,用于输入电话号码。
电话功能按钮218中的每一个都可以用来完成一种特定功能,例如,激活/去激活手机,传送通话,麦克风基座噪声抑制,会议通话,和将通话置于保持状态。更进一步,每个按钮218可以有相关的视频指示器,当该按钮被激活时点亮指示器。例如,对于保持按钮218,如果通话被置于保持状态,则与按钮218有关的指示器被点亮。
视频指示器224可以用于指示一个或多个电话事件,例如,电话机200的用户有话音信息或者通话正在到来。其它视频指示器可以在电话机200上应用。
显示屏206可以是液晶显示器并且可以显示应用程序提供的数据和其它信息。更进一步,显示屏206可以采用触摸式逻辑进行设计,从而可以在显示屏206上用触摸方式输入选择和进入。用户接口控制器208、210和212可以用于访问显示的数据和信息。
滚动轮208可以和图形用户接口结合在一起,从而它可以操作信息在显示屏206上的位置,并且可以用于选择显示在显示屏206上的项目。滚动轮208使用户可以与显示在显示屏206上的内容页面相互作用。用户可以使用滚动轮改变显示在显示屏206上的信息,方法是从头到尾对数据进行滚动和浏览,然后可以选择一个特定项目。
可以用一个或多个应用程序使滚动轮实现依靠应用程序进行工作。这些应用程序可以为滚动和选择活动提供多种选择,从而可以将应用程序配置成具备这些活动的理想的组合。
滚动轮转动的方向可以决定显示在显示屏206上的通过内容的前进或后退运动。例如,正时针转动可以造成通过内容的前向运动,而反时针转动可以造成通过内容的后向运动,或者正好相反。
监测器是监测运动的设备。滚动轮208可以使用监测器向用户提供反馈。在滚动轮转动过程中发生的每次瞬间的停止都指示已经到达一个新的位置。根据选择,滚动轮208可以这样配置,即它可以在任一方向不停地转动,每个监测器指示一个单个的向前或向后运动,并且滚动速度从监测器到监测器可以是稳定的。
另一方面,滚动轮208可以这样配置,即滚动轮208可以转动的范围被限制在特定数目,例如,在每个方向上3个监测器位置,并且可以随着滚动轮的转动增加阻力。更进一步,随着用户释放滚动轮208,它可以自动返回到监测器,该监测器代表一组方向监测器之间的静止位置。
滚动轮208可以这样配置,即用户可以用监测器选择一个特定的滚动速度。另一方面,滚动速度可以是固定的速度或者是固定的速度和可变的速度的组合。下面图1表示相对于滚动轮208可以配置的给定滚动轮位置的各种速度选择方案。
滚动轮位置 |
固定速度选择 |
固定和可变速度选择 |
静止到第一监测器 |
固定,慢速 |
固定,慢速 |
第一到第二监测器 |
固定,中速 |
固定,中速 |
第二到第三监测器 |
固定,快速 |
加速,快速 |
表1
对于固定速度和可变速度的组合选择,可以用模-数转换器感受滚动轮的位置。
可以为电话机200配置多种GUI方法以便从显示屏206上选择项目。例如,more按钮212可以这样配置,即可以访问一些高层特点项目,如菜单、帮助和其它应用程序。例如,more按钮212可以这样配置,即如果被按下后,显示屏206可以呈现标签,用于列出和启动安装在第一电话通信设备里的应用程序,获得上下文专用帮助,和列出应用程序所提供的功能。
按照用户的滚动在显示屏206上显示的每个内容页面上有一个项目可以作为重点进行显示。这样的项目可以通过一个可视提示突出显示,例如反白显示或其它视觉类突出显示,或者是通过在该项目的后面加入一个指示符,如箭头或图标。
还可以提供内容专用按钮210。如果应用程序配置使用上内容用按钮210,则按照所述应用程序,随着用户的滚动显示在显示屏206上的每个内容页面上可以列出一个或多个项目,它们与内容专用按钮210配合工作。按下一个与一个项目相关的内容专用按钮210,则选定了该相关项目并允许该应用程序进行处理。可供选择的方案有,即使另一个项目当前正在被一个可视提示,如反白显示作为重点显示,也可选择与被按下的内容专用按钮210相关的项目进行进一步应用处理。
因此,每个内容专用按钮210的功能取决于显示屏206上所显示的内容。具体地说,每个按钮210对应于显示在显示屏206上的特定位置上的内容项目。
例如,参见图6,显示屏206正在显示应用程序单。按钮210排列在显示屏206的左、右侧,每个对应于特定应用项目。如果用户按下其中一个按钮,对应于该按钮的应用程序将被执行,从而使显示屏显示该应用程序专有的内容。
排列在显示屏206底部的内容专用按钮210可以确定显示在显示屏206上的主体内容。例如,在图6中,每个按钮210对应于显示屏206底部的一个标签,在这里每个标签对应于一个要显示的不同的主体内容。
第一应用程序可以将显示屏配置成这种形式,即如果将由第二应用程序显示的内容,如一个清单,不适合在该显示屏上显示,滑标可以在显示屏206上指出所显示的内容相对于第二应用程序显示的整个内容的位置。
图5和图6表示实现电话通信设备所需的电话机和用户接口的实施方案的例子。这些实施方案只是为了说明而提供的例子。可以采用包括多种电话机配置中任何一种电话机的多个其它实施方案实现这里所说明的电话通信设备。3.通信网络
第一电话通信设备所在的通信网络可以选用多种配置方案中的任意一个方案。例如,通信网络可以只包括网络媒体和两个或多个电话通信设备。虽然所述通信网络在本文件中只通过使用电缆作为网络传输媒体的有线网络来介绍,但是它可以是多种网络中的任意一种网络。这些网络包括遵守多种无线电通信协议,如PCS网络使用的协议、第三代网络使用的协议或IEEE802.11定义的无线以太网协议,和具有多种网络传输媒体中的任意媒体,如载波和光纤电缆。更进一步,如下面介绍图7时所讲的那样,所述通信网络可以包括多个子网络或分段,每个子网络又可以包括多个传输媒体中的任何媒体。
图7是一个方框图,表示通信网络300的实施方案的一个例子。通信网络300可以包括网络传输媒体332以及包括302和306在内的多个电话通信设备。通信网络300可以这样配置,即不需要其它网络资源就能够完成两个或多个电话通信设备之间的电话通话。例如,每个电话通信设备可以这样配置,即在电话通信设备上执行的所有电话应用程序全部驻留在电话通信设备中。更进一步,每个电话通信设备可以这样配置,即建立电话通话所需的各种数据,包括各个电话通话参加者的网络网络地址,以及执行应用程序所需的任何数据,也都全部存储在电话通信设备中。
另一方面通信网络300可以更加分散,包括一个或多个其它网络资源存储数据应用程序和部分应用程序,并帮助执行一个或多个电话应用程序。
相应地,通信网络300可以包括一个或多个伴随设备,例如伴随设备304和310,一个或多个目录数据库,包括目录数据库308和命令数据库320,电话通信设备部署服务器314,一个或多个应用服务器318,一个或多个通话控制服务器322,一个或多个网络接口,例如,互联网协议/公共交换电话网网关326,和一个或多个管理数据库,例如,管理数据库316。
通信网络300可以被分为多个子网络或网络段。例如,网络元件302、304、308和310可以驻留在网络传输媒体334,用一个或两个网络接口元件312将它与网络传输媒体332分开。所述一个或多个网络接口元件可以是路由器、桥接器、开关、媒体网关、微波发射机/接收机、蜂窝式PCS网络元件、或其中的任意组合,它们控制网络传输媒体334和332之间的数据传输。
例如,网络元件302、304、306、308、310和334可以是用户网络340的组成部分,而网络元件314、318、322、326、316、320、323和332可以是服务提供者网络324的组成部分。
通信网络300可以包括互联网协议/公共交换电话网网关326,用于建立通信网络300上的电话通信设备,例如电话通信设备302和公共交换电话网上的电话通信设备,例如电话通信设备334之间的电话通话。按照通信网络300的配置,可以使用不同类型的网关与公共交换电话网上的电话通信设备334进行通信。
互联网协议/公共交换电话网网关326可以把符合一个或多个互联网协议并且从通信网络300接收到的媒体和通话控制信息转换成符合公共交换电话网协议的媒体和通话控制信息以便被发送到公共交换电话网。相反地,互联网协议/公共交换电话网网关也可以这样配置,即把公共交换电话网媒体和来自公共交换电话网的通话控制信息转换成互联网协议媒体和通话控制信息以便传输到通信网络300。
如以上说明的那样,电话通信设备302可以是包括电话机在内的多个设备中的一个,例如图5中的电话机200,或计算机。如果第一电话通信设备是电话机,最好提供伴随设备以便为该电话机提供附加资源,包括附加电话功能、数据存储和开发电话应用软件所需的环境。
例如,在用户的住宅或办公室中,用户可以有作为电话机配置的电话通信设备,以便参加电话通话,并且可以有用于多种其它作业的通用计算机。虽然用户的电话机可以有多种理想的人机功能以便参加电话通话,计算机可以有更加理想的多种功能以便开发应用程序,以及存储、检索和操作数据。例如,通用计算机可以包括像视频监视器、键盘和鼠标这类外围设备,这些是电话通信设备的电话实施方案中所缺少的。更进一步,通用计算机可以有更大容量的存储器以便存储数据和应用程序以及运行应用程序。
为电话通信设备开发应用程序,伴随设备可以包括多个应用程序设计接口,包括上文描述的与开放式应用程序设计接口层5和核心电话功能应用程序设计接口层21。要把这些应用程序加载到电话通信设备上,并且从该电话通信设备上下载应用程序,伴随设备可以包括应用程序管理器,其介绍参见上文关于系统应用程序设计接口的说明部分。
在伴随设备中还可以加载管理软件,用于管理通信网络300的各个方面。为了与其它网络资源,特别是电话通信设备,进行通信和分享数据,伴随设备可以这样配置,即使用多种协议进行通信,它们包括简单网络管理协议(SNMP),超文本运输协议(HTTP),远程方法调用(RMI),超文本加标记语言(HTML),和文件传输协议(FTP)。
目录数据库308可以存储关于其它用户、电话通信设备、其它网络资源、或通信网络300本身的多种信息。因此,用户可以访问这些信息以便确定如何同其它用户建立电话通话。例如,目录数据库308可以存储商业通信目录和电话本产品,如微软公司的Microsoft Outlook或Lotus发展公司的Lotus Notes。这些商业软件产品可以驻留在电话通信设备本身或装在电话通信设备的伴随设备上,并且可以访问目录数据库308以便获取信息。
其它目录数据库,如目录数据库320,可以为一个或多个目录服务器存储数据,下面将详细介绍。
如上文说明图1时所述的那样,一个或多个电话应用程序可以完全在一个电话通信设备上存储和执行;一个或多个应用程序可以是分散的,即至少部分应用程序是存储在另一个网络资源里;以及一个或多个应用程序可以远离电话通信设备存储在另外一个网络资源里,而该电话通信设备保留远程应用程序的指示器。一个或多个应用服务器318可以作为网络资源存储一个或多个应用程序和至少一个或多个应用程序的一部分。
例如,应用服务器318可以包括一个语音邮件应用程序或客户/服务器应用程序的服务器方,而该程序的客户方则驻留在一个或多个电话通信设备里。更进一步,虽然电话通信设备可以支持会议桥接器,如上文介绍图3和4时描述的那样,但是,如果涉及会议通话的连接的数目太大时,一个可能更有效的方法是使用一个会议桥接器应用程序实现会议桥接器,该应用程序驻留在应用服务器318,该服务器有更多的资源或是会议桥更专用的资源。
通信网络300可以包括一个或多个目录服务器323,用于电话通信设备之间的通信。每个目录服务器323可以包括多个目录或索引,标出用户的标识符,如电话号码,在一个网络地址,例如互联网协议网络地址,上的扩展名和逻辑名。这个网络地址可以是分配给用户的电话通信设备网络地址;或者是另一个目录服务器的网络地址,该服务器可以存储分配给用户的电话通信设备的网络地址;或者可能是一个互联网协议/公共交换电话网网关的网络地址,例如互联网协议/公共交换电话网网关326。一个或多个这种目录可以存储在目录数据库320,目录服务器323可以访问该数据库。
例如,第一网络地址目录可以包括多个登记项,每个登记项对应于一个电话号码,例如123-456-7890。每个登记项可以存储对应于这个电话号码的一个网络地址,例如10.20.30.40。
由于第一网络地址目录接收到一个电话号码,第一网络地址目录可以在对应于这个电话号码的目录服务器里查看并访问这个登记项,并且检索包含其中的互联网协议网络地址。第一网络地址目录,以及下面所述的第二和第三个网络地址目录,可以这样配置,即以多种方式使用这个检索的互联网协议网络地址,参见下文中的详细描述。
目录服务器323或目录数据库320也可以包括第二网络地址目录,其中第二网络地址目录的每个登记项对应于通信网络300的一个用户的一个逻辑名,例如
jsmith@acme.com。每个登记项可以存储与逻辑名相关的互联网协议网络地址。接收到逻辑名后,目录服务器323可以查看并访问对应于这个逻辑名的登记项,并且检索存储其中的互联网协议网络地址。
目录服务器323或目录数据库320也可以包括第三个网络地址目录,其中的每个登记项对应于扩展名,例如,x1234@acme.com.。每个登记项可以包括与扩展名相关的互联网协议网络地址。接收到扩展名后,目录服务器323可以查看并访问对应于这个扩展名的登记项,并且检索存储其中的互联网协议网络地址。
虽然在上文中网络地址目录是作为独立的实体描述的,但是这些网络地址目录可以任意结合成一个或多个目录。
如上所述,电话通信设备可以存储和访问分别与一个或多个电话通信设备相对应的一个或多个网络地址。如果第一电话通信设备存储或访问第二电话通信设备的网络地址,第一电话通信设备可以使用一个同等对同等协议,如会话启动协议或H.323协议,直接与第二电话通信设备建立通话。
例如,电话通信设备302可以与电话通信设备306直接联系,方法是向电话通信设备306发送会话启动协议建立信息,并且电话通信设备306可以直接回答电话通信设备302,告知电话通信设备302它愿意参加这个电话通话。最后,电话通信设备302可以向电话通信设备306发送确认信息,确认它已经收到了电话通信设备306的回答信息。可以使用类似的方法建立电话通信设备302和电话通信设备304之间的电话通话,不同的是,互联网协议/公共交换电话网网关326将作为通信网络300和公共交换电话网之间的网络接口。
另一方面,电话通信设备302可以不存储或不直接访问电话通信设备306的网络地址。但是电话通信设备302可以存储或直接访问电话通信设备306里的其它用户标识符,例如电话号码、逻辑名或电话通信设备306的分机号码。因此,电话通信设备302可以和目录服务器323联系以便确定对应于上述的一个或多个指示器的互联网协议网络地址。
如果电话通信设备302将用户标识符发送给目录服务器323,目录服务器323检索对应于电话通信设备306的网络地址,根据目录服务器323和电话通信设备302的配置,目录服务器323可以采取多种动作。例如,如果目录服务器323有与会话启动协议代理服务器相类似的配置,目录服务器323可以将通话建立消息发送给电话通信设备306,而电话通信设备306将向目录服务器323作出回答,然后目录服务器323将回答信息发送给电话通信设备302。
另一方面,如果目录服务器323有类似于会话启动协议中的重新安排服务器的配置,目录服务器323可以将已经确定的网络地址发回到电话通信设备306,然后电话通信设备306将向确定的网络地址发送通话建立消息。
但是,如上所述,目录服务器323里的每个登记项也可能包括另一个网络资源,如另一个目录服务器,里的互联网协议网络地址。目录服务器323可以这样配置,即向另一个网络资源发送接收到的标识符,进行进一步查找以确定用户的网络地址。如果检索出的网络地址是另一个目录服务器里的网络地址,并且目录服务器323有与会话启动协议重新安排服务器同样的配置,目录服务器323将把通话建立消息发送给另一个目录服务器,并且重复查找过程。目录服务器之间的这种通信以及伴随的查找可以重复进行,直到用户的网络地址确定为止。
如果目录服务器323检索出的网络地址是另一个目录服务器里的网络地址,并且目录服务器323有与会话启动协议重新安排服务器同样的配置,目录服务器323将把检索到的网络地址发送给电话通信设备302。然后电话通信设备302可以访问另一个目录服务器,并且重复查找过程。目录服务器和电话通信设备302之间的这种通信以及相应的查找过程可以重复进行,直到用户的网络地址确定为止。
更进一步,目录服务器里的登记项可以包括对应于单个标识符的多个网络地址。例如客户服务电话号码,客户服务电话号码可以规定多个网络地址。因此,目录服务器323可以包括逻辑程序以确定与哪个网络地址联系,以及将通话建立消息发送给确定的网络地址,还是将确定的网络地址发送给电话通信设备302。
如上所述,对于驻留在公共交换电话网的电话通信设备,如电话通信设备334所对应的电话号码,目录服务器323可以检索互联网协议/公共交换电话网网关,如互联网协议/公共交换电话网网关326的互联网协议网络地址。目录服务器323检索出的网络地址可以确定互联网协议/公共交换电话网网关的网络地址,例如,互联网协议/公共交换电话网网关326的网络地址,它在地理位置上最靠近电话通信设备334。根据目录服务器323的配置,目录服务器323可以采取将通话建立消息发送给另一个网络资源,该网络资源依次将信息传送给有关的互联网协议/公共交换电话网网关,或者将所述网络地址发送到电话通信设备302并使电话通信设备302自己同有关的互联网协议/公共交换电话网网关联系。
如果电话通信设备302被配置成使用主/从通话控制协议建立电话通话,则电话通信设备302可以向主/从控制器322发送通话建立消息,以便建立电话通话。然后主/从控制器322可以使用目录服务器323和目录数据库320建立电话通话,所述目录数据库320采用与上述电话通信设备302配置使用的同等对同等协议相类似的技术。
同样,对于进入通信网络300里的电话通话,通过互联网协议/公共交换电话网网关326或通过网络开关元件,如开关、路由器、桥接器或插口打进来的电话,可以与目录服务器323联系以便确定电话受话者的网络地址。例如,如果电话通信设备334想和电话通信设备302建立通话,互联网协议/公共交换电话网网关326把这个建立信息转换成符合通信网络300使用的缺省通话控制协议的建立信息。然后互联网协议/公共交换电话网网关326把包括用户识别符在内的通话建立消息发送给目录服务器323以便确定电话通信设备302的网络地址。
还可以使用多种其它技术将电话通话传送给有关用户和电话通信设备。
电话通信设备302试图和它建立通话的电话通信设备可以这样配置,即使用与电话通信设备302的通话控制协议不同的通话控制协议建立通话。例如,电话通信设备302可以配置成使用会话启动协议,而电话通信设备306可以配置成使用H.323协议。相应地,目录服务器323可以这样配置,即确定网络地址支持的通话控制协议,并且将这个信息发送给电话通信设备302,或者,电话通信设备302可以这样配置,即确定目录服务器323返回的网络地址符合某个通话控制协议。
如果电话通信设备302被配置成能够用H.323协议进行通信,则电话通信设备302可以使用H.323与电话通信设备306进行通信。但是,如果电话通信设备302没有被配置成能够用H.323协议进行通信,则电话通信设备302可以向H.323/会话启动协议信号网关发送会话启动协议信息。H.323/会话启动协议信号网关可以将会话启动协议信息转换成H.323信息。相应地,该H.323/会话启动协议信号网关可以将生成的H.323信息发送给电话通信设备306,并且,当电话通信设备306用H.323信息作了回答后,该H.323/会话启动协议信号网关可以将这个H.323信息转换成会话启动协议信息并将这个会话启动协议信息发送到电话通信设备302。
在通信网络300的一个实施方案中,网络300可以这样配置,即识别进入网络的每个通话的通话代理人。对于入站通话,有关的通话代理人可能是会话启动协议代理服务器、媒体网关控制协议通话代理人、H.323看门人,或者另一个通话信号协议使用的代理人。
由于通信网络300上的电话通信设备302的数目不断增长,最好是将电话通信设备自己提供的电话应用程序发送到其它网络资源,例如,电话通信设备部署服务器314。电话通信设备部署服务器314可以配置多个电话应用程序,这些电话应用程序也可以配置在一个电话通信设备上。电话通信设备部署服务器314可以包括多种应用程序,用于配置和管理电话通信设备,在电话通信设备上进行软件升级,确定哪些应用程序应该安装到哪个电话通信设备上,将多个电话通信设备配置成有多个等级层次的分组,例如,地理区域、城市区域、业务部门、业务分部、大楼、楼层、和小组,直至单个用户。电话通信设备部署服务器还可以为电话通信设备提供多种其它服务。
电话通信设备部署服务器314还可以保持通信网络300用户专有的个人电话通信设备配置信息。相应地,不论用户在网络的什么地方使用电话通信设备,用户可以向电话通信设备部署服务器314指示独一无二的标识符,并且电话通信设备部署服务器314可以按照用户的个人配置信息配置用户正在使用的电话通信设备。
电话通信设备部署服务器314可以在管理数据库316中存储上述应用程序和数据。管理数据库316可以是多种数据库中的任何一个数据库,包括面向目标的数据库,相关数据库,或平面文件数据库。更进一步,电话通信设备部署服务器314可以这样配置,即使用多种技术访问管理数据库316,这些技术包括开放式数据库连通(ODBC)技术或JAVA数据库连通(JDBC)技术。更进一步,为了与其它网络资源通信,包括一个或多个电话通信设备和伴随设备,电话通信设备部署服务器314可以配置成使用多个协议进行通信,其中包括SNMP、HTTP、RMI和FTP。
通信网络300可以采用多种方法中的任何方法进行配置,图7中的配置方案仅仅是为了说明之目的。可选用多种网络配置。
4.电话应用程序
如上所述,开放式和可扩展的电话系统结构1提供了分别使用核心电话功能层9和开放式应用程序设计接口层5开发应用程序的能力。因此,现在描述的多种应用程序可以通过开放式应用程序设计接口层5,核心电话功能层9或它们的组合来实现。更进一步,这些应用程序可以在一个或多个电话通信设备上,一个或多个其它网络资源上或它们的组合上运行。
下面说明的几个应用程序定义发送的和接收的信息,包括媒体,例如音频或视频,文本数据,指令,或在电话通话期间或电话通话建立期间发送到一个或多个电话通信设备或从这些电话通信设备发出的其它信息。所述发出的/接收的信息可以取决于第一电话通信设备或另一个电话通信设备的状态。更进一步,一个电话通信设备在接到所述信息后采取的动作可以取决于接收信息的电话通信设备的状态。
更进一步,下面定义的每个应用程序可以这样配置,即当第一电话通信设备已经安装在通信网络后,该应用程序可以添加到第一电话通信设备或可以修改,例如使用上述的开放式应用程序设计接口层5里的一个或多个应用程序设计接口。
更进一步,下面说明的每个应用程序可以作为计算机信号配置在多种计算机可读媒体的任何媒体中,例如,一个可读可写的非易失记录媒体,如磁盘、快闪存储器、存储棒、PC卡或磁带。磁盘可以是可活动的,如软盘或可读写光盘,或永久性磁盘,即硬驱。
因此,下面说明的应用程序可以访问核心电话功能层9的一个或多个抽象程序以便确定一个电话通信设备或该电话通信设备上的电话通话的状态,并且可以控制上面描述的媒体处理元件30的一个或多个媒体处理单元以便按照该应用程序处理媒体。
第一电话应用程序可以配置成允许电话通信设备的发话人能够控制在受话人的电话通信设备上播放的声音以便指示来自发话人的通话。这个声音可以来自受话人可访问的音频文件,例如存储在音频存储媒体60里的音频文件,这个声音可以在受话人的音调产生器69中编码,或者这个声音本身可以从发话人的电话通信设备被发送到受话人的电话通信设备。这个声音可以是铃声、话音通知或是对受话人来说有意义的任何其它声音。这个声音可以断断续续地播放直到被受话人取消,并且可以通过通信网络上的多个电话通信设备播放,例如,多客户服务电话通信设备。这样的应用程序还可以被发话人用来“寻呼”另一个电话通信设备,但是并不建立实际电话通话。
播放的声音可以是预先录制好的,例如,通过电话机送话口或通过电话机上的直接电音频信号采集插口采集声音,然后将这个声音存储在电话通信设备本身或存储在可访问的网络资源里。受话人和发话人的电话通信设备都可以这样配置,即控制声音播放的方式,例如,由电话应用程序的程序设计员完成,或者是由发话人或受话人通过电话应用程序提供的用户参数完成。
图8是一个流程图,说明将来话指示给第二电话通信设备的至少一个第二用户的方法的实现例证。这种方法可以由一个或两个电话应用程序定义。
在动作452中,收到对应于所述第二电话通信设备的网络地址的拨号指令。接着,在动作454中,从拨号指令中查明第一用户的标识符;并且在动作456中,根据标识符选择一个播放的声音。
在接下来的动作458中,将通话建立消息发送到这个网络地址上的第二电话通信设备。通话建立消息包括使第二电话通信设备产生选定的声音。包含在通话建立消息中的信息可以包括代表所选定的声音或播放所选声音的指令的信息。更进一步,该信息可以包括所选声音的播放地点,例如一个URL。
另一个电话应用程序可以在电话通信设备之间的会议通话时使接收到的多个音频输入有选择地混合或减弱,如同上述介绍图3中的本地通话桥接器时所讲的那样。因此,参加会议通话的第一电话通信设备用户可以有选择地减小或分流其它会议通话参加者的音频信号。更进一步,这样的应用程序可以配置成可允许第二电话通信设备上的不控制会议通话的用户发送通信给第一电话通信设备,命令第一电话通信设备有选择地混合从第二电话通信设备接收到的和/或发送到第二电话通信设备的音频信号。因此,可以在选定的参加者的子集合中实现同播,而针对其它子集合的问题,或特定个人的评论可以暂时从会议中被筛选掉。
虽然这里介绍的有选择地混合和减小音频信号主要是关系到桥接器式会议通话,但是同样的技术可以用于在全网络会议通话中,即每个电话通信设备都保持包含在会议通话中的各个连接的代表地位,实现对音频信号的混合和减小。虽然这样一个全网络会议配置减小了单个电话通信设备的负担(即,不然电话通信设备还要提供桥接器),但这种配置产生多个网络连接,由于现在涉及多个电话通信设备,从而增加了网络交通并且还使会议通话控制变得更为复杂。
更进一步,为实现会议通话期间的有选择的静噪和混合,可以提供一个或多个专业化的电话通信设备,每个电话通信设备包括额外的信号处理功能,用于混合和静噪。
图9是一个流程图,说明在包括第一用户输入的会议通话中有选择地传输媒体的方法460的一个实现例证。这种方法用于分别从第一用户以及第一电话通信设备和两个或多个第二电话通信设备之间的两个或多个连接中接收媒体。每个第二电话通信设备对应于第二用户。这种方法可以由一个或多个电话应用程序定义。
在动作462中,接收到一个用户选择,指出一个或多个第三用户可以接收来自一个或多个第四用户的媒体。每个第三用户和第四用户或是第一用户或是第二用户中的一个用户。
在下一个动作464中,在会议通话期间从一个或多个第四用户中接收到了一个或多个媒体输入。在接下来的动作466中,在会议通话期间允许一个或多个第三用户接收从一个或多个媒体输入产生的媒体。
图10是一个流程图,说明在包括第一用户输入的会议通话中有选择地传输媒体的方法470的一个实现例证。这种方法用于分别从第一用户以及第一电话通信设备和两个或多个第二电话通信设备之间的两个或多个连接中接收媒体。每个第二电话通信设备对应于一个第二用户。这种方法可以由一个或多个电话应用程序定义。
在动作472中,接收到一个用户选择,指出一个或多个第三用户不可以接收来自一个或多个第四用户的媒体。每个第三用户和第四用户或是第一用户或是第二用户中的一个用户。
在下一个动作474中,在会议通话期间从一个或多个第四用户中接收到了一个或多个媒体输入。在接下来的动作476中,在会议通话期间不允许一个或多个第三用户接收从一个或多个媒体输入产生的任何媒体。
在方法460和470这两个方法中,从一个或多个媒体输入产生的媒体可以是按照上述多种方法中的任何一种方法混合的媒体。更进一步,对于方法460和470这两个方法来说,可以分别允许和不允许一个或多个第三用户使用上述图3中的本地通话桥接器51接收媒体。还有,对于方法460和470这两个方法来说,可以从第一电话通信设备的第一用户或从第二用户中的一个用户接收用户选择。
另一个电话应用程序可以定义通信方法,即作为电话通话的一个部分,将文本信息从第一电话通信设备的第一用户传输给用第一连接连接到第一电话通信设备的第二电话通信设备的第二用户。特别是在电话通话期间,定义文本的外部数据可以在第二电话通信设备的第一连接收到。然后,第一电话通信设备可以显示文本数据定义的文本,例如在上述图5中的显示屏206上显示。这种文本数据可以是多种数据中的任何数据,例如,关于第二电话通信设备或第二电话通信设备的一个用户的信息。
可以定义排定应用程序以便允许用户排定电话通话,如会议通话。使用上述图5和图6中所述的用户接口,或其它网络资源,如上述图7中的伴随设备,用户可以排定电话通话,方法是输入每个电话通话参加者的电话号码以及通话的日期和时间。更进一步,如果使用远程会议桥接器,即不是本地通话桥接器51,完成电话通话,用户可以将排定程序配置成能够命令远程会议桥接器建立会议通话。
这样的排定应用程序可以与数据库接口并访问其中的数据,例如由Microsoft Outlook或Lotus Notes提供的数据库,并且该排定应用程序可以配置成使用互联网日历和日程编排协议完成第一电话通信设备和任何其它电话通信设备或与排定会议通话有关的网络资源之间的通信。
对这样的排定应用程序可以这样配置,当所有的电话通话信息,包括参加者的标识符以及通话的日期和时间都输入完毕后,所述应用程序自动将安排好的通话通报给其它参加者。这个通报可以向其它参加者提供多种信息,包括通话的日期和时间以及其它通话参加者的标识符和其它有关信息。
排定应用程序可以这样配置,即通知其它电话通话参加者时采用发电子邮件消息的方法,例如,符合简单邮件传输协议(SMTP)的电子邮件消息。
图11是方法408的实施方案例证的流程图,该方法是排定并完成第一电话通信设备的第一用户和第二电话通信设备的一个或多个第二用户之间的电话通话。在动作482中,收到了一个或多个用户标识符,其中每个用户标识符证明第二用户。这种方法可以由一个或多个电话应用程序定义。
在下一个动作484中,接收到了日期和时间信息,该信息规定了将来进行通话的日期和时间。在动作486中,可以存储标识符以及日期和时间信息。标识符以及日期和时间信息可以就地存储在第一电话通信设备里,或存储在第一电话通信设备可以访问的远程网络资源里。
在接下来的动作488中,在日期和时间信息规定的日期和时间,访问用户的标识符。下一步,在动作490中,可以起始第一电话通信设备和一个或多个第二电话通信设备之间的电话通话。
方法480还可以包括一些动作,如接收能识别会议桥接器的会议桥接器标识符。更进一步,方法480可以包括在起始所述电话通话之前将所述通话的有关信息通报给一个或多个第二用户,方法是从第一电话通信设备向一个或多个第二电话通信设备发送一个含有关于通话的信息的消息。
以web为基础的拨号应用程序可以提供以web为基础的拨号,方法是定义嵌入第一电话通信设备的web服务器以便建立电话通话。以web为基础的拨号应用程序可以这样配置,即允许用户在嵌入式web服务器上生成web页,包括与URL的链路,它代表一个或多个完成电话通话的参加者。链路可以包含关于电话通话的多种信息,包括标识符,如每个参加者的电话号码和会议桥接器的标识符。
使用个人计算机上的web浏览器应用程序或其它网络资源,用户可以访问第一电话通信设备上的web页和单击一个或多个URL链接以便使电话通信设备拨动所选号码。以web为基础的拨号应用程序可以这样配置,即可以使用户拨动一个或多个在不同网络上的电话通信设备号码,包括公共交换电话网和/或数据网络上的电话机。更进一步,以web为基础的拨号应用程序可以定义通话建立HTML标签,如“callto:<destination>”(呼叫:<目的地>),它的作用类似于
mailto:<destination>HTML(寄至:<目的地>)标签,从而单击通话建立标签就可以触发与目的地通话的建立。
典型的以web为基础的拨号应用程序可以定义起始第一电话通信设备的第一用户和第二电话通信设备的一个或多个第二用户之间的电话通话的方法。所述方法包括接收第一用户作出的一个或多个URL选择,这里的每个URL选择对应于第二电话通信设备。下一步,可以起始第一电话通信设备和一个或多个第二电话通信设备之间的电话通话。
这样一个以web为基础的拨号应用程序可以使用一个或多个网络目录,如同上文中关于图7的说明,以便标出电话通信设备标识符用户,例如,URL、电话号码、分机号码,从而确定需要建立电话通话的网络地址。更进一步,这样的以web为基础的拨号应用程序可以使用其它网络资源,例如互联网协议/公共交换电话网网关,向位于另一个网络的电话通信设备发送通话建立消息,例如公共交换电话网,见上述关于图7的说明。
另一个应用程序可以被定义为在第一电话通信设备的显示屏上显示文本,所述文本的内容对应于在第一电话通信设备上接收到的音频信号的内容。例如,可以将这样一个应用程序配置为在显示屏上,如显示屏206,显示与交互式话音应答系统播放的选择项相对应的选择项。例如,可以将这样一个应用程序配置为向第二电话通信设备(例如,作为IVR系统的一个组成部分的电话通信设备)指出,第一电话通信设备能够播放文本。作为回答,第二电话通信设备可以发送,或控制另一个资源发送与第一电话通信设备音频内容相对应的文本内容。
然后,第一电话通信设备可以在显示屏上显示文本内容,例如,选择清单,如同IVR消息正在播放。然后用户可以作出选择,使用与显示屏相对应的用户接口,例如,上述图5中介绍的用户接口,这与等待全部IVR消息在第一电话通信设备上播送完相反。
如果第二电话通信设备是IVR系统的组成部分,例如,客户服务网络,中央服务器可以作为第二电话通信设备和IVR系统的其它电话通信设备的一个代理人,并且可以是将文本信号发送到第一电话通信设备的网络资源。
图12是一个表示例证方法500的流程图,方法500是显示与媒体有关的文本,如音频或视频媒体,它们是从第一电话通信设备和作为电话通话的一部分的第二电话通信设备之间的第一连接接收到的,在这里,第一电话通信设备包括显示屏,例如图5中的显示屏206。这种方法可以由一个或多个电话应用程序定义。
在动作502中,可以在第二电话通信设备的第一连接上接收媒体信号,在这里媒体信号代表媒体内容。
在动作504中,在接收媒体信号之前或同时,在第一连接上接收到了文本信号。该文本信号代表了与媒体内容相对应的文本内容。
接下来在动作506中,将文本内容显示在显示屏上。在随后的动作508中,在显示文本内容的同时或之后,可以播放文本内容。
其它应用程序可以被定义为发送文本数据以响应通话建立消息。例如,这种应用程序可以这样配置,即当从另一个电话通信设备接收到通话建立消息后,第一电话通信设备用文本消息回答,在这里,文本消息由第一电话通信设备的状态确定。例如,可以定义第一电话通信设备有“不在办公室”状态。相应地,该应用程序可以这样配置,即当第一电话通信设备接收到通话建立消息,第一电话通信设备向其它电话通信设备发送其它联系办法的清单,例如,网络电话号码、语音信箱网络地址,或另一个用户的电话号码。
图13是一个表示例证方法510的流程图,方法510是按照第一电话通信设备的状态将信息通报给第二电话通信设备。
在动作512中,将通话建立消息发送给第二电话通信设备以便建立电话通话。然后在动作514中,为了回答通话建立消息,从第二电话通信设备接收到文本信号。该文本信号定义与第二电话通信设备状态相对应的文本内容。
在接下来的步骤516中,将文本内容显示在第一电话通信设备的显示屏上。
文本内容可以包括与第二电话通信设备状态相对应的一个或多个选择项,其中每个选择项表示为响应第二电话通信设备而采取的动作。所述一个或多个选择项可以显示给第一电话通信设备用户。相应地,方法510还可以包括一个动作,即接收第一用户所选择的一个选择项,并且发送代表该选择项的选择信号给第二电话通信设备以便完成选择项所指出的动作。
图14是一个表示例证方法520的流程图,方法520是按照第一电话通信设备的状态将信息通报给第二电话通信设备。
在动作522中,在第一电话通信设备接收到来自第二电话通信设备的通话建立消息以便起始电话通话。然后在动作524中,确定了第一电话通信设备的状态。
在接下来的步骤526中,第一电话通信设备发送代表所确定的状态的文本信号给第二电话通信设备以便显示。
如上所述,文本信号可以包括对第二电话通信设备用户的一个或多个选择项的文本说明,以便在第二电话通信设备上显示。每个选择项可以表示为响应第一电话通信设备的状态而采取的动作。相应地,方法520还可以包括一个动作,即接收来自第二电话通信设备的选择信号,该选择信号代表第二电话通信设备用户对一个或多个选择项的选择,以及完成选择项所指出的动作而采取的动作。
另一个应用程序可以定义一种方法,即在通信网络电话通话期间传送声频表达式,这里的声频表达式是指对用户有意义的一种声音。这种声频表达式可以表达电话通话中的情绪状态或提供加强语气。例如,可以是炸弹爆炸声、通用表达方式、铃声或其它对用户来说有意义的声音。可以对这些声音作为音调产生器的一部分进行编码或将它们存储在第一电话通信设备可以访问的存储媒体里,如音频存储媒体60。该应用程序可以这样配置,即把所述声频表达式与第一电话通信设备上的用户话音混合,从而使另一个电话通话的参加者可以听到包含话音和声频表达式的混合的声音信号。其它选择方案有,声频表达式可以与用户的话音这样混合,即只有声频表达式能够听得到。
视频表达式和文本表达式也可以用类似方式在电话通话中传送。
作为游戏的一部分,可以定义一个或多个应用程序在第一电话通信设备上播放或停止播放媒体。例如,可以这样定义“打鼹鼠”式的游戏,即媒体,如音频或视频媒体,在第一电话通信设备上播放直到第一电话通信设备的用户在第一电话通信设备的用户接口上选择特定按键顺序或按下特定按钮为止。如果用户在规定时间内输入正确的序列,则声音播放可以停止,并且将游戏控制传送给另一个电话通信设备把游戏继续下去。
更进一步,可以将应用程序这样配置,即在用户或网络供应商设置的特定时间间隔,如每天、每周、每小时,在电话通信设备上接收每日格言或祝福。
可以定义的其它应用程序以便在第一电话通信设备上播放文本、媒体、或其它信息,这些可以作为广告部分,或作为屏幕保护部分在第一电话通信设备的显示屏上运行。
图15是一个表示例证方法530的流程图,方法530是在电话通话期间传送一个声频表达式。
在动作532中,接收到代表第一电话通信设备的第一用户的话音的话音信号。在下一个动作534中,接收到一个代表第一用户的声频表达式选择的选择信号。
接下来,在动作536中,产生与所述选择信号相对应的声频表达式信号,这里的声频表达式信号代表了声频表达式。在接下来的动作538中,所述声频表达式信号和话音信号混合以便产生混合信号。
下一步,在动作540中,将混合信号作为电话通话的组成部分传输到一个或多个第二电话通信设备的一个或多个第二用户。
可以定义通话筛选应用程序以便按照来话的有关数据,例如发话人的身份(即发话人的标识符)、一天中的什么时间、或其它有关信息,筛选第一电话通信设备的来话。所述筛选应用程序可以定义规则,或提供用户定义规则可能使用的参数,以便根据不同标准确定如何回答通话建立消息。例如,对于非常重要的通话,在规则中可以这样规定,第一电话通信设备试拨一系列不同的电话号码以便想法同第一电话通信设备的用户取得联系。更进一步,所述筛选应用程序可以这样定义,即对于不重要的通话,第一电话通信设备可以采用语音信箱或其它方法。还有,所述筛选应用程序可以这样定义,即在对通话进行适当过滤前,可以向发话人发出询问,要求发话人提供附加信息。
图16是一个表示例证方法550的流程图,方法550是根据电话通话的有关信息筛选这个通话。
在动作552中,在第一电话通信设备接收到来自第二电话通信设备的第一通话建立消息。接下来,在动作554中,访问一个或多个通话回答规则,其中每个通话回答规则定义一个条件,以及如果所述条件得到满足时第一电话通信设备为回答接收通话建立消息应采取的一个动作。
在接下来的动作556中,对于一个或多个通话回答规则,确定条件是否得到满足。在下一个动作558中,按照确定的一个或多个通话回答规则对通话建立消息作出回答。
如同上述说明的那样,一个或多个规则中的第一规则可以定义一个应采取的动作,条件是在一个或多个时间间隔中接收到了通话建立消息。相应地,方法550也可以包括动作,即确定通话建立消息接收到的第一时间,并且将第一时间同一个或多个时间间隔相比较以便确定所述第一时间是否落在一个或多个时间间隔中。如果所述第一时间落在一个或多个时间间隔中的一个时间间隔中,回答所述通话建立消息的动作包括,按照第一规则定义的动作回答所述通话建立消息。
更进一步,如上所述,一个或多个规则中的第一规则可以定义一个有条件的动作,即满足通话建立消息来自特定用户这个条件应采取的动作。相应地,方法550的接收动作可以包括接收符合通话建立消息的识别信号,在这里识别信号判明第二通信设备的一个用户。更进一步,所述确定这一动作可以包括从识别信号中判明用户,并且将用户的标识同一个或多个特定用户的标识进行比较以便确定所述用户是否是特定用户中的一员。如果用户是特定用户中的一员,回答通话建立消息的动作可以包括根据所述第一规则定义的动作对通话建立消息作出回答。
进一步,一个或多个通话回答规则可以定义,如果第一条件得到满足的话,将通话建立消息传送给一个或多个其它的电话通信设备。相应地,所述回答动作可以包括,如果第一条件得到满足的话,将通话建立消息传送给一个或多个其它的电话通信设备。
更进一步,所述筛选应用程序可以这样配置,即其中通话回答规则定义,如果第一条件得到满足的话,则播放一个声音。相应地,所述回答动作可以包括,如果第一条件得到满足的话,将播放这种声音。
所述筛选应用程序可以这样配置,即其中通话回答规则定义,如果第一条件得到满足的话,向正在通话的电话通信设备用户提示更多的信息。相应地,所述回答动作可以包括,如果第一条件得到满足的话,将向用户提示更多的信息。
另一个应用程序可以配置成将电子邮件和电话通话综合在一起。图17是一个表示例证方法560的流程图,方法560是将电子邮件消息的内容以音频方式在第一电话通信设备上播放。
在动作562中,控制并将电子邮件消息发送到网络资源,该网络资源将电子邮件消息的文本内容转换成话音信号。可选择的方案有,第一电话通信设备可以包括从文本到讲话的应用程序,即第一电话通信设备是所述网络资源。
在下一个动作564中,在网络资源和第一电话通信设备之间建立通话。在接下来的步骤566中,控制并将话音信号作为电话通话的一部分传输到第一电话通信设备。可以由第一电话通信设备对传输进行控制。
下一步,在动作568中,将话音信号在第一电话通信设备上播放。
可以将另一个电话应用程序配置成可以记录电话通话的会话并且然后将录制的会话发送到一个或多个音频播放设备,例如一个或多个其它电话通信设备。例如,这样的电话应用程序可以定义一种方法,即至少将第一电话通信设备的第一用户和一个或多个第三电话通信设备的一个或多个第三用户之间的电话通话的第一部分通报给一个或多个第二电话通信设备的一个或多个第二用户。这种方法可以包括一个动作,即至少将所述第一用户和所述一个或多个第三用户之间的电话通话的第一部分作为音频文件录制下来,并且将所述音频文件发送给所述一个或多个第二电话通信设备。该音频文件的发送方法可以是,将它附在电子邮件消息上并且将这个电子邮件消息发送到一个或多个第二电话通信设备,或者将所述音频文件附在通话建立消息上并且将这个通话建立消息发送到一个或多个第二电话通信设备。
另一个电话应用程序可以定义一种方法,即把图形文件作为一条消息发送给电话通信设备的用户。图18是一个表示例证方法570的流程图,方法570是向第二电话通信设备的第一用户发送一条图形消息。
在动作572中,将通话建立消息从第一电话通信设备发送到第二电话通信设备。下一步,在动作574中,从第二电话通信设备接收到指示,即第一用户没有回答所述通话建立消息。
在接下来的动作576中,将图形文件从第一电话通信设备发送到第二电话通信设备作为给第一用户的消息存储起来。然后第一用户可以将所述消息显示在第二电话通信设备的显示屏上。可选择的方案有,可以将第二电话通信设备这样配置,即只有特定用户才可以在第二电话通信设备上留图形消息。
图19是一个表示另一个例证方法580的流程图,方法580是将图形消息通报给第一电话通信设备的用户,在这里第一电话通信设备包括一个显示屏。
在动作582中,从第二电话通信设备接收到通话建立消息。在接下来的动作584中,发送了一个指示,即第一用户目前没有回答所述通话建立消息。
下一步,在动作586中,为回答发送指示这一动作,从第二电话通信设备接收到一个图形文件作为消息。
下一步,在动作588中,将图形文件显示在显示屏上以便将消息通报给第一用户。
方法580还可以包括一个动作,即将图形数据存储在第一电话通信设备可以访问的一个存储媒体里,例如,第一电话通信设备上的本地存储媒体或者位于另一个网络资源里的另一个存储媒体。
可以将另一个电话应用程序配置成能够在媒体资源上,例如在互联网的媒体资源上,增加一个连接,并且将所述媒体从那个媒体资源传输到被第一电话通信设备置于保持状态的另一个电话通信设备。这种媒体可以是音频媒体、视频媒体或它们的组合。
图20是一个表示方法590的实施方案例证的流程图,方法590是在电话通话期间将一个或多个连接置于保持状态。
在动作592中,接收到将电话通话置于保持状态的指令,并且在动作594中,接收到关于媒体文件的位置的指示。
在动作596中,创建与媒体文件的位置的连接,在动作598中,从媒体文件接收媒体信号。
在接下来的步骤600中,向一个或多个处于保持状态的连接发送所述媒体信号。
可以这样定义另一个电话应用程序,即第一用户的个人信息,包括关于如何为第一用户配置电话通信设备的配置信息,和关于第一用户使用习惯的信息。
相应地,当第一用户使用通信网络上的多个电话通信设备中的任何一个电话通信设备时,第一用户可以提供第一用户的标识,并且可以访问和使用第一用户的个人信息以便配置第一用户正在使用的电话通信设备。可以选择的方案有,可以将所述个人信息存储在通信网络上的每一个电话通信设备都可以访问的网络资源里。更进一步,可以将网络资源,例如在上述图7的说明中介绍的电话通信设备部署服务器314,配置成可以为该通信网络上的任何一个电话通信设备检索个人信息。
图21是一个表示方法610的实施方案例证的流程图,方法610是为第一用户动态地配置电话通信设备。
在动作612中,可以接收到识别第一用户的用户标识,并且在动作614中,可以访问第一用户专有的配置信息。
在接下来的动作616中,可以根据配置信息配置电话通信设备。
更进一步,每次打电话时发话人可以得到所述个人信息,或者可以将个人信息保存起来,以及可以通过个人信息管理应用程序,例如Microsoft Outlook或Lotus Notes,对个人信息进行访问。
还有,接收IVR提示的电话通话也可以选择个人信息。因此,可以将电话应用程序这样配置,即在每个IVR提示,可以访问选择个人信息,并且自动发送对IVR提示的回答,或者,如果启用了保密特点,获得允许会才发送。
可以这样配置另一个应用程序,即允许电话通信设备在向通信网络发送媒体信号前使这个信号失真、杂乱或加密。
可以这样配置另一个应用程序,即按照预先定义的标准,如速度,通过通信网络上的专用服务器控制电话通话的路径选择。例如,如果与另一个网络里的电话通信设备建立通话,可以配置这样的应用程序,即向一个或多个互联网协议/公共交换电话网网关或从互联网协议网到互联网协议网服务器询问所述通话的速度。该应用程序可以包括根据速度信息确定建立通话所用的互联网协议/公共交换电话网网关或服务器。
可以这样配置另一个应用程序,即在电话通信设备上实现不动手的通话应答。可以这样配置这种应用程序,即当接收到通话建立消息后,音频信号(如响铃)或视频信号(如闪光灯)指示用户有来话,该通话被接受了(即在电话通信设备上建立通话),并且扬声器电话或其它扬声器被激活了,因此该电话通信设备的用户可以立即开始电话交谈。
可以这样配置另一个应用程序,即对电话通话使用话音重音分析。这种应用程序可以使用已知技术监视讲话人的感情状态,并且赋于相关的数字式重音级。这个数字式重音级可以在显示屏上显示给参加电话通话的第一电话通信设备的用户。
另一个电话应用程序可以在第一电话通信设备上实现以话音为基础的拨号。这种应用程序可以包括话音识别逻辑以便查找与用户网络地址对应的话音谱型数据库,或者其它标识符以便查找与第一电话通信设备的用户说出的名字相匹配的语音谱型。这种数据库可以就近配置在第一电话通信设备上或者就远配置在另一个网络资源上。完成谱型匹配后,第一电话通信设备可以自动地与符合谱型匹配的电话通信设备建立通话。这种应用程序可以向第一电话通信设备的用户提供这样的功能,即只要简单地向第一电话通信设备说出名字就可以查找互联网上的任何电话号码,或第一电话通信设备可访问的任何其它电话目录。
如上所述,第一电话通信设备可以就近或就远存储电话号码或分机号码。因此,电话应用程序可以这样配置,即在用户键入数字以便呼叫另一个用户的同时,电话应用程序可以查找这些号码,并且在第一电话通信设备的显示屏上提供一个电话号码和分机号码的清单,或是与这些分机号码和电话号码相对应的用户的名称,显示的号码与用户到目前为止输入的数字相匹配。然后用户可以使用用户接口在显示屏上选择电话号码和分机号码或名字,这与向第一电话通信设备输入整个号码的做法不同。随着用户输入每一个新数字,匹配电话号码清单可以逐渐缩小,并且这个过程可以重复直到用户从清单中作出选择,或者将该分机号码或电话号码完全输入为止。
如同上述图5和6的说明中所讲的那样,另一个应用程序可以在第一电话通信设备上提供请求式帮助系统。这种帮助系统可以向第一电话通信设备的用户提供关于任何使用电话通信设备和如何使用特定应用程序的一步一步的信息。可以这样配置所述帮助应用程序,即使用媒体文件帮助用户。例如,如果用户正在拨打国际电话号码,帮助系统可以向用户提示正在拨打的这个号码所代表的国家的名称。为响应用户的输入提示,所述帮助应用程序可以提供相关的国家代码以及该电话号码的预计字长。在另一个例子中,这种帮助应用程序可以提供一组相互关联的文本消息和音频剪辑,它们通过一个新的或不常用的作业提醒用户。
拨打电话号码时通常出现的问题是输入不正确的数字,并且不得不挂断电话并重新输入整个号码。因此,可以将应用程序这样配置,即先将本地用户输入的所有数字存储起来,然后发送通话建立消息起始电话通话。更进一步,这样的应用程序可以在用户拨号的同时将数字显示在显示屏上。因此,这样的应用程序可以使输入错误数字的用户只要从显示屏上将错误的数字清除掉并且重新输入正确的数字,然后起始电话通话。当正确号码输入后,用户可以通过按按钮或触摸显示屏上的一个部位就可以起始电话通话。
另一个应用程序可以这样配置,即可以将用户或电话通信设备的所述有关信息和作为电话通话的一部分的通信消息一起发送(例如附在通信消息上)。相应地,这种应用程序或是有关应用程序可以这样配置,即把所述信息从作为电话通话的一部分的通信消息中提取出来。所述信息可以包括发话人所在地的本地时间,或更复杂的其它信息,例如,到以web为基地的地图测绘应用程序的指示符,它能以视频方式指示发话人的位置。更进一步,代表地图的数据本身可以和作为电话通话的一部分的通信消息一起发送。多种其它形式的信息可以作为电话通话的一部分和通信消息一起发送。
另一个应用程序可以这样配置,即控制电话通信设备按照规定的时间间隔重复地向网络地址发送通话建立消息直到该电话通话得到话音回答为止。当电话通话太紧急以致不能仅留一个话音消息时,就可以使用这样的应用程序。更进一步,可以配置这样的应用程序,即控制第一电话通信设备终止一个电话通话,如果网络地址上的收信人为回答通话建立消息而转接电话通话。
节省空间应用程序可以定义一种方法,即,为响应被初始部署在通信网络里的第一电话通信设备,只给第一电话通信设备装入某些应用程序、部分应用程序和数据。由于将第一电话通信设备配置成只动态地装入某些应用程序、部分应用程序和数据,这种节省空间应用程序限制了应用程序在第一电话通信设备上占用的存储空间,从而保护了存储资源。这种保留下来的存储空间可以用作其它目的。
可以定义另一个应用程序以便提供一个解决第一电话通信设备上的多个应用程序之间的矛盾的方法。例如,可以这样定义两个或多个应用程序,即可以向它们通报同一个事件。因此,如果事件发生,就会出现矛盾,即应该把事件通报给哪一个应用程序。
相应地,可以定义这样的应用程序接收指示,即定义如果第一事件发生,第一应用程序和一个或多个第二应用程序可以得到通知,并且将通知的优先权赋于第一应用程序,即如果第一事件发生,将该事件通知给第一应用程序,而不把该事件通知给一个或两个第二应用程序。也就是说,正像上述对应用程序仲裁器说明的那样,第一应用程序毁灭掉这个通知,从而避免了以后与一个或多个第二应用程序的矛盾。
这个矛盾解决应用程序可以包括用户接口,可以使用户作出选择并且赋于应用程序的通知优先级。例如,所述用户接口可以在台式计算机上实现,或在电话机上实现,如上述说明图5和6中时提到的电话机。
可以定义另一个应用程序,对于包括第一电话通信设备的第一用户和其它电话通信设备的多个第二用户的电话通话,一种方法,即用视频方式向第一用户指示,多个第二用户的一个或多个第三用户的话音当前正在第一电话通信设备上播放。
所述方法可以包括显示多个用户标识符,每个用户标识符指示第二用户。例如,可以将这些标识符列在计算机屏幕上或电话机的显示屏上,如上述说明图5和6时提到的显示屏206。
可以在相对于一个或多个第二用户的连接处分别从一个或多个第二用户接收音频数据。
对于一个或多个第三用户中的每一个用户,可以在从第三个用户接收到的音频数据中采用已知的数字信号处理技术检测话音数据。该应用程序可以配置一个或多个上述媒体处理模块29中描述的媒体处理单元,以便实现已知的数字信号处理技术,检测是否在一个连接上接收到了一个话音。
接下来,可以将第三个用户的话音数据混合,例如,采用图3中的本地桥接器51,以便产生混合的音频数据。在随后的动作中,可以将混合的音频数据在第一电话通信设备上播放,例如,通过手持扬声器、头戴扬声器或基座扬声器。
为了向第一用户指示第一用户当前听到的是一个或多个第三用户的话音,对于一个或多个第三用户中的每一个用户,在代表第三用户的标识符的旁边显示一个视频指示。例如,可以在显示屏上每个第二用户的名字旁边出现一个图标,条件是已经在第二用户的连接处检测到了该用户的话音数据。也可以采用其它指示方法。
数字信号处理的实现,包括接收音频数据、检测话音数据和混合音频数据可以在与上述显示指示符的设备不同的设备上完成。例如,第一电话通信设备可以实现数字信号处理,而伴随设备可以显示指示符,或者一个远程服务器可以完成数字信号处理,而第一电话通信设备可以显示指示符。
更进一步,完成数字信号处理的第一设备可以向显示指示符的第二设备传送话音检测,如作为R传输控制协议消息的一部分传送。另外,数字信号处理和显示可以在同一个设备,如第一电话通信设备上发生。
到目前为止已经对一些例证性的实施方案作了介绍,对于熟悉该项技术的人来说应该清楚,前面所描述的仅仅是例证性的而不是限制性的。多种修改方案和其它例证性实施方案是属于在这项技术的一个普通技巧的范围之内的,并被期待落入所述发明的范围内。特别是,虽然这里介绍的许多例子涉及到方法动作和设备元件的特定结合,应该懂得这些动作和这些元件可以用其它方式结合以便完成同样的目标。仅在关系到一种实施方案中所讨论的动作、元件和特点并不意味着被排除在其它实施方案的类似作用之外。