Milestone XProtect "Automatically retrieve remote recordings when connection is restored" feature integration with multi-channel Onvif NVT

I am developing an Onvif NVT that can also record at the edge. It is actually a 4 channel NVT. I have added some partial profile G support, i.e. I have added support for the recording search service, replay service but not much of the recording service since recordings are configured via the unit’s web page instead of via an Onvif client. If I configure as a single channel NVT and use the Milestone XProtect 2023 R3 (with Professional+ license) single channel Onvif driver, then I can get the “Automatically retrieve remote recordings when connection is restored” feature to work. However, in 4 channel mode, with Milestone using the multi (2-16) channel Onvif driver, it is not working. The NVT delivers the response to the GetRecordingSearchResults for all 4 channels but Milestone does not send a GetReplayUri request for any of them.

My guess is that Milestone does not know which recording in the search results is for which profile. I notice that Milestone does send a GetRecordingJobs request that the NVT does not currently support. I further guess that Milestone is trying to find a recording job associated with a recording token in order to extract the media profile information from that, thus linking a recording token with a media profile.

Can somebody confirm if that is the only way a recording token can be linked to a media profile in order to get this feature to work, or whether it can be done more simply, e.g. by something in the RecordingInformation for a recording token?

Dear Partner,

Milestone Development will conduct an investigation and will get in touch with you.

Best regards!

Hello Cliff,

Not sure if you’ve already seen it, but the Technical section of our ONVIF drivers documentation may be of help to you - in addition to documenting the Edge storage retrieval workflow, it also describes the Requirements for Edge Storage on Multichannel devices.

Your observations about GetRecordingJobs are correct, but there is also a fallback mechanism if this call fails (as described in the latter section):

As a fallback if GetRecordingJobs fails or doesn’t return the needed information the SourceId field of the RecordingInformation structure will be checked if it matches the token of the needed Video/Audio source or if it matches the MediaProfile tokens of all profiles containing our needed Video/Audio source. By the ONVIF specification this is not the intended usage of the SourceId field but some ONVIF Profile G devices use it as a holder for the token of the Video/Audio source.

As a side note, i would also recommend ONVIF driver going forward (it does support multiple channels), since the ONVIF16 is now obsolete, as well as the latest Device Pack (currently this is version 13.2)

I hope this helps.

BR,

Gabriela

Thanks for the response, it does help. Also thanks for you advice about using the Onvif driver.

Best Regards,

Cliff