Using the Milestone Plugin
The milestone plugin file is entitled Witness.Plugin.Milestone.dll and must be present in the Witness Plugin folder which is inside the main application folder. The plugin depends on Witness.Milestone.Common.dll which must be placed in the same folder.
The plugin can be selected during setup and will automatically install the files in the correct locations.
If you have already installed Witness without the Milestone plugin, you can run the setup to modify your installation to include the Milestone plugin.
Canary plugin and Cyclops milestone camera support both depend on the Milestone x86 redistributable files. Please ensure the following files are located in Witness application root folder:
Milestone Requirements
- Milestone XProtext 2016 Professional or higher
- Version 2016 or 2016 R2
- Edition Professional or higher
- Basic User must be set up for a Witness system user with full camera permissions.
Minimum required permissions shown in screenshot below - this should be allowed for all cameras.
Camera Control through Milestone
You can control cameras through Milestone or directly from Witness. If a camera is supported by Witness, we recommend direct control. If no cameras are controlled through milestone, skip to "Camera not controlled through Milestone" section.
Witness is able to support the majority of PTZ cameras on the market directly, but may also control a camera through Milestone. In terms of functionality, controlling the camera directly generally allows faster camera response and thus more accurate camera tracking. If a camera is not directly supported by Witness or which the Witness Cyclops service cannot get direct network access to, we can also use the Milestone camera connection to control the camera, assuming that this camera has successfully been set up as a PTZ camera on Milestone.
To control a camera through a Milestone server, we can set this camera using a Milestone camera connection through Sentinel UI.
Prerequisite configuration on Milestone
- Cameras to be controlled must be configured in Milestone as PTZ absolute positioning cameras.
- Verify: in Milestone Live workspace, check that the camera has the PTZ controls. (and that clicking them actually moves the camera)
- Verify: Hardware Device has a PTZ Devices tab and has Absolute on PTZ type.
Add Milestone cameras in Sentinel
- Add a new Milestone Camera Connection for each Milestone server in Sentinel.
In Milestone Expert OR Corporate:
- Open the Milestone Management Client and navigate to Cameras
- Expand the cameras and camera groups under the "Devices" tree until you see the individual cameras.
- Hold CTRL and select a camera
- Copy out the ID from the bottom of the info tab (make sure you do not also copy the "ID = " text from that field).
- Paste the camera Guid in External System Id field.
- For camera type, select an Onvif compatible camera - even if the actual camera is not Onvif (use Generic Onvif if none other are suitable).
- You may need to modify zoom coefficients depending on your camera.
- We are also able to support multiple Milestone cameras through a single sentinel camera by separating the camera Guids with a comma: ",". This is useful when a single ptz controls multiple video feed e.g. for a camera with separate thermal and normal videos.
In other versions of Milestone:
- Navigate to the Milestone server installation directory and open the configuration.xml file.
Here, search for the PTZ camera (by camera name), and copy out the guid. Take care to copy the camera guid rather that the hardware device guid.
- Add new camera under the corresponding Milestone Camera Connection
- Paste the camera Guid in External System Id field.
- For camera type, select an Onvif compatible camera - even if the actual camera is not Onvif (use Generic Onvif if none other are suitable).
- You may need to modify zoom coefficients depending on your camera.
- We are also able to support multiple Milestone cameras through a single sentinel camera by separating the camera Guids with a comma: ",". This is useful when a single ptz controls multiple video feed e.g. for a camera with separate thermal and normal videos.
Witness should now be able to control that camera.
Configure Cameras not Controlled Through Milestone
If a camera is controlled directly by Cyclops through a different protocol, e.g. Onvif, but is displayed through Milestone, we can still use that camera for Milestone integration by obtaining its Guid and linking our sentinel camera to it through the External System Id.
In Milestone Expert OR Corporate:
- Open the Milestone Management Client and navigate to Cameras
- Expand the cameras and camera groups under the "Devices" tree until you see the individual cameras.
- Hold CTRL and select a camera
- Copy out the ID from the bottom of the info tab (make sure you do not also copy the "ID = " text from that field).
- Paste the camera Guid in External System Id field.
- For camera type, select an Onvif compatible camera - even if the actual camera is not Onvif (use Generic Onvif if none other are suitable).
- We are also able to support multiple Milestone cameras through a single sentinel camera by separating the camera Guids with a comma: ",". This is useful when a single ptz controls multiple video feed e.g. for a camera with separate thermal and normal videos.
In other versions of Milestone:
- Navigate to the Milestone server installation directory and open the configuration.xml file.
Here, search for the camera (by camera name), and copy out the guid. Take care to copy the camera guid rather that the hardware device guid.
- Paste the camera Guid in External System Id field in Sentinel.
- We are also able to support multiple Milestone cameras through a single sentinel camera by separating the camera Guids with a comma: ",". This is useful when a single ptz controls multiple video feed e.g. for a camera with separate thermal and normal videos.
Alarm Integration with Milestone
To store Witness alarms in Milestone, additional configuration is required
- Ensure Sentinel Image server is enabled (check Configure Sentinel MJPEG Streaming article).
Add this as a camera in Milestone server using the Universal Single Channel Milestone driver.
Copy out the camera Guid of this new camera source and place this in the Witness Piccadilly plugin config "Sentinel Map" field.
IMPORTANT: If changing Sentinel camera host instead of adding a new one Sentinel Camera, you need to Delete the hardware device and add new - do not just change the IP on the hardware device.- If you do not have a section for Milestone config in the plugin config file, you can get the system to automatically generate the defaults by starting Canary after making sure that the following are installed in the Canary plugins folder:
Check that all Milestone servers are added in the plugin configuration.
Witness PluginConfig.xml Example<?xml version="1.0" encoding="utf-8"?> <Config> <Plugins> <Milestone> <PluginConfig> <EventServer> <!--Milestone event server. Can also include camera image server.--> <ServerIp>10.0.6.123:80</ServerIp> <!--Server IP and optionally port--> <Username>Marvin</Username> <Password>MarvinsPassword</Password> <Authmode>Basic</Authmode> <Critical>True</Critical> </EventServer> <ServerList> <!--Other Milestone camera image servers can be added under server list - serverconnectionparams.--> <ServerConnectionParams> <ServerIp>10.0.6.123:8080</ServerIp> <Username>Marvin</Username> <Password>MarvinsPassword</Password> <Authmode>Basic</Authmode> <Critical>false</Critical> </ServerConnectionParams> </ServerList> <TimerTick>10</TimerTick> <AlarmTimeout>60</AlarmTimeout> <SentinelMapCameraGuid>C89D3014-7E31-4C22-BA34-154AD5C17A8B</SentinelMapCameraGuid> <!--Insert Sentinel Camera Guid from Milestone config. Even if not using Sentinel map MPEG output, a valid camera Guid MUST be included here--> <HeartbeatInterval>1000</HeartbeatInterval> </PluginConfig> </Milestone> </Plugins> </Config>
Once you have made changes to the plugin configuration file then you must restart the Canary application / service for the new settings to be applied. No other modules need to be restarted.
Ser | Node | Description |
---|---|---|
1 | EventServer | This node contains the connection information to the main Milestone Event server |
2 | ServerList | This node contains a list of ServerConnectionParams to support Milestone environments with multiple Milestone servers. The event server should not be included again in the server list. |
3 | ServerIp | Address of the Milestone Server. This can be an IP or URI. By default Milestone Servers will use port 80. You can also specify a different port e.g. :8080. |
4 | Username | Milestone user. This should be a user specifically created on Milestone for Witness to use. |
5 | Password | Milestone user password |
6 | Authmode | Authentication mode. Should always be set to Basic. |
7 | Critical | To indicate if this server is critical for Witness-Milestone integration. For example, this could be the Image server for the Sentinel Map. Event Server should always be marked as critical. |
8 | TimerTick | Time in seconds between Ticks for doing periodic actions e.g. closing old alarms. |
9 | AlarmTimeout | Timeout in seconds before alarms are closed by Canary if no updates to the alarm are received. |
10 | SentinelMapCameraGuid | Camera Guid on Milestone of the Sentinel Map camera. A valid Milestone Camera Guid must be input here even if the Sentinel Map is not output. |
11 | HeartbeatInterval | Not currently used |
- Obtain the Milestone camera Guid for every camera used in Witness and ensure that this Guid is on the Witness Camera External System Id. (see above Camera not controlled through Milestone section)
- On the Milestone Server, Alarm, Event and Video retention period for each camera must be the same. This should be determined by your requirements and storage capacity.
Check that the Witness System can access the Milestone Event Server
- Milestone Event Service is installed and running and configured within the Milestone server
- Witness user has rights to create and modify alarms and events
- If Milestone was installed with a hostname, check that Witness machine can resolve that hostname and can access port 22331 through any firewall.
- If hostname cannot be resolved, you can change the connection to IP through Milestone Management Client by going to → Tools → Registered Services...
- Select the "Event Server" and click Edit...
- Change the address to the machine's IP and click OK
Related information
-
Milestone and Siemens Siveillance VMS Integration (Witness 4.0)
-
Bosch BVMS Plugin (Witness 4.0)
-
ADAM-6060 Relay Plugin (Witness 4.0)
-
Milestone XProtect Plugin (Witness 4.0)
-
Mail and SMS Plugins (Witness 4.0)
-
RTS IFF Plugin (Witness 4.0)
-
Installing the Witness Software (Witness 3.0)
-
ICD-001 Plugin (Witness 4.0)
-
ICD-006 Plugin (Witness 4.0)
-
ICD-007 Plugin (Witness 4.0)
-
Integration Simulator (Witness 4.0)
-
ICD-001 Commands (Witness 4.0)
-
ICD-001 Message Reports (Witness 4.0)
-
ICD-001 Communication (Witness 4.0)
-
ICD-001 Overview (Witness 4.0)