IP Library Granted Patent US 10,511,569
Granted Patent B2
US 10,511,569 · App. 15/237,448 · Granted Dec 17, 2019

Techniques for providing multi-modal multi-party calling

Inventors: Tomi Yiu (Seattle, WA); Cameron James Pickett (Seattle, WA); Naizhi Li (Redmond, WA); Chi Wang Ho (Redmond, WA); Parama Jyothi Reddappagari (Redmond, WA)
Assignee: FACEBOOK, INC.
H04L61/2589H04L12/1818H04L51/04H04L61/106H04L61/2514H04L65/1069H04L65/403H04L67/104
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 10,511,569
App. No.
15/237,448
Granted
Dec 17, 2019
Kind
B2
Abstract

Techniques for providing multi-modal multi-party calling include receiving a join request at a multiway server (MWS) from a first client, the join request identifying a second client; sending a call invitation to the second client from the MWS; receiving a connection from the second client to the MWS; receiving a first media status from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode; and forwarding the first media status to the other of the first client or the second client. Other embodiments are described and claimed.

Claims (65)

1. A computer-implemented method, comprising:

receiving a join request at a multiway server (MWS) from a first client, the join request identifying a second client;

sending a call invitation to the second client from the MWS;

receiving a connection from the second client to the MWS;

receiving a first media status at the MWS from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode;

forwarding the first media status to the other of the first client or the second client;

allocating a port on a traversal using relays around network address translators (TURN) server;

providing an address of the port to the first client and the second client;

receiving an add participant request from one of the first client or the second client, the add participant request identifying a third client;

sending a call invitation to the third client from the MWS, the call invitation comprising the address of the port on the TURN server;

receiving a connection from the third client to the MWS;

receiving a second media status from one of the first, second, or third clients while the first, second, and third clients are in a relay mode with the TURN server; and

forwarding the second media status to the others of the first, second, or third clients.

2. The method of claim 1 , comprising:

receiving a peer to peer (P2P) ping message from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode; and

forwarding the P2P ping message to the other of the first client or the second client.

3. The method of claim 2 , comprising:

notifying the first client and the second client when a P2P ping message is not received;

allocating a port on a traversal using relays around network address translators (TURN) sever communicatively coupled to the MWS; and

providing an address of the port to the first client and the second client.

4. The method of claim 1 , comprising:

receiving a second join request from a third client, wherein the third client is associated with a same user associated with the first client or the second client;

accepting the join request from the third client; and

disconnecting the other client associated with the same user.

5. The method of claim 1 , comprising:

receiving video data from the first client; and

forwarding the video data to the second client before receiving a connection from the second client.

6. An apparatus, comprising:

a processor circuit;

a call manager component for execution on the processor circuit to:

receive a join request from a first client, the join request identifying a second client;

send a call invitation to the second client; and

receive a connection from the second client;

a status manager component for execution on the processor circuit to:

receive a first media status at the MWS from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode; and

forward the first media status to the other of the first client or the second client; and

a traversal using relays around network address translators (TURN) manager component for execution on the processor circuit to:

allocate a port on a TURN server communicatively coupled to the apparatus; and

provide an address of the port to the first client and the second client;

wherein:

the call manager component is further configured to receive an add participant request from one of the first client or the second client, the add participant request identifying a third client, send a call invitation to the third client from the MWS, the call invitation comprising the address of the port on the TURN server, and receive a connection from the third client; and

the status manager component is further configured to receive a second media status from one of the first, second, or third clients while the first, second, and third clients are in a relay mode with the TURN server, and forward the second media status to the others of the first, second, or third clients.

7. The apparatus of claim 6 , the TURN manager component further to allocate a first port on a first TURN server for the first client, and allocate a second port on a second TURN server for the second client.

8. The apparatus of claim 6 , the call manager component further to receive a peer to peer (P2P) ping message from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode, and to forward the P2P ping message to the other of the first client or the second client.

9. The apparatus of claim 8 , the call manager component further to notify the first client and the second client when a P2P ping message is not received; and the apparatus further comprising a traversal using relays around network address translators (TURN) manager component for execution on the processor circuit to allocate a port on a TURN server, and provide an address of the port to the first client and the second client.

10. The apparatus of claim 6 , the call manager component further to receive a second join request from a third client, wherein the third client is associated with a same user associated with the first client or the second client, accept the join request from the third client, and disconnect the other client associated with the same user.

11. At least one non-transitory computer-readable storage medium comprising instructions that, when executed, cause a multiway server (MWS) to:

receive a join request at the MWS from a first client, the join request identifying a second client;

send a call invitation to the second client from the MWS;

receive a connection from the second client to the MWS;

receive a first media status at the MWS from one of the first client or the second client while the first client and the second client are in a peer-to-peer mode;

forward the first media status to the other of the first client or the second client;

allocate a port on a traversal using relays around network address translators (TURN) server;

provide an address of the port to the first client and the second client;

receive an add participant request from one of the first client or the second client, the add participant request identifying a third client;

send a call invitation to the third client from the MWS, the call invitation comprising the address of the port on the TURN server;

receive a connection from the third client to the MWS;

receive a second media status from one of the first, second, or third clients while the first, second, and third clients are in a relay mode with the TURN server; and

forward the second media status to the others of the first, second, or third clients.

12. The computer-readable storage medium of claim 11 , comprising instructions that when executed, cause the MWS to: receive a peer to peer (P2P) ping message from one of the first client or the second client while the first client and the second client are in the peer-to-peer mode; and forward the P2P ping message to the other of the first client or the second client.

13. The computer-readable storage medium of claim 11 , comprising instructions that when executed, cause the MWS to:

receive a second join request from a third client, wherein the third client is associated with a same user associated with the first client or the second client;

accept the join request from the third client; and

disconnect the other client associated with the same user.

14. The computer-readable storage medium of claim 11 , wherein the media status comprises an indication that a client has activated or deactivated one of: a video mode, a data mode, or an audio mode.

Assignments (2)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2017
From: YIU, TOMI; PICKETT, CAMERON JAMES; LI, NAIZHI; HO, CHI WANG; REDDAPPAGARI, PARAMA JYOTHI
To: FACEBOOK, INC.
Reel/Frame 041483/0478 →
Continuity (1)
Related Publication 20180048621A1 · Feb 15, 2018