What's new in Milestone AI Bridge
Milestone AI Bridge 2.0.0
Breaking change: Manufacturer id field removed
The manufacturer.id field added in Milestone AI Bridge 1.7.0` which was used for Milestone Installed Integrations Insights has been removed. If you have used the manufacturer.id parameter in your IVA code, you must remove all the references to the parameter.
The manufacturer.name parameter is still present and is still used to contain the name of the IVA manufacturer.
Breaking change: New name format for analytic events
Analytics events created by Milestone AI Bridge in the Milestone XProtect VMS will follow a new format: app-name / event-name.
The new naming format will help Milestone XProtect users identify analytics events across the Milestone XProtect VMS.
As a result of this naming change, you must update your Milestone XProtect Processing Server Admin Plugin to the latest version.
To continue receiving analytics events fromMilestone AI Bridge, you can either rename your IVA analytical events to the new naming format `app-name / event-name` in your Management Client, or you can unsubscribe all your former analytic event topics and then subscribe to the topics again.
If you have created rules or alarm definitions that reference these analytics topics and didn't rename your IVA analytic events, you must update the rules or alarm definitions to the new analytic event name format.
Milestone AI Bridge registered Milestone Installed Integrations Insights` platform
Milestone AI Bridge is now registered on the Milestone Installed Integrations Insights platform when a license is activated and the processing server is registered.
enforce-oauth parameter not used when getting camera's snapshots
The enforce-oauth parameter in the Milestone AI Bridge Streaming container is no longer used when getting camera's snapshots.
New EXTERNAL_ROOT_PATH environment variable
A new environment variable called EXTERNAL_ROOT_PATH has been introduced to enable the creation of Milestone AI Bridge's ingress rules based on a common segmentation path. The default value of the EXTERNAL_ROOT_PATH environment variable is “/processing-server”.
If you have hardware that was created based on a Milestone AI Bridge subscription (metadata or video topics), you must either:
Set the environment variable EXTERNAL_ROOT_PATH to "" (ie empty) in your .env file
… or …
Update all your currentMilestone AI Bridge's VPS-related hardware URLs.
See the following examples:
For video-related hardware
In the properties of hardware, add '/processing-server' to the path, changing the URLs from:
<br/>VPSNODES,http://[AiBridgeHost]/video/[guid]/[topic]/[format]/[guid]/[guid]<br/>
to
<br/>VPSNODES,http://[AiBridgeHost]/processing-server/video/[guid]/[topic]/[format]/[guid]/[guid]<br/><br/>
For metatada-related hardware
In the properties of hardware, add '/processing-server' to the path, changing the URLs from:
<br/>VPSNODES,http://[AiBridgeHost]/metadata/[guid]/[topic]/[format]/[guid]/[guid]<br/>
to
<br/>VPSNODES,http://[AiBridgeHost]/processing-server/metadata/[guid]/[topic]/[format]/[guid]/[guid]<br/>
Storing log files when using docker compose deployments.
Storing log files at /var/log/aib/[container-name]/ is now only enabled when using docker compose deployments.
New log-file-enabled parameter doe docker compose yaml files
The log-file-enabled parameter has been introduced to the docker compose yaml files. This boolean parameter enables or disables the generation of log files.
Unregistering a processing server from the Management Client
XProtect system administrators can now unregister a processing server in the XProtect Management Client.
Unregistering an IVA application from the Management Client
XProtect system administrators can now unregister processing server IVA applications in the XProtect Management Client.
Milestone AI Bridge container uses newer versions of the gortsplib package
The Milestone AI Bridge Streaming container is now updated to use newer versions of the gortsplib package: github.com/aler9/gortsplib/v2 v2.0.0
Previous versions of Milestone AI Bridge

New optional logging parameters
Four new optional parameters added to setup logging to a file in all Milestone AI Bridge containers:
-
log-max-size: numeric, expressed in megabytes, the maximum file size for a single log file - default 100.
-
log-max-backups: numeric, the maximum number of files to keep stored before removing them - default 15.
-
log-max-age: numeric, expressed in days, the maximum amount of days to remove files - default 15. Not applicable on Milestone AI Bridge Webservice container.
-
log-level: string, log level to use (error, warn, info, debug). Just applicable on Milestone AI Bridge Webservice container.
Log files
Log files are mounted in volumes, on the host: /var/log/aib/[container-name]/- for example /var/log/aib/aibridge-webservice/webservice.log for the Milestone AI Bridge Webservice container.
Unregistering IAV apps
New behavior in Milestone AI Bridge when an IVA app unregisters. Now, the following happens:
-
In the VMS system, the analytics cameras created when you subscribed to the IVA app’s analytics topics are disabled. Disabled analytics cameras no longer listen for analytics data, but you can still access all previously received analytics data.
-
Information about which of the IVA app’s analytics topics you subscribed to is cleared. You must re-subscribe to analytics topics when the IVA app is registered again. Re-subscribing to a topic also enables the existing analytics topic-related analytics camera.
New parameter for controlling and queuing internal RTSP buffers with video from a VMS system.
The new rtsp-write-buffer-count parameter is added to the Milestone AI Bridge Streaming container. The parameter's default length is 1024. If you want to use a different length, use lengths that are a power of two (512, 1024, 2048, and so on).
Whenever this buffer is not long enough for your video packages, the Milestone AI Bridge Streaming container logs the following message in the /var/log/aib/aibridge-streaming/streaming.log log file on the host running Milestone AI Bridge or inside the container:
"RTSP buffer (Camera ID: [XXX-AAAA] - Stream ID: [YYY-BBB]): The VMS system has sent a video package with the length of '[Integer-Value-Here]'. However, Milestone AI Bridge can only handle packages whose maximum length is '[IntegerValue-Here]'. Increase the length of the 'rtsp-write-buffer-count' parameter in the Milestone AI Bridge Streaming container to handle longer video packages."
Newer version of Go RTP packages used
The Milestone AI Bridge Streaming container is now updated to use newer versions of the Go RTP Packages:
-
github.com/pion/interceptor v0.1.29
-
github.com/pion/rtcp v1.2.14
-
github.com/pion/rtp v1.8.7
All Milestone AI Bridge Go-based containers now use Go 1.22.5.

Executive Order 14028 compliant
Milestone AI Bridge now complies with Executive Order 14028 about improved cybersecurity. For more information, visit: https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
Containers run Ubuntu 22.04
The Milestone AI Bridge containers are upgraded from Ubuntu 20.04 to 22.04.
Improved synchronization with XProtect VMS
The synchronization between Milestone AI Bridge and the XProtect VMS system is improved. Fewer amounts of synchronization are now needed.
OAuth token validation improved
The Milestone XProtect Identity Provider is now handling the issuer validation. Before, the validation relied on verifying the Milestone XProtect Management Server hostname.
Topics in the App subscription list sorted by type
On the Processing server tab, the Milestone AI Bridge topics in the App subscription list are now sorted by type (event, metadata, and video) and displayed alphabetically for easy selection and navigation.
Webservice container upgraded to Node.js 20
The Milestone AI Bridge Webservice container is upgraded from Node.js 16 to 20.

Installer updated
The Milestone XProtect Processing Server Admin Plugin installer now requires and verifies the installation of Microsoft Edge WebView2.
Latest graphql-yoga used in Webservice container
Switch from deprecated NPM package express-graphql to the latest graphql-yoga in the Milestone AI Bridge Webservice container.
Fuseki container updated to Jena Fuseki 4.7.0
The Milestone AI Bridge Fuseki container now uses Jena Fuseki version 4.7.0 (previously 4.4.0).
New register.graphql parameters
The register.graphql file has three new parameters: version, manufacturer.id, and manufacturer.name. IVA manufacturers can use the parameters to register their companies on the Milestone Installed Integrations Insights platform.

-
The first version of the Milestone AI Bridge Integrator and Administrator documentation.