IP Library Granted Patent US 11,778,104
Granted Patent B2
US 11,778,104 · App. 17/171,725 · Granted Oct 3, 2023

Systems and methods for suggesting contacts

Inventors: Jonathan Dennis Halk (Waterloo, CA); Derek Ting (Waterloo, CA)
Assignee: TEXTNOW, INC.
H04M7/0075H04L61/4535H04L61/4594H04W8/26H04L2101/65
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 11,778,104
App. No.
17/171,725
Granted
Oct 3, 2023
Kind
B2
Abstract

An example method of suggesting contacts in a communications routing system includes: routing, via a routing engine, communications events between a communications device and a plurality of further communications devices coupled to the communications routing system as VoIP calls using respective VoIP telephone numbers; storing, for a user account associated with the communications device, a contact database representing VoIP telephone numbers stored in a contact tracking application of the communications device; storing, in the contact database for the user account, a log of communications events including a record for each new telephone number; and when the record for a new telephone number satisfies a threshold condition, providing a prompt, at the communications device, to add the new telephone number to the contact tracking application.

Claims (43)

1. A communications routing system comprising:

a contacts database to store for a user account:

telephone numbers associated with contacts of the user account; and

a record of past communications events relating to a new telephone number not stored in the contacts database;

a routing engine to:

detect a communications event between the user account and the new telephone number;

add the communications event to the record; and

when the record satisfies a threshold condition, provide a prompt to a communications device associated with the user account to add the telephone number to the contacts database.

2. The communications routing system of claim 1 , wherein the threshold condition comprises one or more of:

a number of communications events with the new telephone number in the record exceeding a threshold number;

a frequency of communications events with the new telephone number in the record exceeding a threshold frequency;

the communications events with the new telephone number in the record satisfying a predefined distribution of communication events; and

an attribute of one of the communications events satisfying a corresponding attribute condition.

3. The communications routing system of claim 1 , wherein the routing engine is configured to:

determine whether a voice call exceeds a predetermined duration; and

add the voice call as a communications event to the record only when the voice call exceeds the predetermined duration.

4. The communications routing system of claim 1 , wherein the contacts database is configured to store the record for a predetermined period of time on a rolling basis, wherein data received prior to the predetermined period of time is deleted.

5. The communications routing system of claim 1 , wherein the record comprises data fields for individual communications event with the new telephone number and data fields to store aggregate data for each type of communications event.

6. The communications routing system of claim 1 , wherein the contacts database is further to store a last suggested date for the new telephone number; and wherein the routing engine is to provide the prompt only when the last suggested date is outside a predetermined minimum suggestion cool down period.

7. The communications routing system of claim 1 , wherein, in response to a negative response to the prompt, the contacts database is to store a current date as a last suggested date in association with the telephone number.

8. The communications routing system of claim 1 , wherein, in response to an affirmative response to the prompt, the contacts database is to add the new telephone number and contact information associated with the new telephone number as a contact.

9. The communications routing system of claim 1 , wherein, in response to a negative response to the prompt, if a last suggested date has a value, the routing engine is to block the new telephone number from being suggested.

10. A non-transitory machine-readable storage medium storing instructions to:

store, in a contacts database for a user account:

telephone numbers associated with contacts of the user account; and

a record of past communications events relating to a new telephone number not stored in the contacts database;

detect a communications event between the user account and the new telephone number;

add the communications event to the record; and

when the record satisfies a threshold condition, provide a prompt to a communications device associated with the user account to add the telephone number to the contacts database.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the threshold condition comprises one or more of:

a number of communications events with the new telephone number in the record exceeding a threshold number;

a frequency of communications events with the new telephone number in the record exceeding a threshold frequency;

the communications events with the new telephone number in the record satisfying a predefined distribution of communication events; and

an attribute of one of the communications events satisfying a corresponding attribute condition.

12. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions are further to:

determine whether a voice call exceeds a predetermined duration; and

add the voice call as a communications event to the record only when the voice call exceeds the predetermined duration.

13. The non-transitory machine-readable storage medium of claim 10 , wherein the contacts database is configured to store the record for a predetermined period of time on a rolling basis, wherein data received prior to the predetermined period of time is deleted.

14. The non-transitory machine-readable storage medium of claim 10 , wherein the record comprises data fields for individual communications event with the new telephone number and data fields to store aggregate data for each type of communications event.

15. The non-transitory machine-readable storage medium of claim 10 , wherein the contacts database is further to store a last suggested date for the new telephone number; and wherein the routing engine is to provide the prompt only when the last suggested date is outside a predetermined minimum suggestion cool down period.

16. The non-transitory machine-readable storage medium of claim 10 , wherein, in response to a negative response to the prompt, the contacts database is to store a current date as a last suggested date in association with the telephone number.

17. The non-transitory machine-readable storage medium of claim 10 , wherein, in response to an affirmative response to the prompt, the contacts database is to add the new telephone number and contact information associated with the new telephone number as a contact.

18. The non-transitory machine-readable storage medium of claim 10 , wherein, in response to a negative response to the prompt, if a last suggested date has a value, the routing engine is to block the new telephone number from being suggested.

Assignments (2)
SECURITY INTEREST Recorded Aug 29, 2025
From: TEXTNOW, INC.
To: JPMORGAN CHASE BANK, N.A., TORONTO BRANCH
Reel/Frame 072749/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: HALK, JONATHAN DENNIS; TING, DEREK
To: TEXTNOW, INC.
Reel/Frame 063899/0765 →
Continuity (3)
Continuation 16808947 · Mar 4, 2020
Provisional Application 62813938 · Mar 5, 2019
Related Publication 20210168242A1 · Jun 3, 2021