IP Library Granted Patent US 12,289,352
Granted Patent B2
US 12,289,352 · App. 18/534,134 · Granted Apr 29, 2025

System and method for implementing a cloud-to- enterprise voice application gateway

Inventors: Samuel Lubachevsky (Pennington, NJ); Todd M. Goodyear (Pennington, NJ)
Assignee: Bank of America Corporation
H04L65/1069H04L65/1104H04M3/5183H04M3/523
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 12,289,352
App. No.
18/534,134
Granted
Apr 29, 2025
Kind
B2
Abstract

A system for establishing a network communication between two or more users receives a request to establish a call between an endpoint device associated with a user and user equipment (UE) associated with a client. The system determines that the endpoint device is available for a call by querying a network node configured to route calls to the endpoint device. The system routes a first call to the endpoint device. The system routes a second call to the UE. The system establishes a call between the user and the client by merging the first call and the second call.

Claims (86)

1. A system for establishing a network communication between two or more users comprising:

a network interface configured to receive a first request to establish a call between a first endpoint device associated with a user and an equipment device (UE) associated with a client, wherein the first request comprises a call address associated with the client; and

a processor operably coupled with the network interface, the processor configured to:

determine a status of the first endpoint device, wherein determining the status of the first endpoint device comprises querying a first network node configured to route calls to the first endpoint device;

determine that the first endpoint device is available for a call based at least in part upon the status of the first endpoint device;

route a first call over a first communication channel from the processor to the first endpoint device, wherein the first communication channel is established using a private network infrastructure of the system;

route a second call over a second communication channel from the processor to the UE using the call address associated with the client, wherein the second communication channel is established using the private network infrastructure of the system; and

establish a third call between the user and the client by merging the first call and the second call.

2. The system of claim 1 , wherein the processor is further configured to:

receive a second request to establish a fourth call between the UE associated with the client and a second network node, wherein:

receiving the second request is in response to the client requesting to receive a particular service type on the third call;

the second network node is configured to route calls to a plurality of agents;

each group of agents from among the plurality of agents is associated with a different service type;

the second request comprises client information comprising the particular service type;

identify at least one agent from among the plurality of agents who is associated with the particular service type;

query the second network node to determine which agent from among the at least one agent is available to receive a call;

identify a particular agent from among the at least one agent who is available to receive the call;

route the fourth call over a third communication channel between the processor and a third endpoint device associated with the particular agent; and

establish a fifth call between the particular agent and the client by merging the third call and the fourth call.

3. The system of claim 2 , wherein the processor is further configured to merge the third call and the fifth call between the user, the client, and the particular agent.

4. The system of claim 3 , wherein the processor is further configured to disconnect the third call in response to establishing the fifth call.

5. The system of claim 2 , wherein:

the first request is received from a computing device associated with the user;

the second request is received from the computing device; and

the computing device comprises a desktop computer.

6. The system of claim 1 , wherein:

the first endpoint device comprises a session initiation protocol (SIP) phone associated with the user; and

the UE comprises a telephone device associated with the client.

7. The system of claim 1 , wherein:

querying the first network node comprises sending a first computer-telephony integration (CTI) application programming interface (API) request to the first network node; and

the first CTI API is configured to control functionalities of a telephone device from a computing device associated with the first network node.

8. A method for establishing a network communication between two or more users comprising:

receiving, by a network interface, a first request to establish a call between a first endpoint device associated with a user and an equipment device (UE) associated with a client, wherein the first request comprises a call address associated with the client;

determining, by a processor operably coupled with the network interface, a status of the first endpoint device, wherein determining the status of the first endpoint device comprises querying a first network node configured to route calls to the first endpoint device;

determining, by the processor, that the first endpoint device is available for a call based at least in part upon the status of the first endpoint device;

routing, by the processor, a first call over a first communication channel from the processor to the first endpoint device, wherein the first communication channel is established using a private network infrastructure of a system associated with the processor;

routing, by the processor, a second call over a second communication channel from the processor to the UE using the call address associated with the client, wherein the second communication channel is established using the private network infrastructure of the system; and

establishing, by the processor, a third call between the user and the client by merging the first call and the second call.

9. The method of claim 8 , further comprising:

receiving a second request to establish a fourth call between the UE associated with the client and a second network node, wherein:

receiving the second request is in response to the client requesting to receive a particular service type on the third call;

the second network node is configured to route calls to a plurality of agents;

each group of agents from among the plurality of agents is associated with a different service type;

the second request comprises client information comprising the particular service type;

identifying at least one agent from among the plurality of agents who is associated with the particular service type;

querying the second network node to determine which agent from among the at least one agent is available to receive a call;

identifying a particular agent from among the at least one agent who is available to receive the call;

routing the fourth call over a third communication channel between the processor and a third endpoint device associated with the particular agent; and

establishing a fifth call between the particular agent and the client by merging the third call and the fourth call.

10. The method of claim 9 , further comprising merging the third call and the fifth call between the user, the client, and the particular agent.

11. The method of claim 10 , further comprising disconnecting the third call in response to establishing the fifth call.

12. The method of claim 9 , wherein:

the first request is received from a computing device associated with the user;

the second request is received from the computing device; and

the computing device comprises a desktop computer.

13. The method of claim 9 , wherein:

querying the second network node comprises sending a second computer-telephony integration (CTI) application programming interface (API) request to the second network node associated with the second network node; and

the second CTI API is configured to control functionalities of a telephone device from a computing device.

14. The method of claim 8 , wherein a session initiation protocol (SIP) is used in establishing the first call.

15. A non-transitory computer-readable medium storing instructions that when executed by a processor cause the processor to:

receive, via a network interface operably coupled to the processor, a first request to establish a call between a first endpoint device associated with a user and an equipment device (UE) associated with a client, wherein the first request comprises a call address associated with the client; and

determine a status of the first endpoint device, wherein determining the status of the first endpoint device comprises querying a first network node configured to route calls to the first endpoint device;

determine that the first endpoint device is available for a call based at least in part upon the status of the first endpoint device;

route a first call over a first communication channel from the processor to the first endpoint device, wherein the first communication channel is established using a private network infrastructure of a system associated with the processor;

route a second call over a second communication channel from the processor to the UE using the call address associated with the client, wherein the second communication channel is established using the private network infrastructure of the system; and

establish a third call between the user and the client by merging the first call and the second call.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions further cause the processor to:

receive a second request to establish a fourth call between the UE associated with the client and a second network node, wherein:

receiving the second request is in response to the client requesting to receive a particular service type on the third call;

the second network node is configured to route calls to a plurality of agents;

each group of agents from among the plurality of agents is associated with a different service type;

the second request comprises client information comprising the particular service type;

identify at least one agent from among the plurality of agents who is associated with the particular service type;

query the second network node to determine which agent from among the at least one agent is available to receive a call;

identify a particular agent from among the at least one agent who is available to receive the call;

route the fourth call over a third communication channel between the processor and a third endpoint device associated with the particular agent; and

establish a fifth call between the particular agent and the client by merging the third call and the fourth call.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions further cause the processor to merge the third call and the fifth call between the user, the client, and the particular agent.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions further cause the processor to disconnect the third call in response to establishing the fifth call.

19. The non-transitory computer-readable medium of claim 16 , wherein:

the first request is received from a computing device associated with the user;

the second request is received from the computing device; and

the computing device comprises a desktop computer.

20. The non-transitory computer-readable medium of claim 15 , wherein:

the first endpoint device comprises a session initiation protocol (SIP) phone associated with the user; and

the UE comprises a telephone device associated with the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2023
From: GOODYEAR, TODD M.; LUBACHEVSKY, SAMUEL
To: BANK OF AMERICA CORPORATION
Reel/Frame 065816/0415 →
Continuity (2)
Continuation 17557783 · Dec 21, 2021
Related Publication 20240106872A1 · Mar 28, 2024
References Cited (52)
US 6665723B2 · Trossen · 2003 [cited by applicant]
US 6731609B1 · Hirni · 2004 [cited by examiner]
US 7154864B2 · Costa-Requena et al. · 2006 [cited by applicant]
US 7408925B1 · Boyle et al. · 2008 [cited by applicant]
US 7484240B2 · Faccin et al. · 2009 [cited by applicant]
US 7580419B2 · Hsu · 2009 [cited by applicant]
US 7616752B2 · Onorato · 2009 [cited by applicant]
US 7710950B2 · Buckley et al. · 2010 [cited by applicant]
US 7738445B2 · Ibezim et al. · 2010 [cited by applicant]
US 7738644B2 · Brannick et al. · 2010 [cited by applicant]
US 7751359B1 · Bienn et al. · 2010 [cited by applicant]
US 7778404B2 · Caballero-Mccann et al. · 2010 [cited by applicant]
US 7899175B2 · Caballero-Mccann et al. · 2011 [cited by applicant]
US 7907599B2 · Hardie et al. · 2011 [cited by applicant]
US 7966625B2 · Gilfix et al. · 2011 [cited by applicant]
US 8121282B1 · Zhuang et al. · 2012 [cited by applicant]
US 8194838B2 · McMurry et al. · 2012 [cited by applicant]
US 8199727B1 · Bienn et al. · 2012 [cited by applicant]
US 8208461B2 · Mitchell · 2012 [cited by applicant]
US 8243715B2 · Itzkovitz et al. · 2012 [cited by applicant]
US 8300632B2 · Davis et al. · 2012 [cited by applicant]
US 8364828B2 · Samavedam et al. · 2013 [cited by applicant]
US 8369311B1 · Kirchhoff et al. · 2013 [cited by applicant]
US 8462768B2 · Badger · 2013 [cited by applicant]
US 8599838B2 · Buckley · 2013 [cited by applicant]
US 8750291B2 · Balasaygun et al. · 2014 [cited by applicant]
US 8750467B2 · Philps et al. · 2014 [cited by applicant]
US 8761382B2 · Pollitt · 2014 [cited by applicant]
US 9019869B2 · Thorpe, III et al. · 2015 [cited by applicant]
US 9350769B2 · Smith et al. · 2016 [cited by applicant]
US 9357078B2 · Mitchell · 2016 [cited by applicant]
US 9712341B2 · Nas · 2017 [cited by applicant]
US 10798134B2 · Sinha et al. · 2020 [cited by applicant]
US 11895162B2 · Lubachevsky · 2024 [cited by examiner]
US 20030058838A1 · Wengrovitz · 2003 [cited by applicant]
US 20050105464A1 · Acharya et al. · 2005 [cited by applicant]
US 20050141689A1 · Wengrovitz · 2005 [cited by applicant]
US 20050180435A1 · Hsu · 2005 [cited by applicant]
US 20050227685A1 · Costa Requena et al. · 2005 [cited by applicant]
US 20070036144A1 · Raghav et al. · 2007 [cited by applicant]
US 20070091870A1 · Hsu et al. · 2007 [cited by applicant]
US 20070297599A1 · Sylvain · 2007 [cited by applicant]
US 20080239998A1 · Ogami et al. · 2008 [cited by applicant]
US 20080267171A1 · Buckley et al. · 2008 [cited by applicant]
US 20080310312A1 · Acharya et al. · 2008 [cited by applicant]
US 20090003321A1 · Bian et al. · 2009 [cited by applicant]
US 20100040049A1 · Benedyk et al. · 2010 [cited by applicant]
US 20100183002A1 · Gallant et al. · 2010 [cited by applicant]
US 20130138821A1 · Robbins · 2013 [cited by applicant]
US 20160242016A1 · Mitchell · 2016 [cited by applicant]
US 20170078456A1 · Navare et al. · 2017 [cited by applicant]
US 20180132291A1 · Kalepu et al. · 2018 [cited by applicant]