ONVIF Bridge GetRecordingSearchResults response empty

Hi,

We have issues with GetRecordingSearchResults response, we cannot get the recording list even though we recorded in the local DB.

Below is what we have done:

First, make call to http://www.onvif.org/ver10/search/wsdl/FindRecordings

Second, make another call to http://www.onvif.org/ver10/search/wsdl/GetRecordingSearchResults with the searchToke from previous call.

we could not get the recording list, but only the status: tt:SearchStateCompleted</tt:SearchState>

My camera IP is 20.20.0.193 and the server installing ONVIF Bridge IP is 20.20.0.194, so for the soapEndpointUrl, it should be “http://20.20.0.193:80/onvif/device_service” or “http://20.20.0.194:580/onvif/device_service” ?

Can anyone give us advice? Please see the attachment for the full requests and responses.

Thank you

Hi Cheng,

You should make your calls toward the ONVIF Bridge server address.

IN your case this should be

http://20.20.0.194:580/onvif/device_service

I think however you’ve missed some arguments of the FindRecordings call.

Similar problem was discussed in this thread:

https://developer.milestonesys.com/s/question/0D53X00006W3NPFSA3/onvif-bridge-findrecordings-method-invalid-arguements

You could look at the Tsvetomira’s response.

Hi Petar,

Please look into the response. The arguments I put are correct, i could even get 200 response. However, there’s no recording data in the response. Please help.

Thanks

Hi Cheng,

As I see it you haven’t provided valid value of the “RecordingInformationFilter”.

As it is clearly stated in the sample in the already citated thread it should have value similar to:

<RecordingInformationFilter xmlns="http://www.onvif.org/ver10/schema">
			boolean(//Track[TrackType = "Video"]),2019-11-18T08:07:43Z,99999999,20,99999999,20
		</RecordingInformationFilter>

The format contains few parameters separated by the coma:

  • track type for which data is fetched - “boolean(//Track[TrackType = "Video"])
  • central time for recordings information fetching - “2019-11-18T08:07:43Z
  • max time-span before the central time for which the information is fetched in milliseconds - 99999999
  • max count of recording sequences fetched before the central time - 20
  • max time-span after the central time for which the information is fetched in milliseconds - 99999999
  • max count of recording sequences fetched after the central time - 20

You could specify only one direction for search providing zeros to the other.

For example if you want to search for recording only after central time you could use something like:

boolean(//Track[TrackType = "Video"]),2019-11-18T08:07:43Z,0,0,99999999,20

You receive OK as response because of unpropped implementation on the server side. FindRecordings for example only checks presence of the “RecordingInformationFilter” tag, but doesn’t check the actual format of value of it.