Skip to content

Camera not discovered because it uses the prober's message id for its response message id #38

@tom24

Description

@tom24

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

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