The disclosure is directed to maintaining an asynchronous communication via an intermediary. An agent executed on a device intermediary to clients and providers can receive a request from a client for an asynchronous communication between the client device and a provider device. The agent identifies a provider dynamic identifier identifying the provider. The agent uses a communication channel selection policy to determine a communication channel and a provider static identifier corresponding to the provider device. The agent maps a client dynamic identifier assigned by the server to a client static identifier of the client device. The agent generates a transmission data package including the content, a source address identifying the client dynamic identifier and a destination address identifying the provider static identifier. The agent provides the generated transmission data package for transmission via the communication channel determined using the communication channel selection policy to the provider device.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A system, comprising: a data processing system comprising one or more processors and memory, the data processing system intermediary to a plurality of first devices and a plurality of second devices; a communication agent executed by the data processing system to: receive, from a first device of the plurality of first devices, responsive to an action performed by a user of the first device to initiate a telephone call or a message to a second device, a request to establish a communication session between the first device and the second device of the plurality of second devices, the request identifying the first device, the second device selected by the data processing system to satisfy the request; assign, responsive to receiving the request to establish the communication session, a first dynamic identifier to the first device and a second dynamic identifier to the second device; establish, using the first dynamic identifier and the second dynamic identifier, the communication session between the first device and the second device via the communication agent, the communication session configured to transmit one or more communication packets corresponding to at least one of the telephone call or the message between the first device and the second device; and transmit, via the established communication session, the one or more communication packets between the first device and the second device using the first dynamic identifier and the second dynamic identifier.
2. The system of claim 1 , wherein the data processing system is further configured to store, in one or more data structures, an association between the first dynamic identifier of the first device, the second dynamic identifier of the second device, and a session identifier identifying the communication session.
3. The system of claim 1 , wherein the data processing system is further configured to store, in one or more data structures, an association between the first dynamic identifier of the first device, a first static identifier of the first device, the second dynamic identifier of the second device, a second static identifier of the second device, and a session identifier identifying the communication session.
4. The system of claim 3 , wherein the first static identifier corresponds to a first phone number of the first device and the second static identifier corresponds to a second phone number of the second device.
5. The system of claim 3 , wherein the first static identifier is associated with a first application executing on the first device and the second static identifier is associated with a second application executing on the second device, and wherein the communication session is established between the first application executing on the first device and the second application executing on the second device.
6. The system of claim 1 , wherein the data processing system is further configured to terminate the communication session responsive to a predetermined time.
7. The system of claim 1 , wherein the user is a first user, the request is a first request, and the communication session is a first communication session, and wherein the data processing system is further configured to: receive, from a third device of the plurality of first devices, responsive to an action performed by a second user of the third device, a second request to establish a second communication session between the third device and the second device, the second request identifying the third device; assign, responsive to receiving the second request to establish the second communication session, a third dynamic identifier to the third device and a fourth dynamic identifier to the second device; and establish, using the third dynamic identifier and the fourth dynamic identifier, the second communication session between the third device and the second device via the communication agent.
8. The system of claim 1 , wherein the data processing system is further configured to assign a third dynamic identifier to the first device and a fourth dynamic identifier to the second device responsive to a predetermined time.
9. The system of claim 1 , wherein the request to establish the communication session identifies a communication mode, wherein the data processing system is further configured to establish the communication session between the first device and the second device based on the communication mode.
10. The system of claim 1 , wherein the one or more communication packets comprises a first communication packet from the first device to the second device, wherein the data processing system is further configured to: receive, from the second device, a second communication packet for transmission to the first device, and transmit, via the communication session, the second communication packet from the second device to the first device.
11. A method, comprising: receiving, by a data processing system, from a first device of the plurality of first devices, responsive to an action performed by a user of the first device to initiate a telephone call or a message to a second device, a request to establish a communication session between the first device and the second device of the plurality of second devices, the request identifying the first device, the second device selected by the data processing system to satisfy the request; assigning, by the data processing system, responsive to receiving the request to establish the communication session, a first dynamic identifier to the first device and a second dynamic identifier to the second device; establishing, by the data processing system, using the first dynamic identifier and the second dynamic identifier, the communication session between the first device and the second device via the communication agent, the communication session configured to transmit one or more communication packets corresponding to at least one of the telephone call or the message between the first device and the second device; and transmitting, by the data processing system, via the established communication session, the one or more communication packets between the first device and the second device using the first dynamic identifier and the second dynamic identifier.
12. The method of claim 11 , further comprising storing, by the data processing system, in one or more data structures, an association between the first dynamic identifier of the first device, the second dynamic identifier of the second device, and a session identifier identifying the communication session.
13. The method of claim 11 , further comprising storing, by the data processing system, in one or more data structures, an association between the first dynamic identifier of the first device, a first static identifier of the first device, the second dynamic identifier of the second device, a second static identifier of the second device, and a session identifier identifying the communication session.
14. The method of claim 13 , wherein the first static identifier corresponds to a first phone number of the first device and the second static identifier corresponds to a second phone number of the second device.
15. The method of claim 13 , wherein the first static identifier is associated with a first application executing on the first device and the second static identifier is associated with a second application executing on the second device, and wherein the communication session is established between the first application executing on the first device and the second application executing on the second device.
16. The method of claim 11 , further comprising terminating, by the data processing system, the communication session responsive to a predetermined time.
17. The method of claim 11 , wherein the user is a first user, the request is a first request, and the communication session is a first communication session, and wherein the method further comprises: receiving, by the data processing system, from a third device of the plurality of first devices, responsive to an action performed by a second user of the third device, a second request to establish a second communication session between the third device and the second device, the second request identifying the third device; assigning, by the data processing system, responsive to receiving the second request to establish the second communication session, a third dynamic identifier to the third device and a fourth dynamic identifier to the second device; and establishing, by the data processing system, using the third dynamic identifier and the fourth dynamic identifier, the second communication session between the third device and the second device via the communication agent.
18. The method of claim 11 , further comprising assigning, by the data processing system, a third dynamic identifier to the first device and a fourth dynamic identifier to the second device responsive to a predetermined time.
19. The method of claim 11 , wherein the request to establish the communication session identifies a communication mode, and the method further comprises establishing, by the data processing system, the communication session between the first device and the second device based on the communication mode.
20. The method of claim 11 , wherein the one or more communication packets comprises a first communication packet from the first device to the second device, and the method further comprises: receiving, by the data processing system, from the second device, a second communication packet for transmission to the first device, and transmitting, by the data processing system, via the communication session, the second communication packet from the second device to the first device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 10, 2020
March 23, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.