Abstract:
A method of establishing a communication event in a communication system from an initiator device to one of a plurality of entities associated with the initiator device comprising assigning a calling identity to at least one of said entities at a first network node associated with a packet switched network; providing the assigned identity to the initiator device; storing associated contact information for the entity together with the calling identity assigned to the entity at a second network node associated with the packet switched network, initiating a communication event from the initiator device to the entity via a circuit switched network by transmitting the identity assigned to the entity to a gateway node; sending a message to the second network node with the identity assigned to the entity to determine the contact information for the entity; and routing the communication event from the gateway node to the entity using the determined contact information via one of the circuit switched and packet switched networks without said communication event being routed via said first network node.

Description:
RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. §119 or 365 to Great Britain Application No. 0623622.8, filed Nov. 27, 2006 and Great Britain Application 0723123.6 filed Nov. 23, 2007. The entire teachings of the above applications are incorporated herein by reference. 
     TECHNICAL FIELD 
     The present invention relates to a method for handling communication in a communication system. 
     BACKGROUND 
     In a communication system a communication network is provided, which can connect two communication terminals so that the terminals can send information to each other in a call or other communication event. Information may include voice, text, images or video. 
     One such communication system is a peer to peer communication system, in which a plurality of end users can be connected for communication purposes via a communications structure such as the internet using peer to peer client software. The communications structure is substantially decentralised with regard to communication route switching therein for connecting the end users. That is, the end users can establish their own communication routes through the structure based on exchange of one or more authentication certificates (user identity certificates—UIC) to acquire access to the structure. The structure includes an administration arrangement issuing the certificates to the end users. Such a communication system is described in WO 2005/009019. 
     Peer-to-peer communications are beneficial to the user as they are often of significantly lower cost than traditional communication networks, such as fixed line or mobile networks. This may particularly be the case for long distance calls. These systems may utilise voice over internet protocol (“VoIP”) over an existing network (e.g. the Internet) to provide these services, although alternative protocols can also be used. 
     In a communication system, such as a peer to peer system, client software is installed on an end user device such as a personal computer (PC) to allow the end user to communicate via the communications network and to identify the user within the communication network. The user interface of the client software can be controlled by the client to display user facilities and to indicate events occurring, such as an incoming call.  FIG. 1A  is a diagram of an end user device  10  running client software to communicate directly with the peer to peer system. The client software comprises a user interface layer  12 , a client engine layer  14 , and a protocol layer. The protocol layer is arranged to handle the communication between the client engine and the peer to peer system  104 . 
     Users may be accustomed to mobility whilst using conventional telephony services, due to the prevalence of cordless phones and mobile cellular networks. It is therefore desirable to run the client software on mobile devices such as a mobile phone or other battery operated cordless device. However, running the client software on a mobile end user device presents a number of problems. Hand held mobile devices are typically battery operated and have less CPU resource than a PC. The power requirement used to run the client software to handle the communications can reduce the battery life considerably for battery operated devices. Furthermore, running the client software on the user device may use valuable CPU resources that are required to run other applications on the device. 
     One further problem caused by using a mobile device in an VoIP communication system is that in a VoIP system such as a peer to peer system, it is necessary to be constantly connected to the internet in order to be notified of communication events, such as receiving a call. Maintaining a constant connection between the communication network and the internet is not only an inefficient use of battery life and CPU resources of the device, but also an inefficient use of network connection resources. Also being constantly connected to the internet may be costly for a user. Furthermore the quality of the connection to the internet may be poor therefore degrading the quality of the communication. 
     SUMMARY 
     It is therefore an aim of embodiments of the invention to address at least one of the above identified problems. 
     According to a first aspect of the present invention there is provided a method of establishing a communication event in a communication system from an initiator device to one of a plurality of entities associated with the initiator device comprising: assigning a calling identity to at least one of said entities at a first network node associated with a packet switched network; providing the assigned identity to the initiator device; storing associated contact information for the entity together with the calling identity assigned to the entity at a second network node associated with the packet switched network, initiating a communication event from the initiator device to the entity via a circuit switched network by transmitting the identity assigned to the entity to a gateway node; sending a message to the second network node with the identity assigned to the entity to determine the contact information for the entity; and routing the communication event from the gateway node to the entity using the determined contact information via one of the circuit switched and packet switched networks without said communication event being routed via said first network node. 
     According to a second aspect of the present invention there is provided a communication system comprising a packet switched network and a circuit switched network for routing a communication event from an initiator device to one of a plurality of entities associated with the initiator device the communication system comprising: a first network node located in the packet switched network arranged to assign a calling identity to at least one of said entities and to provide the assigned identity to the initiator device; a second network node located in the packet switched network arranged to store associated contact information for the entity together with the calling identity assigned to the entity; a gateway node arranged to receive the communication event addressed using the calling identity assigned to the entity from the initiator device via the circuit switched network; wherein the second network node is further arranged to determine the contact information for the entity in response to receiving a message with the identity assigned to the entity and to provide the contact information to the gateway node such that the communication event may be routed from the gateway node to the entity via one of the circuit switched and packet switched networks without said communication event being routed via said first network node. 
     According to a third aspect of the present invention there is provided a network node for use in a communication system comprising: means for providing a calling identity to be allocated to an entity to another network node located in the communication system; means for receiving allocation information and contact details for the entity from the other network node; means for storing the calling identity for an entity in association with contact details for the entity using the allocation information; means for receiving calling information for a call initiated by an initiator device, said calling information comprising the calling identity; means for retrieving the contact details for the entity based on the received the calling information; and means for providing the contact details of the receiving the device to a routing node route the call the entity. 
     In accordance with embodiments of the present invention, contact information is provided to the gateway node. In this case it is not necessary for the communication event to be routed via the network node. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a better understanding of the present invention and to show how the same may be carried into effect, embodiments of the present invention will now be described with reference to the following drawings: 
         FIG. 1A  is a schematic diagram of an end user device running client software for making VoIP calls; 
         FIG. 1  is a schematic representation of a communication system in accordance with an embodiment of the invention; 
         FIG. 2  is a schematic representation of part of the communication system shown in  FIG. 1 ; 
         FIG. 3   a  is a diagram showing a user device in accordance with an embodiment of the present invention; 
         FIG. 3   b  is a diagram showing the protocol stack of a client program in accordance with an embodiment of the present invention; 
         FIG. 4  is a diagram showing the communication path between a user device and a session node in accordance with the present invention; 
         FIG. 5  is a diagram illustrating the steps for allocating a PSTN number to a contact in accordance with an embodiment of the invention; 
         FIG. 6  is a diagram showing the steps for initiating a call over the communication system in accordance with an embodiment of the present invention; 
         FIG. 7  is a diagram showing the logical connections between the call manager, the session node, the inbound gateway and the outbound gateway in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will first be made to  FIG. 1 , in which is shown a communication network  100 , including a packet switched communication system  104  and circuit switched networks  112  and  120 . In one embodiment the packet switched communication system  104  may be a peer to peer system operating on a packet switched network such as the internet. The circuit switched networks  112 ,  120  may comprise PSTN (Public Switched Telephone Network) networks. 
     A user device  102  is shown to be connected to the peer to peer system  104  via a session node  106 . The user device  102  is also connected to the PSTN network  120 . In one embodiment of the invention the user device is connected to the circuit switched network  112  via a circuit switched connection  222  and to the session node  106  via a packet switched connection  111 . The circuit switched connection  222  and the packet switched connection  111  may be provided by a GSM (Global System for Mobile Communications) network (not shown). For example the packet switched connection may be provided by a GPRS (General Packet Radio Service) connection of the GSM network whilst the circuit switched connection may be provided by a GSM audio connection of the GSM network. In a preferred embodiment of the invention the packet switched connection  111  is used to transmit packet data according to an internet protocol such as Transmission Control Protocol (TCP). 
     The user device  102  may be, for example, a personal computer, a gaming device, a personal digital assistant, a suitably enabled mobile phone, or other device able to connect to the internet. 
     The user device  102  runs a client software program  124  that provides a client interface on the device and allows the user device to communicate with the session node  106 . The session node  106  runs a communication instance  122  defining a session dedicated to the user device  102 . The communication instance  122  enables the user device  102  to communicate with the peer to peer communication system  104 . The communication instance also includes a protocol adaptor instance which enables the communication instance  122  to communicate with the client program  124 . The session node  106  is able to run a plurality of communication instances for a number of concurrent user devices (not shown). 
     The client program  124  running on the user device has a number of different components or layers for implementing various functions, including a protocol layer  402  ( FIG. 3   b ) for managing the interface with the GSM network. The interface with the GSM network will now be described with reference to  FIG. 3   a.    
       FIG. 3   a  is a schematic diagram showing the transmission of data between the client program  124  and a GSM protocol stack in the user device  102 . As shown in  FIG. 3   a  the user device  102  further comprises the GSM protocol stack  501  and a radio transceiver  502 . Information transmitted from the GSM network to the user device is received by the transceiver  502 . The data received from the GSM network is processed by GSM protocol stack  501  before it is transmitted to the client program  124 . Similarly, information to be transmitted to the GSM network from the client program  124  is processed by the GSM protocol stack  501  before it is transmitted to the GSM network via the transceiver  502 . The operation of the GSM protocol stack  501  is known in the art and will not be described in detail herein. 
     As shown in  FIG. 1  the peer to peer system  104  comprises an inbound gateway  114  and an outbound gateway  116 . The inbound gateway  114  and the outbound gateway  116  are connected to PSTN gateways  188  located in the PSTN networks. The inbound gateway  114  is arranged to receive data for the peer to peer system on the internet  104  from the PSTN gateways  188 . The outbound gateway  116  is arranged to transmit data from the peer to peer system on the internet  104  to the to the PSTN gateways  188 . 
     A call manager  118  is connected between the session node  106  and the inbound gateway  114 . In  FIG. 1  the call manager  118  is shown as being located separately from the session node  106  and the inbound gateway  114 . The call manager  118  may however form part of either the session node  106  or the inbound gateway  114 . The operation of the call manager  118  will be explained hereinafter. 
     Also shown in  FIG. 1  is a profile node  128 . The profile node  128  is responsible for storing user profile information for users of the peer to peer system. The user profile information includes login information for logging into the peer to peer system and a contact list  132  associated with each user of the peer to peer system. 
     The login details may define a login in name and password to allow the user of the user device  102  to log in to the peer to peer network and allow the user of the user device to be uniquely identified within the peer to peer system. 
     The contact list  132  comprises the addresses of, for example, other users of the communication system stored as contacts by a user. The contact information may define a telephone number, an IP (Internet Protocol) address, a URI (Uniform Resource Indicator), a username, a VoIP device or any other destination address capable of receiving a communication event across the communication network  100 . In one embodiment of the invention the contact information for the list of contacts may comprise a list of destination addresses within the internet. 
     Reference will now be made to  FIG. 2  which shows a more detailed diagram of part of the communication system  100 . Components of the communication system  100  described in relation to  FIG. 1  that are also shown in  FIG. 2  are labelled with common reference numerals. Additionally shown in  FIG. 2  are a circuit switched network access node  178  and a PSTN network gateway  188  and a data store  126  associated with the session node  106 . The access node  178  and the PSTN gateway  188  form part of the circuit switched network  112 . The storage device  126  is associated with the call manager. 
     Reference will now be made to  FIG. 3   b .  FIG. 3   b  shows a protocol stack for the client program  124  according to an embodiment of the present invention. The protocol stack shows an operating system layer  401 , a protocol layer  402 , a client engine layer  404  and a client user interface layer  406 . Each layer is responsible for specific functions. Because each layer usually communicates with two other layers, they are regarded as being arranged in a stack as shown in  FIG. 3   b.    
     The operating system layer  401  manages the hardware resources of the user device  102  and handles data being transmitted to and from the session node  106  via the GSM protocol stack. The operating system layer also handles the data being transmitted to and from the network  112  via the GSM protocol stack. The client protocol layer  402  of the client software communicates with the operating system  401 . Processes requiring higher level processing are passed to the client engine layer  404 . The client engine  404  also communicates with the user client user interface layer  406 . The client engine may be arranged to control the client user interface layer  406  to present information to the user via user interface means of the user device and to receive information from the user via the user interface means of the user device. The user interface means may comprise a speaker, a microphone, a display screen and a keyboard. This list is not exhaustive. 
     The communication instance  122  running on the session node  106  enables the communication between the client program  124  running on the device  102  and the peer to peer system  104 .  FIG. 4  shows the connection path between the communication instance  122  on the session node  106  and the client program  124  running on the user device  102 . 
     As shown in  FIG. 4 , the session node  106  comprises a core module  205  for allocating a communication instance  122  to a client program  124 . In accordance with an embodiment of the invention, when a client program  124  transmits a login request to the session node  106 , the core module  205  is arranged to assign a communication instance  122  to the client program  124 . 
     The communication instance  122  may be selected from a pool of available communication instances. Alternatively the invention the communication instance may be created when the client program  124  logs in. 
     It is possible that the protocol layer  402  of the client  124  uses a different protocol to the protocol used within the communication instance  122 . The protocol adaptor in the communication instance facilitates the communication between the client program  124  and the communication instance  122 . 
     The communication instance  122  is also arranged to communicate with the call manager  118 . 
     It will be apparent that in contrast to  FIG. 1   a , the device  102  runs only the user interface part of the software; The communication part responsible for communicating with the peer to peer network is executed at the session node  106 , not at the device  102 . Thus device  102  consumes less battery and CPU resource. 
     The client program  124  communicates with the session node  106  via a packet switched data connection  111 . The client program  124  may communicate with the session node  106  using TCP (Transmission Control Protocol) or other suitable internet protocol. 
     In accordance with an embodiment of the invention the client program  124  is arranged to log in the peer to peer system  104  by transmitting login details such as a user login name and password to the session node  106  over the data connection  111 . On receipt of log in details the session node is arranged to assign a communication instance  122  to the client program  124 . The communication instance  122  is then arranged to check the login details with the user&#39;s profile information stored on the profile node  128  and to sign in to the peer to peer system  104  using the login details. 
     When a communication instance is assigned to a user device, this defines a session between the client program  124  and the session node  106  for communicating with the peer to peer system  104 . The communication instance generates a session identifier and transmits the session identifier to the client program  124  over the data connection  111 . 
     When a session is initiated for a user device  102  the communication instance  122  running on the session node  106  is arranged to retrieve the contact list  132  associated with the user of the client program  124  and to send at least part of the contact list  132  to the client program  124 . The contact list  132  can be retrieved by the communication instance from the profile node  128 . 
     According to an embodiment of the invention a PSTN number is assigned to the each contact by communication instance to enable the client program to establish a call to a contact via the PSTN network. The method of assigning a PSTN number to a contact will now be described with reference to  FIG. 5 . 
     In step S 1  the communication instance  122  is arranged to retrieve the addresses of the entities of that are listed as contacts in the contact list  132  associated with the user of the user device  102 . The addresses of the entities are retrieved from the profile node  128 . 
     In step S 2  the communication instance stores the address of each entity in the data store  129 . In a preferred embodiment of the invention the entire contact list  132  is stored in the data store  129 . 
     In step S 3  the communication instance  122  is then arranged to retrieve a PSTN number for each entity listed in the contact list from the call manager. 
     In step S 4  the communication instance  122  is arranged to allocate each PSTN number to each entity listed in the contact list and to report the address of each entity to the call manager, together with an indication of which PSTN number has been allocated to which entity. 
     In step S 5  the call manager  118  is arranged to store in the data store  126  the address of each entity listed in the contact list in association with the allocated PSTN number. 
     In a preferred embodiment of the invention the call manager  118  is arranged to additionally store in the data store  126  the PSTN number of the user device  102  in association with the PSTN number allocated to the entity. The PSTN number of the device may be reported to the call manager in either step S 3  or step S 4  by the communication instance. In this embodiment of the invention the address of the entity may be resolved using the PSTN number allocated to the entity and the PSTN number of the device. In this case one PSTN number may be allocated for use by more than one user having a communication instance running on the session node  106 . 
     The allocated PSTN numbers may be stored in association with the address of each entity and the PSTN number of the user device  102  for the duration of the session between the client program  124  running on the device  102  and the session node  106 . A session is started when the session node  106  assigns a dedicated communication instance  122  to the client program  124 . A session may be closed when the client program  124  transmits a logout request to the session node, or when a session is timed out. 
     The contact list  132  together with the PSTN numbers allocated to each entity in the contact list are transmitted from the communication instance to the client program  124 . The contact list  132  and the allocated PSTN numbers may then be stored in a data store accessible to the client program  124 , located in the user device  102 . 
     In a preferred embodiment of the invention the allocated PSTN numbers and the contact list  132  are transmitted to the client program  124  in data packets via the data connection  111 . The allocated PSTN numbers may be provided in a separate data packet from the contact list  132 . 
     As previously stated, the client program  124  is arranged to receive information from the session node  106  via the packet switched connection  111 . The client program  124  is arranged to use the allocated PSTN numbers transmitted over the packet switched connection  111  to initiate circuit switched calls to the contacts listed in the contact list  132 ′ using the GSM audio connection  222 . It is an important aspect of the present invention that circuit switched data such as call data is not routed though the session node  106 . However packet switched data, such as IM (Instant Messaging) and chat data, may be transmitted via the session node  106  using the URI of the contact. 
     In accordance with an embodiment of the invention, during a communication event to a contact using the calling identifier, the call manager  118  is arranged to retrieve the contact details of the contact from the data store  126  in response to receiving the calling identifier. The contact details retrieved by the call manager may be provided to the inbound gateway  114  to allow the communication event to be routed. The logical connections between the call manager  118  the session node  106  and the gateways  114 ,  116  are shown in  FIG. 7 . 
     Reference will now be made to  FIG. 6 .  FIG. 6  is a diagram showing how a data in a communication event such as a call is transmitted by a user of the user device to a contact listed in the list  132  using the PSTN network  112 . 
     A call comprises both a media data connection and a control data for handling the call set up. In  FIG. 6  the control data connection for transmitting control data and the media data connection for transmitting the media data are shown separately. The control data connection is shown as a solid line and the call connection is shown as a broken line. 
     In step S 100  the user of the user device  102  initiates a call to an entity listed in the contact list  132 . The contact list  132  may be displayed by the user interface layer of the client program  124  as selectable links on a display of the user device  102 . The user may initiate a call to the entity by selecting a link for that entity. When the user initiates the call the client program  124  is arranged to dial the PSTN number allocated to that entity. The call placed by the client program  124  will therefore include control data that defines the allocated PSTN number. The control data will also include the PSTN number of the user device  102 . The dialled PSTN number allocated to entity is used to establish a media data connection and control data connection with the PSTN gateway  188  via the GSM audio connection  222 . 
     In step  200  the media data connection is held at the PSTN gateway  188 . The PSTN gateway  188  is arranged to transmit the control data to the inbound gateway located in the internet  104 . The PSTN gateway  188  is arranged to transmit control data comprising recognised PSTN numbers to the inbound gateway  114 . The PSTN gateway may recognise numbers that have been provided for use by the call manager  118  by the operator of the PSTN network. 
     In step S 300  the inbound gateway  114  transmits the control data comprising the allocated PSTN number of the called entity and the PSTN number of the user device to the call manager  118 . The media data connection is held at the PSTN gateway  188  until the allocated PSTN number of the called entity is resolved to the address of the entity. 
     At step S 400  the call manager  118  uses the PSTN number of the device  102  to search the data store  126  for the contact list  132  associated with the user of the device  102 . The PSTN allocated to the entity is then used to locate the address of the entity as defined in the contact list  132 . In one embodiment of the invention the call manager may also retrieve the username of the user associated with the user of the user device  102 . 
     In step S 500  the address of the entity is transmitted to the inbound gateway  114 . The call manager  118  may also transmit the username of the user of the user device  102  to the inbound gateway  114 . 
     In step S 600  the inbound gateway  114  accepts the media data from the PSTN gateway and uses the address of the entity received from the call manager  118  to transmit the call via the packet switched network  104 . If the address of the entity is located in the PSTN network the inbound gateway will transmit the call to the PSTN network via the outbound gateway  116  (shown in  FIG. 1 ). 
     In step S 700  the call is received at the called entity, e.g. device  110   a  or  110   b . If the called entity is located in the internet  104  the username of the user of the device  102  retrieved in step S 500  may be displayed on the device  110   a  to indicate the origin of the call. 
     In an alternative embodiment of the present invention the entity that the user of the user device  102  places a call to is not listed as a contact in the contact list  132 . In this embodiment of the invention the user device  102  is arranged to provide the communication instance  122  with the address of the entity via the data connection  111  before initiating a call with the entity. In this embodiment of the invention a PSTN number defined in the ‘call set up’ message described in relation to table  2  is reserved for an entity that is not listed in the contact list. When the communication instance receives the address of the entity from the user device, the address of the entity is stored in the data store  126  in association with the reserved PSTN number. A call may then be placed to the entity via the PSTN network in accordance with the method steps described in relation to  FIG. 6 . 
     According to one embodiment of the invention the call manager selects a PSTN number to assign in dependence on the location information of the user device  102 . According to this embodiment the assigned number may be associated with an inbound gateway that is located geographically closer to the user device than other inbound gateways in the communication system, a so called “local number”. 
     While this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the claims. 
     In particular, a number of different embodiments can be implemented, as discussed in the following. 
     In an alternative embodiment of the invention the PSTN number of the user device may not be available. In this embodiment of the invention the allocated PSTN number will correspond directly to the address of the contact. As such the call manager may resolve the address of the contact by searching the data store with the allocated PSTN number only. 
     In one embodiment of the invention the inbound gateway  114  may be arranged to not t accept the media data connection from the PSTN gateway  188 . In this embodiment of the invention the inbound gateway  114  is arranged to provide the PSTN gateway  188  with the address of the contact such that the PSTN gateway may route the call via the PSTN network. This embodiment of the invention may be applied when the address of the contact is a PSTN number. 
     In one embodiment of the invention a contact listed in the contact list  132  may be associated with a plurality of locations in the communication system. For example a contact may be connected to the internet with using more that one device. According to this embodiment of the invention the contact details of the contact, for example the username of the contact will be associated with a plurality of locations in the internet. As such when the user of the user device establishes a call with the contact, the call may be received at the plurality of locations. 
     In place of one inbound and outbound gateway, in one embodiment of the invention there are a plurality of inbound and outbound gateways located in the communication system  100  (not shown). 
     In a further embodiment of the invention more than one call manager may be arranged in the communication system (not shown). Each call manager may be connected to a different set of session nodes. 
     The data store  126  is shown to be associated with the call manager  118 . However the data store can be geographically separate from the call manager  118 . In an alternative embodiment of the invention the data store  126  may be associated with the session node and may be accessed by the call manager  118  via the session node. In a further alternative embodiment of the invention the data store may be located at session node  106 . In a further embodiment of the invention the data store may be comprise to separate storage locations provided at the call manager  118  and the session node  106  respectively. 
     In accordance with one embodiment of the invention the PSTN numbers available for use by the call manager may be provided by the operator of the PSTN network  112 . 
     Other variations are possible. 
     While this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the claims.