-
Notifications
You must be signed in to change notification settings - Fork 52
Description
I ran into a camera that did not show up when I ran the command line tool wsdiscover.
On further investigation I found that when the camera responds to the probe it uses the same uuid for messageID as that used in the probe! I don't think this is right but then again there is no absolute guarantee that uuid's will not clash. [I did mod the code to change the uuid and saw the response also had the change].
In the current code, in threaded.py, on line 181, commenting out the continue allows the camera to be discovered. A side effect is that the probe echo gets processed as a response and results in
WARNING:daemon:could not find handler for: _handle_probe
for that particular message.
The seen Ids are kept in _knownMessageIds which is "preloaded" with the Id of the probe message. At first I thought the fix could be just to prefix the address and port to the Id similar to what you do for the instanceId. But the preloaded value to the _knownMessageIds set has address of the destination (239.255.255.250) and the response has the address of the local interface, Thus they do not match and you still get the warning.
I don't have experience with many different cameras and this is the only one I saw this problem on. However, it can be successfully discovered by other tools.
The solution i envision is.
- Don't bother with preloading _knownMessageIds.
- Prefix address and port to messageId before adding to _knowMessageId (in case there are two of these cameras out there)
- "continue" on any message that is not a probe type