通信系统和方法转让专利

申请号 : CN201210582331.1

文献号 : CN103067626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R.马勒高恩卡S.佩尔特拉克

申请人 : 斯凯普公司

摘要 :

公开一种对目的地电话号码设置出局通信事件的方法。因此,当接收到该出局通信事件的通知时,确定该目的地电话号码是否与第一网络的用户相关。第一网络是基于包的通信网络。然后检索与该目的地电话号码相对应的第一网络的用户的用户标识。还检索第一网络中与该用户相关的通信节点的存在信息。该存在信息是该用户可用性的表示。该通信节点被配置为接收语音通信事件。基于检索到的存在信息对第一网络中与该用户相关的通信节点设置该出局通信事件。

权利要求 :

1.一种对目的地电话号码设置出局通信事件的方法,该方法包括:当接收到所述出局通信事件的通知时:

确定所述目的地电话号码与第一网络的用户相关,其中所述第一网络是基于包的通信网络;

检索与所述目的地电话号码相对应的所述第一网络的用户的用户标识;

检索所述第一网络中与所述用户相关的通信节点的存在信息,其中所述存在信息是所述用户可用性的表示,其中所述通信节点被配置为接收通信事件;以及基于检索到的存在信息,使用检索到的用户标识对所述第一网络中与所述用户相关的通信节点设置所述出局通信事件;响应于确定所述目的地电话号码不与第一网络中的任何用户关联:给最终用户终端分配临时的出局身份;以及

利用所述临时的出局身份将出局通信事件设置于第二网络中的所述目的地电话号码。

2.一种通信系统,包括:

连接到第一网络的多个最终用户终端;

耦合到所述第一网络和第二网络以使所述第一网络与所述第二网络对接的网关;

通信服务器,其中所述通信服务器和所述多个最终用户终端中的至少一个二者中的至少一个被配置为进行对目的地电话号码设置出局通信事件的操作,所述操作包括:当接收到所述出局通信事件的通知时:

确定所述目的地电话号码与第一网络的用户相关,其中所述第一网络是基于包的通信网络;

检索与所述目的地电话号码相对应的所述第一网络的用户的用户标识;

检索所述第一网络中与所述用户相关的通信节点的存在信息,其中所述存在信息是所述用户可用性的表示,其中所述通信节点被配置为接收通信事件;以及基于检索到的存在信息对所述第一网络中与所述用户相关的通信节点设置所述出局通信事件;

响应于确定所述目的地电话号码不与第一网络中的任何用户关联:给最终用户终端分配临时的出局身份;以及

利用所述临时的出局身份将出局通信事件设置于第二网络中的所述目的地电话号码。

3.根据权利要求1所述的方法,其中如果所述目的地电话号码不与所述第一网络中的任何用户相关,则通过基于最低通信关税率选择的通信网关在第二网络中对所述目的地电话号码设置所述出局通信事件。

4.根据权利要求1的方法或者权利要求2的通信系统,其中在所述设置之前,确定所述通信节点中的配置是否禁止在所述通信节点处终止意图在所述第二网络中的所述目的地电话号码处终止的通信事件。

5.根据权利要求1的方法或者权利要求2的通信系统,其中所述存在信息包括与接受最初意图在第二网络中的所述目的地电话号码处终止的通信事件相关的用户配置和默认配置中的至少一个。

6.根据权利要求1的方法或者权利要求2的通信系统,其中所述检索所述用户标识包括在与呼叫用户相关的呼叫最终用户站本地存储的所述呼叫用户的联系人列表中搜索,其中如果本地存储的联系人列表不包括与所述目的地电话号码相对应的用户标识,则检索所述用户标识进一步包括针对所述用户标识查询与所述呼叫最终用户站相关的通信服务器。

7.根据权利要求1的方法或者权利要求2的通信系统,其中所述通信事件是语音呼叫或者文本消息之一。

8.根据权利要求2的通信系统,其中如果所述目的地电话号码不与所述第一网络中的任何用户相关,则通过基于最低通信关税率选择的网关在第二网络中对所述目的地电话号码设置所述出局通信事件。

说明书 :

通信系统和方法

技术领域

[0001] 本发明的实施例一般涉及实时通信,并且尤其涉及在不同的电话网络内或之间启动或结束电话呼叫。

背景技术

[0002] 一些通信系统允许用户设备,如个人计算机,在因特网等基于包的计算机网络上通信。这种通信系统包括基于因特网协议的语音(voice over internet protocol,VoIP)通信系统。这些系统对用户来说是有利的,因为它们通常比传统的固定线路或移动网络的费用低得多。对于长途通信可能尤其如此。为了使用VoIP系统,用户在其设备上安装并执行客户端软件。该客户端软件提供VoIP连接以及其它功能,如注册和认证。除了语音通信以外,该客户端还可以提供进一步特征,如视频呼叫、即时消息(instant messaging,IM)、SMS消息、文件传输以及语音邮件。
[0003] 基于包的通信的一种通信系统使用点对点(peer-to-peer,P2P)拓扑。为了能够访问点对点系统,用户必须在他们的计算机(其包括任何支持的计算设备,包括智能电话)上执行由P2P软件提供商(或者第三方厂商)提供的P2P客户端软件,并且注册到该P2P系统。当用户注册到该P2P系统时,该客户端软件具有从服务器提供的数字证书。一旦该客户端软件具有了该证书,就可以随后在该P2P系统的用户之间建立并路由呼叫或其它通信,而不在该建立中进一步使用服务器。而是该客户端从该P2P系统内的其它最终用户的计算机上的P2P客户端软件当中分布的信息查找所需的IP地址。一旦被呼叫者终端的IP地址已被由此确定,呼叫者的P2P客户端软件就与被呼叫者的P2P客户端软件交换证书。用户之间数字证书(或者用户身份证书(user identity certificates, UIC))的交换提供用户身份以及他们在该P2P系统中被适当授权和认证的证明。因此,数字证书的呈现提供对用户身份的信任。因此,一旦注册,用户就可以基于分布的地址查找以及一个或多个数字证书的交换、以分散的方式通过该P2P系统建立他们自己的通信路由,而不使用服务器用于这些目的,这是点对点通信的特征。在WO 2005/008524和WO 2005/009019中公开了这种P2P系统的进一步细节。VoIP或其它基于包的通信还可以使用非P2P系统来实现,非P2P系统使用集中式呼叫建立。
[0004] 该P2P系统典型地允许从P2P客户端软件呼叫PSTN或移动电话号码。然而,当从呼叫者的P2P客户端软件呼叫PSTN或移动电话号码时,该P2P系统将该呼叫路由到PSTN或移动网络。需要将呼叫从基于包的网络路由到PSTN或移动网络(反之亦然)的系统和方法以减小成本并提高服务质量。

发明内容

[0005] 在一个实施例中,公开一种对目的地电话号码设置出局通信事件(place an outgoing communication event)的方法。因此,当接收到该出局通信事件的通知时,确定该目的地电话号码是否与第一网络的用户相关。第一网络是基于包的通信网络。然后检索与该目的地电话号码相对应的第一网络的用户的用户标识。还检索第一网络中与该用户相关的通信节点的存在信息。该存在信息是该用户可用性的表示。该通信节点被配置为接收语音通信事件。基于检索到的存在信息对第一网络中与该用户相关的通信节点设置该出局通信事件。
[0006] 在另一个实施例中,公开一种通信系统。该通信系统包括:连接到第一网络的多个最终用户终端;耦合到第一网络和第二网络以使第一网络与第二网络对接的网关;以及通信服务器。所述通信服务器和所述多个最终用户终端中的至少一个二者中的至少一个被配置为进行对目的地电话号码设置出局通信事件的操作。因此,该操作包括当接收到该出局通信事件的通知时,判断该目的地电话号码是否与第一网络的用户相关。第一网络是基于包的通信网络。然后检索与该目的地电话号码相对应的第一网络的用户的用户标识。还检索与该用户相关的第一网络中通信节点的存在信息。该存在信息是该用户可用性的表示。该通信节点被配置为接收语音通信事件。基于检索到的存在信息对第一网络中与该用户相关的通信节点设置该出局通信事件。
[0007] 在另一实施例中,公开一种包含程序的计算机可读存储介质,当被执行时,该程序进行对目的地电话号码设置出局通信事件的操作。因此,该操作包括当接收到该出局通信事件的通知时,判断该目的地电话号码是否与第一网络的用户相关。第一网络是基于包的通信网络。然后检索与该目的地电话号码相对应的第一网络的用户的用户标识。还检索与该用户相关的第一网络中通信节点的存在信息。该存在信息是该用户可用性的表示。该通信节点被配置为接收语音通信事件。基于检索到的存在信息对第一网络中与该用户相关的通信节点设置该出局通信事件。
[0008] 其它实施例包括但不限于包括使处理单元能够实现所公开的方法的一个或多个方面的指令的非暂时性计算机可读存储介质以及被配置为实现所公开的方法的一个或多个方面的系统。

附图说明

[0009] 为了能够详细地理解本发明的上述特征,可以关于实施例给出上文简要总结的本发明的更具体的描述,附图中示出一些实施例。然而,应当指出,附图仅示出本发明的典型实施例,因此不被视为限制本发明的范围,因为本发明可以允许其它等同有效的实施例。
[0010] 图1示出根据本发明的一个实施例的基于因特网的通信系统的示意图。
[0011] 图2是根据本发明的一个实施例的最终用户终端的逻辑图。
[0012] 图3示出根据本发明的一个实施例的启动从一个网络到另一个网络的电话呼叫的示例性处理。具体实施例
[0013] 在以下描述中,给出多个特定细节,以提供对本发明更透彻的理解。然而,本发明可以在没有这些特定细节中的一个或多个的情况下实施,这对于本领域的技术人员来说是显而易见的。在其它情况下,为了避免使本发明不明显,公知的特征没有被描述。
[0014] 本公开提到“一个实施例”或者“一实施例”时,意味着关于该实施例描述的特定特征、结构或特点包括在本发明的至少一个实施例中。因此,短语“在一个实施例中”或者“在一实施例中”在本说明书中不同地方的出现不一定都涉及同一实施例。此外,这些特定特征、结构或特点可以用任何适当的方式结合在一个或多个实施例中。
[0015] 图1是通信系统100的示意图。通信系统100至少包括基于包的网络,如因特网102,该网络包括多个相互连接的元件中的一个或多个,如膝上计算机112a、112d、移动电话
112b、桌上计算机112c、平板计算机112e和Web服务器104。还可以包括一个或多个电话网关108a、108b、108c,以将电话呼叫路由到PSTN或移动网络110。在一个实施例中,如果通信系统100中包括多于一个网关,那么这些网关中的至少一些可以根据电话呼叫区域位于不同的地理位置。一些网关还可以位于不同的国家。至少一些网络元件与因特网102的其余部分互耦合,并且被配置为通过发送和接收因特网协议(IP)包形式的数据与因特网上的其它这种元件传递数据。耦合到因特网102的每个元件还具有在因特网中将其定位的相关IP地址。通信服务器106(如P2P服务器)可以包括在通信系统100中。其它最终用户终端(例如,膝上计算机、桌上计算机、智能电话、平板计算机等)、服务器和网关以及因特网服务提供商(ISP)的路由器和因特网骨干路由器等也可以包括在通信系统100中。VoIP陆线电话113也可以耦合到因特网102。该VoIP电话被配置为与通信服务器106通信。
[0016] 在一个实施例中,多个最终用户终端中的每一个包括通信软件,该通信软件包括P2P客户端应用程序或者通信客户端应用程序,其还可以包括用于从最终用户终端呼叫电话号码的特征。当被执行时,该P2P客户端应用程序允许最终用户终端(例如,112a...e)使用P2P呼叫建立(或者更一般的连接建立)经由因特网与其它这种最终用户终端或PSTN电话建立双向通信信道。在一个实施例中,该通信客户端应用程序还相互共享提供用户可用性状态的存在信息。优选地,每个用户的存在信息至少部分由用户自己定义。为了补充该分散式呼叫建立,该通信客户端应用程序可以从通信服务器106检索一些附加信息,如提供用户联系人名字的联系人列表、作为由用户选择以代表他们自己在通信服务器106内的图像的“化身”。
[0017] 通信应用程序还可以安装在耦合到因特网102和PSTN网络二者以及/或者移动蜂窝网络110的网关108a。这允许运行在最终用户终端112a-e上的通信客户端应用程序(例如,P2P客户端应用程序或者VoIP客户端应用程序)分别与普通陆线电话(即,PSTN电话)和/或移动电话通信,即使这些电话本身不运行通信客户端应用程序并且不直接耦合到因特网102。在此情况下,最终用户终端112a-e上的通信客户端应用程序使用P2P呼叫建立在因特网上与网关108a上的通信客户端应用程序建立连接并且向其提供电话号码,网关108使用该电话号码在PSTN或者/以及移动网络110上与该电话建立连接。
[0018] 在一个实施例中,如果特定的最终用户终端112a不具有相关电话号码,那么网关108a(或者108b或者108c)或者通信服务器106可以在建立对PSTN或移动网络110中的电话号码的呼叫之前分配临时的出局身份(例如,呼叫者标识号码)。在一个实施例中,该临时电话号码可以是随机号码或文字,或者由用户或通信服务器106预先配置。在其它实施例中,可以使用最终用户终端的用户的用户id或者基于该用户id产生的号码作为出局身份。
[0019] 在另一个实施例中,通信客户端应用程序214可以从网络节点检索并缓存通信客户端应用程序214的用户的一个或多个联系人的联系人信息。该网络节点可以是因特网102中的服务器,其存储与通信客户端应用程序214相关的通信网络的所有用户或用户子集的联系人信息。当用户在通信客户端应用程序214中输入电话号码时,通信客户端应用程序214在联系人列表中搜索与输入的电话号码相关的通信网络用户标识。例如,如果用户拨打电话号码“6505551212”,则通信客户端应用程序214搜索本地存储或缓存的联系人列表,以确定该号码是否与本地存储的联系人列表中的任何联系人相关。如果找到匹配的联系人,则通信客户端应用程序214进一步确定所找到的联系人是否还包括与连接到通信客户端应用程序214的通信网络相关的用户标识。
[0020] 如果该用户标识被找到,则通信客户端应用程序214尝试从通信网络中与找到的用户标识相关的通信节点检索存在信息。如果检索到的存在信息表示与找到的用户标识相关的通信节点的用户是可用的并且被配置为通过该通信节点接收呼叫,则通信客户端应用程序214使用通信网络呼叫该通信节点,而不是呼叫第二网络中最初输入的电话号码。
[0021] 在另一个实施例中,如果没有在本地存储的联系人列表中找到联系人,则通信客户端应用程序214尝试询问通信服务器106。如果通信服务器106返回与输入的电话号码相对应的用户标识,则如前段落描述的,通信客户端应用程序214基于存在信息,使用该用户标识呼叫(place a call)与该用户标识相关的通信节点。作为选择,通信客户端应用程序214可以呼叫输入的号码。在网关108a-c或者通信服务器106上接收该呼叫,然后其尝试找到与输入的号码相对应的通信网络用户标识。如果找到该用户标识,则基于检索到的存在信息呼叫通信网络中与该用户标识相关的通信节点。
[0022] 还可以从第二网络中的设备呼叫目的地电话号码。在此情况下,如果在网关108a-c或者通信服务器106上接收到该呼叫,则通信服务器106和网关108a-c中的至少一个确定与目的地电话号码相关的用户标识,并且可以进行呼叫与该用户标识相关的通信节点的上述处理。注意,在一个或多个实施例中,检索存在信息还可以包括从与用户标识相关的通信节点检索用户配置信息。
[0023] 图2的示意性框图200示出最终用户终端112a,其被配置为充当在因特网102上运行的通信系统的终端。最终用户终端112a包括:可操作地耦合到网络接口210的CPU202,如调制解调器、无线适配器、LAN适配器等,用于连接到因特网102;非易失性存储设备
208,如硬驱动或闪存;以及易失性存储设备,如随机访问存储器(RAM)204。最终用户终端
112a还包括例如键盘、鼠标、麦克风和网络摄像头形式的一个或多个用户输入设备,其每一个经由I/O接口212可操作地耦合到CPU 202。在一些实施例中,键盘和/或鼠标可以用软件来实现,并且可以与操作系统206合作执行而无须I/O接口212。最终用户终端112a进一步包括例如显示屏幕和扬声器形式的一个或多个用户输出设备,其每一个也可操作地耦合到CPU 202。存储设备208存储至少包括操作系统(OS)206和基于包的通信软件的软件,基于包的通信软件包括通信客户端应用程序214,通信客户端应用程序214包括客户端UI 218、客户端引擎220和I/O层222。在最终用户终端112a启动时,操作系统软件206被自动加载到RAM 204中,并且CPU 202从RAM 204执行它。一旦运行,操作系统206就可以通过将P2P客户端应用程序214等应用程序加载到RAM 204中并且在CPU 202上执行它们来运行这些应用程序。
[0024] 在一个实施例中,通信客户端应用程序214包括三个基本层:输入和输出222、客户端引擎层220和用户接口(UI)层218。然而,在其它实施例中,可以增加其它层,或者可以省略上述三个层中的一些层,或者可以将两个或更多个层融合在一起。通信客户端应用程序214和P2P工具条/附件/插件应用程序216在操作系统206中执行。这意味着在多任务环境中它们被安排以便由操作系统206执行;并且可以通过操作系统206的适当的驱动器和/或API来调节输入设备向通信客户端应用程序214的I/O层222的输入以及从通信客户端应用程序214的I/O层222向输出设备的输出。
[0025] 在一个实施例中,通信客户端应用程序的I/O层222包括音频和/或视频编解码器,它接收入局编码流并且根据需要将它们解码以输出到扬声器(未示出)和/或显示器(未示出),并且它还接收来自麦克风(未示出)和/或网络摄像头(未示出)的未编码的音频和/或视频数据,并且将它们编码以作为流发送到通信系统100的其它最终用户终端112a-e。I/O层222还可以包括控制信令协议,其用于在因特网102的最终用户终端112a-e之间发送控制信息。然后客户端引擎220处理如上所述的通信系统100的连接管理功能,例如,通过P2P地址查找和认证建立呼叫或其它连接。客户端引擎220还可以负责通信系统的其它辅助功能,如向通信系统100内的通信服务器106提供最新的联系人列表和/或用户的化身图像,或者从P2P服务器106检索用户的最新的联系人列表以及检索其它用户的最新的化身图像。此外,客户端引擎220通过公共API从联系人列表中的用户的其它客户端检索存在信息,并且反过来将它自己的存在信息提供给在线的那些其它客户端。通过公共API在客户端之间直接交换存在信息是优选的选项,但是可选地,可以通过诸如通信服务器106等中间节点交换存在信息。存在信息包括所选择的最终用户终端的状态。例如,存在信息可以包括最终用户终端是否在线、忙碌、被配置为接受电话呼叫、处于勿打扰模式等。一些存在信息可以包括系统产生的信息和用户产生的信息二者。
[0026] UI层218负责将解码后的视频通过显示器呈现给用户,负责如何将呈现的输出与诸如按钮和菜单等用户控制一起布置在显示器上,并且负责通过所呈现的控制接收来自用户的输入。
[0027] 图3示出如果某些条件满足时,结束在第一网络(例如,因特网102)中发起的对另一网络(例如,PSTN或移动网络110)的呼叫的处理300。该处理可以在P2P服务器106上或者在一个或多个网关108a、108b、108c上进行。在另一个实施例中,该网关和P2P服务器106可以合作进行该处理步骤。在另一个实施例中,发起该呼叫的最终用户站112a也可以协作参与进行处理300的一些步骤。
[0028] 因此,在步骤302,接收来自最终用户终端112a(或者与因特网102和通信服务器106可通信地耦合的第一网络中的任何其它最终用户终端)的出局呼叫。在另一个实施例中,只接收到特定的最终用户站正在尝试进行呼叫的通知,而不是出局呼叫本身。在确定步骤304,确定目的地电话号码是否在第一网络中。可以通过查询包括在第一网络中注册的所有最终用户终端的相关电话号码的数据库来进行该确定。应当指出,不是所有注册的最终用户站都可能具有相关电话号码。在一个实施例中,通信服务器106将该数据库保持在本地高速缓冲器中。在另一实施例中,该数据库可以保持在可以从P2P服务器106访问的独立服务器上。还可以从网关108a-c访问该数据库。在另一个实施例中,源最终用户站还可以直接在启动电话呼叫之前查询该数据库。
[0029] 如果目的地号码不在第一网络中,则在步骤306中,在一个实施例中,如果存在多于一个网关108a-c,则选择在地理上最靠近被呼叫的号码的位置的网关。还可以基于每个网关和被呼叫的号码之间的关税率确定地理接近度。例如,如果被呼叫的号码位于英国,则可以选择英国本地的网关。在其它实施例中,可以基于负荷平衡、相对可用性等选择网关。在步骤308,该呼叫被转移到找到被呼叫号码的第二网络。可以根据步骤306,通过所选择的网关将该呼叫转移到第二网络。
[0030] 如果在步骤304,在发现被呼叫的电话号码在第一网络中的情况下,则在确定步骤310,确定与被呼叫的电话号码相关的最终用户终端是否可以接受电话呼叫。可以基于目的地最终用户终端的存在信息进行该确定。例如,如果该存在信息提供该最终用户终端处于“勿打扰”模式,或者状态为“离开”,或者状态为“忙碌”等,则可以认为目的地最终用户站不可用于接受呼叫。然而,在其它实施例中,用户可以将最终用户终端配置为在不同的用户定义的条件下接受或拒绝呼叫。例如,用户可以将最终用户终端配置为在“忙碌”状态下接受呼叫等。其它配置可以包括识别最终用户终端的麦克风和扬声器是否可用以及功能属性。
[0031] 如果在确定步骤310发现最终用户终端不可用于接受入局电话呼叫,则该控制被传递到步骤306。然而,如果发现最终用户终端可用于接受呼叫,则在可选的确定步骤312,确定是否目的地最终用户终端的任何特定用户配置禁止目的地最终用户终端接受入局呼叫。如果目的地最终用户终端禁止入局呼叫,则该控制转到步骤306。如果目的地最终用户站不禁止入局呼叫,则在步骤314,目的地最终用户终端振铃,并且如果用户接听该呼叫,则在源最终用户终端和目的地最终用户终端之间建立语音通信信道。在其它实施例中,如果用户不接听该入局呼叫,则该入局呼叫可被转移到与目的地电话号码相关的语音信箱,或者该入局呼叫也可通过第二网络转移到目的地电话号码。目的地最终用户终端可提供必要的用户接口,以使用户能够将该呼叫手动转移到语音信箱或目的地电话号码。可替选地,可以通过默认设置或用户设置自动进行入局呼叫的该转移。例如,用户可以将目的地最终用户终端配置为将所有未被注意的呼叫自动转移到语音信箱。
[0032] 在另一个实施例中,基于SIP的PBX(例如,Microsoft LyncTM, Cisco UCMTM, Avaya TM TMPBX 等)通过SIP集群软件(例如,Skype Connect )耦合到P2P服务器106。PBX通过SIP简档注册到该通信服务器。该SIP集群软件可以包括在通信服务器106中,或者可以存在于连接到因特网102并且可通信地耦合到最终用户终端和通信服务器106的单独服务器上。
多个桌上电话可以连接到该PBX。当从任一个桌上电话启动对PSTN或移动号码的呼叫时,进行流程图300中描述的处理。
[0033] 类似地,当最终用户终端112a尝试呼叫一电话号码时,通信服务器106或者网关108a-c尝试确定目的地电话号码是否与连接到任一个注册的基于SIP的PBX的桌上电话相关。如果是,则将该呼叫连接到目的地桌上电话而不使用第二网络(例如,PSTN或移动网络110)。SIP简档还可以包括用户定义的呼叫终止配置。例如,从PBX桌上电话对特定目的地的呼叫可被配置为直接使用PSTN或移动网络110。电话呼叫的这种选择性的终止可以基于对不同目的地的呼叫费率。
[0034] 在另一个实施例中,第一PSTN电话用户可以在拨打第二PSTN电话号码之前拨打所选择的普通PSTN电话号码(例如,电话卡号码)或者所选择的代码(例如,前缀“1101”或者一些预选的特殊字符或数字与字符如‘*’或‘#’的组合)。所选择的普通PSTN电话号码或者代码与第二网络相关,其中在本实施例中,第二网络可以是基于包的通信网络。典型地,当PSTN电话用户知道第二PSTN电话号码在第二网络中(或者与第二网络相关)时,该用户将拨打与第二网络相关的所选择的普通PSTN电话号码或者所选择的代码。例如,第二TM TMPSTN电话号码可以是与Skype 用户相关的Skype 号码。
[0035] 如上所述,当通过所选择的拨打代码或号码接收到来自第一PSTN电话号码的呼叫时,P2P服务器106或者网关108a-c尝试定位与第二PSTN电话号码的用户相关的最终用户终端,并且进行步骤310和可选的步骤312(图3)。如果最终用户终端是可用的,并且被配置为接受呼叫,则对第二PSTN电话号码的呼叫被连接到该最终用户终端。此外,该方法的一个优点是,即使第二PSTN号码可能是本地号码,该用户(第二PSTN电话号码所属的用户)也可能在本地呼叫区域之外(例如,该用户可能在外国)。然而,只要与该用户相关的最终用户终端连接到与通信服务器106耦合的基于包的通信网络,就可以完成该呼叫,而不发生通常的PSTN长途或国际费用。
[0036] 在另一个实施例中,当用户使用“电话卡”从PSTN陆线电话拨打电话号码时(例如,拨打所选择的普通PSTN电话号码或者与第二网络相关的代码),该呼叫随PSTN一起保持,同时只向第二网络发送定位请求。第二网络中的P2P服务器106或者网关108a-c尝试定位所拨打的呼叫的端点。如果确定该呼叫端点是PSTN网络(也就是说,在该网络中没有发现与所拨打的电话号码相关的最终用户终端处于激活状态,或者没有发现该最终用户终端准备好接受电话呼叫),则允许该呼叫继续拨打,并且该呼叫保持在PSTN或移动网络内。
[0037] 在一个另外的实施例中,当呼叫者使用所选择的普通PSTN号码(例如,电话卡)拨打电话号码时,网关108a-c截取该呼叫。网关108a-c或者通信服务器106确定与目的地电话号码相关的用户的标识。然后通信服务器106或者网关108a-c确定是否可以通过最终用户终端到达该用户。可替选地或者如果该用户不能通过该最终用户站接受该呼叫,则通信服务器106或者网关108a-c还可以确定该用户是否已经建立了临时呼叫转发。例如,如果该用户正在本地呼叫区域以外旅行,并且可以将呼叫设置为转发到本地号码。在此情况下,找到离目的地号码最近(就呼叫成本来说)的网关,并且经由该网关和PSTN或者移动网络110将该呼叫转移到该呼叫转发号码。
[0038] 尽管前文涉及本发明的实施例,但是在不偏离本发明的基本范围的情况下,可以设计出本发明的其它和进一步实施例。例如,本发明的各方面可以用硬件或软件或者硬件和软件的组合来实现。本发明的一个实施例可以作为与计算机系统一起使用的程序产品来实现。该程序产品的程序定义所述实施例(包括本文描述的方法)的功能,并且可以包含在各种计算机可读存储介质上。示例性的计算机可读存储介质包括但不限于:(i)信息被永久存储在其上的不可写存储介质(例如,计算机内的只读存储设备,如可由CD-ROM驱动读取的CD-ROM盘、闪存、ROM芯片或者任何类型的固态非易失性半导体存储器);以及(ii)其上存储可改变的信息的可写存储介质(例如,磁盘驱动内的软盘或者硬盘驱动或者任何类型的固态随机访问半导体存储器)。当承载用于指示本发明的功能的计算机可读指令时,这种计算机可读存储介质是本发明的实施例。