`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 1 of 18 PageID #: 140
`
`
`
`
`
`EXHIBIT 2
`
`EXHIBIT 2
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 2 of 18 PageID #: 141
`I IIIII IIIIIIII Ill lllll lllll lllll lllll lllll lllll lllll lllll 111111111111111111
`US009584453B2
`
`c12) United States Patent
`Taylor et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 9,584,453 B2
`*Feb.28,2017
`
`(54) CONTACT LIST AGGREGATION AND
`DISPLAY
`
`(71) Applicant: eBuddy Holding B.V., Amsterdam
`(NL)
`
`(72)
`
`Inventors: Paulo Taylor, Amsterdam (NL);
`Jan-Joost C. Rueb, Amsterdam (NL);
`Onno Bakker, Haarlem (NL)
`
`(73) Assignee: eBuddy Holding B.V., Amsterdam
`(NL)
`
`EP
`WO
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,531,184 A * 7/1985 Wigan ................ H04L 12/1804
`709/204
`
`6,415,313 Bl
`
`7/2002 Yamada et al.
`(Continued)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 442 days.
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 13/941,354
`
`(22) Filed:
`
`Jul. 12, 2013
`
`(65)
`
`Prior Publication Data
`
`US 2013/0298046 Al
`
`Nov. 7, 2013
`
`Related U.S. Application Data
`
`(63) Continuation of application No. 12/774,700, filed on
`May 5, 2010, now Pat. No. 8,510,395, which is a
`(Continued)
`
`(51)
`
`Int. Cl.
`G06F 15/16
`H04L 12/58
`
`(2006.01)
`(2006.01)
`(Continued)
`
`(52) U.S. Cl.
`CPC .............. H04L 51/16 (2013.01); G06F 9/542
`(2013.01); G06F 17/3089 (2013.01);
`(Continued)
`( 58) Field of Classification Search
`CPC ......................... H04M 3/493; G06F 17/30029
`(Continued)
`
`soc-...
`
`FOREIGN PATENT DOCUMENTS
`
`9/2002
`1292071
`9/1999
`9948011
`(Continued)
`
`OTHER PUBLICATIONS
`
`International Application No. PCT/IB2006/04193, International
`Search Report and Written Opinion mailed Jun. 24, 2008.
`(Continued)
`
`Primary Examiner - Bharat N Barnt
`(74) Attorney, Agent, or Firm - Sheppard, Mullin,
`Richter & Hampton LLP
`
`ABSTRACT
`(57)
`A technique for contact list aggregation across networks
`involves logging into low level networks through a high
`level network. A system constructed according to the tech(cid:173)
`nique 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 operation the
`system logs into one or more of the low level networks ( or
`facilitates login for a user). To the extent that the data in the
`network contacts database is not current, the contact aggre(cid:173)
`gation engine updates the networks contacts database con(cid:173)
`tact 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 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.
`
`16 Claims, 7 Drawing Sheets
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 3 of 18 PageID #: 142
`
`US 9,584,453 B2
`Page 2
`
`Related U.S. Application Data
`
`continuation of application No. 11/637,316, filed on
`Dec. 11, 2006, now abandoned.
`
`(60)
`
`Provisional application No. 60/748,988, filed on Dec.
`9, 2005.
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`(2006.01)
`(2006.01)
`(2012.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`
`Int. Cl.
`H04M 3/493
`G06F 17/30
`G06Q 10/10
`H04L 29/08
`H04L 29/06
`G06F 9/54
`H04M 1/725
`U.S. Cl.
`CPC ........... G06Q 10/10 (2013.01); G06Q 10/107
`(2013.01); H04L 51/00 (2013.01); H04L 51/04
`(2013.01); H04L 51/043 (2013.01); H04L
`65/403 (2013.01); H04L 67102 (2013.01);
`H04L 67/1044 (2013.01); H04L 67/2814
`(2013.01); H04L 67/2823 (2013.01); H04L
`67/306 (2013.01); H04M 3/493 (2013.01);
`H04L 51/066 (2013.01); H04L 51/22
`(2013.01); H04L 65/00 (2013.01); H04M
`1/72547 (2013.01)
`
`Field of Classification Search
`USPC ......... 709/202-207, 217-219, 223-229, 246
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2004/0010808 Al
`2004/0015547 Al
`2004/0054646 Al
`2004/0054802 Al
`2004/0158609 Al
`2004/0158610 Al
`2004/0185874 Al
`2004/0221224 Al
`2004/0243941 Al
`2005/0038876 Al
`2005/0080867 Al
`2005/0097061 Al
`2005/0108341 Al
`2005/0114454 Al
`2005/0119910 Al
`2005/0187781 Al
`2005/0216300 Al
`2005/0259656 Al
`2005/0268237 Al
`2006/0080392 Al
`2006/0095562 Al
`2006/0168054 Al
`2006/0248157 Al
`2006/0256816 Al
`2006/0265381 Al
`2006/0268828 Al
`2006/0271630 Al
`2006/0277053 Al
`2007/0043878 Al
`2007/0135099 Al
`2007/0136419 Al
`2007/0168451 Al
`2007/0168529 Al
`2007/0168558 Al
`2007/0192479 Al
`2008/0182559 Al
`2009/0125591 Al
`2009/0187 536 Al
`2010/0099421 Al
`2010/0228747 Al
`2010/0325222 Al
`
`1/2004 DeCarmo
`1/2004 Griffin et al.
`3/2004 Daniell et al.
`3/2004 Beauchamp et al.
`8/2004 Daniell et al.
`8/2004 Davis et al.
`9/2004 Kim et al.
`11/2004 Blattner et al.
`12/2004 Fish
`2/2005 Chaudhuri
`4/2005 Malik et al.
`5/2005 Shapiro et al.
`5/2005 Mathew et al.
`5/2005 D' Angelo et al.
`6/2005 Schneider
`8/2005 Christensen
`9/2005 Appelman et al.
`11/2005 Dollar et al.
`12/2005 Crane et al.
`4/2006 Kawakami et al.
`5/2006 Agarwal et al.
`7 /2006 Burkhart et al.
`11/2006 Daniell et al.
`11/2006 Yarlagadda et al.
`11/2006 Altaf et al.
`11/2006 Yarlagadda
`11/2006 Bensky et al.
`12/2006 Lobb et al.
`2/2007 Carlson et al.
`6/2007 Taylor et al.
`6/2007 Taylor et al.
`7 /2007 Taylor et al.
`7 /2007 Taylor et al.
`7 /2007 Taylor et al.
`8/2007 Felten
`7/2008 Pyhalanuni et al.
`5/2009 Kirkpatrick
`7 /2009 Jackson
`4/2010 Patel et al.
`9/2010 Taylor et al.
`12/2010 Taylor et al.
`
`FOREIGN PATENT DOCUMENTS
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`01020474
`01043357
`03056764
`2004027562
`2004031976
`2004079530
`2005045591
`2005074588
`2006083820
`2007063041
`2007110703
`2007129143
`2007129144
`2008072028
`2008072030
`
`3/2001
`6/2001
`7/2003
`9/2003
`4/2004
`9/2004
`5/2005
`8/2005
`8/2006
`6/2007
`10/2007
`11/2007
`11/2007
`6/2008
`6/2008
`
`OTHER PUBLICATIONS
`
`International Application No. PCT/IB2006/04200, International
`Search Report and Written Opinion mailed Oct. 23, 2007.
`International Application No. PCT/IB2006/04204, International
`Search Report and Written Opinion mailed Jan. 8, 2008.
`International Application No. PCT/IB2006/04205, Corrected Inter(cid:173)
`national Search Report and Written Opinion mailed Apr. 4, 2008.
`International Application No. PCT/IB2006/04264, International
`Search Report and Written Opinion mailed Jun. 30, 2008 .
`International Application No. PCT/US2012/000046, International
`Search Report and Written Opinion mailed Apr. 2, 2012.
`Experts Exchange, LLC, "How to make blinking minimized form in
`title bar vb.net," Jul. 7, 2004 [retrieved online at https://www.
`experts-exchange.corn/questions/20946835/how-to-make-blinking(cid:173)
`minimized-form-in-title-bar-vb-net.htrnl#answerl0778413 on Jan.
`9, 2017].
`
`7/2002 Aggarwal et al.
`11/2002 Maurille
`5/2003 Knight et al.
`1/2006 Mathis
`5/2006 Eschbach et al.
`6/2008 Masonis et al.
`9/2008 Aerrabotu et al.
`2/2009 Kaplan et al. ................ 455/557
`3/2009 Burkhardt
`4/2009 Gruhl et al.
`9/2009 Stillion
`
`G06Q 10/00
`709/206
`
`12/2009 Blattner et al.
`6/2010 Taylor et al.
`8/2010 Heikes et al.
`4/2011 Daniell et al.
`10/2011 Taylor et al.
`3/2012 Ryabchun et al.
`1/2013 Taylor ................. G06F 17 /3089
`709/206
`
`6/2013 Polis et al.
`8,458,347 B2
`8,510,395 B2 *
`8/2013 Taylor et al . ................. 709/206
`2001/0026231 Al
`10/2001 Satoh
`5/2002 Tamir et al.
`2002/0063735 Al
`6/2002 Greene
`2002/0077080 Al
`2002/0091770 Al
`7/2002 Takakura et al.
`10/2002 Mendiolo et al.
`2002/0143916 Al
`2002/0154153 Al* 10/2002 Messinger ............ G06F 9/4446
`715/705
`
`6,415,318 Bl
`6,484,196 Bl
`6,571,234 Bl
`6,993,327 B2
`7,042,879 B2
`7,389,324 B2
`7,426,382 B2
`7,496,379 B2 *
`7,512,619 B2
`7,523,138 B2
`7,587,501 B2 *
`
`7,636,755 B2
`7,730,144 B2
`7,779,076 B2
`7,933,957 B2
`8,037,212 B2
`8,135,774 B2
`8,356,070 B2 *
`
`2003/0028597 Al
`2003/0061382 Al*
`
`2/2003 Saimi et al.
`3/2003 Brown .............. H04L 29/12009
`709/226
`
`2003/0076367 Al
`2003/0088676 Al
`2003/0131061 Al
`2003/0210265 Al
`2003/0222907 Al
`2003/0225846 Al
`
`4/2003 Beneze et al.
`5/2003 Smith et al.
`7/2003 Newton et al.
`11/2003 Haimberg
`12/2003 Heikes et al.
`12/2003 Heikes et al.
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 4 of 18 PageID #: 143
`
`US 9,584,453 B2
`Page 3
`
`(56)
`
`References Cited
`
`OTHER PUBLICATIONS
`
`MozillaZine, "URL displayed in the title bar when we used open
`window," Apr. 29, 2005 [retrieved online at http://forums.mozil(cid:173)
`lazine.org/viewtopic .php?f~25 817 5&start~O&st~O~&sk~t&sd~a
`on Jan. 9, 2017].
`PC Magazine, "Instant-messaging aggregators," May 4, 2005
`[retrieved
`online
`at
`http://www.pcmag.com/article2/
`0,2817,1791523,00.asp on Jan. 9, 2017].
`PC Review, "Change titlebar text in VB code," Jan. 19, 2004
`[retrieved online at https://www.pcreview.eo.uk/threads/change(cid:173)
`titlebar-text-in-vb-code.1080539/ on Jan. 9, 2017].
`PC Review, "Yahoo Messenger and the flashing taskbar message,"
`Jan. 15, 2004 [retrieved online at https://www.pcreview.eo.uk/
`threads/yahoo-messenger-and-the-flashing-taskbar-message.
`1504897/ on Jan. 9, 2017].
`
`* cited by examiner
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 5 of 18 PageID #: 144
`
`\ \
`
`Cllent
`114-1
`
`Client
`114-2
`
`lM Server
`106
`
`IM Server
`.1.DJJ
`
`Server
`104
`
`Client
`
`114-N __ ,
`
`FIG. 1
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 6 of 18 PageID #: 145
`
`200~
`
`Client
`202
`
`e •
`
`00
`•
`
`Client
`210
`
`Other
`Clients
`214-1
`
`Other
`Clients
`214-N
`
`Other
`Clients
`,?14-Ll
`
`--v-~
`Other !M Networks )
`212-2
`
`Other IM Net~,.~~.
`s.
`·
`
`212-J
`
`IM Network
`
`~
`
`Server
`200
`
`FIG. 2
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 7 of 18 PageID #: 146
`
`U.S. Patent
`
`Feb.28,2017
`
`Sheet 3 of 7
`
`US 9,584,453 B2
`
`300~
`
`"
`
`Display
`30§
`
`I
`l
`I
`Ii
`!
`,---.1
`.-1 Network
`lnterface
`308
`
`N et>.vorl{
`Login
`Engine
`~J.il:l
`
`•
`"
`
`Network
`login
`Engine
`310-,N
`
`Contact Aggregation Engine
`
`f
`j
`I
`I
`l
`i
`I
`I
`..-------'-,---------"----, I
`I
`l
`l
`l
`I
`·1------.---------r---l
`I
`I
`!
`I
`I
`l
`I
`I
`I
`l
`I
`l
`
`User Profile dB
`;ti§
`
`Level Contacts d8
`{Optional}
`314
`
`~--------------------
`FIG, 3
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 8 of 18 PageID #: 147
`
`U.S. Patent
`
`Feb.28,2017
`
`Sheet 4 of 7
`
`US 9,584,453 B2
`
`400A~
`
`1w.,
`---~---·------------f..--·
`
`jilll
`!
`~-----~~-""'"-"-....................... ~ ... -............ ______ _
`
`19ft
`
`,4f;§
`
`100
`~---""""'-""'--·-----4---
`
`FIG. 4A
`
`4008·~
`
`. ~-··-·· - - - - ,
`!
`. Sigfl 0<.rt
`i
`
`. I 11<1
`
`FIG. 48
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 9 of 18 PageID #: 148
`
`U.S. Patent
`
`Feb.28,2017
`
`Sheet 5 of 7
`
`US 9,584,453 B2
`
`500~
`
`(
`
`Start
`
`_,.~ 502
`
`Join a !1igh level net\,vork
`
`504
`
`506
`
`Join a !o\iv level network
`
`----
`----
`
`Jorn more low level net\·vorks?
`
`··.
`
`~ 508
`
`M.ainta!n a contacts list associated with
`one or more of the low level networks
`
`510
`
`login to hlg!1 level network
`
`Logout of hig!1 !eve! network
`
`512
`
`Display contacts frorn the !ow level
`networks in an aggregated contact list
`
`No
`
`FIG. 5
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 10 of 18 PageID #: 149
`
`U.S. Patent
`
`Feb.28,2017
`
`Sheet 6 of 7
`
`US 9,584,453 B2
`
`f $02
`
`Login to higt1 level network
`
`/
`
`604
`
`Logrn to !ow level network
`
`606
`
`Display aggregated high level (if
`any) and low ievel contact list
`
`No
`
`No
`
`No
`
`( __ E~-1~ _ )
`
`FIG. 6
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 11 of 18 PageID #: 150
`
`U.S. Patent
`
`Feb.28,2017
`
`Sheet 7 of 7
`
`US 9,584,453 B2
`
`700~
`
`l
`!
`
`Comm
`Interface !
`!
`IlQ
`!
`I
`
`I
`
`I
`
`Display
`Control
`714
`
`......... --~, ... ,.,
`
`Dlsplay Device
`706
`
`Cornputer 702
`
`Processor
`IQ§
`
`Memory
`712
`
`NV Storage
`7·a1
`
`r 720
`
`--·
`!/0 Centro!
`718
`
`-
`....
`
`l/0 Devices
`704
`
`I
`
`!
`
`FIG. 7
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 12 of 18 PageID #: 151
`
`US 9,584,453 B2
`
`1
`CONTACT LIST AGGREGATION AND
`DISPLAY
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`2
`contacts database is not current, the contact aggregation
`engine updates the networks contacts database contact infor(cid:173)
`mation, 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 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
`
`This application is a continuation of U.S. Ser. No. 12/774,
`700, filed May 5, 2010, entitled CONTACT LIST DISPLAY
`SYSTEM AND METHOD, which is a continuation of U.S.
`Ser. No. 11/637,316, filed Dec. 11, 2006, entitled CON- 10
`TACT LIST DISPLAY SYSTEM AND METHOD, which
`claims priority to U.S. Provisional Patent Application No.
`60/748,988, filed Dec. 9, 2005, all of which are incorporated
`herein by reference.
`
`BACKGROUND
`
`Embodiments of the inventions are illustrated in the
`figures. However, the embodiments and figures are illustra-
`15 tive rather than limiting; they provide examples of the
`invention.
`FIG. 1 depicts an example of a system for providing
`instant messages to clients via a web interface.
`FIG. 2 depicts an example of a system for displaying
`20 content from an IM client at an alternative IM client.
`FIG. 3 depicts an example of a system capable of contact
`aggregation and display.
`FIGS. 4A-4B depict examples of screenshots that depicts
`a multi-network IM display.
`FIG. 5 depicts a flowchart of an example of a method for
`contact list aggregation and display.
`FIG. 6 depicts a flowchart of an example of a method for
`aggregated contact list display.
`FIG. 7 depicts a computer system suitable for implemen-
`30 tation of the techniques described with reference to FIGS.
`1-6.
`
`Instant messaging requires the use of a client program 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
`currently 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 25
`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 to the message on a telephone answering
`machine.
`Popular instant messaging services on the public Internet
`include .NET Messenger Service, AOL Instant Messenger, 35
`Excite/Pal, Gadu-Gadu, Google Talk, iChat, ICQ, Jabber,
`Qnext, QQ, Meetro, Skype, Trillian and Yahoo! Messenger.
`These services owe many ideas to an older ( and still popular)
`online chat medium known as Internet Relay Chat (IRC).
`The foregoing examples of the related art and limitations 40
`related therewith are intended to be illustrative and not
`exclusive. Other limitations of the related art will become
`apparent to those of skill in the art upon a reading of the
`specification and a study of the drawings.
`
`DETAILED DESCRIPTION
`
`In the following description, several specific details are
`presented to provide a thorough understanding of embodi(cid:173)
`ments of the invention. One skilled in the relevant art will
`recognize, however, that the invention can be practiced
`without one or more of the specific details, or in combination
`with other components, etc. In other instances, well-known
`implementations or operations are not shown or described in
`detail to avoid obscuring aspects of various embodiments, of
`the invention.
`FIG. 1 depicts an example of a system 100 for providing
`45 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
`50 port 80 is represented in the example of FIG. 1 as an arrow
`110. The server 104 is coupled to the IM server 106 via one
`or more other ports. The two way communication via the
`other ports is represented in the example of FIG. 1 as an
`arrow 112. The IM server 106 is coupled to the IM network
`55 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 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
`60 event queue 116.
`The network 102 may include by way of example but not
`limitation LAN, WAN, VLAN, WLAN, Internet, cellular
`network, phone network, radio network, or some other
`known or convenient network. The term "Internet" as used
`65 herein refers to a network of networks that uses certain
`protocols, such as TCP/IP, and possibly other protocols such
`as the hypertext transfer protocol (HTTP) for hypertext
`
`SUMMARY
`
`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
`eliminated, while other embodiments are directed to other
`improvements.
`A technique for contact list aggregation across a plurality
`of different networks involves logging into low level net(cid:173)
`works 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(cid:173)
`tion the system logs into one or more of the low level
`networks (or facilitates login for a user). The network
`contacts database may include some information about
`contacts associated with the networks from, by way of
`example but not limitation, previous logins or data explicitly
`entered by a user. To the extent that the data in the network
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 13 of 18 PageID #: 152
`
`US 9,584,453 B2
`
`3
`markup 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, but any convenient physical connections or
`protocols could be used.
`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 with the
`number of simultaneous users the system 100 supports. It
`may further be desirable, depending upon details of a
`particular implementation, for the server 104 to have a high
`CPU throughput, together with large amounts of RAM, to
`handle a large number of users. It may further be desirable,
`depending upon details of a particular implementation, to
`accomplish resource sharing via thread handling where a
`pool 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.
`The server 104 may include one or more of an application
`server, database server, web server, banners server, and
`content server, or any combination thereof. To make the
`most of the techniques described herein, the server 104
`should, though is not required to, include at least one
`application server. The other servers can have supporting
`roles in, by way of example but not limitation, serving static
`content or advertising (e.g., banners), storing usage data, or
`fulfilling some other known or convenient function.
`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, the server 104 acts as a carrier of the data from users 35
`to the IM network 108 using a mechanism that controls and
`manages the data ( e.g., text messages, display images,
`emoticons, audio/video streams, etc.) sent between one of
`the clients 114 and the server 104, and vice versa.
`The IM server 106 may be any known or convenient IM 40
`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
`collected in association with a variety of protocols including
`by way of example but not limitation port 1863, port 5050, 45
`port 5222, port 5190, etc.
`The IM network 108 may include one or a combination of
`networks selected from MSN Messenger, Yahoo! Messen(cid:173)
`ger, AIM AOL, ICQ, QQ, Jabber, Google Talk, IRC, or some
`other known or convenient IM network.
`The clients 114 may include any known or convenient
`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
`events. The events can be removed from the event queue 116
`and translated into text, JavaScript, XML, or some other
`known or convenient format that one or more of the clients
`114 need or expect in order to process data associated with
`the event.
`To interact with the IM network 108, the clients 114 send 60
`data to the server 104. The data, which may include com(cid:173)
`mands, is processed and translated into corresponding data
`that will be sent to the appropriate IM network. In an
`embodiment, the appropriate IM network may be determin(cid:173)
`able based upon the protocol encoded in a message.
`Messages or actions from the clients 114 are collected
`over network protocols such as, by way of example but not
`
`4
`limitation, HTTP or plain socket connections. The messages
`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
`5 a non-limiting embodiment, the compliant port is http port
`80. However, any port having similar characteristics to those
`of a typical port 80 could be used.
`The latest available browsers, as of December 2005,
`enable the use of a technique called AJAX (Asynchronous
`10 JavaScript And XML). With AJAX, appropriately config(cid:173)
`ured clients 114 can execute actions and poll for messages
`or events using only JavaScript. The method is based on
`using an XMLHttpRequest object to make HTTP requests to
`15 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 message content.
`For clients 114 that include a browser, when accessing the
`20 server 104 the browser typically uses hidden HTML frames
`to update information on visible frames. The visible frames
`display appropriate information while the hidden frames are
`reloaded in short periods of time. In each refresh that hits the
`server 104, the browser identifies the current messaging
`25 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
`30 or events keeping the information up to date in the screen.
`In this way, automatic refreshing can take place in a hidden
`frame.
`In another embodiment, certain of the clients 114 with
`browsers may not make use of refreshes. For example, a
`form of updating the screen without using a refresh tech(cid:173)
`nique is to keep one single HTTP socket request alive for the
`whole period of a messaging session without actually clos(cid:173)
`ing the socket connection. In this example, information is
`initially 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 docu-
`ment through the same HTTP socket kept alive and managed
`by the server 104. For each event or message, the browser
`can interpret the JavaScript code injected and the corre(cid:173)
`sponding parts of the HTML document and windows will be
`updated.
`In another embodiment, certain of the clients 114 with
`browsers may make use of manual refreshes. Some rela(cid:173)
`tively unsophisticated browsers, such as WAP and xHTML
`50 browsers often available on mobile phones, do not support
`hidden frames and/or JavaScript (and others may be con(cid:173)
`figured such that they do not support hidden frames and/or
`JavaScript). In such cases, the information displayed has to
`be updated manually by the user. Manual updating enables
`55 any mobile phone, PDA, TV Set or any device with a
`browser to connect to the server 104 and use the messaging
`platforms made available by the server 104 assuring the
`communication between the clients 114 and the IM server
`106.
`Message history can be stored by most IM clients on a
`local computer. For alternative web and mobile-based cli(cid:173)
`ents local storage may not be possible. In a non-limiting
`embodiment, the server 104, may have the capability to store
`message history from IM conversations done via one or
`65 more of the clients 114. The message history can be accessed
`and searched at any time via the server 104 by one or more
`of the clients 114
`
`
`
`Case 1:20-cv-01501-UNA Document 1-2 Filed 11/06/20 Page 14 of 18 PageID #: 153
`
`US 9,584,453 B2
`
`5
`FIG. 2 depicts an example of a system 200 for displaying
`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).
`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 10
`formatted 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 15
`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 20
`shown by way of example in FIG. 1). Depending upon the
`embodiment and/or implementation, the content may also be
`formatted as appropriate for one or more of the other IM
`networks 212, to be made available for one or more of the
`other clients 214.
`In an embodiment, the server 206 can save the content in
`one or many formats. In this way, the client 202 could make
`content available in a first 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
`first 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.
`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(cid:173)
`limiting embodiment, if the client 202 does not or cannot
`install client software, the client 202 can use a browser for 50
`web-based messaging and display.
`FIG. 3 depicts an example of a system 300 capable of
`contact aggregation and display. The system 300 includes
`low level networks 302-1 to 302-N (collectively referred to
`as the low level networks 302), a computer 304, and a 55
`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
`computer system.
`The computer 304 includes a network interface 308,
`network login engines 310-1 to 310-N (collectively referred
`to as network login engines 310), network contacts data(cid:173)
`bases 312-1 to 312-N ( collectively referred to as the network
`contacts database 312), a high level contacts database 314, 65
`a user profile database 316, and a contact aggregation engine
`318.
`
`6
`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).
`The network login engines 310 may include logic and
`storage that facilitates login to the various low level net(cid:173)
`works 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)
`associated with the low level network 302-1. Conceptually,
`each of the network login 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-specific sense ( e.g., the data provided from a user that
`enables login to accounts associated with the user).
`The network contacts database 312, which is embodied in
`a computer-readable medium, includes contacts data asso(cid:173)
`ciated 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, depend(cid:173)
`ing upon the implementation and/or user configuration.
`The high level contacts database 414, which is embodied
`25 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 first reason is that a system need not provide the
`ability to maintain high level contacts, requiring that a user
`30 maintain only low level contacts. The second reason is that
`even if the system provides the ability to maintain high level
`contacts, a user may opt not to maintain any high level
`contacts, opting instead for low level contacts.
`The user profile database 416, which is embodied in a
`35 computer-readable medium, is intended to represent data
`associated with a user. The amount of data maintained is
`implementation-specific.
`The contact aggregation engine 418 is coupled to the
`databases 412, 414, 416