System and method for managing contacts in an instant messaging environment
A computer-implemented method is described for instant messaging comprising: categorizing two or more instant messaging contact names into a single meta contact; receiving a request to transmit an instant message directed to the meta contact; selecting one of the two or more instant messaging contact names within the meta contact to which to transmit the instant message based on a specified prioritization scheme.
This application is a divisional of U.S. application Ser. No. 10/209,586, filed Jul. 29, 2002.
BACKGROUND1. Field of the Invention
The invention relates generally to the field of data communication systems. More particularly, the invention relates to an improved system and method for managing a plurality of contacts (i.e., “buddies”) in an instant messaging environment.
2. Description of the Related Art
Instant messaging systems provide for live, text-based chat sessions between two or more users. Unlike e-mail, instant messaging requires that all parties be online at the same time. AOL's Instant Messenger (“AIM®”), Microsoft Network Messenger Service (“MSNMS®”), ICQ® and Yahoo! Messenger® are the major instant messaging services.
Instant messaging clients allows users to maintain a list of contacts, often referred to as a “buddy list” or “contact list.” A user can send instant messages to any of the people in the user's list, as long as those people are online. Sending a message opens up a small window where the user and the user's buddies can type in messages that both can see.
Most of the popular instant messaging programs provide a variety of supplemental features including, for example, Web links (the ability to share links to Websites); image sharing (the ability to view images stored on a buddy's computer; sound sharing (the ability transmit sounds to a buddy); file sharing (the ability to transmit files to a buddy); audio communication (the ability to use the Internet instead of a phone to actually talk with buddies); and information streaming (streaming of real-time or near-real-time information such as stock quotes and news headlines).
Some of the basic principles associated with an instant messaging session will now be described with respect to
In order to communicate with the specified instant messaging service 100, proprietary instant messaging client software must initially be installed on the client computers 102 and 104. For example, if the instant messaging service 100 is AIM, then AOL's proprietary instant messaging client software must be installed. The client software allows the client computers 102 and 104 to communicate with the AIM server using AOL's proprietary instant messaging protocol.
Similarly, other instant messaging services, such as IM service 108, will require different client software installed on client computers 106 and 110. For example, Yahoo's proprietary IM software, which includes built-in support for Yahoo's proprietary IM protocol, must be installed on any client computer that uses Yahoo's IM service. Moreover, the client IM software and associated IM protocols required by each service 100, 108 are not compatible. Client software designed for one service may not be used to connect to a different service.
Once the IM client software is installed, to establish an IM session, the client sends the IM service connection information associated with the client computer (e.g., IP address and port number). The IM service creates a temporary file that contains the connection information for the user and the contacts in the user's buddy list. It then checks to see if any of the contacts in the buddy list are currently logged in.
If the service locates any contacts logged in, it sends the connection information for those contacts back to the client. The IM service also sends the user's connection information to the contacts in the buddy list that are signed on. When the client receives the connection information for a contact in the buddy list, it changes the “status” of that person to “Online.” The user may then click on a name of any contact in the buddy list who is online, opening an IM window in which the user may enter an instant message.
Once the users have signed on to the IM service, all subsequent communication may occur directly between the two clients, as indicated by the “direct link” between clients 102 and 104, and clients 106 and 110. However, in some circumstances, IM communication must continue to occur through the instant messaging service 100. For example, if client 104 is behind a firewall, client 102 may not be permitted to establish an IM session with client 104 directly.
When the user goes “offline” the client sends a message to the IM server to terminate the session. The server then sends a message to the clients of each contact in the user's buddy list who are currently online to indicate that the user has logged off. Finally, the IM server deletes the temporary file that contained the connection information for the client(s).
SUMMARYA computer-implemented method is described for instant messaging comprising: categorizing two or more instant messaging contact names into a single meta contact; receiving a request to transmit an instant message directed to the meta contact; selecting one of the two or more instant messaging contact names within the meta contact to which to transmit the instant message based on a specified prioritization scheme.
A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
As described above, one of the problems associated with instant messaging is the lack of interoperability between the different instant messaging services. For example, a different, proprietary IM client must be installed for each individual IM service on which the user opens an account. Downloading, installing and coordinating among a plurality of different, incompatible IM clients may consume a significant amount of time and effort on behalf of the user.
To solve this and other problems, the assignee of the present application has developed a unified instant messaging client platform which is interoperable with each of the different IM services. Referring to
One embodiment of the instant messaging GUI 201 is illustrated in
In order to coordinate among the various IM services, a service bar 310 is provided which includes a set of graphical buttons representing each of the different services. The user may connect to a particular service and/or access/modify the features provided by that service by selecting the button corresponding to the service. By way of example, in
The user may connect to multiple services at once, using one or more different screen names. However, in one embodiment, if the user is not logged in to a particular service, the only option which will be provided via the service bar is the “connection manager” option (shown at the top of the menu in
One embodiment of the GUI 201 provides the user with the option to “globally connect” or “globally disconnect” from each service on which the user has an account, thereby streamlining the process of connecting/disconnecting to multiple services. Similarly, one embodiment provides the user with the option to globally set his/her online status to “globally away” or “globally back.” Each of the global functions may be provided within the IM application 202. The IM service interfaces 204, 206, and 208 may translate the global functions to service-specific functions, interpretable by each individual service 100, 108, and 210, respectively. Global functions may be provided as menu entries within the GUI menu structure (e.g., File), and/or may be triggered via certain specified hotkeys (e.g., CTRL+D=global disconnect, . . . etc).
Meta ContactsIn order to simplify the process of managing contacts from multiple IM accounts, one embodiment of the invention allows the user to set up a group of screen names which represent a single user. These groups will be referred to herein as “Meta Contacts.” The process of creating and working with Meta Contacts will now be described with reference to
Two of the contact names displayed in
After the user enters the name for the new Meta Contact, the name “Meredith Webster” 701 appears in the user's buddy list as illustrated in
In one embodiment, to send an instant message to the individual represented by the Meta Contact 701, the user clicks on the Meta Contact 701 in the same manner as if the user were sending an instant message using a standard contact name. After clicking on the Meta Contact 701, a window such as that shown in
In the illustrated example, only one of the two IM accounts organized within the Meta Contact 701 is selected for the IM session, as indicated in the title bar 803. In one embodiment of the invention, a user-configurable prioritization scheme is employed to determine which IM account 602, 601 (or group of accounts) within the Meta Contact 701 to select for the IM session. In one embodiment, the initial prioritization is based on the order in which the contact names 602, 601 appear under the Meta Contact heading 701. Using this scheme, the contact name “meredith_webster” 602 would be selected initially over the contact name “mersingerwebster” 601, with all other variables being equal. In one embodiment of the invention, the user may select and drag a contact name to a different position in the list to modify the initial priority scheme (e.g., contact name 601 may be moved above contact name 602). It should be noted, however, that various alternate techniques for determining priority may be employed (i.e., other than mere positioning within the Meta Contact list) while still complying with the underlying principles of the invention.
In one embodiment, a relatively higher priority IM account will be passed over in favor of a relatively lower priority IM account if the user registered as “offline” on the higher priority account and “online” or “idle” on the lower priority account. Thus, in the example illustrated in
Various additional user-configurable Meta Contact parameters may be employed to select a particular contact name/IM account. For example, in one embodiment, the user may configure the system to transmit instant messages to any of the accounts on which the contact is registered as “online.”
As illustrated in
Other noteworthy options within the Meta Contact menu 901 include the ability to edit/add information related to the contact (e.g., in a text format). In one embodiment, this additional information will appear in the pop-up information screen 702 illustrated in
A logical architecture for implementing the Meta Contact features described above is illustrated generally in
In one embodiment, the generalized architecture illustrated in
One embodiment of the invention provides an application programming interface for plugins—i.e., supplemental programs which provide the primary IM client 200 with additional features. As illustrated in
As illustrated in
Various additional plugin sections are contemplated within the scope of the present invention, including, for example, a mini Web browser section for browsing the Internet from within the IM client and a mail section for periodically downloading e-mail messages from the user's e-mail account (e.g., using the POP-3 protocol).
Referring now to
In addition, in the embodiment illustrated in
For example, in one embodiment, any characters which directly follow the “/” character are interpreted by the text monitoring module 1402 as an “alias.” As used herein, an alias identifies data maintained by one of the plugins 1410-1412, which is then inserted into the instant message by the content conversion module 1403. For example, as indicated in data fields 1501 and 1502 in
In addition to (or in lieu of) using “aliases,” the user may configure the IM client to reformat and/or replace various specified character strings. For example, when the user types his/her screen name, he/she may want it to appear in bolded or italicized characters. Similarly, the user may want to trigger some sort of event in response to a particular character string (e.g., playing of a .WAV file, execution of a program, . . . etc).
Selection box 1603 allows the user to specify a background and foreground highlight color for the selected text. Selection box 1604 allows the user to specify a tooltip note to be displayed above the character string. Selection box 1605 allows the user to enter a character string to be used in place of the input character string. For example, the user's real name may be substituted for his/her screen name and certain acronyms may be replaced with the character string represented by the acronym (e.g., BTW=“By the way”).
Finally, at 1606, the user may specify an event that will be triggered as a result of the text monitoring module identifying the specified character string. Events may be programmed via the events window 1700 shown in
In addition to the event-based features described above with respect to the receipt of character strings, one embodiment of the invention employs a comprehensive event system for generating virtually any type of program action in response to virtually any type of events. One embodiment of the event system is illustrated generally in
Two types of event selection windows are provided in the illustrated embodiment. A general event window is illustrated in
In region 1802, the user may select conditions under which the user's status should be set back to “online” (e.g., either when set away manually or by an event, or only when set away by an event). Region 1803 allows the user to configure various sound generation actions (as indicated) and region 1804 allows the user to customize away messages. In one embodiment, choosing to add a new away message brings up the window illustrated in
In one embodiment of the invention, the following event types (1701) are supported: program generated events, idle time events, hotkey events, and scheduled events. Program generated events are events (1702) triggered by any function performed by the IM client 1400 or another external client/program. For example, a user may program the system to perform an action in response to the receipt of either a new instant message (internal) or a new e-mail message (external). In one embodiment, the user may program the event monitoring module 2002 to set the user's status as “offline” when the user's screen saver triggers.
Idle time events are events triggered after a predetermined amount of time that the user is inactive (e.g., not manipulating the mouse or keyboard). Hotkey events are triggered in response to the selection of a specified key or set of keys while the IM client is running (e.g., CTRL+M=create new instant messaging session). Finally, in one embodiment of the invention a scheduler is provided which allows the user to schedule actions at specified dates and times. The user may program the actions associated with scheduled events to trigger only once, daily, weekly, business weekly (e.g., Monday through Friday), monthly or yearly, to name just a few options.
As mentioned above, for each specified event, various types of actions may be selected within the action type region 1703 including, but not limited to, generating a specified sound (e.g., from a .WAV file), executing a specified program (e.g., by identifying an executable file), generating an alert window or a Systray alert, and/or modifying the user's status. Once a new event and associated action is added to the system, it appears within the event list in region 1900.
Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps (e.g., on a client computer). Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a medium.
Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, while the embodiments of the invention described above focus on a specific graphical user interface implementation for the IM client, various alternate interface types may be employed including text-based interfaces. In addition, although a client-based implementation is described above, a server-based implementation (or other distributed computing implementation) is also contemplated within the scope of the present invention. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.
Claims
1. A method comprising:
- executing a supplemental program from within an instant messaging client, said supplemental program having a specified function and maintaining information related to its function;
- programming said instant messaging client with a character string representing said information;
- identifying said character string within a text entry field of an instant messaging window; and
- substituting said character string with said information prior to transmitting said instant message to a destination client.
2. The method as in claim 1 wherein said supplemental program is an audio player and wherein said information comprises titles of audio tracks.
3. The method as in claim 1 wherein said supplemental program is a plugin for retrieving content from a Web server and wherein said information comprises said content.
4. The method as in claim 3 wherein said content comprises news headlines retrieved from the Web server.
5. The method as in claim 3 wherein said content comprises stock quotes retrieved from the Web server.
Type: Application
Filed: Sep 24, 2007
Publication Date: May 22, 2008
Inventors: Scott M. Werndorfer (Brookfield, CT), Kevin W. Kurtz (Bethel, CT)
Application Number: 11/903,817
International Classification: G06F 15/16 (20060101);