IP Interface Specification for the ISONAS Access Control System

Script and TCP/IP Interface Specification for the ISONAS Access Control System September 2012 ISONAS Security Systems 303-567-6516 www.ISONAS.com ...
73 downloads 5 Views 1MB Size
Script and TCP/IP Interface Specification for the ISONAS Access Control System

September 2012

ISONAS Security Systems 303-567-6516

www.ISONAS.com

1

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Table of Contents Revision History ................................................................................................................. 8 Introduction ....................................................................................................................... 11 Architecture....................................................................................................................... 11 Connecting to the TCP/IP Server...................................................................................... 12 Restart Interval .............................................................................................................. 12 Encrypt and Encryption Key......................................................................................... 12 LOGON Process ........................................................................................................... 13 Syntax: ...................................................................................................................... 13 Response: .................................................................................................................. 13 Command Access Levels: ......................................................................................... 13 Connecting to External Systems via TCP/IP .................................................................... 14 Defining a New External Connection ........................................................................... 14 Editing Existing Connection Definitions ...................................................................... 16 Deleting an Existing Connection .................................................................................. 17 EVENT Notification ......................................................................................................... 17 Summary of Command Functional Capabilities ............................................................... 18 Format/Syntax ............................................................................................................... 20 Command parameter validation restrictions ................................................................. 20 COMMENTS .................................................................................................................... 22 Description: ................................................................................................................... 22 Syntax: .......................................................................................................................... 22 SUPERVISOR .................................................................................................................. 22 Description: ................................................................................................................... 22 Syntax: .......................................................................................................................... 22 Response: ...................................................................................................................... 23 CONNECTION................................................................................................................. 24 Description: ................................................................................................................... 24 Syntax: .......................................................................................................................... 24 Response: ...................................................................................................................... 24 DOORS ............................................................................................................................. 24 Description: ................................................................................................................... 24 Syntax: .......................................................................................................................... 24 Response: ...................................................................................................................... 26 DOORGROUP.................................................................................................................. 26 Description: ................................................................................................................... 26 Syntax: .......................................................................................................................... 26 Response: ...................................................................................................................... 26 DOORGROUPMEMBER ................................................................................................ 26 Description: ................................................................................................................... 26 Syntax: .......................................................................................................................... 26 Response: ...................................................................................................................... 27 ISONAS Security Systems 303-567-6516

www.ISONAS.com

2

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

GROUPNAME ................................................................................................................. 27 Description: ................................................................................................................... 27 Syntax: .......................................................................................................................... 27 Response: ...................................................................................................................... 27 HOLIDAYS ...................................................................................................................... 27 Description: ................................................................................................................... 27 Syntax: .......................................................................................................................... 27 Response: ...................................................................................................................... 27 IDFILE .............................................................................................................................. 28 Description: ................................................................................................................... 28 Syntax: .......................................................................................................................... 28 Response: ...................................................................................................................... 28 IDFILE Image Files .......................................................................................................... 28 Description: ................................................................................................................... 28 Syntax: .......................................................................................................................... 29 Response: ...................................................................................................................... 29 GROUPS ........................................................................................................................... 30 Description: ................................................................................................................... 30 Syntax: .......................................................................................................................... 30 Response: ...................................................................................................................... 30 BADGES........................................................................................................................... 31 Description: ................................................................................................................... 31 Syntax: .......................................................................................................................... 31 Response: ...................................................................................................................... 31 GUIDs Associated with BADGES ................................................................................... 31 Description: ................................................................................................................... 31 Syntax: .......................................................................................................................... 31 Response: ...................................................................................................................... 32 SHIFTS ............................................................................................................................. 33 Description: ................................................................................................................... 33 Syntax: .......................................................................................................................... 33 Response: ...................................................................................................................... 33 PERMISSION ................................................................................................................... 34 Description: ................................................................................................................... 34 Syntax: .......................................................................................................................... 34 Response: ...................................................................................................................... 34 PERMISSIONGROUP ..................................................................................................... 34 Description: ................................................................................................................... 34 Syntax: .......................................................................................................................... 34 APPLY .............................................................................................................................. 35 Description: ................................................................................................................... 35 Syntax: .......................................................................................................................... 35 Response: ...................................................................................................................... 36 ADMIT ............................................................................................................................. 36 Description: ................................................................................................................... 36 ISONAS Security Systems 303-567-6516

www.ISONAS.com

3

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Syntax: .......................................................................................................................... 36 Response: ...................................................................................................................... 36 UNLOCK .......................................................................................................................... 37 Description: ................................................................................................................... 37 Syntax: .......................................................................................................................... 37 Response: ...................................................................................................................... 37 LOCKDOWN ................................................................................................................... 37 Description: ................................................................................................................... 37 Syntax: .......................................................................................................................... 37 Response: ...................................................................................................................... 38 RESETNORMAL ............................................................................................................. 38 Description: ................................................................................................................... 38 Syntax: .......................................................................................................................... 38 Response: ...................................................................................................................... 38 SETHOSTOVERRIDE ..................................................................................................... 38 Description: ................................................................................................................... 38 Syntax: .......................................................................................................................... 38 Response: ...................................................................................................................... 39 SETLOCAL ...................................................................................................................... 39 Description: ................................................................................................................... 39 Syntax: .......................................................................................................................... 39 Response: ...................................................................................................................... 39 PRESENTBADGE ........................................................................................................... 39 Description: ................................................................................................................... 39 Syntax: .......................................................................................................................... 39 Response: ...................................................................................................................... 40 PRESENTGUID ............................................................................................................... 40 Description: ................................................................................................................... 40 Syntax: .......................................................................................................................... 40 Response: ...................................................................................................................... 40 QUEUE EMAIL ............................................................................................................... 41 Description: ........................................................................................................... 41 Syntax: .................................................................................................................. 41 Response: .............................................................................................................. 41 QUERY ............................................................................................................................. 42 Description: ................................................................................................................... 42 BADGE ..................................................................................................................... 42 Description: ........................................................................................................... 42 Syntax: .................................................................................................................. 42 Response: .............................................................................................................. 42 ALL DOORS ............................................................................................................ 42 Description: ........................................................................................................... 42 Syntax: .................................................................................................................. 42 Response: .............................................................................................................. 42 DOORS ..................................................................................................................... 44 ISONAS Security Systems 303-567-6516

www.ISONAS.com

4

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Description: ........................................................................................................... 44 Syntax: .................................................................................................................. 44 Response: .............................................................................................................. 44 ALL DOORGROUPS ............................................................................................... 45 Description: ........................................................................................................... 45 Syntax: .................................................................................................................. 45 Response: .............................................................................................................. 45 DOORGROUP.......................................................................................................... 45 Description: ........................................................................................................... 45 Syntax: .................................................................................................................. 45 Response: .............................................................................................................. 45 GROUPNAMES ....................................................................................................... 46 Description: ........................................................................................................... 46 Syntax: .................................................................................................................. 46 Response: .............................................................................................................. 46 GROUP ..................................................................................................................... 46 Description: ........................................................................................................... 46 Syntax: .................................................................................................................. 46 Response: .............................................................................................................. 46 ALL GROUPS .......................................................................................................... 47 Description: ........................................................................................................... 47 Syntax: .................................................................................................................. 47 Response: .............................................................................................................. 47 ALL SHIFTS ............................................................................................................ 47 Description: ........................................................................................................... 47 Syntax: .................................................................................................................. 47 Response: .............................................................................................................. 47 SHIFT ....................................................................................................................... 48 Description: ........................................................................................................... 48 Syntax: .................................................................................................................. 48 Response: .............................................................................................................. 48 ALL HOLIDAYS ..................................................................................................... 49 Description: ........................................................................................................... 49 Syntax: .................................................................................................................. 49 Response: .............................................................................................................. 49 ALL IDFILE ............................................................................................................. 49 Description: ........................................................................................................... 49 Syntax: .................................................................................................................. 49 Response: .............................................................................................................. 49 IDFILE ...................................................................................................................... 50 Description: ........................................................................................................... 50 Syntax: .................................................................................................................. 50 Response: .............................................................................................................. 50 IDFILE IMAGES...................................................................................................... 50 Description: ........................................................................................................... 50 ISONAS Security Systems 303-567-6516

www.ISONAS.com

5

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Syntax: .................................................................................................................. 50 Response: .............................................................................................................. 50 ALL BADGES .......................................................................................................... 51 Description: ........................................................................................................... 51 Syntax: .................................................................................................................. 51 Response: .............................................................................................................. 51 BADGE BADGEID .................................................................................................. 52 Description: ........................................................................................................... 52 Syntax: .................................................................................................................. 52 Response: .............................................................................................................. 52 BADGE UNIQUEID ................................................................................................ 53 Description: ........................................................................................................... 53 Syntax: .................................................................................................................. 53 Response: .............................................................................................................. 53 BADGE GUID .......................................................................................................... 54 Description: ........................................................................................................... 54 Syntax: .................................................................................................................. 54 Response: .............................................................................................................. 54 PERMISSIONS......................................................................................................... 55 Description: ........................................................................................................... 55 Syntax: .................................................................................................................. 55 Response: .............................................................................................................. 55 HISTORY ................................................................................................................. 56 Description: ........................................................................................................... 56 Syntax: .................................................................................................................. 56 Response: .............................................................................................................. 56 IO MODULES .......................................................................................................... 58 Description: ........................................................................................................... 58 Syntax: .................................................................................................................. 58 Response: .............................................................................................................. 58 IOMODULE ............................................................................................................. 60 Description: ........................................................................................................... 60 Syntax: .................................................................................................................. 60 Response: .............................................................................................................. 60 Response: .............................................................................................................. 60 STATUS ................................................................................................................... 61 Description: ........................................................................................................... 61 Syntax: .................................................................................................................. 61 Response: .............................................................................................................. 61 ACTIVE ALARMS .................................................................................................. 63 Description: ........................................................................................................... 63 Syntax: .................................................................................................................. 63 Response: .............................................................................................................. 63 CLEAR ALARMS ............................................................................................................ 63 Description: ................................................................................................................... 63 ISONAS Security Systems 303-567-6516

www.ISONAS.com

6

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Syntax: .......................................................................................................................... 63 SET IOMODULE ............................................................................................................. 64 Description: ................................................................................................................... 64 Syntax: .......................................................................................................................... 64 Response: ...................................................................................................................... 65 SETLOGGING ................................................................................................................. 66 Description: ................................................................................................................... 66 Syntax: .......................................................................................................................... 66 Response: ...................................................................................................................... 66 ENABLE ........................................................................................................................... 66 Description: ................................................................................................................... 66 Syntax: .......................................................................................................................... 66 Response: ...................................................................................................................... 66 DISABLE .......................................................................................................................... 67 Description: ................................................................................................................... 67 Syntax: .......................................................................................................................... 67 Response: ...................................................................................................................... 67 ARM ................................................................................................................................. 67 Description: ................................................................................................................... 67 Syntax: .......................................................................................................................... 67 Response: ...................................................................................................................... 68 DISARM ........................................................................................................................... 68 Description: ................................................................................................................... 68 Syntax: .......................................................................................................................... 68 Response: ...................................................................................................................... 68 SET TTL ........................................................................................................................... 69 Description: ................................................................................................................... 69 Syntax: .......................................................................................................................... 69 Response: ...................................................................................................................... 69 QUEUE SCRIPT .............................................................................................................. 69 Description: ................................................................................................................... 69 Syntax: .......................................................................................................................... 69 Response: ...................................................................................................................... 69 DEQUEUE SCRIPT ......................................................................................................... 70 Description: ................................................................................................................... 70 Syntax: .......................................................................................................................... 70 Response: ...................................................................................................................... 70 Error Table ........................................................................................................................ 70 APPENDIX A – AES Encryption Library........................................................................ 72 LOGON Process with encryption enabled.................................................................... 73

ISONAS Security Systems 303-567-6516

www.ISONAS.com

7

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Revision History Revision Date 7/16/2008

Author Roger Matsumoto

8/4/2008

Roger Matsumoto

9/11/2008

Rmb

10/6/2008

Rmb

10/13/2008

Rmb

10/21/2008 11/04/2008

Rmb Rmb

1/9/2009

Rmb

2/9/2009

Roger Matsumoto

5/4/2009

Rmb

ISONAS Security Systems 303-567-6516

Description Initial revision entry – added command parameter requirements table; enhanced command descriptions; clarified parameter descriptions. Formatting changes; Added Syntax table of commands in new appendix; Updated/corrected descriptive statements of command parameters; Delete Supervisor – rmv supervisor name and port Add Doors – dual auth values 0-3 Delete Doors – rms Servername and Port as cmd parameters Updated other commands to reflect the parameter requirements specified within the INRServ code . Added commands to add and delete door groups and to add and delete doors from door groups Updated command response to include IOSupervisors. Updated to include option Added events and errors associated with IO Points going True/False/Changing and clearing IO Alarms, added Query Active Alarms and Clear Alarms, modified several other Query responses. Added multiple commands per tcp/ip message. Modified and added errors to the error table. Modified SET IOMODULE to include priorities Clarified partial compile options (APPLY). Corrected ADD DOORGROUP documentation to show AREA option Added command Updated field description for start and end date of QUERY HISTORY command Updated Event to include Disable/Enable Input and Output Points . Added disable status to QUERY IOMODULE commands. Modified UNLOCK, LOCKDOWN, RESET NORMAL and CLEAR ALARM event reports to show BadgeID or “none” www.ISONAS.com

8

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

5/20/2009

Rmb

6/12/09

Rmb

7/17/2009

Roger Matsumoto

7/26/2009

Dick Burkley

8/06/2009

Dick Burkley

9/09/2009

Dick Burkley

10/05/2010

Dick Burkley

3/28/2011

Roger Matsumoto

5/27/2011 6/23/2011 7/26/2011 8/25/2011

Dick Burkley Dick Burkley Dick Burkley Dick Burkley

12/28/2011

Dick Burkley

8/29/2012

Roger Matsumoto

ISONAS Security Systems 303-567-6516

Added commands ARM,DISARM,ENABLE and DISABLE. Changed content of responses to several QUERY commands associated with IOMODULES to include additional information about the DISARM and DISABLE state. Added compile type for Resend to the APPLY command 1. ADD DOORS – the “connection” argument should be “subnet” and needs to be in the description table of the command 2. ADD HOLIDAYS – “allareaflag” default value is 0(zero) not 1(one). 3. APPLY – changed the syntax to indicate the “compiletype” flag is required and the “scope” could be optional 4. QUERY ACTIVE ALARMS – Changed response to indicate whether the “point” is an input point or an output point, and if indicated, whether the point went true or false. Added SETLOCAL command. Updated section on restart interval. Added note to PRESENT BADGE command concerning LOCAL mode Added permission group name to Add Permission command. Clarified event notification for REX and AUX alarms. Added optional specification of a doorname to the SET IOMODULE command to support the Thyssen Krupp elevator interface. Modified DOORS add command and associated error and response information. Updated RESETNORMAL description Updated SETLOCAL description Corrected ISONAS address Added List OPENED and CLOSED event as event reports and history records Added GUID to the cmd. Updated the following Event Notifications with GUID data: , , , www.ISONAS.com

9

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

9/27/2012

Dick Burkley

ISONAS Security Systems 303-567-6516

, , , , , , , Updated responses from the following commands with GUID: , , , . Updated the following response types of the command: , , , , , , , , , . The following New commands have been added: , , , , . Corrections made to the following commands: , , Added SetHostOverride command

www.ISONAS.com

10

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Introduction This interface provides facilities to configure the Isonas Access Control database and command specific reader controller and I/O module actions by: 1. Sending TCP/IP message to the INRServ.exe (Isonas Notification Request Server) interface program 2. Writing script commands which the system executes when specified conditions are met by events that take place within the access control system. The functions in this interface that change the state of the reader controllers (Admit, Unlock, Lockdown, Reset Normal) require that the standard Isonas Access Control System Controller Supervisor program(s) (CSUP.exe) be up and running providing access control to a number of Isonas IP, WirelessIP or serial reader controllers. Other functions provided by this interface interact directly with the database tables and do not require the existence of a running controller supervisor program.

Architecture The diagram below shows the architecture of the system. Both the TCP/IP interface and the ScriptRunner are included within the INRServ application.

The TCP/IP interface sends notification of all events which occur within the access control system to all of the client programs that have connected to it, including the Script Runner program. The Script Runner program compares these events to the event filters that have been specified. When an event matches the specified criteria the script itself is processed, sending commands to the TCP/IP interface for execution.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

11

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Connecting to the TCP/IP Server

Here is the INRServ screen used to configure the TCP/IP interface. The IP address, Port and logfile name are set using the controls shown. The meaning of the connection timeout is explained below under the Logon process description.

Restart Interval An earlier version of the INRServ process had a minor resource leak associated with the client connection process that would eventually cause the system to fail due to lack of system resources if the client connects/disconnected frequently. As an interim workaround we provided a mechanism that shut the process down after a specified number of seconds. Setting the restart interval to zero disabled the restart process. By configuring the INRServ process to run as a windows service and setting the service to automatically restart on abnormal termination the INRServ could be continuously available and avoid the resource problem. The resource leak has been corrected in later versions and this restart interval is no longer needed.

Encrypt and Encryption Key The TCP/IP server can be configured to use AES (Advanced Encryption Standard – sometimes called Rijndael ) Encryption. If set, the system uses 256 bit encryption. You must set the 32 byte key by specifying the 32 hex bytes. (E.g., 000102030405060708090A0B0C0D0E0F101112131415161718911A1B1C1D1E1F) This same encryption mechanism is used by the ISONAS reader controllers if you configure them to do so. We have included the dll library that provides the encryption as part of the ISONAS system code, and you can use this library if you wish to do so. You may also use any other encryption software that conforms to the AES standard. Appendix 1 describes the library functions. ISONAS Security Systems 303-567-6516

www.ISONAS.com

12

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

LOGON Process When the client program connects to the server, it will immediately send the following message back to the client: | If encryption is enabled, the client should send a 16 byte encryption initialization vector at this point, and all subsequent messages sent to and received from the server are encrypted. The client program must send a message within the Connection Timeout with the following format and content:

Syntax: | Where: Username or Label identification for this client. Up to 20 characters. This must be the current password for Username or must be the current Isonas Administrative password | The vertical bar denotes the end of a command definition The angle brackets must be used as shown. Example: |

Response: If the username and password are accepted, the server will send a message: | If the logon process is unsuccessful, an error message is returned (see Error Table)

Command Access Levels: If a Username/Password is used to log on to the TCP/IP server, the interface will restrict the user’s access to functions based on the authority level of the userid as shown in the following table: Scope Administrator COMMON

Level Na 3

Capabilities/Limitations Full access Full access – can only operate* reader controllers if the Username is valid for Monitor functions and the reader controllers require level 3 or lower. COMMON 2 Full access to read and set all information – can only operate* reader controllers if the Username is valid for Monitor functions and the reader controllers require level 2 or lower. COMMON 1 Can only access/set people, badges and group information. Can only operate* reader controllers if the Username is valid for Monitor functions and the reader controllers require level 1 or lower. AREA 3 No access to set network information. Can retrieve information for the AREA or for COMMON. Can set shifts and permissions for reader controllers that are part of the AREA or are in the COMMON AREA. Can only operate* reader controllers if the Username is valid for Monitor ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

13

AREA

2

AREA

1

functions and the reader controllers are in the AREA or COMMON and require level 3 or lower. No access to set network information. Can retrieve information for the AREA (but not for COMMON). Can set shifts and permissions for reader controllers that are part of the AREA only. Can only operate* reader controllers if the Username is valid for Monitor functions and the reader controllers are in the AREA (but not COMMON) and require level 2 or lower. Can only access/set people groups and badges for the AREA. Can not change permissions but can invoke compilation. Can only operate* reader controllers if the Username is valid for Monitor functions and the reader controllers are in the AREA (but not COMMON) and require level 1 or lower.

Connecting to External Systems via TCP/IP The TCP/IP interface server can support outbound TCP/IP connections to external/foreign systems. The “Server Connections”, currently defined, are displayed in the list of connections. The details of a connection are displayed when it is selected in the list of connections.

Defining a New External Connection A new connection to an external system can be defined by clicking on the “Insert” button. This will disable all other features of the Server Connection display and allow the connection to be defined. ISONAS Security Systems 303-567-6516

www.ISONAS.com

14

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

The entry fields are defined as follows: • Connection – this field assigns a name to the defined connection and will be displayed in the list of connections (“Connected Processes”) when the interface is running. The connection can be up to 20 characters. • IP Address – This is the IP address of the device that the ISONAS TCP/IP Interface will connect to. This device will have an IP Address assigned to it. The IP Address must be in the standard form of nnn.nnn.nnn.nnn where “nnn” is a value of 0-255. • Port – This is the IP Port that the device is “listening” on for a connection. The ISONAS TCP/IP interface will connect to this Port on the specified IP Address (defined above). The Port can have a range of 1 to 65535. • Disable – This allows the connection to be defined but ignored by the ISONAS TCP/IP interface. If this is checked, the connection will be disabled. • Disconnect After Send – This will cause a disconnect to occur after each event notification message sent through the interface or after a complete response to a requested command has been sent to the external system. If this is checked, the connection will be disconnected and immediately re-established. • AES Encryption(256) – This specified that the data through this connection will be encrypted using the standard 256 bit AES encryption method. If this is checked, AES encryption will occur. • AES Key – This field is valid if AES encryption is being used. A “private key” is defined by specifying 32 pairs of two hexadecimal numbers (0 – 9 and A – F) eg. 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E 1F ISONAS Security Systems 303-567-6516

www.ISONAS.com

15

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

The “Save” button will add the new connection to the list of connections and enable all of the display and browsing features of the “Server Connections” screen. The “Cancel” button will discard the information in the “Server Connection Detail” entry fields and enable all of the display and browsing features of the “Server Connections” screen.

Editing Existing Connection Definitions An existing connection definition can be edited/changed by selecting(highlighting) it within the list of defined connections. The “Edit” button can be clicked to disable all other features within the “Server Connections” screen and place it in “edit” mode.

Any of the entry fields can be changed to any appropriate value. The “Save” button will update the connection and enable all of the display and browsing features of the “Server Connections” screen. The “Cancel” button will discard the information in the “Server Connection Detail” entry fields and enable all of the display and browsing features of the “Server Connections” screen.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

16

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Deleting an Existing Connection A defined connection can be deleted by selecting(highlighting) it within the list of connections. The “Delete” button can be clicked.

The confirmation above will be displayed to allow a final acknowledgement of the delete action before the actual deletion of the connection definition.

EVENT Notification Once connected, clients will receive notification of events that occur within the Isonas Access Control system. Messages will be in the following format: [ additional data depending on the event as listed below] | The following event types are reported: | | | 1 | | | | | | 2 | | | | 1

The TAMPER, REX and AUX events are alarm conditions. If REX and AUX are not set to be alarm conditions, they are reported simply as either ADMIT or REJECT events. 2 The BadgeId for LOCKDOWN, UNLOCKED, NORMAL RESET and CLEAR ALARM will be “none” unless the event was triggered by a badge presentation. ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

17

| | | | | | | | | | | | | | | | | | | | | | | |

Note: The events are reported in the sequence they are received. There are several circumstances where these will NOT be in chronological order. 1) Controller Supervisors are running on computers with different time settings (i.e., in different timezones). 2) A controller has been offline (in standalone mode) and is brought back online. The events are reported when the controller comes back online but occurred at an earlier time.

Summary of Command Functional Capabilities The commands are shown in the following table. The ADD,UPDATE and DELETE commands will add or delete data from specified tables. The APPLY command will cause the Isonas system to put the changed database into effect. Command ! or REMARK ADD/DELETE ADD/DELETE ADD/DELETE ISONAS Security Systems 303-567-6516

Data ignored Supervisor name Connection (IP address) Door www.ISONAS.com

18

Table SERVERS SUBNETS DOORS 4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

ADD/DELETE ADDDOOR/DELETEDOOR ADD/DELETE ADD/DELETE ADD/UPDATE/DELETE ADD/DELETE ADD/UPDATE/DELETE ADD/DELETE ADD/DELETE ADMIT APPLY CLEAR ALARMS DELETE DELETE DELETE LOCKDOWN PRESENTBADGE QUEUE EMAIL QUEUE SCRIPT QUERY

SETHOSTOVERRIDE RESETNORMAL SETLOCAL SET IOMODULE SETLOGGING SET TTL UNLOCK UPDATE IDFILEIMAGES

ISONAS Security Systems 303-567-6516

DoorGroupName DoorGroup, DoorName Group Name Holiday Person Person Badge Shift name Group/Shift/Door Door name Full or Incremental Alarms All permissions for a GROUP All permissions for a SHIFT All permissions for a DOOR Door Name Door Name Script Name ALL DOORS DOOR doorname ALL DOORGROUPS DOORGROUP ALL GROUPNAMES GROUP groupname ALL GROUPS ALL SHIFTS SHIFT shiftname ALL HOLIDAYS ALL IDFILE IDFILE uniqueId IDFILE IMAGES ALL BADGES BADGE badgeid BADGE uniqueid PERMISSIONS HISTORY ALL IOMODULES IOMODULE STATUS Door Name Door Name Door Name IOMODULE Door Name Door Name Person, Image Files

www.ISONAS.com

19

DOORGROUP DOORGROUP GROUPNAME HOLIDAYS IDFILE GROUPS BADGES SHIFTS PERMISSION (none) PERMISSION ALARMS PERMISSION PERMISSION PERMISSION (none) (none) (none) SCRIPTS DOORS DOORS DOORGROUPS DOORS GROUPNAMES GROUPS GROUPS SHIFTS SHIFTS HOLIDAYS IDFILE IDFILE BADGES BADGES BADGES RIGHTS HISTORY IOMODULES IOMODULES (none) (none) (none) (none) IOMODULES (none) DOORS (none) PICDB

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Format/Syntax The commands sent to the INRServ server are Ascii strings consisting of angle bracket () enclosed tokens. The first token is the Command. There are additional required and optional tokens following based on the specific command. All fields are case sensitive. Fields shown just with < .. > are required. | in the field definition indicates a choice. Fields shown in [ … ] are optional, but the syntax is position dependant. Therefore, you may leave off all trailing optional fields but must provide all fields up to the last one with valid data in it. Leading or trailing blanks in any field are ignored. Uppercase values are keywords which must be entered exactly as shown. Lower case values are variable data. Commands sent to the INRServ process must be terminated by a vertical bar character “|”. You may send multiple commands in a single tcp/ip message, up to a maximum total of 4096 characters. One “odd” behavior that you may encounter is associated with some of the QUERY commands. Most of the QUERY commands simply retrieve information from the database but several of them send requests to other processes (CSUP or IOSUP) and wait for responses before sending a response back to the TCP/IP interface client. If multiple commands are entered with the same TCP/IP message you may see the responses in a different order than the commands. Every command sent to the interface will produce a response message of some sort. The possibilities include: • An error message • The requested data (for a QUERY) • An | message for commands that have been executed. All messages received from the INRServ will start with and will also be terminated by the vertical bar. If the command is rejected or causes an error, a response indicating the type of error will be sent back by the interface. The responses to the QUERY command are documented under the QUERY command below.

Command parameter validation restrictions Parameter Name allareaflag appliestoflag area authoritylevel badgenumber badgepinflag clientId countlimitedflag credentialguid datestring debugmode ISONAS Security Systems 303-567-6516

Length Min/Max

Numeric

1/1 1/1 1/20 1/1 1/10 1/1 1/20 1/1 38 1/10 1/1

Y Y

Special

Y Y Y Y Y Y www.ISONAS.com

20

Note 5 Note 2 4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

doordescription doordirection doorgroup doormodel doorname doorsubaddress dualauthentication email address endtime expirationflag firstname grouparea groupname groupname holidayflag holidayname idstring incrementalfullnetworkflag ioindex lastname middleinitial modeflag modulename password permissiongroupname port register remaininguses reset32 script name selectionmask shiftname ssn starttime subnet supervisorId supervisorname time ttln user1 - user20 ISONAS Security Systems 303-567-6516

1/30 1/1 1/20 1/20 1/20 1/3 1/1 3/255 1/7 1/1 1/10 1/20 1/20 1/20 1/1 1/20 1/15 1/1 ½ 1/20 1/1 1/1 1/20 1/22 1/20 1/5 1/32 1/6 1/32 1/20 1/32 1/20 1/9 1/7 4/15 2/2 1/20 1/7-8 1 1/25

Y

Y Y Note 4 Y Y

Y

Y

Y

Y Y Y

Y Y Y Y

Note 1

Y Y

Note 3 1 or 2

www.ISONAS.com

21

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

validflag

1/1

Y

Note 1 - where comport is “COM” followed by, up to 3 digits (max numeric value of 254) or for an IP address with 4 octets separated by a period (“.”), each octet up to 3 digits (max value of 254). Note 2 - where the date is in the format of mm/dd/yyyy and month is 1-12, day is 1-31 depending on month and leap year. Note 3 - if value is numeric then range check is done otherwise Time is assumed to be entered in the “hh:mm:ss” format where hh is 0-23, mm is 0-59 and ss is 0-59. Note 4 – must be a valid email address format Note 5 – must be in the standard GUID format: {00000000-0000-0000-0000-000000000000}

COMMENTS Description: This command is ignored by the INRServ TCP/IP interface processor and Script interface processor, but is useful when developing script files. It provides the script author a method of commenting the script contents for maintainability.

Syntax: or

comments to annotate scripts. The rest of the data is ignored.

SUPERVISOR Description: These commands allow for the maintenance of controller supervisors (CSUP) with the Access Control System.

Syntax: | | supervisor id

supervisor name port

ISONAS Security Systems 303-567-6516

2 alphanumeric characters – the two character combination must be unique within the definition of all of the CSUPs currently defined up to 20 characters – a unique name that references a particular supervisor definition/process A unique TCP/IP port assigned to the Communications Supervisor (1 – 65535)

www.ISONAS.com

22

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

23

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

CONNECTION Description: This command allows for the maintenance of IP or comm. port connections to readers/doors from the specified controller supervisor.

Syntax: | | supervisor id The id of a previously defined supervisor subnet a comm port or an IP address (e.g., COM3 or 192.168.0.143) (COMxx where xx is a comm. port range of 1-99)

Response: | [error detail]|

DOORS Description: These commands are used to define the reader controller.

Syntax: [] [][][][] [][][][][][][] [][][][][] [][][][] [][][][][] [][][][][] [][][][] [][][][][] [][]| |

supervisorid subnet doorname doorsubaddress doormodel area doordescription ISONAS Security Systems 303-567-6516

The id of a previously defined supervisor a comm port or an IP address (e.g., COM3 or 192.168.0.143) (COMxx where xx is a comm. port range of 1-99) a Unique Door name to reference the door subaddress (always = 1 for IP and Wireless IP units)(1-254) PRC-001B , PRC-001 , dPRC-001 , KTP-Keypad , RC-01 , RC-02 Defaults to COMMON if not given Free-form description of the door www.ISONAS.com

24

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

doordirection authoritylevel dualauthentication

port iogroup networktimeout clearalarm latchinterval

doormode admitmode rejectmode rexinput auxinput unauthopenalarm unauthopendelay extendedopenalarm extendeopentimeout tamperalarm tampercount locallatchinterval localrexttl2 localunauthopenttl2 localtamperttl1 localbeep localbeepaccept localauxinput localaddcard localvoidcard localvoidallcard locallockdown localunlockcard localnormalcard serialmode serialpassthrudevice ISONAS Security Systems 303-567-6516

0 unspecified | 1 in | 2 out | 3 in/out (see Isonas Ref Manual) 0 | 1 | 2 | 3 (authority level to control door from the Monitor program) 0 | 1 | 2 | 3 ( dual authentication: 0=Off, 1=Any Two, 2=Same Person, 3=Different Person) 1-65535, Default 10001 Default blank 0-255 secs, Default=20 if DoorMode is Host, 0 if DoorMode is Local 0-1 0=Do not Clear, 1=Clear, default= 0 0-255 secs, default = 3 0=Host, 1=Local, 2=Standalone, 3=Disable. Default is 0. Host or Standalone will default Network Timeout to 20 if not explicitly specified. Local will default Network Timeout to 0 (will override specified value). Valid values BEEP, TTL1, TTL2, WOUNLATCH. Default is blank. (Multiple entries separated by “,”) Valid values BEEP, TTL1, TTL2. Default is blank. Valid values REXUNLATCH, REXWOUNLATCH, REXALARM, or REXLOCKDOWN. Default is disabled (no entry). Valid values AUXUNLATCH, AUXWOUNLATCH, AUXALARM, or AUXLOCKDOWN. Default is disabled (no entry). Valid values BEEP, TTL1, TTL2 or DISABLE. Default Enabled 0-65535 secs. Default = 0 Valid values BEEP, TTL1, TTL2 or DISABLE. Default Enabled 0-65535 secs. Default = 0 Valid values BEEP, TTL1, TTL2 or DISABLE. Default Enabled 0-255. Default = 0 0-255 secs. Default = 3 Values 0-1. Where 0=Disabled, 1=Enabled. Default is Disabled. Values 0-1. Where 0=Disabled, 1=Enabled. Default is Disabled. Values 0-1. Where 0=Disabled, 1=Enabled. Default is Disabled. Valid values REX, TAMPER or REJECT. (Multiple entries separated by “,”). Default is REJECT. Valid values SHORT or LONG. SHORT is for a short beep and LONG is for a long beep. Default is no beeping on Accept Valid values AUTHACCESS, TTL1 or TTL2. Default is disabled. 0-4294967295. Default is 0 (zero) 0-4294967295. Default is 0 (zero) 0-4294967295. Default is 0 (zero) 0-4294967295. Default is 0 (zero) 0-4294967295. Default is 0 (zero) 0-4294967295. Default is 0 (zero) Valid values LOCAL, KEYPADSILENT, KEYPADBEEP, BITMASK, DATAMANGLE, or PASSTHROUGH. Default is Disabled. Valid values ASCII, ASCIIHEX or BINARY. Default is blank. www.ISONAS.com

25

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

seriallength serialtimeout serialstart1 serialstart2 serialend1 serialend2

Values 0, 1-64, or 255. Values 0 and 255 represent a variable length serial value. Value 1-64 represent a fixed length of that value. Default is 0 (zero). 0-255 (represents a timeframe of 1/16 of a second). Values of 0 and 255 represents no timeout (disabled). Default is 0 (zero). 0-255. Default is 255. 0-255. This value will be overridden with 255 if “serialstart1” is set to 255. A value of 255 represents a non-entry value. Default is 255. 0-255. Default is 255. 0-255. This value will be overridden with 255 if “serialstart1” is set to 255. A value of 255 represents a non-entry value. Default is 255.

Response: | [error detail]|

DOORGROUP Description: These commands are used to define the DoorGroup.

Syntax: [] | | doorgroupname area

a unique name of a doorgroup a name of an area

Response: | [error detail]|

DOORGROUPMEMBER Description: These commands manage the names doors that are assigned to doorgroups.

Syntax: | | doorgroupname a unique name of a doorgroup doorname a unique name of an door ISONAS Security Systems 303-567-6516

www.ISONAS.com

26

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Response: | [error detail]|

GROUPNAME Description: These commands manage the definition of names of groups that people are assigned to.

Syntax: []| []| groupname a unique name of a group that people will be assigned to area Defaults to COMMON if not given.

Response: | [error detail]|

HOLIDAYS Description: Defines a particular day of the year to be a holiday.

Syntax: [][]| | holidayname a unique name of a holiday holidaydate the date of the holiday in the format of mm/dd/yyyy area Defaults to COMMON if not given allareaflag 0 | 1 does not | does apply to all areas. Defaults to 0

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

27

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

IDFILE Description: These commands manage the definition of people within the application

Syntax: [][][][] [] []…. []| | [][][][][] [][]…. []| Note: 1) UPDATE applies changes to the record with the matching id string value. 2) If you want to omit a field you must still supply the characters if want to update a subsequent field 3) If you specify two double quotes as the updatevalue for a field it will be cleared. For example | Would clear the last name of the person with id string “a123”, leaving other fields unchanged. lastname firstname middleinitial idstring area

ssn user1-20

the last name of the person the first name of the person the middle initial of the person the unique id of the person (cannot be duplicated) The area assigned to the person as a global grouping of entities in the Access Control System, like, doors, people, shifts, people groups, etc. Generally, thought of in terms grouping by geographical area the social security number of the person there are up to 20 user defined fields that can be assigned a text value

Response: | [error detail]|

IDFILE Image Files Description: This command manages the definition image files (pictures) assigned to people. There can be up to 9 image files assigned to each person. The person must be defined before image files can be assigned.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

28

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Syntax: [][][] [][][][][][| Note: 1) UPDATE applies changes to the record with the matching id string value. 2) If you want to omit a field you must still supply the characters if want to update a subsequent field – Skips update of field value. 3) If you specify two double quotes as the updatevalue for a field it will be cleared. For example | Would clear the definition of the first image file name field, skip updates to the next two image file name fields and updates the fourth image file name field with “ImageFile4”. idstring ImageFile1-9

the unique id of the person there are up to 9 image files that can be assigned to a person. The first image file (ImageFile1) is assigned to image file index 1 in the Crystal Administrator image file for the person. The second image file is index 2, and so on. (Length is 80)

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

29

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

GROUPS Description: These commands manage the assignment of people to groups

Syntax: | | idstring the unique of the person to be assigned to the specified group name groupname the name of the group to which the person will be assigned to

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

30

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

BADGES Description: These commands manage the assignments of badge ids/credentials to people.

Syntax: [][] [][][][]| | [][][] [][]| idstring the unique idstring of the person to be assigned the badge number/credential badgenumber a unique badge number/credential id (1 - 4294967295) count limited specifies whether a badge number/credential has a limited number of uses; 0|1 for not count limited|count limited remaining uses the number of uses remaining if count limited is specified (0 999999) expiration flag indicates whether the badge number/credential will expire on a specified date; 0|1 , does not|does expire expiration date mm/dd/yyyy if expires; if expire flag is specified and this date is not specified (blank), the badge number/credential will expire now badgepinflag 0-7 The bits of this field have the following meanings when ‘on’: Bit 1 - badgenumber is valid when read as a badge (Default) 2 - badgenumber is valid when read from the integrated keypad 3 - badgenumber is valid when read from the serial comm. port guid The guid associated with the badgenumber in the following format: {00000000-0000-0000-0000-00000000000}

Response: | [error detail]|

GUIDs Associated with BADGES Description: These commands manage badge assignments by referencing their associated guid.

Syntax: | [][][] [][][]| guid The guid associated with the badgenumber in the following ISONAS Security Systems 303-567-6516

www.ISONAS.com

31

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

count limited remaining uses expiration flag expiration date

badgepinflag

badgenumber

format: {00000000-0000-0000-0000-00000000000} specifies whether a badge number/credential has a limited number of uses; 0|1 for not count limited|count limited the number of uses remaining if count limited is specified (0 999999) indicates whether the badge number/credential will expire on a specified date; 0|1 , does not|does expire mm/dd/yyyy if expires; if expire flag is specified and this date is not specified (blank), the badge number/credential will expire now 0-7 The bits of this field have the following meanings when ‘on’: Bit 1 - badgenumber is valid when read as a badge (Default) 2 - badgenumber is valid when read from the integrated keypad 3 - badgenumber is valid when read from the serial comm. port a unique badge number/credential id (1 - 4294967295)

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

32

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

SHIFTS Description: These commands define the time ranges in which groups of people will be valid for an admit at a door

Syntax: < validflag for Monday> < validflag for Tuesday> < validflag for Wednesday> < validflag for Thursday> < validflag for Friday> < validflag for Saturday>| | shiftname a unique name of a shift holidayflag 1 | 2 | 3 (normal only | holiday only | both) area area name validflag indicates whether the day of the week is valid/active for the shift; 0|1 invalid|valid starttime 1 + hundredths of a second since midnight (e.g. 2880001 = 8am) (range 1-8640000) endtime 1 + hundredths of a second since midnight (range 1-8640000)

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

33

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

PERMISSION Description: These commands mange the definitions of permissions or rules at doors.

Syntax: []| | | | | Note: Door Names and Door Group Names must be unique within the system. Groupname the name of the group to which the people are assigned to that will be valid at time door/door group shiftname the unique name of a shift (timeframe) that the group of people will be valid at the door/door group doorname or doorgroup the name of a door or door group that the group of people within the specified shift (timeframe) will be admitted through modeflag 0 normal 1 lockdown 2 unlocked 3 unlocked badge appliestoflag 0 both 1 network 2 standalone permissiongroupname the name of a permission group that this permission will be assigned to

Response: | [error detail]|

PERMISSIONGROUP Description: These commands mange the definitions of permission groups.

Syntax: [ ]| | permissionroupname the name of the permission group startdate mm/dd/yyyy The earliest date at which the permissions in this ISONAS Security Systems 303-567-6516

www.ISONAS.com

34

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Enddate

group will be valid. If the start and end dates are not specified, the permissions are always valid mm/dd/yyyy The latest date at which the permissions in this group will be valid

APPLY Description: This command will “compile” and put into effect the permissions/rules defined. These permissions determine who has access through what doors and at what time. The “compile” process builds this information so that credentials can be validated when presented to the readers.

Syntax: []| []| compiletype scopeidentifier

0 | 1 | 2 | 3 | 4 | 5 | 6 | 13 for incremental | full | network | partial door | partial doorgroup | partial person | partial area | resend The name of an item that limits the scope of the compile

0 - Incremental compile – sends only change information to the controllers. The scope is the complete database. 1 - Full compile – tells the controllers to delete the local database and sends out the complete replacement database. The scope is the complete database. 2 - Network only compile – does not update the database in the controllers. The scope is the complete database. 3 - Partial compile – scope is limited to the door specified by scopeidentifier == doorname. 4 – Partial compile – scope is limited to the specified doorgroup specified by scopeidentifier == doorgroup 5 – Partial compile – scope is limited to the person specified by scopeidentifier == personuniqueid. 6 – Partial compile – scope is limited to the area specified by scopeidentifier == areaname. 13 – Resend – will resend the complete local database to a specified reader controller scopeidentifier== doorname The network compile option is provided for those cases where sending the standalone data to the controllers causes too much disruption of real time operations. The strategy is then to defer sending until a more convenient “quiet” time, at which either an incremental or full compile is done. Incremental and Full compile options always compile the entire database, the difference between them is only in what information is sent to the reader controllers. A Full compile sends everything. An incremental compile sends only changes. The system will only allow one compilation to be active at any time. If the compile is rejected because of another compile in process, it will be queued for automatic execution if the QUE form of the command has been given. The system prevents compilation if a previous compilation is still in process. Error 203 is returned if an Apply is attempted while another compilation has not finished. The Apply Que command will add the requested compilation to a queue of compilations which will be started automatically when the system is no longer busy/locked by a previous compilation. The meaning of the parameters is the same as for Apply. ISONAS Security Systems 303-567-6516

www.ISONAS.com

35

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

The ApplyQue command can always be used. If no compilation is currently underway, the current compilation will be started immediately. The disadvantage of using Apply Que is that if any compilation error or warning messages are generated they will NOT be returned to the calling program. The two architectures that may be used for compilation are: • Use Apply. Try a compilation and if an error 203 is returned, try again later. If 203 is not returned, the return shows any errors or warnings. • Use Apply Que. Error 203 is never returned. The compile will be done as soon as the system becomes available. Errors or warnings will not be returned to the calling application.

Response: | [error detail]|

ADMIT Description: This command will cause the specified door to unlatch the door lock for the “latch interval’ defined for that door and then relatch it at the end of the interval

Syntax: | doorname

unique name of the door that the “admit” will be applied to

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

36

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

UNLOCK Description: This command will cause the specified door to unlatch and remain unlatched until another command or action causes the door to change its state

Syntax: []| []| doorname unique name of the door that the “unlock” will be applied to doorgroup unique name of a door group.. all members will be unlocked If the optional parameter is specified, the lockdown will be “permanent”. It will stay in effect until it is explicitly overridden by a command to reset the door to normal mode of operation. The permanent state will ignore programmed changes to the door state which would be caused by the beginning or end of an automatic unlock shift, a badge unlock shift, or a scheduled event. Note: If a reader controller is operating in LOCAL mode and it receives an UNLOCK command it will be forced into HOST mode. Note: If one or more members of a door group can not be reached because the CSUP is not running or can not be modified because of authorization failure, they will not be modified and NO ERROR MESSAGE will be returned.

Response: | [error detail]|

LOCKDOWN Description: This command will cause the specified door to lock and remain locked until commanded to change its state

Syntax: []| []| doorname doorgroup

unique name of the door that the “lockdown” will be applied to unique name of a door group.. all members will be unlocked

If the optional parameter is specified, the lockdown will be “permanent”. It will stay in effect until it is explicitly overridden by a command to reset the door to normal mode of operation. The permanent state will ignore programmed changes to the door state which would be caused by the beginning or end of an automatic unlock shift, a badge unlock shift, or a scheduled event. ISONAS Security Systems 303-567-6516

www.ISONAS.com

37

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Note: If a reader controller is operating in LOCAL mode and it receives an LOCKDOWN command it will be forced into HOST mode for the duration of the lockdown. Note: If a reader controller is operating in LOCAL mode and it receives an UNLOCK command it will be forced into HOST mode. Note: If one or more members of a door group can not be reached because the CSUP is not running or can not be modified because of authorization failure, they will not be modified and NO ERROR MESSAGE will be returned.

Response: | [error detail]|

RESETNORMAL Description: This command will cause the specified door to resume its normal programmed operation in either Local or Host mode. Local and permanent overrides are reset. NOTE 1: In both Local and Host mode, if the door is in a Badge Unlock permission time, it will be latched even if an unlocking badge had previously been presented. NOTE 2: In Local mode, if the door is in an automatic Unlock permission shift, the door will unlock. In Host mode, the door will be locked until the next event that changes it’s condition. (A compile, CSUP restart or the beginning of a new Unlock permission shift.

Syntax: []| []| doorname doorgroup

unique name of the door to be reset to normal condition unique name of the door group.. all members will be set normal

The optional PERM modifier does not affect the operation of the command.

Response: | [error detail]|

SETHOSTOVERRIDE Description: This command will cause the specified door to go into Host mode with the override flag set. The door will be in a normal (latched) state and will admit valid credentials when presented.

Syntax: []| ISONAS Security Systems 303-567-6516 www.ISONAS.com

38

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

< SETHOSTOVERRIDE> []| doorname doorgroup

unique name of the door to be reset to normal condition unique name of the door group.. all members will be set normal

If the optional parameter is specified, the override will be “permanent”. It will stay in effect until it is explicitly overridden by a command to reset the door to normal mode of operation. The permanent state will ignore programmed changes to the door state which would be caused by the beginning or end of an automatic unlock shift, a badge unlock shift, or a scheduled event.

Response: | [error detail]|

SETLOCAL Description: This command will cause set the controller back to LOCAL mode operation if it is programmed to run in LOCAL mode but has been put into HOST mode by a manual operation (UNLOCK, LOCKDOWN). If the door is programmed to run in HOST mode and receives a SETLOCAL command it treats it as a RESETNORMAL command.

Syntax: | doorname doorgroup

unique name of the door to which the “setlocal” will be applied unique name of the door group.. all members will be set local

Response: | [error detail]|

PRESENTBADGE Description: This command will simulate a physical badge/credential presentation at the specified door. This is only effective with reader controllers running in HOST mode.

Syntax: | doorname unique name of the door that the “admit” will be applied to badgenumber a unique badge number/credential id that will simulate a physical badge/credential presentation at the door (1 4294967295) ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

39

Response: | [error detail]|

PRESENTGUID Description: This command will simulate a physical badge/credential presentation at the specified door. This is only effective with reader controllers running in HOST mode.

Syntax: | doorname unique name of the door that the “admit” will be applied to guid The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

40

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

QUEUE EMAIL Description: The QUEUE EMAIL command will queue up an email to be sent to the specified email address(es).

Syntax: [][]…[email_text]]] | Where: email_address is an email address or a list of email addresses separated by commas or semicolons. (maximum length is 8192 characters) delay is the number of seconds to wait before sending the email. After waiting for the delay, the system will send the email and will combine the text from any additional emails to the same address or address list (see limitation below) into a single email. email_subject Is the subject line that will be put on the email email_text The body of the email will contain the paragraphs of text specified. The maximum size for each paragraph is 1024 characters. There is a reserved token available when this command is being sent from the Script processor to the TCP/IP interface. The token may be used in place of either the or token. This token will be replaced by the date, time and explanation for the event that caused the Script processor to run the script. For example: [email protected]| In a script that is set to run whenever a door alarm event occurs will send an email (after waiting for 10 seconds). The email will be sent to the email address [email protected] and the content will be text with the date, time, door and type of alarm that occurred. If more than one alarm occurs before the message is sent, the email will have multiple paragraphs of text, one for each alarm. Limitation: For emails to be combined into a single email, the address list must be identical in both order and content. If they are not identical, the emails will be sent separately even if a given email address appears in both address lists.

Response: if the email is successfully queued for transmission [error detail]| Note: the ACK response only indicates that the email has been successfully queued for transmission, not that it has been successfully sent. If an email can not be successfully sent, the error will be recorded in the designated logfile for the TCP/IP interface.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

41

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

QUERY Description: The Query commands will retrieve detail information about the specified entity type. Some of these command will return multiple response messages and with the final message transmission signifying the completion of the response to the query.

BADGE

Description: Retrieves a list of all of the badges and pin codes assigned to a specified person.

Syntax: |

Response: [error detail]| The query badge command will produce a series of zero or more records containing the badges assigned to the specified individual, followed by an record as shown below. | Where badgeid idstring guid

is the badgeid is one the uniqueid of the specified person The guid associated with the badge id in the following format: {00000000-0000-0000-0000-00000000000}

|

ALL DOORS

Description: Retrieves a list of all of the doors within the application with their current states

Syntax: |

Response: [error detail]| | Where doorstatus is one of || doormode is one of ISONAS Security Systems 303-567-6516

www.ISONAS.com

42

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

alarmstatus

doorarea

These fields will be present only if the door is in an active alarm state. The fields will be any of: The status will be reported for if the controller supervisor is not running/connected for the door. is the AREA to which the door belongs

| The query of all doors will generate a series of responses (above DOORSTATUS), one for each door in the database. After all the door status records have been retrieved, the “END DOORSTATUS” response message will be issued.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

43

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

DOORS

Description: Retrieves the current state of the specified door

Syntax: | doorname the unique door name to retrieve the current state for

Response: [error detail]| | doorstatus is one of || doormode is one of alarmstatus These fields will be present only if the door is in an active alarm state. The fields will be any of: The status will be reported for if the controller supervisor is not running/connected for the door. doorarea is the AREA to which the door belongs

ISONAS Security Systems 303-567-6516

www.ISONAS.com

44

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

ALL DOORGROUPS

Description: This retrieves a list of all door groups defined in the application

Syntax: |

Response: [error detail]| The query of all door groups will produce a series of records, each containing the name of one door group, followed by a termination record as shown below: | | doorgroup the unique door group name . The query of all door groups will generate a series of responses (above DOORGROUPS), one for each door group in the database. After all the door group records have been retrieved, the “END DOORGROUPS” response message will be issued

DOORGROUP

Description: This retrieves the list of doors assigned to a specified door group

Syntax: | doorgroup the unique door group name

Response: [error detail]| The query of a door group will produce a series of records, each containing the name of a door that is a member of the door group, followed by a termination record as shown below: | | doorgroup the unique door group name doorname The unique door name assigned to the specified door group . The query of the door group’s member list will generate a series of responses (above DOORGROUP), one for each door group in the database. After all the door group member records have been retrieved, the “END DOORGROUP” response message will be issued ISONAS Security Systems 303-567-6516

www.ISONAS.com

45

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

GROUPNAMES

Description: Retrieves a list of group names that people can be assigned to

Syntax:

Response: [error detail]| The query of all group names will generate a series of records, each containing a groupname, followed by a completion record as shown below: | | groupname a unique name of a group that people are assigned to . | The query of the door group’s member list will generate a series of responses (above ALL GROUPNAMES), one for each door group in the database. After all the door group member records have been retrieved, the “END GROUPNAMES” response message will be issued

GROUP

Description: Retrieves a list of people assigned to a specific group name or a list of groups to which a person is assigned

Syntax: | | groupname a unique name of a group that people can be assigned to Idstring a unique id of a person

Response: [error detail]| Either query of a people group will produce a series of records, each containing the idstring/’uniqueid of one member of the group, followed by a completion record as shown below: | | groupname a unique name of a group that people can be assigned to idstring The unique idstring associated with a particular person (also referred to as the unique id) ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

46

. | The query of the people group’s member list will generate a series of responses (above GROUP), one for each people group in the database. After all the group member records have been retrieved, the “END GROUP” response message will be issued

ALL GROUPS

Description: Retrieves a list of people assigned to each group name within the application

Syntax: |

Response: [error detail]| The query of all groups will generate a series of records, each containing a groupname and a uniqueid of a member of the group, followed by a completion record as shown below: < idstring >| < idstring >| groupname a unique name of a group that people can be assigned to idstring The unique idstring associated with a particular person (also referred to as the unique id) . | The query of the all people group member lists will generate a series of responses (above ALL GROUPS), one for each people group in the database. After all the group member records have been retrieved, the “END GROUPS” response message will be issued

ALL SHIFTS

Description: Retrieves a list of all shift names defines within the application

Syntax: |

Response: [error detail]| The query of all shifts will generate a series of records, each containing a shift name, followed by a completion record as shown below: | | ISONAS Security Systems 303-567-6516

www.ISONAS.com

47

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

shiftname a unique name of a shift . | The query of the all shifts will generate a series of responses (above ALL SHIFTS), one for each shift name in the database. After all the group member records have been retrieved, the “END SHIFTS” response message will be issued

SHIFT

Description: Retrieves the definition of the specified shift

Syntax: | shiftname a unique name of a shift

Response: [error detail]| < validflag for Monday> < validflag for Tuesday> < validflag for Wednesday> < validflag for Thursday> < validflag for Friday> < validflag for Saturday> | shiftname a unique name of a shift holidayflag 1 | 2 | 3 (normal only | holiday only | both) area area name validflag indicates whether the day of the week is valid/active for the shift 0|1 invalid|valid starttime 1 + hundredths of a second since midnight (e.g. 2880001 = 8am) (range 1-8640000) endtime 1 + hundredths of a second since midnight (range 1-8640000)

ISONAS Security Systems 303-567-6516

www.ISONAS.com

48

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

ALL HOLIDAYS

Description: Retrieves a list of all the holiday names with their associated dates

Syntax: |

Response: [error detail]| The query of all holidays will produce a series of records, one for each defined holiday, followed by a completion record as shown below: | | holidayname a unique name of a shift . The query of the all holidays will generate a series of responses (above ALL HOLIDAYS), one for each holiday in the database. After all the holiday records have been retrieved, the “END HOLIDAYS” response message will be issued

ALL IDFILE

Description: Retrieves a list of all the people defined within the application

Syntax: |

Response: [error detail]| The query of all idfile will generate a series of records, each containing the idstring of one person, followed by a completion record as shown below: < idstring >| < idstring >| idstring a unique idstring for a person (unique id) . | The query of the all people will generate a series of responses (above ALL IDFILE), one for each person in the database. After all the people records have been retrieved, the “END IDFILE” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

49

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

IDFILE

Description: Retrieves the definition of the specified person

Syntax: | idstring

a unique idstring for a person (unique id)

Response: [error detail]| The query of a uniqueid will generate the following record: […. ]| lastname the last name of the person firstname the first name of the person middleinitial the middle initial of the person idstring the unique id of the person (cannot be duplicated) area the area in which the person is assigned to ssn the social security number of the person user1-20 there are up to 20 user defined fields that can be assigned a text value

IDFILE IMAGES

Description: Retrieves a list of image file names associated to the specified person

Syntax: | idstring a unique idstring for a person (unique id)

Response: [error detail]| The query of images will generate the following record: < idstring > | file1, … , file9 the image files associated with the specified idstring(unique id)

ISONAS Security Systems 303-567-6516

www.ISONAS.com

50

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

ALL BADGES

Description: Retrieves all badge numbers defined within the application

Syntax: |

Response: [error detail]| The query of all badges will generate a series of records, each containing a badgenumber and persons idstring, followed by a completion record as shown below: < badgenumber >< idstring >< badgepinflag >| badgenumber idstring badgepinflag

guid

a unique badge number/credential id (1 - 4294967295) the unique of the person to be assigned the badge number/credential 0-7 The bits of this field have the following meanings when ‘on’ 1 - badgenumber is valid when read as a badge 2 - badgenumber is valid when read from the integrated keypad 3 - badgenumber is valid when read from the serial comm. port The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

. | The query of the all badges will generate a series of responses (above ALL BADGES), one for each badgenumber in the database. After all the badge records have been retrieved, the “END BADGES” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

51

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

BADGE BADGEID

Description: Retrieves the assigned person and the usage of the specified badge number

Syntax: < BADGEID>< badgenumber >| badgenumber a unique badge number/credential id (1 - 4294967295)

Response: [error detail]| The query of a badge by badgenumber will produce a record containing the idstring of the person to whom the badge is assigned: < badgenumber >< idstring >< badgepinflag > | badgenumber a unique badge number/credential id (1 – 4294967295) idstring unique idstring of the person assigned the badgenumber/credential badgepinflag 0-7 The bits of this field have the following meanings when ‘on’ 1 – badgenumber is valid when read as a badge 2 – badgenumber is valid when read from the integrated keypad 3 – badgenumber is valid when read from the serial comm. port countlimitedflag 0 – not count limited 1 – count limited remaining uses the number of uses remaining expiration flag 0 – does not expire 1 - expires expiration date the expiration date guid The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

ISONAS Security Systems 303-567-6516

www.ISONAS.com

52

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

BADGE UNIQUEID

Description: Retrieves the primary badge number and usage of the specified idstring for a person

Syntax: | idstring the unique idstring of the person

Response: [error detail]| The query of a badge by idstring will produce a record containing the badgenumber assigned to the person identified by the idstring: < idstring >< badgenumber >< badgepinflag > | badgenumber a unique badge number/credential id (1 - 4294967295) idstring the unique idstring of the person to be assigned the badge id/credential badgepinflag 0-7 The bits of this field have the following meanings when ‘on’ 1 - badgenumber is valid when read as a badge 2 - badgenumber is valid when read from the integrated keypad 3 - badgenumber is valid when read from the serial comm. port countlimitedflag 0 – not count limited 1 – count limited remaining uses the number of uses remaining expiration flag 0 – does not expire 1 - expires expiration date the expiration date guid The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

ISONAS Security Systems 303-567-6516

www.ISONAS.com

53

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

BADGE GUID

Description: Retrieves the assigned person and the usage of the specified badge number

Syntax: < GUID>< guid >| guid The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

Response: [error detail]| The query of a badge by badgenumber will produce a record containing the idstring of the person to whom the badge is assigned: | guid The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000} badgenumber a unique badge number/credential id (1 – 4294967295) idstring unique idstring of the person assigned the badgenumber/credential badgepinflag 0-7 The bits of this field have the following meanings when ‘on’ 1 – badgenumber is valid when read as a badge 2 – badgenumber is valid when read from the integrated keypad 3 – badgenumber is valid when read from the serial comm. port countlimitedflag 0 – not count limited 1 – count limited remaining uses the number of uses remaining expiration flag 0 – does not expire 1 - expires expiration date the expiration date

ISONAS Security Systems 303-567-6516

www.ISONAS.com

54

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

PERMISSIONS

Description: Retrieves all of the defined permissions

Syntax: |

Response: ERROR>[error detail]| The query of permissions will produce a series of records, each containing a permission record, followed by a termination record as shown below: | | doormode one of NORMAL | UNLOCK BADGE | UNLOCK AUTOMATIC | LOCKDOWN groupname the name of the group to which the people are assigned to that will be valid at time door/door group shiftname the unique name of a shift (timeframe) that the group of people will be valid at the door/door group doorname or doorgroup the name of a door or door group that the group of people within the specified shift (timeframe) will be admitted through ioprofile the name of an io profile or blank if unassigned applies NETWORK|STANDALONE|BOTH | The query of the all Permissions/Rights will generate a series of responses, one for each permission/right in the database. After all the permission/right records have been retrieved, the “END PERMISSIONS” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

55

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

HISTORY

Description: Retrieves historical records within the parameters specified within the command issued

Syntax: [][ | startdate Specifies the start date for retrieving historical records: mm/dd/yyyy starttime Specifies the start time range of the start date for retrieving historical records; either hh:mm:ss or nnnnnnn where nnnnnnn is an integer giving the number of 1/100ths of a second + 1 since midnight (i.e., 2880001 = 8:00:00 am). enddate Specifies the end date for retrieving historical records: mm/dd/yyyy – date cannot be less than the start date endtime Specifies the end time range of the end date for retrieving historical records; either hh:mm:ss or nnnnnnn where nnnnnnn is an integer giving the number of 1/100ths of a second + 1 since midnight (i.e., 2880001 = 8:00:00 am). idstring Specifies only those historical records pertaining to this person be retrieved doorname Specifies only those historical records pertaining to this door be retrieved

Response: [error detail]| The system will report the events that occurred within the specified date time interval. If a filter value has been specified for either a specific door or a specific individual, only events that match the filter value will be reported. The messages will be in the following format: [ additional data depending on the event as listed below] | The following event types are reported: | | | | | | | | 3 | | 3

The BadgeId for LOCKDOWN, UNLOCKED and NORMAL RESET will be 0 unless the event was triggered by a badge presentation. ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

56

| | | | | | | | | | |

doorname badgenumber Fullname idstring guid

the name of a door at which the historical event took place The badge number involved in creating the historical event The expanded name of the person associated with creating the historical event The unique idstring of the person that is assigned the badgenumber The guid associated with the badge number in the following format: {00000000-0000-0000-0000-00000000000}

The time will be reported in the same format as the request. | The query of the history will generate a series of responses (above), one for each historical event within the criteria specified in the database. After all the history records have been retrieved, the “END HISTORY” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

57

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

IO MODULES

Description: Retrieves the definition, current connected status, current active alarm status and input and output register values of all IO Modules within the application. Note that the values for the input and output registers will only be meaningful if the IOModule is currently connected.

Syntax: |

Response: [error detail]| The query of ALL IOMODULES will produce zero or more records of the following format: | modulename The unique name of an IO Module ipaddress The IP Address assigned to the IO module port The port number that will be used to establish an IP connection on unit The specific unit number that will be managed through this ipaddress/port connection numinputpoints The number of input points available in this unit of the IO module numoutputpoints The number of output points available in this unit of the IO module pollinginterval The number of seconds between polls for retrieving input point statuses connected 0|1 for not connected|connected inputregister Unsigned 4 byte integer showing the on/off status of up to 32 input points outputregister Unsigned 4 byte integer showing the on/off status of up to 32 output points activealarm 0|1 for no active alarm|active alarm for one or more of the input or output points inputdisableflags Unsigned 4 byte integer showing the disabled/enabled status of up to 32 input points (1 = disabled, 0 = enabled) inputdisarmflags Unsigned 4 byte integer showing the disarmed/armed status of up to 32 input points (1 = disarmed, 0 = armed) outputdisableflags Unsigned 4 byte integer showing the disabled/enabled status of up to 32 output points (1 = disabled, 0 = enabled) outputdisarmflags Unsigned 4 byte integer showing the disarmed/armed status of up to 32 output points (1 = disarmed, 0 = armed) ISONAS Security Systems 303-567-6516

www.ISONAS.com

58

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

The query of the IO modules will generate a series of responses (above), one for each IO module in the database. After all the IO module records have been retrieved, the “END IOMODULES” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

59

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

IOMODULE

Description: Retrieves information about the specified IO point for the IO Module

Syntax: | modulename The unique name of an IO Module ioindex The input or output point that information will be returned for

Response: [error detail]| The query of an IOMODULE will produce the following response: | | modulename The unique name of an IO Module ioindex The input or output point that information will be returned for label The name assigned to the particular IO point historylogflag 0=no history logging, 1=log IO point activation, 2=Log IO point deactivation, 3= log IO point activation and deactivation alarmflag 0=no alarm activation, 1=alarm activation on IO point activation, 2= alarm activation on IO point deactivation, 3= alarm activation on IO point activation and deactivation disableflag (1 = disabled, 0 = enabled) disarmflag (1 = disarmed, 0 = armed)

|

Response: [error detail]| The query of an IOMODULE will produce the following response: | modulename The unique name of an IO Module inputregister A 4 byte integer showing the on/off status of up to 32 input points outputregister A 4 byte integer showing the on/off status of up to 32 output points activealarmflag 0|1 for no active alarms |active alarm ISONAS Security Systems 303-567-6516

www.ISONAS.com

60

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

inputdisableflags outputdisableflags inputdisarmflags outputdisarmflags

Unsigned 4 byte integer showing the disabled/enabled status of up to 32 input points (1 = disabled, 0 = enabled) Unsigned 4 byte integer showing the disabled/enabled status of up to 32 output points (1 = disabled, 0 = enabled) Unsigned 4 byte integer showing the disarmed/armed status of up to 32 input points (1 = disarmed, 0 = armed) Unsigned 4 byte integer showing the disarmed/armed status of up to 32 output points (1 = disarmed, 0 = armed)

| This query will produce a zero or more responses of the following form: [ or ] | modulename The unique name of an IO Module ioindex The input or output point that information will be returned for label The name assigned to the particular IO point historylogflag 0=no history logging, 1=log IO point activation, 2=Log IO point deactivation, 3= log IO point activation and deactivation alarmflag 0=no alarm activation, 1=alarm activation on IO point activation, 2= alarm activation on IO point deactivation, 3= alarm activation on IO point activation and deactivation pointstatus 0 | 1 showing the current value of the I/O point activealarmflag 0 | 1 for no active alarm | active alarm disableflag 0 | 1 for enabled | disabled disarmflag 0 | 1 for armed | disarmed

The input points will be listed first, followed by the output points. The final record will be: < END IOMODULE>

STATUS

Description: Retrieve the status of all of the controller supervisors and IO supervisors

Syntax: |

Response: The query status will produce zero or more records of the following format: [error detail]| |

ISONAS Security Systems 303-567-6516

www.ISONAS.com

61

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

| csupname hostname ipaddress number_controllers max_controllers number_IOSupervisors max_IOSupervisors number_stacked_commands

error_count

The unique name of a controller supervisor The name of the host computer where the csup is running The default IP address of the PC/Server the CSUP is running on The number of readers currently connected to and communicating with The number of readers this CSUP should be connected to and communicating with The number of IO Supervisors currently connected to and communicating with The number of IO Supervisors this CSUP should be connected to and communicating with a measure of the number of records waiting to be read in and processed by the reader controller. If this number is greater than 1 it typically is the standalone database of timezones and authorized badges that is being sent to the reader controllers as a result of the most recent compile of permissions.; The number of commands queued up to be sent to readers controlled by this CSUP the number of errors that have been encountered by the CSUP since the last RESET. (Note, a compile does a reset, resets can be manually invoked from the CSUP screen, and a reset will be done every Saturday at midnight.)

| | iosupname hostname ipaddress number_controllers max_controllers

The unique name of an IO supervisor The name of the host computer where the iosup is running The default IP address of the PC/Server the IOSUP is running on The number of IOModules currently connected to and communicating with The number of IOModules this IOSUP should be connected to and communicating with

| The query of the status of all controller supervisors will generate a series of responses (above), one for each controller supervisor in the database. After all the controller supervisor records have been retrieved, the “END STATUS” response message will be issued

ISONAS Security Systems 303-567-6516

www.ISONAS.com

62

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

ACTIVE ALARMS

Description: Retrieve all active alarms for reader controllers and IO modules.

Syntax: |

Response: The query status will produce zero or more records of the following formats: [error detail]| | | | | | | |

The final record will be: |

CLEAR ALARMS Description: The command will clear all active alarms for a specified DOOR or for a specified point of an IOMODULE. If a door or IOModule point is specified, only the alarm(s) for the specified door or point are cleared, other active alarms are not affected. If the ALL parameter is specified, all alarms will be cleared.

Syntax: | | | ISONAS Security Systems 4720 Walnut St, Suite 200 303-567-6516 www.ISONAS.com Boulder, CO. 80301 USA

63

| |

doorname Doorgroupname iomodulename pointindex

The unique name of a door The unique name of a doorgroup The unique name of an iomodule The index of the input or output point for which all active alarms are to be cleared.

SET IOMODULE Description: The command will activate/deactivate the IO points of a particular IO module

Syntax: [[]| modulename The unique name of an IO Module selectionmask a series of bit values ( zeroes and ones) that shows which output points should be included in the set command. The rightmost bit value corresponds to output point index 1. Bit positions where the bit value is one are included. Bit positions where the bit value is zero are excluded. Register a series of bit values that identifies whether the output point should be forced on (1) or off (0). Bit values at indexes where the selection mask is zero are ignored. R1 … r32 define the reset intervals (in seconds). If less than 32 reset values are specified, the system propagates the last reset value. Values may be separated by one or more spaces. A reset value of zero causes the system NOT to reset the output point. A non zero reset value causes the system to reverse the setting after the specified number of seconds. The maximum reset value is 254. (The value 255 is used internally by the system to mean “until the end of the shift” when Output Business rules are used to set the output points. P1, … , p32 define the priorities for each individual point. If less than 32 priority values are specified, the system propagates the last priority value. Priority values must be in the range 0-255. doorname an optional field specifying a doorname. If the IO Module is a Thyssen Krupp elevator system, the doorname identifies the Data Entry Device (DED) to which the io data values should be sent For example: | This command will set output point indexes as follows: ISONAS Security Systems 303-567-6516

www.ISONAS.com

64

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

Index 1 2 3 4 5 6 7 8

Setting off off not set on on on not set on

with a reset after 10 seconds and a priority of 50 with a reset after 10 seconds and a priority of 50 with a reset after 5 seconds and a priority of 50 with a reset after 5 seconds and a priority of 50 with a reset after 200 seconds and a priority of 50 with ar reset after 200 (propagated) and a priority of 100 (propagated)

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

65

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

SETLOGGING Description: Sets debug logging on or off. If logging is on, events within the interface will be recorded to the logfile. (The name of the logfile can be set within the configuration screen.). If logging is on, the interface will also activate logging within the IADI.dll component, which is used by SNMP for some commands. This log file is named: IADILog.txt.

Syntax: | loggingvalue 0|1 for logging off|on

Response: | [error detail]|

ENABLE Description: The ENABLE command will enable IO Points for normal operation if they have previously been put into a DISABLE state.

Syntax: []| []| []| []| []|

The fields are optional. If given, they limit the operation to the specified typecode. typecode iogroupname iomodulename pointindex

The specified typecode to which to limit the operation The name of an IOGroup The name of an IOModule The index value {1 – 32] of the selected input or output point

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

66

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

DISABLE Description: The DISABLE command will disable IO Points. In the disabled state the points are ignored. Changes in the input state are not recorded or reported, and commanded changes in the output state are not carried out.

Syntax: []| []| []| []| []|

The fields are optional. If given, they limit the operation to the specified typecode. typecode iogroupname iomodulename pointindex

The specified typecode to which to limit the operation The name of an IOGroup The name of an IOModule The index value {1 – 32] of the selected input or output point

Response: | [error detail]|

ARM Description: The ARM command will ARM IO Points for normal operation if they have previously been put into a DISARMed state.

Syntax: []| []| []| []| []|

The fields are optional. If given, they limit the operation to the specified typecode. typecode ISONAS Security Systems 303-567-6516

The specified typecode to which to limit the operation www.ISONAS.com

67

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

iogroupname iomodulename pointindex

The name of an IOGroup The name of an IOModule The index value {1 – 32] of the selected input or output point

Response: | [error detail]|

DISARM Description: The DISARM command will DISARM IO Points. Changes in the input state are not recorded or reported, and commanded changes in the output state are not carried out. The system handling of DISABLEd and DISARMed points is the same. Disable is intended for relatively static conditions such as taking a point “out of the system” because it is behaving badly until it is repaired. The DISARM/ARM capability provides a convenient way to change the behavior of points based on shifts and other more dynamic events. A typical usage would be to have a motion detector which is disarmed during the day but which is armed and programmed to create an alarm condition “after hours”.

Syntax: []| []| []| []| []|

The fields are optional. If given, they limit the operation to the specified typecode. typecode iogroupname iomodulename pointindex

The specified typecode to which to limit the operation The name of an IOGroup The name of an IOModule The index value {1 – 32] of the selected input or output point

Response: | [error detail]|

ISONAS Security Systems 303-567-6516

www.ISONAS.com

68

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

SET TTL Description: The SET TTL command will set the specified TTL output line of the specified reader controller to the specified value (on or off). Note that the TTL lines are normally held at 5 volts when they are “off” and go to zero volts when they are “on”. (This causes them to go “on” if wires are cut).

Syntax: []| |

doorname resetinterval

(where n is 1 or 2)

The name of the specified reader controller An integer specifying the number of seconds after which the TTL signal will turn OFF or a time interval specified as hh:mm:ss

Response: | [error detail]|

QUEUE SCRIPT Description: The QUEUE SCRIPT command will add a specified script to a queue with a start time as specified. The start time must be in the future if it is given as an absolute time. If the script can be successfully added to the queue, the system returns a unique queue id value (an integer). That value can be used by the DEQUEUE SCRIPT command to remove the script from the queue before it is executed.

Syntax: []| |

scriptname date time interval

The name of the script to be scheduled The day specified as mm/dd/yyyy If not given, the current date is assumed The time specified as hh:mm:ss where hh is 00 to 23 A time interval specified as an integer number of seconds or as hh:mm:ss where hh is 00 to 23

Response: | Where n is a unique integer value. ISONAS Security Systems 303-567-6516

www.ISONAS.com

69

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

[error detail]|

DEQUEUE SCRIPT Description: The DEQUEUE SCRIPT command will remove a script from the queue before it is executed.

Syntax: | | | | The command will remove the specified instance of the script from the queue if the queueid value is given. It will remove the earliest instance if the keyword is specified and the latest instance if the keyword is given. If is specified, the command will remove all instances of the script. scriptname queueid

The name of the script to be removed from the queue The unique integer that was returned when the script was QUEUEd for execution

Response: | [error detail]|

Error Table INRServ will execute commands as they are received. If errors are encountered a response of the following form will be sent: [ additional information depending on the type of error encountered ] | The following error codes apply to all commands except the APPLY command: 02 Internal Error (BCOM write error – probable cause – CSUP not available) 03 Feature not yet implemented 05 Access Denied 08 Insufficient Memory 30 Entry Not Found 33 Record Not Available 35 Record Not Found 37 File Not Open 40 Creates Duplicate Key ISONAS Security Systems 303-567-6516

www.ISONAS.com

70

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

43 Record Is Already Held 75 Invalid Field Type Descriptor 101 Invalid Door Model 102 Invalid Door Direction 103 Invalid Mode 104 Invalid Applies To 105 Invalid AREA Specified 106 Invalid Door or Controller Supervisor not running 107 Invalid IOGroup name 150 Referential Integrity Violation 200 Authorization Failure – not authorized 201 IOSUP is not running 202 Internal error – see compile log file for details 203 APPLY locked out – another process has started a compile 204 IOSUP not connected 205 IOMulticlient send error 210 Could not delete item – referential integrity constraint (item is referenced from another database table) 211 Could not delete Supervisor because it is defined to run as a Windows Service 212 Invalid Script name 213 Could not remove specified Script from the Queue 214 Invalid date range The APPLY command can have multiple warnings and/or errors occur. The error return is a one byte field with bits set to show if any of the error or warnings have been encountered. A zero return indicates no errors or warnings were encountered. The bits have the following meaning, with bit 1 as the low order (00000001) bit: Bit 1 could not find person in group Bit 2 could not find shift Bit 3 could not find door or server Bit 4 could not find periodic action Bit 5 reader controller left in unusual state at the end of the day. May cause inconsistent or incorrect behavior when the next day has a different holiday status. Bit 6 illegal shift overlap for special shifts Bit 7 exceeded maximum timezones or badge count or a badge has an illegal pin code Bit 8 internal error – see compile log file for details A recommended technique if these errors are encountered is to use the Isonas Administrative program and do a full compile of the same permissions table. Additional error information will be output in that environment to pinpoint the cause of the error.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

71

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

APPENDIX A – AES Encryption Library A dll library that provides “C” callable entry points that perform AES encryption and decryption is located in the ISONAS installation directory: cbx_enc_2_0.dll Here are the constants and entry points for the library: #define ENC_MODE_CFB1 #define ENC_TYPE_AES #define ENC_SUCCESS #define BAD_KEY_MAT #define BAD_CIPHER_MODE #define BAD_CIPHER_STATE #define BAD_INPUT_LEN #define BAD_PARAMS #define BAD_IV_MAT #define BAD_ALIGN32 #define ENC_ERR_NOMEM #define ENC_ENCRYPT_ERR #define ENC_DECRYPT_ERR #define ENC_NO_INIT_VEC #define ENC_FATAL_ERROR // from WinSock.h; #define SOCKET_ERROR int__cdecl VC_Init( int char char int int PVOID );

mode, *initVector, *key, keyLength, encryptiontype, *ptrHandle

3 2 0 -2 -4 -5 -6 -7 -8 -10 -12 -13 -14 -16 -17

// Use CFB1 mode // Use AES cipher // Function returns OK // Key Length Error // Unsupported cipher // Invalid cipher parameters // Invalid array lengths // Invalid parameter // Invalid Init vector // Alignment error // No memory available // Encryption error // Decryption error // Did not receive Init vector // Unrecoverable error

-1

// use ENC_MODE_CFB1 // 16 byte initialization vector // 64 byte cstring specifying 32 byte key // == 256 – length in bits // use ENC_TYPE_AES // handle returned for input to other functions

Return values: BAD_KEY_MAT BAD_PARAMS ENC_ERR_NOMEM ENC_FATAL_ERROR ENC_SUCCESS int_cdecl VC_Encrypt( PVOID handle, char *initVector, char *plainText, char *cipherText, int *textLen ); Return values: ISONAS Security Systems 303-567-6516

www.ISONAS.com

72

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA

BAD_PARAMS BAD_INPUT_LEN BAD_CIPHER_STATE BAD_ALIGN32 ENC_FATAL_ERROR ENC_SUCCESS int_cdecl VC_Decrypt( PVOID handle, char *initVector, char *cipherText, char *plainText, int *textLen ); Return values: BAD_PARAMS BAD_INPUT_LEN BAD_CIPHER_STATE BAD_ALIGN32 ENC_FATAL_ERROR ENC_SUCCESS

LOGON Process with encryption enabled When the client program connects to the server, the server will immediately send the following message back to the client in plain text: | The client should then send a 16 byte encryption initialization vector to the server, followed by the encrypted logon message as described earlier in this document.

ISONAS Security Systems 303-567-6516

www.ISONAS.com

73

4720 Walnut St, Suite 200 Boulder, CO. 80301 USA