IP Library Granted Patent US 11,079,910
Granted Patent B1
US 11,079,910 · App. 16/269,197 · Granted Aug 3, 2021

Softphone control integration

Inventors: Clement Wehrung (Paris, FR); Jedidiah Brown (Seattle, WA)
Assignee: Fuze, Inc.
G06F3/0484G06F3/0482G06F3/0483H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,079,910
App. No.
16/269,197
Granted
Aug 3, 2021
Kind
B1
Abstract

A computing device may send a request to a telephony server over a network to initiate a call with a telephony device, and may output for display a graphical user interface (GUI). A first process executing at the computing device may provide a first one or more call controls in the GUI for controlling the call. A second process executing at the computing device may provide a second one or more call controls in the GUI for controlling the call. In response to receiving user input indicative of a selection of a call control from the first one or more call controls to perform an action for the call, the second process may update the second one or more call controls based at least in part on the action to be performed.

Claims (80)

1. A computer-implemented method for integrating call controls for controlling a call across multiple processes, the method comprising:

sending, by a computing device, a request to a telephony server over a network to initiate a call between the computing device and a telephony device, the call comprising an ongoing call;

outputting, by the computing device for display at a display device, a graphical user interface (GUI);

providing, by a first process executing at the computing device, a first one or more call controls in the GUI for controlling the ongoing call, wherein the first process comprises a web browser application;

initiating, through the first process of the web browser application, the ongoing call between the computing device and the telephony device;

providing, by a second process executing at the computing device, a second one or more call controls in the GUI for controlling the ongoing call, wherein the second process comprises an e-mail application; and

in response to receiving user input indicative of a selection of a call control from the first one or more call controls to perform an action for the ongoing call, updating, by the second process executing at the computing device, the second one or more call controls based at least in part on the action to be performed for the ongoing call,

wherein the second one or more call controls are usable to control the same call established by the telephony server between the computing device and the telephony device when the web browser application is not visible in the GUI.

2. The computer-implemented method of claim 1 , wherein:

the first process comprises a first browser process of a web browser executing at the computing device;

providing, by the first process executing at the computing device, the first one or more call controls in the GUI for controlling the call comprises rendering, by the first browser process, contents of a first browser tab in the GUI that includes the first one or more call controls;

the second process comprises a second browser process of the web browser executing at the computing device; and

providing, by the second process executing at the computing device, the second one or more call controls in the GUI for controlling the call comprises rendering, by the second browser process, contents of a second browser tab in the GUI that includes the second one or more call controls.

3. The computer-implemented method of claim 1 , wherein:

the first process comprises an application executing at the computing device;

providing, by the first process executing at the computing device, the first one or more call controls in the GUI for controlling the call comprises rendering, by the application, an interface that includes the first one or more call controls;

the second process comprises a browser process of a web browser executing at the computing device; and

providing, by the second process executing at the computing device, the second one or more call controls in the GUI for controlling the call comprises rendering, by the browser process, contents of the web browser in the GUI that includes the second one or more call controls.

4. The computer-implemented method of claim 1 , further comprising:

in response to receiving the user input indicative of the selection of the call control from the first one or more call controls to perform the action for the call, sending, by the first process to the second process, updated call state information associated with the action; and

receiving, by the second process, the updated call state information from the first process;

wherein updating, by the second process executing at the computing device, the second one or more call controls based at least in part on the action to be performed for the call further comprises in response to receiving the updated call state information from the first process, updating, by the second process, the second one or more call controls provided by the second process based at least in part on the updated call state information.

5. The computer-implemented method of claim 4 , wherein the user input is a first input, wherein the selection of a call control is a first selection of a first call control, and wherein the action for the call is a first action for the call, further comprising:

in response to receiving second user input indicative of a second selection of a second call control from the second one or more call controls to perform a second action for the call:

sending, by the second process to the first process, a first indication of the second action to be performed for the call, and

updating, by the first process executing at the computing device, the first one or more call controls based at least in part on the second action to be performed for the call.

6. The computer-implemented method of claim 1 , further comprising:

receiving, by the second process, updated call state information associated with the action from the telephony server;

wherein updating, by the second process executing at the computing device, the second one or more call controls based at least in part on the first action to be performed for the call further comprises in response to receiving the updated call state information from the telephony server, updating, by the second process, the second one or more call controls provided by the second process based at least in part on the updated call state information.

7. The computer-implemented method of claim 6 , wherein the user input is a first input, wherein the selection of a call control is a first selection of a first call control, wherein the action for the call is a first action for the call, and wherein the updated call state information is a first updated call state information, further comprising:

in response to receiving second user input indicative of a second selection of a second call control from the second one or more call controls to perform a second action for the call, sending, by the second process to the telephony server, an indication of the second action to be performed for the call;

receiving, by the first process from the telephony server, a second updated call state information associated with the second action; and

updating, by the first process executing at the computing device, the first one or more call controls based at least in part on the second updated call state information.

8. The computer-implemented method of claim 1 , wherein the action for the call comprises one of: receiving the call, recording the call, pausing recording of the call, muting the call, unmuting the call, placing the call on hold, resuming the call from hold, transferring the call, sending the call to voicemail, or conferencing one or more additional participants into the call.

9. The computer-implemented method of claim 1 , wherein the call comprises a Voice over Internet Protocol (VoIP) call between the computing device and the telephony device.

10. A system for integrating call controls for controlling a call across multiple processes, comprising:

a memory configured to store a first process and a second process; and

a processor configured to:

send a request to a telephony server over a network to initiate a call between the system and a telephony device, the call comprising an ongoing call;

output, for display at a display device, a graphical user interface (GUI);

execute the first process to provide a first one or more call controls in the GUI for controlling the ongoing call, wherein the first process comprises a web browser application;

initiate, through the first process of the web browser application, the ongoing call between the computing device and the telephony device;

execute the second process to provide a second one or more call controls in the GUI for controlling the ongoing call, wherein the second process comprises an e-mail application; and

in response to receiving user input indicative of a selection of a call control from the first one or more call controls to perform an action for the ongoing call, execute the second process to update the second one or more call controls based at least in part on the action to be performed for the ongoing call,

wherein the second one or more call controls are usable to control the same call established by the telephony server between the computing device and the telephony device when the web browser application is not visible in the GUI.

11. The system of claim 10 , wherein:

the first process comprises a first browser process of a web browser;

the second process comprises a second browser process of the web browser;

the processor is configured to execute the first process to provide the first one or more call controls in the GUI for controlling the call is further configured to execute the first browser process to render contents of a first browser tab in the GUI that includes the first one or more call controls; and

the processor configured to execute the second process to provide the second one or more call controls in the GUI for controlling the call is further configured to execute the second browser process to render contents of a second browser tab in the GUI that includes the second one or more call controls.

12. The system of claim 10 , wherein:

the first process comprises an application;

the second process comprises a browser process of a web browser;

the processor configured to execute the first process to provide the first one or more call controls in the GUI for controlling the call is further configured to execute the application to render an interface that includes the first one or more call controls;

the processor configured to execute the second process to provide the second one or more call controls in the GUI for controlling the call is further configured to execute the browser process to render contents of the web browser in the GUI that includes the second one or more call controls.

13. The system of claim 10 , wherein:

the processor is further configured to:

in response to receiving the user input indicative of the selection of the call control from the first one or more call controls to perform the action for the call, execute the first process to send, to the second process, updated call state information associated with the action; and

execute the second process to receive the updated call state information from the first process;

wherein the processor configured to execute the second process to update the second one or more call controls based at least in part on the first action to be performed for the call is further configured to execute the second process to, in response to receiving the updated call state information from the first process, update the second one or more call controls provided by the second process based at least in part on the updated call state information.

14. The system of claim 13 , wherein the user input is a first input, wherein the selection of a call control is a first selection of a first call control, wherein the action for the call is a first action for the call, and wherein the processor is further configured to:

in response to receiving second user input indicative of a second selection of a second call control from the second one or more call controls to perform a second action for the call:

execute the second process to send, to the first process, a first indication of the second action to be performed for the call, and

execute the first process to update the first one or more call controls based at least in part on the second action to be performed for the call.

15. The system of claim 10 , wherein:

the processor is further configured to execute the second process to receive updated call state information associated with the action from the telephony server; and

the processor configured to execute the second process to update the second one or more call controls based at least in part on the first action to be performed for the call is further configured to execute the second process to, in response to receiving the updated call state information from the telephony server, update the second one or more call controls provided by the second process based at least in part on the updated call state information.

16. The system of claim 15 , wherein the user input is a first input, wherein the selection of a call control is a first selection of a first call control, wherein the action for the call is a first action for the call, wherein the updated call state information is a first updated call state information, and wherein the processor is further configured to:

execute the second process to, in response to receiving second user input indicative of a second selection of a second call control from the second one or more call controls to perform a second action for the call, send, to the telephony server, an indication of the second action to be performed for the call;

execute the first process to receive, from the telephony server, a second updated call state information associated with the second action; and

execute the first process to update the first one or more call controls based at least in part on the second updated call state information.

17. The system of claim 10 , wherein the action for the call comprises one of: receiving the call, recording the call, pausing recording of the call, muting the call, unmuting the call, placing the call on hold, resuming the call from hold, transferring the call, sending the call to voicemail, or conferencing one or more additional participants into the call.

18. A non-transitory machine-readable storage medium comprising machine-readable instructions for causing a processor of a computing device to execute a method for integrating call controls for controlling a call across multiple processes, comprising:

sending a request to a telephony server over a network to initiate a call between the computing device and a telephony device, the call comprising an ongoing call;

outputting, for display at a display device, a graphical user interface (GUI);

providing, by a first process, a first one or more call controls in the GUI for controlling the ongoing call, wherein the first process comprises a web browser application;

initiating, through the first process of the web browser application, the ongoing call between the computing device and the telephony device;

providing, by a second process, a second one or more call controls in the GUI for controlling the ongoing call, wherein the second process comprises an e-mail application; and

in response to receiving user input indicative of a selection of a call control from the first one or more call controls to perform an action for the ongoing call, updating, by the second process, the second one or more call controls based at least in part on the action to be performed for the ongoing call,

wherein the second one or more call controls are usable to control the same call established by the telephony server between the computing device and the telephony device when the web browser application is not visible in the GUI.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2026
From: FUZE, INC.
To: 8X8, INC.
Reel/Frame 073811/0092 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2024
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: 8X8, INC.; FUZE, INC.
Reel/Frame 068328/0569 →
SECURITY INTEREST Recorded Aug 5, 2024
From: 8X8, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 068327/0819 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION TO REMOVE APPLICATION NUMBERS 11265423, 11252205, 11240370, 11252276, AND 11297182 PREVIOUSLY RECORDED ON REEL 061085 FRAME 0861. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 26, 2024
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066383/0936 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 061085/0861 →
RELEASE OF SECURITY INTEREST Recorded Jan 19, 2022
From: AB PRIVATE CREDIT INVESTORS LLC
To: FUZE, INC.
Reel/Frame 058768/0103 →
SECURITY INTEREST Recorded Sep 23, 2019
From: FUZE, INC.
To: AB PRIVATE CREDIT INVESTORS LLC
Reel/Frame 050463/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2019
From: WEHRUNG, CLEMENT; BROWN, JEDIDIAH
To: FUZE, INC.
Reel/Frame 048269/0707 →