Table of Contents

REST

This API provides applications the ability to query and manage services available on the DuVoice system. The API is a collection of HTTP methods, all with URLs in the form http://<server>:10022/rest/RESOURCE.

This interface uses standard HTTP protocol and schemes in order to be used by the widest number of software languages and computer systems. It's been used by both C++, Python and PHP interfaces equally well.

A resource is defined as either a specific feature set or physical resource on the system. For example the system resource provides information about the local server including date, time, licensed features and product version details.

The mailbox is the basic unit for managing subscribers, guest rooms and system (auto attendant) menus within the DuVoice system. In cases of hospitality systems the mailbox number is typically configured to match the room number. In some cases it's configured as the primary extension number.

Internet Access

DuVoice does not recommend exposing the system directly to the internet. It should only be accessible via the local network or exposed via a firewall with rules which limit what machines or networks can access it.

Features

Requirements

Basics

Authentication

Most all access is restricted using accounts which are configured either using System Configuration or Administration. Each account has access to only those resources associated with their tenant.

User based

The API provides a login/logout designed for a single user access application similar to InnDesk or phone application. When using these any connection using the same account will be disconnected upon another user logging on with the same username. Using this method is best when designing a base user application because additional permissions and reporting is performed by the server.

Server based

If your application is a server based, the use of login/logout is not necessary and authentication can be provided with each call using a user account and Basic authentication. Using this method will not force any existing user accounts to be disconnected.

Connection

HTTP Port 10022
POST / PUT Content-Type application/x-www-form-urlencoded
Response Content-Type application/json
Result codes Use of HTTP response codes only.

Methods

The API uses standard HTTP methods to retrieve or manipulate data.

Method Usage
DELETE Delete a resource.
GET Get a resource.
POST Create a new resource.
PUT Update or replace an existing resource.

Response

All responses are HTTP Content-Type application/json.

Headers

These header fields will always be returned.

Field Description
Date Date of the response.
Connection close
Content-Language en
Server Server version information.
Access-Control-Allow-Origin *
Location Address and port of the server.
Content-Type Response content type.
Content-Length Length of the content.

Sample

HTTP/1.1 OK 200
Date: Thu, 26 Sep 2019 22:05:10 GMT
Connection: Close
Content-Language: en
Server: DuVoice/6.03.32 DVREST/6.0.1
Access-Control-Allow-Origin: *
Location: 127.0.0.1:10022

Codes

The API uses standard HTTP reason codes to inform the caller if the request was performed correctly. Some methods and resources may define the meaning of a specific value, however most have standardized to the following.

Value Reason Description
200 OK Success
401 Unauthorized Resource requires the user be logged in.
405 Method not allowed Method specified is not supported.

Revision History

2021-03-25
2019-10-27
2019-01-07
2017-10-31