onvif / specs

ONVIF Network Interface Specifications
Other
335 stars 91 forks source link

Subscribe call was not getting called in a specific NVR #287

Closed Aravinthkathiravan closed 1 year ago

Aravinthkathiravan commented 1 year ago

When camera connected to NVR, "Subscribe" call was not getting called. What could be the reason? Is there any other way to get the NVR's IP address with port other than getting it from Subscribe call - Consumer reference (wsa5__EndpointReferenceType)?

Please comment on this asap. Thanks in advance.

kieran242 commented 1 year ago

@Aravinthkathiravan I am sorry to say I am not fully aware what you are asking?. Specifically regarding "Subscribe" call not getting called and not being able to get an NVR's Specific IP address and port.

This form is to report issues or change requests relating to the ONVIF Network Interface Specifications that are published on the [www.onvif.org] web site.

If you are looking to discover a NVR or ONVIF devices on a network. Might I suggest that you use Oasis WS-Discovery 1.0 / 1.1 that allows a user to query via Multi-cast a Broadcast to all devices as a probe using SOAP vis UDP on Broadcast Address " 239.255.255.250" on port "3702". You will need to research up on it but I will provide a small suggestion. Please see chapter 7 of the ONVIF Core Specification for details. The underlying technbology used is called WS-Discovery.

You can download the WSDL "ws-discovery.wsdl" from [http://schemas.xmlsoap.org/ws/2005/04/discovery/ws-discovery.wsdl] and using a SOAP generator map the WSDL to C++, .NET etc depending upon your language of choice. Once your class is generated you can use it to make a socket connection to the Multi-cast group and perform a Broadcast probe to the available devices connected on the network that respond to your request via Hello response. If you are listening for specific ONVIF devices the scopes response will contain "dn:NetworkVideoTransmitter" and "onvif://www.onvif.org" as part of it.

I hope I have helped with your query as is.

sujithhanwha commented 1 year ago

When camera connected to NVR, "Subscribe" call was not getting called. What could be the reason? Is there any other way to get the NVR's IP address with port other than getting it from Subscribe call - Consumer reference (wsa5__EndpointReferenceType)?

Please comment on this asap. Thanks in advance.

@Aravinthkathiravan , I assume you're discussing about the BaseNotification mechanism to send events. In BaseNotification ConsumerReference(wsa5__EndpointReferenceType) is the only way event source (Camera) can get the address of client to notify events. Considering the complications with network scenarios involving NAT etc., Event Pull Mechanism is the recommended approach, NVR can use Pull mechanism to get the events from camera.

HansBusch commented 1 year ago

Closes since no follow-up reaction