Telephone Entry System Remote Programmer for Android
Kotlin
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Telephone Entry System Remote Programmer for Android

License Build Status CircleCI License

TES Remote Programmer

Program your Telephone Entry System remotely (off-site) using your phone.

Most Telephone Entry Systems can be programmed from the front keypad or remotely from an off-premise location using any touch-tone phone. TES Remote Programmer streamlines the often cumbersome remote programming process by providing data entry screens and automated dial-in options.

DoorKing (DKS) & Linear

By default, TES Remote Programmer is configured to work with the DoorKing 1802, 1802-EPD, 1803, 1808, 1810 and 1819 as well as the Linear AE-100 and AE-500 systems, additional configurations can be created for most systems supporting remote programming.

Directory Code

Please note that all default configurations are set for 3-digits directory code length. If your system is setup differently, you will need to modify the default configuration and re-import it. Look for all Directory Code fields and modify their size attributes accordingly.

Usage

Main Activity

In the main activity screen enter the entry system's phone number and master code, then select one the programming options.

Programming Activity

In the programming activity screen fill out the fields and click the Dial floating button (if available) to dial the programming in or the Dial floating button to scroll through the manual (keypad) steps.

Configurations

Configurations

To switch configuration, choose Configurations under the toolbar menu and select the desired configuration.

To import a new configuration, select Import in the Configurations dialog.

New Configurations

Custom configurations can be created using JSON.

View Examples

Parameters

Parameters define the configuration's global settings.

"params": {
  "name": "DKS 1802-EPD",
  "type": "dks",
  "ack": "*",
  "alt": "#",
  "end": "0 + #",
  "size": 4
}
Property Description Required
name The name of the configuration. Yes
type The system's type, either dks or linear. See note below. Yes
ack The key used to acknowledge or terminate programming steps. Most systems use the * or # keys. Yes
alt They key used to in place of numbers when applicable. DKS systems use the # key No
begin The begin programming manual sequence. (e.g. Linear uses 0 and 2 pressed together) No
end The end programming manual sequence. (e.g. DSK uses 0 and # pressed together.) No
size The size (number of digits) of the master code. Most systems use 4 or 6. Yes

The type is used to determine how letters are converted to digits in alphanumeric (alpha) fields, both DKS and Linear use different methodologies. It is also used to allow numeric values with leading zeros (e.g. 001) on DKS systems.

Options

Options define the data used to create programming activity screens in the app.

For example, the system's manual lists the steps to Programming 7-digit Phone Numbers as:

  1. Press *01 and enter Master Code.
  2. Enter a Directory Code then press *.
  3. Enter a 7-digit Phone Number then press *. If the number is less than 7-digits, enter # in the empty spaces.
  4. Press 0# TOGETHER when finished.

which would translate into:

Options

"opts": [
  {
    "title": "Add 7-digit Phone Number",
    "fields": [
      {
        "hint": "Directory Code",
        "size": 3
      },
      {
        "hint": "Phone Number",
        "size": 7,
        "alt": true
      }
    ],
    "dtmf": "*01[MASTER],[FIELD:1]*,[FIELD:2]*"
  }
]

Step 4 is configured in the end parameter since it only applies to manual/keypad programming.

Property Description
title The title of the option.
fields See Fields
dtmf See DTMF
nodial Indicate that remote programming is not available. Steps must be executed manually at the keypad.
nosteps Indicate that manual/keypad steps are not available. Programming must be executed remotely.

All are required, except nodial and nosteps which are mutually exclusive.

Fields

"fields": [
  {
    "hint": "Directory Code",
    "size": 3
  },
  {
    "hint": "Phone Number",
    "size": 7,
    "alt": true
  }
]

Fields represent the data entry text fields on option screens.

Property Description Required
hint Set the hint/label of the field. Yes
size Set the size of the field. Yes
minSize Set the minimum size of the field. If set, size is the maximum size of the field. No
alpha Set to true for alphanumeric fields. No
min Set the minimum value of a numeric field. No
max Set the maximum value of a numeric field. No
digits Set digits that are allowed. (e.g. DKS uses 1234567 for days of the week: Sun=1... Sat=7) No
alt Set to true if the field accepts the alt parameter value in place of a digit. No
zeros Set to true by default when the type parameter is dks. Allows numeric values with leading zeros (e.g. 001), based on the size. No

DTMF

"dtmf": "*01[MASTER],[FIELD:1]*,[FIELD:2]*"

DTMF represent the dialing sequence for the programming steps. A comma (,) should be used to specify a pause in the dialing sequence.

The following markers will be substituted by their actual values upon dialing.

Marker Description
[MASTER] Substituted with the Master Code
[FIELD:X] Substituted with the field's value, where X is the field number in the array.
'Foo bar' Displays the enclosed text as a manual step. The nodial option must be set.

Validation

Imported configurations will be validated. While the validation is not perfect, it should be good enough to spot most syntax errors.

Please sure to use a JSON editor to make creating configurations a whole lot easier.

When in doubt be sure to look at the default configurations.