Table of Contents

Inventory

Inventory Status Interface (ISI) is a telephony interface allowing users the ability to report item and quantity information to remote servers.

The original design was for reporting inventory of the room mini-bar by maid staff. However the interface has been designed to allow for any type of inventory reporting the user may have in mind.

Features

Requirements

Inventory Status Interface is a licensed feature and must be purchased from DuVoice on a per-site basis.

Revision History

VersionReleasedChanges
201 2018/11/12 Changed JSON format to match XML format. Removed post_date and post_time, because they were never in the original specification and could cause confusion having duplicate time and date fields. Added type field to the form format.
200 2016/01/30 Updated to support new formats.
101 2011 Initial release

Protocol

Multiple formats are supported.

Format Description
JAZZ Original format sent as an XML document including extra end node.
XML XML document.
JSON Post is sent as a JSON document.
FORM Post is sent as URL encoded form post.

If DuVoice is protocol is configured as HTTP POST JAZZ the server will add an invalid tag of </xml> to the end. This makes the post invalid XML, however the original version had this extra tag as a bug and it was requested it remain. For valid XML packets please use HTTP POST XML.

XML

Syntax

inventory

Attribute Required Description
number Yes Room number.
date Yes Date item was posted by user. YYYYMMDD.
description No Description of the room.
time Yes Time item was posted by user in 24 hour format. HH:MM:SS.
Status No Room status as defined in the system configuration under hospitality.
sequence No Non-unique value between 1 and 2147483647 per-server instance. Once sequence number is equal to 2147483647 then number is reset back to 1. Was once used when sending multiple entries to the server in order to distinguish each individual posting. System now sends a single packet to the server for each charge making rescheduling and error detection better.

item

Item information.

Attribute Description
id Item ID entered by user.
description Item Description. (optional)
price Price of single item.
quantity Quantity of this item.
category Category name item has been assigned in InnDesk. (optional)
catid Internal ID of the category. (optional)
catdesc Description of the category defined in InnDesk. (optional)

user

User who posted the purchase.

Attribute Required Description
id Yes User id. This can be either a number or name and is the users account name.

Example

POST /isi/
Date: 2018-02-08T22:35:16Z
User-Agent: DuVoice/6.01.19 ISI/200
Content-Length: 423
Content-Type: text/xml
Connection: Close
Host: 127.0.0.1:8080

<?xml version="1.0" encoding="ISO-8859-1"?>
<inventory>
        <room number="7101" date="20180208" time="14:35:16" description="" attempt="0" sequence="1">
                <user id="100">
                        <fname>Dean</fname>
                        <lname>Venture</lname>
                </user>
                <item id="41" quantity="1" description="Cognac Croizet XO 50ml" price="150.00" category="Beer, Wine &amp; Liquor" catid="2"/>
        </room>
</inventory>

JSON

Syntax

Name Type Description
attempt number What attempt is this.
date string Date item was posted by user. YYYYMMDD.
description string Mailbox description.
id string Item id.
price string Price per item.
quantity number Number of items charged.
room string Room number for charge.
time string Time item was posted by user in 24 hour format. HH:MM:SS.
user document User document containing who posted the charge.

Example

POST /isi/
Date: 2018-02-08T22:48:49Z
User-Agent: DuVoice/6.01.19 ISI/200
Content-Length: 284
Content-Type: application/json
Connection: Close
Host: 127.0.0.1:8080
 
{
  "inventory" : {
    "room" : {
      "attempt" : "0",
      "date" : "20180208",
      "description" : "",
      "id" : "41",
      "price" : "150.00",
      "quantity" : 1,
      "room" : "7101",
      "time" : "14:48:49",
      "user" : {
        "fname" : "Dean",
        "id" : "100",
        "lname" : "Venture"
      }
    }
  }    
}

Form

Syntax

Name Type Description
attempt number What attempt is this.
date string Date item was posted by user. YYYYMMDD.
description string Mailbox description.
id string Item id.
price string Price per item.
room string Room number for charge.
time string Time item was posted by user in 24 hour format. HH:MM:SS.
userid string User id of who posted the charge.
fname string First name of the user who posted the charge.
lname string Last name of the user who posted the charge.
quantity number Number of items charged.

Example

POST /isi/
Date: 2018-02-08T22:56:05Z
User-Agent: DuVoice/6.01.19 ISI/200
Content-Length: 203
Content-Type: application/x-www-form-urlencoded
Connection: Close
Host: 127.0.0.1:8080

type=inventory&room=7101&id=41&description=Cognac%20Croizet%20XO%2050ml&description=&price=150.00&date=20180208&time=14%3A56%3A05&attempt=0&userid=dean&fname=Dean&lname=Venture&quantity=1