Table of Contents

Inventory

The Inventory Status Interface (ISI) is a telephony interface designed to allow users to report item and quantity information to one or more remote servers. Although the original conception was to provide a method for a hotel's housekeeping staff to report usage of items from the guest room mini-bar, the interface has been designed to allow for any type of inventory reporting a user may require.

Rooms

The inventory system provides two possible room lists. The default setting is to use the list of mailboxes configured on the DuVoice. However it is possible to configure it to use a custom list of rooms if necessary.

Data output

When a charge is made to a room the system will automatically send it on to any of the configured connectors. It currently supports SDD Jazz, Opera Minibar, Opera Direct Charge, and Comtrol. For more detailed information see the server configuration here.

Access

Inventory access does require the user to have inventory access on their account. This is to reduce or limit the number of users who can bill rooms of charges.

Billing

The inventory system does not store any billing information for a room. It is simply intended as a way to manage and post charges to third party interfaces like Opera Minibar. The DuVoice system does provide some reporting information via the Inventory web interface, however this is only intended for review and not to charge a guest.

Features

Get Items

You can retrieve a list of all inventory items using the GET method with the parameter item.

Name Type Description
description string Category description.
id string of numbers Item ID.
category string of numbers Category ID for this item.
max int Maximum quantity which can be reported. 0 Means unlimited quantities.
price string Price of each item.
tenant string Tenant ID for this category.

Example

Request

curl -i -X GET http://127.0.0.1:10022/rest/isi/item -u user:password

Response

HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:16:46 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
Content-Type: application/json
Content-Length: 329
 
{
  "items" : [
    {
      "category" : "2",
      "description" : "Stone IP",
      "id" : "100",
      "max" : 2,
      "price" : "10.99",
      "tenant" : ""
    },
    {
      "category" : "3",
      "description" : "Almond Cake",
      "id" : "300",
      "max" : 1,
      "price" : "15.99",
      "tenant" : ""
    }
  ]
}

Room charge

A room charge is made using the method POST with minimal additional arguments making it easy for any type of interface.

In order to charge a room for an item, only three arguments are needed. The system will also block any quantities which are over the maximum. For example if an item has been configured to have a maximum quantity of 2 then the system will block any charges with a quantity over that. This helps a site limit overcharges as most rooms only have a specific quantity of each item in the room.

Example

Request

curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password

Response

HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:25:03 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

Get categories

It's possible to also get a list of all categories using the GET method with the parameter category.

Name Type Description
color string Optional HTML compatible color used on reports and as a simple way to visually distinguish different categories.
description string Category description.
id string of numbers Category ID.
tenant string Tenant ID for this category.

Example

Request

curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password

Response

HTTP/1.1 200 OK
Date: Fri, 27 Sep 2019 17:38:40 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
Content-Type: application/json
Content-Length: 481
 
{
  "categories" : [
    {
      "color" : "#03a9f5",
      "description" : "Beverages",
      "id" : "1",
      "tenant" : ""
    },
    {
      "color" : "#ffeb3c",
      "description" : "Beer, Wine & Liquor",
      "id" : "2",
      "tenant" : ""
    },
    {
      "color" : "#795547",
      "description" : "Snacks",
      "id" : "3",
      "tenant" : ""
    },
    {
      "color" : "#617e8c",
      "description" : "Others",
      "id" : "4",
      "tenant" : ""
    }
  ]
}