IP Library › Granted Patent US 9,907,010
Granted Patent B2
US 9,907,010 · App. 14/944,869 · Granted Feb 27, 2018

System and method for enabling multi-modal communication

Inventor: Patrick Malatack (San Francisco, CA)
Assignee: Twilio, Inc.
H04W40/02H04L41/5051H04L45/745H04W8/26H04W60/00H04W60/005H04L45/74H04L63/08H04W88/06
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 9,907,010
App. No.
14/944,869
Granted
Feb 27, 2018
Kind
B2
Abstract

Systems and methods for a multi-tenant communication platform. At a multi-tenant communication platform, and responsive to authentication of a communication request provided by an external system, a routing address record of the communication platform is determined that matches a communication destination of the communication request. The matching routing address record associates the communication destination with a plurality of external communication providers. At least one communication provider associated with the matching routing address record is selected, and a request to establish communication with the communication destination is provided to each selected communication provider. The communication request specifies the communication destination and account information.

Claims (54)

1. A method comprising: at a multi-tenant communication platform system, and responsive to a communication request provided by an external system, the communication request specifying a communication destination and account information, controlling the platform system to:

determine a routing address record of the communication platform system that matches the communication destination of the communication request, the matching routing address record associating the communication destination with at least one external communication provider;

select at least one communication provider associated with the matching routing address record; and

provide a request to establish communication with the communication destination to each selected communication provider,

wherein the matching routing address record is stored at a repository of the communication platform system,

wherein the communication platform system generates the matching routing address record based on registration information provided to the communication platform system for the communication destination by each communication provider associated with the matching routing address record, and

wherein the communication destination matches at least one of a routing address identifier and a deterministic endpoint address specified in the matching routing address record.

2. The method of claim 1 , further comprising: controlling the platform system to maintain a plurality of routing address records at the communication platform system, each routing address record associating a communication destination with a plurality of communication providers external to the communication platform.

3. The method of claim 2 ,

wherein the account information includes an account identifier for the external system and an authentication token associated with the account identifier,

wherein the communication platform system determines the routing address record responsive to authentication of the communication request, and

wherein authentication of the communication request comprises: using a communication system of the communication platform system to authenticate the communication request by using the authentication token, and determine that the communication request is permitted for an account identified by the account identifier.

4. The method of claim 3 ,

wherein selecting at least one communication provider associated with the matching routing address record comprises: selecting at least one communication provider based on a communication profile, and

wherein the communication profile is one of a global communication profile and an account communication profile associated with the account identifier of the external system, the account communication profile being generated based on at least one of the communication request and an API of the communication platform system.

5. The method of claim 4 , wherein the communication platform system generates the matching routing address record by, for each communication provider:

transmitting a registration communication to a device endpoint associated with the communication destination responsive to a registration request that identifies the communication provider and the device endpoint associated with the communication destination;

specifying the communication provider in the routing address record in association with the device endpoint responsive to an endpoint confirmation response provided by at least one of the device endpoint and the communication provider; and

providing a registration confirmation response to the communication provider.

6. A method comprising:

a multi-tenant communication platform system receiving registration information for a communication destination from a plurality of external communication providers via a network interface of the platform system;

the platform system generating a first routing address record based on the received registration information for the communication destination;

the platform system receiving a communication application programming interface (API) request provided by an external system via a communication API module of the platform system, the communication API request specifying the communication destination and account information; and

responsive to receiving the communication API request via the communication API module:

the platform system accessing a plurality of routing address records from a repository of the platform system, wherein the plurality of routing address records includes the first routing address record,

the platform system determining that the first routing address record matches the communication destination of the communication API request, the first routing address record associating the communication destination with the plurality of external communication providers,

the platform system selecting at least one communication provider associated with the matching first routing address record, and

the platform system providing a request to establish communication with the communication destination to each selected communication provider via the network interface of the platform system,

wherein the communication destination matches at least one of a routing address identifier and a deterministic endpoint address specified in the first routing address record.

7. The method of claim 6 , further comprising: controlling the platform system to maintain the plurality of routing address records at the communication platform system, each routing address record associating a communication destination with a plurality of communication providers external to the communication platform.

8. The method of claim 7 ,

wherein the account information includes an account identifier for the external system and an authentication token associated with the account identifier,

wherein the communication platform system determines that the first routing address record matches the communication destination responsive to authentication of the communication request, and

wherein authentication of the communication request comprises: using a communication system of the communication platform system to authenticate the communication request by using the authentication token, and determine that the communication request is permitted for an account identified by the account identifier.

9. The method of claim 8 ,

wherein selecting at least one communication provider associated with the matching first routing address record comprises: selecting at least one communication provider based on a communication profile, and

wherein the communication profile is one of a global communication profile and an account communication profile associated with the account identifier of the external system, the account communication profile being generated based on at least one of the communication request and an API of the communication platform system.

10. The method of claim 9 , further comprising for each of the plurality of external communication providers:

the platform system receiving via the network interface a registration request that identifies the communication provider and a device endpoint associated with the communication destination;

the platform system transmitting via the network interface a registration communication to the device endpoint responsive to receiving the registration request;

the platform system receiving an endpoint confirmation response provided by at least one of the device endpoint and the communication provider via the network interface;

the platform system specifying the communication provider in the first routing address record in association with the device endpoint responsive to receiving the endpoint confirmation response; and

the platform system providing a registration confirmation response to the communication provider via the network interface.

11. The method of claim 6 ,

wherein each routing address record includes at least one of a deterministic endpoint address and a routing address identifier, and

wherein determining that the first routing address record matches the communication destination of the communication API request comprises: the platform system determining that the first routing address record includes a deterministic endpoint address that matches the communication destination of the communication API request.

12. The method of claim 6 ,

wherein each routing address record includes at least one of a deterministic endpoint address and a routing address identifier, and

wherein determining that the first routing address record matches the communication destination of the communication API request comprises: the platform system determining that the first routing address record includes a routing address identifier that matches the communication destination of the communication API request.

13. The method of claim 6 ,

wherein each routing address record includes at least one of a deterministic endpoint address and a routing address identifier, and

wherein determining that the first routing address record matches the communication destination of the communication API request comprises: in a case where a routing address record that specifies a deterministic endpoint address that matches the communication destination is not determined, the platform system determining that the first routing address record includes a routing address identifier that matches the communication destination of the communication API request.

14. The method of claim 6 , wherein the external system is an application server system that is communicatively coupled to the platform system via the network interface.

15. The method of claim 6 , further comprising: the external system providing the communication API request to the platform system via the communication API module of the platform system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2015
From: MALATACK, PATRICK
To: TWILIO, INC.
Reel/Frame 037134/0615 →
Continuity (3)
Continuation 14690252 · Apr 17, 2015
Provisional Application 61980749 · Apr 17, 2014
Related Publication 20160073319A1 · Mar 10, 2016