Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Versión en Español disponible

Table of Contents
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printablefalse

Utile h+ is a middleware that aims to integrate IP-PBX platforms with Property Management Systems (PMS). This guide describes the configurations needed on the PBXact server for the integration to be established.

Services that will get implemented

Features supported in PBXact:

  • Class of service (calls permissions whether checked-in or checked-out)

  • Room Status (room cleaned status ; for hotel cleaning employees to register in the PMS that the room has been cleaned)

  • Minibar (minibar IVR for easy ordering)

  • Alarm management (wake-up calls)

  • Billing (billing for external calls dialed)

Previous Considerations in the PBXact server

  1. SAMBA file sharing software must be installed for being able to exchange information between utile h+ and PBXact.

  2. Within the configuration of the extensions in PBXact, the variable HABITACION must be defined, with the room number.

  3. Trunks for placing external calls must have the parameter "Outbound CallerID" properly set with the DID of that trunk, complying with what the Carrier expects. You may have to set it with the format:
    "Hotel Name" <#######>
    (where: ####### is the Hotel's DID)

  4. Each and every hotel room extension must be created with a single same SIP channel driver, either PJSIP (default for utile h+ integration) or CHAN_SIP, for all the rooms.

...

We'll be configuring points 1 & 2 next.

Integration Scheme

...

Directories Structure

For the information exchange between PBXact and utile h+ , a directory will be used within the PBXact system, for example, /opt/CHAR . This directory has to be visible from within the Windows computer where utile h+ is installed.

...

We'll configure them next, within the following sections:

Checked-in / Checked-out Status

This service is used when a room is occupied (Checked-In) or empty (Checked-Out).

...

NOTE: AGIs are generated by utile h+ directly.

Room Cleaned Status

This service will be used by the hotel’s employee to indicate if the room is clean or dirty. To do so, utile h+ will read the information from the file “/opt/CHAR/roomservice.log”.

...

Room Service Identifier (RS), Date and Hour of the input, Room Number, Room Status (0 - clean, 1 - dirty), Employee Code

Minibar Service

This service is used to indicate the minibar charges. To do it, utile h+ will read the information from the file /opt/CHAR/roomservice.log

...

Code Block
[minibar]
exten=>s,1,NoOP(--Servicio de Minibar--)
exten=>s,n,Answer()
exten=>s,n,Playback(custom/minibar)
exten=>s,n(intro),READ(CANTIDAD,custom/intro_cantidad,1,,1,15)
exten=>s,n,GotoIF($[ "${CANTIDAD}" == "" ]?intro)
exten=>s,n,READ(ARTICULO,custom/intro_articulo,1,,1,15)
exten=>s,n,GotoIF($[ "${ARTICULO}" == "" ]?intro)
exten=>s,n,Playback(custom/cantidad)
exten=>s,n,SayNumber(${CANTIDAD})
exten=>s,n,Playback(custom/articulo)
exten=>s,n,SayNumber(${ARTICULO})
exten=>s,n(confirmar),READ(OPCION,custom/menuarticulo,1,,1,15)
exten=>s,n,GotoIF($[ ${OPCION} == 1]?1,1)
exten=>s,n,GotoIF($[ ${OPCION} == 2]?2,1)
exten=>s,n,GotoIF($[ ${OPCION} == 3]?3,1)
exten=>s,n,GotoIF($[ "${OPCION}" == "*" ]?*,1)
exten=>s,n,Goto(confirmar)
exten=>1,1,NoOP(--Confirmar y seguir--)
exten=>1,n,System(echo "MB ${STRFTIME(,,%d/%m/%Y %H:%M)} ${HABITACION} ${CANTIDAD} ${ARTICULO} ${CDR(accountcode)}" >> /opt/CHAR/roomservice.log)
exten=>1,n,Goto(s,intro)
exten=>2,1,NoOP(--Anular la entrada--)
exten=>2,n,Goto(s,intro)
exten=>3,1,NoOP(--Confirmar y salir--)
exten=>3,n,System(echo "MB ${STRFTIME(,,%d/%m/%Y %H:%M)} ${HABITACION} ${CANTIDAD} ${ARTICULO} ${CDR(accountcode)}" >> /opt/CHAR/roomservice.log)
exten=>3,n,Playback(thanks-for-using)
exten=>3,n,Playback(custom/minibar)
exten=>3,n,Hangup()
exten=>*,1,NoOP(--Acceder a la lista de articulos--)
exten=>*,n,Read(VOLVER,custom/listacodigos,1,,1,15)
exten=>*,n,Goto(s,intro)

Alarm Clock Service (Wake-up calls)

This service is used when the guest ask to be woke up to a certain hour in the morming. It is based in the Call files of Asterisk that it will be generated by utile h+ and saved in the directory /opt/CHAR/despertador . That is not more than a symbolic link with /var/spool/asterisk/outgoing.

...

Channel: PJSIP/%EXTENSION% → Channel: SIP/%EXTENSION%

Allow calls from administrative extensions (Reception and others) to rooms

Add the following lines at the end of the /etc/asterisk/extensions_custom.conf file

Code Block
[from-internal-custom]
include => extensiones

Billing

Every external call placed from a room extension is accounted and transferred accordingly to utile h+ which in turn sends the information to the PMS. For this integration, the following has to be included in the /etc/asterisk/cdr.conf file:

...

Code Block
fwconsole restart

APPENDIX A

Optional bash Scripts for batch automations

Populating the SIP custom_post.conf file

...

Info

Note: the script does not consider, for example, cases in which the rooms do not always reach 99 in every hundred (example: from room 120 skips to room 201, from 220 to 301, etc.); modifying it could achieve this behavior, or, perhaps faster/easier, simply consider those "empty spaces of rooms" when entering the total quantity of rooms during the script's execution, and then proceed to manually delete, in the generated resulting file, the lines for those rooms (extensions) that don't really exist.

First-time generation of the checkinout###.php files

The first time a Room's status is set as either Checked-In or Checked-Out via utile h+ (or via the PMS itself), utile h+ generates a corresponding checkinout###.php file and places it inside the PBX under /opt/CHAR/checking/ as mentioned before; if considered, the optional bash script 

View file
namegenerate_chekinout_files_for_utileh.sh
together along with the 
View file
namecheckinout_BASE_FILE.php
 could be used to automatically generate those checkinout###.php files for every Room at once:

...

(root 644) /etc/samba/ : 

View file
namesmb.conf

(asterisk 777) /opt/CHAR/ : 
View file
namecodigos.txt

(asterisk 664) /etc/asterisk/ :
View file
namepjsip.endpoint_custom_post.conf
  or  /etc/asterisk/ : 
View file
namesip_custom_post.conf

(asterisk 664) /etc/asterisk/ : 
View file
nameextensions_custom.conf

(asterisk 664) /etc/asterisk/ : 
View file
namecdr.conf

Sangoma Professional Services are able to provide PBXact configuration support and it is limited to the PBXact configuration.  utile h+ is without any warranty from Sangoma as this is a third party integration. End users are responsible for obtaining their own utile h+ support.