In milestone configuration client there is a hierarchy of devices in Servers → Recording servers.
The root is a Recording servers node and under each ‘recording server’ there is a list of ‘Hardwares’.
Each of this ‘Hardwares’ could be identified by its MAC address.
Then if we understand this correctly, every ‘Hardware’ contains list of ‘Devices’. A ‘Device’ can be camera, microphone, speaker, metadata, input, output and maybe more and could identified by Port number. And in the case that ‘Device’ is a camera it may have a list of ‘Video streams’
From the point of our integration we consider ‘camera’ to be a ‘Device’. Because it is possible to start/stop recording, enable motion detection, trigger PTZ actions, it has presets and events.
In our test environment we have ‘Hardwares’ that only contain one ‘Device’ - camera. But in production environment we found out that there can be multiple camera-devices under one hardware.
So what does milestone server consider to be a camera?
We do not understand the case when there are multiple ‘Device’-cameras under one hardware:
Here is one camera under one hardware:Edit: I have created one ticket in support as well https://supportcommunity.milestonesys.com/s/question/0D53X0000BLSbqZSQT/what-does-milestone-server-consider-to-be-a-camera?language=en_US&t=1670587326108
The question arose as a result of our component integration.
We listen for changes using:
MessageCommunicationManager.Get(...).ConnectionStateChangedEvent
And we filter messages using:
CommunicationIdFilter(MessageCommunication.ProvideCurrentStateResponse)
After we receive message with items we only select those where:
itemState.FQID.Kind == Kind.Camera
The required behavior of our integration is to be able to trigger PTZ and other actions as well as listen for camera events. But when there are ‘hardwares’ with multiple ‘devices’ (which might be “virtual cameras” but are actually only one hardware camera), we are not able to distinguish this. So how could we approach all camera/hardwares in unified manner? (if that is even possible)

