0% found this document useful (0 votes)
13 views24 pages

SecurOS UinP Programming Guide 11.7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views24 pages

SecurOS UinP Programming Guide 11.7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Version 11

Integration Guide
SecurOS UinP Integration Guide (UINPINTEG - EN, build 120 on 9/28/2023).

© Copyright Intelligent Security Systems, 2023.

SecurOS® ("SecurOS") and all respective logos are trademarks of ISS Corp, in the U.S. and/or other countries.

Intelligent Security Systems reserves the right to make changes to both this Manual and to the products it describes. System
specifications are subject to change without notice. Nothing contained within this Manual is intended as any offer, warranty, promise
or contractual condition, and must not be taken as such.

No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system or translated into any human or
computer language in any form by any means without the express written permission of the copyright holder. Unauthorized copying
of this publication may not only infringe copyright but also reduce the ability of Intelligent Security Systems to provide accurate and
up-to-date information to both users and operators.
SecurOS UinP 3 Integration Guide
Contents

Contents
1 Preface 4
1.1 Scope
........................................................................... 4
1.2 Target
. . . Audience
........................................................................ 4
1.3 Using
. . .This
. . . .Manual
.................................................................... 4
1.4 Getting
. . . .Technical
. . . . . . . . .Support
.............................................................. 4
1.5 SecurOS
. . . . . Editions
. . . . . . . .Naming
. . . . . . .Convention
....................................................... 5
1.6 Design
. . . .Convention
....................................................................... 6
1.7 Design
. . . .Elements
....................................................................... 6

2 General Description 7

3 Integration Process Overview 8

4 Registering an external system to SecurOS 9


4.1 Describing
. . . . . . .structure
. . . . . . . . of
. . .3rd
. . .party
. . . . .objects
................................................. 9
4.2 Registering
. . . . . . . . .3rd
. . .party
. . . . .objects
. . . . . . .in
. .SecurOS
. . . . . . . .database
......................................... 11
4.3 Declaring
. . . . . . .user-friendly
. . . . . . . . . . . names
......................................................... 12

5 Implementation of the external system SecurOS connection


module 15
5.1 Programming
. . . . . . . . . . languages
................................................................. 15
5.2 Programming
. . . . . . . . . . technique
................................................................. 15
5.2.1 SecurOS
. . .connection
. . . . . . . . . .process
. . . . . . .overview
................................................................. 15
5.2.2 Connecting
. . . . . to
. . SecurOS
.............................................................................. 15
5.2.3 Receiving
. . . .messages
. . . . . . . . .and
. . . commands
..................................................................... 16
5.2.4 Sending
. . messages
. . . . . . . . . and
. . . .commands
...................................................................... 17
5.2.5 Controlling
. . . . .connection
. . . . . . . . . .state
...................................................................... 18
5.2.6 Disconnecting
..................................................................................... 18
5.3 UInP
. . .User
. . . . Interface
.................................................................... 19

6 Embedding of the external system srtucture into SecurOS 20


6.1 Objects
. . . . . Tree
...................................................................... 20
6.2 Reporting
. . . . . . . objects
. . . . . . .tree
............................................................. 20
6.3 Messages
. . . . . . . from
. . . . .SecurOS
............................................................... 21

7 Technical Support Information 23

www.issivs.com
SecurOS UinP 4 Integration Guide
Preface

1 Preface
This section contains general information about this document, the means of its design and use, as well
as how to get additional technical support for the product.

1.1 Scope
This guide describes SecurOS Universal Integration Point resources that are used to integrate external
systems with SecurOS.

1.2 Target Audience


This guide is intended for developers who integrating external systems with SecurOS.

1.3 Using This Manual


This document is organized in such a way that the user can use both its printed and electronic versions.
In the latter case one can use Adobe Reader's Bookmarks feature as well as cross-reference hyperlinks to
navigate through content. In several topics this manual refers to other SecurOS manuals, which can be
downloaded from our website (www.issivs.com).

To get online help (Microsoft HTML Help) just press the F1 key when running SecurOS. In
administration mode You can get context help for a given object/utility by pressing the F1 key when its
settings window/utility window is open. In operator mode, use the F1 key to open a description of the
active window of the current operator interface or utility.

1.4 Getting Technical Support

If you have any questions after reading this manual, please address them to your system administrator
or supervisor.

For any further information you can contact the Intelligent Security Systems Technical Support Team:

Note. For all technical support requests, please open a ticket from the ISS Partner Portal:
https://support.issivs.com. You will need to create an account if you don’t already have one.

www.issivs.com
SecurOS UinP 5 Integration Guide
Preface

· in USA:
Phone: +1 732 855 1111
· in Canada:
Phone: +1 778 929 8565
· in Mexico:
Phone: +52 55 9001 5252
· in Colombia:
Phone: +57 320 303 2849
· in Brazil:
Phone: +55 85 9668 2530
· in Central America and Caribbean:
Phone: +502 5517 8395
· in Argentina/ Paraguay/ Uruguay:
Phone: +54 911 5039 6440
· in Peru/ Bolivia/ Chile:
Phone: +56 9 3261 9893
· in Ecuador:
Phone: +57 312 255 2932
· in Venezuela:
Phone: +57 321 722 0425
· in Europe:
Phone: +380 44 299 0810
· in Dubai:
Phone: +971 4 874 7100
· in Qatar:
Phone: +974 6 677 8309
· in Saudi Arabia:
Phone: +966 54 109 9699

To solve problems faster, we recommend preparing the service information described in the Technical
Support Information Section before addressing the Technical Support Team.

1.5 SecurOS Editions Naming Convention


This document represents a common manual for several editions of the "SecurOS integrated video
management platform" that differ in functional capabilities:

· SecurOS® Monitoring & Control Center;


· SecurOS® Datacenter;
· SecurOS® Enterprise;
· SecurOS® Premium;
· SecurOS® Prof essional.

www.issivs.com
SecurOS UinP 6 Integration Guide
Preface

For product designation regardless of its edition the SecurOS general term is used in the framework of
the given document.

Sections that describe the functionality available for some editions are marked by a special footnote as
in the example below:

The functionality is available in the following editions: SecurOS Monitoring & Control Center,
SecurOS Datacenter, SecurOS Enterprise, SecurOS Premium, SecurOS Prof essional.

1.6 Design Convention


For representation of various terms and titles the following fonts and formatting tools are used in this
document.

Font Description

Used in writing workstation names, utilities or screens, windows


bold type and dialog boxes as well as the names of their elements (GUI
elements).

italic type Used to mark out the SecurOS objects.

bold italic type Used to mark out the elements of homogeneous lists.

Used to mark out macro text and programming code, file names and
monospace their paths. Also it is used to specify the necessary options, to mark
out values specified by the user from the keyboard (manually).

Used to mark out the cross-references within the document and


green
links to the external available ones.

1.7 Design Elements


Warning! Serves to alert the user to information which is necessary for the correct perception of the text set
out below. Typically, this information has a warning character.

Note. Note text in topic body.

Additional Information
Used to display additional information. These type of elements contain, for example, the description of options for
executing a task or reference to additional literature.

www.issivs.com
SecurOS UinP 7 Integration Guide
General Description

2 General Description
This functionality is available in the following editions: SecurOS Monitoring & Control Center,
SecurOS Datacenter, SecurOS Enterprise, SecurOS Premium.

SecurOS Universal Integration Point (UinP) — is an integration interface that applies to use custom
objects into SecurOS. Integration of SecurOS events and commands into customer's software is also
possible. Integration of an external system means creation of an event converter which is responsible
for communication between SecurOS and the external system. The UinP provides the following
capabilities:
· Embedding of 3rd party system objects into SecurOS.
· Receiving certain events of SecurOS objects.
· Sending 3rd party events into SecurOS.
· Sending control commands to SecurOS objects.

Figure 1. Integration scheme

www.issivs.com
SecurOS UinP 8 Integration Guide
Integration Process Overview

3 Integration Process Overview


Steps to integration of a new system into SecurOS:
Step 1. Registering an external system to SecurOS.
Step 2. Implementation of the external system SecurOS connection module (i.e. the Event
Converter) sending and receiving messages and commands to provide solid integration platform.
Step 3. Embeding of the external system srtucture into SecurOS.

www.issivs.com
SecurOS UinP 9 Integration Guide
Registering an external system to SecurOS

4 Registering an external system to


SecurOS
To introduce objects of external system into SecurOS it should be describe. Description of these objects
consists of the following parts:
· Describing structure of 3rd party objects.
· Registering 3rd party objects in SecurOS database.
· Declaring user-friendly names.

All of these descriptions must be provided with the integration.

4.1 Describing structure of 3rd party objects


You need to describe the structure of your tree forehand to fit in the SecurOS architecture design.
Structure description is a file which specifies your object tree which will be represented as a part of the
SecurOS Object Tree. Description file contains text-based information formatted in JSON. Tree
description consists of the following fields:
· Main description container.
· Object type description.
· Structure description example.
· Structure description file name.
· Structure description file location.

Main description container


· version — integer — Format version. The only valid value is 1. If the version is unknown, the entire
description will be ignored.
· structure — array of objects — Root object type description.

Object type description


· parent — string — Parent object type. Can be specified for a top-level object type only. Valid values
include:
- INTEGRATION — For a top level integration object.
- DISPLAY — For an interface object type.
· type — string — SecurOS object type required to identify objects. Each type MUST be unique in the
system. So you can not set the same type of child objects to different parents.
· children — array of objects — Child object type descriptions. Can't be specified for an interface object
type.
· key — integer, optional — ISS license key position for the object type. It may be specified for any type
in the structure. If specified, the total number of objects in the system will be limited by the license.

www.issivs.com
SecurOS UinP 10 Integration Guide
Registering an external system to SecurOS

It is the responsibility of the integration to verify the consistency of the description (that no one has
modified it to e.g. disable the license restriction).
· port — SecurOS transport ID for the object type. Can be specified for an interface object type only.
MUST be unique among all transport IDs used by all types in the system, including internal
transport IDs, as well as transport IDs for another integrations.
· process_name — Name without extension of the executable to run. Can be specified for a top-level
object type only. Executable file and all it's dependencies MUST be placed in the SecurOS folder.
The core will run this executable after the object creation. Executable MUST be able to handle these
events that are used to stop process:

#ifdef _WIN32
# define WM_EXIT (WM_USER + 2000)
#else
# define SIGEXIT (SIGRTMAX - 7)
#endif

· receive — object, optional — Event subscription. All listed events of types specified in the
subscription will be redirected to the integration in the following form:

subscribed-type|subscribed-id|EVENT|event_type<object-type>,
event_id<object-id>,event_action<object-event>,original-parameters...

Structure description example


This is an example of tree structure description:

Listing 1. Example of structure description

{
"version": 1,
"structure":
[{
"parent": "INTEGRATION",
"type": "TEST",
"children":
[{
"type": "TEST_CHILD",
"children":
[{
"type": "TEST_GRANDSON"
},{
"type": "TEST_GRANDDAUGHTER"
}]
}]
}]
}

The same integration description with an interface object and event subscription:

Listing 2. Example of structure description with interface objects and event subscriptions

{
"version": 1,

www.issivs.com
SecurOS UinP 11 Integration Guide
Registering an external system to SecurOS

"structure":
[{
"parent": "INTEGRATION",
"type": "TEST",
"children":
[{
"type": "TEST_CHILD",
"children":
[{
"type": "TEST_GRANDSON"
},{
"type": "TEST_GRANDDAUGHTER"
}]
}],
"receive":
{
"TYPE_1": ["EVENT_1"],
"TYPE_2": ["EVENT_2", "EVENT_3"]
}
},{
"parent": "DISPLAY",
"type": "TEST_GUI",
"port": 3010
}]
}

Structure description file name


File name should start with any allowed set of symbols (ex: test) and should have a trailer
.integration.json.

Example of valid file name: test.integration.json.

Structure description file location


File can be placed anywhere inside SecurOS installation folder.

Example: ...\SecurOS\Integrations\test.integration.json.

4.2 Registering 3rd party objects in SecurOS database


To store your object tree in SecurOS database you must create a DB registration file (called after its
extension a DBI-f ile). This file has a very simple INI-f ile like structure. For every object declaration from
your tree structure description you must provide the following entry in DBI-f ile:

Listing 3. DBI-file example

[OBJ_YOUR_OBJECT_TYPE_NAME]
id, CHAR, 16
name, CHAR, 60
parent_id, CHAR, 16
flags, INTEGER

· DB registration file example.


· DB registration file name.

www.issivs.com
SecurOS UinP 12 Integration Guide
Registering an external system to SecurOS

· DB registration file location.


· DB registration activation.

DB registration file example


The complete DBI-f ile example for the presented above structure is:

Listing 4. Complete DBI-file example

[OBJ_TEST]
id, CHAR, 16
name, CHAR, 60
parent_id, CHAR, 16
flags, INTEGER

[OBJ_TEST_CHILD]
id, CHAR, 16
name, CHAR, 60
parent_id, CHAR, 16
flags, INTEGER

[OBJ_TEST_GRANDSON]
id, CHAR, 16
name, CHAR, 60
parent_id, CHAR, 16
flags, INTEGER

[OBJ_TEST_GRANDDAUGHTER]
id, CHAR, 16
name, CHAR, 60
parent_id, CHAR, 16
flags, INTEGER

DB registration file name


DB registration file name MUST start with securos., then you place your own name add-on, and then
you MUST specify the dbi extension. For example, securos.test.dbi.

DB registration file location


You MUST put your DBI-f ile into SecurOS installation folder, for example: C:\Program
Files\ISS\SecurOS\securos.test.dbi.

DB registration activation
You MUST set Ready for archiving bit (attribute) on the SecurOS_intallation_dir/securos.dbi
file.

4.3 Declaring user-friendly names


To register in SecurOS user-friendly names of your objects, events and commands you must provide a
DDI-f ile (called after its extension). DDI-f ile has also an INI-f ile like structure and is specific to a concrete
language. DDI-f ile has a special INI-f ile like but still simple format consisting of several sections:
· Declaring object names.
· Declaring object events names.
· Names declaration file name.

www.issivs.com
SecurOS UinP 13 Integration Guide
Registering an external system to SecurOS

· Names declaration file location.


· Names declaration file editor.

Declaring object names


Declaration of object names MUST be provided in [OBJTYPE] section. It has the following format:

[OBJTYPE]
<object_type>|<object_name>|<grouping_object_name>|, where:

· object_type — is the assigned object type name (ex. TEST).


· object_name — user-friendly object name (ex. Test integration root object).
· grouping_object_name — if you specify this parameter, then the grouping object will be
automatically created for objects of this type (ex. Test integration root objects). This
option is useful when your integration supplies many objects of the same type.

Listing 5. [OBJTYPE] section example

[OBJTYPE]
TEST |Test integration root object | |
TEST_CHILD |Test integration child object | |
TEST_GRANDSON |Test integration grandson object |Grandsons |
TEST_GRANDDAUGHTER|Test integration granddaughter object|Granddaughters|

Declaring object event names


Declaration of object events names MUST be provided in [EVENT] section. It has the following format:

[EVENT]
<object_type>|<event_type>|<reserved>|<object_event_name>|<flags>|, where:

· object_type — event source type (ex. TEST).


· event_type — type of the event (ex. TEST_EVENT).
· reserved — field reserved for future use.
· object_event_name - user-friendly event name (ex. Test event of test integration
root object).
· flags - event flags influencing its transmission and handling:
- message type (A — alarm, M — information message, message has no type if no type identifiers
specified).
- sound background (S — required, not required if S is not specified).
- local message (if H is specified message will not be translated into network).
- record event (if N is specified then message will not be stored into SecurOS emitted events
database).

Listing 6. [EVENT] section example

[EVENT]
TEST |TEST_EVENT||Test event of test integration root object|AS |

www.issivs.com
SecurOS UinP 14 Integration Guide
Registering an external system to SecurOS

Names declaration file name


Name declaration file name MUST start with securos. prefix, then you place your own name add-on,
and then you MUST specify the ddi extension. For example securos.test.ddi (for English) or
securos.test_es.ddi (for Spanish).

Names declaration file location


You MUST put your DDI-f ile into SecurOS installation folder, for example, C:\Program
Files\ISS\SecurOS\securos.test.ddi.

Names declaration file editor


SecurOS provides a convenient tool for editing name declaration files. You can find it in <SecurOS
installation folder>\tools folder. Launch ddi.exe (see SecurOS Administration Guide) and
use it for creating new and modify existing DDI-f iles. With this tool you can manage content only not
form in which it is stored.

www.issivs.com
SecurOS UinP 15 Integration Guide
Implementation of the external system SecurOS connection module

5 Implementation of the external system


SecurOS connection module
SecurOS connection module MUST be implemented to be able to process SecurOS events and
commands. This section consists of the following parts:
· Programming languages.
· Programming technique.
· UInP User Interface.

5.1 Programming languages


You can use any language which can import C functions from DLL. In examples of this article we will
work with C++.

5.2 Programming technique


The easiest way to communicate with SecurOS is IIDK (please, refer to IIDK Manual to obtain detailed
information).

5.2.1 SecurOS connection process overview

To receive and send messages/commands as well as represent your system in the SecurOS Object Tree
and on SecurOS Maps, you need to perform the following steps:
· Connect to SecurOS.
· Receive, dispatch and handle messages.
· Send your messages and commands.
· Control connection state.
· Disconnect when your system is through.

5.2.2 Connecting to SecurOS

The only proper way to connect SecurOS is to use ConnectEx function of IIDK.
· ConnectEx function.
· Using ConnectEx function.

ConnectEx function
ConnectEx function has the following signature:

int __stdcall ConnectEx(const char* address,

www.issivs.com
SecurOS UinP 16 Integration Guide
Implementation of the external system SecurOS connection module

const char* port,


const char* id,
idk_callback_ex* lpfunc,
unsigned long user_param,
int connect_type,
unsigned long connect_attempts);

Parameters description:
· address — IP address of the SecurOS server (can be provided by SecurOS installer).
· port — target port (set 3000 to connect universal integration point).
· id — connection identifier used to distinguish different connections. This parameter is intended to
be passed into Disconnect and SendMsg functions.
· lpfunc — pointer to a message receiving function.
· user_param — this value will be provided in your callback function to distinguish connected
source.
· connect_type — set this parameter to '-1' to make IIDK reconnect automatically if the connection
with SecurOS fails.
· connect_attempts — number of reconnection attempts before function fails. Choose and set
appropriate for your case value.
· return value — 0 if all connection attempts fail.

Using ConnectEx function


std::string remoteAddress = "127.0.0.1";
std::string uipPort = "3000";
std::string uipId = "2";
CMessageHandler handler; //You could implement a special message dispatching class
if(0 == ConnectEx(remoteAddress.c_str(), uipPort.c_str(), uipId.c_str(),
&handle_message, unsigned long(&handler), -1, 1))
{
/* connection failed, handle this situation */
}
else
{
/* connection successful, do something useful */
}

5.2.3 Receiving messages and commands

To receive messages and commands from SecurOS you MUST implement a callback function which will
process incoming messages and commands.
· Callback signature.
· Using callback to dispatch messages.
· Message structure.

Callback signature

void __stdcall message_handler(const char* msg, char* slave_id,


unsigned long user_param);

Parameters description:
· msg — serialized message from SecurOS.

www.issivs.com
SecurOS UinP 17 Integration Guide
Implementation of the external system SecurOS connection module

· slave_id — message source.


· user_param — the value you specified in ConnectEx.

Using callback to dispatch messages


Here is an example of callback function:

void __stdcall message_handler(const char* message, const char* /*slave_id*/,


unsigned long user_param)
{
CSOSMessagePtr msg = new CSOSMessage(message); // You could write a class
/*which parses message into convenient form*/
CMessageHandler* handler = reinterpret_cast<CMessageHandler*>(user_param);
handler->HandleMessage(msg); // Pass message to handler
}

Message structure
Message has the following structure:

SOURCE_TYPE|SOURCE_ID|EVENT_TYPE|param1_name<param1_value>,
param2_name<param2_value>...paramN_name<paramN_value>, where:

· SOURCE_TYPE — type of the object which emitted the message (ex. TEST).
· SOURCE_ID — id of the object which emitted the message (ex. 1).
· EVENT_TYPE — type of event emitted (ex. TEST_EVENT).
· param1_name<param1_value>,param2_name<param2_value>...paramN_name<paramN_value>
— parameters of the emitted message (ex.
test_param<test_value>,test_param2<test_value2>).

Example:

TEST|1|TEST_EVENT|test_param<test_value>,test_param2<test_value2>

5.2.4 Sending messages and commands

To send a message or a command you need to use SendMsg function.


· SendMsg function signature.
· Sending an event.
· Sending a command.

SendMsg function signature


SendMsg function has the following signature:

int SendMsg(const char* id, const char* serializedMessage);

Parameters description:
· id — connection id specified in ConnectEx function.
· serializedMessage — serialized into string format message.
· return value — 0 if any error occurred while sending message.

www.issivs.com
SecurOS UinP 18 Integration Guide
Implementation of the external system SecurOS connection module

Sending an event
Whenever your application needs to send a notification into SecurOS you MUST create a message,
serialize it into string and invoke SendMsg function.

Example:
CSOSMessage msg("TEST", "TEST_EVENT");
/* Above this is an idea of C++ message implementation */
msg.SetParam("test_param", "test_value");
SendMsg(conn_id, msg.ToString().c_str());

Sending a command
Command is a special type of event which is delivered to a concrete object of the SecurOS Object Tree.
So exactly this object processes this message. To send a command you need to use a special format of
the event:

CORE||DO_REACT|source_type<TARGET_OBJECT_TYPE>,source_id<TARGET_OBJECT_ID>,
action<COMMAND_TYPE>,params<N>,param0_name<test_param1>,
param0_value<test_param1>...paramN_name<test_paramN>,
paramN_value<test_paramN>, where:
· TARGET_OBJECT_TYPE — type of the object you send command to (ex. CAM).
· TARGET_OBJECT_ID — you need to provide an object id you send your command to (ex. 1).
· COMMAND_TYPE — type of the command (ex. REC).
· params — this a required parameter where you MUST specify the number of parameters you are
providing.
· param0_name<test_param1>,param0_value<test_param1>...paramN_name<test_paramN>,param
N_value<test_paramN> — parameters packed in a special formatted container. This structure lets
core unfold the command in a known way.

Example of a command starting recording on Camera with id 1:

CORE||DO_REACT|source_type<CAM>,source_id<1>,action<REC>,params<0>

This example sends to camera (source_type CAM) with id 1 (source id 1) command to start
recording (action REC). As this command does not require any parameters we set field params to 0
and provide no paramX_name<>,paramX_value<> pairs.

5.2.5 Controlling connection state

When connection is lost for any reason in callback function you receive a special DISCONNECTED
message passed to your callback as a first parameter. When you receive this notification you can take
proper action: notify of error, reconnect, etc.

5.2.6 Disconnecting

To disconnect from SecurOS just call special function:

void __stdcall Disconnect(const char* id);

Function has the only parameter id where you must pass a valid value which was previously specified
in your ConnectEx call.

www.issivs.com
SecurOS UinP 19 Integration Guide
Implementation of the external system SecurOS connection module

5.3 UInP User Interface


UInP User Interface provides ability to create and control GUI for integrated objects in SecurOS system
as a part of SecurOS Desktop.
· Configuration.
· Implementation details.

Configuration
To enable UInP User Interface Functionality you need to add following parameters to
*.integration.json:
· interface objects must be created within DESKTOP-directory;
· interface objects must have settings with default set of geometry parameters;
· interface objects must not have “children”.

Implementation details
· For all interface objects given type SecurOS creates only one process to controls them.
· In case of switching between displays UInP User Interface performs activation or deactivation GUI
module.
· Interface objects must get ACTIVATE and DEACTIVATE commands.
· A process receives the following commands:
- When object activated, created or settings were changed:
TYPE|id|SETUP|x<...>,y<...>,w<...>,h<...>,screen<...>,hash<...>, where: x,
y — window coordinates (in percents); w, h — window width and height (in percents);
screen — screen number; hash — a check sum of integration file.
- When object deleted:
TYPE|id|DELETE
- When object displayed:
TYPE|id|ACTIVATE
- When object hided:
TYPE|id|DEACTIVATE
· Object parameters in *.integration.json:
- type — object type;
- parent — parent directory has to be DISPLAY;
- port — transport ID;
- key (optional) — if specified, key position in key.iss;
- process_name (optional) — if specified, then SecurOS will start and finish an application by
itself.

www.issivs.com
SecurOS UinP 20 Integration Guide
Embedding of the external system srtucture into SecurOS

6 Embedding of the external system


srtucture into SecurOS
To embed 3rd party system in SecurOS it is necessary to present it as a single object or objects tree. This
will allow you to display any events from 3rd party system, in SecurOS, transmit messages from
SecurOS to your system, etc. Implementation of the following protocol is required to represent your
system in SecurOS.
· Objects Tree.
· Reporting objects tree.
· Messages from SecurOS.

6.1 Objects Tree


The SecurOS Object Tree is a group of system objects with settings. The Object Tree is supposed to be
static and updates are performed manually by a system administrator of SecurOS.

6.2 Reporting objects tree


When an operator clicks Update configuration button in the Universal Integration Point user interface
it produces a command RESET which must be served by your integration module. To form a proper
response you need to do the following:
· Generate proper object tree.
· Serialize it into JSON notation.
· Send a response event with the serialized tree.

Generation of Object Tree


You may show your system in SecurOS as a single object, or an Object Tree. Selection of a concrete
model depends on your system features and your customers needs. To use such features as SecurOS
maps, for example, you need to use an Object Tree. But when you need just a SecurOS gate to handle
events from it's objects and detectors, you can use just single object itself representing the whole
external system. Still, this tree MUST follow your registration note described in Registering an external
system to SecurOS.

Tree serialization
Tree must be serialized into JSON.
· Main description container.
· Object description.

Main description container


· version — integer — format version. at the moment the only allowed value is 1.
· objects — objects array — set of object descriptions.

www.issivs.com
SecurOS UinP 21 Integration Guide
Embedding of the external system srtucture into SecurOS

Object description
· type — string — type of the object from declaration.
· id — integer — id of the object, generated by your system, must be unique.
· name — integer — user-friendly name of the object. Will be displayed in the SecurOS Object Tree.
· children — objects array — description of children objects.

Example:
{
"version": 1,
"objects":
[{
"type": "TEST_CHILD",
"id": "1",
"name": "Test child 1",
"children":
[{
"type": "TEST_GRANDSON",
"id": "1",
"name": "Test grandson 1"
},
{
"type": "TEST_GRANDDAUGHTER",
"id": "1",
"name": "Test granddaughter 1"
}]
},
{
"type": "TEST_CHILD",
"id": "2",
"name": "Test child 2"
}]
}

Sending response to Universal Integration Point


Now you must respond to a request sending a special response message:

[YOUR_OBJECT_TYPE]|[YOUR_ID]|RESET|json<text>

Message structure is described in detail in Implementation of the external system SecurOS connection
module.

· YOUR_OBJECT_TYPE — set here your object type.


· YOUR_ID — set here id of your Universal Integration Point (you can see it in SecurOS Object Tree).

Put your serialized tree into json parameter.

6.3 Messages from SecurOS


Here are described the following messages:
· SETUP.
· ACTIVATE and DEACTIVATE.
· Other messages.

www.issivs.com
SecurOS UinP 22 Integration Guide
Embedding of the external system srtucture into SecurOS

SETUP
· Top level integration objects.
· Interface objects.

Top level integration objects


Parameters:
· hash — hash sum of the integration description file, in form <hashing
algorithm>:<hexadecimal hash value>. The only hashing algorithm currently supported is
SHA-1 (specified as sha1). To verify the integration description, the integration must compare the
received hash with a hard-coded value and cease to work if the hashes differ.

Sent when the connection to the SecurOS is established.

Interface objects
Parameters:
· hash —see above.
· screen —screen index, starting with 1.
· x —left position on the screen in percents (0 - 99).
· y —top position on the screen in percents (0 - 99).
· w —width on the screen in percents (1 - 100).
· h —height on the screen in percents (1 - 100).

Sent when the connection to the SecurOS is established and every time the parameters (except the
immutable hash) change.

ACTIVATE and DEACTIVATE


Parameters: none.

Sent when the interface object should be shown or hidden respectively.

Other messages
The integration may receive other messages not described above. The integration should ignore any
unrecognized messages.

www.issivs.com
SecurOS UinP 23 Integration Guide
Technical Support Information

7 Technical Support Information


Current section contains service information that is necessary on addressing to Intelligent Security
Systems Technical Support.

Note. Collected data have to be send to the Intelligent Security Systems Technical Support Team (see Getting
Technical Support).

To ensure quick technical support, prepare the following technical information:

Warning! Data in items marked by "*'' are necessary to report.

1. (*) User (customer) name to address to.


2. (*) Organization name.
3. (*) User (or organization) contacts: phone, e-mail.
4. Name of a personal Intelligent Security Systems manager (on Intelligent Security Systems authorized
partner case). Otherwise, give the following data:
· Company where the hardware and software components were purchased.
· Actions proposed to solve the problems announced by a partner from whom the product was
purchased.
5. (*) Problem description.
6. (*) Actions results in the problem.
7. List of changes which result to the problem in case of applying after some changes in system
settings/configuration.
8. System and diagnostic information on computer and SecurOS system configuration obtained from
the SystemInfo utility (see SecurOS Administration Guide for detailed information about utility).
If it is impossible to run the utility provide the following information:
· (*) Guardant keys identifiers and Dallas code;

Note. Equipment Dallas code can be found by the Hardware Report Utility (see SecurOS Administration
Guide for detailed information about utility).

· (*) name and version of the installed Intelligent Security Systems company software.
· total number of video servers and monitoring (operator) workstations in the system;
· operating system (name and service pack version).
9. Another useful information, if possible. For example:
· computer equipment configuration.
· central processors load.
· main and virtual memory used volumes.
· network load.

www.issivs.com
SecurOS UinP 24 Integration Guide
Technical Support Information

· network and network neighborhood configuration.

www.issivs.com

You might also like