elsampsa / valkka-core

Valkka - Create video surveillance, management and analysis programs with PyQt
GNU Lesser General Public License v3.0
181 stars 35 forks source link

Onvif Recordings #41

Open alejoGT1202 opened 1 year ago

alejoGT1202 commented 1 year ago

I'm trying to use the Onvif Recordings WSDL

I create my custom class as follows:

class Recordings(OnVif):
    namespace = "http://www.onvif.org/ver10/recording/wsdl"
    wsdl_file = getWSDLPath("recording.wsdl")
    sub_xaddr = "recording_service"
    port      = "RecordingBinding"

Using this class I create my device_service object. However when I'm trying to use the available methods from the WSDL, like: device_service.ws_client.GetRecordings() or device_service.ws_client.GetServiceCapabilities()

I'm getting the following error.

    device_service.ws_client.GetServiceCapabilities()
  File "/home/alejo/.local/lib/python3.8/site-packages/zeep/proxy.py", line 46, in __call__
    return self._proxy._binding.send(
  File "/home/alejo/.local/lib/python3.8/site-packages/zeep/wsdl/bindings/soap.py", line 135, in send
    return self.process_reply(client, operation_obj, response)
  File "/home/alejo/.local/lib/python3.8/site-packages/zeep/wsdl/bindings/soap.py", line 229, in process_reply
    return self.process_error(doc, operation)
  File "/home/alejo/.local/lib/python3.8/site-packages/zeep/wsdl/bindings/soap.py", line 392, in process_error
    raise Fault(
zeep.exceptions.Fault

Checking a little bit more in the soap,py file the response I'm getting is always 400. However this doesn't happen if I use other classes such as DeviceManagement. Any hint what might be causing this?

elsampsa commented 1 year ago

The wsdl files that come off-the-shelf with libValkka, might not be the most up-to-date (I'll keep this ticket open so I remember to update them at some moment)

Other from that, can't say, since I have never used onvif recording features.. I assume you're trying to send some onvif commands to a camera so that the camera itself would do some internal recording of it's stream?

In libValkka we have the philosophy that cameras should be as dum as possible and just offer low-latency video stream and everything else is then done in the libValkka / linux server side.