IP Library Granted Patent US 7,747,785
Granted Patent B2
US 7,747,785 · App. 11/279,865 · Granted Jun 29, 2010

Instant messaging plug-ins

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,747,785
App. No.
11/279,865
Granted
Jun 29, 2010
Kind
B2
Abstract

Various embodiments provide a standardized way to interact with and extend instant messaging applications. A platform is provided and enables developers and other third parties to create extensions for instant messaging applications. Through a set of APIs, interacting applications or plug-ins are “sandboxed” in their own areas where they are unable to perform unpermitted or unauthorized actions. The plug-in platform or architecture is integrated with the platform of the instant messaging application and can allow developers to create plug-ins that can interact with a local user and their buddies. Any number of various types of plug-ins can be developed and incorporated into the instant messaging application in a standardized manner.

Claims (54)

1. A system comprising one or more processors; one or more computer-readable storage media; and computer-executable instructions on the one or more computer-readable storage media which, when executed by the one or more processors, implement a platform configured to: incorporate the plug-in in an instant messaging application, wherein the plug-in temporarily overrides an identity of a local user and acts as an agent which is exposed to contacts that have the local user as a buddy; operate plug-ins being further configured to function as all of:

a virtual buddy;

a personal assistant;

a remote control;

a provider of personal expression capabilities;

a provider of entertainment;

a provider of additional utility;

wherein when configured to function as the virtual buddy, the virtual-buddy configured plug-in comprises:

a contact stored on a contact list of the local user, the contact only being accessible by the local user;

a contact identity being defined by code from a developer of the plug-in;

an interaction definition as defined by code from the plug-in developer, the interaction definition defining the ability for the plug-in to communicate with the user via: text conversation; winks; emoticons; blogging; advice; joke telling;

wherein when configured to function as the personal assistant, the personal-assistant-configured plug-in includes email functions, calendaring functions, and voicemail functions, which enable the plug-in to perform tasks comprising: scheduling of meetings;

updating the local user's tile to reflect the local user's current status; interpretation of incoming messages;

sending responses detailing when the local user is available; negotiation between schedules to determine non-conflicting solutions; performance of answering machine-type functions; and

preparation and sending of responses based on a sender of an incoming message;

wherein when configured to function as the remote control, the remote-control-configured plug-in functionality comprising: integration with webcams;

integration with media players; system administration; configuration of home lighting systems; and

interpretation of incoming messages;

wherein when configured to function as the provider of personal expression capabilities, the personal-expression-provider-configured plug-in functionalities comprising:

enabling a slide-show of user tiles;

enabling the local user to select different tiles based on the local user's mood;

interpreting outgoing messages based on keywords in the outgoing messages;

monitoring conversation;

using quotes as custom away messages; and

telling jokes or stories, which are selected by the local user;

wherein when configured to function as the provider of entertainment, the entertainment-configured plug-in functionality comprising:

communication with a richly configured artificial intelligence bot;

gaming scenarios between two or more bots; and creation of an interactive pet;

wherein when configured to function as the provider of additional utility, the additional-utility-configured plug-in functionality comprising:

additional functionality to the instant messaging application, the additional functionality comprising: providing blogging sound; displaying user interface notifications; sending email; and searching; provision of different ring tones; spying on buddy status; provision of a question/answer search; and diagnostics; and sandbox the plug-in to prevent the plug-in from performing unpermitted or unauthorized actions and to thereby provide a degree of security to at least the instant messaging application.

2. The system of claim 1 , wherein the platform is implemented using a .NET framework as a hosting platform.

3. The system of claim 2 , wherein the plug-in is sandboxed using Code Access Security.

4. The system of claim 1 , wherein the plug-in comprises a managed DLL.

5. The system of claim 1 , wherein the platform provides a managed code environment and the plug-in is loaded inside the environment's processor space.

6. A system comprising: one or more processors; one or more computer-readable storage media; and computer-executable instructions on the one or more computer-readable storage media which, when executed by the one or more processors, implement a platform comprising:

native code having components that implement instant messaging functionality;

managed code associated with the native code and having components configured to incorporate one or more plug-ins that extend an instant messaging application, wherein the plug-ins temporarily override an identity of a local user and act as an agent which is exposed to contacts that have the local user as a buddy, and wherein the plug-ins are sandboxed to prevent the plug-ins from performing unpermitted or unauthorized actions and to thereby provide a degree of security to at least the instant messaging application;

two or more plug-ins being further configured to function as two or more of:

a virtual buddy; a provider of personal expression capabilities; a provider of additional utility;

wherein when configured to function as a virtual buddy, the virtual-buddy configured plug-in comprises: a contact stored on a contact list of the local user, the contact only being accessible by the local user; a contact identity being defined by code from a developer of the plug-in; an interaction definition as defined by code from the plug-in developer, the interaction definition defining the ability for the plug-in to communicate with the user via: text conversation; winks; emoticons; blogging; advice; joke telling;

wherein when configured to function as the provider of personal expression capabilities, the personal-expression-provider-configured plug-in functionalities comprising: enabling a slide-show of user tiles; enabling a user to select different tiles based on the user's mood; interpreting outgoing messages based on keywords in the outgoing messages; monitoring conversation; using quotes as custom away messages; and telling jokes or stores, which are selected by the local user;

wherein when configured to function as the provider of additional utility, the additional-utility-configured plug-in functionality comprising: additional functionality to the instant messaging application, the additional functionality comprising: providing blogging sound; displaying user interface notifications; sending email; and searching; provision of different ring tones; spying on buddy status; provision of a question/answer search; and diagnostics.

7. The system of claim 6 , wherein the native code comprises a plug-in manager component that manages interaction between the instant messaging application and one or more plug-ins, and a managed host component that provides access to the managed code.

8. The system of claim 7 , wherein the native code comprises one or more managed plug-in wrappers, individual wrappers being associated with individual plug-ins in the managed code, wherein the wrappers are configured to effect communication with an associated plug-in.

9. The system of claim 6 , wherein the managed code comprises a managed host component that is configured to create application domains for individual plug-ins and create instances of individual plug-ins in an associated application domain.

10. The system of claim 9 , wherein the managed code comprises a client component that is configured to receive API calls from plug-ins and fire events to plug-ins.

11. The system of claim 6 , wherein:

the native code comprises:

a plug-in manager component that manages interaction between the instant messaging application and one or more plug-ins, and

a managed host component that provides access to the managed code; and

the managed code comprises:

a managed host component that is configured to receive API calls from the managed host component of the native code and, responsively, create application domains for individual plug-ins and create instances of individual plug-ins in an associated application domain.

12. The system of claim 11 , wherein the native code comprises one or more managed plug-in wrappers, individual wrappers being associated with individual plug-ins in the managed code, wherein the wrappers are configured to effect communication with an associated plug-in; and

wherein the managed code comprises a client component that is configured to receive API calls from individual managed plug-in wrappers and plug-ins, and to fire events to plug-ins.