Exchange MWI Plugin Support

You can now extend ExchangeMWI with any .NET language you prefer. Simply reference the ExMwiLib.dll in your project and implement the IExchangeMwiPlugin interface. Your plugin will be notified when the user's status changes, including the voicemail count. If the message waiting light is on or off, an array of message IDs and many more features will become available to use in your own plugin. Class Diagram

Bookmark and Share

IExchangeMwiPlugin Interface methods

/// <summary>
/// Called when a user's status changes.
/// This includes the voicemail count and if the lamp is on or off.
/// </summary>
/// <param name="u">A copy of the Unified User</param>
void UMUserUpdate(IUMUser u);

/// <summary>
/// Called when a new unified user is found in Active Directory.
/// Use UMUserUpdate instead for voicemail properties.
/// </summary>
/// <param name="u">A copy of the Unified User</param>
void NewUMUserFound(IUMUser u);

/// <summary>
/// Called when the ExchangeMWI service is stopped
/// </summary>
void Stopping();

/// <summary>
/// Called when the ExchangeMWI service is starting
/// </summary>
/// <param name="args">Passed in from the service args</param>
void Starting(string[] args);

/// <summary>
/// Called when the preference file is changed
/// </summary>
/// <param name="p">A copy of the preferences</param>
void PreferencesChanged(IPreferences p);

When ExchangeMWI calls your plugin it passes a copy of UMUser class and fills the interface IUMUser.

IUMUser Properties

// The user's email address
String EMail { get; }

// A count of unread voicemails
String UnreadVM { get; }

// Indicates if the lamp is on
bool LampOn { get; }

// The user's display name
String Name { get; }

// The LDAP path to the user in Active Directory
String AdsPath { get; }

// An array of directory numbers the user is assigned in Exchange
DirectoryNumbers Numbers { get; }

// An array of voicemail message IDs from Exchange. Type cast each item as string.
ArrayList VoiceMessageIDs { get; }

//The status of the user in Active Directory.
bool UserEnabled { get; }


IPreferences Properties

public interface IPreferences
{
bool ShowDebugErrors { get;}
bool TurnLampOffOnShutdown { get;}
bool Secure { get; }

String CMServerPort { get; }
String CMServer { get; }
String Domain { get; }
String User { get; }
String Password { get; }
String ExchangeServer { get;}
}

The following example shows how to get all the assigned directory numbers the user has.

The following example shows how to get the LDAP path of a new user found by ExchangeMWI

Long Island, New York
Aaron Software © 2008  |  Privacy policy