bartbutenaers / node-red-contrib-onvif-nodes

Node Red nodes for communicating with OnVif compliant IP devices
Apache License 2.0
65 stars 25 forks source link

Wrong ONVIF SOAP response on Raspbian Jessie #6

Open colinl opened 4 years ago

colinl commented 4 years ago

I am getting an error on deploying the config node Error: Wrong ONVIF SOAP response This happens on a Pi running nodejs10.19.0 on Raspbian Jessie. On another Pi running Buster and nodejs 12.x it works without error. It does not appear that the problem is with the node version as I do not see the problem on an Ubuntu system running nodejs 10.19.0

bartbutenaers commented 4 years ago

Hey Colin,

Unfortunately I have upgraded few weeks ago my Pi to Buster with NodeJs 12. I also had problems installing version 12, and after 2 evenings of headache I decided to switch to Docker containers. As soon as I have time, I will try to run a Docker container with NodeJs version 10.

Do you have other information available, like a stack trace or something else?

Bart

colinl commented 4 years ago

I realised that I had an Ubuntu 19.10 system I could downgrade to node 10 and it is not a problem there, so it must be some other problem specifically with Jessie. I recently upgraded the Ubuntu machine from Ubuntu 19.04 and I am pretty sure that I saw the problem there also, so that suggests that it is something else in the system that has been upgraded. Perhaps it is not worth bothering about unless it becomes a problem for someone else. I have upgraded the initial comment accordingly.

bartbutenaers commented 4 years ago

Ok thanks for the update. I'm going to keep this one aside until somebody else has the same issue, because it would take quite some time to setup a system to reproduce it ...

colinl commented 4 years ago

I am thoroughly confused now, I can't get it running on Buster at all. Added to which I am not certain that I ever did, I may have been confused about which server I was connected to. Are you able to run it on a Pi? I am able to run it ok under Ubuntu but not Raspbian Buster or Jessie.

I didn't answer the question about stack trace etc, it doesn't crash, I just get the error from the onvif config node and says not connected.

colinl commented 4 years ago

I see that the version of onvif being installed (0.6.0) is pretty old, would it be worth trying the latest (0.6.2)? I tried to modify the package.json in node-red-contrib-onvif-nodes but couldn't work out how to get it to update.

bartbutenaers commented 4 years ago

Colin, will try to run it this week on Buster. I have developed those nodes at the time being on Jessie, so don't know why it doesn't work. Will keep you updated

colinl commented 4 years ago

I have tried modifying package.json to pull in onvif@0.6.2 but that did not help. Having hacked into the onvif node lib/utils.js and added some debug I can see that parseSOAPStringCallback is getting a couple of good responses but then succeeding responses appear to be empty, which causes the error. Very odd.

colinl commented 4 years ago

I have tried modifying package.json to pull in onvif@0.6.2 but that did not help. Having hacked into the onvif node lib/utils.js and added some debug I can see that parseSOAPStringCallback is getting a couple of good responses but then succeeding responses appear to be empty, which causes the error. Very odd.

colinl commented 4 years ago

Sorry, this is all my own fault, I had forgotten that this camera requires authorisation details to connect. When I put those in all is well. There is arguably a small deficiency in that if a camera needs authorisation and none is provided then this not very helpful error is generated. As soon as I interrogated the comms with wireshark I could see the 'unauthorised' response from the camera. If user/pwd are provided but they are wrong then an authorisation failed message is provided by the node, it is only if they are left blank that the rather unhelpful soap error is shown.

bartbutenaers commented 4 years ago

Hi Colin, Thanks for the analysis. I'm going to reopen this issue, as a reminder for later...