USRE43436EExpiredUtility

System and method for immediate and delayed real-time communication activities using availability data from and communications through an external instant messaging system

Individually held — no corporate assignee on recordPriority: Feb 14, 2003Filed: Aug 28, 2009Granted: May 29, 2012
Est. expiryFeb 14, 2023(expired)· nominal 20-yr term from priority
H04L 67/54H04L 65/1101H04L 9/40H04L 65/1043H04L 51/043H04L 51/04H04L 65/403H04L 69/329G06Q 10/10
72
PatentIndex Score
6
Cited by
48
References
33
Claims

Abstract

A system and method for immediate and delayed real-time communication activities using availability data from and communications through an external instant messaging system, that operates to obtain aggregated user online presence information through its own client software, through interception of client-server communications between an external instant messaging client and server, and through other available interfaces to user account information on such external instant messaging systems. The system operates to gather user online presence information in part by intercepting communications between an instant messaging client and the Internet. The aggregate presence data, as well as other information describing the availability of a user, is used to intelligently route real-time communications, such as instant messages and phone calls. The disclosed system further implements a technique for waiting for changes in a user's availability status, and for performing actions on a user's behalf in response to such changes in availability status.

Claims

exact text as granted — not AI-modified
1. A method of supporting real-time communication activities, comprising the steps of:
 in a first obtaining step, obtaining on-line presence information from an external instant messaging system regarding at least one user, wherein said first obtaining step includes intercepting input and output data from at least one network socket data stream associated with a software process, 
 said software process being associated with said external instant messaging system and identifying on-line presence information regarding said at least one user within said input and output data associated with said software process, wherein said software process associated with said external instant messaging system comprises a client software process associated with said external instant messaging system, and wherein said input and output data associated with said software process comprise data communicated between said client software process associated with said external instant messaging system and a server associated with said external instant messaging system; 
 determining whether said intercepted input and output data contain said on-line presence information; 
 in a second obtaining step, in the event said intercepted input and output data does not contain said on-line presence information, injecting a request message into said at least one network socket data stream associated with said software process to request said on-line presence information from said external instant messaging system, and receiving said on-line presence information in response to said request message; 
 determining an availability status of said at least one user responsive to said on-line presence information obtained from said external instant messaging system in one of said first and second obtaining steps; and 
 establishing a real-time communication activity including said at least one user responsive to said availability status of said at least one user. 
 
     
     
       2. The method of  claim 1 , wherein at least one of said first and second obtaining steps further comprises:
 determining that said software process has begun execution; and 
 determining that said software process is associated with said external instant messaging system. 
 
     
     
       3. The method of  claim 2 , wherein at least one of said first and second obtaining steps further comprises obtaining on-line presence information from a predetermined interface to said external instant messaging system. 
     
     
       4. The method of  claim 3 , wherein said predetermined interface to said external instant messaging system comprises an interface to said server associated with said external instant messaging system. 
     
     
       5. The method of  claim 1 , wherein said establishing said real-time communication activity including said at least one user responsive to said availability status of said at least one user comprises sending an instant message through said external instant messaging system in the event that said availability status of said at least one user indicates that said at least one user is currently on-line. 
     
     
       6. The method of  claim 5 , wherein said sending said instant message through said external instant messaging system comprises sending an invitation message, said invitation message including a selectable link to said real-time communication activity. 
     
     
       7. The method of  claim 6 , wherein said real-time communication activity is an on-line conference, and wherein said link is operable, when selected through a graphical user interface, to connect said at least one user to said on-line conference. 
     
     
       8. The method of  claim 6 , wherein said real-time communication activity is a teleconference, and wherein said link is operable, when selected through a graphical user interface, to connect said at least one user to said teleconference. 
     
     
       9. The method of  claim 1 , wherein said at least one real-time communication activity is a telephone call. 
     
     
       10. The method of  claim 1 , wherein said at least one real-time communication activity is a chat session. 
     
     
       11. The method of  claim 1 , wherein said at least one real-time communication activity is a shared whiteboard. 
     
     
       12. The method of  claim 1 , wherein said at least one real-time communication activity is a remote presentation. 
     
     
       13. The method of  claim 1 , wherein said at least one real-time communication activity is a video conference. 
     
     
       14. The method of  claim 1 , wherein said initiation of said at least one real-time communication activity includes sending an instant message. 
     
     
       15. The method of  claim 14 , wherein said sending of said instant message is through said external instant messaging system, wherein said sending of said instant message through said external instant messaging system is accomplished by introducing said instant message between said client software program associated with said external instant messaging system and said server associated with said external instant messaging system. 
     
     
       16. The method of  claim 15 , further comprising:
 determining that at least one necessary participant for said real-time communication activity is not available; and 
 generating a script to be executed in response to receipt of an event notification indicating that said at least one participant becomes available. 
 
     
     
       17. The method of  claim 1 , wherein said first obtaining step includes:
 parsing said input and output data intercepted from said at least one network socket data stream for said on-line presence information describing the online presence state of said at least one user. 
 
     
     
       18. A system for supporting real-time communication activities, comprising:
 at least one processor; and 
 a computer program storage memory communicably coupled with said at least one processor, said computer storage memory including at least one computer program executable on said at least one processor, said computer program including:
 first program code for obtaining on-line presence information from an external instant messaging system regarding at least one user, wherein said first program code for obtaining includes program code for intercepting input and output data from at least one network socket data stream associated with a software process, 
 said software process being associated with said external instant messaging system and identifying on-line presence information regarding said at least one user within said input and output data associated with said software process, wherein said software process associated with said external instant messaging system comprises a client software process associated with said external instant messaging system, and wherein said input and output data associated with said software process comprise data communicated between said client software process associated with said external instant messaging system and a server associated with said external instant messaging system; 
 program code for determining whether said intercepted input and output data contain said on-line presence information; 
 second program code for obtaining on-line presence information, including program code for, in the event said intercepted input and output data does not contain said on-line presence information, injecting a request message into said at least one network socket data stream associated with said software process to request said on-line presence information from said external instant messaging system, and receiving said on-line presence information in response to said request message; 
 program code for determining an availability status of said at least one user responsive to said on-line presence information obtained from said external instant messaging system in response to the execution, on said at least one processor, of one of said first and second program code for obtaining on-line presence information; and 
 program code for establishing a real-time communication activity including said at least one user responsive to said availability status of said at least one user. 
 
 
     
     
       19. A method of supporting real-time communication activities, comprising the steps of:
 in a first obtaining step, obtaining on-line presence information from an external instant messaging system regarding at least one user, wherein said first obtaining step includes intercepting, within a client system, input and output data from at least one network socket data stream associated with an instant messaging client software process executing on said client system, wherein said input and output data comprise data communicated between said client software process and a remote instant messaging server; 
 determining whether said intercepted input and output data contain said on-line presence information; 
 in the event said intercepted input and output data contain said on-line presence information, extracting said on-line presence information from said input and output data; 
 in a second obtaining step, in the event said intercepted input and output data does not contain said on-line presence information, injecting a request message into said at least one network socket data stream associated with said software process to request said on-line presence information from said external instant messaging system, and receiving said on-line presence information in response to said request message; and 
 performing, external to said instant messaging client and said instant messaging server, a predetermined function responsive to said on-line presence information obtained in one of said first and second obtaining steps. 
 
     
     
       20. The method of  claim 19 , wherein said predetermined function comprises determining an availability status of at least one user responsive to said on-line presence information obtained in one of said first and second obtaining steps. 
     
     
       21. The method of  claim 20 , wherein said predetermined function further comprises establishing a real-time communication activity including said at least one user responsive to said availability status of said at least one user. 
     
     
       22. A method of supporting real-time communication activities, comprising the steps of:
 intercepting, via a first software process executing on a first processor of a first computer, input and output data from at least one network socket data stream associated with a second software process executing on a second processor of said first computer,   determining, via said first software process executing on said first processor of said first computer, that said intercepted input and output data does not contain on-line presence information regarding a user;   injecting, via said first software process executing on said first processor of said first computer, a request message into said at least one network socket data stream associated with said second software process to request on-line presence information regarding said user from said second software process, and receiving said on-line presence information regarding said user in response to said request message;   transmitting, via said first software process executing on said first processor of said first computer, said on-line presence information regarding said user to an external real-time messaging server based on at least one of said intercepting or receiving of said on-line presence information.   
     
     
       23. The method of claim 22, further comprising:
 receiving an instant message from said external real-time messaging server including a selectable link operable to connect said user associated with said second software process to a real-time communication activity; and   injecting said instant message into said at least one network socket data stream.   
     
     
       24. The method of claim 22, further comprising:
 determining, via said first software process, that said second software process has begun execution; and   determining, via said first software process, that said second software process is associated with an instant messaging system.   
     
     
       25. A method of supporting real-time communication activities, comprising the steps of:
 in a first obtaining step, obtaining on-line presence information from an external instant messaging system regarding a user, wherein said first obtaining step includes intercepting, within a client system, input and output data from at least one network socket data stream associated with an instant messaging client software process executing on said client system, wherein said input and output data comprise data communicated between said client software process and a remote instant messaging server;   determining whether said intercepted input and output data contain said on-line presence information;   in the event said intercepted input and output data contain said on-line presence information, extracting said on-line presence information from said input and output data;   in a second obtaining step, in the event said intercepted input and output data does not contain said on-line presence information, injecting a request message into said at least one network socket data stream associated with said software process to request said on-line presence information from said external instant messaging system, and receiving said on-line presence information in response to said request message; and   transmitting, based on at least one of said first obtaining step or said second obtaining step, said on-line presence information obtained in one of said first and second obtaining steps to a messaging server external to said instant messaging client and said instant messaging server.   
     
     
       26. The method of claim 25, further comprising:
 receiving an instant message from said external real-time messaging server including a selectable link operable to connect said user associated with said second software process to a real-time communication activity; and   injecting said instant message into said at least one network socket data stream.   
     
     
       27. The method of claim 25, further comprising:
 determining that said instant messaging client software process has begun execution; and determining that said instant messaging client software process is associated with said external instant messaging system.   
     
     
       28. A system for supporting real-time communication activities, comprising: at least one processor; and
 a computer program storage memory communicably coupled with said at least one processor, said computer storage memory including at least one computer program executable on said at least one processor, said computer program including:   first program code, executable by said at least one processor, for obtaining on-line presence information regarding a user from an external instant messaging system, wherein said first program code for obtaining includes program code for intercepting input and output data from at least one network socket data stream associated with a second software process,   second program code, executable by said at least one processor, for determining whether said intercepted input and output data contain said on-line presence information regarding said user;   third program code, executable by said at least one processor, for obtaining online presence information, including program code for, in the event said intercepted input and output data does not contain said on-line presence information regarding said user, injecting a request message into said at least one network socket data stream associated with said software process to request said on-line presence information from said external instant messaging system, and receiving said on-line presence information regarding said user in response to said request message; and   fourth program code, executable by said at least one processor, for transmitting said on-line presence information obtained from said external instant messaging system to an external messaging server in response to said execution, on said at least one processor, of one of said first and third program code for obtaining on-line presence information regarding said user.   
     
     
       29. The system of claim 28, said computer program further comprising:
 fifth program code, executable by said at least one processor, for receiving an instant message from said external messaging server including a selectable link operable to connect said user associated with said computer program to a real-time communication activity; and injecting said instant message into said at least one network socket data stream.   
     
     
       30. The system of claim 28, further comprising:
 sixth program code, executable by said at least one processor, for determining that said second software process has begun execution, and for determining that said second software process is associated with said external instant messaging system.   
     
     
       31. A non-transitory computer-readable medium having stored thereon computer executable instructions that, in response to execution by a computing device, perform operations comprising:
 intercepting input and output data from at least one network socket data stream associated with a software process executing on a processor of said computing device,   determining that said intercepted input and output data does not contain on-line presence information regarding a user,   injecting a request message into said at least one network socket data stream to request on-line presence information regarding said user from said software process, and receiving said on-line presence information in response to said request message; and   transmitting said on-line presence information regarding said user to an external real-time messaging server via a network based on at least one of said intercepting or receiving of said on-line presence information.   
     
     
       32. The computer-readable medium of claim 31, further comprising computer executable instructions that, in response to execution by a computing device, perform operations comprising:
 receiving an instant message from said external real-time messaging server including a selectable link operable to connect said user associated with said software process to a real-time communication activity; and   injecting said instant message into said at least one network socket data stream.   
     
     
       33. The computer-readable medium of claim 31, further comprising computer executable instructions that, in response to execution by a computing device, perform operations comprising:
 determining that said second software process has begun execution and determining that said second software process is associated with an external instant messaging system.

Join the waitlist — get patent alerts

Track USRE43436E — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.