Video · P0 · VERY HIGH NDAA OK
Hardware-agnostic baseline for existing cameras (incl. COPS-funded Axis/Hanwha).
SOAP 1.2 / HTTP(S) · WS-UsernameToken (digest) · RTSP/RTP media
Hardware-agnostic baseline for existing cameras (incl. COPS-funded). DigitalInput is mapped to duress only for inputs listed in config.duress_inputs.
7events mapped
5health probes
6fixtures
P0catalog tier
Install to site
In catalog: PK-261005-004 · sandbox_pass
Licensing: None. Conformance varies by firmware — validate per model.
Capabilities
discoverhealthlive_urievents
Device types matched
camera_onvifencoder_onvif
Event map vendor key → msad17.event/1
| Vendor key | Platform type | Priority | Label |
|---|---|---|---|
| tns1:VideoSource/SignalLoss | video.loss | P2 | Video loss |
| tns1:VideoSource/GlobalSceneChange/ImagingService | video.tamper | P2 | Camera tamper / scene change |
| tns1:RuleEngine/CellMotionDetector/Motion | video.motion | INFO | Motion (after hours zone) |
| tns1:Device/Trigger/DigitalInput | io.duress | P1 | Duress / panic input |
| tns1:VideoSource/MotionAlarm | video.motion | INFO | Motion (after hours zone) |
| tns1:Device/HardwareFailure/StorageFailure | recorder.retention | P3 | Retention below target |
| tns1:RuleEngine/TamperDetector/Tamper | video.tamper | P2 | Camera tamper / scene change |
Health probes
emitted into config/health-probes.json on install · executed by VPS workers| ID | Check | Kind | Params |
|---|---|---|---|
| tcp_reach | TCP reachability | tcp | {"timeout_ms":2000} |
| tls_cert | TLS certificate validity | tls | {"timeout_ms":3000} |
| auth_probe | Authenticated health probe | http_probe | {"timeout_ms":5000} |
| clock_skew | Device clock skew < 5s | clock | {"max_skew_s":5} |
| stream_uri | Live stream URI resolves | rtsp_options | {"timeout_ms":4000} |
Endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /onvif/device_service | GetDeviceInformation · GetSystemDateAndTime (model, firmware, NTP drift) |
| POST | /onvif/media_service | GetProfiles · GetStreamUri (RTSP per profile) |
| POST | /onvif/event_service | CreatePullPointSubscription · PullMessages (long-poll) |