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.
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.
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.
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.
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.
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. |
curl -i -X GET http://127.0.0.1:10022/rest/isi/item -u user:password
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" : "" } ] }
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.
curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password
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
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. |
curl -i -X POST http://127.0.0.1:10022/rest/isi/charge -d "id=100&quantity=1&room=7101" -u user:password
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" : "" } ] }