具体实施方式
首先参照图1,在图1中示出了通信网络100,其包括分组交换通信系统104及电路交换网络112和120。在一个实施方式中,分组交换通信系统104可以是在诸如因特网的分组交换网络上运行的对等系统。电路交换网络112和120可以为PSTN(公共交换电话网)网络。
用户设备102示出为经由会话节点106连接到对等系统104。用户设备102也连接到PSTN网络120。在本发明的一个实施方式中,用户设备经由电路交换连接222连接到PSTN网络112,并且经由分组交换连接111连接到会话节点106。电路交换连接222和分组交换连接111可以由GSM(全球移动通信系统)网络(未示出)提供。例如分组交换连接可以由GSM网络的GPRS(通用分组无线业务)连接提供,而电路交换连接可以由GSM网络的GSM音频连接提供。在本发明的优选实施方式中,分组交换连接111用于根据诸如传输控制协议(TCP)的因特网协议来传输分组数据。
例如,用户设备102可以是个人计算机、游戏机、个人数字助理、适当激活的移动电话,或能够连接到因特网的其它设备。
会话节点106可以与其它会话节点(未示出)被分组在一个群集中。群集由提供一组预定服务的多个孤立的会话节点组成。目录(未示出)可以用于将用户设备连接到群集内的适当的会话节点上。分配群集中的会话节点来执行任务的方法在本领域中是公知的并且将不再进行任何更详细地描述。
根据本发明的一个实施方式,会话节点106运行限定专用于用户设备102的用户的会话的通信实例122。通信实例122使得用户设备102的用户能够在通信网络100上通信,以建立与能够经由对等系统104来通信的另一个设备的连接。会话节点106能够为大量并发用户设备(未示出)运行多个通信实例。
如图1所示,在互联网104上的对等系统包括入站网关114和出站网关116。入站网关114和出站网关116连接到位于PSTN网络内的PSTN网关188。入站网关114被设置为从PSTN网关188接收用于互联网104上的对等系统的数据。出站网关116被设置为从互联网104上的对等系统传输数据到PSTN网关188。
图1还示出了简档节点128。简档节点128负责为对等系统的用户存储用户简档信息。用户简档信息包括用于登录对等系统的登录信息和与对等系统的每个用户相关联的联系人列表132。联系人列表132包括:例如,由用户存储为联系人的通信系统的另一用户的地址。
用户设备102运行客户软件程序124,该客户软件程序124提供在用户设备上的客户界面并允许用户设备102的用户与在会话节点106上运行的通信实例122通信。
运行在用户设备上的客户软件程序124具有用于实施各种功能的许多不同成分或层,包括用于管理与GSM网络的接口的协议层402(图2a)。现在将结合图2b描述与GSM网络的接口。
图2a示出了根据本发明的实施方式的用于客户软件程序124的协议堆栈。协议堆栈示出了操作系统层401、协议层402、客户引擎层404以及客户用户界面层406。每层负责特定的功能。由于每层通常与其它两层进行通信,因此它们被视为设置在如图2a所示的堆栈中。操作系统层401管理用户设备102的硬件资源并且处理传输至会话节点106以及从会话节点106传输的数据。操作系统层还处理传输到网络112以及从网络112传输的数据。客户软件的客户协议层402与操作系统层401进行通信。需要更高级别处理的进程被传递到客户引擎层404。客户引擎层404还与客户用户界面层406进行通信。客户引擎可以设置为控制客户用户界面层406,从而经由用户设备的用户界面器件将信息呈现给用户,以及经由用户设备的用户界面器件接收来自用户的信息。用户界面器件可以包括扬声器、麦克风、显示屏以及键盘。这个列表不是穷举的。
图2b是示出用户设备102中在客户协议堆栈和GSM协议堆栈之间数据传输的示意图。如图2b所示,用户设备102进一步包括GSM协议堆栈501和无线电收发机502。从GSM网络传输到用户设备的信息被收发机502接收。从GSM网络接收到的数据在被传输到客户软件程序124之前由GSM协议堆栈501处理。类似地,将从客户软件程序124传输到GSM网络的信息在其被经由收发机502传输到GSM网络之前由GSM协议堆栈501处理。GSM协议堆栈501的操作在本领域中是公知的并且此处将不再进行详述。
在会话节点106上运行的通信实例122管理在用户设备102上运行的客户软件程序124和在互联网104上的对等系统之间的通信。图3示出了在会话节点106上的通信实例122和在用户设备102上运行的客户软件程序124之间的连接路径。
如图3所示,会话节点106进一步包括用于将通信实例122分配给客户软件程序124的核心模块205。依照本发明的实施方式,如后所描述的,当客户软件程序124将登录请求传输给会话节点106时,核心模块205设置为将通信实例122分配给客户软件程序124。根据本发明的一个实施方式,通信实例122可以从可用的通信实例池中选取。依据本发明的可选实施方式,通信实例可以在客户软件程序124登录时被创建。
根据本发明的一个实施方式,客户软件程序124的协议层402将使用与在通信实例122中使用的协议不同的协议。根据本发明的该实施方式,通信实例包括协议适配器以便于在客户软件程序和通信实例122之间的通信。
依据本发明的实施方式,运行在用户设备102上的客户软件程序124设置为建立与会话节点106的连接。图5示出了依据本发明的实施方式的用于建立与会话节点106的连接的方法步骤。
在步骤S1中,客户软件程序124将数据包201传输到会话节点106以请求连接到会话节点106。如果客户软件程序先前已经连接到会话节点,其将试图连接到先前连接的会话节点。如果这是客户软件程序124第一次尝试连接到会话节点,或者如果其先前连接到的会话节点没有响应,则客户软件程序124将试图连接到预定的根会话节点。该根会话节点是由独立的IP地址的名称来定义的。
在本发明的一个实施方式中,在数据连接111上数据包201被未加密地发送。因此,在步骤S1中发送的数据包201不应包含敏感信息。然而,数据包201可以包括可用于加密方法以建立用户设备102与会话节点106之间的安全连接的信息。
在步骤S2中,响应于接收到数据包201中的网络连接请求,会话节点106的核心模块205将数据包202传输到客户软件程序以确认网络连接请求。数据包202可以包含可用于加密方法以建立用户设备102与会话节点106之间的安全连接的信息。在本发明的一个优选实施方式中,数据包202包括指示会话节点的标识的标识符。用户设备102上的客户软件程序可以利用授权方法来检验会话节点的标识。
在步骤S3中,利用加密方法来建立会话节点106与客户软件程序124之间的安全连接。
在步骤S4处,会话节点106判定是否应该建立客户软件程序124和对等系统104之间的连接,或判定该连接是否应该由会话节点群集中的另一会话节点来处理。作出处理连接或将客户软件程序引导到另一会话节点的决定以平衡被在群集中每个会话节点处理的客户软件程序的数目。例如,如果会话节点106当前正在处理阈值数目的客户软件程序,则可以将客户软件程序重定向到连接另一会话节点。可替代地,如果会话节点106判定其正在处理的客户软件程序比另一会话节点正在处理的客户软件程序多,则会话节点106可以将客户软件程序重定向到另一会话节点。
如果会话节点106判定其应该在步骤S5中处理客户软件程序124和对等系统104之间的连接,则会话节点106将数据包203发送到用户设备102以确定其将处理该连接。数据包203可以包括表1中所列出的属性:
表1:
关键字 |
类型 |
属性 |
CHUNKTYPE |
整数 |
CONNECTED |
CLIENT_PUBLIC_IP_ADDRESS |
地址 |
由会话节点看到的客户IP地址 |
LATEST_VERSION |
字符串 |
最新的版本号 |
UPGRADE_URL |
字符串 |
可以下载升级的URL |
如表1所示,数据包203包含指示会话节点将处理客户软件程序和对等系统104之间的连接的“CONNECTED”属性。数据包进一步包含指示在用户设备上运行的可用的客户软件程序的最新版本号的属性。数据包203还可以指示可以从中下载最新版本的客户软件程序的URL(统一资源定位器)。
然而,如果在步骤S4处会话节点106判定另一会话节点应该用于建立用户设备102和对等系统之间的连接,则在步骤S5中会话节点106将数据包204发送到用户设备102以将运行在用户设备102上的客户软件程序124重定向到另一会话节点。数据包204可以包括表2中所列出的属性:
表2:
关键字 |
类型 |
属性 |
CHUNKTYPE |
整数 |
REDIRECT |
NEW_SESSION NODE |
ip地址 |
新会话节点IP地址和端口号 |
LATEST_VERSION |
字符串 |
最新版本号 |
UPGRADEURL |
字符串 |
可下载升级的URL |
如表2所示,被发送到用户设备102以将客户软件程序124重定向到另一会话节点的数据包204可以包括将客户软件程序重定向到的会话节点的IP地址和端口号。当接收到数据包204时,将客户软件程序124设置为关闭与会话节点的TCP连接,并利用新的IP地址和连接端口从步骤S1重新开始连接方法。
另外,数据包204可以指示在用户设备上运行的可用客户软件程序的最新版本号。在本发明的优选实施方式中,数据包204还可以指示可以从中下载最新版本的客户软件程序的URL(统一资源定位器)。这允许用户设备在连接到在重定向消息204中识别出的其它会话节点之前下载最新版本的客户软件程序。在本发明的一个实施方式中,将客户软件程序设置为自动下载最新版本而无需请求来自用户设备102的用户的指令。
在步骤S6中,响应于接收到指示会话节点106将处理在客户软件程序124和对等系统104之间的连接的数据包203,客户软件程序124将在数据包205中的与用户设备102相关的数据发送给会话节点106。数据包205可以包括表3中所列出的属性:
表3:
关键字 |
类型 |
属性 |
CHUNKTYPE |
整数 |
CLIENTDATA |
CLIENT_IP_ADDRESS |
地址 |
设备IP地址 |
DEVICE_PSTNNNUMBER |
字符串 |
在国际记号中的设备PSTN号码 |
如表3所示,数据包205包括限定用户设备的IP地址的属性和限定设备的PSTN号码的属性。设备的IP地址在由互联网提供的分组交换网络中标识用户设备102。类似地,PSTN地址在PSTN网络112中标识用户设备102。
一旦客户软件程序已检验在数据包203中发送的会话节点的任何证书(credential),用户软件程序124就具有到会话节点106(客户软件程序知道其身份)的安全连接。然后客户软件程序可以经由会话节点106登录到对等系统。在登录时,核心模块205将专用的通信实例122分配到客户软件程序124。这限定了在客户软件程序和会话节点106之间的会话的开始。
现在将结合图6描述用于经由会话节点106登录到对等系统并开始由通信实例122限定的会话的方法步骤。当客户软件程序124希望重新建立到现有会话的连接时可以遵照图6所示的步骤。
在步骤S10中,将客户软件重新设定为将数据包601发送到会话节点106。根据本发明的实施方式,数据包601的属性容器包括在表4中所列出的属性。如果客户软件程序已经登录到现有的会话中,则所述属性容器将包括限定用于客户软件程序先前登录的会话的标识符的进一步的属性。如果客户软件程序当前不具有在会话节点上运行的会话,则限定会话ID的属性将不是不被包括在数据包601中就是属性内容将为空。
在本发明的实施方式中,数据包601的属性容器将包含限定用于客户软件程序124的用户的登录名称和登录密码的属性。
在本发明的另一实施方式中,数据包601的属性容器将包含至少一个识别用户设备102的属性。如果用户设备102被激活以接收PSTN呼叫,则用户设备的标识符可以是用户设备102的PSTN号码。除了如前所述在数据包205中提供设备的PSTN号码或者作为其替代,可以在数据包601中提供设备的PSTN号码。
表4:
关键字 类型 属性
CHUNKTYPE 整数 LOGIN
SESSION_ID 二进制 如客户软件程序仍不具有会话,则
会话对于客户软件程序的标识符不
存在或为空
NAME 字符串 用于登录的用户名
PASSWORD 字符串 用于登录的密码
DEVICE_PSTNNUMBER 字符串 设备自己的PSTN号码
在本发明的一个实施方式中,在登录请求数据包601中将总是包括登录用户名和登录密码,即使用户具有运行在会话节点106上的现有会话。在本发明的该实施方式中,虽然客户软件程序已经登录到现有的会话中,但如果现有的会话不能由核心模块205定位,则仍有必要分配限定客户软件程序124的新会话的新的通信实例。
如果数据包601的属性容器包含限定会话标识符的属性,则核心模块205将搜索对应于用于客户软件程序的现有会话的通信实例。在步骤S20中,如果核心模块205不能找到具有已限定的会话标识符的会话,或者如果数据包601不包含会话标识符,则将核心模块205设置为分配新的通信实例122给客户软件程序124,并且创建具有新会话标识符的新的会话。在步骤S30中,然后将通信实例122设置为利用在数据包601中的登录名和密码注册到网络104。
在步骤S40中,将核心模块205设置为将数据包602传输到客户软件程序。在本发明的实施方式中,数据包602的属性容器包括在表5中所列出的属性。
表5:
关键字 类型 属性
CHUNKTYPE 整数 LOGGEDIN
SESSION_ID 二进制 用于客户软件程序的会话标识符
数据包602的属性容器将包括指示登录到对等系统的客户软件程序的属性。数据包602的属性容器还将包含限定对应于通过运行专用于客户软件程序124的通信实例122而开始的会话的会话标识符的属性。
根据本发明的实施方式,由包括在数据包602中的会话标识符所识别的会话独立于会话节点106和客户软件程序124之间的连接。如果会话节点和客户软件程序之间的连接终止,则当重新连接到会话节点时客户软件重新可以将会话标识符呈现给会话节点。根据本发明的该实施方式,当会话节点106和客户软件程序之间的连接终止时,专用于客户软件程序124的通信实例可维持登录到对等系统。
因此,在本发明的一个实施方式中,在客户软件程序124和会话节点106之间的连接为非持久连接。
在本发明的一个实施方式中,在客户软件程序和会话节点之间的连接在每个包交换后终止。
在本发明的一个实施方式中,将客户软件程序124设置为在自数据包与会话节点106交换经过预定时间之后终止与会话节点106的连接。
在本发明的另一实施方式中,将会话节点106设置为在自数据包与会话节点106交换经过预定时间之后终止与客户软件程序124的连接。如果会话节点关闭TCP连接,在关闭TCP连接之前,会话节点将发送包含指示该会话节点正在断开的属性的数据包。可以将客户软件程序设置为在接收该数据包的预定时间之后关闭TCP连接。例如,可以将客户软件程序124设置为在从会话节点接收到断开连接数据包之后3秒关闭TCP连接。
一旦运行在用户设备102上的客户软件程序124登录到对等系统,会话节点106将提供具有从简档节点128接收的简档数据的客户软件程序。可响应于从客户软件程序发送到会话节点106的简档数据请求来发送该简档数据。
通信实例122使由用户的登录细节的至少一部分限定的用户设备的用户的身份和由设备的IP地址和PSTN号码限定的设备的标识相关联。在本发明的一个实施方式中,通信实例可以在与会话节点106相关联的数据存储器129中存储用户的身份和用户设备的标识。
根据本发明的实施方式,用户设备的用户可能利用多于一个的用户设备登录到对等系统。根据本发明的该实施方式,通信实例使得每个设备的标识与对等系统中的用户的身份相关联。
一旦会话节点106已将通信实例122分配到用户设备102的用户,通信实例122将为客户软件程序124提供数据,以激活客户软件程序124来建立与在通信系统100中的实体的通信事件。
实体可以是通信系统100中的任意节点,其能够从用户设备接收信息或将信息传输到用户设备102。例如,实体叫以是通信系统100中的另一用户设备或者节点。实体可对应于语音邮件记录或与用户设备的用户相关联的其它数据记录。另外,实体可以是被设置以执行网络中的控制命令的节点。
实体由其所存在的网络中的地址定位。存在于互联网内的实体的地址可以例如是IP地址、URI(统一资源标识符)、用户名或VoIP设备。存在于PSTN网络中的实体的地址可以是与实体相关的PSTN号码。
在本发明的一个实施方式中,实体可以对应于通信网络100中的多于一个的端点。例如,实体可以是利用两个或更多个用户设备登录到互联网的对等系统的用户。在这种情况下,实体将具有多于一个的关联地址。
依据本发明的实施方式,用户设备102可经由通信系统的多于一个的网络建立与实体的通信事件。例如,用户设备102可利用PSTN网络112建立对连接到互联网的实体的呼叫。
为了在多于一个的网络上建立与实体的通信事件,有必要识别每个网络中的标识。
依据本发明的实施方式,将通信实例122设置为分配给实体一个标识,该标识可以由PSTN网络和互联网上的对等系统传输和解释。在该种情况下,实体的标识可以由位于互联网中的节点解析为实体的地址。在本发明的优选实施方式中,被分配的标识是PSTN号码。
例如,如果实体位于互联网内,则PSTN网络将不能识别互联网内实体的IP地址。根据本发明的实施方式,将通信实例122设置为将PSTN号码分配给实体,该PSTN号码可用于经由PSTN网络建立呼叫。所分配的PSTN号码然后可以被解析为在位于互联网内的节点处的实体的IP地址或者用户名。
如图1所示,呼叫管理器118连接到会话节点106、入站网关114和出站网关116。呼叫管理器访问数据存储器126。在图1中数据存储器126被示出为与呼叫管理器118相关联。
在图1所示的实施方式中,示出呼叫管理器118与会话节点106和网关114及116分离。然而,在替代实施方式中,呼叫管理器118可以形成为会话节点106的一部分或网关114或116两者之一的一部分。在呼叫管理器、会话节点、入站网关和出站网关之间的逻辑连接如图8所示。
将呼叫管理器118设置为提供具有PSTN号码的通信实例122,该PSTN号码被响应于来自通信实例的请求而分配给实体。将通信实例设置为将PSTN号码分配给实体,并将实体的地址提供给呼叫管理器。将呼叫管理器设置为在数据存储器126内存储所分配的PSTN号码和实体的地址。
在本发明的优选实施方式中,实体的地址是由通信实例从简档节点128提供的联系人列表132中判定的。将结合图4描述本发明的该实施方式。
图4为示出依据本发明的优选实施方式的用于给实体分配PSTN号码的步骤的图。
在步骤S1中,将通信实例122设置为检索与用户设备102的用户相关联的在联系人列表132中作为联系人列出的实体的地址。实体的地址从简档节点128处检索。
在步骤S2中,通信实例在数据存储器129中存储每个实体的地址。在本发明的优选实施方式中,将实体联系人列表132存储在数据存储器129中。
在步骤S3中,将通信实例122设置为从呼叫管理器中为在联系人列表中所列出的每个实体检索PSTN号码。
在步骤S4中,将通信实例设置为将每个PSTN号码分配给在联系人列表中列出的每个实体,并且将每个实体的地址与将PSTN号码分配给哪个实体的指示一起报告给呼叫管理器118。
在步骤S5中,呼叫管理器118通信实例设置成在数据存储器126中存储与联系人列表中所列出的每个实体相关联的PSTN号码。
在本发明的一个实施方式中,将呼叫管理器设置为在数据存储器126中额外地存储与分配给实体的PSTN号码相关联的用户设备102的PSTN号码。可以在步骤S3或步骤S4中通过通信实例将设备的PSTN号码报告给呼叫管理器。在本发明的该实施方式中,可利用分配给实体的PSTN号码和设备的PSTN号码来解析实体的地址。在这种情况下,可将一个PSTN号码分配给多于一个的用户使用。
将联系人列表132和分配给联系人列表中的每个实体的PSTN号码一起从通信实例传输到客户软件程序124。
在本发明的优选实施方式中,将所分配的PSTN号码和联系人列表132以数据包形式经由数据连接111传输到客户软件程序124。可以在与联系人列表132分离的数据包中提供所分配的PSTN号码。
在包括如表6所列出的属性的“呼叫建立”数据包中,可以将至少部分PSTN号码提供给客户软件程序。
表6
关键字 类型 属性
CHUNKTYPE 整数 CALLSETUP
CALLMETHOD 整数 识别待使用的呼叫方法的
数值
DIALIN_NUMBER_PREFIX 字符串 拨入数字范围内的第一号
码,例如“+3725521000”
DIALIN_NUMBER_RANGE_SIZE 整数 #在拨入块中的数字,例如
1000
VOICEMAIL_NUMBER_PREFIX 字符串 用于听语音邮件的拨入数
字范围
VOICEMAIL_NUMBER_RANGE_SIZE 整数 #在语音邮件数字块中的数
字
在本发明的一个实施方式中,可以将用于呼叫实体的每个PSTN号码单独地列在数据包内。然而,在优选的实施方式中,可以通过客户软件程序124从对应于“DIAL IN NUMBER PREFIX”的第一号码和对应于识别联系人列表中的联系人的索引数字(参见表7)的第二号码判定每个PSTN号码。该索引数字将落入被称作如表6所示的“DIAL IN NUMBER RANGE”的数字范围内。
将在联系人列表中用于每个联系人的索引数字从通信实例122传输到客户软件程序124。
表7示出了包含联系人列表132的数据包的属性。对在联系人列表中的每个实体给予从1开始的索引值。包含联系人列表的属性容器可进一步包括联系人用户名、或者用于利用对等系统联系联系人的URI,以及联系人的姓名。
表7:
关键字 类型 属性
CHUNKTYPE 整数 ENTITY
ENTITYINDEX 整数 实体索引值,从1开始
USENAME 字符串 实体用户名
FULLNAME 字符串
PSTNNUMBER 字符串
通过将第一号码算术地加到用于实体的索引上,客户软件程序124可以将PSTN号码映射到联系人列表中的每个实体。例如,如果第一号码被定义为:
+3725521020
而用于实体的索引为:
33
则映射到实体上的PSTN号码将是:
+3725521053
可替代地,客户软件程序可以通过将索引附到第一号码上来映射PSTN号码。例如,如果第一号码为
+37255210
而对应于实体的索引为:
33
则映射到实体的PSTN号码将会是:
+3725521033
可替代地,如果将PSTN号码设置为整个PSTN号码的列表,则在列表中的PSTN号码的位置数字可映射到具有相应索引的实体上。
在本发明的实施方式中,为与未在联系人列表中列出的实体发生的通信事件预留预定的PSTN号码或索引。在本发明的优选实施方式中,索引‘0’为未在联系人列表中列出的实体预留。
在本发明的一个实施方式中,表6中所示的呼叫方法属性可指示应该如何从数据包中所提供的信息来判定PSTN号码。例如,呼叫方法可以指定是否应该通过算术地将索引加到第一号码或通过将索引附到第一号码来判定PSTN号码,或者是否将整个PSTN号码在数据包中列出。
在本发明的一个实施方式中,呼叫方法属性可指定当开始呼叫实体时是否要求用户设备102的标识作为控制数据的一部分。稍后描述的图9示出了如何从被分配的PSTN号码以及用户设备的标识判定被呼叫实体的地址。因为这样的一个PSTN号码在被不同的用户设备呼叫时可被分配给不同的实体。在该种情况下,当进行呼叫时需要用户设备的标识。可替代地,一次只能将一个PSTN号码分配给一个实体。在该种情况下,当进行呼叫不需要用户设备的标识。
在有些国家,可能需要一个PSTN号码直接对应于一个实体。在该种情况下,呼叫管理器可能判定与通信实例相关联的用户设备的位置,并且在图4的步骤S3中仅提供具有当前未分配的PSTN号码的通信实例。设备的位置可以从用户设备的IP地址判定,该IP地址可以被经由通信实例从用户设备报告到呼叫管理器。
依靠用户设备的能力来设定呼叫方法属性也是必要的。例如,有些用户设备可能不具有从第一号码和单独的索引来判定PSTN号码的能力。在这种情况下,有必要将分配的PSTN号码作为整个PSTN号码的列表发送给设备。此外,可引入不被在用户设备上运行的先前的软件版本支持的新的呼叫方法。可从用户设备类型(例如模型类型)的指示来判定用户设备的能力。用户设备类型的指示可由设备报告给通信实例。随后呼叫管理器可从用户设备和会话节点两者都支持的方法中选择呼叫方法。
将呼叫管理器118设置为以与由呼叫方法限定的客户软件程序中执行的映射相对应的方式将PSTN号码映射到实体的地址。因此有必要将呼叫方法存储在数据存储器126处,以便呼叫管理器能以与在用户设备处实施的呼叫方法相对应的方式将PSTN号码映射到实体。
因此,可以在客户软件程序124处、在通信实例122处以及在呼叫管理器118处判定被分配给实体的PSTN号码。
表8和表9限定了可能被包含在数据包的属性容器中的一组属性,以依据本发明的实施方式改变用户的联系人列表。例如,将客户软件程序设置为通过发送包含表8中所列出的属性的数据包而将联系人添加到联系人列表。作为响应,将运行在会话节点上的通信实例设置为分配PSTN号码给新的联系人,并且存储该联系人的地址,例如,与所分配的PSTN号码相关联的联系人的PSTN号码或用户名。然后会话节点106可以以指示包含新联系人的索引值的升级联系人列表的数据包来应答。
表8:
关键字 类型 属性
CHUNKTYPE 整数 ADDCONTACT
SKYPENAME 字符串 skype名字
FULLNAME 字符串 全名
PSTNNUMBER 字符串 联系人的PSTN号码
客户软件程序可通过发送包含表9所列出的属性的数据包来从联系人列表中删除实体。作为响应,将会话节点设置为以指示升级联系人列表的数据包来应答,被删除的实体被标记为删除,从而客户软件程序知道将所述实体从存储在用户设备106上的列表去除。
表9:
关键字 类型 属性
CHUNKTYPE 整数 DELETECONTACT
BUDDYINDEX 整数 实体索引值,从1开始
依据本发明的实施方式,用户设备102可利用分配给实体的PSTN号码经由PSTN网络建立对位于通信网络100中的实体的呼叫。用户设备102还可经由PSTN网络从位于通信网络中的实体接收呼叫。
图7示出了当在用户设备102和位于通信网络中的实体之间进行呼叫时作出的呼叫连接。更确切地,图7示出了下列的呼叫连接:
(1)从用户设备102到位于PSTN网络中的实体110b的出站呼叫;
(2)从用户设备102到位于互联网104中的实体110a的出站呼叫;
(3)从位于PSTN网络的实体110b到用户设备102的入站呼叫;以及
(4)从位于PSTN网络的实体110a到用户设备102的入站呼叫。
如图7所示,将从用户设备102到实体的出站呼叫路由到入站网关114。然后经由图8所示的逻辑连接通过询问数据存储器126该入站网关能够判定实体的地址。现在将参考图9详细描述从用户设备102呼叫实体的方法。
呼叫包括媒体数据连接和用于处理呼叫建立的控制数据。在图9中,分别示出了用于传输控制数据的控制数据连接和用于传输媒体数据的媒体数据连接。以实线示出控制数据连接,而以虚线示出呼叫连接。
在步骤S100中,用户设备102的用户启动对联系人列表132中列举的实体的呼叫。联系人列表132可以由客户软件程序124的用户界面层显示为在用户设备102的显示器上的可选择链接。用户可以通过选择该实体的链接来启动对该实体的呼叫。当用户启动呼叫时,将客户软件程序124设置为拨打分配给该实体的PSTN号码。因此由客户软件程序124进行的呼叫将包括限定分配的PSTN号码的控制数据。控制数据还将包括用户设备102的PSTN号码。分配给实体的所拨打的PSTN号码用于经由GSM音频连接222建立与PSTN网关188的媒体数据连接和控制数据连接。
在步骤200中,媒体数据连接被保持在PSTN网关188处。将PSTN网关188设置为将控制数据传输到位于互联网104中的入站网关。PSTN网关188被设置为将包括识别出的PSTN号码的控制数据传输到入站网关114。PSTN网关可以通过PSTN网络的操作员识别已由呼叫管理器118提供使用的号码。
在步骤S300中,入站网关114将包括被呼叫的实体的分配的PSTN号码和用户设备的PSTN号码的控制数据传输到呼叫管理器118。媒体数据连接被保持在PSTN网关188处直至被呼叫的实体的分配的PSTN号码被解析为实体的地址。
在步骤S400处,呼叫管理器118使用用户设备102的PSTN号码来在数据存储器126内搜索与用户设备102的用户相关联的联系人列表132。然后如在联系人列表132中限定的一样,分配给实体的PSTN被用于对实体的地址进行定位。在本发明的一个实施方式中,呼叫管理器还可以检索与用户设备102的用户相关联的用户的用户名。
在步骤S500中,将实体的地址传输到入站网关114。呼叫管理器118也可以将用户设备102的用户的用户名传输到入站网关114。
在步骤S600中,入站网关114接收来自PSTN网关的媒体数据,并且使用从呼叫管理器118接收到的实体的地址以经由分组交换网络104传输呼叫。如果实体的地址位于PSTN网络中,则入站网关将经由出站网关116将呼叫传输到PSTN网络(如图1所示)。
在步骤S700中,呼叫是在被呼叫的实体处接收到的,例如设备110a或110b。如果被呼叫的实体位于互联网104中,则在步骤S500中检索到的用户设备102的用户的用户名可以在设备110a上显示以表明呼叫的起始地。
现在将参考图10描述如何将来自通信系统100中的实体的呼叫经由PSTN网络传输到用户设备102。
图10是示出在用户设备102处的接收呼叫的图。在图10中,分别示出了用于处理呼叫建立的控制数据连接和用于传输媒体数据的媒体数据连接。用实线示出所述控制数据连接,而用虚线示出所述媒体数据连接。
呼叫可起源于位于分组交换网络104中的实体或来自位于电路交换网络112中的实体。下面将描述当呼叫起源于位于互联网104内的实体的情况的方法。
在步骤S10中,在运行于会话节点106上的通信实例122处接收来自分组交换网络104的呼入。该呼入的控制数据将识别具有与用户设备102的用户相关联的用户名的该呼入的目的地。将用户的用户名用于定位互联网104上的对等系统中的通信实例122。所述控制数据还可以通过包括有呼叫实体的用户名来识别呼叫的起始地。
在步骤S20中,通信实例搜索数据存储器129以判定用户设备102的PSTN号码。通信实例还可以搜索与用户设备102的用户相关联的联系人列表132,以判定呼叫实体的用户名是否与在联系人列表132中所列出的实体匹配。如果呼叫实体被列在联系人列表132中,则将从数据存储器129处检索分配给呼叫实体的PSTN号码。如果呼叫实体未被列在联系人列表中,则将检索为未列在联系人列表上的实体保留的PSTN号码。
在步骤S30中,将包括用户设备102的PSTN号码的控制数据连接和媒体数据连接一起传输到出站网关116。所述控制数据还可以包括从数据存储器129检索的PSTN号码来识别呼叫实体。
在步骤40中,利用设备的PSTN号码将呼叫从出站网关116传输到PSTN网关188。还将随同所述呼叫传输从数据存储器129检索到的识别呼叫实体的PSTN号码。
在步骤S50中,经由PSTN网络将呼叫传输到用户设备102。被检索以识别呼叫实体的PSTN号码由PSTN网络识别出,且可以由PSTN网络传输以识别呼叫的起始地。
如果呼叫实体具有已分配的PSTN号码,则在步骤S60中将运行在用户设备102上的客户软件程序124设置成将分配的PSTN号码解析为在联系人列表132中提供的实体的相关联的联系人细节。这可以通过利用先前描述的映射方法将呼叫实体的PSTN号码映射到联系人的用户名来实现。例如,如果与呼叫实体相关联的PSTN号码是利用代表实体的索引在客户软件程序124处产生的,则将客户软件程序设置为从PSTN号码减去第一号码来推导联系人的索引和标识。然后可以将联系人的用户名显示在用户设备的显示器上,以示出存在来自该联系人的呼入。
可替代地,如果是将检索到的PSTN号码随同呼叫传输以识别呼叫实体未被存储在联系人列表132上,则可将客户软件程序124设置为在用户设备的显示器上显示预定文本说明该呼叫者为“未知”。
在本发明的替代实施方式中,不像图10所示经由通信实例122来建立媒体数据连接。而是可仅仅使用步骤S10到S30建立控制数据连接。然后可在控制数据连接建立后在出站网关和呼叫实体之间建立媒体数据连接。
依据本发明的实施方式,通过将退出请求数据包从用户设备102传输到会话节点106,用户设备102的用户可终止与对等系统104的会话。所述退出请求数据包可包括表10中所示的属性。
表10:
关键字 类型 属性
CHUNKTYPE 整数 LOGOUT
响应于接收到所述退出请求数据包,将会话节点106设置为从通信实例122移除用户设备的用户的关联。尤其是会话节点106可以通知呼叫管理器从数据存储器126移除用户设备和联系人列表132与所分配的PSTN号码的关联。
在本发明的一个实施方式中,实体的地址可指定与用户相关联的语音邮件记录的位置,或位于网络节点上的控制命令的地址。这些地址可从简档节点128处可用的用户的简档信息中提供。
在本发明的一个实施方式中,将通信实例设置为当请求PSTN号码时提供与用户设备102的地理位置相关的信息给呼叫管理器118。在本发明的该实施方式中,将呼叫管理器设置为提供具有PSTN号码的通信实例122,该PSTN号码与对用户设备而言是本地的PSTN网关相关,或者称为本地号码。
虽然结合优选的实施方式特别地示出并描述了本发明,但是应该理解本领域的技术人员将会理解在不背离由权利要求书所限定的本发明的范围的情况下可作出形式和细节上的各种变化。