`US007123695B2
`
`(12; United States Patent
`Malik
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,123,695 B2
`Oct. 17, 2006
`
`(54) VUICE MESSAGE l)El.I\"ICRY OVER
`INSTANT NIESSAGING
`
`(56)
`
`References Cited
`U.S. PATTNT DOCI IMENTS
`
`I-"I994 (iasper et .11.
`S-""2002 Dowens el
`:11
`I [-2002 Lew et ai.
`4-"2003 Chen et al.
`5-2003 (indjonsson et al.
`I0-"2003 Miller
`152004 Nabke] el al.
`3-'2(J05 Sagi et at.
`9-"2002 Becker el al.
`
`.
`
`
`
`"F04-"200
`3?9'52
`379.-"'88. I2
`3?9"3'.-'
`T0‘).-'22?
`400.-"472
`3T0-‘Z52
`455.-'412.|
`
`5.2?8.943 A "
`6.389.114 Bl “
`6.483.898 Bl “
`6.5S3.l00 Bl “‘
`6564.26] Bl “'
`6.629.".-'93 Bl "'
`fi.6?4.T25 Bl “
`6.855.384 BI *
`2002:'0l30904 .-’\l "‘
`
`* cited by examiner
`
`I’rinmr_1‘ E.\‘t:m:'ncr Gerald Gauthier
`(T4)
`-*!e‘rornr2_t', Agent.
`or
`F':‘rm—T|1on1as. Kayden.
`llorslelneyer & Risley. l.l..P
`
`( * ) Notice:
`
`Inventor: Dale W. Malik. Dunwoody. GA (US)
`(75l
`(T3) Assignee: Bellsnuth Intellectual Property
`Corporation. Wilmington. DE (US)
`Subject to any disclaimer. the temt of this
`patent is extended or adjusted under 35
`U.S.(‘. 154(h) by 0 days.
`(21) Appl. No.: 101223.903
`
`(22) Filed:
`
`Aug. 19.. 2002
`
`(65)
`
`Prior Publication Data
`US 2003.-'02l9l04 Al
`Nov. 27. 2003
`
`Related U.S. Application Data
`
`(60)
`
`Provisional application No. 602382.106. filed on May
`21. 2002.
`
`(5?)
`
`.\BSTRA( ."!'
`
`(51)
`
`[I1t. (II.
`HMM [1206
`(52) U.S. Cl.
`
`(58)
`
`(2006.01)
`379188.13: 379393.09:
`455."4l2.l: 455:’-41-4.]; 455!422.l; 455.9133
`Field of Classification Search
`37952.
`379038. 14. 93.15. 100.09. 201.0]. 205.01.
`37"9:"88.|3. 88.19: 348404. I5. 16.17: 455r"4l7:
`T044258. 260
`See applieat ion [ile lor complete search history.
`
`(Jne preferred embodiment of the present invention provides
`a S}'SIt3l1'I and method liar sending voice instant messages.
`Briefly described.
`in areliitectune. one embodiment of l|1e
`system. among others. includes 3 cotmtmnieations client of
`a user that is eonligtlred to generate a voice instant message
`and send a voice instant message to another user. Methods
`and other systems are also provided.
`
`42 Claims. 9 Drawing Sheets
`
`mo
`—
`
`PROVIDE DESC RIPTEVE
`CAPTION
`fl
`
`E
`
`A FIRST user: tmmokizes A
`THE. VIM CLIENT OF THE SECOND
`
`secown uses TO BE ABLE TO SEND
`USER GENERATES VOICE.
`A VOICE INSTANT MESSAGE To THE
`
`RECORDING
`
`FIRST Us ER
`Q
`
`
`
`
`GENERATE VOICE
`INSTANT MESSAGE.
`fl
`
`STOR E VOICE. INSTANT
`MESSAGE UNTIL FIRST
`USER IS PRESE1\"['4.__.5
`
`DNLFNE PRESENCE OF
`THE FIRST USER I5
`DETECTED
`48
`
`VOICE INSTANT
`MESSAGE IS
`DELIVERED TO VIM
`CLIENTOF THE FIRST
`
`USER.
`
`is‘;
`
`
`
`
`
`
`
`CAPABLE‘?
`E
`
`
`
`THE VLM CLLENT OF‘ THE SECOND
`USER CHECKS ‘PO SEE ll‘ 'l'l~|E
`SECOND USER IS AUTHORIZED TO
`LEAVE A VOICE MESSAGE FOR TH E
`FIRST USER
`E
`
`
`
`
`
`
`
`
`
`THE VIM CLIENT OF THE SECOND
`USER RECEIVES A REQUESTFROM
`THE SECOND USER TO SEND AN
`INSTANT MESSAGE TO THE FIRST
`
`USER WHO IS NOT PRESENT 420
`THE VIM CLIENT OF TH E SECOND
`
`
`USER INVITES THE SECOND USER
`TO SEND A VOICE INSTANT
`
`THE \«'l.|\-‘I CLIENT OF THE SECOND
`MESSAGE TO THE FLRST USER ‘S0
`USER DETECTS THAT THE FIRST
`
`
`
`USER IS NOT PRESENT AND
`
`AV .1\lLABl,E 425
`
`
`
`
`AUTHOR]ZE.D'.’
` E
`‘ms VIM CLIENT or ‘THE SECOND
`
`USER enecxs ‘F0 see LE-‘ rr IS
`CAPABLE or GENERATING A VOICE
`
`neconnmo
`gm
`
`0001
`
`Apple 1007
`U.S. Pat. 7,535,890
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 1 of9
`
`US 7,123,695 B2
`
`FIG.1 (PRIORART)
`
`If!
`F‘!
`
`'6')
`o
`
`"'1
`Z
`
`ca('7I’.
`
`c:(‘-1
`
`V3
`
`‘ 0
`
`002
`0002
`
`:3
`
`"'
`
`O
`«r
`
`V"?
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 2 of 9
`
`US 7,123,695 B2
`
`
`
`HZHAUmmmmflI
`
`mom
`
`
`
`H2540mmmmfi
`
`HM?»MODEN.05
`
`
`
`Hzmfiummmmfl
`
`8
`N
`
`SN
`
`
`
`H2940mmmmfi
`
`
`
`HZHAUmmmmi
`
`.oN
`
`mmmmi
`
`mmimm
`
`
`
`HZMEOmmmmfl
`
`SN
`
`0003
`0003
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 3 of 9
`
`US 7,123,695 B2
`
`
`mmm:
`
`mzoumm<noHZMEO.23
`
`.52.2200
`
`«mm
`
`N2
`
`mmoxoummmu_o>
`
`m.03
`
`
`
`._.mZ.2200
`
`2...
`
`
`mum:
`
` »mEn_4moezmzo.23
`
`em
`
`0004
`0004
`
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 4 of9
`
`US 7,123,695 B2
`
`3
`
`QZO:.n_<U
`
`m>_EEummnme>om___
`
`%oaoxoumm
`
`
`
`85>mmfiémzmoammo
`
`0nzoommmin_Oezmnu_>:>m:.:
`
` mE.opmofimmzE<._.mz_85><azmmo...m:m<mmOhmum:ozoumm<mm_~Eo_.:.:<mum:5.5<
`
`fin
`
`55>Efiazmo
`
`
`
`mo<mmms_.E<$z_
`
`
`
`hZ<hm7:mu_o>$0.5
`
`v.05
`
`2.3yam:
`
`Em:atmohzmao
`
`
`
`E,am~EoE:<m.«mm:azoomm
`
`:3mmm:Sm;
`
`
`
`m_.:.xommoémmz85><m><m._
`
`Ewzmmmfi2mum:
`ca.ammoSE2:,0+mo<mmm:
`
`
`
`._.z§mz_85><nzmmow
`
`Ex:.52:moémmz
`
`
`
`
`
`mum:nzoomm2:.mm:>z.«mm:
`
`
`
`E.Bbmin
`
`
`
`momuzmmmmmm7:HZO
`
`m.mum:Emamze
`
`Q_....nmNEO_.:.D<
`
`
`
`»z<.Sz_mu_o>
`
`
`2:,Op.nm:n,_>_._m_o2moémmg
`azoummB:noezmsu25E?
`
`mapEmumopmmomzommm:
`
`3ozamoumm
`
`ozoummmm....5._.zm:u2:,2.:
`
`m_u_o><ozfiémzmo"5Bm§<o2:5mm;2.mzomzu
`yam:
`
`3»m._m<.:<><
`
`ozoummmap“.0ezmfiu2;mm...
`
`
`
`Emamzebiz.meomemommm:
`
`oz<Hzmmmx;52w_mum:
`
`0005
`0005
`
`
`
`azoumm2.?mo._.Zm.EO_2n>3:oww.HzmmmmmH02m.OI?mmmfl
`
`
`
`
`
`
`
`
`
`3$8Em:
`
`azoummm:.:.no._.zm:u25E:
`
`
`
`:9:E503.<mmamummyam:
`
`
`
`Z<92%O._..mum:ozoumm2:.
`
`emu:MIHOHmo<mmm2E52
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 5 of9
`
`US 7,123,695 B2
`
`500
`
`7”
`
`PRESENCE STATUS OF VIM CLIENT OF
`
`FIRST USER CHANGES FROM OFFLINE TO
`ONLINE
`
`gm
`
`STORED VOICE INSTANT MESSAGE IS
`DELIVERED TO VIM CLIENT OF FIRST USER
`
`520
`
`VOICE RECORDING TN VOICE INSTANT
`MESSAGE IS PLAYED
`
`530
`
`FIG. 5
`
`0006
`0006
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 6 of9
`
`US 7,123,695 B2
`
`o.05
`
`HDm._.DO.._._.D.w7m
`
`Qmuremo
`
`85
`
`Sc
`
`HZMEUE3
`
`film.mm
`
`mommmuomm
`
`ma
`
`flomu§mBz_#63
`
`0007
`0007
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 7 of9
`
`US 7,123,695 B2
`
`
`mmw:
`
`ozoumm<moezmsu_>:>
`
`amomoommmu_o>
`
`Rm
`
`h.05
`
`can
`
`ezmsu23
`
`$205mimosa
`
`><3m._..<O
`
`0008
`0008
`
`
`
` MMWD52:<n_OFZEJU_>:>
`
`Em
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 8 of9
`
`US 7,123,695 B2
`
`mzo_.am.m:.2+2
`
`w.05
`
`,:<2m§o>
`
`zmfimxm
`
`Sm
`
`l|I\I\\mamsoS=>
`
`ea
`
`0009
`0009
`
`Emmi<"5pzmso3:.)
`«mm:
`
`em
`
`
`
`mmfiaaO_DD<
`
`NTr.
`
`
`
`
`
`US. Patent
`
`Oct. 17, 2006
`
`Sheet 9 of9
`
`US 7,123,695 B2
`
`A FIRST USER SUBSCRIBES TO A VOICE MESSAGING SYSTEM 910
`
`THE FIRST USER DESIGNATES THAT NEW VOICEM AIL RECORDINGS
`
`ARE TO BE FORWARDED TO A VIM CLIENT
`
`21_5
`
`NEW VOICEMAIL RECORDING FOR THE FIRST USER IS GENERATE£D
`
`TELEPI-IONE NUMBER OF ORIGINATOR OF VOICEMAIL RECORDING
`
`IS OBTAINED AND ASSOCIATED WITH THE VOICEMAIL RECORDING
`
`2-?_5
`
`A VOICE MESS AGING INSTANT MESSAGE CONTAINING A
`REEERENCE LINK IS GEBEERATEDAND FORWARDED TO VIM SERV9%I{{)
`
`A VOICE MESSAGING INSTANT MESSAGE IS SENT TO THE VIM
`
`CLIENT OF THE FIRST USER AND DELIVERED TO THE FIRST USER AS
`
`SOON AS THE FIRST USER IS PRESENT
`
`Qgg
`
`VIM-CLIENT OF THE FIRST USER RECEIVES THE VOICE MESSAGING
`
`INSTANT MESSAGE
`
`REFERENCE LINK IS ACTIVATED
`
`E
`
`E
`
`ASSOCIATED VOICE RECORDING IS INCLUDED IN A VOICE INSTANT
`
`MESSAGE AND SENT TO VLVI CLIENT OF THE FIRST USER QE
`
`VOICE RECORDING IS DELETED FROM VOICE MESSAGING SYSTEM
`2%
`
`VOICE INSTANT MESSAGE IS RECEIVED AND VOICE RECORDING IS
`
`PLAYED
`
`FIG. 9
`
`0010
`0010
`
`990
`
`
`
`US 7,123,695 B2
`
`1
`VOICE MESSAGE DELIVERY OVER
`INSTANT MESSAGING
`
`CROSS-REFERENCE TO RELATED
`APPI. [CAI[ION
`
`This application claims priority to copending U.S. provi-
`sional application e11titled_. “Integration oflnstant Messaging
`and Computer Operating Systenis." having Ser. No. 60!382.
`106, filed May. 21. 2002. which is entirely incorporated
`herein by reference.
`
`'[‘l.iC[lNI(TAI. I’iF[..[)
`
`The present invention is generally related to communica-
`tions and. more particularly.
`is related to a system and
`n1etl1od for relaying voice messages over a communication
`network.
`
`BACKGROUND OF THE INVENTION
`
`Presence and availability are terms used to describe a
`present ability of an individual to communicate. Presence is
`an ability of an individttal to corrununicate in real time. and
`availability is the willingness ofan individual to communi-
`cate in real time. In communications. it is advantageous to
`know whether a potential
`recipient of a communication
`message is present and available.
`i.e._. available to receive
`and respond to the message before initiating the transmis-
`sion of the message. By making the presence and availability
`of individual users known before any contmnnication is
`attempted. a realtime communications environment is facili-
`tated that is more elfective and less obtrusive than conven-
`tional communication mediums. Clearly. the coinmunication
`message that is sent to an addressee that is known to be
`present and available is more likely to be received promptly
`than a conventional message. For example, olien times.
`conventional telephone calls are forwarded to a person"s
`voicemail and are never returned.
`
`Instant messaging ([M) is one comnninication medium
`that employs presence and availability technology. An
`instant messaging network recognizes when a user
`is
`present“ on the network. Accordingly. the network sends
`notification to other users (usually members of a “buddy
`list“ or “contact list“) that are also logged on the network
`that the user is “present.” Further. instant messaging lets a
`user display custotn status messages to his “buddies” online
`about
`the user's “availability." For example. a user can
`specify his availability status as being “busy. not
`taking
`messages." Therefore another user on the “buddy list" that
`is connected to the instant messaging network will be
`notified that although the user is present on the network. he
`is not available for receiving messages. Presence and avail-
`ability information is most useful when an individual shares
`his or her online status with a trusted group of users. A
`connnunication message sent
`to someone who is readily
`present and available is less obtrusive. when the addressee
`has made hintself or herself available to the comntunicatiolt.
`
`An example of a traditional “closed” instant messaging
`(IM) architecture is shown in FIG. 1. The traditional [M
`architecture consists ofa central [M server [05 connected to
`a number ofindividual clients (110. 115. 120. 125, I30. I35.
`140. and 145) in a closed network. For example, to send an
`instant message from client [[0 to client 145. [M client 110
`first connects with an [M server 105 using a proprietary
`protocol. For example. AOl.tR; and Yahootllb use l(.'Q. Once
`the [M client 110 is connected to the [M server 105. the user
`
`2
`
`logs on by entering a user name and password. The [M client
`110 then sends the [M server 105 the connection informa-
`
`tion, such as the [P address and the munber of the port
`assigned to the [M client and the name and [P address of
`everyone in the [M contact list associated with the IM client
`110. An [M client may communicate directly with other [M
`clients if the [P addresses of these [M clients are known to
`
`the tra11s111itti11g IM client. For convenience. the lines of
`communication between individual [M clients are not shown
`in FIG. 1.
`
`lll
`
`The [M server 105 then creates a temporary file that
`contains the connection information for the [M client 110
`and for each IM client 115. 120. 125. 130. 135. 140. 145.
`Once the temporary files have been created. the [M server
`105 checks the network to detennine whether any [M client
`identified by the contact list associated with [M client 110 is
`currently logged into the system. If the [M server 105 finds
`any of the contacts logged onto the network. the [M server
`105 sends it message back to the [M client [It] with the
`connection information for each IM client I15. ]20. I25.
`130, 135, 140, 145 currently logged onto the network. When
`the ]M Client 110 receives the connection infonttation, the
`presence status of that particular [M client 115. I20. I25.
`130. I35. 140. 145 is updated to “Online.“ for example. The
`presence status is displayed to the user. At this point the user
`may select any [M client H5. 120. 125, 130, I35, I40. 145
`that is registered “Online.” at which point a dialog box will
`appear in which the user may enter text. Because the [M
`client 110 knows the [P address and port number of the [M
`client 145. the message is sent directly to the recipient [M
`client 145. The [M client 145 then receives the instant
`
`message and can respond. Once the [M session is complete
`the dialog box is closed. and the IM client 110 goes olliine
`and sends it message to the [M server 105 tenninating the
`session. The [M server 105. in response to acknowledging
`that the [M client 110 has logged ofl'. generates a message to
`each ofthe [M clients 115. I20. I30. 140. 145 on the client
`list of [M client 110 indicating that [M client 110 is logged
`ofl" the network.
`
`Jabber is an example of an “open" instant messaging
`architecture. Jabber, available from Jabber, Inc. of Denver,
`(.'o.. includes an [M system focusing on providing [M access
`to a user. Jabber includes an Extensible Markup Language
`(XML) open source server software that was developed by
`a community of developers over the lnternet. Jabber allows
`conunun.ication among applications and systems across plat-
`forms. Developers write additional modules to submit them
`back for possible incorporation into the Jabber software.
`A block diagram illustrating a prior art [M network that
`uses Jabber interoperable XML-based network architecture
`is shown in FIG. 2. Jabber is a real—time communications
`platform based on open protocols whose architecture is
`based on the well-known electronic mail system. Because
`Jabber is based on the email system. the .[abber architecture
`contains distributed network servers. called Jabber servers
`215 -217 and clients. known as Jabber clients 200 -205 that
`receive and send messages to Jabber clients 200 -205 con-
`nected to other Jabber server 215-217 on the Internet.
`
`However. unlike typical entail systems. which are store and
`forward systems. Jabber delivers messages in real
`time
`because the Jabber server 215-21‘? knows when a particular
`Jabber client 200- --205 is online and available.
`
`3U
`
`35
`
`4t":
`
`45
`
`50
`
`55
`
`60
`
`The Jabber architecture is based on client-server architecture
`and not o11 a client—to—client architecture. as are most [M
`systems. Messages from Jabber client 200 to Jabber client
`20] must pass through the Jabber server 215. [Each _labber
`0011
`0011
`
`
`
`US 7,123,695 B2
`
`3
`client 200-205 is attached to a local Jabber server 215-217.
`Each local Jabber server 215-217 receives infonnation from
`one Jabber client 200-205 and transfers the information to
`
`another Jabber client 200-205 along with presence and
`availability information. Each local Jabber server 215- -21?
`functions independently from one another. and can eo1runu-
`njcate with any other Jabber server 215-217 that is con-
`nected to the I11ter11et as long as it has been identified. and
`predisposed to do so ahead of time. Each local Jabber server
`215-217 performs two functions: listening for and commu-
`nicating directly with Jabber client applications 200-205.
`and comruunieating with other Jabber servers 215 -217.
`liach local Jabber server 215--217 consists of multiple
`components that separately handle individual functions with
`the Jabber system.
`In many instant messaging communications, if a user is
`not present to receive an instant message. the instant mes-
`sage can still be sent and queued in the IM server 105 or
`Jabber server 215-217 that is servicing the IM client of the
`user. The MI server will hold the message until the user is
`present again on the instant messaging network.
`In this
`manner. the instant message is delivered to the user as soon
`as the user is present on the instant messaging network.
`Today's instant messaging services mostly focus on the
`storing of text instant messages in a queue for later delivery
`to the user once the user becomes present on the network.
`I-Iowever. toda)/‘s service typically does not allow for non-
`text
`instant messages to be stored in a queue for later
`immediate delivery. Thus. a heretofore unaddressed need
`exists in the industry to address the aforementioned defi-
`ciencies and inadequacies.
`
`SUMMARY OF THE INVENTION
`
`Preferred embodiments of the present invention provide
`systems and methods for sending voice instant messages.
`Briefly described.
`in architecture. one embodiment of the
`system, among others. can be implemented as follows. A
`connnunications client of a user is configured to: generate a
`voice instant message and send a voice instant Iuessage to
`another user.
`The present invention can also be viewed as providing
`methods for sending voice instant messages. In this regard.
`one embodiment of such a method, among others, can be
`broadly summarized by the following steps: generating a
`voice instant message: and sending a voice instant message.
`Other systems. methods. features. and advantages of the
`present invention will be or become apparent to one with
`skill in the art upon examination of the following drawings
`and detailed description. It
`is intended that all such addi-
`tional
`systems. methods,
`features. and advantages be
`included within this description and be within the scope of
`the present invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Many aspects of the invention can be bener understood
`with reference to the following drawings. The components
`in the drawings are not necessarily to scale, emphasis instead
`being placed upon clearly illustrating the principles of the
`present invention. Moreover. in the drawings. like reference
`numerals designate corresponding parts throughout the sev-
`eral views.
`
`FIG. I is a block diagram of a closed instant messaging
`architecture of the prior art.
`l"I('i. 2 is a block diagram of an open instant messaging
`architecture of the prior art.
`
`4
`
`FIG. 3 is a block diagram of a voice message delivery
`system of one preferred embodiment of the present inven-
`tion.
`
`FIG. 4 is a flowchart describing the functionality of a
`representative implementation of the voice message delivery
`system of FIG. 3.
`FIG. 5 is a fltiwcllafl describing the functionality of a
`representative implementation ofthe voice message delivery
`system of FIG. 3.
`FIG. 6 is a block diagram of an implementation of the
`VIM client in FIG. 3 using a general computer system.
`FIG. 7 is a block diagram of a voice message delivery
`system of one preferred etllhoditncnl of the present inven-
`tion.
`
`ll]
`
`FIG. 8 is a block diagram of a voice message delivery
`system of one preferred embodiment of the present inven-
`tion.
`
`FIG. 9 is a flowchart describing the litnctioiiality of a
`representative implementation of the voice message delivery
`system of FIG. 8.
`
`DILTAILLEI) DlF.SC_‘RIP'l‘lON OF 'l'llli
`PREFERRED EMBODIMENTS
`
`3o
`
`35
`
`Depicted in FIG. 3 is a block diagram of one represen-
`tative enibodiment. among others. ofa voice message deliv-
`ery system 300. The voice message delivery system 300
`includes a voice instant messaging (VIM) client 310 of a Iirst
`user. wherein the VIM client 310 is configured to receive
`and play a voice recording [via an audio player 312, for
`example) in a voice instant message it receives from other
`users. such as a second user. Accordingly, a VIM client 320
`of the second user is configured to generate a voice record-
`ing [via a voice recorder 322. for example) of the second
`user and include the voice recording in an instant message
`upon accepting a VIM invitation. A VIM invitation is a
`message that is trimsmitted by the VIM client 310 of the first
`user to the VIM client 320 of the second user. wherein the
`
`4t":
`
`45
`
`message invites or prompts the VIM client 320 of the smond
`user to generate a voice recording for the that user.
`Each VIM client 310, 320 communicates with and
`receives presence status information from a VIM server 330
`via the Internet or some other corrununication network 325.
`The VIM server 330 may act as a single IM server 105 of
`FIG. I or a local IM server. such as a .Iabber Server 215 of
`FIG. 2. The VIM server 330 monitors the presence inflor-
`mation of the VIM clients. such as the VIM client of the first
`user310_. and notifies a VIM client 310 ofthe presence status
`information of other VIM clients 320 and their associated
`users. Accordingly, the VIM server 330 includes the capa-
`bilities of conventional IM servers and the additional capa-
`bilities for handling VIM message delivery and storage.
`For example. in one preferred embodiment of the inven-
`tion. the first user designates contact parameters. The contact
`parameters are criteria on (a) whom a user wants to receive
`presence infonnation about and (b) how a user wants to
`receive the presence information. Within the contact param-
`eters. the first user may name the second user as a person
`about whom the first user wants to receive presence infor-
`tnation about. Other information may also be contained in
`the contact parameters such as
`the instant messaging
`addresses of the people named in the contact list. The contact
`parameters are then stored in a centralized storage medium
`340 that is accessible by the VIM client 310 of the first user
`or the VIM server 330 depending upon the architecture of
`the instant messaging network.
`0012
`0012
`
`50
`
`55
`
`60
`
`
`
`5
`
`US 7,123,695 B2
`
`6
`
`111 a closed system (FIG. I), tl1e contact parameters are
`typically stored in a storage medium (not shown) that is
`accessible by the VIM client 310. 320. such as an internal
`disk drive of a general purpose computer or the memory of
`a mobile device. Then. a copy of the contact‘ parameters are
`given to the VIM server 33!]. In an open system (l"'I(i. 2),
`however.
`the co11tact parameters are stored in a storage
`n1ediu111 (not shown) accessible by the VIM server 33 0. such
`as an internal disk drive or a separate storage niedium, such
`as a database. The VIM server 330 then forwards a copy of
`the contact parameters to the VIM client 310. Typically. the
`VIM client 310 knows from the contact parameters the
`t'taJ'nes of the people that the first user wants to receive
`presence status infonnation about. Accordingly. the voice
`message delivery system can be incorporated over many
`instant messaging configurations. such as peer-to-peer. with
`the VIM server 330 providing primarily passive directory
`services. and clients-to-clients, with a single VIM server 330
`providing directory services as well as message queuing and
`delivery.
`In one preferred embodiment of the invention, whenever
`a user is not present and available to receive an instant
`message. a voice instant message may be stored in a queue
`340 of the VIM server 330 for the user. Accordingly. the
`voice instant message is delivered to the user the next time
`that the user connects to the instant tnessaging network via
`his or her IM client. In an alternative preferred embodiment
`of the present invention. a user (“first user") may designate
`or authorize the people named on his or her contact param-
`eters from whom the user will accept voice instant messages.
`Accordingly. a VIM client of an authorized user (“second
`user”) can check to see if the second user is authorized by
`the first user to generate a voice instant message for the first
`user. "lhese designations are specified in a set of voice
`contact parameters that may be a subset of the contact
`parameters. or the voice contact parameters may be stored
`separately fro111 the contact parameters. Preferably. the voice
`contact parameters of a first user are readily accessible by
`the VIM clients of other users. such as the second user. so
`that the VIM clients of other users can verify if the first user
`has authorized the other users to send a voice instant
`message to the first user.
`The flowchart of FIG. 4 shows the functionality of a
`representative implementation ofthe voice message delivery
`system 300 of the present invention. It should also be noted
`that in some alternative implementations the functions noted
`in the various blocks may occur out of the order depicted in
`the flowchart of FIG. 4. I"or example. two blocks shown in
`succession in FIG. 4 may. in fact. be executed substantially
`concurrently. Altematively, the blocks may sometimes be
`executed in the reverse order depending upon the function-
`ality involved. In other embodiments, some blocks shown in
`FIG. 4 are omitted.
`
`As depicted in FIG. 4. the functionality of a representative
`embodiment of the voice message delivery system 300 or
`method 400 may be construed as beginning at block 410. In
`block 410, a first user designates in voice contact parameters
`that the first user will accept voice messages from a second
`user. For example, a first user may specify in his or her
`contact
`list
`the persons that
`the first user would like to
`provide voice instant messaging capability to. via checking
`a box by that person’s name in the person's contact list. for
`example. The contact parameters are stored in a centralized
`storage medium 340 that is accessible by the VIM client 310
`of the first user or the VIM server 330 depending upon the
`arch.itcctt.tre of the instant messaging iietwork. Therefore. at
`a later time, when an authorized user attempts to send an
`
`instant message to the first user and the: first user is not
`present andfor available, the authorized user may be given
`the opportunity to generate a voice instant message for the
`lirst user. In altemative embodiments. the authorized user
`may generate a voice instant message regardless of the
`presence andfor availability state of the first user.
`In block 420. the VIM client 320 of the second user
`
`receives a request or prompt by the second user to send an
`instant message to the lirst user. Typically. the request is
`generated after the second user attempts to initiate the
`transmission of the instant message. The VIM client 320 of
`the second user. however. detects that the lirst user is not
`present andfor available and. therefore, does not initiate the
`sending of the instant message. as shown in block 425.
`Accordingly. in blocks 430-435. the VIM client 320 of the
`second user checks to see if the computing device of the
`VIM clicnt 320 is capable of generating a voice recording.
`Typically. the voice recording capabilities of the computing
`device are specified in settings of the VIM client by the
`second user.
`In blocks 449 445.
`the VIM client of the
`second user also checks the voice contact parameters of the
`first user to see if the second user is authorized by the first
`user to leave a voice instant message for the first user. If the
`second user is not authorized to leave a voice instant
`
`message or if the VIM client 320 of the second user cannot
`generate a voice recording. the second user is then given the
`option of sending a textual instant message and having the
`message placed in a queue of the VIM server 33!]. as shown
`in blocks 436 and 446. Alternatively. the second user may
`not be able to store the instant message in a queue.
`If the second user is authorized to leave a voice instant
`
`message zmd the VIM client 320 ofthe second user has the
`capability to leave a voice instant message, then the VIM
`client 320 of the second user invites or prompts the second
`user to leave a voice message, as depicted in block 450. If
`the second user declines the VIM invitation, then the second
`user again is given the option of sending a textual instant
`message and having the message placed in the queue of the
`VIM server 330. as shown in blocks 455 and 456. However.
`in block 460. if the second user accepts the VIM invitation.
`then the VIM client 320 of the second user starts a voice
`recorder 322. Accordingly, the second user speaks into a
`microphone that is coupled to the computing device of the
`VIM client 320 of the second user. and the VIM client 320
`of the second user generates a voice recording for the first
`user.
`
`5
`
`ll]
`
`3U
`
`35
`
`4t":
`
`45
`
`50
`
`55
`
`60
`
`In block 465. after the voice recording has been gener-
`ated. the VIM client 32!) of the second user prompts the
`second user to type a descriptive caption for the voice
`recording. Then in block 470, a voice instant message is
`generated by including the descriptive caption and the voice
`recording in an instant message. The descriptive caption
`may be marked by XML tags so that it can subsequently be
`identified by the VIM client 310 of the lirst user. If a
`descriptive caption is not provided by the second user, the
`voice instant message may be sent without the caption.
`The voice instant message is sent to the VIM server 330
`and stored in a VIM queue 340 of the VIM server 358. as
`depicted in block 475. Next. in block 480. the VIM server
`350 detects when the first user is present andfor available to
`receive instant messages again by monitoring the presence
`status of the first user. Then. the VIM server 33!} delivers the
`voice instant message from the VIM queue 340 to the VIM
`client 310 of the first user_. as depicted in block 485.
`FIG. 5 is a flowchart depicting a method 500 for receiving
`and playing a voice instant message at the VIM client 310
`of the first user for one preferred embodiment of the inven-
`0013
`0013
`
`
`
`US 7,123,695 B2
`
`7
`In block 510, the VIM client 310 of the first user
`tion.
`changes from an ollline presence status to an online presence
`status. In block 520, tl1e voice instant messages stored in the
`VIM queue 340 for the first user are delivered to the VIM
`client 310 of the first user. Each voice instant message
`contains a descriptive caption a11d a voice recording that was
`provided by the originator of the voice instant message. As
`depicted in block 530. the first user via the VIM client 310
`plays the voice recording by activating the recording using
`a mouse click or a keysuoke from a keyboard or keypad. for
`example. Alternatively, the voice instant message may not
`be delivered to the first user. until the first user specifically
`requests for the voice instant message to be sent from the
`queue.
`In some embodiments of the present invention. the voice
`instant message is distinctively marked with XML tags so
`that a VIM client 3.10 that receives a voice instant message
`will recognize the instant message as a voice instant ines-
`sage. Additionally. the descriptive caption tnay be marked so
`that the VIM client may display the caption without opening
`the voice instant message. After a VIM client 310 recognizes
`a marked voice instant message. the VIM client 310 may
`prompt the recipient of the voice instant message to send a
`voice instant message in reply. The reply voice instant
`message would then be delivered irmnediately to the
`addressee if the addressee is presently online. Else. the voice
`instant message would be stored in a VIM queue 340.
`Additionally.
`in some embodiments of the invention
`where the voice instant message is not automatically deliv-
`ered to the first user, the VIM server 340 sends the VIM
`client 31 0 o fthe first user a list ofthe voice instant messages
`contained in the VIM queue 340 for the first user so that the
`first user can selectively choose which voice instant Ines-
`sages that
`the first user listens to. The list contains the
`identity of the originator of each voice instant message and
`the descriptive caption for each voice instant message.
`Altematively. for each voice instant message placed in the
`VIM queue for the lirst user. the VIM server 340 may send
`an update message to the VIM client 310 ofthe first user.
`The update message may contain an identifier or tracking
`number for the VIM message it pertains to. the identity of
`the originator of the voice instant message, and the descrip-
`tive caption froru the voice instant message. Accordingly.
`the VIM client 310 of the first user may track and update the
`number of voice instant messages that are currently awaiting
`to be received by the first user. Additionally. the VIM client
`310 can track the identities of the originators of these
`messages. For example, the VIM client 310 may display the
`contact list of the lirst user. and next to each user‘s name on
`the contact list, the number of unreceived voice messages
`that users I1ave let’: the first user may be shown. Also,
`additional infomiation, such as the date and time. may be
`shown.
`The VIM client 310. 320 or the VIM server 330 of a
`representative embodiment of the present invention can be
`implemented in software. firmware. hardware. or a combi-
`nation thereof. Preferably, the VIM client 310, 320 or VIM
`server 330 are implemented in software. as an executable
`program. and are executed by special or general purpose
`digital computers, such as a personal computer. workstation.
`mirticomputer. or mainframe computer. An example of a
`general purpose computer that can implement
`the VIM
`client 310, 320 or VIM server 330 (although not shown} of
`one preferred embodiment of the present invention is shown
`in FIG. 6.
`Generally. in terms ofliardware architecture. as sliown in
`l*l(j. 6. the computer 600 includes a processor 602. memory
`
`Ill
`
`3o
`
`35
`
`4t":
`
`45
`
`50
`
`55
`
`60
`
`8
`
`604, and one or more input andfor output (U0) devices 606
`[or peripherals) that are communicatively coupled via a local
`interface 608. The local interface 608 can be, for example
`but not limited to, one or more buses or other wired or
`wireless connections. as is known in the art. The local
`interface 608 may have additional elements, which are
`omitted for simplicity. such as controllers. bufl'ers