IP Library Granted Patent US 8,107,612
Granted Patent B2
US 8,107,612 · App. 12/116,796 · Granted Jan 31, 2012

Distributed session-based data

Assignee: ShoreTel, Inc.
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 8,107,612
App. No.
12/116,796
Granted
Jan 31, 2012
Kind
B2
Abstract

Session-based data, such as call detail accounting information, is tracked and distributed to a plurality of servers in a distributed telephony environment. One type of session is a telephone call between participants. Session-based data includes information about a session provided by the switches along the media path. Session-based data further includes information related to the session obtained from the application layer (e.g., user input metadata). A network proxy maintains a participant list to which the session data is distributed. The network proxy sends updates to the participants and determines the network status to implement fault tolerance of data distribution.

Claims (83)

1. A method for distributing call data, the method comprising:

sending, from a first server, a first registration request including a call identifier of a call to a second server designated as an owning server;

receiving call data for the call from the second server;

determining that the owning server has failed; and

responsive to determining that the owing owning server has failed, designating the first server as the owning server.

2. The method of claim 1 comprising:

receiving a second registration request from a third server; and

registering the second registration request.

3. The method of claim 2 comprising sending the call data to the third server once the third server has been registered.

4. The method of claim 3 wherein sending the call data to the third server comprises:

determining whether the call data had been previously received; and

responsive to a determination that the call data had not been previously received, sending the call data to the third server.

5. The method of claim 4 wherein determining whether the call data had been previously received comprises determining whether a timestamp assigned to the call data matches a timestamp assigned to call data that had been previously received.

6. The method of claim 5 wherein the timestamp assigned to the call data is calculated by adding a time difference between a first timestamp of the first server and a second timestamp of second server to the timestamp assigned to the call data.

7. The method of claim 1 comprising:

receiving, at the owning server, an end of session message; and

writing the call data to a database responsive to the end of session message.

8. The method of claim 2 comprising:

receiving, at the third server, the call data; and

storing the call data in a local data store of the third server.

9. The method of claim 1 wherein determining that the owning server has failed comprises monitoring network health of the owning server.

10. The method of claim 9 wherein determining that the owning server has failed comprises determining that the first server has not received an alive message from the owning server for a predetermined amount of time.

11. A method for distributing call data, the method comprising:

receiving, at an owning server, from a participant, a registration request including a call identifier;

receiving, at the owning server, from at least one of a switch and an application, call data associated with the call identifier;

determining that the participant has failed;

determining that the participant has come back alive; and

updating the participant with required call data.

12. The method of claim 11 wherein determining that the participant has failed comprises determining that the owning server has not received an alive message from the participant for a predetermined amount of time.

13. The method of claim 11 wherein determining that the participant has come back alive comprises receiving an alive message from the participant.

14. The method of claim 11 wherein updating the participant with the required call data comprises:

determining a first timestamp for most recent call data received by the participant;

determining a second timestamp for most recent call data in a local database of the owning server; and

sending to the participant the required call data with an intermediary timestamp between the first timestamp and the second timestamp.

15. A method for distributing call data, the method comprising:

registering, at an owning server, a participant for a call;

determining, at the owning server, that the participant has unregistered for the call;

determining, at the owning server, that no other participants are registered for the call; and

setting an end of call status.

16. The method of claim 15 wherein registering, at the owning server, the participant for the call comprises registering the participant within a local database.

17. The method of claim 16 wherein registering, at the owning server, the participant for the call comprises:

determining whether the participant has already been registered with the local database; and

registering the participant if the participant has not already been registered.

18. The method of claim 15 wherein determining, at the owning server, that the participant has unregistered for the call comprises receiving an unregistration request from the participant.

19. The method of claim 15 wherein determining, at the owning server, that the participant has unregistered for the call comprises determining that the owning server has not received an alive message from the participant for a predetermined amount of time.

20. The method of claim 15 wherein determining, at the owning server, that no other participants are registered for the call comprises querying a local database to determine that no other participants are registered for the call.

21. The method of claim 15 wherein determining, at the owning server, that no other participants are registered for the call comprises checking a variable or a bit field to determine that no other participants are registered for the call.

22. The method of claim 15 wherein setting the end of call status comprises waiting for a predetermined amount of time before setting the end of call status.

23. The method of claim 22 wherein setting the end of call status comprises setting the end of call status only if one or more participant has not registered for the call after the predetermined amount of time.

24. A method for distributing call data, the method comprising:

receiving, at a server, from a participant, a registration request including a call identifier;

receiving, at the server, from at least one of a switch and an application, call data associated with the call identifier; and

sending the call data to the participant.

25. The method of claim 24 further comprising:

receiving, at the server, an end of session message; and

writing the call data to a database responsive to the end of session message.

26. The method of claim 24 further comprising:

receiving, at the participant, the call data; and

storing the call data in a local data store.

27. The method of claim 26 wherein storing the call data in the local data store comprises:

determining whether the call data had been previously received; and

responsive to a determination that the call data had not been previously received, storing the call data in the local data store.

28. The method of claim 27 wherein determining whether the call data had been previously received comprises determining whether a timestamp assigned to the call data matches a timestamp assigned to call data that had been previously received.

29. The method of claim 28 wherein the timestamp assigned to the call data is calculated by adding a time difference between a first timestamp of the at least one of the switch and the application and a second time stamp of the server to the timestamp assigned to the call data.

30. The method of claim 26 comprising:

receiving, at the participant, supplemental call data from a local participant; and

sending the supplemental call data to the server.

31. The method of claim 30 wherein sending the supplemental call data to the server comprises:

determining whether the supplemental call data had been previously received; and

responsive to a determination that the supplemental call data had not been previously received, sending the supplemental call data to the server.

32. The method of claim 31 wherein determining whether the supplemental call data had been previously received comprises determining whether a timestamp assigned to the supplemental call data matches a timestamp assigned to supplemental call data that had been previously received.

33. The method of claim 32 wherein the timestamp assigned to the supplemental call data is calculated by adding a time difference between a first timestamp of the participant and a second timestamp of the server to a timestamp of timestamp assigned to the supplemental call data.

34. The method of claim 24 wherein the server includes an owning TMS process.

35. The method of claim 24 wherein the participant includes a participant TMS process.

36. An apparatus for distributing call data, the apparatus comprising:

an interface module configured to receive, at a server, from a participant, a registration request including a call identifier; and

an update module configured to receive, at the server, from at least one of a switch and an application, call data associated with the call identifier, and to send the call data to the participant.

37. The apparatus of claim 36 wherein the update module is further configured to receive, from the participant, the call data.

38. The apparatus of claim 37 comprising a storage module configured to store the call data in a local data store.

39. The apparatus of claim 38 wherein the interface module is further configured to receive an end of session message; and the storage module is configured to write the call data to a database responsive to the end of session message.

40. The apparatus of claim 39 wherein the update module is further configured to receive, at the participant, supplemental session data from a local participant; and to send the supplemental session data to the server.

41. The apparatus of claim 36 wherein the server includes an owning TMS process.

42. The apparatus of claim 36 wherein the participant includes a participant TMS process.

Assignments (24)
SECURITY INTEREST Recorded Jun 30, 2025
From: MLN US HOLDCO LLC; MITEL (DELAWARE), INC.; MITEL NETWORKS CORPORATION; MITEL NETWORKS, INC.
To: U.S. PCI SERVICES, LLC
Reel/Frame 071758/0843 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2025
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: MITEL (DELAWARE), INC.; MITEL COMMUNICATIONS, INC.; MITEL NETWORKS, INC.; MITEL NETWORKS CORPORATION
Reel/Frame 071712/0821 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: MITEL (DELAWARE), INC.; MITEL NETWORKS, INC.; MITEL NETWORKS CORPORATION
Reel/Frame 071730/0632 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2025
From: ANKURA TRUST COMPANY, LLC
To: MITEL (DELAWARE), INC.; MITEL COMMUNICATIONS, INC.; MITEL CLOUD SERVICES, INC.; MITEL NETWORKS, INC.; MITEL NETWORKS CORPORATION
Reel/Frame 071722/0721 →
SECURITY INTEREST Recorded Jun 20, 2025
From: MITEL (DELAWARE), INC.; MITEL NETWORKS CORPORATION; MITEL NETWORKS, INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 071676/0815 →
SECURITY INTEREST Recorded Mar 12, 2025
From: MITEL (DELAWARE), INC.; MITEL NETWORKS CORPORATION; MITEL NETWORKS, INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 070689/0857 →
NOTICE OF SUCCCESSION OF AGENCY - 3L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 070006/0268 →
NOTICE OF SUCCCESSION OF AGENCY - PL Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 069895/0755 →
NOTICE OF SUCCESSION OF AGENCY - 4L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ANKURA TRUST COMPANY, LLC
Reel/Frame 069896/0827 →
NOTICE OF SUCCCESSION OF AGENCY - 2L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 069896/0001 →
NOTICE OF SUCCESSION OF AGENCY - 5L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ANKURA TRUST COMPANY, LLC
Reel/Frame 069897/0046 →
SECURITY INTEREST Recorded Nov 1, 2022
From: MITEL (DELAWARE), INC.; MITEL NETWORKS, INC.; MITEL COMMUNICATIONS, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 061830/0760 →
SECURITY INTEREST Recorded Nov 1, 2022
From: MITEL (DELAWARE), INC.; MITEL NETWORKS, INC.; MITEL COMMUNICATIONS, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 061830/0643 →
SECURITY INTEREST Recorded Nov 1, 2022
From: MITEL (DELAWARE), INC.; MITEL NETWORKS, INC.; MITEL COMMUNICATIONS, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 061830/0715 →
SECURITY INTEREST Recorded Dec 13, 2018
From: MITEL NETWORKS, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047988/0478 →
SECURITY INTEREST Recorded Dec 13, 2018
From: MITEL NETWORKS, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047909/0814 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2018
From: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
To: SHORETEL, INC.
Reel/Frame 047713/0843 →
CHANGE OF NAME Recorded Oct 15, 2018
From: SHORELINE COMMUNICATIONS, INC.
To: SHORETEL, INC.
Reel/Frame 047225/0021 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2018
From: ROBESKY, KENNETH A
To: SHORELINE COMMUNICATIONS, INC.
Reel/Frame 046859/0301 →
CHANGE OF NAME Recorded Aug 17, 2018
From: SHORETEL, INC.
To: MITEL NETWORKS, INC.
Reel/Frame 046957/0381 →
MERGER AND CHANGE OF NAME Recorded Aug 17, 2018
From: SHORETEL, INC.; MITEL NETWORKS, INC.
To: SHORETEL, INC.
Reel/Frame 046857/0384 →
SECURITY INTEREST Recorded Sep 25, 2017
From: SHORETEL, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 043829/0711 →
RELEASE OF SECURITY INTEREST Recorded Sep 25, 2017
From: SILICON VALLEY BANK
To: SHORETEL, INC.
Reel/Frame 043993/0430 →
SECURITY INTEREST Recorded Oct 23, 2014
From: SHORETEL, INC.
To: SILICON VALLEY BANK
Reel/Frame 034038/0741 →
Continuity (2)
Continuation 10754424 · Jan 8, 2004
Related Publication 20080205622A1 · Aug 28, 2008