3.81. <AuthBy FIDELIO>

<AuthBy FIDELIO> authenticates users from Micros-Fidelio Opera. Opera is a popular hotel Property Management System from Micros Fidelio Opens in new window.
AuthBy FIDELIO acquires the hotel guest list from Opera, and by default, authenticates each guest using their Room Number as the User-Name and their Guest Number as their password (this is configurable). By default, RADIUS Accounting Stops generate Opera PS simple postings. This can be changed with the PostingRecordID parameter.
Note
If the acquired guest list is empty, this may be caused by Opera settings where the full guest list synchronisation is disabled. This option needs to be enabled for AuthBy FIDELIO to work.
By default, accounting postings are sent to Opera following receipt of an Accounting-Stop. The default PS record will contain:
Additional fields can be added to the Opera posting record with the PostingExtraFields parameter.
AuthBy FIDELIO requires a connection to the Opera computer system. Both RS232 serial and TCP/IP (Ethernet) connections are supported. RS232 support requires Device::SerialPort. It is part of CPAN. For more information, see Section 2.1.2. CPAN.

3.81.1. Protocol

Specifies the protocol to be used to connect to Opera. ‘serial’ or ‘tcp’ are supported. If ‘serial’ is specified, AuthBy FIDELIO will open the serial port specified by Port and configure it to use the RS232 parameters specified by Baudrate, Databits, Parity and Stopbits and Handshake. If ‘tcp’ is specified, AuthBy FIDELIO will connect to Opera by TCP/IP, using the parameters Host and Port. Defaults to ‘tcp’.

3.81.2. Port

When Protocol is serial, specifies the device name of the serial port to use (defaults to ‘/ dev/ttyS0’). When Protocol is tcp, specifies the service name or number of the TCP/IP port to connect to (defaults to 5010, the standard Opera TCP/IP port).

3.81.3. Host

When Protocol is tcp, specifies the DNS name or address of the Opera host. Defaults to ‘localhost’.

3.81.4. Baudrate

When Protocol is serial, specifies the baud rate for the serial port. Defaults to 9600.

3.81.5. Databits

When Protocol is serial, specifies the number of data bits for the serial port. Defaults to 8.

3.81.6. Parity

When Protocol is serial, specifies the data parity for the serial port. May be ‘odd’, ‘even’ or ‘n’. Defaults to ‘n’.

3.81.7. Stopbits

When Protocol is serial, specifies the number of stop bits for the serial port. Defaults to 1.

3.81.8. Handshake

When Protocol is serial, specifies the handshaking standard for the serial port. May be ‘none’, ‘rts’ or ‘xoff’. Defaults to ‘xoff’.

3.81.9. ReadCharTimeout

When Protocol is serial, specifies the character read timeout in milliseconds. Defaults to 2000ms. This should not need to be changed.

3.81.10. TransmitTimeout

Specifies the time in seconds to wait before retransmitting an unacknowledged message to Opera. Default to 2 seconds. This should not need to be changed.

3.81.11. ReconnectTimeout

Specifies the time in seconds to wait before attempting to reconnect to Opera after the connection is lost. Defaults to 5 seconds.

3.81.12. InterfaceFamily

Specifies the interface family that AuthBy FIDELIO will send to Opera, identifying the type of interface Opera is to use to communicate with Radiator. Defaults to ‘WW’, the standard Opera code for Internet.

3.81.13. FieldSeparator

Specifies the field separator character to be sued by Opera. Defaults to ‘|’. This should not need to be changed.

3.81.14. BindAddress

When Protocol is tcp, specifies the bind address to be used for the TCP/IP port. Defaults to the global BindAddress (if specified) or 0.0.0.0. Useful to specify the source address interface to use for multi-homed hosts. For more information, see Section 3.7.9. BindAddress.

3.81.15. MaxBufferSize

Specifies the maximum read buffer size. Defaults to 100000. Should not need to be changed.

3.81.16. UseChecksums

Specifies whether to use checksums in the communications with Opera. The correct setting for this depends on the version of Opera, but a setting of disabled will work for most modern installations. Defaults to enabled (1) for serial Protocol and disabled (0) for tcp Protocol.

3.81.17. LinkRecords

Specifies the list of required fields for each message type in messages passed between Radiator and Opera. May be specified one per line for each type of message. This should only need to be changed if additional data is required for each gust in the GI (Guest In), GO (Guest Out) and GC (Guest Change) messages. Defaults to:
GI    FLG#RNGNSF
GO    FLG#RNS
GC    FLG#RNGN
PS    FLP#RNPTTATIDUDADDSOCT
PA    FLASRNP#DATICT

3.81.18. GuestNameField

Specifies the name of the Opera guest field that will be used match the User-Name in authentication requests. Defaults to 'RN' (Room Number).

3.81.19. GuestPasswordField

This parameter specifies the name of the Opera guest field that is used to match the password in authentication requests. The default value is 'G#' (Guest Number). Usually there is no need to change this parameter. Use UserPasswordHook instead to extract password from user information.

3.81.20. ComputeCostHook

Specifies an optional Perl hook that can be used to calculate the cost when a RADIUS Accounting Stop is received. The hook is passed the call duration in seconds, and is expected to return the cost in cents. If ComputeCostHook is not specified, then CentsPerSecond will be used to calculate the cost.

3.81.21. UserPasswordHook

Specifies an optional Perl hook that can be used to determine the correct password for the user. It is expected to return the correct user password in plaintext.
The hook is passed the following arguments:
  • $_[0] A reference to the current AuthBy module object
  • $_[1] A reference to a hash containing the guest's Opera data (as received in a GI message from Opera)
  • $_[2] A reference to the current RADIUS request
The default is:
UserPasswordHook sub {return $_[1]->{'G#'}}
which specifies the guests Guest Number (G#) is to be used as their password.

3.81.22. CentsPerSecond

When UserPasswordHook is not specified, this number will be used to compute the cost to be used in the accounting PS resulting from a RADIUS Accounting Stop. The charge will be computed from the call duration (in seconds) times CentsPerSecond.

3.81.23. PostingRecordID

Defines the type of transaction code to be used for sending Posting records to Opera. Defaults to PS but can be changed to PR.
CAUTION
Use of PR would also require a suitable LinkRecords entry for the desired PR data. For more information, see the example in Section 3.81.24. PostingExtraFields.
Contact your Micros representative for more details on field types and codes that can be sent to Opera.

3.81.24. PostingExtraFields

List of fields that are to be added to the standard fields sent to Opera in a Posting transaction. These are sent in addition to the standard ones of P#, TA, DU, PT, SO, CT and DD. Format is in the form: <fieldid>,<data>. Where <fieldid> is the 2 letter FieldID and <data> is the data to be sent in that field (special characters are permitted).
The special characters in <data> may include:
  • %0 the user (room) name
  • %1 the posting sequence number
  • %2 the cost computed by CentsPerSecond or ComputeCostHook
  • %3 the duration of the connection in ’hhmmss’ format
  • %4 the reservation number (G#) corresponding to the room number
In the following example, the type of posting is changed to PR, and the PR is defined to use the P#, TA, DU, PT, SO, CT and DD field (the defaults) and the additional field T1 (tax code). When a posting is sent, the T1 tax code is set to 3, and the additional G# (reservation number) is set to the user's reservation number from the Opera database.
PostingRecordID PR
LinkRecords PR,FLP#RNPTTATIDUDADDSOCTT1
PostingExtraFields T1,3
PostingExtraFields G#,%4

3.81.25. MessageHook

MessageHook is called after a message from Fidelio has been unpacked into a hash and before the record is passed to handle_message(). It can be used to change or transform any fields in the record before it is passed to handle_message() and processed by Auth- FIDELIO. The first argument is a pointer to the AuthBy FIDELIO clause, and the second is a pointer to a hash containing the unpacked record fields.

3.81.26. CheckoutGraceTime

Specifies a number of seconds after check-out to still allow a user to log in. Defaults to 0.

3.81.27. HandleAcctStatusTypes

This optional parameter specifies a list of Acct-Status-Type attribute values that will be processed in Accounting requests. The value is a comma-separated list of valid Acct-Status-Type attribute values including, Start, Stop, Alive, Modem-Start, Modem-Stop, Cancel, Accounting-On and Accounting-Off. See your dictionary for a full list.
If HandleAcctStatusTypes is specified and an Accounting request has an Acct-Status-Type not mentioned in HandleAcctStatusTypes, then the request will be ACCEPTed but not otherwise processed by the enclosing clause. The default is to handle all Acct-Status-Type values.
# Only process Start and Stop requests, ACCEPT and acknowledge everything else
HandleAcctStatusTypes Start,Stop