Giter Site home page Giter Site logo

opencctv's Introduction

OPENCCTV

Status GitHub Issues GitHub Pull Requests License


GO consuming HIKIVISION ISAPI.

๐Ÿ“ Table of Contents

๐Ÿง About

Extend functionality over cctv hikivision devices.

๐Ÿ Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  • Golang v13
Give examples

Installing

brew install golang

Give the example

And repeat

until finished

End with an example of getting some data out of the system or using it for a little demo.

๐Ÿ”ง Running the tests

go test -v ./.../...

๐ŸŽˆ Usage

Add notes about how to use the system.

๐Ÿš€ Deployment

Add additional notes about how to deploy this on a live system.

โ›๏ธ Built Using

  • [Golang]

โœ๏ธ Authors

See also the list of contributors who participated in this project.

๐ŸŽ‰ Acknowledgements

  • Hat tip to anyone whose code was used
  • Inspiration
  • References

ISAPI

The OPEN Intelligent Security Application Programming Interface (ISAPI) is a text protocol in RESTful style based on HTTP for communicating between security devices/servers (e.g., cameras, DVR, NVR, etc.) and client software/system. It defines the communication standard between device/server and client software/system via the Internet Protocol (IP)

HTTP Methods

  • POST: Create resources. This method is only available for adding resource that does not exist before.
  • GET: Retrieve resources. This method cannot change the system status, only return data as the response to the requester.
  • PUT: Update resources. This method is usually for update the resource that already exists, but it can also be used to create the resource if the specific resource does not exist.
  • DELETE: Delete resources.

URL FORMAT

  • ://[:port][abs_path [?query]]

Message Format

  • For ISAPI protocol, the request and response messages generated among the interaction between devices and platform are data in XML format or JSON format.
  • For configuration Content-Type in the JSON format message is "application/json; charset='UTF-8'"
  • For data Content-Type in the JSON format message is "application/octet-stream"

Time Format

  • The time format in the ISAPI protocol adopts ISO8601 standard (see details in http:// www.w3.org/TR/NOTE-datetime-970915 ), that is, YYY-MM-DDThh:mm:ss.sTZD (e.g., 2017-08-16T20:17:06+08:00).

Error Processing

  • During the integration applications of ISAPI protocol, when the error of URL based on HTTP occurred, the ResponseStatus message (in XML or JSON format) which contains error code will be returned.

Authentication

  • The authentication must based on HTTP Authentication: Basic and Digest Access Authentication, see https://tools.ietf.org/html/rfc2617 for details.
  • The request session must contain authentication information, otherwise, device will return 401 error code.

Digest

  • The message digest, which contains user name, password, specific nonce value, HTTP or RTSP operation methods, and request URL, is generated by the MD5 algorithm, see the calculation rules below. qop=Undefined Digest=MD5(MD5(A1)::MD5(A2)) qop="auth:" Digest=MD5(MD5(A1):::::MD5(A2)) qop="auth-int:" Digest=MD5(MD5(A1):::::MD5(A2))

opencctv's People

Contributors

millukii avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.