Introduction to events and alarms
You can send events to an XProtect system in a few different formats.
Sending events into an XProtect
Each event format has a specific purpose for how it must be handled and displayed.
Input events
Input events are generated by hardware devices such as cameras and video servers. These devices can be either physical hardware wired contacts, or built-in events in the devices. There is no additional information on this kind of event.
The input event is handled by XProtect rule definitions. It is forwarded to the XProtect Event Server as an “External Event” to be handled though the AlarmDefinitions and stored. It is stored in the XProtect Event Server and can be retrieved by the GetEventLines, GetEvent methods on the IAlarmCommand SOAP interface.
User-defined events
In the XProtect Smart Client, operators can select and activate live side panel “Events”.
The user-defined events can have one or more cameras associated with the event, but no other information is available with this type of event.
A user-defined event is triggered via the ServerCommand service protocol or the MIP message “Control.TriggerCommand”.
The event is handled by XProtect rule definitions, and it is forwarded to the XProtect Event Server as an “External Event” that is handled though the AlarmDefinitions and stored. It is stored in the XProtect Event Server and can be retrieved by the GetEventLines, GetEvent methods on the IAlarmCommand SOAP interface.
Generic events
The Generic API is an open API that you can use to send UDP and TCP packets into XProtect. It is intended to contain text in any format, to match with a set of definitions and upon a positive match to trigger specific rules or actions. The generic events are converted internally to a user-defined event, and they follow the same execution path as a user-defined event.
Analytics events
Analytics events are events that contain a set of relevant information about the event. This can be about the originator of the event, related cameras, objects, bounding boxes and other relevant information.
You can also generate it within MIP Environments for XProtect Smart Client, XProtect Event Server or standalone .NET library. You do this by creating a Data.AnalyticsEvent class and sending it to the XProtect Event Server by using the message Server.NewEventCommand.
The analytics events are filtered through the AlarmDefinitions, and when a positive match occurs, an alarm is created with a copy of all the information contained in the analytics event.
For more details on protocol integration: Analytics and MAD Protocol
Alarms
Alarms mostly come as a result of filtering or matching with an AlarmDefinition from the XProtect Event Server. But in some cases, it makes sense to send an alarm directly into the XProtect Event Server for storage and management.
You can create alarms by use of the AlarmCommand SOAP service method “Add( token, alarm)”, or by sending the alarm class with a Server.NewAlarmCommand message. This message is generated within MIP Environments for XProtect Smart Client, XProtect Event Server or standalone .Net Library.
Alarms are displayed in the XProtect Smart Client “AlarmList” view item. You can retrieve alarms by the use of the AlarmCommand SOAP service methods GetAlarmLines, GetAlarm, GetAlarmHistory.

The figure illustrates the different ways that the events flow through the XProtect system.
Notification of new events and alarms
Within the XProtect Event Server MIP Environment, you can monitor and receive new events by registering a receiver for the Server.NewEventIndication message.
Within the XProtect Event Server MIP Environment, you can monitor and receive new alarms by registering a receiver for the Server.NewAlarmIndication message.
When you execute in the XProtect Smart Client, new events and alarms are not automatically sent to all running XProtect Smart Clients. A MIP plug-in can create an instance of the AlarmCommand proxy and poll for new events or alarms at regular intervals – for example every 3 seconds.