# US 10,873,892 B2 · System and method for enabling multi-modal communication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,892 B2
- Document ID: US10873892B2
- Status: Granted
- Kind: B2
- Application number: 16/546,019
- Filed: 2019-08-20
- Published: 2020-02-13
- Granted: 2020-12-22
- Earliest claimed: 2014-04-17
- Assignees: Twilio Inc.
- Applicants: Twilio Inc.
- Inventors: Patrick Malatack
- Web page: https://patentgrep.com/patent/US10873892B2

## CPC

- H04L 41/5051: Service on demand, e.g. definition and deployment of services in real time
- H04L 45/745: Address table lookup; Address filtering
- H04W 8/26: Network addressing or numbering for mobility support
- H04W 12/06: Authentication
- H04W 40/02: Communication route or path selection, e.g. power-based or shortest path routing
- H04W 60/00: Affiliation to network, e.g. registration; Terminating affiliation with the network, e.g. de-registration
- H04W 60/005: {Multiple registrations, e.g. multihoming}
- H04L 45/74: Address processing for routing
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04W 88/06: adapted for operation in multiple networks {or having at least two operational modes}, e.g. multi-mode terminals
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## 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

### Claim 1

A method comprising:
maintaining a set of routing options of at least two external communication providers using different transport protocols, which comprises of creating routing option records of a communication destination for a plurality of transport protocols, where a routing option record maps a communication destination to a destination endpoint;
receiving a communication request that specifies communication content and the communication destination;
selecting a selected routing option from the set of routing options, which comprises selecting a first subset of routing options, which have mappings matching the communication destination of the communication request, from the set of routing options and selecting the selected routing option from the first subset of routing options according to a set of priority heuristics;
transforming communication content of communication request to a compatible form of the selected routing option; and
transmitting the communication content to an external communication provider using the transport protocol according to the selected routing option thereby transmitting the communication content to the destination endpoint of the selected routing option.

### Claim 2 (depends on 1)

The method of claim 1, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises evaluating at least communication quality, cost of routing option, and communication feature availability.

### Claim 3 (depends on 2)

The method of claim 2, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics further comprises evaluating expected transformations of the communication content for the set of routing options.

### Claim 4 (depends on 1)

The method of claim 1, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises evaluating user presence at an endpoint of a routing option and history of communication from an endpoint of a routing option.

### Claim 5 (depends on 1)

The method of claim 1, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises calculating an effective internal cost of the first subset of routing options to the destination endpoint and the selected routing option is at least partially based on the routing option with the lower effective internal cost.

### Claim 6 (depends on 1)

The method of claim 1, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises tracking a communication quota for at least one routing option, and prioritizing the at least one routing option based on the communication quota during selection from the first subset of routing options.

### Claim 7 (depends on 1)

The method of claim 1, wherein the set of routing options comprises of at least one routing option for each of: a Short Message Service (SMS) message service provider, Multimedia Messaging Service (MMS) message service provider, Internet Protocol (IP) message service provider, and an IP synchronous communication service provider.

### Claim 8 (depends on 7)

The method of claim 7, wherein the set of routing options comprises of at least two distinct over-the-top routing options.

### Claim 9

A non-transitory computer-readable storage medium comprising computer-readable instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
maintaining a set of routing options of at least two external communication providers using different transport protocols, which comprises of creating routing option records of a communication destination for a plurality of transport protocols, where a routing option record maps a communication destination to a destination endpoint;
receiving a communication request that specifies communication content and the communication destination;
selecting a selected routing option from the set of routing options, which comprises selecting a first subset of routing options, which have mappings matching the communication destination of the communication request, from the set of routing options and selecting the selected routing option from the first subset of routing options according to a set of priority heuristics;
transforming communication content of communication request to a compatible form of the selected routing option; and
transmitting the communication content to an external communication provider using the transport protocol according to the selected routing option thereby transmitting the communication content to the destination endpoint of the selected routing option.

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein selecting the selected routing option from the first subset of routing options according the set of priority heuristics comprises evaluating at least communication quality, cost of routing option, and communication feature availability.

### Claim 11 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics further comprises evaluating expected transformations of the communication content for the set of routing options.

### Claim 12 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein selecting the selected routing option from the first subset of routing options according the set of priority heuristics comprises evaluating user presence at an endpoint of a routing option and history of communication from an endpoint of a routing option.

### Claim 13 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises calculating an effective internal cost of the first subset of routing options to the destination endpoint and the selected routing option is at least partially based on the routing option with the lower effective internal cost.

### Claim 14 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein selecting the selected routing option from the first subset of routing options according to the set of priority heuristics comprises tracking a communication quota for at least one routing option, and prioritizing the at least one routing option based on the communication quota during selection from the first subset of routing options.

### Claim 15 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the set of routing options comprises of at least one routing option for each of: a Short Message Service (SMS) message service provider, Multimedia Messaging Service (MMS) message service provider, Internet Protocol (IP) message service provider, and an IP synchronous communication service provider.

### Claim 16

A system comprising:
a multi-modal communication system comprising a communication router configured with a set of communication interfaces for a set of routing options;
wherein the set of routing options comprises of routing options to at least two external communication providers using different transport protocols, and where a routing option record maps a communication destination to a destination endpoint;
wherein the communication system comprises of at least one computer-readable medium that stores instructions that when executed by at least one computer processor cause the communication system to:
receive a communication request that specifies communication content and the communication destination;
select a selected routing option from the set of routing options, which comprises configuration to select a first subset of routing options, which have mappings matching the communication destination of the communication request, from the set of routing options and select the selected routing option from the first subset of routing options according to a set of priority heuristics;
transform communication content of communication request to a compatible form of the selected routing option; and
transmit the communication content to an external communication provider using the transport protocol according to the selected routing option thereby transmitting the communication content to the destination endpoint of the selected routing option.

### Claim 17 (depends on 16)

The system of claim 16, wherein configuration to select the selected routing option from the first subset of routing options according to the set of priority heuristics comprises of an evaluation of at least communication quality, cost of routing option, and communication feature availability.

### Claim 18 (depends on 16)

The system of claim 16, wherein configuration to select the selected routing option from the first subset of routing options according to the set of priority heuristics comprises of an evaluation of user presence at an endpoint of a routing option and history of communication from an endpoint of a routing option.

### Claim 19 (depends on 16)

The system of claim 16, wherein the set of routing options comprises of at least one routing option for each of: a Short Message Service (SMS) message service provider, Multimedia Messaging Service (MMS) message service provider, Internet Protocol (IP) message service provider, and an IP synchronous communication service provider.
