Ir al contenido principal

Para desarrolladores - Configurar servidor de alarmas en cámara IP Hikvision para recibir alertas mediante HTTP POST desde ISAPI

Xavier Guereque avatar
Escrito por Xavier Guereque
Actualizado esta semana

En este artículo mostraremos cómo configurar la opción de servidor de alarmas de una cámara IP Hikvision a través de ISAPI.

Para este ejemplo utilizaremos estos datos:

  • IP de la cámara: 192.168.50.37

  • Usuario de la cámara: admin

  • Contraseña de la cámara: Syscom2025

1. Consulta capacidades de la cámara

Primero debemos utilizar el siguiente endpoint para validar que la cámara sí soporte la función:

Solicitud:

curl --digest -u admin:Syscom2025 --location '192.168.50.37/ISAPI/Event/notification/httpHosts/capabilities'

Respuesta:

<?xml version="1.0" encoding="UTF-8"?>
<HttpHostNotificationCap version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<hostNumber>3</hostNumber>
<urlLen min="1" max="128"/>
<protocolType opt="HTTP,HTTPS,EHome"/>
<parameterFormatType opt="XML,JSON"/>
<addressingFormatType opt="ipaddress,hostname"/>
<ipAddress opt="ipv4,ipv6"/>
<portNo min="1" max="65535"/>
<userNameLen min="1" max="32"/>
<passwordLen min="1" max="16"/>
<httpAuthenticationMethod opt="none,base64"/>
<uploadImagesDataType opt="URL,binary"/>
<httpBroken opt="true,false" def="true"/>
</HttpHostNotificationCap>

En este ejemplo la cámara puede registrar hasta 3 host, utilizando http o https.


2. Ver host configurados

Si deseamos ver cuáles host tiene configurado, utilizamos el siguiente endpoint:

Solicitud:

curl --digest -u admin:Syscom2025 --location '192.168.50.37/ISAPI/Event/notification/httpHosts'

Respuesta:

<?xml version="1.0" encoding="UTF-8"?>
<HttpHostNotificationList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<HttpHostNotification version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<id>1</id>
<url>/</url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
<httpBroken>true</httpBroken>
</HttpHostNotification>
<HttpHostNotification version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<id>2</id>
<url>/</url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
<httpBroken>true</httpBroken>
</HttpHostNotification>
<HttpHostNotification version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<id>3</id>
<url>/</url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
<httpBroken>true</httpBroken>
</HttpHostNotification>
</HttpHostNotificationList>

3. Configurar mediante Hostname

Para configurarlo mediante hostname, debemos realizar lo siguiente:

Petición:

curl --digest -u admin:Syscom2025 --location --request PUT '192.168.50.37/ISAPI/Event/notification/httpHosts/1' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<HttpHostNotificationList xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<HttpHostNotification>
<id>1</id>
<url>/lectura</url>
<protocolType>HTTPS</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>hostname</addressingFormatType>
<hostName>ingenieria.syscom.mx</hostName>
<portNo>443</portNo>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
<SubscribeEvent>
<heartbeat>30</heartbeat>
<eventMode>all</eventMode>
</SubscribeEvent>
</HttpHostNotification>
</HttpHostNotificationList>'

Respuesta:

<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<requestURL></requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
<subStatusCode>ok</subStatusCode>
</ResponseStatus>

4. Configurar mediante Dirección IP

Para configurarlo mediante dirección ip, debemos realizar lo siguiente:

Petición:

curl --digest -u admin:Syscom2025. --location --request PUT '192.168.50.37/ISAPI/Event/notification/httpHosts/1' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<HttpHostNotificationList xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<HttpHostNotification>
<id>1</id>
<url>/lectura</url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>192.168.50.253</ipAddress>
<portNo>8090</portNo>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
<SubscribeEvent>
<heartbeat>30</heartbeat>
<eventMode>all</eventMode>
</SubscribeEvent>
</HttpHostNotification>
</HttpHostNotificationList>'

Respuesta:

<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<requestURL></requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
<subStatusCode>ok</subStatusCode>
</ResponseStatus>

5. Extra

Podemos descargar el proyecto Demo - Receptor de eventos mediante HTTP para validar el envío de los eventos y para inspeccionar el contenido.

¿Ha quedado contestada tu pregunta?