Generic ONVIF Integration
This guide explains how Anava ONVIF events work and how to integrate them with any ONVIF-compliant video management system.
How Anava Emits ONVIF Events
When Anava detects something, it instructs the camera to emit standard ONVIF events.

ONVIF Event Structure
Event Topic
Anava events are published under the camera's ACAP event namespace:
tnsaxis:CameraApplicationPlatform/AnavaAgent/[ObjectName]
Examples:
tnsaxis:CameraApplicationPlatform/AnavaAgent/Persontnsaxis:CameraApplicationPlatform/AnavaAgent/Weapontnsaxis:CameraApplicationPlatform/AnavaAgent/Vehicle
Event Data
Each event includes:
| Field | Type | Description |
|---|---|---|
| State | Boolean | true (detected) / false (cleared) |
| Timestamp | DateTime | When detection occurred |
| Source | String | Camera serial number |
Stateful vs Pulse Events
| Type | Behavior | VMS Use |
|---|---|---|
| Stateful | True→False lifecycle | "Is True" conditions |
| Pulse | Single trigger | Count/log events |
Configure Anava objects as Stateful for best VMS compatibility. This enables rules like "Record while Person is True".
VMS Configuration Steps
Step 1: Add Camera
Ensure your VMS has the Axis camera added:
- Use ONVIF discovery or manual IP entry
- Verify ONVIF capabilities are detected
- Confirm event subscription is working
Step 2: Discover Events
Trigger an Anava detection to make events discoverable:
- Walk in front of camera (motion trigger)
- Wait for analysis to complete
- In VMS, refresh event list or rediscover camera
Step 3: Create Rules
Map Anava events to VMS actions:
| Event | Suggested Actions |
|---|---|
| Person (State=True) | Start recording, log event |
| Person (State=False) | Stop recording (if stateful) |
| Weapon (State=True) | High-priority alarm, notify |
| Vehicle (State=True) | Log, low-priority alert |
Step 4: Test
- Generate detection
- Verify event received by VMS
- Confirm actions execute
- Check recording/logs
Common VMS Configuration
Bosch VMS
- Add camera via ONVIF
- Event mapping: Configure → Devices → Events
- Rules: Configure → Events → Action triggers
Hanwha Wave
- Add camera via ONVIF discovery
- Events: Settings → Events → Device events
- Rules: Settings → Event rules
Avigilon Control Center
- Add camera via ONVIF
- Alarms: Administration → Device → Alarms
- Rules: Site → Alarm Management
Exacq exacqVision
- Add camera via ONVIF
- Events: Config → Events → Camera Events
- Actions: Config → Events → Event Linking
Qognify (NICE) VMS
- Add camera via ONVIF
- Events: Administration → Event Sources
- Rules: Administration → Event Rules
Manual ONVIF Subscription
For systems requiring manual configuration, use these ONVIF parameters:
Event Service Endpoint
http://[camera-ip]/onvif/event/subscription
Subscribe Request
<Subscribe xmlns="http://docs.oasis-open.org/wsn/b-2">
<ConsumerReference>
<Address>[callback-url]</Address>
</ConsumerReference>
<Filter>
<TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">
tnsaxis:CameraApplicationPlatform/AnavaAgent//
</TopicExpression>
</Filter>
</Subscribe>
Notification Message Structure
<NotificationMessage>
<Topic>tnsaxis:CameraApplicationPlatform/AnavaAgent/Person</Topic>
<Message>
<Source>
<SimpleItem Name="device" Value="B8A44F45D624"/>
</Source>
<Data>
<SimpleItem Name="isDetected" Value="true"/>
</Data>
</Message>
</NotificationMessage>
Virtual Input Triggering
For VMS-to-Anava triggering, use virtual inputs:
Activate Virtual Input (Trigger Analysis)
http://[camera-ip]/axis-cgi/io/virtualinput.cgi?action=6%3A%2F
Deactivate Virtual Input (Reset)
http://[camera-ip]/axis-cgi/io/virtualinput.cgi?action=6%3A%5C
This allows VMS operators to trigger on-demand Anava analysis.
Troubleshooting
Events Not Received
-
Check ONVIF subscription
- Verify VMS is subscribed to camera events
- Check network connectivity
-
Check Anava is emitting events
- View Sessions in Anava dashboard
- Confirm objects are detected
-
Check event topic filter
- Ensure filter includes Anava namespace
- Try broader filter initially
Events Received But Not Matching
-
Check event name
- Object names are case-sensitive
- Match exactly as configured in Anava skill
-
Check state handling
- Some VMS need explicit True/False handling
- Verify stateful is enabled for objects
Performance Issues
-
Reduce event volume
- Use Object Analytics triggers (pre-filter at camera)
- Add schedules to profiles
-
Optimize VMS rules
- Limit complex rule conditions
- Use appropriate recording quality
Best Practices
Event Naming
Use consistent, descriptive object names in skills:
| Good | Avoid |
|---|---|
| Person | person (case issues) |
| Weapon | Weapon Detected (complex) |
| Vehicle | car (too specific) |
Testing
- Test each object type individually
- Verify both True and False states
- Test under production-like conditions
- Document working configuration
Documentation
Maintain records of:
- Anava object names
- VMS rule mappings
- Expected behaviors
- Troubleshooting steps