Table of contents
Overview
3rd party camera extension software developed for the i-PRO camera can be used in the i-PRO Active Guard system with Video Insight, Genetec and Milestone.
More detail about i-PRO Active Guard is here.
This document is targeted at i-PRO camera extension software developer, how to implement the extension software that works with i-PRO Active Guard system, especially scopes the specific data format using i-PRO camera’s API.
Basic introduction about development is here.
System structure and features
Following features will be available on VMS.
・Show the event on VMS (date/time, camera, event name and some details)
・Configure rule based action
・Search alarm history
How to implement extension software for i-PRO Active Guard system
Applicable type of extension software
Only a type of extension software for event notification with some additional information can be applied. More advanced features (like object classification or counting) or functions (ex. bounding box) are not supported.
Sample application
Sample application for easy implementation is included in SDK package.
src/adamapp/active_guard_sample_app
src/adamapp-py/active_guard_sample_app
Camera API to use
i-PRO camera’s API “AdamApp API” includes the interface for 3rd party to notify event to external software via ONVIF(*1) meta data stream protocol.
The API “ADAM_MetaDataStream_SetRaw( ST_ADAM_METADATA_STREAM_RAW* pData )” is used for this integration. When the extension software detects the event and use this API, the data will be sent to iPRO Active Guard server and i-PRO Active Guard server also notify to VMS server
Please refer to API manual for more details.
(*1) : ONVIF is a trademark of ONVIF, Inc
E_ADAM_METADATA_TYPE
“ADAM_METADATA_TYPE_EVENT” is used for i-PRO Active Guard integration.
m_pData
“m_pData” should represent the event in ONVIF defined XML data format. Integration with i-PRO Active Guard is achieved by implementing according to the format described in this document.
Example of notification
<?xml version="1.0" encoding="UTF-8"?>
<tt:MetaDataStream xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:xsd="http://docs.onvif.org/ver10/schema">
<tt:Event>
<wsnt:NotificationMessage>
<wsnt:Topic Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" xmlns:tns1="http://www.onvif.org/ver10/topics">tns1:AppEvent/SampleApplication/SampleDetection</wsnt:Topic>
<wsnt:Message>
<tt:Message UtcTime="2023-01-17T17:00:00.000Z">
<tt:Source>
<tt:SimpleItem Name="VideoSource" Value="VideoSourceConfig" />
</tt:Source>
<tt:Data>
<tt:SimpleItem Name="Event detail" Value="Detected size 84x120" />
<tt:SimpleItem Name="Likelihood” Value=“0.8" />
<tt:ElementItem Name="Image">
<xsd:base64Binary>(base64 encoded jpeg image)</xsd:base64Binary>
</tt:ElementItem>
</tt:Data>
</tt:Message>
</wsnt:Message>
</wsnt:NotificationMessage>
</tt:Event>
</tt:MetaDataStream>
Parameter Name | value | Description | Requirement Level |
---|---|---|---|
Topic | tns1:AppEvent/{AppName}/{ EventName} | AppName: Application name. Event name: Event name. This name is shown on VMS. *App name is up to 256 characters using alpha-numeral, hyphen, under score and period as camera's SDK specification. App name is necessary to match "EXTAPP1"or"EXTAPP2"or ... in the response of "/cgibin/getinfo?FILE=1" from camera. | Mandatory |
tt:Message> UtcTime | yyyy-mm-ddThh:mm:ss.fffZ | Timestamp of the event in UTC format. *i-PRO Active Guard server will overwrite the time when receiving the event. | Mandatory |
tt:Message>tt:Data> tt:SimpleItem> Event Detail | string (up to 32 characters) | Additional information about the event. This value is shown on VMS | Optional |
tt:Message>tt:Data> tt:SimpleItem> Likelihood | 0.0-1.0 | Likelihood value related to the event. This value is shown on VMS. | Optional |
tt:Message>tt:Data> tt:ElementItem> Image | Base64 encoded jpeg image | (e.g. Cropped image of the detected object) This image is shown on VI and Milestone but not shown on Genetec. | Optional |
*If the application does not use “Event detail”, “Likelihood” and “Image”,<tt:Data> are no need.
How to check implementation
After implementation, you can check if the camera sends data correctly not using tool “ResourceMonitorExtension” included in the camera SDK package. Enter “rtsp://<ip>/Src/MediaInput/stream_1?event=1” for “RTSP-URI”.
VMS and i-PRO Active Guard software are not required for this confirmation.
Please refer to the i-PRO Active Guard Setup manual for each VMS how to configure the system. Appendix describes how to set up the extension software on i-PRO Active Guard server and VMS.