Language selection

Search

Patent 2906684 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2906684
(54) English Title: METHOD, SYSTEM AND APPARATUS FOR INITIATING AND PROCESSING COMMUNICATIONS IN AN INSTANT MESSSAGING APPLICATION
(54) French Title: METHODE, SYSTEME ET APPAREIL D'INITIATION ET DE TRAITEMENT DES COMMUNICATIONS DANS UNE APPLICATION DE MESSAGERIE INSTANTANEE
Status: Deemed Abandoned and Beyond the Period of Reinstatement - Pending Response to Notice of Disregarded Communication
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04L 51/04 (2022.01)
  • H04L 67/306 (2022.01)
  • H04W 04/12 (2009.01)
(72) Inventors :
  • BEST, CHRISTOPHER (Canada)
  • MACKENZIE, MICHAEL (Canada)
(73) Owners :
  • KIK INTERACTIVE INC.
(71) Applicants :
  • KIK INTERACTIVE INC. (Canada)
(74) Agent: GOWLING WLG (CANADA) LLP
(74) Associate agent:
(45) Issued:
(22) Filed Date: 2015-10-01
(41) Open to Public Inspection: 2017-04-01
Examination requested: 2020-10-01
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract


A method is provided of initiating communications, comprising: storing, in a
memory at a messaging server, a plurality of subscriber records, each
subscriber
record containing a subscriber identifier and a subscriber type indicator; a
first
subset of the subscriber records having a first subscriber type indicator, and
a
second subset of the subscriber records having a second subscriber type
indicator; determining, at the messaging seer, whether to generate initiation
data; when the determination is affirmative: selecting at least one of the
second
subset of the subscriber records; generating the initiation data, the
initiation data
including at least the subscriber identifier of the selected subscriber
record; and
transmitting the initiation data to a computing device corresponding to at
least
one of the first subset of subscriber records.


Claims

Note: Claims are shown in the official language in which they were submitted.


We claim:
1. A method of initiating communications, comprising:
storing, in a memory at a messaging server, a plurality of subscriber
records, each subscriber record containing a subscriber identifier and a
subscriber type indicator; a first subset of the subscriber records having a
first
subscriber type indicator, and a second subset of the subscriber records
having a
second subscriber type indicator;
determining, at the messaging server, whether to generate initiation data;
when the determination is affirmative:
selecting at least one of the second subset of the subscriber
records;
generating the initiation data, the initiation data including at least
the subscriber identifier of the selected subscriber record; and
transmitting the initiation data to a computing device corresponding
to at least one of the first subset of subscriber records.
2. The method of claim 1, wherein the determination comprises:
determining whether a request has been received at the messaging server
from the computing device.
3. The method of claim 2, the initiation data further comprising an
instruction
for causing the computing device to initiate a message exchange with the
messaging server.
4. The method of any one of claims 1 to 3, further comprising:
storing, in association with each subscriber record of the second subset,
at least one keyword.
5. The method of claim 4, further comprising:
determining whether a selection of a subscriber identifier has been
received from the computing device;
22

when the determination is affirmative:
retrieving the subscriber indicator type of the selected subscriber
identifier;
when the subscriber indicator type of the selected subscriber
identifier is the second subscriber indicator type, retrieving the at least
one
keyword corresponding to the selected subscriber identifier from the
memory; and
transmitting the at least one keyword to the computing device.
6. The method of claim 4, further comprising:
receiving a message from the computing device; the message containing
a destination subscriber identifier;
retrieving the subscriber type indicator of the destination subscriber
identifier;
when the subscriber type indicator is the second subscriber type indicator:
determining whether to respond to the message autonomously.
7. The method of claim 6, further comprising:
storing, in association with the at least one keyword, at least one response
message;
when the determination of whether to respond to the message
autonomously is affirmative:
retrieving the at least one keyword and the at least one response
message;
determining whether the message contains the at least one
keyword; and
when the message contains the at least one keyword, sending the
response message to the computing device.
8. The method of claim 7, further comprising:
23

responsive to receiving the message, storing the subscriber identifier
corresponding to the computing device in a contacts field associated with the
destination subscriber identifier.
9. The method of claim 7, further comprising:
responsive to receiving the message, updating the subscriber record
corresponding to the computing device.
10. The method of claim 9, wherein updating the subscriber record
corresponding to the computing device comprises updating an account balance.
11. A messaging server, comprising:
a memory storing a plurality of subscriber records, each subscriber record
containing a subscriber identifier and a subscriber type indicator; a first
subset of
the subscriber records having a first subscriber type indicator, and a second
subset of the subscriber records having a second subscriber type indicator;
a network interface; and
a processor interconnected with the memory and the network interface,
the processor configured to:
determine whether to generate initiation data;
when the determination is affirmative:
select at least one of the second subset of the subscriber
records;
generate the initiation data, the initiation data including at
least the subscriber identifier of the selected subscriber record; and
transmit the initiation data to a computing device
corresponding to at least one of the first subset of subscriber
records.
12. The messaging server of claim 11, wherein the determination comprises:
24

determining whether a request has been received at the messaging server
from the computing device.
13. The messaging server of claim 12, the initiation data further
comprising an
instruction for causing the computing device to initiate a message exchange
with
the messaging server.
14. The messaging server of any one of claims 11 to 13, the memory storing,
in association with each subscriber record of the second subset, at least one
keyword.
15. The messaging server of claim 14, the processor further configured to:
determine whether a selection of a subscriber identifier has been received
from the computing device;
when the determination is affirmative:
retrieve the subscriber indicator type of the selected subscriber
identifier;
when the subscriber indicator type of the selected subscriber
identifier is the second subscriber indicator type, retrieve the at least one
keyword corresponding to the selected subscriber identifier from the
memory; and
transmit the at least one keyword to the computing device.
16. The messaging server of claim 14, the processor further configured to:
receive a message from the computing device; the message containing a
destination subscriber identifier;
retrieve the subscriber type indicator of the destination subscriber
identifier;
when the subscriber type indicator is the second subscriber type indicator:
determine whether to respond to the message autonomously.

17. The messaging server of claim 16, the memory storing, in association
with
the at least one keyword, at least one response message;
the processor further configured, when the determination of whether to
respond to the message autonomously is affirmative, to:
retrieve the at least one keyword and the at least one response
message;
determine whether the message contains the at least one keyword;
and
when the message contains the at least one keyword, sending the
response message to the computing device.
18. The messaging server of claim 17, processor further configured to:
responsive to receiving the message, store the subscriber identifier
corresponding to the computing device in a contacts field associated with the
destination subscriber identifier.
19. The messaging server of claim 17, processor further configured to:
responsive to receiving the message, update the subscriber record
corresponding to the computing device.
20. The messaging server of claim 19, the processor further configured to
update the subscriber record corresponding to the computing device by updating
an account balance.
26

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02906684 2015-10-01
METHOD, SYSTEM AND APPARATUS FOR INITIATING AND PROCESSING
COMMUNICATIONS IN AN INSTANT MESSAGING APPLICATION
FIELD
[0001] The specification relates generally to messaging applications, and
specifically to a method, system and apparatus for initiating and processing
communications in an instant messaging application.
BACKGROUND
[0002] Communications services, such as instant messaging applications,
may be employed by a variety of users (e.g. individuals, businesses, and the
like). The ability of two users to exchange messages in such services
generally
requires at least one of the users to input an account name or other
identifier of
the other user. Searching for such account names to initiate communications
can
be an inefficient process.
[0003] Further, certain types of users, such as businesses operating
accounts
on communications services, may receive a substantial volume of incoming
message traffic. Processing and responding to such traffic can be
computationally demanding, and make inefficient use of available computational
resources.
SUMMARY
[0004] According to an aspect of the specification, a method is provided
of
initiating communications, comprising: storing, in a memory at a messaging
server, a plurality of subscriber records, each subscriber record containing a
subscriber identifier and a subscriber type indicator; a first subset of the
subscriber records having a first subscriber type indicator, and a second
subset
of the subscriber records having a second subscriber type indicator;
determining,
at the messaging server, whether to generate initiation data; when the
determination is affirmative: selecting at least one of the second subset of
the
1

CA 02906684 2015-10-01
A
subscriber records; generating the initiation data, the initiation data
including at
least the subscriber identifier of the selected subscriber record; and
transmitting
the initiation data to a computing device corresponding to at least one of the
first
subset of subscriber records.
[0005] According to another aspect of the specification, a messaging server
is
provided, comprising: a memory storing a plurality of subscriber records, each
subscriber record containing a subscriber identifier and a subscriber type
indicator; a first subset of the subscriber records having a first subscriber
type
indicator, and a second subset of the subscriber records having a second
subscriber type indicator; a network interface; and a processor interconnected
with the memory and the network interface, the processor configured to:
determine whether to generate initiation data; when the determination is
affirmative: select at least one of the second subset of the subscriber
records;
generate the initiation data, the initiation data including at least the
subscriber
identifier of the selected subscriber record; and transmit the initiation data
to a
computing device corresponding to at least one of the first subset of
subscriber
records.
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0006] Embodiments are described with reference to the following figures,
in
which:
[0007] FIG. 1 depicts a communications system, according to a non-
limiting
embodiment;
[0008] FIG. 2 depicts certain internal components of a mobile device
and a
messaging server of the system of FIG. 1, according to a non-limiting
embodiment;
[0009] FIG. 3 depicts a method of initiating communications in the
system of
FIG. 1, according to a non-limiting embodiment;
2

CA 02906684 2015-10-01
,
)
[0010] FIG. 4 depicts example interfaces displayed by a mobile
device of the
system of FIG. 1 during the performance of the method of FIG. 3, according to
a
non-limiting embodiment;
[0011] FIG. 5 depicts additional example interfaces displayed by
a mobile
device of the system of FIG. 1 during the performance of the method of FIG. 3,
according to a non-limiting embodiment;
[0012] FIG. 6 depicts a further method of initiating
communications in the
system of FIG. 1, according to a non-limiting embodiment;
[0013] FIG. 7 depicts example interfaces displayed by a mobile
device of the
system of FIG. 1 during the performance of the method of FIG. 6, according to
a
non-limiting embodiment;
[0014] FIG. 8 depicts a method of processing communications in
the system
of FIG. 1, according to a non-limiting embodiment;
[0015] FIG. 9 depicts the system of FIG. 1 during the performance
of the
method of FIG. 8, according to a non-limiting embodiment; and
[0016] FIG. 10 depicts a method of generating broadcast messages
in the
system of FIG. 1, according to a non-limiting embodiment.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0017] FIG. 1 depicts a communications system 100. System 100 includes a
plurality of mobile computing devices, of which two examples 104a and 104b are
shown (referred to generically as a mobile computing device 104 or a device
104,
and collectively as mobile computing devices 104 or devices 104). Additional
mobile computing devices (not shown) can be included in system 100. Each
mobile computing device 104 can be any of a cellular phone, a smart phone, a
tablet computer, and the like.
[0018] Mobile computing devices 104a and 104b are connected to a
network
108 via respective links 112a and 112b, which are illustrated as wireless
links but
can also be wired links, or any suitable combination of wired and wireless
links.
3

CA 02906684 2015-10-01
Network 108 can include any suitable combination of wired and wireless
networks, including but not limited to a Wide Area Network (WAN) such as the
Internet, a Local Area Network (LAN) such as a corporate data network, cell
phone networks, WiFi networks, WiMax networks and the like.
[0019] Via network 108, mobile computing devices 104 can communicate with
a messaging server 116 connected to network 108 via a link 118. Messaging
server 116 provides a messaging service to mobile computing devices 104. For
example, mobile computing device 104a can execute a messaging application for
sending and receiving messages to and from messaging server 116. In the
embodiments discussed herein, the messages sent and received by devices 104
are instant messages (IM, e.g. Internet Protocol-based messages). In other
embodiments, the messages can include any suitable combination of IM, Short
Message Service (SMS) messages, Multimedia Messaging Service (MMS)
messages and the like.
[0020] Messaging server 116 stores associations between messaging service
subscriber identifiers (e.g. account names) and identifiers of mobile
computing
devices 104 such as IP addresses, MAC addresses and the like. Messaging
server 116 can therefore receive a message from a device 104 (e.g. a message
sent from device 104a and addressed to the subscriber identifier associated
with
device 104b), look up the device identifier of the addressee (e.g. device 104-
b)
based on the subscriber identifier contained in the message, and route the
message via network 108 to the addressee (e.g. device 104b), as shown by a
message path 120. As will be discussed below in greater detail, messaging
server 116 can also route certain messages to other servers, or internally for
further processing at server 116 itself.
[0021] Messaging server 116 is also configured to respond to certain
messages autonomously. In other words, messaging server 116 can be
configured to operate as a chatbot by automatically responding to messages
received from mobile computing devices 104. For example, as shown in FIG. 1
by a message path 124, device 104b transmits a message to messaging server
4

CA 02906684 2015-10-01
116 and messaging server 116 generates and returns a response to device 104b
via network 108.
[0022] In addition
to the routing and autonomous response functionalities
mentioned above, messaging server 116 is configured to perform certain actions
to efficiently initiate communications (e.g. exchanges of instant messages)
between subscribers in system 100, and to perform additional processing on
such communications. In order to perform these actions, as will be discussed
in
greater detail below, messaging server 116 stores subscriber type indicators
in
connection with each of the above-mentioned subscriber identifiers.
[0023] Before a
detailed discussion of the operation of system 100 is
provided, certain components of a mobile computing device 104 (which, as noted
earlier, refers generically to any of devices 104a and 104b) and messaging
server 116 will be described with reference to FIG. 2.
[0024] Referring
now to FIG. 2, mobile computing device 104 includes a
central processing unit (CPU) 200, also referred to herein as processor 200,
interconnected with a memory 204. Memory 204 stores computer readable
instructions executable by processor 200, including a messaging application
208.
Processor 200 and memory 204 are generally comprised of one or more
integrated circuits (ICs), and can have a variety of structures, as will now
occur to
those skilled in the art (for example, more than one CPU can be provided).
Processor 200 executes the instructions of messaging application 208 to
perform, in conjunction with the other components of mobile computing device
104, various functions related to exchanging messages with messaging server
116.
[0025] Mobile computing device 104 also includes input devices
interconnected with processor 200, in the form of a touch screen 212. Mobile
computing device 104 can also include other input devices, such as any
suitable
combination of a camera, a microphone, a GPS receiver, and the like (not
shown). Mobile computing device 104 also includes output devices
interconnected with processor 200, including a display 216 integrated with
touch
5

CA 02906684 2015-10-01
screen 212. Other output devices can also be provided, such as a speaker (not
shown). Mobile computing device 104 also includes a network interface 220
interconnected with processor 200, which allows mobile computing device 104 to
connect to network 108 via a link 112 (e.g. link 112a, for device 104a).
Network
interface 220 thus includes the necessary hardware, such as radio
transmitter/receiver units, network interface controllers and the like, to
communicate over a link 112.
[0026] Messaging server 116 includes a central processing unit (CPU)
230,
also referred to herein as processor 230, interconnected with a memory 234.
Memory 234 stores computer readable instructions executable by processor 230,
including a routing application 238 and a promotion application 240. Processor
230 and memory 234 are generally comprised of one or more integrated circuits
(ICs), and can have a variety of structures, as will now occur to those
skilled in
the art (for example, more than one CPU can be provided). Processor 230
executes the instructions of applications 238 and 240 to perform, in
conjunction
with the other components of messaging server 116, various functions related
to
receiving and responding to messages from mobile computing devices 104. In
the discussion below of those functions, messaging server 116 is said to be
configured to perform those functions ¨ it will be understood that messaging
server 116 is so configured via the processing of the instructions in
applications
238 and 240 by the hardware components of messaging server 116 (including
processor 230 and memory 234).
[0027] Memory 234 also stores a subscriber database 242, which contains
data defining various subscriber records, as will be discussed below in
greater
detail. Also stored in memory 234 is an autonomous messaging database 246,
which contains data defining responses for use when server 116 operates as a
chatbot, as well as additional parameters to be discussed herein.
[0028] Messaging server 116 also includes a network interface 250
interconnected with processor 230, which allows messaging server 116 to
connect to network 108 via link 118. Network interface 250 thus includes the
6

CA 02906684 2015-10-01
necessary hardware, such as network interface controllers and the like, to
communicate over link 118. Messaging server 116 also includes input devices
interconnected with processor 230, such as a keyboard 254, as well as output
devices interconnected with processor 230, such as a display 258. Other input
and output devices (e.g. a mouse, speakers) can also be connected to processor
230. In some embodiments (not shown), keyboard 254 and display 258 can be
connected to processor 230 via network 108 and another computing device. In
other words, keyboard 254 and display 258 can be local (as shown in FIG. 2) or
remote.
[0029] Having
described certain internal components of devices 104 and
server 116, the actions performed by devices 104 and server 116 will be
discussed in greater detail.
[0030] Turning to
FIG. 3, a method 300 of initiating communications in an
instant messaging service is depicted. Method 300 will be described below in
connection with its performance in system 100, and particularly by server 116,
via the execution of application 240 by processor 230.
[0031] At block
305, server 116 is configured to store a plurality of subscriber
records in database 242. In general, each subscriber record defines a distinct
destination for messages (e.g. the above-mentioned instant messages) sent by
devices 104 and server 116 via the above-mentioned autonomous response
functionality. An example of database 242 is shown below in Table 1.
Table 1: Example Subscriber Database 242
Subscriber Subscriber Account
Routing Contact IDs
Identifier Type Balance
Alice Initiator 104a Acme_l nc 0
Bob Initiator 104b 0
Acme_Inc Target 116 Alice N/A
= = = =
7

CA 02906684 2015-10-01
[0032] As seen in Table 1, database 242 includes a plurality of
subscriber
records, each identifying an addressee to which instant messages can be
directed. Each subscriber record includes a unique subscriber identifier
employed to address messages within the instant messaging service provided by
server 116. Each subscriber record also includes routing information
corresponding to the subscriber identifier. As mentioned earlier, the routing
information identifies the physical destination (e.g. an IP address of a
mobile
device 104) to which messages addressed to the corresponding subscriber
identifier are routed by server 116. In the present example, messages
addressed
to the subscriber "Alice" are routed to device 104a. The routing information
can
include any of a variety of suitable device identifiers, including IP
addresses,
MAC addresses, and the like. As seen in Table 1, some subscriber records, such
as the record for the subscriber "Acme", can route incoming messages to server
116 itself ¨ that is, messages need not be routed to mobile devices 104.
[0033] The subscriber identifier and routing information permit server 116
to
receive and route messages via the execution of routing application 238. In
addition, each subscriber record in database 242 includes a subscriber type
indicator. As noted earlier, server 116 can perform various actions to
initiate
message exchanges between subscribers in system 100. For each pair of
subscribers that begin exchanging messages, one subscriber will initiate the
exchange (i.e. send the first message of the exchange), and the other will be
the
target of the initiation. The actions performed by server 116 in initiating
message
exchanges include sending certain data to subscribers; as will be seen below,
which data is sent to which subscribers to initiate communications depends in
part on the subscriber type indicators of those subscribers.
[0034] The subscriber type indicators thus divide the subscriber records
in
database 242 into "initiator" records and "target" records. For example, the
target
records may define subscribers operated by commercial entities (e.g. a
clothing
brand) that wish to prompt other subscribers (initiators) to initiate
communications with them. The initiator records, meanwhile, may define
8

CA 02906684 2015-10-01
subscribers operated by individuals that are potential customers of the
commercial entities.
[0035] Although the terms "initiator" and "target" are used in Table 1,
it is
contemplated that a wide variety of other subscriber type indicators can be
stored
in database 242 to divide the subscriber records therein into the above-
mentioned subsets. For example, a binary value can be employed, with "1"
indicating that the subscriber is an initiator, and "0" indicating that the
subscriber
is a target.
[0036] Each record in database 242 can also include one or more contact
identifiers. The contact identifiers contained in a given subscriber record
are the
subscriber identifiers of other subscribers with which the given subscriber
has
previously engaged in communications. In the example of Table, 1 it can be
seen
that the subscribers "Alice" and "Acme" have previously exchanged messages
with each other, while the subscriber "Bob" has not previously exchanged
messages with another subscriber.
[0037] In addition, each record in database 242 can include an account
balance. The nature of the account balance is not particularly limited. For
example, the account balance can represent a monetary balance, a balance of
points (such as loyalty points), or any of a variety of other currencies. In
the
present example, only subscriber records having the type indicator "standard"
include account balances. The records in database 242 can also include other
information not shown in Table 1, including, for example, a profile image for
each
subscriber record.
[0038] At block 310, server 116 is configured to determine whether to
generate initiation data for transmission to at least one subscriber. In
general,
initiation data includes data that is suitable for display at one or more
mobile
devices 104 (each corresponding to a subscriber record), and includes at least
one selectable element whose selection causes the mobile devices to initiate
communications with a particular subscriber.
9

CA 02906684 2015-10-01
[0039] In some embodiments, the determination at block 310 is a
determination of whether a request for initiation data has been received from
a
mobile device 104, such as mobile device 104b. As will be apparent below,
server 116 can perform multiple instances of block 310 and the subsequent
blocks of method 300 for different mobile devices 104.
[0040] The nature of the request from mobile device 104b (or any other
mobile device 104) is not particularly limited. For example, the request may
be
sent by mobile device 104b in response to selection of a selectable interface
element at mobile device 104b. Turning to FIG. 4A, mobile device 104b can be
configured to present an interface 400 on display 216 via the execution of
application 208. Interface 400, which can be the initial or "home" screen of
application 208, can include a first region 404 displaying a first selectable
option
408 whose selection (e.g. via touch screen 212) causes mobile device 104b to
display a search window (not shown). First region 404 also includes a second
selectable option 412 whose selection (e.g. via touch screen 212) causes
mobile
device 104b to request a list of target subscribers from server 116. Interface
400
can also include a second region 416 displaying the contacts of the subscriber
corresponding to device 104b (currently empty, as the subscriber "Bob" has no
contacts stored in database 242). The determination at block 310 can therefore
include a determination of whether a request for a list of target subscribers
has
been received from device 104b.
[0041] In some embodiments, device 104b can be configured to present a
different interface on display 216 via the execution of application 208. For
example, referring to FIG. 4B, a further interface 450 is illustrated.
Interface 450
includes regions 404 and 416 as described above. However, interface 450 also
includes a third region 420 containing an advertisement field 424. Device
104b,
upon (or prior to) presenting interface 450, can be configured to
automatically
send a request to server 116 for an advertisement to fill field 424. The
determination at block 310 can therefore include a determination of whether an
automated request for an advertisement has been received from device 104b.

CA 02906684 2015-10-01
[0042] When the determination at block 310 is negative (e.g. no request
has
been received from device 104b), the performance of method 300 remains at
block 310. When, on the other hand, the determination at block 310 is
affirmative,
the performance of method 300 proceeds to block 315.
[0043] At block 315, in response to a positive determination at block 315,
server 116 selects at least one target-type subscriber record (that is, a
record
having the subscriber type indicator "target" or any suitable equivalent
indicator).
The number of subscriber records selected, and which records are selected,
depends in part on the event resulting in the affirmative determination at
block
310. For example, when the event was a request from device 104b generated via
selection of the "promoted users" element 412 shown in FIG. 4A, server 116 can
be configured to select a plurality of, or even all, target-type subscribers
from
database 242. In other examples, when the event was a request for an
advertisement received from device 104b, server 116 can be configured to
select
a single target-type subscriber from database 242.
[0044] When the selection at block 315 is not a selection of a subset of
the
available target-type subscribers in database 242, which subset is selected
can
depend on a variety of factors. For example, server 116 can also store in
database 242 a location associated with each initiator-type subscriber. Such
locations can be, for example, reported by devices 104. Target-type subscriber
records in database 242 can include preferred locations, and at block 315
server
116 can be configured to select the target-type subscribers whose preferred
locations most closely match the current location of the mobile device 104
(device 104b, in the present example) whose request led to the performance of
block 315. In other embodiments, database 242 can also contain other
demographic data (e.g. age, gender and the like) for initiator-type
subscribers, as
well as corresponding demographic preferences for target-type subscribers.
Server 116 can be configured to match such demographic data and demographic
preferences to select target-type subscribers at block 315 based on the
subscriber whose request caused the affirmative determination at block 310.
11

CA 02906684 2015-10-01
[0045] Continuing with the examples mentioned earlier, when the device
request was generated via the selection of element 412 (as discussed in
connection with FIG. 4A), server 116 can be configured to select all available
target-type subscribers in database 242. When the device request was
generated via the presentation of advertisement field 424 (as discussed in
connection with FIG. 4B), server 116 can be configured to select a single
target-
type subscriber.
[0046] Having selected at least one target-type subscriber at block 315,
at
block 320 server 116 is configured to generate and send initiation data to a
mobile device 104. In particular, the initiation data is sent to the mobile
device
104 whose request led to the affirmative determination at block 310 (that is,
device 104b in the present example).
[0047] The initiation data includes at least the subscriber identifier
of each
target-type subscriber record selected at block 315. The initiation data can
also
include other data, such as the above-mentioned profile images. The initiation
data can also include an instruction for causing application 208 to initiate a
message exchange upon selection of the initiation data at mobile device 104b.
[0048] Turning now to FIGS. 5A and 5B, the outcome of two alternative
performances of block 320 are illustrated. FIG. 5A illustrates the result, at
device
104b, of the performance of block 320 following the selection of element 412
from FIG. 4A. In particular, the selection of element 412 causes device 104b
(via
execution of application 208) to present a further interface 500 in which a
listing
of target-type subscribers is presented. The target-type subscribers presented
in
interface 500 are received from server 116 following their selection and
transmittal by server 116 at blocks 315 and 320. As seen in FIG. 5A, interface
500 includes a selectable element 504 identifying the target-type subscriber
Acme Inc. Element 504 is selectable for initiating an exchange of messages
with
Acme_Inc, as will be described below in greater detail. Thus, the initiation
data
received at device 104b from server 116 also included an instruction to render
the initiation data as a selectable element.
12

CA 02906684 2015-10-01
[0049] Turning to FIG. 5B, an example result of the advertisement
request
discussed in connection with FIG. 4B is illustrated. In particular, an updated
interface 450' is shown, in which an updated region 420' includes an updated
advertisement field 424'. In contrast to field 424 shown in FIG. 4B, field
424'
includes an identifier of the target-type subscriber Acme_Inc, which is
selectable
(e.g. via touch screen 212) to initiate an exchange of messages between the
subscribers Bob and Acme_Inc.
[0050] Referring briefly to FIG. 3, following the performance of block
320,
server 116 is configured to determine, at block 325, whether a selection of a
subscriber identifier has been received from a device 104. When the
determination at block 325 is negative, the performance of method 300 returns
to
block 310. When the determination at block 325 is affirmative, however, server
116 is configured to perform additional actions, as shown in FIG. 6.
[0051] Referring now to FIG. 6, a further method 600 of initiating
communications in an instant messaging service is depicted. Method 600 will be
described below in connection with its performance in system 100, and
particularly by server 116, via the execution of application 240 by processor
230.
The performance of method 600 as described below follows the performance of
method 300. However, in other embodiments method 600 can be performed
independently of method 300.
[0052] At block 605, server 116 is configured to receive a message from a
device 104 indicating that a subscriber identifier has been selected at that
device
104 for initiating an exchange of instant messages. For example, the message
received at block 605 can be sent by device 104b following the selection of
element 504 in FIG. 5A, or field 424' in FIG. 5B.
[0053] Following the receipt of the selected subscriber identifier,
server 116 is
configured to retrieve the subscriber type indicator of the selected
subscriber
identifier. In particular, server 116 is configured to retrieve the type
indicator from
database 242. Therefore, continuing with the present example performance of
13

CA 02906684 2015-10-01
method 600, server 116 is configured to retrieve the subscriber type indicator
corresponding to the subscriber identifier Acme_Inc.
[0054]
From block 610, server 116 is configured to proceed to block 615 when
the subscriber type indicator of the selected subscriber is "initiator". At
block 615,
server 116 simply awaits the receipt of a message addressed to a subscriber
before proceeding to message handling functionality described below in
connection with FIG. 8.
[0055]
Server 116 is also configured to proceed to block 620 rather than block
615 when the type indicator retrieved at block 610 is "target". At block 620,
server
116 is configured to retrieve at least one keyword corresponding to the
selected
subscriber identifier from autonomous messaging database 246. An example of
database 246 is shown below, in Table 2.
Table 2: Example Autonomous Messaging Database 246
Subscriber identifier Keywords Responses
Acme_Inc anvil
What kind of anvil do you
need?
dynamite
Sorry, we're all out of
dynamite
[0056] As seen above, database 246 contains a record corresponding to
each target-type subscriber defined in database 242. Therefore, a single
record
is shown in Table 2, corresponding to the subscriber Acme_Inc. In addition to
the
subscriber identifier, database 246 can include one or more keywords
corresponding to the subscriber identifier, and one or more response messages
corresponding to each keyword. The processing of response messages will be
described later herein. At block 620, server 116 is configured to retrieve the
keywords associated with the subscriber Acme_Inc (that is, the keywords
"anvil"
and "dynamite"). At block 625, server 116 is configured to transmit the
selected
keywords to the device from which the selection at block 605 was received
(device 104b, in the present example). Following the performance of block 625,
14

CA 02906684 2015-10-01
server 116 is configured to await the receipt of a message addressed to a
subscriber at block 615.
[0057] Turning to FIGS. 7A and 7B, illustrations of the results of
method 600
are provided. FIG. 7A depicts an interface 700 presented by device 104b on
display 216 following the selection of, for example, element 504 shown in FIG.
5A. Interface 700 includes a virtual keyboard 704 for typing a message in a
message area 708. Interface also includes selectable keyword elements 712 and
716, displaying the keywords received from server 116. Elements 712 and 716
are selectable at device 104b to insert the corresponding keywords into a
message in area 708 (without the need to type the keywords via virtual
keyboard
704).
[0058] In contrast, FIG. 7B depicts an interface 750 presented at device
104b
for composing a message to the subscriber Alice rather than the subscriber
Acme Inc. Since Alice is an initiator-type subscriber, server 116 did not
select
and send any keywords to device 104b through the performance of method 600.
Therefore, while interface 750 includes virtual keyboard 704 and message
composition area 708, interface 750 does not include any selectable keyword
elements, because no keywords were received at device 104b from server 116.
[0059] As noted earlier, following the provision of keywords to mobile
device
104b, server 116 is configured to await the receipt of a message from device
104b for delivery to another subscriber. The process of receiving, routing and
responding to messages will now be discussed in connection with FIG. 8.
[0060] FIG. 8 depicts a method 800 of processing communications, such as
instant messages. Method 800 will be described in connection with its
performance in system 100, and particularly by server 116. As illustrated in
FIG.
8, method 800 can follow a performance of method 600. However, it is
contemplated that methods 600 and 800 can also be performed independently,
and method 600 need not be implemented in order to implement method 800.
[0061] At block 805, server 116 is configured to receive a message, such
as
an instant message, from a mobile device 104. The message contains at least a

CA 02906684 2015-10-01
destination subscriber identifier (i.e. an addressee). The message can also
contain an originator subscriber identifier and a message body, which can
include image data, text, or both image data and text. For example, referring
to
FIG. 9, an example message 900 ¨ addressed to the subscriber Acme_Inc ¨ is
shown being transmitted from mobile device 104b to server 116, via network
108.
[0062]
Upon receipt of the message at block 805, server 116 can be
configured to insert the subscriber identifier of the message's originator
into the
contacts field of database 242 for the message's destination subscriber.
[0063]
Returning to FIG. 8, responsive to receiving the message, server 116
is configured to retrieve the subscriber type indicator of the destination
subscriber
identifier in the message. Thus, in the present example, server 116 is
configured
to retrieve, from database 242, the type indicator of Acme_Inc. When the
subscriber type indicator is "initiator", the performance of method 800
proceeds
to block 815, at which routing information is retrieved from database 242 and
the
message is routed to its destination. In other words, at block 815
conventional
message routing is performed.
[0064] On the other hand, when (as with message 900) the subscriber type
indicator of the addressee is "target", server 116 performs block 820 rather
than
block 815. At block 820, server 116 is configured to determine whether or not
to
respond autonomously to the message. In some embodiments, server 116 can
determine, prior to block 820, whether to route the message to another server,
which will perform the remainder of method 800. In the present embodiment, it
is
assumed that server 116 performs all message processing for target-type
subscribers, and thus such a determination is omitted.
[0065] The
determination at block 820 can take various forms. In some
embodiments, the determination can be based on the currently available
computational resources of server 116. For example, when the available
computational resources of server 116 (e.g. a percentage of unused CPU cycles)
fall below a predetermined threshold, the determination at block 820 may be
selected as "no" to reduce the computational demands on server 116. In other
16

CA 02906684 2015-10-01
embodiments, server 116 can be configured to respond to a predetermined
portion of messages addressed to a given subscriber autonomously, while
directing the remainder for human response. The portion can be stored in
database 242, for example. In further embodiments, autonomous responding
functionality can be enabled or disabled on a per-subscriber basis. Thus, the
determination at block 820 can involve retrieving an indication from database
242
of whether autonomous response is enabled for the destination subscriber.
[0066] When the determination at block 820 is affirmative, server 116 is
configured to proceed to block 825. At block 825, server 116 is configured to
retrieve the keywords and corresponding response messages corresponding to
the destination subscriber from database 246. In the present example, at block
825 server 116 therefore retrieves the contents of Table 2 as shown above.
[0067] At block 830, server 116 is configured to select one of the
responses
retrieved at block 825. As seen in Table 2, each response corresponds to a
keyword. Server 116 is configured to determine whether the message body
contains any of the keywords retrieved at block 825, and when the message
body does contain a keyword, to select a response corresponding to that
keyword. When no keywords match the message body, server 116 can be
configured to select one of the retrieved responses, for instance at random.
[0068] In some embodiments, more complex autonomous response
processing may be performed by server 116 or an associated server, such as the
processing described in Applicant's PCT Publication No. W02015/085404 (filed
December 12, 2014) and entitled "Method, system and apparatus for configuring
a chatbot," the contents of which is incorporated herein by reference.
[0069] It is also contemplated that in some embodiments, block 820 can be
performed after blocks 825 and 830 (or any other autonomous response
processing) have been performed, rather than before such processing. In such
embodiments, server 116 can be configured to determine at block 820 whether a
suitable autonomous response has been selected. When no suitable response
17

CA 02906684 2015-10-01
has been selected (e.g. when no keyword match with the message body is
detected), the determination at block 820 is negative.
[0070] Following the selection of a response at block 835, server 116 is
configured, at block 835, to send the selected response to the originator of
the
message received at block 805. Thus, in the present example, at block 835
server 116 may send the response "What kind of anvil do you need?" addressed
to the subscriber "Bob", based on a match of the keyword "anvil" in message
900. It will now be apparent to those skilled in the art that server 116
itself
processes the routing of the return message via another performance of method
800.
[0071] Returning to block 820, when the determination of whether to
respond
autonomously is negative, server 116 is configured to proceed to block 840. At
block 840, server 116 is configured to present the incoming message (that is,
message 900 in the present example) on a display. The display can be display
258, or any other suitable display. The display need not be directly connected
to
server 116. For example, the display can be connected to another device (not
shown in FIG. 1) connected to server 116 via network 108. Database 242 may
contain secondary routing information identifying such a device.
[0072] At block 840, server 116 is configured to receive input data
defining a
response message to the message received at block 805. The input data can be
received at processor 230 from keyboard 254, or from a separate input device
connected to a secondary computing device, as mentioned above in connection
with block 840. Following the receipt of the input data, server 116 is
configured to
send the response message at block 835, as described above. It is also
contemplated that when blocks 840 and 845 are performed, the input data can
be incorporated into database 246 for use in future automated responses.
[0073] Following the transmission of the response at block 835, server
116
can be configured to perform block 850. At block 850, server 116 can be
configured to update the subscriber record of the sender of the message
received at block 805. For example, server 116 can store, in memory 234 (e.g.
in
18

CA 02906684 2015-10-01
database 242), update parameters corresponding to each target-type subscriber
record. In general, the update parameters permit server 116 to update the
subscriber records of any subscribers that send messages to the target-type
subscriber. In some embodiments, the update parameters can define an account
balance adjustment, such as a number of points, as well as adjustment criteria
defining when to apply the adjustment. For example, the update criteria can
specify a frequency in connection with the adjustment (e.g. apply the
adjustment
once for every message addressed to the target-type subscriber).
[0074] At block 850, therefore, server 116 is configured to retrieve the
update
parameters from memory 234, and determine whether to apply the adjustment to
the subscriber record that sent the message received at block 805 (the
subscriber "Bob" in the present example). When the determination is
affirmative,
server 116 updates the relevant subscriber record in database 242. Table 3
below shows an updated version of database 242 following the performance of
block 850. In particular, the account balance of the subscriber "Bob" has been
increased. In some embodiments, server 116 can also be configured to transmit
a further message to the subscriber whose record has been adjusted, advising
the subscriber of the adjustment.
Table 3: Updated Example Subscriber Database 242
Subscriber
SubscriberAccount
Routing Contact IDs
Identifier Type
Balance
Alice Initiator 104a Acme_Inc 0
Bob Initiator 104b Acme Inc 50
Acmeinc Target 116 Alice, Bob N/A
. .
[0075] Following the updating of the subscriber record of the originator
of the
message received at block 805, server 116 can be configured to proceed to the
method illustrated in FIG. 10. In other embodiments, however, server 116 can
be
19

CA 02906684 2015-10-01
=
configured to await a further selection of a subscriber identifier (see FIG.
6) or the
receipt of a further message (FIG. 8).
[0076] It will also be noted above that the contacts fields for
the subscribers
Bob and Acme_Inc have been updated in Table 3. As noted earlier, server 116
can be configured to append the identifier of any subscriber from whom a
message is received to the subscriber record of the message's destination.
Similarly, the sender's subscriber record can also be updated to add the
subscriber identifier of the destination.
[0077] FIG. 10 depicts a method 1000 of generating broadcast
messages.
Method 1000 will be discussed in connection with its performance in system
100,
and particularly by server 116. Although method 1000 is illustrated as
following
the performance of method 800, in other embodiments method 1000 can be
performed independently of method 800.
[0078] At block 1005, server 116 is configured to retrieve broadcast
parameters from memory 234. In general, the broadcast parameters define
criteria according to which broadcast messages are sent by server 116 on
behalf
of each target-type subscriber. Table 4, below, illustrates example broadcast
parameters stored in database 242 in connection with the subscriber Acme_Inc
(previously discussed subscriber data such as subscriber type, routing
information and account balance are not shown below for legibility).
Table 4: Updated Example Subscriber Database 242
Subscriber Contact Broadcast Most Recent
Broadcast
Identifier " = IDs frequency Broadcast
Destination
Alice . . . Acme_Inc N/A N/A
N/A
Bob . . . Acme_Inc N/A N/A
N/A
Acme_Inc . . . Alice, Bob Weekly 08/01/2015 All
contacts
. . . . . . . . . . . .
. .
[0079] In the above example, each target-type subscriber record
can include
a broadcast frequency, a timestamp indicating the date and time of the most

CA 02906684 2015-10-01
,
,
recent broadcast message sent, and a broadcast destination field. At block
1005,
therefore, server 116 is configured to retrieve the above-mentioned
parameters.
When a plurality of target-type subscriber records are maintained in database
242, block 1005 (and indeed, the entirety of method 1000) can be performed
independently for each target-type subscriber.
[0080] At block 1010, server 116 is configured to determine
whether to send
a broadcast message based on the parameters retrieved at block 1005. For
example, server 116 can be configured to determine whether the time period
defined by the "broadcast frequency" parameter has elapsed since the most
recent broadcast. When the determination is negative, the performance of
method 1000 ends. When the determination is affirmative, however, the
performance of method 1000 proceeds to block 1015.
[0081] At block 1015, server 116 is configured to select a
broadcast message
and transmit the broadcast message to each of the destinations specified in
the
"broadcast destination" parameter retrieved at block 1005. The broadcast
message can be selected from one or more preconfigured messages stored in
memory 234 in connection with the target-type subscriber record (e.g. in
database 242). Having transmitted the broadcast message, server 116 can then
return to FIG. 8 to process any incoming messages, which may include those
responding to the broadcast message.
[0082] Variations to the above systems and methods are contemplated. For
example, in some embodiments, rather than present a message on a display at
block 820 only when the determination at block 820 is not to respond
autonomously, server 116 can be configured to always present the message on
a display, and to then respond autonomously if no input data is received
(block
845) within a configurable time period.
[0083] The scope of the claims should not be limited by the embodiments set
forth in the above examples, but should be given the broadest interpretation
consistent with the description as a whole.
21

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Application Not Reinstated by Deadline 2023-02-28
Inactive: Dead - No reply to s.86(2) Rules requisition 2023-02-28
Inactive: IPC expired 2023-01-01
Letter Sent 2022-10-03
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2022-04-01
Deemed Abandoned - Failure to Respond to an Examiner's Requisition 2022-02-28
Inactive: IPC from PCS 2022-01-01
Inactive: IPC from PCS 2022-01-01
Inactive: First IPC from PCS 2022-01-01
Inactive: IPC expired 2022-01-01
Examiner's Report 2021-10-27
Inactive: Report - No QC 2021-10-21
Letter Sent 2021-10-01
Common Representative Appointed 2020-11-07
Letter Sent 2020-10-09
Inactive: <RFE date> RFE removed 2020-10-09
Change of Address or Method of Correspondence Request Received 2020-10-01
Request for Examination Received 2020-10-01
All Requirements for Examination Determined Compliant 2020-10-01
Request for Examination Requirements Determined Compliant 2020-10-01
Common Representative Appointed 2019-10-30
Common Representative Appointed 2019-10-30
Revocation of Agent Requirements Determined Compliant 2019-07-10
Appointment of Agent Requirements Determined Compliant 2019-07-10
Appointment of Agent Request 2019-06-05
Revocation of Agent Request 2019-06-05
Change of Address or Method of Correspondence Request Received 2018-05-31
Application Published (Open to Public Inspection) 2017-04-01
Inactive: Cover page published 2017-03-31
Inactive: IPC assigned 2015-10-20
Inactive: First IPC assigned 2015-10-19
Inactive: IPC assigned 2015-10-19
Inactive: IPC assigned 2015-10-19
Application Received - Regular National 2015-10-08
Inactive: Filing certificate - No RFE (bilingual) 2015-10-08
Correct Applicant Requirements Determined Compliant 2015-10-08
Inactive: Pre-classification 2015-10-01
Inactive: QC images - Scanning 2015-10-01

Abandonment History

Abandonment Date Reason Reinstatement Date
2022-04-01
2022-02-28

Maintenance Fee

The last payment was received on 2020-10-01

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Fee History

Fee Type Anniversary Year Due Date Paid Date
Application fee - standard 2015-10-01
MF (application, 2nd anniv.) - standard 02 2017-10-02 2017-06-01
MF (application, 3rd anniv.) - standard 03 2018-10-01 2018-06-01
MF (application, 4th anniv.) - standard 04 2019-10-01 2019-09-30
Request for examination - standard 2020-10-01 2020-10-01
MF (application, 5th anniv.) - standard 05 2020-10-01 2020-10-01
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
KIK INTERACTIVE INC.
Past Owners on Record
CHRISTOPHER BEST
MICHAEL MACKENZIE
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2015-09-30 21 1,046
Claims 2015-09-30 5 166
Abstract 2015-09-30 1 21
Drawings 2015-09-30 10 99
Representative drawing 2017-04-06 1 6
Filing Certificate 2015-10-07 1 177
Reminder of maintenance fee due 2017-06-04 1 114
Courtesy - Acknowledgement of Request for Examination 2020-10-08 1 434
Commissioner's Notice - Maintenance Fee for a Patent Application Not Paid 2021-11-11 1 549
Courtesy - Abandonment Letter (Maintenance Fee) 2022-04-28 1 550
Courtesy - Abandonment Letter (R86(2)) 2022-04-24 1 548
Commissioner's Notice - Maintenance Fee for a Patent Application Not Paid 2022-11-13 1 550
New application 2015-09-30 3 81
Request for examination 2020-09-30 5 155
Change to the Method of Correspondence 2020-09-30 5 155
Examiner requisition 2021-10-26 4 191