IP Library Granted Patent US 9,871,930
Granted Patent B2
US 9,871,930 · App. 13/655,013 · Granted Jan 16, 2018

Call invites

Inventors: Marek Laasik (Tallinn, EE); Mihails Velenko (Riga, LV); Sergei Zolotarjov (Tallinn, EE); Carl Stefke Olivier (London, GB)
Assignee: Microsoft Technology Licensing, LLC
H04M7/0057H04L65/1069H04L65/1096H04L67/26
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,871,930
App. No.
13/655,013
Granted
Jan 16, 2018
Kind
B2
Abstract

A network node, computer program product and method establishing a call between a caller and a callee over a network. Multiple versions of a call invite are sent for establishing the call between a caller client of the caller and one or more callee clients implemented at one or more callee terminals of the callee. The multiple versions of the call invite are sent over a plurality of different delivery mechanisms. One of the delivery mechanisms comprises a push notification on a push channel.

Claims (55)

1. A network node configured to participate in establishment of a call between a caller and a callee over a network, the network node comprising:

a call controller configured to:

receive a call invite from a caller client of the caller;

generate a push notification request based on the received call invite; and

send the push notification request to a push notification hub;

the push notification hub configured to:

send multiple versions of the call invite with a same call identifier to a single callee client for establishing the call between the caller client and the single callee client implemented at a single callee terminal of the callee;

receive the push notification request from the call controller;

determine whether the callee has registered for push notifications;

responsive to the determination that the callee has registered for the push notifications:

send a first version of the call invite with the same call identifier, to the single callee client at the callee terminal, using an operating system based push notification via an operating system based push channel; and

send, to a push notification service, a request to send a second version of the call invite with the same call identifier, to the single callee client at the callee terminal, using an application layer push notification via an application layer push channel.

2. The network node of claim 1 , wherein the multiple versions of the call invite are sent to respective different callee clients implemented at different callee terminals.

3. The network node of claim 1 , wherein the network node is a caller terminal at which the caller client is implemented.

4. The network node of any of claim 1 , wherein the network node is a controller network element.

5. The network node of claim 4 , wherein the controller network element further comprises:

a missed call register configured to store information relating to missed calls for the callee, wherein if none of the multiple versions of the call invite are answered, the missed call register is updated to store information relating to the call as a missed call for the callee.

6. The network node of claim 5 , wherein the controller network element is configured to receive a missed call query from one of the callee clients, and in response send information stored in the missed call register relating to missed calls for the callee to the one of the callee clients.

7. The network node of claim 6 , wherein the controller network element is further configured to send a message to the one or more callee clients to update a missed call badge which is to be output in a user interface of the single callee client, said missed call badge indicating the number of missed calls for the callee for which information is stored in the missed call register.

8. The network node claim 7 , wherein if any of the multiple versions of the call invite are answered, the missed call register is prevented from being updated to store details of the call as a missed call for the callee.

9. The network node of claim 1 , wherein each of the multiple versions of the call invite includes the same call identifier of the call invite.

10. The network node of claim 1 , wherein the network node is configured to cancel any outstanding versions of the call invite after a predetermined timeout time.

11. A computer-readable memory comprising stored instructions executable by a processing apparatus of a network node of a network to perform operations comprising:

receiving, at a call controller, a call invite from a caller client of a caller, the call invite including a call identifier;

generating a push notification request based on said receiving the call invite;

sending the push notification request from the call controller to a push notification hub;

sending multiple versions of the call invite to a single callee client for establishing a call between the caller client and the single callee client implemented at a callee terminal of a callee, said sending comprising:

receiving the push notification request from the call controller;

determining whether the callee has registered for push notifications;

responsive to said determining that the callee has registered for the push notifications:

sending a first version of the call invite with the call identifier, to the single callee client at the callee terminal, using an operating system based push notification via an operating system based push channel; and

sending, to a push notification service, a request to send a second version of the call invite with the call identifier, to the single callee client at the callee terminal, using an application layer push notification via an application layer push channel.

12. The computer-readable memory of claim 11 , wherein the multiple versions of the call invite are sent to respective different callee clients implemented at different callee terminals.

13. The computer-readable memory of claim 11 , wherein the network node is a caller terminal, and the stored instructions are executable on the caller terminal to implement the caller client.

14. The computer-readable memory of claim 11 , wherein the network node is a controller network element, and the stored instructions are executable on the controller network element to perform operations of:

receiving the call invite from a caller terminal at which the caller client is implemented; and

generating said multiple versions of the call invite based on the received call invite.

15. The computer-readable memory of claim 11 , wherein the stored instructions are further executable to cancel any outstanding versions of the call invite either when one of the versions of the call invite is answered, or after a predetermined timeout time.

16. A method of establishing a call between a caller and a callee over a network, the method comprising:

receiving, at a call controller, a call invite from a caller client of the caller, the call invite including a call identifier;

generating a push notification request based on said receiving the call invite;

sending the push notification request from the call controller to a push notification hub;

sending multiple versions of the call invite to a single callee client for establishing a call between the caller client and the single callee client implemented at a callee terminal of a callee, said sending comprising:

receiving the push notification request from the call controller;

determining whether the callee has registered for push notifications;

responsive to said determining that the callee has registered for the push notifications:

sending a first version of the call invite with the call identifier, to the single callee client at the callee terminal, using an operating system based push notification via an operating system based push channel; and

sending, to a push notification service, a request to send a second version of the call invite with the call identifier, to the single callee client at the callee terminal, using an application layer push notification via an application layer push channel.

17. The method of claim 16 , wherein the multiple versions of the call invite are sent to respective different callee clients implemented at different callee terminals.

18. The network node of claim 1 , wherein to generate the push notification request based on the received call invite, the call controller is further configured to:

resolve identifier information of the caller and/or the caller terminal to produce a user resolution; and

include the user resolution in a payload of the push notification request.

19. The network node of claim 18 , wherein the user resolution comprises one or more of: caller identification information that includes a username of the caller and an address of the caller terminal, and identification information of the caller that includes a display name of the caller, an avatar image of the caller, or an indication of a language, and wherein the push notification hub includes different information of the user resolution in the operating system based push notification than the application layer push notification.

20. The network node of claim 19 , wherein the push notification hub includes different information of the user resolution in the operating system based push notification than the application layer push notification.

21. The network node of claim 18 , wherein the resolution of the identifier information includes a permission check to determine if the caller has blocked call invites from the caller.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF LAASIK MAREK,VELENKO MIHAILS, ZOLOTARJOV SERGEI AND OLIVIER CARL STEFKE PREVIOUSLY RECORDED ON REEL 029155 FRAME 0387. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR (S) HERBY CONFIRMS THE CORRECT NAME AS MAREK LAASIK, MIHAILS VELENKO, SERGEI ZOLOTARJOV AND CARL STEFKE OLIVIER. Recorded May 17, 2013
From: LAASIK, MAREK; VELENKO, MIHAILS; ZOLOTARJOV, SERGEI; OLIVIER, CARL STEFKE
To: MICROSOFT CORPORATION
Reel/Frame 030440/0461 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2012
From: MAREK, LAASIK; MIHAILS, VELENKO; SERGEI, ZOLOTARJOV; STEFKE, OLIVIER CARL
To: MICROSOFT CORPORATION
Reel/Frame 029195/0279 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2012
From: MAREK, LAASIK; MIHAILS, VELENKO; SERGEI, ZOLOTARJOV; STEFKE, OLIVIER CARL
To: MICROSOFT CORPORATION
Reel/Frame 029155/0387 →
Priority Claims (1)
GB 1210600.1 · Jun 14, 2012 · national
Continuity (1)
Related Publication 20130336308A1 · Dec 19, 2013