quatanium / python-onvif

ONVIF Client Implementation in Python
MIT License
470 stars 312 forks source link

Failed to initialize an ONVIFCamera instance #18

Open crogerjack opened 8 years ago

crogerjack commented 8 years ago

ubuntu@ubuntu-lenovo:~/Downloads/python-onvif-master/tests$ sudo python test.py Traceback (most recent call last): File "test.py", line 21, in class TestDevice(unittest.TestCase): File "test.py", line 24, in TestDevice cam = ONVIFCamera(CAM_HOST, CAM_PORT, CAM_USER, CAM_PASS) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.2-py2.7.egg/onvif/client.py", line 216, in init self.update_xaddrs() File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.2-py2.7.egg/onvif/client.py", line 226, in update_xaddrs services = self.devicemgmt.GetServices({'IncludeCapability': False}) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.2-py2.7.egg/onvif/client.py", line 28, in wrapped raise ONVIFError(err) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.2-py2.7.egg/onvif/exceptions.py", line 22, in init self.reason = err.fault.Reason.Text AttributeError: Fault instance has no attribute 'Reason'

yuetianle commented 8 years ago

may be the login info errors. the port is right.

jscott1644 commented 8 years ago

What type of camera is this?

I found that the 'GetServices' call is optional according to the ONVIF Profile S specification. Axis cameras specifically do not implement that call.

I have an open PR that gets the same functionality as 'GetServices' using the 'GetCapabilities' call, which is required by the Profile S specification: 28433a3b3ebd8ee707a16f42d03b37d08c90210f