IP Library Granted Patent US 10,701,026
Granted Patent B2
US 10,701,026 · App. 15/700,134 · Granted Jun 30, 2020

Instant messaging interoperability between disparate service providers

Inventors: Rajanikanth Vemulapelli (San Jose, CA); Ming Judy Lu (Sunnyvale, CA); Jayarama Kumar Kota (Mountain View, CA)
Assignee: Slack Technologies, Inc.
H04L51/36G06Q10/107H04L51/04H04L51/046H04L51/066H04L67/10H04L69/08
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,701,026
App. No.
15/700,134
Granted
Jun 30, 2020
Kind
B2
Abstract

An apparatus for facilitating instant messaging communications between clients of different instant messaging service provider networks is provided. The apparatus includes translation logic for translating received communications related to an instant messaging service, the received communications associated with an external instant messaging service provider network and formatted according to a secondary protocol. The translation logic translates the received communication from the secondary protocol to a primary protocol, the primary protocol native to a receiving service provider network. The communication may then be routed to a client of the primary network according to the native, primary protocol.

Claims (66)

1. An apparatus comprising a processor and memory, the memory storing processor-executable logic comprising:

interface logic that receives, at a stateless gateway server comprised within a primary service provider network, a communication, the communication related to a client of the primary service provider network and at least one of a plurality of external instant messaging service provider networks, the communication comprising a subscribe request and an unsubscribe request, the stateless gateway server having an associated buddy store, the associated buddy store comprising stored information related to primary network buddies of external users, the primary network buddies being associated with the primary service provider network, the external users being associated with the at least one of the plurality of external instant messaging service provider networks;

identifying logic that identifies, via the stateless gateway server, a primary network buddy associated with the client, the identified primary network buddy being identified upon a login to the primary service provider network;

interface logic that receives, at the stateless gateway server, upon the identification of the primary network buddy login, a set of subscription requests, said set of subscription requests comprising a subscription request from an external user to subscribe to a presence state of the logged-in primary network buddy, the set of subscription requests further comprising a subscription request from the client to subscribe to a presence state of the external user; and

subscribing logic that enacts, via the stateless gateway server, the subscription of the external user to the presence state of the logged-in primary network buddy and the subscription of the client to the presence state of the external user; and

presence data management logic that creates, at the stateless gateway server, for the client of the primary service provider network, a plurality of logical termination points that facilitate direct communication between the client of the primary service provider network and the at least one of the plurality of external instant messaging service provider networks.

2. The apparatus of claim 1 , wherein the memory further comprising:

session manager use logic that uses, at the stateless gateway server, a session manager as a centralized storage, the session manager storing information comprising a dialog state associated with the received communication.

3. The apparatus of claim 1 , wherein the interface logic that receives at least one of: the subscription request from the external users to subscribe to the presence states of the logged-in primary network buddy and the subscription request from the client to subscribe to the presence states of the external users comprising:

checking logic that checks, at the stateless gateway server, if a dialog already exists for the subscription to the presence states of the external users;

if the dialog exists:

refreshing logic that sends, at the stateless gateway server, the subscription request to the at least one of the plurality of external instant messaging service provider networks to refresh the subscription;

if the dialog does not exist:

creating logic that creates, at the stateless gateway server, a new dialog for the external users; and

sending logic that sends, at the stateless gateway server, the subscription request to the at least one of the plurality of external instant messaging service provider networks.

4. The apparatus of claim 1 , wherein the logged-in primary network buddy may perform at least one of blocking a contact, adding a new contact, and deleting a contact from the at least one of the plurality of external instant messaging service provider networks.

5. The apparatus of claim 1 , wherein the subscription request from the external users to subscribe to the presence states of the logged-in primary network buddy is authorized against the associated buddy store.

6. The apparatus of claim 1 , wherein the memory further comprising:

notification logic that issues, at the stateless gateway server, upon successfully subscription of the external users, an initial presence notification for delivering to the client of the primary service provider network.

7. The apparatus of claim 1 , wherein at least one of the external users has a buddy list comprising at least one client of the primary service provider network.

8. The apparatus of claim 7 , wherein the interface logic that receives at least one of the subscription request from the external users to subscribe to the presence states of the logged-in primary network buddy and the subscription request from the client to subscribe to the presence states of the external users comprising:

checking logic that checks, at the stateless gateway server, if the client of the primary service provider network is on the buddy list of the at least one of the external users;

if the client is not on the buddy list:

interpreting logic that interprets, at the stateless gateway server, the subscription request as an add buddy request;

if the client is on the buddy list but pending for approval:

offline notification logic that sends, at the stateless gateway server, an OK response followed by an offline notification to the stateless gateway server; and

if the client is an active buddy of the buddy list:

adding logic that sends, at the stateless gateway server, a request to the primary service provider network to add the at least one of the external users to the client's reverse buddy list.

9. The apparatus of claim 1 , wherein the memory further comprising:

unsubscribing logic that allows, at the stateless gateway server, an unsubscription of the external user to presence states of a logged-off client.

10. A method comprising:

receiving, at a stateless gateway server comprised within a primary service provider network, a communication, the communication related to a client of the primary service provider network and at least one of a plurality of external instant messaging service provider networks, the communication comprising a subscribe request and an unsubscribe request, the stateless gateway server having an associated buddy store, the associated buddy store comprising stored information related to primary network buddies of external users, the primary network buddies being associated with the primary service provider network, the external users being associated with the at least one of the plurality of external instant messaging service provider networks;

identifying, via the stateless gateway server, a primary network buddy associated with the client, the identified primary network buddy being identified upon a login to the primary service provider network;

receiving, at the stateless gateway server, upon the identification of the primary network buddy login, a set of subscription requests, said set of subscription requests comprising a subscription request from an external user to subscribe to a presence state of the logged-in primary network buddy, the set of subscription requests further comprising a subscription request from the client to subscribe to a presence state of the external user;

enacting, via the stateless gateway server, the subscription of the external user to the presence state of the logged-in primary network buddy and the subscription of the client to the presence state of the external user; and

creating, at the stateless gateway server, for the client of the primary service provider network, a plurality of logical termination points that facilitate direct communication between the client of the primary service provider network and the at least one of the plurality of external instant messaging service provider networks.

11. The method of claim 10 , further comprising:

using, at the stateless gateway server, a session manager as a centralized storage, the session manager storing information comprising a dialog state associated with the received communication.

12. The method of claim 10 , wherein receiving at least one of: the subscription request from the external users to subscribe to the presence states of the logged-in primary network buddy and the subscription request from the client to subscribe to the presence states of the external users comprising:

checking, at the stateless gateway server, if a dialog already exists for the subscription to the presence states of the external users;

if the dialog exists:

sending, at the stateless gateway server, the subscription request to the at least one of the plurality of external instant messaging service provider networks to refresh the subscription;

if the dialog does not exist:

creating, at the stateless gateway server, a new dialog for the external users; and

sending, at the stateless gateway server, the subscription request to the at least one of the plurality of external instant messaging service provider networks.

13. The method of claim 10 , further comprising:

issuing, at the stateless gateway server, upon successfully subscription of the external users, an initial presence notification for delivering to the client of the primary service provider network.

14. The method of claim 10 , wherein at least one of the external users has a buddy list comprising at least one client of the primary service provider network.

15. The method of claim 10 , wherein receiving at least one of: the subscription request from the external users to subscribe to the presence states of the logged-in primary network buddy and the subscription request from the client to subscribe to the presence states of the external users comprising:

checking, at the stateless gateway server, if the client of the primary service provider network is on the buddy list of the at least one of the external users;

if the client is not on the buddy list:

interpreting, at the stateless gateway server, the subscription request as an add buddy request;

if the client is on the buddy list but pending for approval:

sending, at the stateless gateway server, an ok response followed by an offline notification to the stateless gateway server; and

if the client is an active buddy of the buddy list:

sending, at the stateless gateway server, a request to the primary service provider network to add the at least one of the external users to the client's reverse buddy list.

16. The method of claim 10 , further comprising:

allowing, at the stateless gateway server, an unsubscription of the external user to presence states of a logged-off client.

17. A non-transitory computer-readable storage medium tangibly encoded with computer-executable instructions, that when executed by a stateless gateway server, perform a method comprising:

receiving, at a stateless gateway server comprised within a primary service provider network, a communication, the communication related to a client of the primary service provider network and at least one of a plurality of external instant messaging service provider networks, the communication comprising a subscribe request and an unsubscribe request, the stateless gateway server having an associated buddy store, the associated buddy store comprising stored information related to primary network buddies of external users, the primary network buddies being associated with the primary service provider network, the external users being associated with the at least one of the plurality of external instant messaging service provider networks;

identifying, via the stateless gateway server, a primary network buddy associated with the client, the identified primary network buddy being identified upon a login to the primary service provider network;

receiving, at the stateless gateway server, upon the identification of the primary network buddy login, a set of subscription requests, said set of subscription requests comprising a subscription request from an external user to subscribe to a presence state of the logged-in primary network buddy, the set of subscription requests further comprising a subscription request from the client to subscribe to a presence state of the external user;

enacting, via the stateless gateway server, the subscription of the external user to the presence state of the logged-in primary network buddy and the subscription of the client to the presence state of the external user; and

creating for the client of the primary service provider network, a plurality of logical termination points that facilitate direct communication between the client of the primary service provider network and the at least one of the plurality of external instant messaging service provider networks.

18. The non-transitory computer-readable storage medium of claim 17 , further comprising:

issuing upon successfully subscription of the external users, an initial presence notification for delivering to the client of the primary service provider network.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2020
From: EXCALIBUR IP, LLC
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 051761/0307 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: VEMULAPALLI, RAJANIKANTH; LU, MING JUDY; KOTA, JAYARAMA KUMAR
To: YAHOO! INC.
Reel/Frame 043775/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 044117/0172 →
Continuity (4)
Continuation 14733501 · Jun 8, 2015
Continuation 11528753 · Sep 27, 2006
Provisional Application 60724577 · Oct 7, 2005
Related Publication 20170374012A1 · Dec 28, 2017