Hello Team,
We are looking for guidance on the best approach to monitor camera status changes in Milestone VMS environments, as we have found multiple possible approaches.
Currently, we are using the StatusSession class from VideoOS.Platform.SDK.StatusClient. We initialize one StatusSession for each Recording Server and subscribe to the CameraStateChanged event (attached the code snippet). This works correctly in some deployments, but in some sites/NVRs we are not receiving any status events. We suspect this may depend on VMS configuration differences.
We also tested the StatusViewer sample from the mipsdk-samples-component. This sample successfully retrieves camera status and appears to communicate with the Event Server instead of the Recording Server. We would like to know whether this approach works by default on all Milestone VMS versions, or only applies to certain VMS versions, or if it requires specific configuration,
We have also reviewed the EventAndStateViewer sample from the mipsdk-samples-component, which also appears to support our requirements.
Could you please advise on the recommended approach for implementing camera status monitoring? Should we transition to Event Server–based state subscriptions instead of using StatusSession directly with each Recording Server? And is any server-side configuration required to ensure that camera status events always flow correctly?
Our requirements are below:
- Retrieve the complete initial state of all cameras.
- Receive real-time status updates whenever a camera state changes.
- Ensure the approach works consistently across different Milestone VMS versions.
Could you please advise the best approach to follow for receiving camera status updates?
Thank you in advance for your support!
We generally recommend using the approach demonstrated by the StatusViewer sample. It should work with all currently supported VMS versions.
StatusSession should also work but it is hard to say from your description what is the issue.
Hi Peter,
Thank you for the clarification.
I will proceed with the approach demonstrated in the StatusViewer sample.
Just wanted to confirm a couple of points regarding the Event Server:
- Is the Event Server always included and enabled by default in all Milestone installations, or are there VMS editions or deployment scenarios where the Event Server might not be available?
- Is any additional configuration required on the Milestone VMS side for the Event Server to publish or forward camera status events?
This information will help ensure that this approach works consistently across all customer environments.
Thank you again for your support.
Hi Bo,
Thank you for the clarification.
Hi Bo,
While trying to connect using StatusViewer sample, below attached warning message is shown. After clicking OK, the StatusViewer sample loads and the cameras are listed, but none of the events are triggered.
Could you please advise on the cause of this issue and how we can resolve it?
Thank you.
Hi Bo,
Thanks for the link. I’ll check the article and troubleshoot based on that.
Hi Bo,
While requesting for current camera states using below code,
_messageCommunication.TransmitMessage(new Message(MessageCommunication.ProvideCurrentStateRequest), null, null, null);
below attached MIP Exception is thrown. Kindly advise.
In the first line the hostname is mentioned, is that what you used when you used the knowledge base article? I have a hunch that the issue might be DNS, that the hostname does not connect.
In Management Client, Tools, Registered Services, look at the Event Server, is the registration correct there?