(19) United States

US 20130298046A1
(19) United States
(12) Patent Application Publication (10) Pub. No.: US 2013/0298046 A1
Taylor et al.
(54)
(43) Pub. Date:
CONTACT LIST DISPLAY SYSTEM AND
(52)
METHOD
NOV. 7, 2013
US. Cl.
CPC .................................. .. H04L 65/403 (2013.01)
USPC
......................................... .. 715/753; 709/204
(71) Applicant: eBuddy Holding B.V., Amsterdam (NL)
(72) Inventors: Paulo Taylor, Amsterdam (NL);
J an-Joost C. Rueb, Amsterdam (NL);
Onno Bakker, Haarlem (NL)
(
21
)
(22)
A
pp
(57)
A techni ‘1ue for contact list a gg re g ation across networks
1. N .1 13/941 354
0
’
Filed:
involves logging into low level networks through a high level
JUL 12, 2013
network. A system constructed according to the technique
may include a network interface coupled to the different low
level networks. The system may further include a contact
Related U_s_ Application Data
_
_
_
ABSTRACT
_
aggregation engine coupled to the network interface and a
(63) Commuanon of apphcanon NO' 12/774700’ ?led on
May_ 5’ 2010’ HOW Pat'_ No‘ 8,510,395’ Whlch 1S a
network contacts database. In operation the system logs into
one or more of the low level networks (or facilitates login for
Commuanon of apphcanon NO' 11/637,316’ ?led on
a user). To the extent that the data in the network contacts
Dec‘ 11’ 2006’ now abandoned‘
provisional application No_ 60/748,988’ ?led on Dec_
9, 2005
database is not current, the contact aggregation engine
updates the networks contacts database contact information,
then provides an aggregated contact list including the contact
information to a display device. A method according to the
technique may include logging into a high level network and
(60)
Publication Classi?cation
displaying contacts from the one or more low level networks
nt.
.
51ICl
mana
re ate contact l'Th
1st.
emethd
0 ma yfh'ld
urt er me u e
~gggd
H04L 29/06
(2006.01)
logging into the one or more low level networks.
100 M4‘
. » H6
f
1 10
Network
232
Ciiem
"H44
- ‘
1&4 m @k
(Shani
314%
I‘
K112
'“wx.
My, 44 224141"
Server
1%
1.315911%
3312412
M
!M Server
W
.LQ?
1 1M
Patent Application Publication
Nov. 7, 2013 Sheet 1 0f 7
US 2013/0298046 A1
53g,‘
' hgEm£m3a5m?.“
EM,?Emozum?w.
‘.,\MmIEg.I7/
W.‘m?
m: .
mEgm.smn?
F
wm wm mixw
“5% I:w
Patent Application Publication
Nov. 7, 2013 Sheet 2 0f 7
US 2013/0298046 A1
Em a mww.
hmw ?
.,3%.é?aéwz
,gag
gammap.u.
kmé w
E$wv5tho0g.m“z Tmwm
aw.
N.mmu
Patent Application Publication
Nov. 7, 2013 Sheet 3 0f 7
US 2013/0298046 A1
£1. 0w Lave? Newark
K’
Cm5%
* aw Lava! Newark:
362$
Network
{jaw Levei Nelwmk
Legén
Engine
M)“
3Q"~N
Bisgiay
BKDUN
Content Aggrggatizm Ewing
Tma
High Law? Cmiantze {£53
FIG. 3
Patent Application Publication
Nov. 7, 2013 Sheet 4 0f 7
40% Wk
“x
(Y
FiG, 4A
was w
P18. 45
US 2013/0298046 A1
Patent Application Publication
Nov. 7, 2013 Sheet 5 0f 7
US 2013/0298046 A1
5% m‘
g]
$122M
?
w 532.
w
r
Jain a high ievai naiwmk
‘is-in a iow Eevei network
/
Maintain
il?é'ifa?ifi £55: asssaciaied with
we as" meme mi The ?aw iavai networks
510
‘r
(/7
Légin ta ‘nigh ievel netwcark
M 512
1r
if
Qispiay mnmam imm {he iaw iavai
?etwmks in an aggregatad mntact Eist
w" ?i 8
5'
Lagout of high ievai HQ‘NEQFK
Patent Application Publication
Nov. 7, 2013 Sheet 6 0f 7
US 2013/0298046 A1
am M‘
.
v
@132
f’
mgm is high 1am natwark
Login w mm: 58%? netwark
‘I’
{My
::
3%
iif»
inew ievai iagwui‘?
' '
"
_ Remwe raievant isw ievai cmzisacts
'fmm aggregated {llama};
Na
Lew ievei mgin?
'
PUG. 8
Patent Application Publication
{la-mama;
Nov. 7, 2013 Sheet 7 0f 7
US 2013/0298046 A1
I
Prams-Sm
53mm?
i?i?éi‘féi?é
Mammy
*
if‘
HG
Eiispi-s?y'
Comm
3.23%.
NV Stmage
Iii
I26 {Ea-mm? i
2.1%
‘
Qispiay Daviw
Nov. 7, 2013
US 2013/0298046 A1
CONTACT LIST DISPLAY SYSTEM AND
METHOD
CROSS-REFERENCE TO RELATED
APPLICATIONS
[0001]
This application is a continuation of US. Ser. No.
12/774,700, ?led May 5, 2010, entitled CONTACT LIST
DISPLAY SYSTEM AND METHOD, Which is a continua
tion ofU.S. Ser. No. ll/637,3 l 6, ?led Dec. 11, 2006, entitled
CONTACT LIST DISPLAY SYSTEM AND METHOD,
Which claims priority to US. Provisional Patent Application
No. 60/748,988, ?led Dec. 9, 2005, all ofWhich are incorpo
rated herein by reference.
extent that the data in the netWork contacts database is not
current, the contact aggregation engine updates the netWorks
contacts database contact information, then provides an
aggregated contact list including the contact information to a
display device.
[0007] A method according to the technique may include
logging into a high level netWork and displaying contacts
from the one or more loW level netWorks in an aggregated
contact list. The method may further include logging into the
one or more loW level netWorks.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]
Embodiments of the inventions are illustrated in the
?gures. HoWever, the embodiments and ?gures are illustra
BACKGROUND
[0002] Instant messaging requires the use of a client pro
gram that hooks up an instant messaging service and differs
from e-mail in that conversations are then able to happen in
real time. Most services offer a presence information feature,
indicating Whether people on one’s list of contacts are cur
rently online and available to chat. This may be called a
contact list. In early instant messaging programs, each letter
appeared as it Was typed, and When letters Were deleted to
correct typos this Was also seen in real time. This made it more
like a telephone conversation than exchanging letters. In
modern instant messaging programs, the other party in the
conversation generally only sees each line of text right after a
neW line is started. Most instant messaging applications also
include the ability to set a status message, roughly analogous
tive rather than limiting; they provide examples of the inven
tion.
[0009]
FIG. 1 depicts an example of a system for providing
instant messages to clients via a Web interface.
[0010]
FIG. 2 depicts an example of a system for displaying
content from an IM client at an alternative IM client.
[0011]
FIG. 3 depicts an example of a system capable of
contact aggregation and display.
[0012] FIGS. 4A-4B depict examples of screenshots that
depicts a multi-netWork IM display.
[0013]
FIG. 5 depicts a ?owchart of an example of a method
for contact list aggregation and display.
[0014]
FIG. 6 depicts a ?owchart of an example of a method
for aggregated contact list display.
[0015] FIG. 7 depicts a computer system suitable for imple
to the message on a telephone ansWering machine.
mentation of the techniques described With reference to
[0003]
FIGS. 1-6.
Popular instant messaging services on the public
Internet include .NET Messenger Service, AOL Instant Mes
senger, Excite/Pal, Gadu-Gadu, Google Talk, iChat, ICQ,
Jabber, Qnext, QQ, Meetro, Skype, Trillian andYahoo! Mes
senger. These services oWe many ideas to an older (and still
popular) online chat medium knoWn as Internet Relay Chat
(IRC).
[0004]
The foregoing examples of the related art and limi
tations related thereWith are intended to be illustrative and not
DETAILED DESCRIPTION
[0016] In the folloWing description, several speci?c details
are presented to provide a thorough understanding of embodi
ments of the invention. One skilled in the relevant art Will
recogniZe, hoWever, that the invention can be practiced With
out one or more of the speci?c details, or in combination With
other components, etc. In other instances, Well-knoWn imple
exclusive. Other limitations of the related art Will become
apparent to those of skill in the art upon a reading of the
mentations or operations are not shoWn or described in detail
speci?cation and a study of the draWings.
invention.
[0017] FIG. 1 depicts an example of a system 100 for pro
viding instant messages to clients via a Web interface. In the
example of FIG. 1, the system 100 includes a netWork 102, a
server 104, and an Instant Messenger (IM) server 106, and an
IM netWork 108. The server 104 is coupled to the netWork at
least by Way of port 80. The tWo Way communication via port
80 is represented in the example of FIG. 1 as an arroW 110.
SUMMARY
[0005] The folloWing embodiments and aspects thereof are
described and illustrated in conjunction With systems, tools,
and methods that are meant to be exemplary and illustrative,
not limiting in scope. In various embodiments, one or more of
the above-described problems have been reduced or elimi
nated, While other embodiments are directed to other
to avoid obscuring aspects of various embodiments, of the
The server 104 is coupled to the IM server 106 via one or more
improvements.
other ports. The tWo Way communication via the other ports is
[0006]
represented in the example of FIG. 1 as an arroW 112. The IM
server 106 is coupled to the IM netWork 108 via any knoWn or
convenient mechanism. Indeed, the IM server 106 may be
thought of as part of the IM netWork 108. The netWork 102
A technique for contact list aggregation across a
plurality of different netWorks involves logging into loW level
netWorks through a high level netWork. A system constructed
according to the technique may include a netWork interface
coupled to the different loW level netWorks. The system may
further include a contact aggregation engine coupled to the
netWork interface and a netWork contacts database. In opera
tion the system logs into one or more of the loW level netWorks
(or facilitates lo gin for a user). The netWork contacts database
couples a plurality of clients 114-1 to 114-N (referred to
collectively as clients 114) to the server 104. In the example
of FIG. 1, the server 104 includes an event queue 116.
[0018] The netWork 102 may include by Way of example
but not limitation LAN, WAN, VLAN, WLAN, Internet, cel
may include some information about contacts associated With
lular netWork, phone netWork, radio netWork, or some other
the netWorks from, by Way of example but not limitation,
knoWn or convenient netWork. The term “Internet” as used
herein refers to a netWork of netWorks that uses certain pro
previous logins or data explicitly entered by a user. To the
Nov. 7, 2013
US 2013/0298046 A1
tocols, such as TCP/IP, and possibly other protocols such as
data that Will be sent to the appropriate IM netWork. In an
the hypertext transfer protocol (HTTP) for hypertext markup
embodiment, the appropriate IM netWork may be determin
language (HTML) documents that make up the World Wide
Web (the Web). The physical connections of the Internet and
the protocols and communication procedures are Well known,
able based upon the protocol encoded in a message.
[0026] Messages or actions from the clients 114 are col
but any convenient physical connections or protocols could
be used.
not limitation, HTTP or plain socket connections. The mes
sages or actions are transformed to an appropriate protocol
format to be sent over a compliant port from the clients 114 to
the server 104, With the IM protocol on the application side. In
[0019]
The server 104 may include a multiple servers.
Indeed, it may be desirable, depending upon details of a
particular implementation, to install several servers to cope
lected over netWork protocols such as, by Way of example but
a non-limiting embodiment, the compliant port is http port 80.
With the number of simultaneous users the system 100 sup
ports. It may further be desirable, depending upon details of a
particular implementation, for the server 104 to have a high
typical port 80 could be used.
[0027] The latest available broWsers, as of December 2005,
CPU throughput, together With large amounts of RAM, to
enable the use of a technique called AJAX (Asynchronous
HoWever, any port having similar characteristics to those of a
handle a large number of users. It may further be desirable,
JavaScript And XML). With AJAX, appropriately con?gured
depending upon details of a particular implementation, to
accomplish resource sharing via thread handling Where a pool
clients 114 can execute actions and poll for messages or
of threads is shared and used by one or more of the clients 114
for client-server communication and betWeen the server 104
and the IM server 106.
[0020]
The server 104 may include one or more of an appli
cation server, database server, Web server, banners server, and
content server, or any combination thereof. To make the most
events using only JavaScript. The method is based on using an
XMLHttpRequest object to make HTTP requests to the server
104. The server 104 may reply With messages taken from the
queue of the corresponding session in XML (or another)
format that are parsed and displayed according to the mes sage
content.
of the techniques described herein, the server 104 should,
though is not required to, include at least one application
[0028] For clients 114 that include a broWser, When access
ing the server 104 the broWser typically uses hidden HTML
frames to update information on visible frames. The visible
server. The other servers can have supporting roles in, by Way
of example but not limitation, serving static content or adver
frames display appropriate information While the hidden
tising (e.g., banners), storing usage data, or ful?lling some
other knoWn or convenient function.
[0021]
The server 104 may act as a proxy server betWeen
the clients 114 and the IM server 106. The server 104 receives
communications from the clients 114 on http port 80, and
responds to the clients 114 on http port 80. Communications
from the clients 114 that are bound for the IM netWork 108,
hoWever, must also come through http port 80 to the server
104, and are then forWarded to the IM server 106. In this Way,
frames are reloaded in short periods of time. In each refresh
that hits the server 104, the broWser identi?es the current
messaging session and checks if neW events or messages
associated With the session are in the event queue 116. When
neW information arrives and needs to be displayed in some
form, the broWser makes use of, for example, JavaScript code
to update the visible frames and WindoWs With neW messages
or events keeping the information up to date in the screen. In
this Way, automatic refreshing can take place in a hidden
frame.
the server 104 acts as a carrier of the data from users to the IM
[0029]
netWork 108 using a mechanism that controls and manages
With broWsers may not make use of refreshes. For example, a
the data (e.g., text messages, display images, emoticons,
form of updating the screen Without using a refresh technique
is to keep one single HTTP socket request alive for the Whole
audio/video streams, etc.) sent betWeen one of the clients 114
In another embodiment, certain of the clients 114
and the server 104, and vice versa.
[0022] The IM server 106 may be any knoWn or convenient
IM server that is compatible With IM. Events, messages, or
other appropriate data from the IM server 106 are collected in
the event queue 116 of the server 104. The events may be
period of a messaging session Without actually closing the
socket connection. In this example, information is initially
collected in association With a variety of protocols including
by Way of example but not limitation port 1863, port 5050,
port 5222, port 5190, etc.
through the same HTTP socket kept alive and managed by the
[0023]
The IM netWork 108 may include one or a combi
nation of netWorks selected from MSN Messenger, Yahoo!
loaded and displayed in one single visible frame. While
events and messages are being received by the server 104,
JavaScript code can be injected into the HTML document
server 104. For each event or message, the broWser can inter
pret the JavaScript code injected and the corresponding parts
of the HTML document and WindoWs Will be updated.
[0030] In another embodiment, certain of the clients 114
Messenger, AIM AOL, ICQ, QQ, Jabber, Google Talk, IRC,
With broWsers may make use of manual refreshes. Some
or some other knoWn or convenient IM netWork.
relatively unsophisticated broWsers, such as WAP and
[0024]
xHTML broWsers often available on mobile phones, do not
The clients 114 may include any knoWn or conve
nient device, including by Way of example but not limitation,
a Web broWser, mobile client, PDA, game console, TV box,
native application, etc. The clients poll the server 104 for
support hidden frames and/or JavaScript (and others may be
con?gured such that they do not support hidden frames and/or
JavaScript). In such cases, the information displayed has to be
events. The events can be removed from the event queue 116
updated manually by the user. Manual updating enables any
and translated into text, JavaScript, XML, or some other
mobile phone, PDA, TV Set or any device With a broWser to
connect to the server 104 and use the messaging platforms
knoWn or convenient format that one or more of the clients
1 14 need or expect in order to process data associated With the
made available by the server 104 assuring the communication
event.
betWeen the clients 114 and the IM server 106.
[0025]
To interact With the IM netWork 108, the clients 114
send data to the server 104. The data, Which may include
commands, is processed and translated into corresponding
[0031] Message history can be stored by most IM clients on
a local computer. For alternative Web and mobile-based cli
ents local storage may not be possible. In a non-limiting
Nov. 7, 2013
US 2013/0298046 A1
embodiment, the server 104, may have the capability to store
[0037]
message history from IM conversations done via one or more
netWork login engines 310-1 to 310-N (collectively referred
of the clients 114. The message history can be accessed and
to as netWork login engines 310), netWork contacts databases
searched at any time via the server 104 by one or more of the
312-1 to 312-N (collectively referred to as the netWork con
tacts database 312), a high level contacts database 314, a user
clients 114
[0032]
FIG. 2 depicts an example ofa system 200 for dis
playing content from an IM client at an alternative IM client.
In the example of FIG. 2, the system 200 includes a client 202,
an IM netWork 204, a server 206, an IM netWork 208, a client
210, other IM netWorks 212-1 to 212-N (referred to collec
tively as other IM netWorks 212), and other clients 214-1 to
214-N (referred to collectively as other clients 214).
[0033] For illustrative purposes, it is assumed that the client
202 has content that is compatible With the IM netWork 204.
HoWever, the client 210 is capable of reading content format
ted to be compatible With the IM netWork 208. Thus, in
operation, the server 206 collects content from the client 202
(either through the IM netWork 204, as shoWn in FIG. 2, or
directly from the client 202, such as is shoWn by Way of
example in FIG. 1). The server 206 then formats the content as
appropriate for use on the IM netWork 208. Once the content
is properly formatted, it can be made available to the client
210 (either through the IM netWork 208, as shoWn in FIG. 2,
or directly to the client 210, such as is shoWn by Way of
example in FIG. 1). Depending upon the embodiment and/or
implementation, the content may also be formatted as appro
priate for one or more of the other IM netWorks 212, to be
made available for one or more of the other clients 214.
[0034] In an embodiment, the server 206 can save the con
tent in one or many formats. In this Way, the client 202 could
make content available in a ?rst IM format, the server 206
could convert the content into a second IM format, and the
server 206 can save the content in at least the second IM
format. Thus, the client 210 could receive the data in the
second IM format. The server 206 could easily store the
content in the ?rst IM format, as Well, and make the content
available to other clients coupled to the IM netWork 204. In
addition, the server 206 could convert the content to other IM
formats, such as those formats that are associated With the
other IM netWorks 212, and save the other IM formats. In this
Way, the other clients 214 may have access to the content.
[0035] In a non-limiting embodiment, the client 202 may be
able to vieW the client 210 and the clients 214 simultaneously.
This is advantageous because IM clients typically cannot
vieW IM clients from other IM netWorks. Advantageously,
since the server 206 is used, the client 202 could even include,
for example, a mobile device Without a client. (Of course, this
could be interpreted to mean that the client 202 is not an IM
client at all, though the term client is still used for illustrative
purposes because the client 202 is served by the server 206 in
a client-server-like fashion.) In a non-limiting embodiment, if
the client 202 does not or cannot install client softWare, the
The computer 304 includes a netWork interface 308,
pro?le database 316, and a contact aggregation engine 318.
[0038] The netWork interface 308 is coupled to the loW
level netWorks 302. In a typical implementation, the netWork
interface 308 also couples the computer 304 to a netWork such
as the Internet and/ or a high level netWork (not shoWn).
[0039]
The netWork login engines 310 may include logic
and storage that facilitates login to the various loW level
netWorks 302. For example, the netWork login engine 310-1
may include a user name (and perhaps a passWord, if the
passWord is not requested from the user at each login) asso
ciated With the loW level netWork 302-1. Conceptually, each
of the netWork lo gin engines 310 is intended to represent the
capability of login to the loW level netWorks 302 in a general
sense (i.e., the data and logic required for any device to
connect to the loW level netWorks 302) and a user-speci?c
sense (e.g., the data provided from a user that enables login to
accounts associated With the user).
[0040] The netWork contacts database 312, Which is
embodied in a computer-readable medium, includes contacts
data associated With any of the netWorks into Which a user has
logged. When a user logs out, the data may or may not be
cached (or stored in nonvolatile memory) for future reference,
depending upon the implementation and/ or user con?gura
tion.
[0041] The high level contacts database 414, Which is
embodied in a computer-readable medium, is an optional
database that includes contacts associated With a high level
netWork. The high level contacts database is optional for at
least tWo reasons. The ?rst reason is that a system need not
provide the ability to maintain high level contacts, requiring
that a user maintain only loW level contacts. The second
reason is that even if the system provides the ability to main
tain high level contacts, a user may opt not to maintain any
high level contacts, opting instead for loW level contacts.
[0042] The user pro?le database 416, Which is embodied in
a computer-readable medium, is intended to represent data
associated With a user. The amount of data maintained is
implementation-speci?c.
[0043] The contact aggregation engine 418 is coupled to
the databases 412, 414, 416, the netWork login engines 410,
and the display 406. In operation, the contact aggregation
engine 418 controls the netWork login engines 410 to login to
or facilitate login by a user to the various loW level netWorks
402. The databases 412, 414, 416 are accessed in such a Way
that a list of contacts stored in the netWork contacts database
client 202 can use a broWser for Web-based messaging and
412 is aggregated and displayed on the display 406, as illus
trated by the screenshots of FIGS. 4A-4B, and the ?oWcharts
display.
of FIGS. 5-6.
[0036] FIG. 3 depicts an example ofa system 300 capable
of contact aggregation and display. The system 300 includes
depicts a multi-netWork IM display. In many cases, a user Will
loW level netWorks 302-1 to 302-N (collectively referred to as
the loW level netWorks 302), a computer 304, and a display
306. The loW level netWorks 302 may include, by Way of
example but not limitation, various IM netWorks. It may be
noted that the computer 304 and the display 306 may be
referred to, in certain implementations, as comprising a com
puter system.
[0044]
FIGS. 4A-4B depict examples of screenshots that
login to a high level account and adjust user con?gurations
such that the system Will automatically login the user to
various loW level accounts. This may require storing login
credentials so that the system can automatically login the user
to each selected interface. FIG. 4A depicts an example of a
screenshot 400A for a full screen display. In the example of
FIG. 4A, the screenshot 400A includes a contacts list tab 402,
Nov. 7, 2013
US 2013/0298046 A1
an “add a network” hyperlink 404, a plurality of MSN icons
406, a plurality of Yahoo! icons 408, and a plurality of AIM
icons 410.
[0045] As the name implies, the contacts list tab 402
includes a listing of designated IM client contacts. For an IM
client to be included in the listing, a user associated with the
contact list typically must explicitly enter a client into the list.
upon the implementation, clicking on the “add account”
hyperlink 412 could prompt the user to select an account from
a list of accounts the user has already designated in a contacts
list (or add a new account), to select a list of accounts asso
ciated with a particular subset (see, e.g., the folders of FIG.
4A), to select a particular network (which may include log
ging the user in to the network or prompting the user to do so),
This may be accomplished with a single click. For example,
storing login credentials and, when logging in, the system can
when a new IM client contacts the user, the user may be
automatically login the user to each selected interface, or to
prompted to allow the IM client to be entered into the user’s
select accounts in some other manner. Presumably, if an
account is selected for a contact that is a member of a network
contacts list.
[0046]
As is suggested by the folders depicted in the con
tacts list tab 402, a user may organiZe contacts in various
folders. A single contact may be listed in no folders, one
folder, or multiple folders, depending upon implementation
in which the user has not logged in, in a non-limiting embodi
ment, either the user or the system will have to login to the
network.
[0052] In the example of FIG. 4B, the user can remove
and user con?gurations. Depending upon the implementation
accounts from the online list by clicking on a “signout” hyper
details, all contacts who are not currently online are listed in
the “O?lline” folder.
link 414 next to the accounts. Depending on the implemen
tation, clicking on the “signout” hyperlink 414 may cause the
[0047]
The “add a networ ” hyperlink 304 can be followed
user to go o?line with respect to the account associated with
to add networks for display. In a non-limiting embodiment,
the particular “signout” hyperlink, or with all accounts on the
when a network is added, contacts of the user in the added
network are added to the contacts list tab 402. The added
“signout” hyperlink. A “signout” hyperlink 416 may be used
contacts are distinguishable by network using, for example,
the icons 406, 408, 410.
[0048] In an alternative embodiment, the contact list could
be maintained in a high level network (i.e., all contacts are
same network as the account associated with the particular
to sign out of all networks at once or, in a different implemen
tation, cause the user to be prompted regarding the networks
from which to sign out.
[0053]
In the example of FIG. 4B, the screenshot 400B
listed in the contact list, even if the contacts are from a
network that has not been added). If a contact is a member of
includes a “reload” hyperlink 418. It may be desirable to
occasionally refresh the screen. Some mobile devices may
a network that is not added, the contact would presumably be
even be incapable of refreshing without an explicit reload.
[0054] FIG. 5 depicts a ?owchart 500 of an example ofa
method for contact list aggregation and display. This method
and other methods are depicted as serially arranged modules.
However, modules of the methods may be reordered, or
listed in the “Of?ine” folder because the contact is not known
to the user to be online. However, depending upon the imple
mentation, the “Of?ine” folder could be effectively split into
two folders, if desired, one which indicates a contact is
o?line, and one that indicates a contact is a member of a
arranged for parallel execution as appropriate. In the example
network that has not been added. In the example of FIG. 4A,
this is implicit because the added networks have icon 406,
408, 410 associated with them, and each of the contacts have
icons 406, 408, 410 associated with them. So, it is apparent
of FIG. 5, the ?owchart 500 begins at module 502 where a
from viewing the display whether a contact is or is not a
member of a network that is currently added.
[0049] In a non-limiting embodiment, adding a network
requires that the user be a member of the added network. For
example, if the user wishes to add the MSN IM network, the
user must have an IM account with MSN. However, in an
alternative embodiment, a system could set up a dummy
account for a user who wishes to add an account for a network
with which the user is not a member. The dummy account will
be associated with the user, but the user might feel more
comfortable with not ever logging in, remembering a pass
word, etc. The system could handle all of these details for the
user without the user’ s knowledge, and without exposing the
user to security risks such as compromised passwords (since
high level network is joined. A high level network may
include, by way of example but not limitation, eBuddy.
[0055] In the example of FIG. 5, the ?owchart 500 contin
ues to module 504 where a low level network is joined. Low
level networks may include IM networks, such as MSN Mes
senger, Yahoo! Instant Messenger, AIM, or any other known
or convenient network. It should also work properly if high
level networks were joined as if the high level networks were
low level. For example, a member of a ?rst high level network
could join a second high level network, which in turn is
associated with ?rst and second low level networks. The
second high level network would function rather like a node
in a tree, where the ?rst high level network is the root, and the
leaves of the node are the ?rst and second low level networks.
Thus, the second high level network could be thought of as a
mid-level network. Unless a distinction is needed, mid-level
networks are treated as low level networks herein.
some users use the same password for multiple accounts, but
[0056]
in this case the system would generate a random, and presum
ues to decision point 506 where it is determined whether to
join more low level networks. If it is determined that more low
level networks are to be joined (506-Y), then the ?owchart
ably strong, password for use with the account).
[0050]
FIG. 4B depicts an example of a screenshot 400B
In the example of FIG. 5, the ?owchart 500 contin
for a mobile phone display. In the example of FIG. 4B, the
500 loops back to module 504, as described previously. If, on
contact list includes a series of contacts and their associated
the other hand, it is determined that no more low level net
works are to be joined (506-N), then the ?owchart 500 con
tinues to module 508 where a contact list associated with one
or more of the low level networks is maintained.
network-identifying icons 406, 408, 410. The information
available on a mobile phone display is less than that of a full
screen display, such as is available on, for example, a laptop
display.
[0051]
[0057]
In the example of FIG. 4B, a user can add accounts
by clicking on an “add account” hyperlink 412. Depending
While contact lists are not particularly important in
email environments (because you can write an email to any
one whose email address you know), in IM environments,
Nov. 7, 2013
US 2013/0298046 A1
contact lists are more desirable because users want to see who
loops back to module 606, as described previously. The rel
is online before sending an IM. If a contact is not online, IM
evant low level contacts are those contacts that are in the
is not allowed in many implementations (and in an implemen
contact list associated with the low level network from which
logout was elected. If, on the other hand, it is determined not
tation that “allows” IM with an o?lline contact, the commu
nication is arguably not an instant message). Accordingly, at
least in an IM environment, mo st users will maintain a contact
list (508).
[0058] In the example of FIG. 5, the ?owchart 500 contin
ues to module 510 where the high level networks is logged
into. When a user logs into a high level network, the user will
typically have a number of options, including requesting that
a list of contacts be displayed. The list of contacts could also
be displayed automatically upon login, depending upon the
implementation and user con?gurations.
[0059] In the example of FIG. 5, the ?owchart 500 contin
ues to module 512 where contacts from each of the low level
networks are displayed in an aggregated contact list. Depend
ing upon the implementation or user con?guration, the con
tact list could include high level contacts, too.Also depending
upon the implementation and/or user con?guration, the user
may or may not be required to login to each of the low level
networks for which contacts are to be displayed in the aggre
gated contact list.
[0060] In the example of FIG. 5, the ?owchart 500 contin
to logout of the low level network (608-N), then the ?owchart
600 continues to decision point 612.
[0066] In the example of FIG. 6, the ?owchart 600 contin
ues to decision point 612 where it is determined whether to
login to a low level network. It is possible to login to an
implementation-speci?c number of low level networks (or, in
the alternative, practically any number of low level net
works). If it is determined to login to a low level network
(612-Y), then the ?owchart 600 loops back to module 604, as
described previously. If, on the other hand, it is determined
not to login to a low level network (612-N), then the ?owchart
600 continues to decision point 614, where it is determined
whether to logout of the high level network. If not (614-N),
the ?owchart 600 loops back to module 606, as described
previously. If so (614-Y), then the ?owchart 600 ends.
[0067] FIG. 7 depicts a computer system 700 suitable for
implementation of the techniques described above with ref
erence to FIGS. 1-6. The computer system 700 includes a
computer 702, I/O devices 704, and a display device 706. The
computer 702 includes a processor 708, a communications
ues to decision point 514 where it is determined whether to
interface 710, memory 712, display controller 714, nonvola
quit the high level network. If the user does not quit the high
level network (514-N), then the ?owchart 500 continues to
tile storage 716, and I/O controller 718. The computer 702
may be coupled to or include the I/O devices 704 and display
decision point 516 where it is determined whether the user
logs out of the high level network. If it is determined that the
user is to logout of the high level network (516-Y), then the
device 706.
?owchart 500 continues to module 518 where the user logs
out. Whether the user logs out (516-Y, 518), or not (516-N),
the ?owchart 500 loops back to decision point 506, as
described previously.
[0061] In many cases, a user may never quit the high level
network, however it is theoretically possible that a user would
quit (or a user would be banned). If the user quits or is banned
from the high level network (514-Y), then the ?owchart 500
ends.
[0062] FIG. 6 depicts a ?owchart 600 of an example of a
method for aggregated contact list display. In the example of
[0068] The computer 702 interfaces to external systems
through the communications interface 710, which may
include a modem or network interface. The communications
interface 710 can be considered to be part of the computer
system 700 or a part of the computer 702. The communica
tions interface 710 can be an analog modem, ISDN modem,
cable modem, token ring interface, satellite transmission
interface (e. g. “direct PC”), or other interfaces for coupling a
computer system to other computer systems. Although con
ventional computers typically include a communications
interface of some type, it is possible to create a computer that
does not include one, thereby making the communications
interface 710 optional in the strictest sense of the word.
FIG. 6, the ?owchart 600 starts at module 602 where a mem
[0069]
ber logs into a high level network.
[0063] In the example of FIG. 6, the ?owchart 600 contin
but not limitation, a conventional microprocessor such as an
ues to module 604 where a user logs into a low level network
through the high level network. Depending upon the imple
mentation and/or user con?gurations, the user may be logged
into the low level network automatically when logging into
the high level network, explicitly by the user, or the user may
be logged into the low level network when the user selects a
contact that is associated with the low level network.
[0064]
In the example of FIG. 6, the ?owchart 600 contin
ues to module 606 where high level and low level contacts are
displayed in an aggregated contact list. It may be noted that a
user may not have a high level contact list, either because a
high level system does not allow for contact lists, or because
the user does not opt to maintain any contact lists at the high
level.
[0065]
In the example of FIG. 6, the ?owchart 600 contin
The processor 708 may include, by way of example
Intel Pentium microprocessor or Motorola power PC micro
processor. While the processor 708 is a critical component of
all conventional computers, any applicable known or conve
nient processor could be used for the purposes of implement
ing the techniques described herein. The memory 712 is
coupled to the processor 708 by a bus 720. The memory 712,
which may be referred to as “primary memory,” can include
Dynamic Random Access Memory (DRAM) and can also
include Static RAM (SRAM). The bus 720 couples the pro
cessor 708 to the memory 712, and also to the non-volatile
storage 716, to the display controller 714, and to the I/O
controller 718.
[0070] The I/O devices 704 can include a keyboard, disk
drives, printers, a scanner, and other input and output devices,
including a mouse or other pointing device. For illustrative
purposes, at least one of the I/O devices is assumed to be a
ues to decision point 608 where it is determined whether to
block-based media device, such as a DVD player. The display
logout of the low level network. If it is determined to logout of
the low level network (608-Y), then the ?owchart 600 con
a display on the display device 706, which can be, for
tinues to module 610 where the relevant low level contacts are
example, a cathode ray tube (CRT) or liquid crystal display
removed from the aggregated display, and the ?owchart 600
(LCD).
controller 714 may control, in a known or convenient manner,
Nov. 7, 2013
US 2013/0298046 A1
[0071] The display controller 714 and I/O controller 718
may include device drivers. A device driver is a speci?c type
of computer software developed to alloW interaction With
hardware devices. Typically this constitutes an interface for
communicating With the device, through a bus or communi
cations subsystem that the hardWare is connected to, provid
ing commands to and/ or receiving data from the device, and
memory When a system boots or starts up. The kernel pro
vides access to various common core services to other system
and application programs.
[0078] As used herein, algorithmic descriptions and sym
bolic representations of operations on data bits Within a com
puter memory are believed to most effectively convey the
techniques to others skilled in the art. An algorithm is here,
on the other end, the requisite interfaces to the OS and soft
Ware applications.
[0072] The device driver may include a hardWare-depen
dent computer program that is also OS-speci?c. The com
puter program enables another program, typically an OS or
those requiring physical manipulations of physical quantities.
applications softWare package or computer program running
transferred, combined, compared, and otherWise manipu
under the OS kernel, to interact transparently With a hardWare
lated. It has proven convenient at times, principally for rea
sons of common usage, to refer to these signals as bits, values,
device, and usually provides the requisite interrupt handling
necessary for any necessary asynchronous time-dependent
hardWare interfacing needs.
[0073] The non-volatile storage 71 6, Which may be referred
to as “secondary memory,” is often a magnetic hard disk, an
optical disk, or another form of storage for large amounts of
data. Some of this data is often Written, by a direct memory
access process, into memory 712 during execution of soft
Ware in the computer 702. The non-volatile storage 716 may
include a block-based media device. The terms “machine
readable medium” or “computer-readable medium” include
any knoWn or convenient storage device that is accessible by
the processor 608 and also encompasses a carrier Wave that
encodes a data signal.
[0074] The computer system 700 is one example of many
possible computer systems Which have different architec
tures. For example, personal computers based on an Intel
microprocessor often have multiple buses, one of Which can
be an I/O bus for the peripherals and one that directly con
nects the processor 708 and the memory 712 (often referred to
as a memory bus). The buses are connected together through
bridge components that perform any necessary translation
due to differing bus protocols.
[0075] NetWork computers are another type of computer
system that can be used in conjunction With the teachings
provided herein. NetWork computers do not usually include a
hard disk or other mass storage, and the executable programs
are loaded from a netWork connection into the memory 712
for execution by the processor 708. A Web TV system, Which
is knoWn in the art, is also considered to be a computer
system, but it may lack some of the features shoWn in FIG. 6,
such as certain input or output devices. A typical computer
system Will usually include at least a processor, memory, and
a bus coupling the memory to the processor.
and generally, conceived to be a self-consistent sequence of
operations leading to a desired result. The operations are
Usually, though not necessarily, these quantities take the form
of electrical or magnetic signals capable of being stored,
elements, symbols, characters, terms, numbers, or the like.
[0079] It should be borne in mind, hoWever, that all of these
and similar terms are to be associated With the appropriate
physical quantities and are merely convenient labels applied
to these quantities. Unless speci?cally stated otherWise as
apparent from the folloWing discussion, it is appreciated that
throughout the description, discussions utiliZing terms such
as “processing” or “computing” or “calculating” or “deter
mining” or “displaying” or the like, refer to the action and
processes of a computer that manipulates and transforms data
represented as physical (electronic) quantities Within the
computer system’s registers and memories into other data
similarly represented as physical quantities Within the com
puter system memories or registers or other such information
storage, transmission or display devices.
[0080] An apparatus for performing techniques described
herein may be specially constructed for the required pur
poses, or it may comprise a general purpose computer selec
tively activated or recon?gured by a computer program stored
in the computer. Such a computer program may be stored in a
computer readable storage medium, such as, by Way of
example but not limitation, read-only memories (ROMs),
RAMs, EPROMs, EEPROMs, magnetic or optical cards, any
type of disk including ?oppy disks, optical disks, CD-ROMs,
DVDs, and magnetic-optical disks, or any knoWn or conve
nient type of media suitable for storing electronic instruc
tions.
[0081] The algorithms and displays presented herein are
not inherently related to any particular computer architecture.
The techniques may be implemented using any knoWn or
convenient programming language, Whether high level (e. g.,
C/C++) or loW level (e.g., assembly language), and Whether
interpreted (e.g., Perl), compiled (e.g., C/C++), or Just-In
Time (J IT) compiled from bytecode (e. g., Java). Any knoWn
[0076] The computer system 700 may be controlled by an
operating system (OS). An OS is a softWare programiused
on most, but not all, computer systemsithat manages the
or convenient computer, regardless of architecture, should be
capable of executing machine code compiled or otherWise
assembled from any language into machine code that is com
hardWare and softWare resources of a computer. Typically, the
patible With the computer’s architecture.
OS performs basic tasks such as controlling and allocating
[0082]
As used herein, the term “embodiment” means an
memory, prioritizing system requests, controlling input and
output devices, facilitating netWorking, and managing ?les.
Examples of operating systems for personal computers
not limitation.
include Microsoft WindoWs®, Linux, and Mac OS®. Delin
eating betWeen the OS and application softWare is sometimes
the preceding examples and embodiments are exemplary and
rather di?icult. Fortunately, delineation is not necessary to
understand the techniques described herein, since any reason
able delineation should su?ice.
[0077] The loWest level of an OS may be its kemel. The
kernel is typically the ?rst layer of softWare loaded into
embodiment that serves to illustrate by Way of example but
[0083]
It Will be appreciated to those skilled in the art that
not limiting to the scope of the present invention. It is
intended that all permutations, enhancements, equivalents,
and improvements thereto that are apparent to those skilled in
the art upon a reading of the speci?cation and a study of the
draWings are included Within the true spirit and scope of the
present invention. It is therefore intended that the folloWing
Nov. 7, 2013
US 2013/0298046 A1
appended claims include all such modi?cations, permuta
tions and equivalents as fall within the true spirit and scope of
the present invention.
What is claimed:
1. A system comprising:
a network interface;
displaying contacts from the high level network in the
aggregated contact list.
10. The method of claim 7, further comprising joining an
additional low level network, wherein the aggregated contact
list does not include contacts of the additional low level
network.
a network login engine coupled to the network interface;
11. The method of claim 7, further comprising:
a network contacts database embodied in one or more
logging into the one or more low level networks and an
computer-readable mediums;
a web server coupled to the network contacts database;
a contact aggregation engine coupled to the network login
engine and the network contacts database;
wherein, in operation, the contact aggregation engine con
trols the network login engine to login or facilitate login
to one or more networks, updates in the networks con
tacts database contact information associated with the
one or more networks, stores the aggregated contact list
in a computer-readable medium at the web server, and
provides an aggregated contact list including the contact
information to a display device.
2. The system of claim 1 further comprising a high level
contacts database embodied in a computer readable medium,
wherein, in operation, contacts from the high level contacts
database are included in the aggregated contact list.
3. The system of claim 1, wherein the network login engine
includes a plurality of network login engines that include
suf?cient information to login or facilitate login to a respec
tive plurality of low level networks.
4. The system of claim 1, further comprising a user pro?le
database, embodied in a computer-readable medium and
coupled to the network login engine, wherein, in operation,
the user pro?le database includes a user-speci?c information
that the network login engine uses to login or facilitate login
to the one or more networks.
5. The system of claim 1, further comprising the display
device.
6. The system of claim 1, further comprising the one or
more networks.
7. A method comprising: joining a high level network;
joining one or more low level networks;
maintaining a contact list associated with the one or more
low level networks;
logging into the high level network;
displaying contacts from the one or more low level net
works in an aggregated contact list.
8. The method of claim 7, further comprising logging into
the one or more low level networks.
9. The method of claim 7, further comprising:
maintaining a contact list associated with the high level
network;
additional low level network;
displaying contacts from the one or more low level net
works and the additional low level network in the aggre
gated contact list;
logging out of the additional low level network.
12. The method of claim 7, further comprising logging out
of the high level network.
13. A method comprising:
logging into a high level network; logging into a low level
network;
displaying an aggregated contact list that includes contacts
associated with the low level network through the high
level network.
14. The method of claim 13, further comprising automati
cally logging into the low level network in response to log
ging into the high level network.
15. The method of claim 13, further comprising facilitating
an explicit login to the low level network.
16. The method of claim 13, wherein the logging into the
low level network is in response to a user selecting a contact
for display in the aggregated contact list that is associated
with the low level network.
17. The method of claim 13, wherein the low level network
is a ?rst low level network, further comprising:
logging into a second low level network through the high
level network;
displaying the aggregated contact list, including contacts
associated with the second low level network.
18. The method of claim 17, further comprising:
logging out of the second low level network;
removing low level contacts associated with the second
low level network from the aggregated contact list.
19. The method of claim 17, further comprising:
logging out of the ?rst low level network;
removing low level contacts associated with the ?rst low
level network from the aggregated contact list.
20. The method of claim 13, further comprising displaying
the aggregated contact list including contacts associated with
the high level network.
*
*
*
*
*