This invention relates to establishing a call between a first user and a second user. In particular, the invention relates to establishing such a call over a network.
Packet-based communication systems allow the user of a device, such as a personal computer, to communicate across a computer network such as the Internet. Packet-based communication systems include voice over Internet protocol (“VoIP”) communication systems which can support calls between users of the communication systems. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication. To use a VoIP system, the user must install and execute client software on their device. The client software provides the VoIP connections as well as other functions such as registration and authentication. In addition to voice communication, the client may also provide further features such as video calling, multimedia calling, instant messaging (“IM”), voicemail and file transfer.
A user of a packet-based communication system can establish calls with other users who are simultaneously logged in to the communication system. The client software can be used to store the details of various users, or “contacts”, in the system with whom the user may want to initiate a call. A first user can attempt to establish a call with another user in the system by, for example, selecting the other user's name from a list of contacts and then clicking on a “call” button. Since the client has stored the details of the other user, the client can attempt to establish a call with the other user through the communication system, for example by sending a call request to the other user.
Sometimes the attempt to establish a call with another user through the packet based communication system will fail. This may be, for example, because the other user is offline, or because the other user does not answer the request to establish a call. In these cases the call is not established through the packet based communication system, and the first user's desire to establish a call with the other user is not satisfied. An aim of the present invention is to facilitate the first user's establishment of a call with another user.
According to a first aspect of the present invention there is provided a method of establishing a call between a first user and a second user, the first and second users being associated with respective first and second devices which are configured to execute respective first and second communication clients for communicating over a first network, the method comprising: the first communication client attempting to establish a call from the first communication client to the second communication client over the first network using a first identifier associated with the second user in the first network; the first communication client determining that the attempt has failed; in response to determining that the attempt has failed, the first communication client displaying actuatable secondary call means to the first user on the first device for calling a second identifier associated with the second user in a second network, the second network being distinct from the first network; and in response to the first user actuating the secondary call means, the first communication client establishing a call from the first device over the second network to the second identifier associated with the second user.
According to a second aspect of the present invention there is provided a first device, usable by a first user, the first device being part of a first network, the first device comprising a first communication client for communicating, over the first network, with a second communication client at a second device usable by a second user, the first communication client being configured to: attempt to establish a call from the first communication client to the second communication client over the first network using a first identifier associated with the second user in the first network; determine that the attempt has failed; in response to determining that the attempt has failed, display actuatable secondary call means to the first user on the first device for calling a second identifier associated with the second user in a second network, the second network being distinct from the first network; and in response to the first user actuating the secondary call means, establish a call from the first device over the second network to the second identifier associated with the second user.
According to a third aspect of the present invention there is provided a computer program product comprising computer readable instructions for execution by computer processing means at a first device for establishing a call between a first user of the first device and a second user of a second device, the first and second devices being configured to execute respective first and second communication clients for communicating over a first network, the instructions comprising instructions for: the first communication client attempting to establish a call from the first communication client to the second communication client over the first network using a first identifier associated with the second user in the first network; the first communication client determining that the attempt has failed; in response to determining that the attempt has failed, the first communication client displaying actuatable secondary call means to the first user on the first device for calling a second identifier associated with the second user in a second network, the second network being distinct from the first network; and in response to the first user actuating the secondary call means, the first communication client establishing a call from the first device over the second network to the second identifier associated with the second user.
Preferably the second network is a Public Switched Telephone Network (PSTN), and the second identifier is a number associated with the second user in the PSTN. Preferably the first network is a packet switched network, for example a peer to peer (P2P) communications network.
When the first user is unable to establish a call through the first network, the secondary call means are displayed to the first user. The first user can actuate the secondary call means to establish a call with the second user over the second network. In this way, where the first network is a P2P network and the second network is the PSTN, means to initiate a call to a PSTN number associated with the second user are selectively provided to the first user in dependence on the availability of the second user in the P2P network.
As an example, if the second user is offline in the first network and the first user fails in an attempt to establish a call with the second user over the first network then a call button for initiating a call to the second user's PSTN number is displayed when the user attempts to call the offline contact. Alternatively, when the second user is offline in the first network and the first user attempts to establish a call with the second user over the first network, the attempted call may be passed to voicemail for the second user. The first user can then leave a message for the second user on his voicemail, and the attempted call would not be considered to have failed.
As another example, if a call to the second device over the first network is unanswered by the second user within a predetermined time then a call button for initiating a call to an identity associated with the second user in the second network (e.g. the second user's PSTN number) is displayed.
Communication over the first network is achieved by executing respective communication clients at the first and second devices. It is the communication client at the first device that attempts to establish a call to the second device over the first network and when that attempt fails (for one of many possible reasons) it is the communication client at the first device that displays the secondary call means to the first user for calling an address associated with the second user in the second network. Therefore the first device has the ability to perform the methods described herein without being reliant on central servers of the first network. Therefore the first device can be used in different networks and the networks themselves do not require any adaptation for the methods described herein to be performed by the first device.
A condition for displaying the secondary call means may be that the first user has credit in the first network. A further condition for displaying the secondary call means may be that at least one PSTN number is associated with the second user.
In prior systems, a communication client for use in communicating over the first network may store PSTN numbers of other users in the first network. A user may look up the PSTN number of another user and then place a call to the other user's PSTN number. This may involve navigating through various menus and options to find the PSTN number which may prove troublesome for the user, particularly when the device is a portable device such as a mobile phone in which the user interface can be difficult to manipulate quickly. In contrast, in the systems described herein the first user is not required to look up alternative contact details for the second user, and instead when the first user is unable to establish a call with the second user over the first network the first communication client displays the secondary call means which the first user can simply actuate to thereby establish a call with the second user over the second network. The systems described herein are therefore easier and quicker to use than the prior systems described above.
Furthermore, the secondary call means (e.g. a call button) is only displayed when required, which is particularly advantageous for portable devices (e.g. mobile platforms) where the screen size is limited. Before the attempt to establish a call from the first communication client to the second communication client over the first network has failed, the secondary call means is preferably not displayed on the first device.
For a better understanding of the present invention and to show how the same may be put into effect, reference will now be made, by way of example, to the following drawings in which:
Reference is first made to
Note that in alternative embodiments, the first device 104 can connect to the communication network 106 via additional intermediate networks not shown in
The first device 104 is configured to execute a first communication client 108, provided by a software provider. The first communication client 108 is a software program executed on a local processor in the first device 104.
Also shown in
As shown in
An example of a user interface 200 of the communication client 108 executed on the first device 104 is shown illustrated in
The client user interface 200 comprises a pane 204 which displays a contact list of the contacts stored by the user 102. In the example user interface 200, four contacts of other users of the communication system are shown listed in contact list 204. Each of these contacts have authorised the user 102 of the client 108 to view their contact details and presence state. Each contact in the contact list has a presence status icon associated with it. For example, the presence status icon 206 for “Jillian Hall” 110 indicates that this contact is “offline”, and the presence icons for “Jack Black”, “Kevin Jackson” and Mark Mills” indicate that these contacts are “online”.
The contacts in the contact list for a user (e.g. “Stacy Harris”) are stored in a contact server (not shown in
VoIP calls to the users in the contact list may be initiated over the communication system by selecting the contact and clicking on a “call” button 210 using a pointing device such as a joystick or a mouse. For example, as shown in
The operating system 314 manages the hardware resources of the computer and handles data being transmitted to and from the network via the network interface 326. The client protocol layer 318 of the client software communicates with the operating system 314 and manages the connections over the communication system. Processes requiring higher level processing are passed to the client engine layer 320. The client engine 320 also communicates with the client user interface layer 322. The client engine 320 may be arranged to control the client user interface layer 322 to present information to the user via the user interface of the client (as shown in
With reference to
If the second user 110 accepts the call over the first network 106 then the call is established and the first and second users can communicate over the first network 106. However, the second user 110 might not accept the call over the first network 106, in which case the call over the first network 106 is not established. For example, if the second user 110 is offline in the first network 106 then the call might not be able to be established over the first network 106. As another example, the second user 110 might not answer the call over the first network 106 if for example the second user 110 is not aware of the attempt to establish the call or chooses not to answer the call.
In step S404 the first communication client 108 determines whether the call can be established over the first network 106 to the second user 110. If the call can be established over the first network 106 then in step S406 the call proceeds between the first communication client 108 and the second communication client 114 over the first network 106.
If in step S404 it is determined that the call cannot be established over the first network 106 then the method passes to step S408. In step S408 it is determined whether the first user 102 has sufficient credit in the first network to establish a call over the second network 116 with the second user 110. For the first user 102 to establish a call with the second user 110 over the second network 116 the first communication client 108 determines that the call is to an identifier in the second network 116 and the call is routed to the gateway node 107 in the first network 106. The call is then routed to the second network 116 from the gateway node 107. In the example embodiments in which the second network is the PSTN 116, the gateway node 107 may select one from a plurality of further PSTN gateway nodes (not shown) to route the call to (e.g. depending on the country in which the device 118 is located). It may incur a cost to route a call to the second network 116, for example if the second network 116 is a PSTN network 116. Therefore, in order for the first user 102 to establish a call over the second network 116 he may be required to have a sufficient level of credit in the first network 106.
If it is determined in step S408 that the first user 102 does not have sufficient credit then the method passes to step S410 in which the user is informed of how to acquire credit such that the first user could establish a call over the second network 116. This may be implemented by a banner appearing on the user interface (not shown in the Figures) informing the first user 102 that he has insufficient credit to establish a call over the second network 116 and may include instructions for the first user 102 as to how to obtain credit.
If it is determined in step S408 that the first user 102 does have sufficient credit to establish a call over the second network 116 then the method passes to step S412 in which it is determined whether the second user is associated with at least one identifier in the second network 116 (e.g. a PSTN number where the second network is the PSTN network 116). The determination in step S412 can be implemented by querying a central server of the first network 106 which stores details of the second user 110. As part of the details of the second user 110, PSTN numbers or other identifiers associated with the second user 110 in other networks may be stored. A PSTN number stored for the second user 110 may identify the device 118 associated with the second user 110 which will ring when the PSTN number is called over the PSTN network 116. The device 118 is shown in
If in step S412 it is determined that the second user is not associated with at least one identifier (e.g. PSTN number) in the second network 116 (e.g. PSTN network 116) then the method passes to step S414 in which the first user 102 is informed that the second user 110 did not answer the call that was attempted to be established in step S402. This may be implemented by a banner appearing on the user interface (not shown in the Figures) informing the first user 102 that the call with the second user could not be established over the first network 106. It is noted that any time the attempt to establish a call in step S402 fails the first user 102 will be informed of the failure. This can be independent of whether the first user 102 has credit or not in the first network 106. This can also be independent of whether the second user 110 is associated with at least one identifier in the second network 116. As well as informing the first user 102 that the attempt to establish a call has failed the first user 102 can be asked to enter an identifier (e.g. a PSTN number) for the second user 110 in the second network 116, as described later with reference to
If it is determined in step S412 that the second user is associated with at least one identifier (e.g. PSTN number) in the second network 116 (e.g. PSTN network 116) then the method passes to step S416 in which the first communication client 108 displays secondary call means to the first user 102 on the user interface 200. As shown in
The banner 214 uses space on the user interface 200. Considering the space on the user interface 200 is particularly important when the screen of the device 104 is small, for example when the device 104 is a portable device such as a mobile phone. The first user 102 can close the banner 214 by clicking on the cross at the top right of the banner, thereby freeing up the space in the user interface 200. In some embodiments, the banner 214 is displayed to the first user 102 only once per conversation with the second user 110. This avoids unnecessary repetition of informing the user that they could try calling other numbers associated with the second user when the first user 102 has already chosen to close the banner 214 in the same conversation. In other embodiments the banner 214 is displayed to the first user 102 after every failed attempt to establish a call over the first network 106.
In step S418 the first user 102 actuates the secondary call means. For example, in the user interface 200 shown in
In step S420 a call from the first device 104 is established to the identifier associated with the second user in the second network 116 in response to the first user 102 actuating the secondary call means (e.g. by clicking the call button 216) in step S418. The first communication client 108 determines that the identifier is an identifier in the second network 116 and sends a call request to the gateway node 107 in the first network 106 including the identifier of the second user 112 in the second network 116. The gateway node 107 will route the call request to the second network 116 (e.g. via further gateway nodes). The call request is then routed to the device 118 identified by the identifier through the second network 116.
In this way the call can be established through the second network 116. The second network is distinct from the first network 106. This means that the call that is established in step S420 uses a distinct network from the network used in the failed attempt to set up a call as determined in step S404. Since the first attempt to set up a call to the second user 110 failed it can be advantageous to use a distinct network to set up the call in step S420 in case the failure of the first attempt was due to reasons associated with the first network 106 or associated with the second device 112 connected to the first network 106 (e.g. the second device 112 may be switched off, whereas the device 118 connected to the distinct second network 116 may be switched on). There are many possible scenarios in which the second user 110 may be more easily contactable via device 118 rather than device 112 as would be apparent to a skilled person, such as when device 112 is not a portable device but device 118 is a portable device.
The first and second networks preferably utilise different communication protocols. This may be advantageous if the failure of the first attempted call was due to reasons associated with the protocol of the first network 106. In the preferred embodiments described in relation to
If the second user 110 is offline when the first user 102 attempts to establish the call in step S402 then the call may be passed to the second user's voicemail. In this case in step S404 it would be determined that the call has been established over the first network 106 and the method passes to step S406 in which the first user 102 may leave a message for the second user 110 in his voicemail. In this case the steps S408 to S420 would not be carried out.
It would be apparent to a skilled person that steps S408 to S414 are optional steps, and are not necessarily carried out in some embodiments. For example, in some embodiments, it is not necessary to check that the first user has sufficient credit to establish a call over the second network in step 5408. This may, for example, be because no charges are incurred for establishing a call over the second network 116. Furthermore, instead of explicitly checking that the second user is associated with at least one PSTN number in step S412 it may instead be assumed that the second user is associated with at least one PSTN number. Therefore, the method could pass straight from step S404 to step S416 when it is determined that a call cannot be established over the first network in step S404.
In step S414 when it has been determined in step S412 that the second user 110 is not associated with a PSTN number, the banner 514 shown in
Clicking the button 516 or the cross in the top right corner of the banner 514 closes the banner 514 and may, or may not, dismiss this type of message permanently across the client.
There has therefore been provided a method by which the first user 102 can establish a call to the second user 110 over the second network 116 when an attempt to establish a call with the second user 110 over the first network 106 has failed. The methods described above are particularly advantageous because the first user 102 does not have to open up an address book or similar storage means to retrieve an alternative contact address of the second user. Instead, the first user 102 simply has to actuate the secondary call means that is displayed and the first communication client 108 establishes the call over the second network 116.
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 appendant claims.
Number | Date | Country | Kind |
---|---|---|---|
1006726.2 | Apr 2010 | GB | national |