首页> 中国专利> 通过VOIP客户端向蜂窝设备路由紧急呼叫

通过VOIP客户端向蜂窝设备路由紧急呼叫

摘要

公开了用于经由PTSN来对接收的通信进行路由的系统和方法。通信会话服务器促进第一计算设备、第二计算设备与经由PSTN可访问的公共服务之间的通信会话。第一计算设备使用第一通信模式来建立与通信会话服务器的通信会话。第二计算设备使用第二通信模式来建立与公共服务的通信会话,并且使用第一通信模式来建立与通信会话服务器的通信会话。由第二计算设备经由第二通信模式从公共服务接收的通信经由第一通信模式被路由到通信会话服务器。然后,通信会话服务器使用第一通信模式将所接收的通信发送到第一计算设备。

著录项

  • 公开/公告号CN112335216A

    专利类型发明专利

  • 公开/公告日2021-02-05

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201980042420.7

  • 申请日2019-06-18

  • 分类号H04L29/06(20060101);H04L29/08(20060101);H04M3/42(20060101);H04M3/51(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人张立达

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 09:47:53

说明书

技术领域

概括地说,本文公开的发明主题涉及互联网协议(IP)电话和IP语音(VoIP),并且具体地说,本文公开的发明主题涉及通过与第一计算设备通信的第二计算设备使用通信协议对由第一计算设备发起的通信会话进行路由,其中由第一计算设备接收的音频和/或视频经由第二计算设备传送给预期接收方,反之亦然。

背景技术

IP电话和VoIP是通常包含用于通过互联网进行通信会话的一种或多种手段的技术。在一些实例中,通信会话在正由计算设备执行的客户端应用之间执行,其中通信会话包括一个或多个音频和/或视频流。可以使用一种或多种通信协议来进行通信会话,这些通信协议包括但不限于传输控制协议(TCP)、互联网协议(IP)、用户数据报协议(UDP)、H.323、会话发起协议(SIP)、实时传输协议(RTP)、Skype协议、或其组合(例如TCP上的SIP(SIP overTCP))。

使用计算设备和客户端应用,用户可以与执行相同或相似客户端应用的另一个计算设备建立通信。更进一步地,用户可以建立与设备的通信会话,该设备通信地耦合到与用户正在用来进行该通信会话的计算设备不同的网络。例如,计算设备可以通信地耦合到分组交换网络,例如互联网。替代地,可以将预期接收方(或第二计算设备)通信地耦合到电路交换网络,例如公共交换电话网络(PSTN)。

在一些情况下,用户可能希望使用他或她的计算设备来呼叫诸如紧急服务之类的公共服务。使用客户端应用,用户可以尝试建立与公共服务的通信会话,其中公共服务可以通信地耦合到PSTN。然而,用户可能被禁止或阻止使用计算设备建立与公共服务的通信会话。

附图说明

在附图的图示中,通过示例而非限制的方式示出了一些实施例。

图1是示出根据一些示例实施例的、包括通信地耦合到一个或多个计算设备的通信会话服务器的联网系统的框图。

图2示出了图1所示的联网系统的替代实施方式,其中经由通信会话服务器进行通信会话。

图3示出了根据示例实施例的、图1所示的设备的应用,其中移动设备使用PSTN来进行所建立的通信会话。

图4示出了根据示例实施例的、图3所示的设备的应用和数据的另一实施方式,其中移动设备使用通信会话服务器来进行建立的通信会话。

图5示出了根据示例实施例的用于使用图1所示的计算设备来建立通信会话的方法。

图6A-图6B示出了根据示例实施例的用于通过图1-图2所示的移动设备来路由通信会话的方法。

图7A-图7B示出了根据示例实施例的用来对由图1的计算设备发起的通信会话进行路由的、图1-图2的移动设备的方法。

图8是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质或机器可读存储设备)读取指令并且执行本文中讨论的方法中的任意一种或多种方法的机器的组件的框图。

具体实施方式

下面的说明书描述了说明本发明主题的示例实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了大量具体细节,以便提供对本发明主题的各个实施例的理解。然而,对于本领域的技术人员而言显而易见的是,可以在没有这些具体细节中的一些或另外一些的情况下来实践本发明主题的实施例。示例仅代表可能的变型。除非另有明确声明,否则结构(例如结构组件,例如模块)是可选的,并且可以被组合或细分,并且操作(例如在过程、算法或其他功能中)可以顺序变化或被组合或细分。

本公开内容提供了用于通过通信地耦合到第一计算设备的第二计算设备来对由第一计算设备请求的通信会话的音频和/或视频进行路由的系统和方法。在一个实施例中,第一计算设备尝试通过正由第一计算设备执行的客户端应用来与预期接收方建立通信服务,例如紧急服务或其他公共服务。客户端应用可以与通信会话服务器通信,该通信会话服务器被配置为促进和/或建立正由其他计算设备执行的一个或多个客户端应用之间的通信会话。以此方式,通信会话服务器可以充当中介以帮助客户端应用建立彼此之间的一个或多个通信会话。通信会话服务器的一个示例是商用Skype服务器,其可以从位于华盛顿州雷德蒙德市的微软公司获得。被配置为经由通信会话服务器建立一个或多个通信会话的客户端应用的示例是商用Skype客户端应用,其可以从微软公司获得。本领域普通技术人员将理解,商用Skype服务器和商用Skype客户端应用仅是示例,还可以使用其他通信会话服务器和/或客户端应用。

在尝试建立与公共服务的通信会话时,通信会话服务器可以确定第一计算设备未被授权和/或被允许建立通信会话。因此,通信会话服务器可以确定在第一计算设备附近的第二计算设备是否被授权和/或被允许代表第一计算设备建立通信会话。因此,第一计算设备代表通信会话中的一个端点,而公共服务代表另一个端点。

在一个实施例中,第二计算设备是移动设备,例如膝上型计算机、平板电脑、智能手机或其他此类便携式设备,而第二计算设备包括被配置为与通信会话服务器通信的客户端应用。更进一步地,第二计算设备可以支持经由各种频率和/或协议的多种通信模式。例如,第二计算设备可以配备有无线网络收发机和蜂窝无线单元。在该示例中,通信会话服务器可以经由无线网络收发机指示第二计算设备经由蜂窝无线单元建立与公共服务的通信会话。更进一步地,通信会话服务器可以指示第二计算设备将从公共服务接收的音频和/或视频发送到第一计算设备,并且类似地,可以指示第二计算设备将从第一计算设备接收的音频和/或视频发送到公共服务。因此,在该示例中,通信会话服务器和第二计算设备是第一计算设备和公共服务之间的通信会话中的中介。在替代示例中,第二计算设备和第一计算设备可以建立直接通信信道,其中旨在用于公共服务的音频和/或视频被直接传送给第二计算设备,并且从公共服务接收的音频和/或视频被直接传送给第一计算设备。支持设备之间的直接通信的技术的示例包括但不限于通用串行总线(USB)、Wi-Fi直连、

本公开内容描述了对IP电话和VoIP领域的若干技术益处和在其内的改进。一个益处是,即使通信会话服务器确定第一计算设备未被授权或未被允许建立所请求的通信会话,第一计算设备的用户也可以建立与预期接收方的通信会话。例如,在一些国家或地区,在不能或者无法确定计算设备的地理位置的情况下,计算设备可能未被授权使用IP电话或VoIP技术来建立与紧急服务器(例如美国的911、英国的899、欧盟的112等)的通信会话。

然而,用户可以具有第二计算设备(例如配备有全球定位系统(GPS)收发机的智能手机),使得可以确定第二计算设备的位置(例如在第二计算设备的实际位置的几英尺或几英寸之内)。因此,将第二计算设备配置为充当用于第一计算设备的通信的中继器或路由器使用户能够使用他或她的第一计算设备来建立通信会话,同时第二计算设备与公共服务发送和/或接收音频和/或视频。

该配置特别适用于以下情况:用户当前正在使用第一计算设备,遇到了紧急情况,但是无法与他或她的第二计算设备进行交互,即使第二计算设备可能与他或她非常接近。以这种方式,所公开的方法和/或组件在IP电话和/或VoIP的领域上有所改进,因为它们有效地使第一计算设备能够以最初未配置的方式执行。

本文公开的另一个技术益处是通信会话服务器的功能和实现。就这一点而言,所公开的实施例扩展了通信会话服务器在充当一个或多个计算设备之间的网关方面的传统角色。更具体地说,所公开的实施例提供了一种通信会话服务器,该通信会话服务器验证和/或确定给定的计算设备是否被授权和/或被允许建立与特定方和/或实体(例如公共服务)的通信会话。在计算设备没有被这样授权的情况下,通信会话服务器搜索并识别可以完成通信会话或充当要发生的通信会话的中继器的兼容计算设备。因此,所描述的通信会话的公开的实施例扩展了常规或典型的通信会话服务器可以采用或执行的传统功能。

现在,本公开内容转向实现本文描述的技术方面的各种公开的实施例。图1是示出根据一些示例实施例的、包括通信地耦合到一个或多个计算设备104、106、108(被统称为104-108)的通信会话服务器110的联网系统102的框图。通信会话服务器110经由网络114(例如互联网或广域网(WAN))向计算设备104-108中的一个或多个计算设备提供服务器侧功能。计算设备104-108(例如计算设备104)可以包括用于与通信会话服务器110进行交互的客户端应用和/或模块。可以由计算设备104实例化的应用的示例包括网络客户端、单用途应用(例如“app”)、多用途应用(例如程序化客户端)、或其组合。通信会话服务器110还与其他计算设备106、108通信地耦合,所述其他计算设备可以包括与计算设备104类似的应用和/或程序。

计算设备104可以包括但不限于移动电话、桌面式计算机、膝上型计算机、便携式数字助理(PDA)、智能手机、平板电脑、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程的消费电子产品,或者用户可以用来访问通信会话服务器110的任何其他通信设备。在一些实施例中,计算设备104可以包括显示模块(未示出)以显示信息(例如以用户界面的形式)。在另外的实施例中,计算设备104可以包括触摸屏、加速计、陀螺仪、照相机、麦克风、全球定位系统(GPS)设备等中的一个或多个。计算设备104可以是用户的用于执行与通信会话服务器110的各种交互的设备,例如用于请求保险单报价、更新支付信息、查看保险单文档以及其他这样的交互。

在一个实施例中,通信会话服务器110是基于网络的应用,其促进计算设备104-108中的一个或多个计算设备之间、和/或计算设备104-108中的一个或多个计算设备与一个或多个实体(例如公共服务112)之间的双向和/或单向通信。一个或多个用户可以与计算设备104-108交互,并且在一些情况下,同一用户可以与计算设备104和计算设备106、108交互(例如其中计算设备104是膝上型计算机,而计算设备106是智能手机)。一个或多个用户可以是与计算设备104进行交互的人、机器或其他单元。在各个实施例中,用户不是联网系统102的一部分,而是可以经由计算设备104或另一单元与联网系统102交互。例如,网络114、116中的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、WAN、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络、无线网络、Wi-Fi网络、WiMAX网络,另一类型的网络,或者两个或更多这样的网络的组合。

计算设备104可以包括一个或多个应用(也被称为“app”),例如但不限于网络浏览器、消息传送应用、电子邮件(email)应用、通信会话应用,等等。在一些实施例中,如果通信会话应用作为本地应用存储在计算设备104上,则该应用被配置为在本地提供用户界面以及用于与通信会话服务器110通信的至少一些功能(例如对用户进行认证,在一个或多个计算设备和/或服务之间建立通信通道,显示或输出音频和/或视频,使用一个或多个输入设备来捕捉音频和/或视频等)。相反,如果通信会话客户端未被存储在计算设备104上,则计算设备104可以使用其网络浏览器来访问由通信会话服务器110提供的服务。

用户可以经由计算设备104或其他单元来与联网系统102交互。例如,用户向计算设备104提供输入(例如触摸屏输入或字母数字输入),并且该输入经由网络122被传送给联网系统102。在这种情况下,响应于接收到来自用户的输入,通信会话服务器110将信息经由网络122传送给计算设备104以呈现给用户。以这种方式,用户可以使用计算设备104与通信会话服务器110交互。

此外,虽然图1中所示的联网系统102采用客户端—服务器架构,但是本发明主题内容当然不限于这样的架构,而是同样可以例如在分布式或对等架构系统中找到应用。

除了计算设备104-108之外,通信会话服务器110还与不同的实体和/或服务通信。此外,计算设备104-108中的一个或多个计算设备可以使用第一通信协议集合与通信会话服务器110进行通信,并且计算设备104-108中的一个或多个计算设备可以使用第二通信协议或技术集合与实体和/或服务(例如公共服务112)进行通信。例如,计算设备106-108可以被配置为使用诸如以太网之类的有线通信接口和/或诸如802.11b/g/n(例如Wi-Fi)之类的无线通信接口来与通信会话服务器110通信。此外,计算设备104-108可以包括通信会话应用,该通信会话应用被配置为使用一种或多种通信协议(例如TCP/IP、UDP、H.323、SIP、RTP、或其组合(例如TCP上的SIP、UDP上的SIP等))来与通信服务器110通信,并且建立一个或多个通信会话。

此外,计算设备106-108中的一个或多个计算设备可以包括被配置为与蜂窝塔118通信的收发机。例如,计算设备106-108可以是智能手机,并且每个智能手机可以包括被配置为使用一种或多种移动通信标准(例如长期演进(LTE)、码分多址(CDMA)、和/或全球移动系统(GSM))来进行通信的蜂窝无线单元。就这一点而言,计算设备106-108可以包括拨号器应用,该拨号器应用用作用户与蜂窝无线单元之间的接口,使得该拨号器应用可以用于访问蜂窝塔118,并且经由PSTN与一个或多个实体和/或服务(例如公共服务112)通信。

如下文参考图3-图4所讨论的,拨号器应用和/或拨号器应用在其中执行的操作系统可以提供应用编程接口(API),该应用编程接口(API)使通信会话应用能够指示拨号器应用执行一个或多个命令(例如拨打与公共服务器112相关联的电话号码)。例如,

更进一步地,通信会话应用可以被配置为从通信会话服务器110接受一个或多个命令,使得通信会话服务器110可以指示正由计算设备106-108执行的通信会话应用经由拨号器应用建立与公共服务112的通信会话。就这一点而言,通信会话服务器110可以指示通信会话应用以指示拨号器应用拨打给定的电话号码,并且将经由拨号器应用接收的音频和/或视频经由通信会话应用发送至通信会话服务器110。

以这种方式,通信会话服务器110可以促进由第一计算设备(例如计算设备104)发起并通过第二计算设备(例如计算设备106-108)路由的通信会话。

作为示例,正由计算设备104执行的通信会话应用可以尝试经由通信会话服务器110建立与公共服务112的通信会话。在该示例中,计算设备104可以尝试使用一种或多种通信协议(例如H.323或SIP)来建立与公共服务112的通信会话。通信会话服务器110可以确定计算设备104未被授权或许可使用指定的通信协议来建立与公共服务112的通信。例如,通信会话服务器110可能无法确定计算设备104的位置,或者计算设备104可能无法提供其位置,并且具有计算设备104的位置可以是通信会话服务器110建立与公共服务112的通信会话的先决条件。

因此,通信会话服务器110然后可以搜索和/或识别可以通过其建立通信会话的其他计算设备(例如计算设备106-108)。在一个实施例中,计算设备104的用户也是所识别的计算设备中的一个(例如计算设备106)的用户。另外,通信会话服务器110可以经由计算设备本地可执行的相应通信会话应用来维护通信地耦合到通信会话服务器110(例如“登录到”通信会话服务器110)的计算设备的记录或日志。记录或日志可以包括关于连接的计算设备的信息,包括但不限于计算设备的地理位置、计算设备的类型(例如智能手机、平板电脑、桌面式计算机等)、计算设备正用于与通信会话服务器110连接的操作系统、与所连接的计算设备相关联并经由通信会话应用获得的用户标识符,以及其他这样的信息或其组合。以这种方式,通信会话服务器110被配置为将与通信会话服务器110通信地耦合的计算设备与和计算设备106的用户相关联的计算设备进行比较。

使用计算设备106可执行的通信会话应用,通信会话服务器110可以请求所识别的计算设备106确认其位置(例如经由容纳在计算设备106内的GPS收发机)或以其他方式提供对其位置的相对准确标识。在一个实施例中,通信会话服务器110请求所识别的计算设备106提供预定的容忍度(例如+/-一个或多个英尺、到最近的城市、到最近的乡镇等)内的地理位置。在该上下文中,相对准确的标识可以。通信会话服务器110然后可以指示所识别的计算设备106可执行的通信会话应用,以指示计算设备106可执行的拨号器应用建立与公共服务112的通信会话(例如经由蜂窝塔118)。

在一个实施例中,然后,将由拨号器应用接收的音频和/或视频作为输入提供给计算设备106的通信会话应用,接收的音频和/或视频然后被传送给通信会话服务器110。然后,通信会话服务器110可以将接收的音频和/或视频传送给计算设备104的通信会话应用,接收的音频和/或视频然后可以由计算设备104的一个或多个输出设备(例如通过显示器、一个或多个扬声器、耳机等)输出。

类似地,然后,可以将由计算设备104接收到的音频和/或视频输入传送给通信会话服务器110,然后,通信会话服务器110将接收到的音频和/或视频传送给计算设备106的通信会话应用。以这种方式,计算设备104经由通信会话服务器110和计算设备106(或计算设备108)与公共服务112进行通信,其中计算设备104和计算设备106可以使用第一通信协议(例如H.323或SIP)与通信会话服务器110进行通信,并且其中计算设备106使用第二通信协议(例如LTE、CDMA、GSM等)经由蜂窝塔118与公共服务112进行通信。

尽管前述示例描述了计算设备106经由通信会话服务器110与计算设备104进行通信,但是计算设备106也可以直接与计算设备104进行通信并将从公共服务112接收的音频和/或视频中继到计算设备104,而不必将音频和/或视频发送到通信会话服务器110以将其传送给计算设备104。在一个实施例中,计算设备104和计算设备106通过一种或多种通信协议(例如

另外,前述示例假设计算设备106由计算设备104的用户拥有和/或操作,并且通信会话服务器110被配置为确定和/或确认所有权(例如通过查阅将计算设备104和计算设备106与同一用户标识符相关联的数据库)。然而,前述示例也可以在第二计算设备不由第一计算设备的用户拥有和/或操作的情况下实现。可以在计算设备104尝试建立与紧急服务的通信会话但被通信会话服务器112拒绝授权和/或许可这样做的情况下实现该实施例。因此,计算设备104可能需要访问另一个计算设备,以建立该通信会话并且在通信会话期间路由音频和/或视频。

就这一点而言,通信会话服务器110可以将广播消息传送给计算设备104附近的计算设备。在一个实施例中,通信会话服务器110通过比较分配给计算设备的互联网协议(IP)地址来确定哪些计算设备在计算设备104附近。在另一实施例中,正由计算设备104执行的通信会话应用可以向用户提示他或她的大概地理位置,并且该信息可以被传送给通信会话服务器110,在此处记录该信息以供将来参考。在该实施例中,在用户尝试建立与公共服务112的通信会话之前(例如当计算设备104首先加载通信会话应用时),可以显示针对地理位置的提示。

在通信会话服务器110识别出在计算设备104附近并且通信地耦合到通信会话服务器112(例如计算设备108)的一个或多个计算设备的情况下,通信会话服务器112可以将消息发送到一个或多个所识别的计算设备,以请求允许通信会话服务器112在建立与公共服务器112的通信会话时使用所识别的计算设备。在一个实施例中,接收该请求的计算设备(例如计算设备108)显示用于请求计算设备108的用户授权通信会话服务器112的使用的提示。在另一实施例中,计算设备108自动接受来自通信会话服务器112的请求(例如在通信会话服务器112确定通信会话的另一端点上的实体是紧急服务的情况下)。以这种方式,如果通信会话服务器110阻止计算设备104建立与公共服务112的通信会话,则通信会话服务器110可以促进通过识别的计算设备(例如计算设备108)的对通信会话的路由,即使该识别的计算设备未由计算设备106的用户注册或拥有。

在图1中,计算设备106-108被配置为经由蜂窝塔118和网络116与公共服务器112进行通信。然而,在一些情况下,计算设备106-108可能无法与蜂窝塔118连接(例如在计算设备106-108不具有与蜂窝塔118的足够的蜂窝信号的情况下)。因此,在一些情况下,计算设备106-108可以经由计算设备106-108可执行的通信会话应用来建立与公共服务112的通信会话,并且将从公共服务112接收的音频和/或视频经由通信会话服务器110路由到计算设备104。

图2示出了图1所示的联网系统的替代实施方式202,其中通信会话是经由通信会话服务器110进行的。与图1中的实施方式一样,通信会话服务器110可以最初拒绝、阻止和/或禁止计算设备104建立与公共服务112的通信会话(例如在通信会话服务器110无法验证和/或确认计算设备104的位置的情况下)。

如图1所示,通信会话服务器110可以确定计算设备104的用户是否也和与计算设备104通信地耦合(例如经由NFC、经由

在识别出第二计算设备(例如计算设备106和/或计算设备108)的情况下,通信会话服务器110可以请求所识别的计算设备验证其位置。因此,在一个实施例中,所识别的计算设备与GPS收发机接合以确定其位置,该位置然后被传送给通信服务器110。然后,通信会话服务器110可以指示或请求可由所识别的计算设备执行的通信会话应用来代表计算设备104发起与公共服务112的通信会话。因此,由计算设备(例如计算设备106和/或计算设备108)接收的音频和/或视频然后被传送给通信会话服务器110,该通信会话服务器110进而将该音频和/或视频传送给计算设备104。以这种方式,计算设备106和/或计算设备108在计算设备104、通信会话服务器110和公共服务112之间路由通信。

在一个实施例中,通信会话服务器110将从公共服务112接收的音频和/或视频发送到计算设备104,和/或发送到计算设备106和/或计算设备108。在该实施例中,通信会话服务器110接收从公共服务112接收的音频和/或视频,并将其传送给计算设备104而不是将该音频和/或视频传送给计算设备106(或计算设备108),然后再次从计算设备106(或计算设备108)接收相同的音频和/或视频,并且最终将音频和/或视频传送给计算设备106。

通过使计算设备106和/或计算设备108建立与公共服务112的通信会话,所公开的实施例克服了计算设备104无法识别其地理位置的问题。此外,在通信会话使用通信会话服务器110来从公共服务112接收音频和/或视频的情况下,该实施方式减少了网络拥塞,这是因为通信会话服务器110将音频和/或视频传送给预期接收方(例如计算设备104),而不是通过首先将音频和/或视频传送给计算设备106和/或计算设备108,从计算设备106和/或计算设备108接收相同的音频和/或视频,然后将该音频和/或视频传送给计算设备104来消耗网络带宽。因此,图2所示的实施方式202及其变型解决了在多个设备之间分发音频和/或视频时出现的多个技术和工程问题。

图3示出了根据示例实施例的、图1所示的设备104-106的应用和数据,其中移动设备106使用PSTN来进行所建立的通信会话。如图3所示,并且在一个实施例中,计算设备106是移动设备106。计算设备104、移动设备106和通信会话服务器110可以各自包括用于促进与通信地耦合到PSTN并且可由计算设备104、移动设备106和/或通信会话服务器110访问的公共服务的通信会话的各种应用和/或模块。

计算设备104、移动设备106和通信会话服务器110还包括用于支持所描述的应用和/或模块的一个或多个功能的各种数据和硬件。尽管未详细示出,但是计算设备104、移动设备106和/或通信会话服务器110还可以包括通常在一个或多个计算设备中实现的硬件和/或软件组件,例如在计算设备中找到的一个或多个硬件处理器、一个或多个计算机可读介质、一个或多个通信接口、一个或多个输入和/或输出设备以及其他此类组件。

计算设备104、移动设备106和/或通信会话服务器110的各种功能组件可以驻留在单个设备上,或者可以以各种布置分布在若干计算机上。计算设备104、移动设备106和/或通信会话服务器110的各种组件可以访问一个或多个数据库(例如注册设备数据库326),并且计算设备104、移动设备106和/或通信会话服务器110的各种组件中的每个组件可以与彼此通信。此外,尽管以单数形式讨论了图3的组件,但是应当领会,在其他实施例中,可以采用组件的多个实例。

计算设备104、移动设备106和/或通信会话服务器110可以包括被配置为执行用于实例化各种应用/模块的一个或多个计算机可执行指令的一个或多个处理器(未示出)。计算设备104、移动设备106和/或通信会话服务器110的处理器可以是任何类型的市售处理器,例如可从英特尔公司、超威半导体公司(Advanced Micro Devices)、德州仪器获得的处理器或其他此类处理器。更进一步地,一个或多个处理器可以包括一个或多个专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。处理器还可以包括由软件临时配置为执行某些操作的可编程逻辑器件或电路。因此,一旦由这样的软件配置,处理器就成为被专门定制以执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。

计算设备104、移动设备106和/或通信会话服务器110还包括用于与各种设备、服务器和装置建立一个或多个通信信道的一个或多个通信接口。在一个实施例中,计算设备104包括无线收发机304、

此外,计算设备104可以使用无线收发机304与无线局域网(LAN)建立无线通信信道,并且经由无线收发机304与移动设备106进行通信(例如在计算设备104和移动设备106通信地耦合到同一SSID的情况下)。另外地和/或替代地,计算设备104可以使用一个或多个

与计算设备104类似,移动设备106可以包括一个或多个通信接口。在一个实施例中,移动设备106包括

通信会话服务器110还包括用于与计算设备104和/或移动设备106进行通信的各种通信接口(未示出)。通信接口可以包括一个或多个无线接口(例如无线收发机)、一个或多个有线接口(例如USB接口和/或以太网接口)或其组合。

使用各种机器可读介质,计算设备104、移动设备106和/或通信会话服务器110实现一个或多个应用和/或模块,并且存储与之相关的各种数据。机器可读介质可以包括被配置为临时或永久存储指令和数据的一个或多个设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存存储器、光学介质、磁性介质、高速缓冲存储器、其他类型的存储装置(例如可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应当被视为包括能够存储应用和/或模块和数据的单个介质或多个介质(例如集中式或分布式数据库,或者关联的高速缓存器和服务器)。术语“机器可读介质”还可以包括一个或多个机器可读存储设备。因此,机器可读介质可以被实现为单个存储装置或设备,或者替代地和/或另外地被实现为包括多个存储装置或设备的“基于云的”存储系统或存储网络。

在一个实施例中,计算设备104、移动设备106和/或通信会话服务器110的应用和/或模块以计算机编程和/或脚本语言编写。此类语言的示例包括但不限于C、C++、C#、Java、JavaScript、Perl、Python或现在已知或以后开发的任何其他计算机编程和/或脚本语言。以这种方式,可以用一种或多种计算机编程和/或脚本语言来实现应用和/或模块中的每一个。

计算设备104和移动设备106可以各自包括用于与通信会话服务器110和/或公共服务进行通信的通信会话客户端302、310。如参考图1所讨论的,通信会话客户端302、310可以使用计算设备104和移动设备106的组件中的一个或多个组件来进行通信,所述组件例如无线收发机304、314,

另外,通信会话客户端310被配置为与拨号器应用312进行通信,以经由蜂窝无线单元322和蜂窝塔118建立到公共服务的通信会话。如上文参考图1所解释的,通信会话客户端310可以经由提供这样的功能的API来调用拨号器应用312的一个或多个功能。在一个实施例中,通信会话服务器110向移动设备106的通信会话客户端310提供用于经由拨号器应用312建立与公共服务的通信会话的指令。在另一实施例中,计算设备104的通信会话客户端302提供该指令。在任一情况下,通信会话客户端310可以将从拨号器应用312接收的音频和/或视频路由到计算设备104的通信会话客户端302。在一个实施例中,对音频和/或视频的路由可以包括(例如经由诸如SIP之类的通信协议)将音频和/或视频传送给通信会话服务器110,通信会话服务器110然后将该音频和/或视频中继到计算设备104。在另一实施例中,对音频和/或视频的路由可以包括使用另一通信协议(例如Skype协议)将音频和/或视频直接传送给计算设备104的通信会话客户端302。

在任一实施例中,从拨号器应用312接收的音频和/或视频被传送给计算设备104的通信会话客户端302(然后由计算设备104的相应输出设备输出),并且由计算设备104的通信会话客户端302接收的音频和/或视频被传送给移动设备106的拨号器应用312,然后被传送给公共服务。以这种方式,通信会话客户端302和拨号器应用312是在计算设备104和公共服务之间建立的通信信道中的端点,其中移动设备106充当这两个端点之间的中介,并且其中通信会话服务器110也可以充当另一个中介。

通信会话服务器110包括用于建立计算设备104和经由PSTN可访问的公共服务之间的通信会话的各种应用和/或数据。在一个实施例中,通信会话服务器110包括通信会话服务器应用324,例如商用Skype服务器。通信会话服务器110还可以包括一个或多个数据库326-328,例如注册设备数据库326和通信规则数据库328。最后,通信会话服务器110可以包括通信规则评估应用和/或模块330,其可以是可由通信会话服务器应用324执行的,通信会话服务器应用324评估通信规则数据库328的一个或多个通信规则。

在一个实施例中,通信会话服务器110监测通信会话服务器应用324与其他通信会话客户端应用(例如通信会话应用302或通信会话应用310)之间的连接。为了监测这些连接,通信会话服务器110可以实现注册设备的数据库(例如数据库326)。注册设备数据库326包括与特定用户相关联的设备的列表,以及那些设备是否连接到通信会话服务器110。例如,注册设备数据库326中的每个记录可以对应于一个设备,其中该记录标识该设备的操作系统、该设备的品牌和/或型号、与该设备相关联的用户(例如经由用户标识符)、该设备是否与通信会话服务器110连接(例如经由通信会话应用)以及该设备的地理位置(或大概地理位置)。在一个实施例中,通过容纳在计算设备之内(或与之通信地耦合)的GPS收发机来确定该计算设备的地理位置。在另一实施例中,通信会话服务器110和/或通信会话客户端使用与该计算设备相关联的IP地址(例如通过使用地理定位服务提供商)来确定大概地理位置。在又一实施例中,该计算设备的用户(例如经由通信会话应用显示的提示)提供计算设备的地理位置和/或大概地理位置。

注册设备数据库326可以被实现为关系数据库、层次数据库、数组、链接列表、平面文件、分布式数据库或本地存储的数据库,或其组合。作为一个示例,可以使用微软的SQL服务器来实现注册设备数据库326,并且可以使用一种或多种结构化查询语言(SQL)语句经由通信会话服务器应用324来访问该注册设备数据库326。

在一个实施例中,通信会话客户端的用户被告知关于通信会话服务器110进行监测的信息,并且被提示确认该用户理解该信息监测。在一些情况下,通信会话服务器110可以拒绝连接计算设备的通信会话应用,其中用户指示他或她不同意由通信会话服务器110进行的信息监测。当用户拒绝由通信会话服务器110进行的信息监测时,通信会话服务器110不允许计算设备连接至通信会话服务器110,因此,通信会话服务器110不参与对计算设备的信息监测。

通过维护注册设备数据库326,通信会话服务器110能够监测和/或确定哪些计算设备连接到通信会话服务器110(例如与通信会话服务器应用324通信)和/或哪些计算设备注册到特定用户。以这种方式,如果通信会话服务器110拒绝计算设备104经由通信会话服务器110和一个或多个IP电话协议建立与公共服务的通信会话,则通信会话服务器应用324可以查询注册设备数据库326以确定用户的任何其他计算设备是否通信地耦合到通信会话服务器110(例如第一计算设备的记录包括与第二计算设备的记录相同的用户标识符)。然后,通信会话服务器应用324可以将指令发送到所识别/确定的计算设备(例如移动设备106)的通信会话应用,以(例如经由拨号器应用312)建立与公共服务的通信会话,并且对计算设备104和公共服务之间的音频和/或视频的传输进行路由。

类似地,并且如参考图1所讨论的,如果通信会话服务器应用324无法确定和/或识别通信地耦合到通信会话服务器110的用户的任何其他计算设备,则通信会话服务器应用324可以查询注册设备数据库326以识别可能在计算设备104附近的任何其他计算设备,即使那些计算设备不与计算设备104的用户相关联(例如与所识别的计算设备相关联的记录的用户标识符和与计算设备104相关联的记录的用户标识符不相同)。在一个实施例中,通信会话服务器应用324查阅通信地耦合到通信会话服务器110的计算设备的一个或多个记录的地理位置属性,并且选择指示可能最接近计算设备104的地理位置的那些记录。

在替代实施例中,通信会话服务器应用324指示计算设备104的通信会话应用302确定是否有任何其他计算设备在计算设备104附近。在该实施例中,通信会话应用302可以发送用于请求其他通信会话应用对该广播消息进行响应的网络广播消息。基于响应(例如响应指示一计算设备与计算设备104处于同一子网上或使用相同的SSID),通信会话应用302向通信会话服务器110告知附近(或可能是附近)的计算设备,然后通信会话服务器110与那些识别的计算设备进行通信。

如前所述,所识别的计算设备(例如与计算设备104的用户不相关联的计算设备)的通信会话应用可以显示用于请求允许所识别的计算设备用于对计算设备104和公共服务之间的音频和/或视频进行路由的提示或其他消息(例如所识别的计算设备将用作计算设备104和公共服务之间的中介)。

为了确定计算设备104是否被授权和/或被允许经由通信会话服务器110与特定公共服务(或其他实体)通信,通信会话服务器110包括通信规则数据库328,该通信规则数据库328规定在什么条件下计算设备被授权和/或被允许与公共服务通信。可以使用一种或多种语法和/或句法结构来实现通信规则数据库328的通信规则,这些语法和/或句法结构包括但不限于条件语句(例如IF-THEN-ELSE语句)、正则表达式、多路分支语句(例如SWITCH语句)或其组合。通信会话服务器110还可以包括通信规则评估应用330,其根据提供的输入来评估一个或多个通信规则。通信规则评估应用330还可以是通信会话服务器324的模块或组件,和/或被实例化为通信会话服务器110的过程。

在一个实施例中,第一通信规则规定计算设备需要向通信会话服务器110注册并且具有预定地理位置作为注册设备326数据库中的相应记录的值。另外,第二通信规则可以规定特定类型的计算设备(例如智能手机)或执行特定操作系统(例如

因此,通信规则评估应用330可以针对通信地耦合到通信会话服务器110的计算设备中的每个计算设备(例如计算设备104和移动设备106)来评估这些规则。另外地和/或替代地,通信规则评估应用330可以对通信规则中的针对所连接的计算设备的所选择的多个通信规则进行评估(例如在通信规则指示应当针对特定计算设备类型、操作系统、通信协议或其他此类特性来评估通信规则的情况下)。当通信规则评估应用330无法满足这些通信规则中的一个或多个通信规则时,通信会话服务器110可以最初拒绝计算设备104与公共服务之间的通信会话。当通信规则评估应用330能够满足预定的一个通信规则或通信规则集合时,通信规则评估应用330可以授权建立请求的通信会话。

在拒绝已经发生的情况下,通信会话服务器应用324可以被配置为尝试通过移动设备106(或在计算设备104附近的其他计算设备)建立通信会话。如本文所公开的,通信会话服务器110可以通过与移动设备106可执行(或正在由移动设备106执行)的通信会话应用310进行通信来尝试经由移动设备106建立通信会话。以这种方式,通信规则基于但不限于计算设备类型、正使用的通信协议、计算设备是否具有可确定的或确定的地理位置、以及其他此类特性或其组合来定义与公共服务的通信会话被允许的状况。

图4示出了根据示例实施例的、图3所示的设备的应用和数据的另一实施方式,其中移动设备106使用通信会话服务器110来进行被建立的通信会话。如上文所讨论的,通信规则可以规定计算设备可以使用IP电话协议或VoIP协议(例如H.323、SIP等)建立通信会话,其中计算设备的地理位置是可确定的或者可以被确定。在图4所示的实施方式中,计算设备104可能无法建立与公共服务的通信会话,这是因为计算设备104可能无法定位其地理位置和/或计算设备104的用户无法提供这样的位置。因此,最初,在计算设备104尝试使用IP电话或VoIP协议建立与公共服务的通信会话的情况下,通信会话服务器110可以最初拒绝建立通信会话。

然而,移动设备106可以在计算设备104附近。例如,移动设备可以经由

此外,因为移动设备106配备有GPS收发机314,所以移动设备106能够将其地理位置提供给通信会话服务器110。因此,移动设备106被配置为满足与建立与经由PSTN可访问的公共服务的通信会话相关联的一个或多个通信规则。因此,通信会话服务器应用324可以授权使用IP电话或VoIP协议的、计算设备104与公共服务之间的通信会话,其中移动设备106充当计算设备104与公共服务之间的中介。

如前所述,移动设备106可以将音频和/或视频直接传送给计算设备104(例如经由Skype协议),或者移动设备106可以将接收的音频和/或视频传送给通信会话服务器110,通信会话服务器110然后将该接收的音频和/或视频传送给计算设备104(例如经由TCP上的SIP)。另外地和/或替代地,通信会话服务器110可以将音频和/或视频传送给计算设备104,而不是通过将该接收的音频和/或视频传送给移动设备106,移动设备106随后会将这些音频和/或视频直接或经由通信会话服务器110传送给计算设备104来增加网络带宽负载。

图5示出了根据示例实施例的用于使用图1所示的计算设备来建立通信会话的方法502。方法502可以由图1-图2中所示的设备和/或服务器中的一个或多个以及图3-图4中所示的组件中的一个或多个来实现,并且通过参考其来进行讨论。

参考图1,方法502示出了第一计算设备(例如计算设备104)尝试使用IP电话或VoIP协议来建立与公共服务112的通信会话的方法。初始地,计算设备104向通信会话服务器110发送用于建立通信会话的请求(操作504),其中通信会话的第一端点包括计算设备104,并且第二端点包括公共服务112。除了该请求之外,计算设备104可以发送关于计算设备104的标识信息,例如计算设备类型(例如膝上型计算机、智能手机、桌面式计算机等)、计算设备104是否可以确定或已经尝试确定其地理位置、与计算设备104相关联的用户标识符、以及其他此类标识信息(操作506)。在替代实施例中,当通信会话应用最初与通信会话服务器110连接时,计算设备104提供该信息。

通信会话服务器110然后确定其是否可以建立计算设备104和公共服务112之间的通信会话。参考图6A-图6B讨论了关于该方法的更详细的解释。然而,关于图5,计算设备104从通信服务器110接收若干响应之一:1)指示通信会话被允许的响应,在这种情况下,计算设备104继续建立与公共服务112的通信会话;2)指示通信会话不被允许并且将不再进行建立通信会话的尝试的响应;或者3)指示计算设备104将确定第二计算设备是否可用于完成通信会话的响应。

关于以上响应(1),计算设备104可以接收该第一响应:在有或没有第二计算设备的情况下,通信会话是否被允许。在通信会话服务器110确定可能需要第二计算设备来代表计算设备104完成通信会话的情况下,计算设备104仍然接收建立通信会话的消息(操作516)。在一个实施例中,通信会话服务器110充当计算设备104与所识别的第二计算设备之间的调节器/中介;因此,从计算设备104的角度来看,计算设备104正在经由通信会话服务器110与公共服务112进行通信。计算设备104(或计算设备104的用户)可能不知道第二计算设备正在被用于建立通信会话(例如经由第二计算设备可执行的拨号器应用)。以这种方式,第二计算设备在其进行与公共服务112的通信会话时对计算设备104而言实际上是透明的(操作518)。

另外地和/或替代地,计算设备104可以从通信会话服务器110接收用于识别第二计算设备充当了通信会话的中介的指令(例如响应(3))。因此,在一个实施例中,计算设备104最初可以确定第二计算设备,例如移动设备,是否在计算设备104附近(操作508)。在计算设备104确定第二计算设备不在计算设备104附近的情况下(例如操作508的“否”分支),计算设备104可以结束和/或终止通信会话。

替代地,在计算设备104确定第二计算设备在计算设备104附近的情况下(例如操作508的“是”分支),计算设备104可以从第二计算设备请求建立通信会话的授权(操作512)。在一个实施例中,可以通过计算设备104的通信会话应用将针对授权的请求传送给所识别的计算设备的通信会话应用。该请求对于计算设备104的用户而言可以是透明的,例如在所识别的计算设备也与计算设备104的用户相关联的情况下。另外地和/或替代地,所识别的计算设备可以显示用于请求所识别的计算设备的用户提供建立与计算设备104的通信会话的授权的提示或其他消息。

在授权未被准予的情况下(例如操作512的“未被准予”分支),计算设备104可以终止通信会话。替代地,在授权被准予的情况下(例如操作512的“被准予”分支),计算设备104经由所识别的计算设备建立与公共服务112的通信会话(操作514)。参考图7A-图7B进一步讨论由所识别的计算设备执行的充当计算设备104和公共服务112之间的中介的操作。

图6A-图6B示出了根据示例实施例的用于通过图1-图2所示的移动设备来路由通信会话的方法602。方法602可以由图1-图2中所示的设备和/或服务器中的一个或多个以及图3-图4中所示的组件中的一个或多个来实现,并且通过参考其来进行讨论。

参考图1和图6,方法602示出了通信会话服务器110尝试使用第二计算设备,例如移动设备,作为通信会话服务器110与公共服务112之间的中介来建立与公共服务112的通信会话的方法。

转到图6A,通信会话服务器110最初从第一计算设备,例如计算设备104,接收用于建立与可经由PSTN访问的公共服务112的通信会话的请求。在一个实施例中(操作604)。在一个实施例中,该请求是用传输协议,例如TCP或UDP,传送的消息。另外地和/或替代地,可以使用IP电话或VoIP协议,例如H.323或SIP,来传送该请求。

通信会话服务器110然后确定计算设备104和公共服务112之间的通信会话是否被允许(操作606)。如参考图3-图4所讨论的,在确定通信会话是否被允许时,通信会话服务器应用324可以调用和/或执行通信规则评估应用330来评估存储在通信规则数据库328中的一个或多个通信规则。在评估一个或多个通信规则时,通信规则评估应用330可以查阅存储在注册设备数据库326中的一个或多个记录,具体而言,特定记录的一个或多个记录属性。

在一些情况下,当被评估时,通信规则可以允许计算设备104和公共服务112之间的通信会话(例如操作606的“被允许”分支)。因此,通信会话服务器110然后可以允许计算设备104和公共服务112之间的通信会话(操作608)。

替代地,当被评估时,通信规则可以不允许计算设备104和公共服务112之间的通信会话(例如操作606的“不被允许”分支)。然而,通信规则可以允许或定义用于建立通信会话的替代动作过程,例如通过规定在第二计算设备的地理位置是可确定的和/或被确定的情况下可以使用第二计算设备来建立通信会话。

就这一点而言,通信会话服务器应用324可以首先确定第二计算设备(例如移动设备106)是否关联于和/或注册有计算设备104的用户(操作610)。在一个实施例中,通信会话服务器应用324通过以下操作来执行该确定:将与计算设备104相关联的注册设备记录的用户标识符属性与针对与通信会话服务器110进行通信(例如登录到通信会话服务器110)的计算设备的一个或多个注册设备记录的用户标识符属性进行比较。在替代实施例中,记录对应于在通信会话服务器110上具有用户账户的用户,并且用户记录标识符对应于与特定用户相关联的那些计算设备。

在通信会话服务器110确定移动设备106与计算设备106的用户相关联的情况下(例如操作610的“是”分支),通信会话服务器110将消息传送给移动设备106可执行的通信会话应用,以建立与计算设备104最初请求的公共服务112的通信会话(操作612)。在一个实施例中,通信会话服务器110然后将从移动设备106接收的音频和/或视频传送给计算设备104,并且将从计算设备104接收的音频和/或视频传送给移动设备106(操作614)。在替代实施例中,通信会话服务器110指示计算设备104和/或移动设备106建立与另一计算设备的直接连接,使得通信在设备104-106之间发生。

返回参考操作610,通信会话服务器110可以确定不存在也注册到计算设备104的用户的、与通信会话服务器110通信的计算设备(例如操作610的“否”分支)。就这一点而言,并且在一个实施例中,通信会话服务器110然后可以确定一个或多个计算设备是否在计算设备104附近(操作616)。在一个实施例中,通信会话服务器110通过查阅注册设备数据库326的一个或多个记录,并且尤其是查阅记录的地理位置属性来执行该操作。然后,通信会话服务器应用324可以将检索到的记录的地理位置属性值与相应计算设备104的记录的地理属性值进行比较,以确定哪些计算设备可能在计算设备104附近(例如在预定和/或阈值距离之内)。在另一实施例中,通信会话服务器110查阅注册设备记录的另一属性,例如IP地址属性,并且通过IP地址属性的IP地址值的地理定位来定位在计算设备104的地理位置的预定距离和/或阈值之内的潜在计算设备。

在又一实施例中,通信会话服务器110可以将消息传送给计算设备104的通信会话应用,并且指示计算设备104确定在计算设备104附近是否存在其他计算设备(操作616)。在该实施例中,由于计算设备104能够利用计算设备104所处位置本地的另外地发现方法(例如LAN发现、

除了确定在计算设备104附近是否存在计算设备之外,计算设备104的通信会话应用还可以向连接到与计算设备104相同的SSID和/或LAN的计算设备的子网广播消息。通信会话应用还可以将广播消息发送到通过

在通信会话服务器110或计算设备104无法确定计算设备104附近的计算设备的情况下(例如操作616的“否”分支),方法602进行到图6B上的操作618。在操作618处,计算设备104可以显示关于计算设备104不能建立与目标公共服务112的通信会话的消息或提示。在一个实施例中,通信会话服务器110指示计算设备104显示该消息。在另一实施例中,计算设备104的通信会话应用确定该消息应当被显示。另外地和/或替代地,在用户需要立即协助的情况下,计算设备104可以发出(或被指示发出)警报或其他大的噪声以警示可能在计算设备104的用户附近的其他人。如果有的话,警报和/或其他大的噪声可以是由用户针对计算设备104何时应当发出它而可配置的。

替代地,在经由计算设备104的通信会话应用和/或通信会话服务器110确定合适的计算设备在计算设备104附近的情况下(例如操作616的“是”分支),方法602进行到图6B上的操作620。在操作620处,通信会话服务器110确定其是否具有访问所识别的计算设备(例如移动设备106)的授权。在一个实施例中,通信会话服务器110被准予对所识别的计算设备的立即授权(例如在涉及紧急情况的情况下)(例如操作620的“是”分支)。在一个实施例中,通信会话服务器110通过查阅一个或多个通信规则来确定是否涉及紧急情况,所述一个或多个通信规则规定被定义为“紧急情况”的那些端点(例如电话号码或其他联系人)(例如IF endpoint.contact=="911"THEN"emergency"),并且使用计算设备104最初尝试的端点联系人作为输入,以使用那些通信规则中的一个或多个进行评估。在一个实施例中,在没有通信规则指示端点联系人与紧急情况相关联的情况下,通信会话服务器110确定不涉及紧急情况。

在替代实施例中,所识别的计算设备不与该用户相关联并且紧急情况未被涉及;在该实施例中,可以在所识别的计算设备上显示用于请求是否可以向计算设备104的通信会话应用给予授权的提示或其他消息。

在通信会话应用被准予授权的情况下,方法602进行到操作622。在通信会话应用未被准予授权的情况下(例如操作620的“否”分支),方法602后退到操作618。

在操作622处,通信会话服务器110指示所识别的计算设备(例如移动设备106)建立与计算设备104最初打算联系的公共服务的通信会话。如参考图2-图3所讨论的,所识别的计算设备可以包括拨号器应用312,并且所识别的计算设备的通信会话应用310可以被配置为通过公开的API来访问拨号器应用312的一个或多个功能。在一个实施例中,所识别的计算设备经由拨号器应用312联系所请求的公共服务112,拨号器应用312经由通信会话应用将接收的音频和/或视频从公共服务112传送给通信会话服务器110(操作624)。在替代实施例中,通信会话服务器110指示计算设备104和/或移动设备106建立与另一计算设备的直接连接,使得通信在计算设备104-106之间发生(操作624)。

因此,已经描述了计算设备104和通信会话服务器110合作以建立与公共服务112的通信会话的方式,本公开内容转向通信会话服务器110用来向公共服务112以及从公共服务112路由音频和/或视频的第二计算设备(例如移动设备106)的操作。

图7A-图7B示出了根据示例实施例的用来对由图1的计算设备104发起的通信会话进行路由的、图3-图4的移动设备106的方法702。方法702可以由图1-图2中所示的设备和/或服务器中的一个或多个以及图3-图4中所示的组件中的一个或多个来实现,并且通过参考其来进行讨论。

参考图1和图7,方法702示出了响应于确定计算设备104被阻止和/或禁止建立通信会话而使用移动设备106来建立与公共服务112的通信会话的方法。在图7的上下文中,假定通信会话服务器110已经将移动设备106识别为用于建立通信会话的合适设备,并且移动设备106(或者移动设备106的用户)已经向通信会话服务器110准予了使用移动设备106的授权。

最初,并且参考图7A,移动设备106接收用于建立与公共服务112的通信会话的指令(操作704)。在一个实施例中,可以从通信会话服务器110接收该指令。在另一实施例中,可以从计算设备104接收该指令。

然后,移动设备106确定用于与公共服务112的通信会话的通信模式(操作706)。在一个实施例中,来自通信会话服务器110和/或计算设备104的指令向移动设备106指示与公共服务112的通信会话的通信模式。在另一实施例中,移动设备106确定第一通信模式(例如802.11b/g/n)的强度和/或质量,确定第二通信模式(例如LTE、CDMA、GSM等)的强度和/或质量,并且选择具有更好强度和/或质量的通信模式。在又一替代实施例中,移动设备106最初选择第一通信模式(例如蜂窝),并且如果无法经由第一通信模式来建立连接,则选择第二通信模式(例如802.11b/g/n)。

在移动设备106确定非蜂窝通信模式更适合于通信会话的情况下(例如操作706的“非蜂窝”分支),移动设备106发起与通信会话服务器110的通信会话,并且向通信会话服务器110告知公共服务112是通信会话的端点(操作708)。此后,如先前所讨论的,移动设备106使用非蜂窝通信模式来参与和公共服务112的通信会话,其中移动设备106使用预定的通信协议来与公共服务112通信(例如TCP上的SIP)(操作710)。

替代地,在移动设备106确定(或选择)蜂窝通信模式的情况下(例如操作706的“蜂窝”分支),通信会话应用310指示拨号器应用312与最初由计算设备104指定为通信会话的端点的公共服务112联系(操作712)。如先前所解释的,移动设备106的操作系统可以允许通过对公众公开的API来访问拨号器应用312的一个或多个功能。然后,通信会话应用310与拨号器应用312结合操作,以将来自公共服务312的音频和/或视频提供给计算设备104(操作714)。

接下来参考图7B,移动设备106然后确定与计算设备104的通信是直接的还是通过中介(例如通信会话服务器110)(操作716)。在一个实施例中,该确定最初在移动设备106接收到用于建立与公共服务112的通信会话的指令时被执行;就这一点而言,该指令还可以包括关于移动设备106是要与计算设备104进行通信(例如经由直接通信协议)还是与通信会话服务器110进行通信(例如经由IP电话或VoIP协议)的指示。

在移动设备106确定与计算设备104的通信是直接通信的情况下(例如操作716的“是”分支),移动设备106将从公共服务112接收的音频和/或视频直接传送给计算设备104(例如在没有通信会话服务器110充当中介的情况下),反之亦然(操作718)。替代地,在移动设备106确定与计算设备104的通信不是直接通信的情况下(例如操作716的“否”分支),移动设备106将从公共服务112接收到的音频和/或视频传送给通信会话服务器110,通信会话服务器110然后将所接收的音频和/或视频传送给计算设备104(操作720)。

以这种方式,所公开的通信会话服务器110和/或移动设备106扩展了计算设备104的功能,其中计算设备104可以被禁止和/或阻止经由一种或多种通信协议或使用一种或多种通信模式与公共服务进行通信。此外,所公开的实施例改进了现有的通信技术,这是因为辅助计算设备(例如移动设备106)可以用作平台,以使用特定的通信模式来路由来自公共服务112的音频和/或视频,其中计算设备104可以被禁止或阻止使用另一类型的通信模式与公共服务112进行通信。因此,所公开的实施例提供了以前利用许多传统的通信布置和方法没有实现的技术益处和优点。

某些实施例在本文中被描述为包括逻辑单元或多个组件、模块或机构。模块可以构成软件模块(例如体现在机器可读介质或机器可读存储设备上的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)可以通过软件(例如应用或应用部分)被配置为操作以执行如本文中所述的某些操作的硬件模块。

在一些实施例中,硬件模块可以机械地、电子地或以它们任何合适的组合来实现。例如,硬件模块可以包括被永久配置为执行某些操作的专用电路或逻辑单元。例如,硬件模块可以是专用处理器,例如FPGA或ASIC。硬件模块还可以包括由软件临时配置以执行某些操作的可编程逻辑单元或电路系统。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件模块就变成了特定的机器(或机器的特定组件),其被唯一地定制以执行所配置的功能而不再是通用处理器。将领会的是:在专用和永久配置的电路系统中或者在临时配置的电路系统(例如由软件配置的)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。

因此,短语“硬件模块”应当被理解为涵盖有形实体,其是物理构建的、永久配置的(例如硬线连接的)或临时配置的(例如编程的)以便以特定方式执行,或者执行本文中描述的某些操作。如本文中所使用的,“硬件实现的模块”指的是硬件模块。考虑其中硬件模块是临时配置是(例如编程的)的实施例,不需要在任何一个时刻配置或实例化每个硬件模块。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如包括不同的硬件模块)。软件相应地配置特定的处理器或一些处理器,例如在一个时刻构成特定的硬件模块,并在另一个时刻构成不同的硬件模块。

硬件模块可以向其他硬件模块提供信息并从其接收信息。因此,所描述的硬件模块可以被视为通信地耦合。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间或之中的信号传输(例如通过适当的电路和总线)来实现通信。在多个硬件模块在不同时间被配置或实例化的实施例中,可以例如通过存储和检索多个硬件模块可以访问的存储器结构中的信息来实现这些硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信地耦合的存储器设备中。然后,另一个硬件模块可以稍后访问存储器设备以取回和处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且可以对资源(例如信息集合)进行操作。

本文中描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,这样的处理器都可以构成处理器实现的模块,其操作以执行本文中描述的一个或多个操作或功能。如本文中所使用的,“处理器实现的模块”指的是使用一个或多个处理器实现的硬件模块。

类似地,本文中描述的方法可以至少部分是处理器实现的,其中特定处理器或一些处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。此外,一个或多个处理器还可以操作以在“云计算”环境中或作为“软件即服务”(SaaS)来支持相关操作的执行。例如,至少一些操作可以由计算机组(作为包括处理器的机器的示例)来执行,其中这些操作是经由网络(例如互联网)以及经由一个或多个适当的接口(例如API)而可访问的。

某些操作的执行可以在处理器之间分配,不仅驻留在单个机器内,而是部署在多个机器上。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置(例如在家庭环境、办公室环境或服务器群内)。在其他示例实施例中,处理器或处理器实现的模块可以跨越多个地理位置分布。

在一些实施例中,在机器和相关联的软件架构的上下文中实现结合图1-图7B描述的模块、方法、应用等。以下各节描述了适合与所公开的实施例一起使用的代表性架构。

软件架构与硬件架构结合使用以创建针对特定目的而定制的设备和机器。例如,与特定软件架构耦合的特定硬件架构将创建移动设备,例如移动电话、平板设备等。稍微不同的硬件和软件架构可以产生用于“物联网”的智能设备,而另一种组合则产生用于云计算架构内的服务器计算机。本文中并未呈现这种软件和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与本文所包含的公开内容不同的上下文中实现本发明主题。

图8是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质或机器可读存储设备)读取指令并且执行本文中讨论的方法中的任意一种或多种方法的机器800的组件的框图。具体而言,图8示出了具有计算机系统的示例形式的机器800的图形表示,在机器800内可以执行用于使机器800执行本文所讨论的方法中的任何一种或多种方法的指令816(例如软件、程序、应用、小程序、app或其他可执行代码)。例如,指令816可以使机器800执行图5-图7B的流程图。另外地或替代地,指令816可以实现图2-图3的组件中的一个或多个。指令816将一般的、未编程的机器800变换为被编程为以所描述的方式来执行所描述和示出的功能的特定机器800。在替代实施例中,机器800充当独立设备或者可以耦合(例如联网)到其他机器。在联网部署中,机器800可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力,或者作为对等(或分布式)网络环境中的对等机器来操作。机器800可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、PDA或能够顺序地或以其他方式执行指定机器800要采取的动作的指令816的任何机器。此外,虽然仅示出了单个机器800,但术语“机器”还应当被视为包括机器800的集合,其单独地或共同地执行指令816以执行本文中讨论的方法中的任何一种或多种方法。

机器800可以包括处理器810、存储器/存储装置830和I/O组件850,它们可以被配置为例如经由总线802与彼此通信。在示例实施例中,处理器810(例如中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一个处理器、或者它们的任何合适的组合)可以包括例如可以执行指令816的处理器812和处理器814。术语“处理器”旨在包括多核处理器,其可以包括可以同时执行指令816的两个或更多个独立处理器(有时被称为“核”)。尽管图8示出了多个处理器810,但机器800可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器、或者它们的任意组合。

存储器/存储装置830可以包括存储器832,例如主存储器或其他存储器存储装置,以及存储单元836,两者都可以由处理器810例如经由总线802访问。存储单元836和存储器832存储体现本文描述的方法或功能中的任何一项或多项的指令816。指令816还可以在其由机器800执行期间完全或部分地驻留在存储器832内、存储单元836内、处理器810中的至少一个处理器内(例如处理器的高速缓冲存储器内)、或它们的任何合适的组合。因此,存储器832、存储单元836、和处理器810的存储器是机器可读介质的示例。

如本文所使用的,“机器可读介质”包括能够临时或永久地存储指令816和数据的机器可读存储设备,并且可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如可擦除可编程只读存储器(EEPROM))、和/或它们任何合适的组合。术语“机器可读介质”应当被视为包括能够存储指令816的单个介质或多个介质(例如集中式或分布式数据库,或者相关联的高速缓存和服务器)。术语“机器可读介质”还应当被视为包括能够存储由机器(例如机器800)执行的指令(例如指令816)的任何介质或多个介质的组合,使得指令当由机器800的一个或多个处理器(例如处理器810)执行时,使机器800执行本文描述的方法中的任何一种或多种方法。因此,“机器可读介质”指的是单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。

输入/输出(I/O组)件850可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种各样的组件。包括在特定机器中的特定I/O组件850将取决于机器的类型。例如,便携式机器,例如移动电话,将可能包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将领会的是:I/O组件850可以包括图8中未示出的许多其他组件。将I/O组件850根据功能进行分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各个示例实施例中,I/O组件850可以包括输出组件852和输入组件854。输出组件852可以包括可视组件(例如诸如等离子显示板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)之类的显示器)、声学组件(例如扬声器)、触动组件(例如振动电机、阻力机构)、其他信号发生器等。输入组件854可以包括字母数字输入组件(例如键盘、被配置为接收字母数字输入的触摸屏、图片-光学键盘或其他字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器、或其他定点仪器)、触觉输入组件(例如物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏、或其他触觉输入组件)、音频输入组件(例如麦克风)等。

在另外的示例实施例中,I/O组件850可以包括生物计量组件856、运动组件858、环境组件860或位置组件862,以及各种各样的其他组件。例如,生物计量组件856可以包括用于进行下列操作的组件:检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如血压、心率、体温、出汗或脑波)、识别人(例如语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等等。运动组件858可以包括加速度传感器组件(例如加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等等。环境组件860可以包括例如照明传感器组件(例如光度计)、温度传感器组件(例如一个或多个检测环境温度的温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如一个或多个检测背景噪声的麦克风)、接近度传感器组件(例如检测附近物体的红外传感器)、气体传感器(例如气体检测传感器,用于检测危险气体的浓度以确保安全或测量大气中的污染物),或者可以提供与周围物理环境相对应的指示、测量结果或信号的其他组件。位置组件862可以包括位置传感器组件(例如GPS接收机组件)、高度传感器组件(例如检测可以从其导出高度的气压的高度计或气压计)、方位传感器组件(例如磁力计)等等。

可以使用各种各样的技术来实现通信。I/O组件850可以包括通信组件864,其可操作以分别经由耦合882和耦合872将机器800耦合到网络880或设备870。例如,通信组件864可以包括网络接口组件或与网络880对接的其他合适的设备。在其他示例中,通信组件864可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、

此外,通信组件864可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件864可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如光学传感器,其用于检测诸如通用产品码(UPC)条形码之类的一维条形码、诸如快速响应(QR)码之类的多维条形码、Aztec码,数据矩阵、Dataglyph、Maxi码、PDF416、超码、UCC RSS-2D条形码和其他光学码)、或声学检测组件(例如用于识别经标记的音频信号的麦克风)。另外,可以经由通信组件864导出各种信息,例如经由互联网协议(IP)地理定位的位置、经由

在各种示例实施例中,网络880的一个或多个部分可以是自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN,WWAN、MAN、互联网、互联网的一部分、PSTN的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

可以经由网络接口设备(例如包括在通信组件864中的网络接口组件)使用传输介质并且利用多种众所周知的传输协议中的任何一种(例如超文本传输协议(HTTP))来通过网络880发送或接收指令816。类似地,可以使用传输介质经由到设备870的耦合872(例如对等耦合)来发送或接收指令816。术语“传输介质”应当被理解为包括能够存储、编码、或携带用于由机器800执行的指令816的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以便促进该软件的通信。

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管一种或多种方法的各个操作被示出并描述为单独的操作,但是可以同时执行一个或多个单独的操作,并且不需要以图示的顺序来执行操作。作为示例配置中的单独组件给出的结构和功能可以被实现为组合的结构或组件。类似地,作为单独组件给出的结构和功能可以被实现为单独的组件。这些和其他变型、修改、添加和改进落入本文中的发明主题的范围之内。

尽管已经参考特定示例实施例描述了本发明主题的概述,但是可以对这些实施例进行各种修改和改变而不脱离本公开内容的实施例的更宽范围。本发明主题的这些实施例可以单独地或共同地通过术语“发明”在本文中提及,仅为了方便,并且不意图将本申请的范围自愿地限制于任何单个公开内容或发明构思,如果事实上公开了一个以上的话。

用充足的细节描述了本文中说明的实施例,以使得本领域的技术人员能够实践所公开的教示。可以使用其他实施例并从中导出其他实施例,使得可以进行结构和逻辑替换和改变而不脱离本公开内容的范围。因此,具体实施方式不应被视为具有限制意义,并且各个实施例的范围仅由所附权利要求以及这些权利要求所赋予的等价物的全部范围来限定。

如本文中所使用的,词语“或”可以以包含性或排他性的含义来解释。此外,可以针对本文中描述的资源、操作或结构将多个实例提供单个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且在具体说明性配置的上下文中说明了特定操作。功能的其他分配被设想,并且可以落入本公开内容的各个实施例的范围之内。概括地说,作为示例配置中的单独资源给出的结构和功能可以被实现为组合的结构或资源。类似地,作为单独资源给出的结构和功能可以被实现为单独的资源。这些和其他变化、修改、添加和改进落入由所附权利要求书表示的、本公开内容的实施例的范围内。因此,应当认为说明书和附图是说明性而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号