mirror of
https://github.com/kerberos-io/onvif.git
synced 2026-08-23 15:08:33 +00:00
fix(event/stream): classify AXIS VMD 4 topics as motion
The topic table covered the AXIS Guard suite (MotionGuard, FenceGuard, LoiteringGuard) but not VMD — the stock motion app shipped on every AXIS camera, and the one an installer configures before reaching for a paid Guard product. VMD publishes on tnsaxis:CameraApplicationPlatform/VMD/Camera<N>Profile <ID>, which fell through every rule to KindUnknown. Consumers that key recording off KindMotion therefore never recorded, and because an unrecognised Kind is normally discarded at debug level the failure presents as silence rather than an error. Found on a site where an AXIS camera with VMD and a motion recording trigger produced no recordings across a 9h41m window while its ONVIF subscription stayed healthy throughout.
This commit is contained in:
@@ -79,10 +79,12 @@ var topicRules = []struct {
|
||||
// https://developer.axis.com/vapix/network-video/event-and-action-services/
|
||||
{"MotionRegionDetector/Motion", KindMotion},
|
||||
|
||||
// AXIS Guard suite — vendor analytics apps with Camera<N>Profile<ID>
|
||||
// suffixes. Treated as motion so they can drive motion-triggered
|
||||
// recording on cameras using these apps instead of basic VMD.
|
||||
// AXIS ACAP motion apps with Camera<N>Profile<ID> suffixes. VMD is
|
||||
// the stock app shipped on the camera; the Guard suite are the
|
||||
// paid analytics products. Prefix-match because of the suffix.
|
||||
// https://developer.axis.com/vapix/applications/vmd4
|
||||
// https://developer.axis.com/vapix/applications/motion-guard
|
||||
{"CameraApplicationPlatform/VMD/", KindMotion},
|
||||
{"CameraApplicationPlatform/MotionGuard/", KindMotion},
|
||||
{"CameraApplicationPlatform/FenceGuard/", KindMotion},
|
||||
{"CameraApplicationPlatform/LoiteringGuard/", KindMotion},
|
||||
|
||||
@@ -25,6 +25,12 @@ func TestClassifyTopic(t *testing.T) {
|
||||
{"axis_fence_guard", "tnsaxis:CameraApplicationPlatform/FenceGuard/Camera1ProfileANY", KindMotion},
|
||||
{"axis_loitering_guard", "tnsaxis:CameraApplicationPlatform/LoiteringGuard/Camera1ProfileANY", KindMotion},
|
||||
|
||||
// AXIS VMD 4 — the stock motion app, and the one an installer
|
||||
// reaches for before any Guard product. The profile suffix
|
||||
// varies with the configured VMD profile.
|
||||
{"axis_vmd4_profile_any", "tnsaxis:CameraApplicationPlatform/VMD/Camera1ProfileANY", KindMotion},
|
||||
{"axis_vmd4_profile_numbered", "tnsaxis:CameraApplicationPlatform/VMD/Camera1Profile1", KindMotion},
|
||||
|
||||
// --- Tampering --------------------------------------------------
|
||||
|
||||
{"tamper_detector", "tns1:RuleEngine/TamperDetector/Tamper", KindTampering},
|
||||
|
||||
Reference in New Issue
Block a user