Skip to main content

Integrating with Milestone XProtect VMS

DataFromSky avatar
Written by DataFromSky
Updated yesterday

This document describes the capabilities of FLOW’s integration with the Milestone XProtect Video Management System (VMS) and provides notes for installation and setup of this interface. The below has been tested with FLOW v1.17 and XProtect v2022 R2. For other versions, please contact our Support.

General prerequisites

Before starting the integration, make sure your environment is correctly prepared.

  • DNS configuration:

Each machine that will run any Milestone component should have proper DNS records configured. XProtect relies on DNS resolution for component communication and may not function correctly using IP addresses only.

  • Installed Milestone components:

Ensure that XProtect Management Server, Recording Server, and Event Server are installed and licensed. These are required for handling camera streams, storing footage, and processing events.

  • FLOW Insights:

FLOW Insights must be installed and accessible from the same network as your Milestone system. It serves as the configuration and monitoring interface for FLOW analytics.

Configuring Milestone

Follow these basic steps to prepare your Milestone XProtect system for integration with FLOW:

  • Add camera streams

Add cameras to your XProtect system through the Management Client and verify that the streams are functioning correctly. FLOW will later use these camera feeds when creating analytics.

  • Set up analytic events

Create Analytic Events within XProtect that correspond to events sent from FLOW, such as speeding, wrong-way driving, or stopped-vehicle detection. Only event names defined here can be accepted from FLOW.

  • Set up alarms

Create alarm definitions that use analytic events as triggers. This enables alarms to appear in the Alarm Manager tab of the Milestone Smart Client once FLOW starts sending events.

FLOW ⇔ XProtect API options

There are two supported communication methods between FLOW and XProtect:

  1. SOAP API – a traditional and easier-to-configure integration layer.

  2. AI Bridge – a newer, metadata-rich interface that supports advanced functions such as camera direction, location, and more detailed event exchange.

Both methods are supported. The following sections describe how to configure each option.

1. SOAP API setup

The SOAP API allows FLOW to obtain information directly from the XProtect VMS. There are two main variants depending on how camera streams are accessed.

1A. Direct connection

This variant lets FLOW communicate directly with the cameras managed by XProtect. It does not require any middleware component, which simplifies the setup.

Ensure that all devices – cameras, XProtect servers, and FLOW – can communicate over the network and that their clocks are synchronized (e.g., using an NTP server).

To set it up:

  1. In FLOW Insights, open Interfaces → Add a VMS server → Milestone XProtect SOAP.

  2. Enter the VMS hostname (as defined in DNS), along with the XProtect username and password.

3. Save settings. FLOW will automatically establish communication with XProtect.

4. Go to Analytics → Add new analytics, and you will see the option to import cameras from the VMS network.

5. Select cameras with the same credentials and stream path (RTSP) and complete the import wizard.

Each imported stream will create a new analytics in FLOW.

Limitations

Although this method avoids middleware and is simple to configure, consider the following:

  • It duplicates stream transfer between cameras and both systems.

  • Streams will not work if FLOW is running on a different subnet from the cameras.

  • Streams received by FLOW are not time-synchronized with XProtect, which may cause small timestamp deviations when sending events.

  • Importing analytics can take longer if multiple camera groups use different credentials or stream paths.

1B. Open Network Bridge

The Milestone Open Network Bridge serves as a middleware that retransmits camera streams from XProtect to external applications in standard RTSP format. This approach simplifies stream management since FLOW can retrieve the feeds directly from XProtect without knowing each camera’s login or RTSP path.

To use this method:

  1. Install and configure the Open Network Bridge on the XProtect machine.

  2. In FLOW Insights, create or edit a SOAP VMS interface.

  3. Set the Connection string source to Open Network Bridge.

  4. Save the configuration and add analytics as described above. FLOW will now use the predefined URIs from the bridge automatically.

Limitations

  • The Open Network Bridge may show unexpected behavior with some camera types resulting in a lower frame rate than expected.

AI Bridge API setup

The AI Bridge is a newer integration mechanism developed for more advanced data exchange. FLOW communicates with the AI Bridge instead of directly with the XProtect servers. It allows FLOW to send richer metadata and receive structured information about camera configuration and locations.

Once properly configured, it functions similarly to the SOAP Open Network Bridge setup – providing a stable connection for event and stream exchange. AI Bridge operates as a separate component within the Milestone ecosystem and must be installed and configured alongside XProtect. For detailed installation instructions to enable the AI Bridge, please contact our Support.

Sending events from FLOW to XProtect

Once the integration is established, FLOW can send analytic events back to XProtect. These events are typically generated by zones, gates, or filters within FLOW analytics. To configure this:

  1. In FLOW Insights, open any analytic imported from a VMS interface.

  2. Attach a Table widget to an operator, such as a Zone.

  3. Set the widget’s Time mode to Now.

  4. Open the VMS interface detail and select Add an event topic.

  5. The topic name must match an Analytic Event defined in the XProtect Management Client.

  6. Link the event to the chosen table widget and save the settings.

After configuration, each detected traffic object in FLOW (for example, a vehicle crossing a defined gate) will trigger an analytic event in XProtect, carrying information such as object category, license plate, or position within the frame.

Did this answer your question?