Howto:Check-In/Out with XML Script

From innovaphone wiki
Jump to navigation Jump to search

This article describes how an extension can switch on and of a filter for another extension. Being able to do this it is easy possible setup a feature common knows as “Check in/out” in hotel environment.

Here is how.

Applies To

innovaphone PBX, V8 or higher

More Information

Typically the set in the reception has two function buttons, one for check in and one for check out. Just “rooms” should be possible to check out (and not “normal” extensions) and even should it be possible to check the status of a room.

The feature is realized using some innovaphone PBX features and a XML Voicemail script. No license is required for this feature.

If you call the script the main menu is played:

“Press 0 for check-out, 1 for check-in or * for status, followed by the room number and confirm with #”

, hopefully explaining the function.

If you call the script in block dial or with a function key (so xx1 and xx0) no menu is played (function is jet clear because you will label the key) and the operator has just to put in the room number.

If a room is checked in or out a relative prompt is played.

If the room status function is selected the message “room status” followed by the status is prompted.

If no command (“xx”) or an invalid command (example “xx8”) is dialed or no number is dialed “invalid command” is prompted.

If a number is not present in the PBX “no valid number” is prompted.

If an extension is found but it is not a room “no room” is prompted.

Dialing can be done in any way (overlapped, block or mixed). If no “#” is dialed after the room number “end of dial” is automatically forced (4 seconds, during the main menu 12 seconds).

The feature works with any phone type (even Dect and analogue sets or using mobile phones with DID)


Extract the ZIP file on your PC, create a directory on the compact flash of your innovaphone PBX and copy all files in. That’s it.


Create a VM object in your PBX (no license is required to do this) and put in the “Script URL” the path of your XML object. Example if installed on a directory called “Checkinout”:


Assign a number to this object, now you can call it from any phone and the main menu will be prompted.

In reality just selected extensions should be able to do a check-in/out and therefore limit the access to the VM-object. If just one extension (the reception) should be able to do check-in/out you could for example activate a CFU on the XML object to the reception phone set; just the reception will be able to call the object, all other extension trying to do that will call the reception. Also a “long” number will protect the object.

If you like function keys on the phone of the reception just configure direct dial keys and label the keys (one for check-in, one for check-out and one eventually for status).

If you call now the script you will see that you cannot check-in/out any extension because the script will always play “no room”. Of cause, you have to define your rooms. That is done in the PBX setup. First you have to go in the “filter “ section (config/Filter) and create two filters: “CheckOUT” and “CheckIN” (please note that the name of the two filter must be exactly as described (and of course without quotation marks). Typically the filter “CheckOUT” has in number “0” = “nok” (if “0” is your trunk access number), a very good idea is to allow anyway the emergency numbers (“0113” and similar). In the “CheckIN” filter you can eventually limit the access for rooms even if checked-in (for example to expensive service numbers). Now go in the PBX configuration and assign to each room one of the two filters (this will be the initial status, but it doesn’t matter the one you assign initially). The script simply will check if an extension has activated one of the two filters (so that is the option defining a “room”).


This script is delivered with English prompts, but you can produce your own prompts and wordings. How see the link at the end of this page. The filename and prompts are the following:

Filename: Prompt

CheckedIN: “Checked in”

CheckedOUT: “Checked out”

NoRoom: “No room”

NoValidNumber: “No valid number”

InvalidC: “Invalid command”

RoomStatus: “RoomStatus”

Mmenu: “Press 0 for check-out, 1 for check-in or * for status, followed by the room number and confirm with #”

Known Problems

Using a Webdav Server the file Mmenu will not work, solved with Build 1001.


  • Download the complete file package of scripts and files described in this article.

Related Articles

Creating fine announcements and music on hold

Installing the voicemail/music on hold on a compact flash card