System and method for immediate and delayed real-time communication activities using availability data from and communications through an external instant messaging system
First Claim
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 Assignments
0 Petitions
Accused Products
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.
34 Citations
33 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
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. - View Dependent Claims (20, 21)
-
-
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. - View Dependent Claims (23, 24)
-
-
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. - View Dependent Claims (26, 27)
-
-
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. - View Dependent Claims (29, 30)
- at least one processor; and
-
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. - View Dependent Claims (32, 33)
-
Specification