Establishing telephone calls

10701204 ยท 2020-06-30

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for establishing a telephone call between an originating device and a destination device. A call server receives an originating call made by an originating device to a dedicated number for a destination party. In response to receiving the originating call: (i) the originating call is parked; and (ii) a message is sent to the destination device of the destination party. The message informs the destination device of the originating call to the dedicated number so that the destination device is able to call the call server to be connected to the parked originating call.

Claims

1. A method for establishing a telephone call between an originating device and a destination device, the method comprising: receiving at a call server an originating call made by an originating device to a dedicated number for a destination party; in response to receiving the originating call: (i) parking the originating call; and (ii) sending an invitation message to the destination device of the destination party via any of HTTP, email, SMS or MMS to inform the destination device of the originating call to the dedicated number and to invite the destination device to call the call server to allow the call server to connect the destination device call to the parked originating call; receiving at the call server a destination party call from the destination device; and connecting the destination party call to the parked originating call to establish the telephone call between the originating device and the destination device.

2. A method according to claim 1, wherein the destination party call is made to a telephone number which is charged at a preferential rate to the destination party.

3. A method according to claim 1, further comprising, in response to receiving the originating call to the dedicated number for the destination party: (i) identifying an identifier of the destination device of the destination party; and (ii) associating the identifier of the destination device with the parked originating call.

4. A method according to claim 3, wherein connecting the destination party call to the parked originating call comprises receiving a call having the identifier and connecting the call with the identifier to the parked originating call.

5. A method according to claim 4, wherein associating the identifier of the destination device with the parked originating call is for a predetermined amount of time and wherein connecting the call with the identifier to the parked originating call is performed in dependence on a call with the identifier being received within the predetermined amount of time.

6. A method according to claim 5, comprising routing the parked originating call to a voicemail facility for the destination party if a call from the destination device is not received within the predetermined amount of time.

7. A method according to claim 3, wherein the identifier is the telephone number of the destination device.

8. A method according to claim 1, comprising, before sending the message to the destination device, making a status enquiry to enquire of the current status of the destination device and, if the status of the destination device is available, sending the message to the destination device, optionally wherein, if the response to the status enquiry indicates that the destination device is not available, routing the call to a voicemail facility for the destination party.

9. A method according to claim 1, wherein receipt of the message by the destination device initiates an inbound call experience on the destination device in which acceptance of the call causes the destination device to call the call server to be connected to the parked originating call, optionally wherein if an indication is received from the destination device that the call has been rejected, transferring the parked originating call to a voicemail facility for the destination party.

10. A method according to claim 1, wherein the message is sent to one of an IP address and a telephone number of the destination device.

11. A method according to claim 1, wherein the message includes the caller ID of the originating device.

12. A non-transitory computer-readable medium having computer-executable instructions adapted to cause a call server to perform the method of claim 1.

13. A call server arranged to perform the method of claim 1.

14. A method according to claim 1, the message being configured to initiate an imitation inbound call experience at the destination device, the imitation inbound call experience being an imitation of an inbound call experience at the destination device and comprising an acceptance actuator, wherein actuation of the acceptance actuator causes the destination device to call the call server to be connected to the parked originating call.

15. A method for a destination device of a destination party to establish a telephone call with an originating device, wherein an originating call from the originating device to a dedicated number for the destination party has been parked at a call server and wherein an invitation message has been sent from the call server to the destination device via any of HTTP, email, SMS or MMS to inform the destination device of the originating call to the dedicated number and to invite the destination device to call the call server to be connected to the parked originating call, the method comprising: in response to receiving an invitation message: initiating an inbound call experience on the destination device, wherein acceptance of the call causes the destination device to call the call server to be connected to the parked originating call.

16. A method according to claim 15, wherein at least one of: rejection of the call causes the destination device to send a call rejected notification to the call server; the destination party call is made to a telephone number which is a charged at a preferential rate to the destination party; and the inbound call experience plays an inbound call ringtone.

17. A method according to claim 15, wherein the inbound call experience presents an inbound call notification message on a display of the destination device which presents the option to accept or reject the inbound call.

18. A method according to claim 15, wherein the message includes the caller ID of the originating device and wherein the inbound call experience presents an inbound call notification message on a display of the destination device, the method comprising displaying the caller ID in the inbound call notification message.

19. A non-transitory computer-readable medium having computer-executable instructions adapted to cause a device to perform the method of claim 15.

20. A device configured to perform the method of claim 15.

21. A method for establishing a telephone call between an originating device and a destination device, the method comprising: receiving at a call server an originating call made by an originating device to a dedicated number for a destination party, the dedicated number being hosted or configured at the call server; in response to receiving the originating call: (i) parking the originating call; and (ii) sending an invitation message to the destination device of the destination party via the internet to inform the destination device of the originating call to the dedicated number and to invite the destination device to make a separate, new destination party call to the call server to allow the call server to connect the separate, new destination party call to the parked originating call; receiving at the call server the separate, new destination party call from the destination device; and connecting the destination party call to the parked originating call to establish the telephone call between the originating device and the destination device.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings in which like reference numerals are used to depict like parts. In the drawings:

(2) FIG. 1 is a schematic block diagram of an overall system including a call server, a proxy server, an originating device and a destination device;

(3) FIG. 2 is a schematic block diagram of a destination device;

(4) FIG. 3 is a flow chart of the operations which are performed to establish a telephone call between an originating device and a destination device;

(5) FIG. 4 is a table of data stored in the memory of the call server;

(6) FIG. 5 is a table of data stored in the memory of the proxy server; and

(7) FIG. 6 illustrates an inbound call experience on a destination device.

DETAILED DESCRIPTION OF EMBODIMENTS

(8) FIG. 1 is a schematic block diagram of an overall system including a call server 60, a proxy server 80, an originating device 10 and a destination device 90. The call server 60 comprises a controller 62 connected to a communications adapter 64 which connects the call server to the internet 50. The controller 64 is connected to a Private Branch eXchange (PBX) 66 and memory 68. The proxy server 80 also comprises a controller 82 which is connected to a communications adapter 84 which connects the proxy server to the internet 50. The controller 84 is connected to a memory 86.

(9) The originating device 10, which in the illustrated example is a mobile phone, is connected to a Public Land Mobile Network (PLMN) 20. The PLMN 20 is connected to the internet 50 for data communication and is also connected to a Public Switched Telephone Network (PSTN) 30 for voice communication. The PSTN 30 is also connected to the internet 50 for voice over IP communication.

(10) The destination device 90, which in the illustrated example is a mobile phone, is connected to another Public Land Mobile Network (PLMN) 40. The PLMN 40 is connected to the internet 50 for data communication and is also connected to PSTN 30 for voice communication. The PLMN 40 could be connected to a different PSTN which in turn is connected to the PSTN 30, but for simplicity only one PSTN has been depicted.

(11) FIG. 2 is a schematic block diagram of the destination device 90. The device 90 comprises a controller 92 connected to a battery interface 104 and a Subscriber Identity Module (SIM)/Removable User Identify Module (RUIM) interface 108. The battery interface 104 connects to battery 106 for powering the device. The SIM/RUIM interface 108 connects to SIM/RUIM card 110. The controller 92 is also connected to a display 100 and an input device 98. The input device may be a dedicated keypad or a touch screen. The controller is also connected to a memory 102 for storing data and programs including applications or apps which can be executed by the processor. The controller is also connected to a communications adapter 94 for enabling the device to connect to the internet and a radio frequency (RF) transceiver 96 for communicating with the PLMN.

(12) FIG. 3 is a flow chart of the operations which are performed to establish a telephone call between the originating device and the destination device. Referring to FIG. 3, at step S1 a call is made from an originating party's device 10 to a destination party's dedicated number which is hosted on the call server 60. At step S2, the call server receives the call. At step S3 the call server parks the originating call in a call parking facility.

(13) The call server plays a dialling tone to the originating party.

(14) The call server 60 has a data structure such as table 120 of FIG. 4 stored in its memory 68. Data for a plurality of users is stored. In the illustrated table, for each user, the User's name (the destination party's name), the User's dedicated telephone number (the destination party's dedicated telephone number), the User's device number (the destination party's device number) and the User's extension on the PBX are stored. To avoid providing real telephone numbers, the numbers in the drawing are depicted with asterisks in place of actual numerals.

(15) As can be seen from FIG. 4, user John Smith has the dedicated number 020 3******1 and his device's telephone number is 07905 7*******. His extension number on the PBX is extension 1000. Details are also shown for two other users, though the actual system would contain the corresponding details for many users.

(16) Referring back to FIG. 3, at step S4 the call server uses its controller 62 to identify the number of the destination device by referring to the table 120 and using the dedicated telephone number that has been called to identify the corresponding number of the destination device. For example, if the dedicated telephone number 020 3******1 of John Smith was called, the call server would use the number 020 3******1 in table 120 to identify the corresponding device's number as 07905 7*******.

(17) The parked call is associated with the telephone number of the destination party's device by associating a pointer to the call parking facility (i.e. an identifier of the call parking facility such as its number) with the number of the destination device. In one implementation, the pointer is included as an entry (not shown) in the table of FIG. 4 associated with the number of the destination device. In one particular implementation, the call parking facility is a call or conference bridge which is generated when the call is received and when the originating caller dials the user's dedicated number, the call or conference bridge is generated and the pointer to the bridge is created and associated with the number of the destination device in table 120. In such an implementation the call or conference bridge may be a one-time-use bridge.

(18) At Step S5, the call server sends a status enquiry as an HTTP message across the internet 50 to the proxy server 80 to request the current status of the destination device and its current IP address. The status enquiry contains the telephone number of the destination device.

(19) The proxy server 80 has a data structure such as table 130 of FIG. 5 stored in its memory 86. The table contains a record of the status of the destination devices of the users. The status of each device is available if the device is able to accept a call. The status of the device is unavailable if the device is unable to accept a call. The unavailable status may have various sub-statuses such as busy or out of coverage. The table also contains the current or most up to date IP address of each device. In the illustrated table, for each user, the user's device number, its IP address and its status are stored. For example, the IP address of 07905 7******* (John Smith's device's number) is stored and its status is available. Details are also shown for two other users, though the actual system would contain the corresponding details for many users.

(20) The proxy server 80 keeps the IP address and status information in table 130 up to date using approaches commonly used in presence technologies such as instant messaging (IM) e.g. Skype.

(21) At step S6, the proxy server sends a status request to the destination device identified by its telephone number in the status enquiry received from the call server 60. To do this, the proxy server 80, using its controller 82, reads the telephone number from the status enquiry and looks up the current IP address of the device in the table 130 stored in memory 86. The proxy server then sends the status request as an HTTP message to the destination device at that IP address. The destination device 90 receives the status request and at step S7 it returns a status indication to the proxy server 80. The status indication is returned as an HTTP message and contains the status of the device 90. The proxy server 80, using its controller, 82, reads the status from the status indication and updates the table 130. The proxy server also sends the status response to the call server 60. The status response is sent as an HTTP message and contains the status of destination device 90 and its IP address.

(22) At step S9, the call server receives the status response and at step S10 checks the status of the destination device 90. If the status of the destination device 90 is available, at step S11 the call server 60 sends a message to the destination device 90 to inform the device that the originating call has been made to the dedicated telephone number. To do this, call server 60 using its controller 62 sends an HTTP message to the destination device 90 across the internet 50. The message includes the telephone number of the originating device.

(23) At step S12, the destination device 90 receives the message. In response to, or conditional on, receiving the message the destination device 90 initiates an inbound call experience. The destination device 90 does this, using its controller 92, to present an inbound call notification message 120 on its display 100. The inbound call notification message 120 on the display of device 90 is illustrated in FIG. 6. With reference to FIG. 6, the message 120 is presented on a touch screen and displays the telephone number of the originating device. The message also presents an Accept soft button 122 and a Reject soft button 124 on the touch screen. The message may also inform the user that acceptance of the call will cause the device to call a call server to be connected to the originating call.

(24) At step S14, the user of the destination device either accepts or rejects the call by selecting the Accept button 122 or the Reject button 124, respectively. Selection of the Accept button 122 at step S15 causes the destination device 90 to call the call server 60. The destination device 90 calls the call server by the controller 92 causing the call to be made over PLMN 40.

(25) At step S16, the call server 60 receives the call from the destination device 90. When a destination party call arrives at the call server, the telephone service provides the destination device's telephone number as part of the signal. The call server checks to see if a parked call on the call server has that telephone number associated with it, and if such a parked call exists the call server connects the destination party call to that parked originating call. In the implementation where the pointer to the call parking facility is associated with the number of the destination device in table 120, the table can be used to look up the pointer to the call parking facility and the call is routed to the call parking facility. The call or connection between the originating device and the destination device is established.

(26) At step S18, when either party hangs up the call server 60 terminates the calls. Terminating the call involves terminating the calls from the call parking facility (e.g. by dissolution of the one-time-use bridge) as well as the clearing down of all associated resources to their idle state.

(27) Referring back to step S10, if the status of the destination device 90 is unavailable then at step S21 the call server 60 transfers the originating call to a voice mail facility for the destination party which is hosted on the PBX 66. S21 is also performed after a predetermined amount of time which may for instance be configured to 30 seconds (has elapsed since the time at which the originating call was received at step S2. In other words, a time out procedure is provided.

(28) Referring back to step S14, if the call is rejected through selection of the Reject button 124, then at step S19 the destination device sends a call rejected notification to the call server 60. The notification is sent as an HTTP message. At step S20 the call server receives the notification and at step S21 the call server 60 transfers the originating call to the voice mail facility for the destination party. Step S21 may also be performed after a predetermined amount of time 30 seconds has elapsed since the time at which the message was sent at step S12. In other words, another time out procedure is provided.

(29) The caller may leave a message on the voice mail facility and when the caller hangs up the call server 60 terminates the call at step S22. Terminating the call involves terminating the calls from the call parking facility (e.g. by the dissolution of the one-time-use bridge) as well as the clearing down of all associated resources to their idle state.

(30) In certain embodiments, rather than sending the message as an HTTP message the message is sent to the destination device, for example as a text message (e.g. email SMS or MMS message). The text message may contain a link which a user can select to call the call server. This means that only steps S1 to S4, S11, S12 and S16-S18 may be performed in such embodiments.

(31) In certain embodiments, one or more users have a plurality of dedicated numbers. For example, one number can be used for work and another for home. The dialled dedicated number may be included in the message and displayed in the inbound call notification message.

(32) In certain embodiments, the originating device and/or the destination device may be land line or VOIP devices.

(33) In certain embodiments, other details such as address details and billing details are stored in table 120.

(34) In certain embodiments, all of the functionality described as being performed on the call server and proxy server may be performed by the call server or carried out on one server or distributed across multiple servers. For example, Session Internet Protocol (SIP) or switch to mobile technologies may be used at the call server or at a proxy server.

(35) In certain embodiments the PBX may be an IP PBX. In certain embodiments the PBX may be a Time Division Multiplexing (TDM) PBX.

(36) The controller of the devices described herein can include a processor and optionally a memory. The communications adapters of the devices and servers can be one or more wired and/or wireless data connections, such as connections conforming to one or more known information exchange standards, such as wired Ethernet, wireless 802.11x (Wi-Fi), high-speed packet access (HSPA), worldwide interoperability for microwave access (WiMAX), Ultra-wideband (UWB), wireless local area network (WLAN), Universal Serial Bus (USB), Bluetooth, infrared or the like. The memory of the devices and servers can be, for example, a read-only memory (ROM); a random-access memory (RAM) such as, for example, a magnetic disk drive, and/or solid-state RAM such as static RAM (SRAM) or dynamic RAM (DRAM); and/or FLASH memory or a solid data disk (SSD).

(37) The processor can be any of a variety of processors. Such processors can be implemented, for example, as hardware modules such as embedded microprocessors, microprocessors as part of a computer system, Application-Specific Integrated Circuits (ASICs), and Programmable Logic Devices (PLDs). Such processors can also be implemented as one or more software modules.

(38) Certain embodiments described herein relate to a computer-readable medium which includes a non-transitory computer-readable medium (also can be referred to as a non-transitory processor-readable medium) having computer-executable instructions or computer code thereon for performing various computer-implemented operations. The non-transitory computer-readable medium (or processor-readable medium) is non-transitory in the sense that it does not include transitory propagating signals such as a propagating electromagnetic wave carrying information on a transmission medium.

(39) The above embodiments have been described by way of example only, and the described embodiments are to be considered in all respects only as illustrative and not restrictive. It will be appreciated that variations of the described embodiments may be made without departing from the scope of the invention which is indicated by the appended claims rather than by the foregoing description.