Abstract:
Information transfer between instant messaging applications and configured personal information management application programs such as electronic address books, date books, phone books, to do list, and the like, is automated to alleviate burdensome and tedious user actions of manually cutting and pasting several strings of text from the instant messaging user interface and the user interface for the personal information management application program. Upon invocation, such as by highlighting text in the messaging window and right-clicking it, an action menu is displayed. The user selects an action, such as “add to calendar”, and an intermediate menu is displayed for the user to select a field to which the highlighted text applies, such as “date”. After a series of quick selections and designations, the system completes the action using the application programming interface for the appropriate PIM application program.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS (CLAIMING BENEFIT UNDER 35 U.S.C. 120)  
       [0001]     None.  
       CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0002]     None.  
       FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT STATEMENT  
       [0003]     This invention was not developed in conjunction with any Federally-sponsored contract.  
       MICROFICHE APPENDIX  
       [0004]     Not applicable.  
       INCORPORATION BY REFERENCE  
       [0005]     None.  
       BACKGROUND OF THE INVENTION  
       [0006]     1. Field of the Invention  
         [0007]     This invention relates to direct information copy and transfer between real-time messaging applications and corresponding applications.  
         [0008]     2. Background of the Invention  
         [0009]     Communication methods have grown in the number of mediums employed, as well as through various approaches to conduct and interconnect one party with another. One popular method that even corporations allow its employees to use is referred to as “Instant Messaging”, or “IM”. IM is a program that helps people work together collectively while they are located remotely from each other. IM has the ability to allow one user to see whether a chosen friend or colleague is simultaneously connected to the Internet, and if they are, to exchange messages with them.  
         [0010]     IM differs greatly from ordinary electronic mail (“e-mail”) in its immediacy of message exchange, and in its ability to determine if certain other users (e.g. “buddies”) are currently online. In addition, the continuous exchange between two-parties are simpler than sending e-mail back and forth. Most IM exchanges are text-only, with additional features such as sharing of Web links, images, sounds, streaming content, voice messaging and files provided.  
         [0011]     Because IM includes “presence technology,” when a user launches their IM application, it allows the ability to see which other users on their contact list are currently online. In order for instant messaging to work, both users must subscribe to the same service, be online at the same time, the initiator and the receiver must allow participation from one another, and both must be willing to participate in accepting instant messages.  
         [0012]     Attempts to send an instant message to someone who is not online, where their participation status is not available, or when the intended recipient refuses the invitation to add the sending party to their own list, result in notification to the sender that the transmission can not be completed.  
         [0013]     If a user&#39;s IM client software accepts an instant message (e.g. receives a message), it alerts the recipient typically with a distinctive sound, an icon to denote availability status, and a window that indicates that new IM has arrived which provides the recipient with the ability to view the actual incoming message.  
         [0014]     Sometimes, a person might receive an instant message from someone who is already engaged in a group chat with someone else. Current IM software has the ability to add additional online users to existing conversations by sending an invitation to the existing group members.  
         [0015]     Turning to  FIG. 1 , the general organization of components and their intercommunications for instant messaging is shown ( 10 ). A plurality of messaging clients ( 14 ), including individual network clients ( 15 ,  16 ) such as cellular phones, PDAs, and personal computers, communicate via a common computer network, such as the Internet, local area network (“LAN”), or wide area network (“WAN”), to corresponding messaging servers ( 11 ,  12 ,  13 ).  
         [0016]     Under most circumstances, message exchange is “instant” and “immediate.” The delay is rarely more than a few seconds, even during peak Internet usage periods. Thus, instant messaging requires quite a bit less storage for messages as they are not held for any considerable length of time by the messaging server(s).  
         [0017]     IM applications are generally categorized as either being public or enterprise. Public IM applications allow anyone on the Internet to sign up, download the software and begin messaging. Microsoft.NET Messenger™, America Online&#39;s AIM™ and Yahoo Messenger!™ are examples of public IM software.  
         [0018]     On the other hand, enterprise IM services such as IBM Lotus&#39; Instant Messaging and Web Conferencing, formerly called Sametime, and Sun Microsystems&#39; ONE Instant Messaging, are typically used within corporate environment. Access to an enterprise IM server is typically restricted, and security precautions such as encryption are put in place to protect the enterprise network.  
         [0019]     With all the different IM applications available, most systems work similarly. Once the user launches the IM application, the messaging client attempts to connect to the messaging server. Authentication occurs on the messaging server to verify information such as username and password. Once verification is successful, the client computer sends the server its network address, a port number that is assigned to the IM service and the names of people from the user&#39;s contact list. The server creates a temporary session file that contains the connection information and checks the contact list to see if anyone else also logged onto the system.  
         [0020]     Once the server finds the contacts who are online, it sends a message back to the client computer with its connection information and vice versa. The client user interface displays the nicknames or names of the other online users from the contact list. When all connection information has been exchanged and acknowledged, an instant messaging session can begin. This connection process typically takes about ten seconds.  
         [0021]     Because of IM&#39;s ease of usage and its real-time messaging exchange, people communicate phone numbers, URLs, tasks and appointments using instant messaging applications. In the event the user has to save this information, recipients must manually copy and paste this information into the respective applications for later use. The following are the steps involved in the process. For example, if a first user proposes a meeting, subject, time and place, to a second user, the second user must manually create an appointment with his or her own appointment management software application. Here is a typical process such as this: 
        (1) the second user receives a message containing a phone number or an URL or a date and time for some event;     (2) the second user opens the relevant application(s), such as his or her phone book or appointment and datebook software;     (3) after the application is opened, the second user selects some text from the IM user interface;     (4) the second user then switches to the relevant application user interface; and     (5) pastes the copied text from the instant message into the relevant form or field of the application.        
 
         [0027]     Because several different items of information often must be transferred separately, such as meeting subject, meeting time, meeting place, and meeting contact, the second user may have to repeat steps 1-5 several times to complete the creation of an appointment in his or her electronic appointment book.  
         [0028]     These steps are time consuming for the participants of the IM session, and are also tedious, monotonous, and prone to error. Because of these repetitive steps, some users usually save multiple message files for future reference. This process also distracts the user&#39;s flow of thought as the user gets engaged with the process of opening applications, cutting, pasting, and switching between user interfaces.  
         [0029]     Therefore, there exists a need in the art for automating the process of transferring information from an instant messaging user interface to one or more personal ion management (“PIM”) applications.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0030]     The following detailed description when taken in conjunction with the figures presented herein present a complete description of the present invention.  
         [0031]      FIG. 1  illustrates instant messaging from a high level.  
         [0032]      FIG. 2  shows IBM&#39;s Sametime Server architecture structure.  
         [0033]      FIG. 3  depicts IBM&#39;s Sametime community in a schematic view.  
         [0034]      FIG. 4  shows how conversations are established via channels for one messaging server.  
         [0035]      FIG. 5  illustrates inter-communication between multiple messaging servers.  
         [0036]      FIG. 6  illustrates a logical process according to the present invention of invoking the present invention from an instant messaging user interface.  
         [0037]      FIG. 7  depicts a logical process according to the present invention for text transfer from a messaging application to a selected PIM application.  
         [0038]      FIGS. 8 through 12  illustrate portions of a user display during operation of the invention.  
         [0039]      FIG. 13  shows a portion of a user display having a confirmation dialog.  
         [0040]      FIG. 14  illustrates the overall information flow of the present invention in association with one or more Personal Information Messenger (“PIM”) applications and an instant messaging application.  
     
    
     SUMMARY OF THE INVENTION  
       [0041]     The present invention provides instant messaging users the ability to automate information transfer between messaging applications and configured personal information management application programs such as electronic address books, date books, phone books, to do list, and the like. Our invention provides user-configurable options to specify which related application programs should automatically store the selected text from messaging applications.  
         [0042]     Automating the information transfer between the related applications and messaging applications in this manner reduces the overall time spent by the user to transfer information to PIM application, the number of repetitive steps and thus user fatigue, and minimizes distraction in user flow of thoughts as messaging exchanges take place.  
       DETAILED DESCRIPTION OF THE INVENTION  
       [0043]     With all the different messaging applications available, most systems work similarly. IBM&#39;s Sametime messaging system will be used to illustrate present invention in one available embodiment, but it will be recognized by those skilled in the art that other instant messaging applications and platforms can be used for realization of the present invention.  
         [0000]     Instant Messaging Architecture as a Platform for the Invention  
         [0044]     Turning to  FIG. 2 , the IBM&#39;s Sametime Server architecture ( 20 ) is shown. A community is defined as a collection of servers, either in distributed WAN or scalable LAN environment. The Clients ( 14 ) are the client-side programs that log into the community as a community user via the multiplexers ( 21 ), which mediate between the clients and a server. The messaging server ( 22 ) is the core server of the messaging community, and server applications ( 23 ) supply add-on services to the community.  
         [0045]     IBM&#39;s Sametime community schematic view ( 30 ) is depicted in  FIG. 3 . The clients ( 14 ) communicate via the Multiplexers ( 21 ). The multiplexers enable highly efficient and scalable operation through I/O concentration, distribution of multi-recipient messages, and performance of gateway functions. This concentration limits the I/O overhead of the server because the server is required to send and receive data on a small number of connections to the multiplexers. The server is able to send a single copy of a message with its recipient list attached to its multiplexer, and the multiplexer then distributes the message to the indicated recipients.  
         [0046]     Because a multiplexer can act as a gateway, it is able to translate protocols between clients or third-party client software and Sametime server. For instance, an extended hypertext transfer protocol (“HTTP”) multiplexer that allows clients to work with the Sametime community using the HTTP protocol acts as a security firewall and protocol converter so that a user can use a web browser as their client software into the Sametime system.  
         [0047]     Thus, by acting as a gateway, the multiplexer can allow integration of different protocols while enabling the Sametime server to continue and use the Sametime optimized protocol. The multiplexer layer is transparent to the clients that connect to the messaging community through them. Multiplexers can connect in a multi-level fashion where a multiplexer is not directly connected to the server, but instead connects to another multiplexer in a chain of multiplexers. Layering can be used for localizing user connections and/or in a firewalled environment where the multiplexer acts as a proxy.  
         [0048]     The messaging server ( 22 ) that is the core of the Sametime community is responsible for managing the community members such as users, logins, multiplexers and server applications, routing messages, and supplying notifications to its community members.  
         [0049]     The messaging server applications ( 23 ) extend and customize the functionality supplied by the server. A server application connects to a server and declares the services it is supplying. The server routes requests for such services to the appropriate instance of the server applications. Some of the services supplied by native Sametime server applications include using buddy list, authenticating of users to its servers, matching user name with user identifications, browsing and searching capability via a directory, and supplying chat rooms for user participation. Third-party vendors using the Server toolkit are able to develop other customized services. For example, a Sametime IM system deployed within an investment company&#39;s enterprise may provide for custom instant messaging functions including real-time stock quotes or economic data retrieval.  
         [0000]     Instant Messaging Channels  
         [0050]     The diagram of  FIG. 4  shows ( 40 ) how conversations are established via channels ( 45 ) between a messaging server ( 22 ) and two or more specific clients ( 43 ). Channels are virtual connections that route messages. A channel may span several Transmission Control Protocol/Internet Protocol (“TCP/IP”) connections. In this example, Client  1  ( 43 ) on Multiplexer  1  ( 41 ) initiates a message exchange which creates a channel ( 45 ) to a messaging server ( 22 ) that travels to the corresponding Multiplexer  2  ( 42 ) for Client  2  ( 44 ).  
         [0051]     The network route between any community members may involve several “hops” between components. The channel ensures the order of messages is maintained during a conversation, and ensures connectivity by providing a notification when the route of the channel is broken (e.g., when a crash occurs on one of the parties or on one of the community members along the channel route). Both channel participants receive a notification when the channel is broken. Data that enables routing of channel messages is stored in each of the community entities of the channel route.  
         [0000]     Larger Instant Messaging Communities  
         [0052]     Additionally, multiple messaging servers can communicate with each other to form larger communities, and to interface enterprise-only communities to clients and users in the public domain.  FIG. 5  illustrates the inter-communication ( 51 ) between multiple messaging servers in such an extended arrangement ( 50 ). Each messaging server ( 22 ,  22 ′,  22 ′″) has its related multiplexers and clients, and each uses appropriate protocols such as TCP/IP, HTTP, Simple Mail Transfer Protocol (“SMTP”) and Simple Object Access Protocol (“SOAP”) to inter-communicate ( 51 ) with each other and allow messaging exchange.  
         [0000]     Integration to PIM Applications  
         [0053]      FIG. 14  illustrates the overall information flow via Personal Information Messenger (“PIM”) applications ( 1403 ) via their Application Programming Interface (“APIs”), and the messaging client ( 14 ), according to the present invention, when enables automated information transfer from instant messages to PIM applications via our PIM Assistant ( 1402 ).  
         [0054]     The messaging client ( 14 ) integrates to and communicates with the PIM Assistant Application for Messaging Client ( 1402 ). Both are capable of presenting menus, forms, and prompts on the client Graphical User Interface (“GUI”) ( 1401 ). Presently, most IM clients are not extendable through dynamic link libraries (“DLLs”) or plug-ins, so our method of embodying the PIM Assistant ( 1402 ) is to provide integral software to the messaging client itself. However, as messaging clients become more flexible and potentially standardized, it is conceivable that implementation as a plug-in, DLL or other extensible module will be possible (and within the scope of the present invention).  
         [0055]     When the user invokes the present invention, user configured PIM Application Preferences ( 1404 ) are accessed to allow the PIM Assistant ( 1402 ) to determine which default applications are to be used to store selected text from instant messages. This allows highlighted text data to be transferred via the appropriate API to corresponding PIM applications ( 1403 ) as selected by the user, including all required specific fields related to the functionality of each PIM application ( 1403 ).  
         [0000]     Logical Processes and Use of the Invention  
         [0056]     The IM client including the present invention allows the selection of a piece of text from anywhere within the chat window session. Then, the user can right click on the selected text (or otherwise specially select the text), and a pop-up menu provides options such as “Add to Phone Book”, “Add to Favorites”, “Add to Tasks”, and “Add to Calendar”. The preferred method to invoke the invention is a right click, but those skilled in the art will recognize that it can be any combination of buttons, tapping on a PDA, or any other invoking method.  
         [0057]      FIG. 6  illustrates a logical process ( 60 ) according to the invention of invoking ( 61 ) the invention from the IM user interface. The IM application is previously running, and a channel is already established, and one or more text messages are shown ( 62 ) in graphical user interface (“GUI”).  
         [0058]     When an user selects a text to be saved, the system checks to see if text is specially selected ( 63 ). If text is not selected, then conversation continues normally in the GUI ( 62 ). If the highlighted text is specially selected, the system verifies the special selection feature ( 64 ), and the PIM assistant popup menu is displayed ( 65 ).  
         [0059]     Following display of the PIM assistant popup menu, then a logical process ( 65 ) according to the invention such as that shown in  FIG. 7  is executed. This logical process first presents a list of “actions”, such as “Add to Address Book” or “Add to Appointment Calendar” ( 75 ), followed by displaying an appropriate intermediate action form ( 76 ) depending on the actions selected ( 73 ).  
         [0060]     If the action selected does not currently have a PIM application designated for receiving the information in the user&#39;s preferences, the user is prompted ( 75 ) to select or indicate a PIM application to receive the information from the action, according to the preferred embodiment.  
         [0061]     Once the information from the text message has been transferred to the intermediate form, the invention then operates ( 77 ) the designated PIM application&#39;s API to complete the action, and the action is finished ( 78 ).  
         [0062]     If the user fails to select an action ( 73 ), then the action and/or intermediate form pop-ups are removed ( 79 ) from the user interface display.  
         [0000]     Examples of Operation of the Invention  
         [0063]     Turning to  FIG. 8 , a portion of an user display ( 80 ) includes a display of an example instant messaging user interface ( 82 ). In this example, a thread of discussion between two users includes several messages ( 83 ), which are in sequence discussing a possible meeting. Messages that have been sent and received are displayed in one section of the client UI ( 83 ), and the local user can input new a text message in the editor section ( 85 ).  
         [0064]     In this example, enough messages have been exchanged for the local user (“you”) and the remote user, Bob, to establish a new meeting appointment. The local user wishes to add this appointment to his or her electronic appointment book or calendar, such as their local copy of Lotus Organizer™ or Palm Desktop™.  
         [0065]     First, the user highlights “3 pm” ( 800 ) and right clicks to invoke the present invention. An action popup menu ( 86 ) is displayed which shows the various actions the user may select to perform on the highlighted text, such as Copy, Add to Calendar, Add to Phone Book, Add to Favorites and Add to Tasks. If Copy option is chosen, then the highlighted text will be copied into a buffer or a system clipboard.  
         [0066]     However, if the user wishes to create a new appointment in his datebook PIM, the Add to Calendar ( 800 ′) option is selected, and an intermediate popup menu ( 87 ) associated with Add to Calendar option is then shown on the GUI by the invention. In so doing, the invention consults the user&#39;s preferences and/or the API for the associated PIM application, and displays a list of “fields” or data items which are available for a new appointment in this case.  
         [0067]     The user may now choose which field to which the selected information should be transferred, such as Date, Location, Subject, Time AM, Time PM, or Contact. In this scenario, “Time PM” ( 800 ″) is selected by the user as he or she has highlighted the appointment time in the message. The selected text is then associated with the selected field, and temporarily saved until the user selects the “Finish” sub-action.  
         [0068]     The user may now continue to select text in the messaging window, and then to indicate to which field the information applies, such as: 
        (a) highlighting “Jul. 19, 2004” ( 801 ) from the messaging window ( FIG. 9 );     (b) selecting “Date” ( 801 ′) in the intermediate menu;     (c) highlighting “lobby” ( 802 ) from the messaging window ( FIG. 10 ;     (d) selecting is save to the default calendar application field for location ( 802 ′);     (e) highlighting “Project X” ( 803 ) from the messaging window ( FIG. 11 );     (f) selecting “Subject” ( 803 ′) in the intermediate menu;     (g) highlighting “bob@yahoo.com” ( 804 ) from the messaging window ( FIG. 12 ); and     (h) selecting “Contact” ( 804 ′) in the intermediate menu.        
 
         [0077]     At this point, the invention has accumulated the following information associated with the new calendar item: 
        time=3 pm     date=Jul. 19, 2004     location=lobby     subject=Project X     contact=bob@yahoo.com        
 
         [0083]     In this example, the user is ready to create the appointment in his or her calendar PIM program, so “Finish” ( 805 ) is selected, which then leads ( 1300 ) to a confirmation dialog ( 1301 ) being shown by the invention on the client display ( 81 ), according to the preferred embodiment. This confirmation dialog recaps the information as collected by the invention, and allows the user to correct, edit, or supplement the information. The user can then select to create ( 1302 ) the new calendar item, or to abort the operation ( 1303 ). If the user selects to create ( 1302 ) the new calendar item, the invention operates the appropriate API functions for the configured PIM calendar application program to create a new appointment having the characteristics as defined by the collected information from the IM message(s). It will be recognized by those skilled in the art that alternate realizations of the invention may omit the confirmation dialog ( 1301 ) in favor of directly creating the new calendar item upon selection of the “Finish” sub-action by the user.  
         [0000]     Other PIM Operations  
         [0084]     The invention automates the transfer of information from an IM message to a wide variety of PIM data structures and items, including but not limited to: 
        (1) Universal Resource Locators and addresses of web pages to a favorites or bookmark list;     (2) contact names, telephone numbers, mailing addresses, and email addresses to a contact manager, phone book or address book; and     (3) tasks including a task description, priority level, due date, task details, etc., to a task manager or “to-do” list.        
 
         [0088]     As such, the scope of the present invention extends beyond the specific embodiment examples and PIM applications presented herein, and should be determined by the following claims.