Anonymousprnt::Y
Find:

   |


 
 
Click on images to see them in full screen

DTSI V1

Introduction

The Door Tablet server interfaces with the world’s most common platforms: MS Exchange, IBM Domino and Google Calendar. Many other scheduling systems could also be integrated with Door Tablet using the interface defined here. Our software makes little demand on your system as most of Door Tablet functionality is contained within it. For the purpose of this document, your scheduling system is the "target server".

What does Door Tablet require from your system?

  1. Meeting spaces - a list of meeting spaces which participate
  2. Meetings - the list of reservations or meetings which are confirmed for a resource on a particular day, by default today
  3. Create - insert a reservation for a given resource that starts now and lasts x minutes (not required for Read Only)
  4. Update - given a reservation, change its end time to terminate or extend it (not required for read only)

Why use the DTSI
If you have an in-house developed system or a facilities system that you would like to connect to Door Tablet, you do not need to engage in complicated integration challenges. Simply ask your in-house developers to implement the interface as defined here and Door Tablet will work right away. This also eliminates the need for you to make any part of your existing system available to us. Furthermore, the requirements are simple and low cost thus enabling you to deploy Door Tablet easily, and in a short time.

Read only implementations
We introduced the concept of a Read Only interface where a DTSI does not offer the ability to create appointments, or modify them in any way. The Read Only implementation also prevents the automatic termination of appointment or the ability to extend these. One reason to have a Read Only system is that it is simpler and costs less to implement. You may also wish to use this capability as a way to phase the implementation of a full DTSI response from your server.


Configure Door Tablet
If the target system responds exactly as defined by this document, no further work will be required when deploying Door Tablet. When configuring Door Tablet select the following technology: "Door Tablet Standard Interface (DTSI)" and add the following parameters: URL, Username, Password and Account. Now click on "Check connection" – Door Tablet will attempt access to the target system by reading the list of resources and reporting back on what was found.


Test your connectivity
Once you have finished your implementation of DTSI you are ready to test it. Note: the test only applies to the meeting space list.


Technologies
This standard defines a common set of technologies used in the interface. Unsurprisingly, communication with your system is over HTTP/S. Requests are made using HTTP GET and responses are in JSON. Each call to the target system is made by the Door Tablet server that acts as a proxy for all the Door Tablet client applications, but for your system it is a client. The Door Tablet client applications are not aware of your scheduling system and any of its characteristics.

About your Server
As Door Tablet communicates with your server over HTTP/S, it is important to clarify some points, listed below. For the IT professionals that will be a given, but we think it is worth mentioning. So, your server:
  1. May be anywhere – on premise, on the cloud, hosted by you or others
  2. Run on any computer with any OS
  3. May run any other application

HTTP Calls
This interface refers to parameters, both when posting and receiving responses. In all cases parameters are written in lower case. Time arguments are in the ISO 8601 format ("2015-05-23T18:25:43.511Z"). Date arguments are in the truncated version of time ("2015-05-23"). All returned variables are strings unless explicitly defined otherwise. For example error_cd is an integer.
Each call made to the target server is made out of two parts:
The fix part:
Base HTTP: protocol, host, port, root
Example: https://myserver.com:81/meetings?
Variables:
user
pass
acc
Example:
&user=abd&pass=1234&acc=nalhf793127y4
The variable part:
action: the name of the action you wish to perform
Example:
&action=rooms
Other variables:
the list of parameters depends on the action you wish to perform
Example:
&room= green_room@company.com&date=2015-06-12

Complete example:
In this example we are asking for the list of meetings today, for a particular room:
https://myserver.com:81/meetings?&user=abd&pass=1234&acc=nalhf793127y4&action=meetings&room=blue_room@company.com


"Read Only" Appointments
Note: for a Read Only Appointments system, the server must implement only two calls listed ahead: rooms and meetings.

Responses from your server
Responses to calls made to the target system are expected to be in JSON, if the server returned HTTP 200. Each action will elicit a different response from the target system. The response can be either a good or bad one. A bad response will be when the target system is not happy to communicate with the source system (Door Tablet). For example, if the credentials provided by the source system are not acceptable by the target, a bad response will be generated:

{
ok: false,
code: 3,
message: "Access Denied – please contact the administrator",
ver: "1.3a",
time: "2015-05-23T18:25:43.511Z"
}

As you can see the response is in JSON format. For readability we are not showing the double quotes surrounding parameter names, for example "version".

Each response has three fixed parameters: ok, version and time. The ok parameter is a Boolean with two values, true or false. If the value returned in ok is false, Door Tablet will consider it an error response and will refer to the message. The version is, well, the version. The time parameter should be the time the JSON was generated in ISO 8601 format or Epoch format.

Calls to your server and Responses from your server
Door Tablet makes specific calls to the target system.

rooms - get a list of rooms/resources which may be used for bookings
Action:
rooms
Variables:
-none-
Example:
https://myserver.com:81/schedules?&user=abd&pass=1234&acc=nalhf793127y4&action=rooms
Returns:
Returns JSON:
Array of "rooms", each with the following parameters:
roomthe id of the room or resource which uniquely identifies it in the target system
namethe name of the room
locationwhere the room is
capacityhow many people can be accommodated in the room/resource. Integer
groupsa comma delimited list of group name the resource is in
Example Response from your server:

{
ok: true,
ver: "1.3a",
time: "2015-05-23T18:25:43.511Z",
rooms: [
{
room: "blue_room@company.com",
name: "Blue Room",
location: "London",
capacity: 10,
groups: "grp1,grp2,grp3"
}, {
room: "green_room@company.com",
name: "Green Room",
location: "London",
capacity: 12,
groups: "grp1,grp5"
}
]
}


meetings - returns an array of meetings scheduled for a particular room
Action:
meetings
Variables:
room
date (optional – if not listed assume today)
Example:
https://myserver.com:81/schedules?&user=abd&pass=1234&acc=nalhf793127y4&action=meetings&room=red_room@mycompany.com&date=2015-05-23
Returns:
Returns JSON:
Array of "meetings", each with the following parameters:
ida unique meeting ID on the target system
startthe start time of the meeting in ISO 8601 format
endthe end time of the meeting in ISO 8601 format
subjectthe subject of the meeting
ownerthe name of the person who own the meeting (Chair)
owneremailthe email address of the meeting owner
participantsnumber of all attendees, integer
isprivateindicates if the meeting is private, true/false – Boolean
Example Response from your server:

{
ok: true,
ver: "1.3a",
time: "2015-05-23T18:25:43.511Z",
meetings: [
{
id: "sldjfhgwijednfv98435knsdbfvhsdfgg345tkjsdfvbsfjhdg23846tjhsf",
start: "2015-05-23T10:00:00.00Z",
end: "2015-05-23T11:00:00.00Z",
subject: "Marketing Review",
owner: "John Travolta",
owneremail: "john_travolta@company.com",
participants: 7,
isprivate: false
}, {
id: "26kjb325436h2534wsfkjhbvosedrgwebt2345b562bsjfbgsfdjbskfj",
start: "2015-05-23T12:00:00.00Z",
end: "2015-05-23T13:00:00.00Z",
subject: "Marketing Review – phase 2",
owner: "John Travolta",
owneremail: "john_travolta@company.com",
participants: 7,
isprivate: true
}
]
}


create - creates a meeting in a particular room. The start time is always now and the duration is provided in minutes. Action not required for "read-only"
Action:
create
Variables:
room
duration
subject
participants
Example:
https://myserver.com:81/schedules?&user=abd&pass=1234&acc=nalhf793127y4&action=meetings&room=red_room@mycompany.com&date=2015-05-23
Returns:
Returns JSON:
ida unique meeting ID on the target system
Example Response from your server:

{
ok: true,
ver: "1.3a",
time: "2015-05-23T10:00:00.00Z",
id: "26kjb325436h2534wsfkjhbvosedrgwebt9999b562bsjfbgsfdjbskfj"
}


update - updates the end time of a meeting given a meeting ID. If the meeting is to be terminated now, the duration is -1. Action not required for "read-only"
Action:
update
Variables:
id
duration
Example:
Terminate the meeting…
https://myserver.com:81/schedules?&user=abd&pass=1234&acc=nalhf793127y4&action=update&id=26kjb325436h2534wsfkjhbvosedrgwebt9999b562bsjfbgsfdjbskfj&duration=-1
Extend the meeting by an hour…
https://myserver.com:81/schedules?&user=abd&pass=1234&acc=nalhf793127y4&action=update&id=26kjb325436h2534wsfkjhbvosedrgwebt9999b562bsjfbgsfdjbskfj&duration=60
Returns:
Returns JSON:
ida unique meeting ID on the target system
Example Response from your server:

{
ok: true,
ver: "1.3a",
time: "2015-05-23T10:00:00.00Z",
id: "26kjb325436h2534wsfkjhbvosedrgwebt9999b562bsjfbgsfdjbskfj"
}