Does anyone have experience with this type of integration? Especially with these types of cameras.
I am currently creating a software for monitoring surveillance devices. Hikvision cameras are installed. The idea is to be able to communicate with these cameras via ISAPI (hikvision API).
The problem is when I run a URL that gives me the alarm status from postman or in my project code, the URL gives status 200 but it doesn't deliver anything and postman keeps "thinking", when the request is made by Google Chrome browser, it downloads a file that never finishes downloading, if I open it, it gives me the data I need, but it would be of great help just making the request from my software and having the devices deliver the data to me.
I have been reading the documentation, I execute the steps that are, but, there has been no success obtaining the data.
endpoint: "GET /ISAPI/Event/notification/alertStream"
Is it possible that someone in this community has had the same experience and was able to solve it?
(It's my first time doing this kind of integrations)
I would greatly appreciate an answer.
There are 3 ways of handling events with Hikvision devices: 1.SDK via arming 2.Using alertStream 3.Alarm Server or sometimes they reffer to it as HTTP Listener mode
SDK is available and you can get demo and solution with documentation. Isapi documentation in detailed version is available only those who sign Licence agreement form at tpp.hikvision.com
Id suggest using HTTP Listener, most if not all cameras do have option to insert IP and port of an listening server.
On your side, do a TCP server listener,but the key is to send reponse 200 OK back to camera once you recieve the event otherwise the same event will loop until you do.
Events are mostly in json format, some can be xml. But also in most cases are multipart data, meaning they contain json values of an event and binary image for you in time of an event. Its up to you to use whatever you need from it.
Take a look at code i did for thermal camera event listener which reads incoming events and parse json data and image data, and it stores to separated folders. I believe better way is to allocate buffer size by actual Content-Length value in received packet, you can edit that yourself.