Skip to content

The "Extension" part at ONVIF wsdl is always parsed into a weird dict #1472

@kaburagisec

Description

@kaburagisec

I use zeep as the main ONVIF library for my repo at nirsimetri/onvif-python.

Since I also implemented it in PHP with native SOAPClient, the results are better in PHP like this:

{
    "Capabilities": {
        ...
        "Extension": {
            "DeviceIO": {
                "XAddr": "http:\/\/192.168.1.3\/onvif\/DeviceIO",
                "VideoSources": 1,
                "VideoOutputs": 0,
                "AudioSources": 1,
                "AudioOutputs": 1,
                "RelayOutputs": 0
            },
            "Recording": {
                "XAddr": "http:\/\/192.168.1.3\/onvif\/Recording",
                "ReceiverSource": false,
                "MediaProfileSource": true,
                "DynamicRecordings": false,
                "DynamicTracks": false,
                "MaxStringLength": 64
            },
            "Search": {
                "XAddr": "http:\/\/192.168.1.3\/onvif\/SearchRecording",
                "MetadataSearch": false
            },
            "Replay": {
                "XAddr": "http:\/\/192.168.1.3\/onvif\/Replay"
            }
        }
    }
}

But, when I use zeep (python) as a library, the "Extension" section is parsed like this:

{
    ...
    'Extension': {
        '_value_1': [
            <Element {http://www.onvif.org/ver10/schema}DeviceIO at 0x1fe03a83d00>,
            <Element {http://www.onvif.org/ver10/schema}Recording at 0x1fe03a973c0>,
            <Element {http://www.onvif.org/ver10/schema}Search at 0x1fe03a96900>,
            <Element {http://www.onvif.org/ver10/schema}Replay at 0x1fe03a96ac0>
        ],
        'DeviceIO': None,
        'Display': None,
        'Recording': None,
        'Search': None,
        'Replay': None,
        'Receiver': None,
        'AnalyticsDevice': None,
        'Extensions': None
    },
    '_attr_1': None
}

I still haven't found a solution to this, and I'm already using the latest version of Zeep:

$ pip show zeep
Name: zeep
Version: 4.3.2
Summary: A Python SOAP client

So, is there any PR or fix regarding this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions