掌桥专利:专业的专利平台
掌桥专利
首页

面向对象的呼叫管理

文献发布时间:2023-06-19 11:55:48


面向对象的呼叫管理

背景技术

语音通信的管理对于许多组织的成功至关重要。语音通信为组织与其客户之间的直接通信提供了机会。客户在这些语音通信中的体验直接反映在组织本身上,并且在组织与客户之间的任何持续关系中都可能具有很高的相关性。例如,客户是否继续与特定组织开展业务可能会受到与该组织的语音通信质量的很大影响。因此,需要帮助组织通过管理呼叫来提供优质服务的改进的方法和系统。

附图说明

在不一定按比例绘制的附图中,相似的数字可以在不同的视图中描述相似的组件。具有不同字母后缀的相似数字可以表示相似组件的不同实例。附图通过示例而非限制的方式大体上示出了本文档中所讨论的各种实施例。

图1是由至少一个所公开的实施例实现的示例用户界面。

图2A是可以在一个或多个所公开的实施例中实现的数据结构的示例框图。

图2B示出了对象容器,该对象容器显示其中包含的对象,例如呼叫对象(例如202)。

图2C是示出了用户界面、对象容器和两个呼叫对象之间的示例交互的对象序列图。

图3是示出可在一个或多个所公开的实施例中实现的呼叫流程的框图。

图4是可以在一个或多个所公开的实施例中实现的用户界面的示例。

图5示出了可以由一个或多个所公开的实施例实现的另一个用户界面。

图6示出了可以在一个或多个所公开的实施例中实现的用户界面的一个实施例。

图7示出了可以在一个或多个所公开的实施例中实现的用户界面的一个实施例。

图8示出了可以在一个或多个所公开的实施例中实现的用户界面的一个实施例。

图9示出了将呼叫对象从第一容器拖到第二容器的一个实施例。

图10示出了在对象容器中包括呼叫对象的另一示例。

图11示出了可以由一个或多个所公开的实施例实现的示例数据结构。

图12是用于显示呼叫用户界面的示例方法的流程图。

图13是用于在多个用户之间共享呼叫信息的方法的流程图。

图14示出了示例机器1400的框图,在机器1400上可以执行本文所讨论的任何一种或多种技术(例如方法)。

具体实施方式

以下描述和附图充分示出了特定实施例,以使本领域技术人员能够实践它们。其他实施例可以结合结构、逻辑、电气、过程和其他改变。一些实施例的部分和特征可以被包括在其他实施例的那些部分和特征中,或代替其他实施例的那些部分和特征。权利要求书中阐述的实施例涵盖了那些权利要求书的所有可用等效物。

如上所述,语音通信的管理对于组织的成功至关重要。现有系统存在的技术问题在于,它们通常提供用于呼叫管理的严格范例。例如,现有系统可以实现呈现传入呼叫的一致视图的用户界面,以及在那些用户界面上呈现的一致的UI控件集。如果组织内的第一操作员无法协助特定的呼叫者,则该第一操作员可能很难识别组织内另一位有空并有更有利于提供帮助的个体。当第一操作员搜索适当的联系人时,呼叫者等待。因此,第一操作员的时间和呼叫者的时间实际上都被浪费了,直到确定了合适的联系人为止。在某些情况下,呼叫者可能会被第一操作员遗忘并待机,直到呼叫者放弃为止,这当然会带来不满意的体验。因此,由于现有系统缺乏以动态方式对不断变化的呼叫环境做出响应的灵活性,因此现有系统存在技术问题。此外,由于未集成组织成员之间的呼叫管理和消息传递,因此当需要组织成员之间的通信以正确管理动态呼叫环境时,这些现有系统会带来其他组织和管理挑战。

所公开的实施例通过提供一种技术解决方案来解决这些技术问题,该技术解决方案通过将每个呼叫封装在称为呼叫对象的面向对象的结构内来提供对呼叫的改进的管理。呼叫对象封装了与呼叫有关的数据和行为两者。该数据可以定义例如该呼叫的被叫方和主叫方信息。数据还可以定义例如呼叫的输入流和/或输出流。输入流可以例如从诸如基于PBX或基于IP的呼叫网络之类的外部网络提供用于呼叫的传入音频数据。输入流也可以提供来自消息传递系统(例如,下面讨论的240)的一个或多个用户的传入音频数据。呼叫的输出流可以提供由消息传递系统(例如240)针对该呼叫生成的数据。例如,当消息传递系统的用户作为呼叫的一部分而讲话时,这可以生成被写入输出流的输出数据。然后可以经由输出流将数据分发到消息传递系统内和消息传递系统外部的其他用户。

该行为是通过指针指而封装到方法的,其包括配置硬件处理电路以实现该行为的算法和/或指令。该行为可以包括引起与封装的呼叫有关的一个或多个用户界面的显示。引起显示可以包括生成例如从服务器、后端或云实现到客户端设备的一个或多个网络消息。在接收到一个或多个网络消息时,客户端设备响应于网络消息而显示用户界面。一个或多个网络消息可以包括定义或标识各个用户界面的数据。在一些其他方面,可以在将所显示的信息直接写入诸如直接连接到诸如膝上型计算机、台式机或移动设备之类的设备的监视器之类的显示设备的设备上执行“引起显示”操作。在整个本公开中,使用引起显示来避免推断必须在“硬连接”到执行引起显示操作的设备的电子显示器上发生用户界面的显示。然而,在整个本公开中,对正在显示的用户界面或用户界面元素的描述并不意味着推断出消息传递系统240的特定组件正在将用户界面元素显示在与执行该功能的设备硬连接的设备上,而是相反,可以指示显示是在远程设备上引起的,该远程设备经由网络通过软连接连接到执行显示操作的设备。

通过本公开,这些用户界面可以被统称为“(一个或多个)呼叫用户界面”。例如,呼叫对象可以引起示出呼叫状态信息的呼叫用户界面,该呼叫状态信息诸如呼叫的持续时间或呼叫的状态。呼叫的状态可以指示例如该呼叫是处于保持状态还是连接在至少两个人类呼叫者之间。呼叫对象还可以引起显示一个或多个可操作来控制呼叫的用户界面控件。例如,一个用户界面控件可以提供一种允许用户接听或应答电话的控件。另一个控件可以提供将呼叫转移到特定号码的功能。另一个控件可以提供对呼叫的闯入(barge)(例如,允许用户在呼叫者或另一个用户不知道的情况下收听实时呼叫(也称为静默监视))。

以这种方式实现呼叫对象的一个优点是,它大大改善了跨消息传递系统的多个用户的呼叫信息共享。另外,由于呼叫信息的共享主要由用户动态地确定,因此与为呼叫信息定义刚性结构或用户界面的现有系统相比,呼叫信息的共享更加灵活。

例如,所公开的实施例提供了在诸如消息传递系统的第一用户的电子邮件消息、文本消息或社交网络信源(feed)的对象容器中包括呼叫对象(或对呼叫对象的引用)。当一个或多个其他用户通过电子邮件、文本消息或社交网络信源接收到呼叫对象(或对呼叫对象的引用)时,这些其他用户然后可以通过包含的呼叫对象(或引用)与呼叫交互。例如,可以使用远程方法调用(RMI)来呼叫对象。可替代地,一些实施例可以利用.NET远程处理或Windows通信框架(WCF)来实现这一点。

在一些实施例中,如果第二用户通过社交网络信源接收到对呼叫对象的引用,则该第二用户可以通过呼叫的呼叫用户界面获得对状态信息的可见性,该状态信息可以显示在信源内。第二用户可以根据其访问权限决定以某种方式控制呼叫,例如,通过一个或多个用户界面控件加入或应答呼叫,该用户界面控件可以显示为呼叫对象的呼叫用户界面的一部分。因此,通过提供用户可控的动态呼叫信息共享,可以大大提高组织动态适应活动呼叫需求的能力,从而提高了客户满意度,并提高了呼叫处理效率,从而进一步减少提供优质服务所需的员工时间。

图1是由所公开的实施例中的至少一个实现的示例用户界面。基于用户101的访问权限和/或组成员资格,向用户101显示用户界面100。用户界面100示出了多个卡,每个卡示出了针对不同个人或用户的联系信息。为了说明的清楚,仅三个卡使用标签110a-c标记。卡101a-c中的每一个可以由基础帐户简档对象显示(或引起显示),这将在下面更详细地讨论。每张卡的联系信息包括照片(例如111a)、姓名(例如112a)、标题(例如113a)和可用性状态指示符(例如114a)。还分别为卡110b-c识别可用性状态指示符114b-c。如图所示,基于用户101的组成员资格将卡组织成三个组120a-c。可以根据由相应卡代表的各个用户的成员资格来组织卡。例如,在组120a下显示的卡可以代表“共享线路”组120a中包括的个人,而在组120b下显示的卡代表“收藏夹”组120b中包括的用户。

为了引起针对每个个人或用户的可用性状态指示符114a-c的显示,用户界面100可以调用与每个个人相关联的一个或多个呼叫对象。呼叫对象可以引起可用性状态指示符114a-c自身的显示,或者将信息提供给用户界面100,该用户界面然后可以引起信息的显示。将在下面进一步开发这些设计元素。

图2A是可以在一个或多个所公开的实施例中实现的数据结构的示例框图。图2示出了呼叫对象202。还示出了两个对象集合204a-b。对象集合204a-b每个都包括对诸如呼叫对象202之类的呼叫对象的一个或多个引用206

每个呼叫对象(例如202)包括对象特定数据210a,其可以存储与各个呼叫有关的各种信息。例如,对象特定数据210a可以存储关于以下各项的信息:该呼叫的源呼叫者,该呼叫已经被连接和/或保持的时间,该呼叫的呼叫者ID信息,诸如呼叫者姓名和/或电话号码,呼叫的寻址信息,以及其他信息。呼叫对象202还包括一个vtable209。该vtable 209包括一个或多个指向方法210b-d的指针。虽然图2示出了包括三个方法指针210b-d的vtable209,但是本领域技术人员将理解,vtable 209可以包括任意数量的指向方法的指针。方法指针210b-d指向显示对象方法215b-d。方法215b-d可以包括配置硬件处理电路以执行操作的指令。示例方法215b-d包括配置处理电路以显示呼叫用户界面的不同变化的指令。如图2所示,方法215b显示呼叫用户界面220b。方法215c显示呼叫用户界面220c。方法215d显示呼叫用户界面220d。

呼叫用户界面是贯穿本公开使用的术语,用于描述由呼叫对象202显示的用户界面。当显示时,呼叫用户界面可用于以图形方式操纵基础呼叫对象202。例如,可以将呼叫用户界面从一个位置或对象容器中拖放到另一个位置或对象容器中。本身只是用户界面的呼叫用户界面上的此类操作引起针对显示呼叫用户界面的呼叫对象发生操作。例如,以图形方式将呼叫用户界面从一个对象容器拖动到第二对象容器可以对显示呼叫用户界面的基础呼叫对象的引用添加到第二对象容器。在某些方面,可以通过由呼叫对象实现的“OnDrag()”和“OnDrop”方法来提供该能力。当适当地拖放呼叫用户界面时,这些方法可以由用户界面调用。

呼叫用户界面可以显示与由基础呼叫对象表示的呼叫有关的一个或多个数据。例如,呼叫用户界面可以呈现与呼叫源有关的信息,例如源电话号码或位置,或者消息传递系统240用户,呼叫持续时间,呼叫的当前状态,例如呼叫是否处于暂停状态,正在转发或对于一个或多个用户处于活动状态。呼叫用户界面还可以显示一个或多个用户界面控件,例如一个或多个按钮或其他控件。一个或多个用户界面控件可以起到以某种方式控制呼叫的作用。例如,第一用户界面控件可以起到保持呼叫,转发呼叫,接听呼叫,转移呼叫,监听呼叫或其他呼叫控制功能的作用。

可以经由消息传递系统240调用呼叫对象202。消息传递系统可以支持多个帐户之间的各种消息传递功能。例如,消息传递系统240可以支持用户之间的电子邮件、即时消息传递和基于信源的通信。消息传递系统240可以实现多个用户界面,包括以上参照图1所讨论的用户界面100,或其他用户界面,例如用户界面300、400或500,下面将对每个用户界面进行更详细的讨论。通过调用呼叫对象202,用户界面100和300可以引起呼叫用户界面的一个或多个变体的显示,诸如图2中所示的任何呼叫用户界面220b-d。通常,呼叫用户界面可以显示关于由呼叫对象202封装或表示的呼叫的各种信息。例如,呼叫用户界面可以显示识别该呼叫的信息,例如源电话号码,源地理区域,源呼叫者(例如,用户标识,例如姓名)。呼叫用户界面还可以显示一个或多个用户界面控件。控件可以被配置为控制由基础呼叫对象表示的呼叫。如上所述,呼叫用户界面的显示可以以与调用呼叫对象202的方法(例如210a-c)的用户相关联的访问控制为条件。

图2B示出了对象容器,该对象容器显示其中包含的对象,例如呼叫对象(例如202)。图2示出了对象容器252。对象容器252可以被包括在例如电子邮件消息正文、文本消息正文或信源中,诸如显示给订阅了该信源的社交网络的一个或多个用户的信源。当容器由托管应用程序(例如电子邮件消息应用程序、社交网络应用程序、Web浏览器或文本消息应用程序)显示时,托管应用程序可以调用显示容器的容器对象的方法。示例显示容器方法在图2B中被示为方法254。当显示容器方法254由主机应用程序调用时,它可以为包含在容器252中的每个对象调用显示对象方法。图2B示出了显示容器方法254,其调用两个显示对象方法,即用于第一对象254a的215b和用于第二对象254b的显示对象方法260。如上关于图2A所讨论的,对象254a可以是呼叫对象(例如202)。

图2C是示出了用户界面、对象容器和两个呼叫对象之间的示例交互的对象序列图。图2C的序列图260示出了发送用户界面对象266、接收用户界面对象268、对象容器270、呼叫对象202a和呼叫对象202b。发送用户界面对象266可以向接收用户界面对象268发送诸如电子邮件消息、文本消息或信源之类的消息。作为构造消息的一部分,发送用户界面266可以向对象容器270添加一个或多个呼叫对象。图2C示出了通过对容器270的“AddObject()”方法的调用被添加到对象容器270的两个呼叫对象202a-b。每个“AddObject()”方法调用272a和272b,传递对第一呼叫对象202a或第二呼叫对象202b的引用,以将相应的对象202a-b添加到对象容器270。发送用户界面对象266然后可以将对象容器270发送到接收用户界面对象268。通过电子邮件、文本消息,或通过将容器270包含在供接收用户界面有访问权限的信源中(例如,代表一个帐户)来实现发送。

接收用户界面268然后通过呼叫对象容器270的“DisplayContainer()”方法274来显示容器270。作为DisplayContainer()”方法274的一部分,容器270枚举包含在容器270中的对象列表,并为容器中的每个对象调用“DisplayObject()”方法。图2C示出了容器270调用呼叫对象202a“DisplayObject()”方法276a和呼叫对象202b“DisplayObject()”方法276b。呼叫对象202a-b可以通过显示在此讨论的呼叫用户界面之一来实现其“DisplayObject()”方法。

图3是示出可以在一个或多个所公开的实施例中实现的呼叫流的框图。图3示出了两个用户,用户101和用户401,两者都调用显示对象方法215b。上面关于图2A和2B讨论了方法215b。用户1101具有特定的访问权限集,表示为框310a。用户2401具有第二访问权限集,表示为框310b。访问权限310a和310b可以例如基于组织层次结构内的各个用户101和401位置中的每个。例如,在一些实施例中,第一用户101可以是第二用户401的主管。

图3示出了方法215b可以显示不同版本的呼叫用户界面,显示为呼叫用户界面312a或312b,这取决于呼叫用户(例如101或401)拥有哪个访问权限310a或310b。

图4是可以在所公开的实施例中的一个或多个实施例中实现的用户界面的示例。用户界面400被显示给用户401。用户界面400基于用户401的访问权限和/或组成员资格被显示给用户401。用户界面400示出了类似于用户界面100的用于其他用户的卡,如以上关于图1讨论的。例如,用户界面400包括也在图1中示出的卡110a。用户界面400还示出了组织成不同组420a-b的卡。用户401是组420a-b中每个组的成员,因此它们各自在用户界面400上显示。

用于某些用户或个人的卡可以被包括在多个组中。例如,在组420a和组420b中均示出了卡110a。图4还示出了用于传入呼叫402的呼叫用户界面。用于传入呼叫402的呼叫用户界面包括提供对传入呼叫的控制的用户界面控件404a-b。用于传入呼叫402的呼叫用户界面可以通过依赖基础呼叫对象来显示(例如202)。例如,用户界面400可以调用呼叫对象的“displayobject()”方法以显示用于传入呼叫402的呼叫用户界面。可替换地,用户界面400可以基于从基础呼叫对象获得的数据来生成呼叫用户界面402本身。这些概念将在下面进一步发展。

图5示出了可以由一个或多个所公开的实施例实现的另一用户界面。基于用户501的访问权限和/或组成员资格,向用户501显示用户界面500。用户界面500示出了也在图1中示出的卡110b。图5还示出了当指示设备悬停在卡110b上方或在某些方面悬停在可用性状态指示符114b(图5中未示出,但在图1中示出)上方时可以显示的悬停用户界面510。悬停用户界面501可以由帐户简档对象显示,这将在下面更详细地讨论。单独的帐户简档对象可以显示图5中所示的多个卡中的每一个,包括卡110b和1lOd。

悬停界面510包括三个呼叫用户界面502a-c的显示。第一呼叫用户界面502a示出了保持的呼叫,并且使用与未保持的呼叫用户界面502b和502c不同的颜色来呈现第一呼叫用户界面。

悬停界面510中显示的三个呼叫可以与用户520相关联。例如,悬停用户界面510枚举由卡110b代表的用户520正在参与或与其相关联的呼叫的列表。呼叫关联表1160可以支持呼叫列表的枚举,如下面关于图11所讨论的。如下面关于图11所讨论的,所公开的实施例可以维持消息传递系统240的帐户与呼叫之间的关联。这些关联可以用于确定哪些呼叫显示在悬停界面510中,这是特定于用户520的。当用户界面500的光标放置在不同的用户上方时,可以呈现不同的悬停界面。

每个呼叫用户界面显示呼叫标识512,并控制514a-c。为了说明清楚,仅示出了一个呼叫用户界面的组件。

悬停界面510也可以由呼叫对象支持,由呼叫用户界面502a-c表示的每个呼叫由一个悬停界面支持。例如,悬停界面510可以在每个呼叫对象(图5中未示出)中调用方法(例如“OnHover()”),以显示呼叫用户界面502a-c。

图5还示出了代表用户522的卡110d。用户501与用户522的关系可以与与用户520的关系不同。例如,用户501可以是用户522的对等方,而用户501可以是用户522的监督者。因此,相对于用户522呼叫活动的可视性降低,可以为用户501提供关于用户520呼叫活动的增加的可视性,如悬停菜单510所示,如指示524所示,用户522呼叫活动可以实现为仅示出忙碌或可用指示。

图6示出了可以在所公开的实施例中的一个或多个中实现的用户界面的一个实施例。图6示出了包括信源602的用户界面600。信源602可以被显示给消息传递系统(例如240)的一个或多个用户。图6示出了如显示给用户601的信源。用户601是消息传递系统的一个或多个用户之一。基于用户601的访问权限和/或组成员资格,向用户601显示用户界面600。

在一些方面,消息传递系统240可支持信源能力,该信源能力允许消息传递系统(例如240)的一个或多个用户或帐户订阅(和取消订阅)信源。当新信息被添加到该字段时,该新信息可以被显示在订阅帐户的用户界面上。

信源602中包括呼叫用户界面604。呼叫用户界面604包括呼叫标识符信息606、呼叫持续时间信息608和用户界面控件610,该用户界面控件610被配置成用于控制与该呼叫用户界面604相关联的呼叫。呼叫用户界面604由底层的呼叫对象(例如202)显示,在信源602或呼叫用户界面604中不可见。呼叫对象或对呼叫对象的引用可由第一用户添加到信源602中。呼叫对象可以经由例如拖放操作而被添加到信源602,例如,如下面关于图10所讨论的。简而言之,用户可以将由基础呼叫对象显示的呼叫用户界面从一个数据容器拖到另一个数据容器。在各种实施例中,用于显示呼叫用户界面604的呼叫对象的源数据容器可以是第二信源(未示出)、电子邮件消息(未示出)或任何其他数据容器。

图7示出了可以在所公开的实施例中的一个或多个中实现的用户界面的一个实施例。图7示出了显示给用户701的用户界面700。基于用户701的访问权限和/或组成员资格,向用户701显示了用户界面700。用户界面700示出了四个呼叫用户界面702a-d。每个呼叫用户界面702a-d均显示呼叫源信息704、控制呼叫的用户界面控件706和呼叫标识信息708。呼叫用户界面702a-d显示的信息基于用户701的访问权限和/或组成员资格。用户界面700显示了用户701的代表705的列表。

图8示出了可以在所公开的实施例中的一个或多个中实现的用户界面的一个实施例。用户界面800向用户801显示数据。基于用户801的访问权限和/或组成员资格,向用户801显示用户界面800。在用户界面800中显示的数据是从呼叫对象的集合的至少一部分导出的。呼叫用户界面804a-f标识集合中包括的一部分呼叫对象。每个呼叫用户界面804a-f包括呼叫识别信息806、呼叫源位置808、队列时间810以及一个或多个用于控制呼叫的用户界面控件812。为了保持附图的清晰度,在图8中仅对于呼叫用户界面804f中的一个标识这些项目,但是对于用户界面800中显示的其他呼叫用户界面804a-e以各种形式存在。用户界面800还显示用于集合的统计信息802a-h。可以基于从集合内的每个呼叫对象获得的信息来计算统计信息802a-f。例如,基础呼叫对象(例如202)可以支持提供诸如呼叫的保持时间,呼叫是否被保持以及如果保持的话,持续多长时间,是否已经应答呼叫以及可能是允许集合完成统计信息802a-f所必需的其他信息之类的数据的方法。

图9示出了将呼叫对象从第一容器拖到第二容器的一个实施例。图9示出了被实现为来自图8的队列803的第一容器。消息传递系统240的用户可以将显示的呼叫用户界面804a-f之一拖到图9所示的对象容器905,作为电子邮件正文。将一个显示的呼叫用户界面804f拖到对象容器905具有以下效果:包括对在对象容器905中显示一个呼叫用户界面804f的基础呼叫对象(例如202)的引用。然后可以通过电子邮件910将对象容器905发送给消息传递系统240的另一个用户。在接收到电子邮件910时,可以通过包含在容器905中的引用的呼叫对象来访问该呼叫。

图10示出了在对象容器中包括呼叫对象的另一示例。图10示出了包括对象容器1005的电子邮件消息1010。所示出的对象容器1005包含对显示呼叫用户界面604的呼叫对象的引用。用户可以将显示的呼叫用户界面604从容器1005拖到信源602中。将呼叫用户界面604放到信源602上之后,对显示呼叫用户界面604的呼叫对象的引用就包含在信源(对象容器)601中。一旦包含在信源602中,查看信源602的任何其他用户就可以访问该呼叫对象,取决于单个用户的访问权限。

图11示出了可以由一个或多个所公开的实施例实现的示例数据结构。图11示出了数据存储库1100。尽管以下对数据存储库1100的数据结构的讨论将这些数据结构描述为表示关系数据库表,但是本领域技术人员将理解,根据实施例,可以以各种方式来实现这些数据结构。例如,在一些实施例中,数据结构可以被实现为动态存储器对象并且经由链接列表来组织,或者被实现在非结构化数据存储区中。

图11示出了呼叫对象表1101、容器表1120、帐户简档表1130和组表1150。呼叫对象表1101包括呼叫对象标识符1102、对象数据1104、一个或多个方法指针1106

容器表1120包括容器ID 1122和呼叫对象ID字段1124。容器ID 1122唯一地标识对象容器。对象容器可以包括电子邮件正文、文本消息、信源或其他对象容器。呼叫对象ID1124识别包含在容器中的呼叫对象。呼叫对象ID 1124可以与呼叫对象ID 1102交叉引用。

帐户简档表1130包括帐户标识符1132、凭证1134、下级组标识符1136、对等组ID1138、主管组标识符1139和代表组标识符1140。在某些实施例中,下级组标识符1136、对等组标识符1138、主管组标识符1139和代表组标识符1140可共同被认为是访问特权1137。下级组标识符1136标识组表1150中的标识由帐户标识符1132标识的帐户的下级帐户的组。对等组标识符1138标识组表1150中的标识由帐户标识符1132标识的帐户的对等帐户的组。主管组标识符1139标识组表1150中的标识由帐户标识符1132标识的帐户的主管帐户的组。代表组标识符1140标识组表1150中的标识由帐户标识符1132标识的帐户的代表帐户的组。例如,代理组标识符1140可以标识例如用户701的代理705。

帐户简档表1130还包括多个方法1142

帐户标识符1132唯一地标识一个帐户。凭证1134存储在建立用于经由(经由帐户标识符1132标识)的会话之前必须提供的认证凭证。下级组ID 1136标识组表1150中的标识由帐户ID 1132标识的帐户的下级帐户的组,该组。对等组ID 1138标识组表1150中的标识通过帐户ID标识的帐户的对等帐户1132的组。主管组ID 1139标识组表1150中的标识由帐户ID 1132标识的帐户的主管的帐户的组。组ID 1136、1138和1139可被公开的实施例用来确定向用户显示哪个版本的呼叫用户界面。

每个方法指针1142

组表1150包括组标识符1152和帐户标识符1154。组标识符唯一地标识组。帐户标识符1154标识作为由组标识符1152标识的组的成员的帐户。注意,如果组1152中存在多个帐户1132,则组标识符1132的相同值可以在组表1150中多次出现。组表1150可以用于标识一个或多个组内的帐户,例如以上关于图4中的用户界面400所讨论的组420a和420b。组表1150还可以用于标识组120a-c中的一个或多个中的帐户,如上面关于用户界面100和图1所讨论的。

呼叫关联表1160将一个或多个呼叫与特定帐户关联。呼叫关联表1160包括帐户标识符1162和呼叫对象ID1164。呼叫关联表1160中的每个元组指示由帐户标识符1162识别的帐户以某种容量参与了由呼叫对象标识符1164标识的呼叫。帐户和呼叫之间的关联可以在各种情况下形成。例如,当接收到具有指示与特定帐户相关联的电话号码的被叫号码的呼叫时,可以在帐户与呼叫之间形成关联并将其记录在关联表中。当用户接听或闯入呼叫,悄悄话或监视呼叫时,可以形成用户帐户与呼叫之间的关联,并将该关联记录在呼叫关联表1160中。当与该帐户关联的用户挂断了电话时,可以删除帐户与呼叫之间的关联。

呼叫关联表1160可以用于实现上述悬停界面510。例如,当将鼠标悬停在特定帐户简档上时,可以查询呼叫关联表1160以识别与所标识的帐户相关联的呼叫。然后,在图5的示例中,可以基于用户501的访问权限来调用每个呼叫对象以显示呼叫用户界面。

会话表1170包括帐户标识符1162和会话标识符1164。在成功认证帐户后(例如1132),可以通过分配新的会话ID 1164并通过会话表将其与帐户(例如1162)关联来建立会话。可以在由会话ID 1164标识的会话内执行代表消息传递系统240的用户的操作。该会话可以继承与帐户(例如1132)相关联的访问特权(例如1137)和组成员资格(例如1160)。

图12是用于显示呼叫用户界面的示例方法的流程图。在一些方面,下面关于图12讨论的一个或多个功能可以由硬件处理电路执行。例如,存储在硬件存储器中的指令可以配置硬件处理电路以执行以下讨论的功能中的一个或多个。

在操作1205中,接收对呼叫对象的方法调用。在与第一帐户相关联的会话内调用该方法。换句话说,在提供给第一帐户的访问权限下调用该方法。操作1205的一个说明性示例是消息传递系统240,如上面关于图2所讨论的,通过对呼叫对象(例如202)的引用来调用方法215b-d之一。当显示包括呼叫对象的容器时,消息传递系统240可以间接地调用例如呼叫对象的display Object()方法。上面相对于图2B和2C提供了这样的示例。该呼叫对象与第二帐户相关联。例如,在某些方面,呼叫对象可以经由呼叫关联表1160与第二帐户关联。

决策操作1210确定第一帐户相对于第二帐户是否具有第一组访问权限。访问权限可能与(例如)第一帐户与第二个帐户的关系有关。例如,如以上关于用户界面500和图5所讨论的,仅当观看用户(例如501)与与呼叫相关联的用户(例如用户520)具有特定关系时,才可以显示呼叫用户界面502a-c。对于其他用户,例如对于由卡110d代表的用户,可以提供不同的显示,例如仅忙或闲指示510。这些访问权限可以由帐户简档中包括的数据反映。例如,访问权限1137显示为包括在帐户简档表1130中的每个帐户简档中。在一些实施例中,决策操作1210可以考虑第一帐户是否是第二帐户的对等帐户(例如1138)、下级帐户(例如1136)、主管帐户(例如1139)或代表帐户(例如1140)中的一个或多个。

如果第一帐户确实具有相对于第二帐户的第一组访问权限,则过程1200移至框1215,其引起显示呼叫用户界面的第一版本。如果第一帐户不具有相对于第二帐户的第一组访问权限,则过程1200从决策操作1210转到操作1220,这引起显示呼叫用户界面的第二版本。在图5中说明了呼叫用户界面的两个不同版本的示例。如图5所示,相对于用户520和522,用户501可以具有不同的访问权限集。因此,为用户520向用户501显示第一呼叫用户界面(502a-c中的任何一个),而为用户522向用户501显示呼叫用户界面的第二版本(例如524)。

图13是用于在多个用户之间共享呼叫信息的方法的流程图。在一些方面,下面关于图13讨论的一个或多个功能可以由硬件处理电路执行。例如,电子硬件存储器可以存储指令,该指令配置硬件处理电路以执行以下关于图13所讨论的功能中的一个或多个。

在操作1305中,为呼叫生成呼叫对象(例如202)。可以响应于消息传递系统240从诸如PBX或IP呼叫网络之类的外部网络接收到呼叫而生成呼叫对象。呼叫对象封装了特定于该呼叫的数据和行为。例如,呼叫对象可以包括定义呼叫的呼叫者和/或被呼叫者的数据。该对象可以包括定义用于该呼叫的一个或多个输入流和/或用于该呼叫的一个或多个输出流的数据。呼叫对象还可以通过包含一个vtable来封装行为,该vtable包含至少一个指向方法的指针。该方法包括实现该行为的指令。呼叫对象封装的至少一种行为是呼叫用户界面的显示。呼叫用户界面包括呼叫状态信息和/或至少一个用户界面控件,该用户界面控件是可选择的以控制呼叫。如上所述,呼叫状态信息可以指示呼叫的源地理位置,呼叫者的姓名,电话号码或与呼叫者相关联的其他地址,呼叫已连接的持续时间,呼叫的当前状态,例如,呼叫是否正在转移,处于保留状态或活动是否连接到消息传递系统(例如240)中的至少一个用户。

在操作1310中,经由第一帐户将对呼叫对象的引用包括在对象容器中。例如,用户可以将呼叫对象或对该呼叫对象的引用插入到容器中。操作1310可以包括针对第一帐户建立第一会话。例如,可以接收针对第一帐户的认证凭证,并且响应于所接收的认证凭证与针对第一帐户存储的认证凭证匹配而建立会话(例如1134)。然后,将第一会话与第一帐户相关联,并且可以根据访问权限或特权以及第一帐户的组成员资格(例如,1137和/或由组表1150定义的组成员资格)进行操作。

在操作1315中,将容器分配到至少一个其他(例如第二)帐户。如上所述,对象容器可被包括在文本消息、电子邮件消息或信源中,例如社交网络信源或消息传递系统的信源。文本消息或电子邮件消息可从第二帐户发送到提供对消息的访问的地址。可替代地,如果将信源用于分发,则第二帐户可以访问该信源(例如,第二帐户可以订阅该信源)。操作1315还可包括为第二帐户建立第二会话。这可以包括从设备接收第二认证凭证,并将接收到的凭证与针对第二帐户存储的凭证进行比较。如果凭证匹配,则第二会话被建立,并且继承为第二帐户指定的访问权限和组成员资格(例如1137和/或由组表1150定义的组成员资格)。

在操作1320中,使由呼叫对象实现的呼叫用户界面被显示在与接收对象容器的对应的至少一个帐户(例如,第二帐户)相关联的至少一个会话内。订阅包括了对象容器的信源的一个或多个用户可以在查看信源时查看用户界面。接收包括对象容器的文本消息或电子邮件的用户在查看收到的文本消息或电子邮件时查看用户界面。

在操作1330中,从帐户之一接收对呼叫用户界面的至少一个控件的选择。例如,查看包括对象容器的电子邮件、文本或信源的用户可以选择显示为呼叫用户界面一部分的控件,例如上面所述。

在操作1340中,基于选择来控制呼叫。如先前所讨论的,基于在呼叫用户界面内显示的UI控件的选择,若干呼叫操作是可能的。这些操作可以包括接听电话、结束呼叫、转发呼叫、闯入呼叫或其他呼叫操作。

注意,尽管以上讨论的过程1300描述了从第一帐户向第二帐户分配呼叫对象,但是该过程可以针对另外的第三,第四,第五或任意数量的帐户重复。每种分发都可以使用电子邮件、文本或信源机制来分发呼叫对象。另外,电子邮件或文本或信源可用于将呼叫对象分发到多个不同的帐户。

图14示出了示例机器1400的框图,在示例机器1400上可以执行本文所讨论的任何一种或多种技术(例如方法)。在替代实施例中,机器1400可以作为独立设备操作,或者可以连接(例如,联网)到其他机器。在联网部署中,机器1400可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力进行操作。在示例中,机器1400可以在对等(P2P)(或其他分布式)网络环境中充当对等机器。机器1300可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能电话、web设备、网络路由器,交换机或桥接器、服务器计算机、数据库、会议室设备或任何能够执行指令(顺序或其他方式)的机器,这些指令指定了该机器要执行的操作。在各种实施例中,机器1400可以执行以上参照图1-13描述的过程中的一个或多个过程。此外,虽然仅示出了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行本文讨论的任何一个或多个方法,例如云计算、软件即服务(SaaS)、其他计算机集群配置。

如本文所述,示例可包括逻辑或多个组件、模块或机构或可在逻辑或多个组件、模块或机构(以下均称为“模块”)上操作。模块是能够执行指定操作的有形实体(例如,硬件),并且可以以某种方式被配置或布置。在一个示例中,可以以指定的方式将电路布置(例如,内部地或相对于诸如其他电路之类的外部实体)作为模块。在一示例中,一个或多个计算机系统(例如,独立的,客户端或服务器计算机系统)或一个或多个硬件处理器的全部或部分可以由固件或软件(例如,指令、应用程序部分或应用程序)配置作为执行指定操作的模块。在一个示例中,软件可以驻留在机器可读介质上。在一个示例中,该软件在由模块的基础硬件执行时,使该硬件执行指定的操作。

相应地,术语“模块”应理解为包含有形实体,该实体是物理构造,具体配置(例如,硬接线)或临时(例如暂时地)配置(例如,编程)以指定的方式进行操作或执行此处描述的任何部分或全部操作的实体。考虑其中模块被临时配置的示例,每个模块在任何时刻都不需要被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器可以在不同时间配置为各自的不同模块。软件可以相应地配置硬件处理器,例如,以在一个时间实例上构成特定的模块,并在不同的时间实例上构成不同的模块。

机器(例如,计算机系统)1400可以包括硬件处理器1402(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任意组合)、主存储器1404和静态存储器1406,其中一些或全部可以经由互连链路(例如,总线)1408彼此通信。机器1400可以进一步包括显示单元1410、字母数字输入设备1412(例如,键盘)和用户界面(UI)导航设备1414(例如,鼠标)。在示例中,显示单元1410、输入设备1412和UI导航设备1414可以是触摸屏显示器。机器1400可以另外包括存储设备(例如,驱动单元)1416、信号生成设备1418(例如,扬声器)、网络接口设备1420以及一个或多个传感器1421,例如全球定位系统(GPS)传感器、指南针、加速度计或其他传感器。机器1400可包括输出控制器1428,例如串行(例如,通用串行总线(USB)、并行或其他有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以进行通信或控制一个或多个外围设备(例如打印机、读卡器等)。

存储设备1416可以包括机器可读介质1422,在其上存储了一组或多组数据结构或指令1424(例如,软件),这些数据结构或指令1424由本文所述的任何一种或多种技术或功能体现或利用。指令1424还可在机器1400执行它们的过程中全部或至少部分地驻留在主存储器1404内,静态存储器1406内或硬件处理器1402内。在示例中,硬件处理器1402、主存储器1404、静态存储器1406或存储设备1416的一个或任何组合可以构成机器可读介质。

尽管机器可读介质1422被图示为单个介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令1424的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。

术语“机器可读介质”可以包括能够存储,编码或携带用于由机器1400执行的指令并且使得机器1400执行本公开的任何一种或多种技术或者能够存储,编码或携带由此类指令使用或与之关联的数据结构的任何介质。非限制性机器可读介质示例可以包括固态存储器以及光学介质和磁性介质。机器可读介质的特定示例可以包括:非易失性存储器,例如半导体存储设备(例如,电可编程只读存储器(EPROM)、电擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;随机存取存储器(RAM);固态硬盘(SSD);以及CD-ROM和DVD-ROM磁盘。在一些示例中,机器可读介质可以包括非暂时性机器可读介质。在一些示例中,机器可读介质可以包括不是瞬时传播信号的机器可读介质。

指令1424还可以经由网络接口设备1420使用传输介质在通信网络1426上发送或接收。机器1400可以利用多种传输协议中的任何一种(例如,帧中继,互联网协议(IP),传输控制协议(TCP),用户数据报协议(UDP),超文本传输协议(HTTP)等)与一台或多台其他机器进行通信。示例性通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络和无线数据网络(例如,称为

如本文所述,示例可包括逻辑或多个组件、模块或机制或可在逻辑或多个组件、模块或机制上操作。模块是能够执行指定操作的有形实体(例如,硬件),并且可以以某种方式被配置或布置。在一个示例中,可以以指定的方式将电路布置(例如,内部地或相对于诸如其他电路之类的外部实体)作为模块。在一示例中,一个或多个计算机系统(例如,独立、客户端或服务器计算机系统)或一个或多个硬件处理器的全部或部分可以由固件或软件(例如,指令、应用程序部分或应用程序)配置作为执行指定操作的模块。在一个示例中,软件可以驻留在机器可读介质上。在一个示例中,该软件在由模块的基础硬件执行时,使该硬件执行指定的操作。

示例1是一种系统,包括:硬件处理电路;硬件存储器,其包含指令,这些指令在由所述硬件处理电路执行时,控制所述系统以实现:多个呼叫对象,每个呼叫对象封装与活动呼叫有关的信息,每个呼叫对象被配置为显示呼叫用户界面,该呼叫用户界面包括与其各自的呼叫有关的信息,该信息包括呼叫状态信息,并且该呼叫用户界面还被配置为显示至少一个控件,该至少一个控件被配置为在选择后基于显示呼叫用户界面的帐户会话的一个或多个访问特权来控制呼叫,其中,对呼叫的控制包括转发呼叫或接听呼叫中的至少一项;以及消息传递系统,被配置为在多个帐户之间提供消息传递,该消息传递系统被配置为,将对多个呼叫对象中的一个或多个的引用分发到多个帐户中的至少一些,并引起在多个帐户中的至少一个内显示呼叫用户界面,并且还被配置为接收选择呼叫用户界面的至少一个控件的输入,并将选择传达给相应的呼叫对象。

在示例2中,示例1的主题可选地包括:其中,所述消息传递系统被配置为接收特定帐户内的拖动操作,所述拖动操作标识所述呼叫对象集合中的特定呼叫对象,以及将所述特定呼叫对象放置到对象容器上的放置操作。

在示例3中,示例2的主题可选地包括:其中,所述对象容器是消息的主体,并且其中,所述消息传递系统被配置为将所述消息发送给接收者用户,并且在所述接收者用户的接收者帐户内显示所述消息,所述消息的显示包括用于特定呼叫对象的呼叫用户界面的显示。

在示例4中,示例3的主题可选地包括:其中,所述特定呼叫对象被配置为接收在所述呼叫用户界面内显示的用户界面控件的选择,并且基于所述选择来控制所述呼叫。

在示例5中,示例2-4中的一个或多个示例的主题可选地包括:其中,所述对象容器是信源,并且其中,所述消息传递系统被配置为在显示所述信源的多个帐户内显示针对所述特定呼叫对象的呼叫用户界面。

在示例6中,示例5的主题可选地包括:其中,所述特定呼叫对象被配置为从显示所述信源的所述多个帐户中的一个内接收所述至少一个控件中的一个的选择,所述一个控件被配置为代表所述一个帐户接听所述呼叫。

在示例7中,示例2-6中的一个或多个示例的主题可选地包括多个帐户简档对象,每个帐户简档对象封装用于所述消息传递系统的唯一用户帐户的数据,每个帐户简档对象被配置为基于查看用户帐户相对于唯一用户帐户的一个或多个访问特权在查看用户帐户内显示针对相应的唯一用户帐户的呼叫状态。

在示例8中,示例7的主题可选地包括:其中,至少一个帐户简档对象包括存储对表示与其唯一用户相关联的呼叫的一个或多个呼叫对象的引用的集合,并且被配置为基于所述查看用户帐户的一个或多个访问特权在所述查看用户帐户内显示针对一个或多个呼叫对象中的每一个的呼叫用户界面。

在示例9中,示例1-8中的任何一个或多个的主题可选地包括,其中,呼叫对象集合被配置为将呼叫对象存储在队列中,并显示该队列的统计信息。

示例10是一种方法,包括:生成用于呼叫的呼叫对象,该呼叫对象封装特定于该呼叫的数据和用于显示至少一个呼叫用户界面的行为,该呼叫用户界面显示呼叫状态信息以及用于控制该呼叫的用户界面控件;基于第一帐户的认证凭证建立第一会话;在所述第一会话中,将对呼叫对象的引用添加到对象容器;向第二帐户提供对所述对象容器的访问;基于所述第二账号的认证凭证建立第二会话;以及响应于在所述第二会话内显示所述对象容器,引起在所述第二会话内显示至少一个所述呼叫用户界面。

在示例11中,示例10的主题可选地包括:其中,向所述第二帐户提供对所述对象容器的访问包括:将所述对象容器包括在消息中;以及将所述消息发送至所述第二帐户。

在示例12中,示例10-11中的一个或多个的主题可选地包括:其中,向所述第二帐户提供对所述对象容器的访问包括:将所述对象容器包括在信源中,以及在所述第二会话内显示所述信源。

在示例13中,示例10-12中的一个或多个示例的主题可选地包括:在所述第一会话内显示针对所述呼叫对象的第二呼叫用户界面,在所述第一会话内接收所述第二呼叫用户界面的拖动操作和在所述第二呼叫用户界面上的放置操作,并响应于拖放操作将对呼叫对象的引用添加到所述对象容器中。

在示例14中,示例10-13中的一个或多个示例的主题可选地包括:其中,在所述第二会话内显示所述至少一个呼叫用户界面包括显示被配置为在选择所述用户界面控件后转移或接听所述呼叫的用户界面控件。

在示例15中,示例14的主题可选地包括:其中,显示所述至少一个呼叫用户界面包括在所述至少一个呼叫用户界面内显示呼叫状态信息。

在示例16中,示例10-15中的任何一个或多个的主题可选地包括:在所述第二会话内接收在所述至少一个呼叫用户界面上的拖动操作以及在第二对象容器内的所述至少一个呼叫用户界面的放置操作,向第三帐户提供对第二对象容器的访问,基于第三帐户的第三认证凭证建立第三会话,并响应于访问的提供而引起在第三会话内显示至少一个呼叫用户界面。

示例17是一种装置,包括:用于生成用于呼叫的呼叫对象的模块,该呼叫对象封装特定于该呼叫的数据以及用于显示至少一个呼叫用户界面的行为,该呼叫用户界面显示呼叫状态信息以及用户界面控件来控制呼叫;用于基于第一帐户的认证凭证来建立第一会话的模块;用于在第一会话中将对呼叫对象的引用添加到对象容器的模块;用于向第二帐户提供对对象容器的访问的模块;用于基于第二帐户的认证凭证建立第二会话的模块;以及用于响应于第二会话内对象容器的显示而引起在第二会话内显示至少一个呼叫用户界面的模块。

在示例18中,示例10-17中的一个或多个示例的主题可选地包括:其中,用于向第二帐户提供对对象容器的访问的模块被配置为将对象容器包括在消息中,并将该消息发送到第二帐户。

在示例19中,示例10-18中的一个或多个示例的主题可选地包括:其中,用于向第二帐户提供对对象容器的访问的模块被配置为将对象容器包括在信源中,并在第二会话内显示信源。

在示例20中,示例10-19中的一个或多个示例的主题可选地包括:用于在第一会话中引起针对该呼叫对象的第二呼叫用户界面的显示的模块;用于在第一会话内接收第二呼叫用户界面的拖动操作和第二呼叫用户界面上的放置操作的模块,以及用于响应于该拖放操作而将对呼叫对象的引用添加到对象容器的模块。

相应地,术语“模块”应理解为包含有形实体,该实体是物理构造,具体配置(例如,硬接线)或临时(例如暂时地)配置(例如,编程)以指定的方式进行操作或执行此处描述的任何部分或全部操作的实体。考虑其中模块被临时配置的示例,每个模块在任何时刻都不需要被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器可以在不同时间配置为各自的不同模块。软件可以相应地配置硬件处理器,例如,以在一个时间实例上构成特定的模块,并在不同的时间实例上构成不同的模块。

各种实施例可以全部或部分地以软件和/或固件来实现。该软件和/或固件可以采取包含在非暂时性计算机可读存储介质中或之上的指令的形式。然后,可以由一个或多个处理器读取和执行那些指令,以使得能够执行本文所述的操作。指令可以是任何合适的形式,例如但不限于源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。这种计算机可读介质可以包括任何有形的非暂时性介质,用于以一台或多台计算机可读的形式存储信息,例如但不限于只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存;等等。

相关技术
  • 面向对象的呼叫管理
  • 呼叫设备、呼叫控制系统、呼叫管理系统和呼叫控制方法
技术分类

06120113106359