We’ve created a plugin to send the user alerts in the smart client. The code creates the “alert” by simply wrapping a new user interface around a Milestone Alarm, presenting the “alert” to the user, and submitting the Milestone Alarm via
EnvironmentManager.Instance.SendMessage(new Message(MessageId.Server.NewAlarmCommand) { Data = alarm });
My understanding was that the MIP SDK works with all Milestone Licenses including Essential+. However, on Essential+, our plugin can create the alert/alarm via the above code, but we are unable to close the alarm with
We get an error saying alarms are not available. So we can create alarms but not close them, which causes problems.
Is my understanding correct? Are you able to use all parts of the MIP SDK in integrations with all XProtect versions (Corporate, Essential+, etc), or are there some parts of the SDK you shouldn’t use if your customer might use Essential+?
Hi Rie, thanks for the quick response here. I’ve seen the linked document before, and I thought it was only referring to XProtect user interface features (by that I mean the Alarm Manager), and not MIP SDK features (by that I mean the Alarm API).
What approach does Milestone recommend when we use MIP SDK API’s, that are not available in all XProtect versions? Should we be checking the XProtect license type immediately before using the MIP SDK API, or should we be doing something else?
The referring document shows an overview of the features that each XProtect product provides. If you cannot use Alarm manager feature itself then you cannot use it via SDK (server-side functionality not included).
The ideal way is to check functionality that you want to use with Comparison Chart first. However, you can upgrade a license easily if you use C-Code product. In that case, please contact with your regional Milestone presales department directly, you should get better help from them.
for our XProtect Corporate installation, one of the features is “ManageAlarms”. I’m assuming this is the feature that enables creating and closing alarms in the SDK and in the Alarm Manager itself. My preferred approach here would be to allow our plugin’s “alert” feature if “ManageAlarms” is enabled (because our alerts depend on alarms), and disable our “alert” feature if “ManageAlarms” is disabled (we would assume “ManageAlarms” is disabled if it is not in the returned LicenseManager.Features list). Do you see any problems with this approach? Is this a good way to handle users who may have Essential+ vs Corporate XProtect licenses?