snow-tree / camera-probe

A realtime camera network device discovery tool.
MIT License
57 stars 13 forks source link

Not seeing ONVIF device if on different subnet #17

Open jimudall opened 5 years ago

jimudall commented 5 years ago

I honestly don't know if this is an issue, or something more nuanced. The context is this:

  1. My interface is on CIDR block 10.10.0.255/24
  2. I have an ONVIF camera that has been assigned a static IP of 192.168.56.147

I start the probe - which sends out a UDP packet on the multicast channel. The camera responds by sending a packet back to my machine's IP address. However, of course it's source address is not on my subnet. I see all this using wireshark on my machine. But I don't receive that device in my callback handler on discovery.

I can run the ONVIF device manager tool and he performs a similar sequence (i.e. broadcast, camera responds) and subsequently it shows up in that tool

Because the node-onvif package doesn't predictably support discovery when I have more than one NIC installed, I can't double check what should happen with that package.

This is a funny scenario, but a realistic one since I'm working in the context of a deployment tool that can discover, identify and ultimately repair issues on site with multiple cameras. In other words I know that answer is 'put the camera on the same subnet'. However, I need to be able to diagnose the situation in order to rectify it.

Do you have any insight you might offer me?

Thanks in advance

patrickmichalina commented 5 years ago

Hi @jimudall,

You mentioned "ONVIF device manager", are you talking about onvifdm? I will check out their source code to see how they handle this. I am not really too familiar with router and networking scenarios. Thanks for sharing though, I suspected my testing setup would not replicate all the common use-cases.

To be clear. You said in WireShark you do see the response from your camera @ 192.168.56.147? It just doesn't end up in the discovery callback?

Are you talking about WS-Discovery response or the IP Scan response? Guessing the WS-Discovery since your subnet interface is on 10.10.0.255/24

patrickmichalina commented 5 years ago

@jimudall I have made some improvements to the ip address scanning feature. Give it a shot and let me know if it helps at all. Now iterates over all network interfaces and pings the entire network. See #19