-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
<SOAP-ENV:Fault> with a chinese camera (TP-LINK) #56
Comments
TP-Link might be cheap but it is also very popular in the neck of the woods I live in. Maybe this helps? https://www.reddit.com/r/ispyconnect/comments/uxdphn/tplink_onvif/ |
I pimped up the Here are my findings. First,
A legit answer from an UNV camera (yet another chinabrand) looks like this:
But TP-LINK says this:
Does the SOAP ping-pong:ing fail maybe because the TP-LINK camera wants more xlmns ? That "ter" might refer to that line xmlns:ter="http://www.onvif.org/ver10/error" .. that is not found in wsdiscover's original PROBE message..? Taking a look in onvif core specs, there is this (in section 5.8.2.2):
Not sure why the camera would reply like this, since the PROBE message seems completely legit - or wait, if I look at the up-to-date WSDiscovery specs in here, it says:
So in the
instead of the oldie..?
Do these things need to be up-to-date? EDIT: know I noticed that in the message sent by TP-LINK camera it also refers to the 2005 specs, so it should be OK |
The I'd imagine that cams should look at the Wikipedia has nice links to the two different spec version: https://en.wikipedia.org/wiki/WS-Discovery But as I mentioned in the previous comment, both python-ws-discovery and the TP-LINK camera seem to be using the 2005 specs. So I think the conclusions is that TP-LINK cameras send shit by default? For the sake of completeness, here is the PROBE as of 2005 specs:
|
UNV seems to be XiongMai -- all my cameras from XM reply with this identifier. TP-Link has a sub-brand Mercury, and an overseas series called VIGI. I found out that they all have different mobile apps after I imported them from China. Talk about excess. The important thing is, all of those TP-Link based cameras exhibit the same behavior. They want to be probed like this, which is what Home Assistant is doing:
The scope is Or like this, which is what
It probes for However, even with those probes, all TP-Link cameras I've tested still respond with an incorrect |
With PR #76 and #75 , I can now probe for TP-Link cameras. For comparison, this is before applying both PR's:
Full output
This is with both PR's and with both new options applied -- I can discover all 16 cameras in my network:
Full output
In my case, specifying both the scope and type to probe, along with enabling the
However, if I only specify the scope and not the type, some (UNV) cameras are not discovered:
Note:
Edit: add more examples for comparison |
First of all, thanks for this awesome python library and the great work.
Now my question.
Don't we all just love cheap chinese camera brands?
Mine is a brand new tp-link IP cam. It is not discovered with
python-ws-discovery
, but digging a bit deeper, I can see that it's response is None'd inmessage.py
around line 35:The essence of the SOAP message the camera returns is this:
So there is not much information why this camera dislikes
python-ws-discovery
, or maybe thatter:InvalidArgVal
is providing a clue?Does anyone have any experience / clue of why this would happen or how I could "massage" the message sent to the camera in such a way that it starts not to diss
python-ws-discovery
? I am happy to do the debugging, if you just give me a clue how to proceed. :)The text was updated successfully, but these errors were encountered: