0% found this document useful (0 votes)
157 views

IG 4 API Developer Guide r1.11

Uploaded by

ag
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
157 views

IG 4 API Developer Guide r1.11

Uploaded by

ag
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 120

IG4 4.2.

0 API Developer Guide

DOCUMENT RELEASE 1.11


IG4 API Developer Guide

This guide covers applications development using the Application


Programming Interface (API) and is intended for web programmers and
developers who intend to perform customizations on ANTlabs products.

Copyright © 2017 ANTlabs Pte Ltd


All rights reserved.
Connectivity Made Easy 2
TRADEMARKS AND ACKNOWLEDGEMENTS
The following trademarks and acknowledgments apply to:
The IG4 is a product and technology of ANTlabs Pte Ltd, (ANTlabs). All
other products mentioned in this manual are trademarks of their
respective owners.

DISCLAIMER
No part of this manual may be copied, distributed, transmitted,
transcribed, stored in a retrieval system or translated into any human
or computer language, in any form or by any means, electronic or
otherwise, without the express written permission of ANTlabs.

The software and accompanying written materials (including


instructions for use and this document) are provided “as is” without
warranty of any kind.

ANTlabs does not warrant, guarantee, or make any representations


regarding the use, or the results of the use, of the software or written
materials in terms of correctness, accuracy, reliability, trend or
otherwise. ANTlabs reserves the right to make changes without further
notice to any products described herein to improve reliability, function,
or design. This documentation is copyrighted and may not be altered
without written consent from ANTlabs.

ANTlabs reserves the right to prosecute companies or individuals who


make, distribute, or use illegal copies of this software system and its
accompanying documentation.

Release Date: July 2018


Document Reference No: IG4-4.2.0-API-1.11

Connectivity Made Easy


3
CONTENTS

Chapter 1 .................................................................................................. 8
INTRODUCTION ................................................................................... 8
1.1 Overview ................................................................................. 8
1.2 What is the API?....................................................................... 8
1.3 Checking API Versions .............................................................. 9
Chapter 2 ................................................................................................ 10
USING THE APIs ................................................................................. 10
2.1 Invoking the API in PHP .......................................................... 10
2.1.1 Basic Steps for using the API in PHP ................................... 10
2.1.2 Example API Call in PHP..................................................... 11
2.2 Invoking the API via HTTP ...................................................... 12
2.2.1 System Setup for HTTP API Access ..................................... 13
2.2.2 Example HTTP API Calls ..................................................... 14
Chapter 3 ................................................................................................ 17
CUSTOMIZING LOGIN EXPERIENCE ..................................................... 17
3.1 Overview ............................................................................... 17
3.2 Different Customization Options .............................................. 18
3.3 Step by Step Configuration...................................................... 19
3.3.1 Custom Pre-Login Page Configuration ................................. 19
3.3.2 Custom Login Page(s) Configuration ................................... 20
3.3.3 Custom Success Page Configuration ................................... 22
3.3.4 Full Customization Configuration......................................... 23
3.4 Uploading Customization Files ................................................. 24
3.5 API Customization Logs .......................................................... 25
Chapter 4 ................................................................................................ 26
EXTERNAL AUTHENTICATION INTEGRATION ....................................... 26
4.1 Overview ............................................................................... 26
4.2 Authentication Protocol Sequence ............................................ 26
4.2.1 Gateway Configuration....................................................... 27
4.2.2 Systems Integration .......................................................... 29
Chapter 5 ................................................................................................ 30
API REFERENCE SUMMARY.................................................................. 30
5.1 Account ................................................................................. 30
5.2 API ........................................................................................ 30
5.3 Authentication ........................................................................ 30
5.4 Plan ....................................................................................... 30
5.5 Data ...................................................................................... 30
5.6 Property Management System (PMS) ....................................... 31
5.7 Network ................................................................................. 31
5.8 Credit Card ............................................................................ 31
5.9 Social login ............................................................................ 31
5.10 User Form .............................................................................. 31
5.11 Miscellaneous ......................................................................... 32
Chapter 6 ................................................................................................ 33
API REFERENCE DETAILS .................................................................... 33

Connectivity Made Easy


4
6.1 Account ................................................................................. 33
6.1.1 account_add - version 1.18.1 ............................................. 33
6.1.2 account_delete - version 1.2.0 ........................................... 36
6.1.3 account_get - version 1.7.0 ................................................ 37
6.1.4 account_get_all - version 1.4.0 ........................................... 39
6.1.5 account_update - version 1.18.0 ........................................ 41
6.2 API ........................................................................................ 43
6.2.1 api_module - version 1.01 .................................................. 43
6.2.2 api_modules - version 1.02 ................................................ 44
6.2.3 api_password_get - version 1.01 ........................................ 45
6.2.4 api_version - version 1.0 .................................................... 46
6.3 Authentication ........................................................................ 47
6.3.1 auth_authenticate - version 1.2.1 ....................................... 47
6.3.2 auth_init - version 1.11 ...................................................... 49
6.3.3 auth_login - version 2.57.2 ................................................ 51
6.3.4 auth_logout - version 1.22.0 .............................................. 54
6.3.5 auth_update - version 2.0 .................................................. 56
6.3.6 sid_get - version 1.02 ........................................................ 57
6.3.7 publicip_get - version 1.01 ................................................. 58
6.4 Plan ....................................................................................... 59
6.4.1 plan_add - version 1.6.0 .................................................... 59
6.4.2 plan_delete - version 1.4.0 ................................................. 61
6.4.3 plan_get_all - version 1.3.0 ................................................ 62
6.4.4 plan_get_id - version 1.3.0 ................................................ 64
6.4.5 plan_update - version 1.4.0 ............................................... 65
6.5 Data ...................................................................................... 67
6.5.1 data_set - version 1.2.0 ..................................................... 67
6.5.2 data_get - version 1.2.0 ..................................................... 68
6.5.3 data_get_keys - version 1.2.0 ............................................ 69
6.5.4 data_get_names - version 1.2.0 ......................................... 70
6.5.5 data_delete - version 1.2.0 ................................................ 71
6.6 Property Management System (PMS) ....................................... 72
6.6.1 pms_bill_retrieve - version 1.0.1......................................... 72
6.6.2 pms_bill_checkout - version 1.0.1 ....................................... 74
6.6.3 pms_billing_log - version 1.0.1 ........................................... 76
6.6.4 pms_guest_status - version 1.0.1 ....................................... 78
6.6.5 pms_message_get - version 1.0.1 ...................................... 80
6.6.6 pms_message_refresh - version 1.0.................................... 81
6.6.7 pms_message_delete - version 1.0 ..................................... 82
6.6.8 pms_post_check - version 1.2.0 ......................................... 83
6.6.9 pms_post - version 1.32.0 .................................................. 85
6.6.10 pms_room_status - version 1.0.1 ....................................... 88
6.6.11 pms_room_status_update – version 1.0.1 ........................... 89
6.7 Network ................................................................................. 91
6.7.1 vlan_get - version 1.23.0 ................................................... 91
6.7.2 vlan_update - version 1.13.0 .............................................. 92
6.7.3 device_status - version 1.01 ............................................... 93
6.8 Credit Card ............................................................................ 94

Connectivity Made Easy


5
6.8.1 cc_payflowpro_post - version 1.0.1 .................................... 94
6.9 Social login ............................................................................ 97
6.9.1 social_embed - version 1.0.2 .............................................. 97
6.9.2 social_init - version 1.0.5 ................................................... 98
6.9.3 social_return - version 1.2.1 ............................................... 99
6.10 User form ............................................................................ 100
6.10.1 form_add - version 1.0.1.................................................. 100
6.10.2 form_delete - version 1.0.0 .............................................. 101
6.10.3 form_get – version 1.0.0 .................................................. 102
6.10.4 verified_add – version 1.0.1 ............................................. 103
6.10.5 verified_delete – version 1.0.0 ......................................... 105
6.10.6 verified_get – version 1.0.0 .............................................. 106
6.10.7 otp_add – version 1.0.0 ................................................... 108
6.10.8 otp_check – version 1.0.0 ................................................ 109
6.10.9 captcha_get - version 1.0.0 .............................................. 110
6.10.10 captcha_check - version 1.0.0 .......................................... 111
6.11 Miscellaneous ....................................................................... 112
6.11.1 browser - version 1.04 ..................................................... 112
6.11.2 session_monitor_get_all - version 1.2.0 ............................ 115
6.11.3 firewall_open – version 1.0.3 ........................................... 117
6.11.4 smpp_post – version 1.0.3 ............................................... 118
6.11.5 smtp_post – version 1.1.1 ................................................ 119

Connectivity Made Easy


6
PREFACE

AUDIENCE

This manual is intended for administrators who will be responsible for the
configuration and customization of ANTlabs products.

This manual will explain how the applications development using the
Application Programming Interface (API) should be done as well as the tasks
involved in performing customizations on ANTlabs products.

Developers are expected to have a good working knowledge of ANTlabs


products and API development. Knowledge of the operating environment and
characteristics of the systems used in the deployed networks are also useful.
Basic knowledge of HTML and HTTP will also allow the developer to customize
the user-facing web pages.

RELATED DOCUMENTATION

You may refer to the ANTlabs homepage at http://www.antlabs.com/ for


other related materials and documents released by ANTlabs.

FEEDBACK AND COMMENTS

ANTlabs welcomes all comments and suggestions on the quality and


usefulness of this document. Our users’ feedback is an important component
of the information used for improvement of this document.

Please include in your feedback:

• Name • Postal Address


• Title • Telephone Number
• Company • Document Title & Release No
• Department • Document Reference No.
• E-Mail • Comments/Feedback

Also, please include the chapter, section and/or page number when referring
to specific portions of the document.

Send your comments via email to [email protected]

Connectivity Made Easy


7
Chapter 1

INTRODUCTION

1.1 Overview
The APIs are a set of modules that give developers access to system services
and resources. This enables developers to program the behavior of the
gateway, allowing flexibility to customize many aspects of the user
experience.

The API is most commonly used for:

1. On-demand services – The API provides functions that can


dynamically update user information, enabling on-demand services
such as buying additional online time by updating the user’s session
duration or upgrade of access privileges by changing the user group.

2. Applications integration – The API allows the retrieval of


information about the connected devices, enabling external
applications to act on the status and events of client devices that are
managed by the gateway.

Developers can thus leverage the APIs to create value-added services whose
transactions can span a variety of existing or new application servers. This
allows businesses to roll-out new service offerings to their customers.

1.2 What is the API?


The API consists of modules, each providing a particular service or function.
Most modules require a set of input arguments to execute and once the
operation is completed, a set of output arguments is generated which
contains the results of the operation.

Input API Output


Arguments Module Arguments

There are 2 methods for using the API:

1. Making calls to the API in PHP scripts – PHP scripts can be


uploaded to the gateway and executed by the built-in PHP application
server. The API can be accessed from within these scripts.

Connectivity Made Easy


8
2. Invoking the API via HTTP – The API can also be invoked via
HTTP. This is especially useful when external applications need to
communicate and share information with the gateway over the
network.

Each of these methods will be covered separately in the subsequent chapters.

A reference of all the API modules can be found in Chapter 5. The modules
are sorted alphabetically and provide developers with a reference of the
functionality, input and output and parameters for each module.

1.3 Checking API Versions


The version of the APIs and a list of the installed API modules and their
respective versions can be viewed in the Admin GUI.

To see API versions:

1. Click on Settings, under System.

2. Click on API.

The API version is displayed, along with a list of all API modules installed in
the gateway.

Figure 1-1 API Version and Installed API Modules

Connectivity Made Easy


9
Chapter 2

USING THE APIs

2.1 Invoking the API in PHP


The gateway has a built-in PHP application server allowing custom PHP scripts
to be uploaded and executed. Developers can then make API calls within
these scripts to invoke the necessary functionality for their applications.

This chapter explains how the API can be invoked from within a PHP script
hosted on the gateway.

2.1.1 Basic Steps for using the API in PHP


The following are the basic programming steps for using the API in PHP
scripts:

1. Include the API class at the start of the PHP script.

require_once($_SERVER['DOCUMENT_ROOT'] . '/api/api.php');

If you do not do this, the functionality of the API will not be accessible
to the script and calls to the API will generate errors.

2. Instantiate an API Object.

$api = new API();

This will create an API object that you will use to invoke the necessary
functionality.

3. Set the Input Arguments required by the module.

$api->SetArg('inputargument1', 'inputvalue1');
$api->SetArg('inputargument2', 'inputvalue2');

The input arguments needed for each API module can be found in 0.

4. Execute the API module.

$api->Execute('modulename');

Use the Execute class method and specify the name of the API
module to invoke. The module will use the arguments set in the
previous step.

Connectivity Made Easy


10
5. Get the Output Arguments of the operation.

$api->GetResult('outputargument1');
$api->GetResult('outputargument2');

When a module is executed, output arguments contain the results of


the operation. The GetResult method allows you to retrieve the
results by passing the name of the output argument. The output
arguments generated by each module can be found in Chapter 6.

The final result of the script will be as shown below:

require_once($_SERVER['DOCUMENT_ROOT'] . '/api/api.php');

$api = new API();


$api->SetArg('inputargument1', 'inputvalue1');
$api->SetArg('inputargument2', 'inputvalue2');

$api->Execute('modulename');
$api->GetResult('outputargument1');
$api->GetResult('outputargument2');

2.1.2 Example API Call in PHP


As a practical example of the steps above, the following section of code
illustrates the use of the API to obtain the status of a given device on the
network.

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/api/api.php');

$api = new API();


$mac_address = $_GET['client_mac'];
$api->SetArg('client_mac', $mac_address);
$api->Execute('device_status');

if ($api->GetResult('result') == 'ok')
{
if ($api->GetResult('connected') == 'yes')
{
$ip_address = $api->GetResult('client_ip');
echo 'Client IP address: ' . $ip_address;
}
}
?>

Connectivity Made Easy


11
This example illustrates:

1. Including the functionality of the API in the PHP script with the
require_once statement.

2. Creating a new API object with the new API() statement.

3. Getting the MAC address of the client.

4. Using the SetArg method to set the client_mac input argument


needed by the device_status module which is used to retrieve
information about a device connected to the network identified by its
MAC address.

5. Using the Execute method to invoke the device_status module.

6. Using the GetResult method to retrieve the result output


argument to find out if the operation is successful.

7. Using the GetResult method to retrieve the client_ip output


argument to display the IP address of the device with the echo
statement.

2.2 Invoking the API via HTTP


HTTP provides a standardized communications protocol through which the
functionality of the API can be exposed to external entities over the network.

External application servers that need to interface with the API will customize
their scripts to send HTTP API Requests to the gateway and parse the HTTP
Response.

HTTP
Request with input
arguments to execute
the API module

HTTP (API server)


Response
Application Servers contains the API
(API clients) output arguments

Connectivity Made Easy


12
This means existing applications distributed on the network can interface
easily with the gateway to leverage on the functionality of the API as a
building block to create integrated services with a higher added value.

2.2.1 System Setup for HTTP API Access


Due to the open nature of HTTP, access to the API via HTTP is restricted and
secured through the Admin GUI. By default, the access to the API via HTTP is
blocked.

To configure API access via HTTP:

1. Click on Settings, under System.

2. Click on API.

3. Click on the Settings tab.

A list of IP addresses allowed to access the API will be shown, if any.

Figure 2-1 HTTP API Allowed IP Addresses

The fields are described as follows:

1. Network Address and Subnet Mask – Specify the host IP or


network IP address allowed to access the API.

Click to add the entry to the list or to delete selected entries.

Click to commit the list.

In addition, you should change the password that is required to be sent as a


HTTP Request parameter for all HTTP API Requests as shown in Figure 2-2.

Connectivity Made Easy


13
The default API password is admin.

Figure 2-2 Change API Password

2.2.2 Example HTTP API Calls


An API client will send an HTTP API Request to the gateway. The gateway
then processes the API call and sends the results back in the HTTP Response.

Some examples are shown here to illustrate the process.

Example 1
An HTTP API URL that calls api_module to get information about a
particular API module (see Chapter 6) might look like this:

https://192.168.123.21/api/?op=api_module&api_password=
admin&module=device_status

The above HTTP API Request comprises of the following elements:

1. https://192.168.123.21/api/? is the portion of the URL which


addresses gateway and invokes the API from the upstream. The IP
address is thus the WAN interface IP of the gateway.

The API can also be accessed from the downstream. For LAN access,
the URL should be:

http://ezxcess.antlabs.com/api/?

Note that HTTP API access from the WAN uses the HTTPS protocol
while access from the LAN uses HTTP.

2. op=api_module is the HTTP Request parameter that identifies the


module to execute.

Connectivity Made Easy


14
3. api_password=admin is the HTTP Request parameter that supplies
the password needed to invoke the API from an external source. The
API password is configured through the Admin GUI (see Section 2.2.1).

4. module=device_status is the HTTP Request parameter that


provides the input argument required to execute api_module (see
Chapter 6).

Once the API has completed its execution, the output arguments generated
are sent back to the client in the HTTP Response in clear text format:

op = api_module
version = 1.01
result = ok
resultcode = 0

The client is then expected to parse the text with standard string functions to
obtain and interpret the output arguments.

You can try this out by entering the URL in the Address field of your
Internet browser. The result will be sent back and presented in your
browser as shown in Figure 2-3.

Figure 2-3 Browser initiated HTTP API Request

Example 2
Here is another example of an HTTP API request that calls the
device_status module to get information about a connected device on the
network:

http://ezxcess.antlabs.com/api/?op=device_status&api_pa
ssword=admin&client_mac=00:11:25:87:0B:7D

The above HTTP API Request may generate the following HTTP Response in
clear text format:

op = device_status
version = 1.01
result = ok
resultcode = 0

Connectivity Made Easy


15
connected = yes
failed_probes = 0
internet_access = no
logged_in = no
client_ip = 10.128.250.254
ppli = eth0
vlan =
vlan_moved = no
location_index = 2
url =

The client can then parse the text to obtain the IP address of the specified
connected device.

Connectivity Made Easy


16
Chapter 3

CUSTOMIZING LOGIN EXPERIENCE

3.1 Overview
In this chapter, we will explore how the API can be used to customize the
standard login process as shown in Figure 3-1.

A4. Built-in
Success Page
A3. Built-in
A1. Built-in
Login
Login Page
Processor
A2. Built-in
Credit Card A5. Built-in
Landing Page Failure Page

B1. Custom
Pre-Login
Page
B5. Custom
Success
B4. Custom Page
B2. Custom
Login
Login Page
Processor
B3. Custom
Credit Card B6. Custom
Landing Failure Page
Page

Figure 3-1 Customized Login Process

The diagram above shows the various standard built-in pages of the gateway
and also the different custom pages that can be created using the standard
APIs provided.

The standard built-in pages are:

A1. Built-in Login page – The standard login page that is shown to the
user before authentication. The look and feel of this page is
configurable using the Login Policy Generator in the Admin GUI under
Policies -> Locations.
A2. Built-in Credit Card Landing page – The standard credit card
landing page when the user selects credit card payment.
A3. Built-in Login Processor – The standard login processor.
A4. Built-in Success page – The standard success page shown to the
user after successful authentication. This page is configurable using
the Login Policy Generator.
A5. Built-in Failure page – The standard failure page shown to the
user when authentication is not successful.

Connectivity Made Easy


17
The custom pages that can be written are:

B1. Custom Pre-Login Page – Useful for showing ads, customized


terms and conditions page.
B2. Custom Login Page – Useful for defining custom login options
B3. Custom Credit Card Landing Page – Custom Credit Card payment
methods
B4. Custom Login Processor – This custom login processor will replace
the built-in login processor. You may want to write this custom login
processor if you have custom login logic.
B5. Custom Success Page – This is the login success page that is
displayed after the user has successfully logged in.
B6. Custom Failure Page – This is the login failure page that is
displayed when a user fails to login.

3.2 Different Customization Options


ANTlabs gateways support different levels of customizations, depending on
the customer’s needs. The 4 common options of customization available are:

1. Customizing the Pre-login page.

This can be achieved by defining a Custom Pre-Login page (B1) which


directs the user back to the Built-in (A1) Login page.
This option is useful for delivering simple Ads, customized Terms and
Conditions and messages to the users.

2. Customizing the Login Page(s).

This can be achieved by defining a set of Custom Login Pages (B2) which
is used to specify the various login types and collect the necessary inputs.
If Credit card payment is required, these pages can include a Custom
Credit Card Landing Page (B3). Once all the necessary information is
collected, the custom page will post to the Built-in Login Processor Page
(A2) to process the login request and display the results.
This option is applicable if you only want to customize the login page look
and feel and want to reuse the built-in Login Processor to handle the login
request.

3. Customizing the Success Page.

This can be achieved by defining a Custom Success page (B5) which the
Built-in Login Processor (A3) will direct the user to after successful
authentication.
This option is applicable if you want to customize the look and feel of the
success page to display extra information that is not available via the Built-
in Success page (A4)

Connectivity Made Easy


18
4. Full customization.

This can be achieved by defining Custom Login pages (B2) which can
optionally include a Custom Credit Card Landing Page (B3). These pages
will eventually post to a Custom Login Processor (B4) which will process
the authentication request and redirect the user to either the Custom
Success page (B5) or the Custom Failure page (B6) based on the
authentication result.
This option provides the most flexibility and allows you to create complex
user login process flows to handle special business requirements.

3.3 Step by Step Configuration


The following subsections describe how to use the Admin GUI to set up the
gateway to support the following customizations:

1. Custom Pre-Login Page


2. Custom Login Page(s)
3. Custom Success Page
4. Full Customization

3.3.1 Custom Pre-Login Page Configuration

To configure Custom Pre-Login Page:

1. Click on Locations, under Policies.

A list of existing locations will be displayed. Click on an


entry to modify it or click to create one.

Figure 3-2 List of Locations

Connectivity Made Easy


19
After selecting, details about the Location are displayed:

Figure 3-3 Location details

To configure a Custom Pre-Login Page, enable the option ‘Customise


Welcome Page’.

3.3.2 Custom Login Page(s) Configuration

To configure Custom Login Pages:

1. Click on Locations, under Policies.

A list of existing locations will be displayed. Click on an entry to modify it or


click to create one.

Figure 3-4 List of Locations

Connectivity Made Easy


20
After selecting, details about the Location are displayed:

Figure 3-5 Location details

To configure a Custom Login Page, enable the option ‘Customise Welcome


Page’.

1. Custom Page URL – This is the URL of the Custom Login page to
send the user to.

2. IP Address, MAC Address, VLAN Name, Requested URL – Check


any of those options to pass them as parameters to the external
Custom Login page.

3. Seamless Relogin- When this option is checked, the gateway will


automatically do a re-login check before redirecting the user to the
custom pre-login page.

You can now fully customize the Login Page based on your preference. To
obtain the various plans that are available, you can call the plan_get_all API
to obtain the necessary information.

To continue with the login process, your Custom Login pages must eventually
post to the Built-in Login Processor.

The URL of the Built-in Login processor is:

1. For complimentary access, access code authentication, local user id


and password authentication and PMS authentication:

http://ezxcess.antlabs.com/login/main.ant?c=proc

Connectivity Made Easy


21
2. For credit card authentication:

http://ezxcess.antlabs.com/login/main.ant?c=cc

The following POST parameters are supported for the Built-in Login Processor.

1. p – Payment type. Acceptable values are:


a. complimentary – complimentary access
b. code – access code authentication
c. local – local user id and password authentication
d. pms – PMS authentication
e. cc – credit card authentication

2. code – Access code (p=code only)

3. uid – User ID (p=local)


PMS Room number (p=PMS, guest based authentication)

4. pwd – Password (p=local)


PMS password (p=PMS, guest based authentication)

5. plan – For p=PMS or p=cc,

Use plan – Plan id


Or use plan_name – Plan name

If your Custom Login Pages reside on an external server, you will need
to create a Walled Garden entry, specifying the IP address of the
external authentication server. This will allow the client to
communicate with the authentication server prior to login.

3.3.3 Custom Success Page Configuration


To configure Custom Success Page:

1. Click on Locations, under Policies.

A list of existing locations will be displayed. Click on an


entry to modify it or click to create one.
After selecting, details about the Location are displayed.
Click button or the button until you see the Success Page
screen.

Connectivity Made Easy


22
Figure 3-6 Success Page Configuration

Enable the checkbox ‘External URL link’, type in the Custom Success Page
URL and select the option ‘use link as login success page’.

You can also choose to pass the zero-configuration variables, such as IP


address, MAC address, VLAN Name, User ID or Access Code to the Custom
Success Page for further customization.

3.3.4 Full Customization Configuration

To configure for Full Customization:

1. Click on Locations, under Policies.

A list of existing locations will be displayed. Click on an entry to modify it or


click to create one.
After selecting, details about the Location are displayed.

Figure 3-7 Location details

Connectivity Made Easy


23
To configure for Full Customization, enable the option ‘Customise Welcome
Page’

1. Custom page URL – This is the URL of the Custom Login page to
send the user to.

2. IP Address, MAC Address, VLAN Name, Requested URL – Check


any of those options to pass them as parameters to the external
Custom Login page.

3. Seamless Relogin- When this option is checked, the gateway will


automatically do a re-login check before redirecting the user to the
custom pre-login page.

Uncheck this option if you want to fully customize the login process
including the re-login portion.

You can now fully customize the whole login process based on your
preference.

If your Custom Login Pages reside on an external server, you will need
to create a Walled Garden entry, specifying the IP address of the
external authentication server. This will allow the client to
communicate with the authentication server prior to login.

3.4 Uploading Customization Files


To upload customized portal pages, a graphical SFTP client is recommended.

1. Enable Remote Access


Make sure the gateway's WAN port is connected to the Internet. SFTP
security requires a reverse lookup of your IP before allowing an SFTP
connection.

2. Login via SFTP Client


Log in to the gateway with your SFTP client. Default user id and
password are ftponly and antlabs. You will be in the /www/pub/
location as this is the SFTP home directory. All further instructions
regarding directories assume this base directory.

3. Create Location Directory


Create your own subdirectory under the /login directory.
E.g. for a guest area, you would create a subdirectory called
“guest_area”. This would allow you to access this customized portal
page at http://ezxcess.antlabs.com/www/pub/login/guest_area/.

4. Upload All Files

Connectivity Made Easy


24
Finally upload all your custom pages into that directory.

3.5 API Customization Logs


To troubleshoot API issues and PHP script problems, you can download the
API logs from the directory /log/php/php.log.

Below are samples of PHP errors or warnings:

[25-Jun-2014 15:27:39] PHP Warning: Missing argument 5 for formDateTimeString() in


/home/httpd/modules/standard/auth.local-2.0/page-local.php on line 1641

Samples of API errors:

Thu, 25 Jun 2014 14:59:00 +0800 [auth_login 2.48] Cookie not found [166] (INPUT:
mode=relogin|client_mac=00:22:41:86:DE:AD|client_ip=10.10.1.244|location_index=6|ppli=
eth0.210|api_interface=php) (OUTPUT: none)

Thu, 25 Jun 2014 15:28:54 +0800 [auth_login 2.48] Invalid argument: password [160]
(INPUT:
userid=test1|password=***|type=local|client_mac=00:13:E8:A3:D0:1D|client_ip=10.10.1.24
9|location_index=6|ppli=eth0.210|api_interface=php) (OUTPUT: none)

Connectivity Made Easy


25
Chapter 4

EXTERNAL AUTHENTICATION INTEGRATION

4.1 Overview
Common authentication methods such as Access Codes, User ID and
password, PMS, Credit card are natively supported by the gateway. However,
there may be instances when there is a need to integrate the gateway with
an authentication method that is not natively supported.

The ability to invoke the API via HTTP is a feature commonly used to support
external integration with existing authentication servers.

This chapter illustrates how external integration can be achieved.

4.2 Authentication Protocol Sequence


Figure 4-1 shows a typical protocol sequence between a client and an
authentication server in a web-based authentication system without the
gateway in place.

This protocol sequence may vary depending on the systems used, but
the general principles apply.

Figure 4-1 UAM Authentication

When the gateway is introduced, the authentication server must be


customized to make use of the Session ID (SID) that the gateway generates
to track the client’s session.

This SID is sent to the authentication server, who must then embed it into the
login page to be sent to the client.

When the client submits the login form, the SID is passed back to the
authentication server along with the submitted credentials, who then uses it
to invoke an HTTP API call to the auth_login module on the gateway.

Connectivity Made Easy


26
Figure 4-2 shows the protocol sequence with the integration of the gateway.

Figure 4-2 Integrated UAM Authentication

The following sections describe the steps required to achieve the integration
with the external UAM-based Authentication Server:

1. Gateway Configuration – Refer to Section 4.2.1.

2. Systems Integration – Refer to Section 4.2.2.

4.2.1 Gateway Configuration


These are the steps to setup the gateway for integration with an external
UAM-based authentication server.

1. Refer to Section 3.3.2, configure a Custom Login Page, sending user to


the following URL:

http://ezxcess.antlabs.com/login.init

You can use your own naming convention in place of “login.init” but
make sure that it tallies with the next step.

2. Create a HTTP URL Walled Garden Rule that will make an API call
when the Login Init URL in the previous step is encountered. See
Figure 4-3.

Connectivity Made Easy


27
Figure 4-3 Invoking the API with a URL Rule

The settings for the various fields are as follows:

i. HTTP URL is http://ezxcess.antlabs.com/login.init

ii. Click on button, and enter the API URL into the
Redirect to textbox:

http://127.0.0.1/api/

iii. Add zero-config variables… – Select the Select All


checkbox.

iv. Additional URL query string parameters… – Create the


following parameters:

op = auth_init
successURL = http://www.antlabs.com
api_password = [api password]

The successURL is the URL of the login page on the external


authentication server. The one shown here is just an example and you
should replace it accordingly.

3. Create a Walled Garden entry, specifying the IP address of the


external authentication server. This will allow the client to
communicate with the authentication server prior to login.

Connectivity Made Easy


28
4.2.2 Systems Integration
Apart from configuring the gateway, the external authentication server must
be configured to perform the following tasks:

1. The Authentication Server must read the SID sent in the URL query
string when the client sends the HTTP request for the login page. See
Step 4 in Figure 4-2.

2. The Authentication Server must embed the SID within the login page
as a hidden HTML Form element. This is so that the client will send the
SID along with the login credentials when it submits the form. See Step
5 in Figure 4-2.

3. The Authentication Server must use the SID submitted along with the
login credentials and use it to tell the gateway that the login was
successful by invoking the auth_login API module via HTTP. See Step
6 – 8 in Figure 4-2.

The Authentication Server should also parse the result of the API
module execution as illustrated in Section 2.2.2.

Connectivity Made Easy


29
Chapter 5

API REFERENCE SUMMARY

This section refers to API Version 2.72.7. Some of the APIs may not be
available depending on your API version.

5.1 Account
• account_add – Create new local account(s)
• account_delete – Delete local account
• account_get – Retrieve details of local account(s)
• account_get_all – Retrieve the account details based on some filters
• account_update – Update local account

5.2 API
• api_module - Display installed API modules version
• api_modules - Display installed API modules
• api_password_get - Retrieve the API password
• api_version - Display installed API version

5.3 Authentication
• auth_authenticate – Perform verification of local and RADIUS
account
• auth_init – Initialize a Session ID
• auth_login – Perform Login for client
• auth_logout – Perform Logout for client
• auth_update – Perform Session update for client
• sid_get – Retrieve Session ID data
• publicip_get – Get a public IP address for a client device

5.4 Plan
• plan_get_all - Retrieve all plan configured on the gateway
• plan_get_id – Retrieve the plan’s ID
• plan_add - Add new plan
• plan_delete - Delete existing plan
• plan_update - Update existing plan

5.5 Data
• data_get - Retrieves a single entry of data matching the specified
criteria
• data_set - Stores a unique entry of data consisting of one or more
data arguments
• data_get_keys - Retrieves a list of keys matching the specified
criteria

Connectivity Made Easy


30
• data_get_names - Retrieves a list of names matching the specified
criteria
• data_delete - Removes data matching the specified criteria

5.6 Property Management System (PMS)


• pms_bill_retrieve - Retrieve all guest hotel bill information
• pms_bill_checkout – Perform guest checkout
• pms_billing_log - Retrieve HSIA billing entries from the gateway
PMS database
• pms_guest_status - Retrieve guest status information
• pms_message_get - Retrieve guest messages from database
• pms_message_refresh - Refresh the list of guest messages
• pms_message_delete - Delete a guest message
• pms_post_check - Check PMS posting details
• pms_post - Send a posting to the PMS system
• pms_room_status - Retrieve guest room status information
• pms_room_status_update - Update guest room status information.
Available for IG4 (patch 3 and above) and InnGate (patch 51 and
above).

5.7 Network
• vlan_get – Returns information on a VLAN
• vlan_update – Update VLAN information
• device_status – Retrieve the network status of a client device

5.8 Credit Card


• cc_payflowpro_post – Payflow Pro credit card payment

5.9 Social login


• social_embed - Provide the HTML code segment to allow the user to
embed a social login button on the page.
• social_init - Initialize and create a social login attempt.
• social_return - Social Login Return Processor. Tells the social API to
process a social login attempt, upon returning from the social network
back to the gateway.

5.10 User Form


• form_add – Insert data to form_user table and send user data to acs.
• form_delete – Delete form user data.
• form_get – Retrieve details by form_uid.
• verified_add – Update verified user details.
• verified_delete - Delete verified user data.
• Verified_get – Retrieve details by verified_uid
• otp_add – Add OTP for verification either by email or mobile.
• otp_check – Check if OTP is valid or not.
• captcha_get – Generate captcha id and code.

Connectivity Made Easy


31
• captcha_check – Validate captcha.

5.11 Miscellaneous
• browser - Detect the type of browser used
• session_monitor_get_all - Get all active sessions or search active
sessions with filter
• firewall_open - Interact with the gateway’s firewall to allow TCP
connections for a non-logged in user for a limited duration
• smpp_post - This allows the user to send out SMS through the
SMSC that is configured in IG4.
• smtp_post - This allows the user to send EMAIL through the SMTP
that is configured in the gateway.
• smtp_post - This allows the user to send out an email message
through the email client setting configured in the gateway.

Connectivity Made Easy


32
Chapter 6

API REFERENCE DETAILS

This section refers to API Version 2.72.7. Some of the required and optional
input, output and result codes may vary depending on your API version.

6.1 Account

6.1.1 account_add - version 1.18.1

Create new local account(s).

Required Input
Creator 20 chars, e.g. ‘admin’, ‘pms’, ‘printer’
For radius authentication value must be ‘radius’.

plan_id or plan_name or plan_id, plan_name or plan_uid of a plan that is not


plan_uid Auto-Login

Optional Input
Type ‘userid’ or ‘code’
If not set, defaults to userid.

Userid Max 90 chars, min 3, valid chars: A-Z a-z 0-9 - .


_@$!

If userid is blank, either userid_format or userid_start (all optional)

userid_format 'alpha', 'alnum', 'num' . Default value is alpha


If userid_format is set (optional)
userid_length Default value 5, minimum value is 3
userid_prefix Default blank, max 20
userid_suffix Default blank, max 20

userid_start Starting number, or 'auto'* to continue from last


highest used number. Default value is auto.

password Unlimited chars, default blank


If password is blank (optional)
password_length
password_format Default value 5, minimum value 3
'alpha', 'alnum', 'num'. Default value is alnum.

code Max 90 chars, min 3, valid chars: A-Z a-z 0-9 - .


if code is blank (all optional) _@$!
either one:
code_start
code_format Starting number, or 'auto'* to continue from last
highest used number

Connectivity Made Easy


33
if code_format is set 'alpha', 'alnum', 'num'. Default value is alnum
(optional)

code_length Default value is 5, minimum value is 3


code_prefix Default value is blank, maximum value is 4
code_suffix Default value is blank, maximum value is 4

count Number of accounts to create, default 1, max


500

description 255 chars

enabled 'yes'* or 'no'. Default value is 'yes'

valid_from 'now' or Unix time. Default value is 'now'


valid_until Unix time or blank. Default value is blank
All required if any is specified:
daily_days String of included days consisting of digits 0-6
representing Sun-Sat
daily_start_time
hh:mm:ss
daily_end_time hh:mm:ss

login_max Value >= 1, default unlimited

sharing_max Value >= 1, default to the plan concurrent


logins value

billing_id Max 100 char, default blank

allowed_login_zone Smallint, default value is 0

dev_restrict 'on', 'off' or 'first_login', default 'off'

restrict_mac Valid MAC address

acs_user_token Default blank, max 100

add_transaction ‘yes’ or ‘no’, default ‘yes’. ‘yes’ means a


transaction will be stored in ACS if this gateway
is linked to ACS.

If add_transaction is 'yes' then the


following input, if specified, will be
sent up to ACS

client_ip Client valid IP address

client_mac Client valid MAC address

guest_name Guest name

guest_no Guest number

room_no Room number where the guest checks in

guest_vip_status Guest VIP status (Y or N)

guest_arrival Date of check in eg: yymmdd

guest_departure Date of check out eg: yymmdd

custom_1…custom_10 User definable fields. Alphanumeric, 100


characters each

Connectivity Made Easy


34
dyn_vlan dyn_vlan should be a existing vlan_id

Output
op The name of this module: account_add

version The version of this module

result The result of the execution: ok if successful, or error when the module failed
( pipe separated list of result for each account: ‘ok’ or error message )

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below ( pipe separated list of result for
each account: ‘ok’ or error message )

error If result is error, contains a description of the error

created Number of accounts created successfully

If account type is userid

userids Pipe separated list of created userids

passwords Pipe separated list of created passwords

If account type is code

codes Pipe separated list of created codes

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

For Radius
When creating a local account that requires Radius Accounting during
auth_login, the following attributes must be set accordingly:
1. creator must be set as ‘radius’.
2. billing_id must be the same as the radius user id used for
authentication. It will be used for radius accounting.

Connectivity Made Easy


35
6.1.2 account_delete - version 1.2.0

Remove user accounts.

Required Input
userid or code single userid, or pipe-separated list of userids
single code, or pipe-separated list of codes

Output
op The name of this module: account_delete

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

deleted Number of account deleted successfully

results Pipe-separated list of results for each account: ok or error message

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

Connectivity Made Easy


36
6.1.3 account_get - version 1.7.0

Retrieve the details of specific account.

Required Input
userid or code or client_mac Valid userid or code or client_mac

Output
op The name of this module: account_get

version The version of this module

result The result of the execution: ok if successful, or error when the


module failed

resultcode The result code matching the result: 0 if result is ok or one of the
result codes in the "Result Codes" section below

error If result is error, contains a description of the error

userid Userid of the account, pipe separated if sharing max value more than
1

code Code of the account, pipe separated if sharing max value more than 1

sharing_index Sharing index value, pipe separated if sharing max value more than 1

client_mac Client_mac for the account, pipe separated if sharing max value more
than 1

description Account description, pipe separated if sharing max value more than 1

enabled Account status

valid_from Account valid_from value

valid_until Account expired date and time

login_limit Login limit value, pipe separated if sharing max value more than 1

login_max Maximum login allowed

login_count Each login will increase the value

sharing_max Maximum sharing allowed for the account, pipe separated if sharing
max value more than 1

plan Plan name, pipe separated if sharing max value more than 1

duration_balance Remaining duration, pipe separated if sharing max value more than 1

volume_balance Remaining volume in bits (if the account plan is volume based) , pipe
separated if sharing max value more than 1

create_time Time and date account was created

update_time Time and date account was last updated

billing_id The billing ID associated with this account

Connectivity Made Easy


37
creator The account creator, pipe separated if sharing max value more than 1

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

Connectivity Made Easy


38
6.1.4 account_get_all - version 1.4.0

Retrieve the details of all accounts.

Filter
creator e.g. ‘admin’, ‘pms’, ‘printer’, ‘radius’, ‘cc’, ‘complimentary’

description Description filter

type ‘userid’ or ‘code’

valid_from_start Start timestamp of validfrom filter

valid_from_end End timestamp of validfrom filter

valid_until_start Start timestamp of validuntil filter

valid_until_end End timestamp of validuntil filter

created_start Start time of createdtime filter


Format:
- ‘y-m-d h:m:s’ e.g. ‘2010-03-24 17:14:35’
- ‘y-m-d’ will be treated as ‘y-m-d 00:00:00’ e.g. ‘2010-03-15’
- ‘d m y’ will be treated as ‘d m y 00:00:00’ e.g. ‘7 Jun 2010’

created_end End time of createdtime filter


Format:
- ‘y-m-d h:m:s’ e.g. ‘2010-03-24 17:14:35’
- ‘y-m-d’ will be treated as ‘y-m-d 00:00:00’ e.g. ‘2010-03-15’
- ‘d m y’ will be treated as ‘d m y 00:00:00’ e.g. ‘7 Jun 2010’

plan_name Plan name filter

dev_restrict Device restriction mode filter

restrict_mac MAC address filter

billing_id Billing ID filter

plan_uid Plan uniwue unique filter

Output
Op The name of this module: account_get_all

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

count Number of records found

header 1. Type
2. Creator

Connectivity Made Easy


39
3. Userid
4. Code
5. Description
6. Enable
7. Valid_from
8. Valid_until
9. Login_limit
10. Login_max
11. Login_count
12. Sharing_max
13. Plan_name
14. Create_time
15. Update_time
16. Accounting
17. Billing_ID
18. Dev_restrict
19. Restrict_mac

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

Connectivity Made Easy


40
6.1.5 account_update - version 1.18.0

Change user account information

Required Input
userid or code The field to be used to match the entry to be updated. Valid fields:
userid or code

Optional Input
password Password. Must be set if you are adding a built-in account.
If password is blank: Set to blank to auto generate password.
password_length
password_format Default value is 5, minimum is 3
‘alpha’ (alphabet), ‘alnum’ (alphanumeric), ‘num’
(numeric). Default is alnum

description 255 chars

enabled 'yes' or 'no'

valid_from Required if valid_until is set to a unix time


Start date/time of the user account. In Unix time format.
− Set to ‘now’ to use the current time
− Set to blank to remove the start time

valid_until Unix time or blank

daily_limit 'on' or 'off'

daily_days String of included days consisting of digits 0-6


representing Sun-Sat

daily_start_time hh:mm:ss

daily_end_time hh:mm:ss

login_limit ‘on’ or ‘off’

login_max Value >= 1

sharing_max If sharing_max >= 2, value >= 2 and bigger than


previous value.

plan_id or plan_name or Only if the account never login, and the plan is not Auto-
plan_uid Login

allowed_login_zone Smallint, default value is 0

dev_restrict 'on', 'off'(default) or 'first_login'

restrict_mac MAC Address

dyn_vlan dyn_vlan should be a existing vlan_id

Connectivity Made Easy


41
Output
Op The name of this module: account_update

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

password Generated password

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

Connectivity Made Easy


42
6.2 API

6.2.1 api_module - version 1.01

Return the version of the specified API module

Required Input
module Name of the module (op)

Output
op The name of this module: api_module

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

version Version of the specified module

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Invalid module

98 Module has no version number

Connectivity Made Easy


43
6.2.2 api_modules - version 1.02

Returns a list of installed API modules

Output
op The name of this module: api_modules

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

modules List of installed API modules. Modules are separated by a pipe | character.
The module name and module version is separated by a space character.

<module 1 name> <module 1 version>|<module 2 name> <module 2


version>|<module 3 name> <module 3 version>|...

count Total number of installed API modules

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 API modules could not be found

Connectivity Made Easy


44
6.2.3 api_password_get - version 1.01

This API returns the configured API password for the given API
interface type. This module only works when executed from the PHP
API interface using the API class.

Required Input
type The API interface type. Set to http to get the API password for HTTP API calls.

Output
op The name of this module: api_password_get

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

api_password The API password

type The interface type for the API password. Matches the type input
argument.

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

3 The module must be executed from a PHP API interface

90 The API password cannot be retrieved successfully

Connectivity Made Easy


45
6.2.4 api_version - version 1.0

Returns the version of the API installed in the gateway

Output
op The name of this module: api_version

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

api_version The version of the API

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 API version could not be determined

Connectivity Made Easy


46
6.3 Authentication

6.3.1 auth_authenticate - version 1.2.1

Perform verification of local and RADIUS accounts. This API does


not perform the actual login.

Required Input
code or (userid and password) Access code or (userid and password) depending on
the authentication method

Optional Input
mode local or radius or ldap ( Default : local )

Output
op The name of this module: auth_authenticate

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

radiusattrs Will have radius attributes being return by radius server A pipe-delimited
list of keys

Result Code
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 mode argument value incorrect

150 Authentication error

151 Authentication rejected. Gateway not in Radius client list or incorrect shared secret

152 Sharing limit exceeded

Connectivity Made Easy


47
153 Password must be provided

154 No response from radius servers: check radius server configuration

155 Cannot login when access control is not set to charged access

156 userid is blacklisted

157 Maximum number of users for this location exceeded

159 Invalid access code

160 Invalid userid and/or password

161 Account disabled

162 Account not yet valid or expired

163 Not allowed to login at this point of this time

164 Maximum number of login reached

165 Cookie data not found

166 Cookie not found

167 Account cannot be used with this device

168 Account usage duration and/or volume has expired

169 Stored volume accounting not available

170 Radius module license not found

Radius attributes:
1. Session-Timeout - integer
2. Radius session time out

ANTlabs Vendor specific attributes:


1. Antlabs-User-Group-Name (12902:1) – string, Plan name of
account to be created
2. Acct-Session-Octets (12902:21) – integer, Radius account
volume
3. Acct-Session-Gigawords (12902:22) – integer, Radius account
volume (giga)

Sample output:
op = auth_authenticate
version = 1.1
result = ok
resultcode = 0
radiusattrs = Antlabs-User-Group-Name=stored_volume|Antlabs-Acct-
Session-Octets=12345678|Framed-Protocol=1|Service-Type=2|Session-
Timeout=86400

Connectivity Made Easy


48
6.3.2 auth_init - version 1.11

Initializes and returns a unique session ID. Session ID is associated


with the provided input arguments.

Required Input
client_mac The 4 zero-config variables provided by a URL rewrite
client_ip rule
location_index
ppli

Optional Input
new_sid • When set to 1, the module will not attempt to reuse and issue the same
sid to the same device
• A new sid will always be issued
• This is useful when auth_init is used more than once during a login
procedure, and with different or changing [extra-fields]
o In such cases, the [extra-fields] configured may be inconsistent
when the same sid is reused on subsequent initializations
o This may cause logins to fail, since it could not reference the correct
[extra-fields] set during a specific auth_init execution
• However, note that if this feature is used, a DoS attack that executes
auth_init many times consecutively might cause the system to get
overloaded with data

[extra- You can set any other arguments of any name, and they will be stored and
fields] associated with the session ID. These arguments can be retrieved using the
sid_get module.
• Arguments beginning with login- will be used by the auth_login module
as input
• Arguments beginning with logout- will be used by the auth_logout
module as input
• Arguments beginning with update- will be used by the auth_update
module as input
For example, if login-userid is set to abc, the auth_login's userid input
argument will automatically be set to abc when the auth_login is executed
with the session ID provided as input.

Output
op The name of this module: auth_init

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Connectivity Made Easy


49
sid A unique 32-character session ID

client_mac Zero-config variables associated with the session ID


client_ip
ppli
vlan

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

102 Input arguments are invalid or insufficient

141 Failed to create a new session ID

Connectivity Made Easy


50
6.3.3 auth_login - version 2.57.2
Login and create a new session for a device on the LAN

Required Input
sid or (client_mac, client_ip, location_index The session ID or the 4 zero-config
and ppli) variables

code or (userid and password) Access code or (userid and password)


depending on the login method

Optional Input
mode login or relogin. default: login
for normal login mode=login
for attempting relogin of the user via cookie mode=relogin

secret Ensures that the provided secret code matches the secret input argument
provided to auth_init

type local|radius, default: local

radiusattrs 1|0, default: 0. When set to 1, the Radius attributes will be displayed in the
output.

delay Milliseconds, Range: 0-20000, default: 1000ms

Output
op The name of this module: auth_login

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

requestedURL The URL that the device last tried to access. Will be blank if there is no
HTTP request.

preloginURL The URL that the device tried to access before logging in and hitting
auth_init to get a sid. The URL is usually the browser's home page. Will
be blank if the user did not access any URL before hitting the login page.

publicip Result of the public IP allocation: ok when a public IP address is allocated


successfully, or error when it fails. Only output when publicip is set to
1, and when the result is ok.

sid The session ID, if sid is set as an input argument

client_mac Zero-config variables used for login


client_ip

Connectivity Made Easy


51
ppli
vlan

radiusattrs If radiusattrs is 1, contains the RADIUS attributes returned from the


authentication server

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Missing argument: code or (userid or password) must be provided


104 Missing argument: sid or (client_mac, client_ip, location_index & ppli) must be
provided

105 Invalid argument: The sid could not be found

110 The authentication type is not found, or is incorrectly

150 Authentication error

151 Authentication rejected

152 Sharing limit exceeded

153 Password must be provided

154 No response from radius servers: check radius server configuration

155 Cannot login when access control is not set to charged access

156 userid is blacklisted

157 Maximum number of users for this location exceeded

158 Secret does not match the secret provided to auth_init

159 Invalid access code

160 Invalid userid and/or password

161 Account disabled

162 Account not yet valid or expired

163 Not allowed to login at this point of this time

164 Maximum number of login reached

165 Cookie data not found

166 Cookie not found

167 Account cannot be used with this device

168 Account usage duration and/or volume has expired

169 Stored volume accounting not available

Connectivity Made Easy


52
171 Zone not found

172 Not allowed to login in this zone

173 Invalid delay execution time

Usage Example
There are 2 ways of using auth_login API:
a. to perform normal authentication or
b. attempt relogin of a user with an automatic relogin plan

Below are the minimum parameters required for the 2 usage modes
of usage:

1. Login authentication
• sid or (client_mac, client_ip, location_index, ppli)
• code or ( userid & password )
• mode=login
2. Relogin authentication
• sid or (client_mac, client_ip, location_index, ppli)
• mode=relogin

If your customization does not need to support automatic relogin,


then the process flow is as follow:

login page processor page success page


auth_login
(mode=login)

If your customization requires automatic relogin support, then the


login page will need to check for cookie. If the cookie exists and
session is valid, the user will be automatically logged in and
redirected to the success page. If the cookie does not exist, relogin
the user based on MAC address and Zone. Else, the login page will
be shown, and the normal login process will follow.

processor page
Relogin cookie
auth_login
does not exists
(mode=login)
login page success page
auth_login
(mode=relogin)
Relogin cookie exists &
session valid

Connectivity Made Easy


53
6.3.4 auth_logout - version 1.22.0

Logout a device on the LAN

Required Input
sid (or client_mac) Either the session ID or client_mac zero-config variable must be
provided

Optional Input
usergroup user group name to change to after logout

radiusattrs 1|0, default: 0. When set to 1, the Radius attributes will be displayed in the
output.

Output
op The name of this module: auth_logout

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

accounting Result of the accounting operation: ok when there is no accounting error or


error when the accounting server could not be contacted during logout. This
argument is only output when the logout is successful (i.e. result is ok).
When this is error, the logout is likely to be successful, but the accounting
stop packet could not be sent, so the user will be in a pending_close status
in the Session Monitor until the server is able to retry and send the
accounting stop packet successfully.

sid The session ID, if sid is set as an input argument

client_mac MAC address of the device used for logout

radiusattrs If radiusattrs=1; <key1>=<value1>|<key2>=<value2>|...

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

103 Missing argument: client_mac or sid must be provided

Connectivity Made Easy


54
105 Invalid argument: The sid could not be found

110 The authentication type set in auth_login is incorrectly configured

115 Invalid argument: The specified usergroup (plan) does not exist

122 The device's MAC address is not found on the LAN network

190 Logout error

Connectivity Made Easy


55
6.3.5 auth_update - version 2.0
Update a device's session
• Used to change the usage duration
o Either duration or volume must be set
o The device must have a MAC address

Required Input
client_mac client_mac variable must be provided

Optional Input
duration Change the number of minutes of network access. Overwrites the current
value.

volume Change the number of bytes to the current volume balance of the device

Output
op The name of this module: auth_update

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Argument values incorrect

98 Critical error

Connectivity Made Easy


56
6.3.6 sid_get - version 1.02

Returns the variables associated with a session ID created by


auth_init

Required Input
sid The session ID

Output
op The name of this module: sid_get

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the
result codes in the "Result Codes" section below

error If result is error, contains a description of the error

sid The retrieved session ID

client_mac Zero-config variables associated with the session ID


ppli
vlan
client_ip
location_index

[extra-fields] Any other extra fields set during auth_init will also be returned

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

105 Invalid sid

Connectivity Made Easy


57
6.3.7 publicip_get - version 1.01

Get a public IP address for a logged in user

Required Input
sid (or client_mac & ppli) The session ID or 2 zero-config variables must be provided

Output
op The name of this module: publicip_get

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

4 The sid could not be found

98 Failed to get a public IP address

Connectivity Made Easy


58
6.4 Plan

6.4.1 plan_add - version 1.6.0

Add new plan.

Required Input
plan_name or plan_uid plan name or plan UID, maximum 100 characters. If only
plan_uid is specified, then plan name will take the value of the
specified plan_uid

type plan type, 'unlimited', 'fixed_duration', 'stored_duration'


'stored_volume' if Volume Accounting module is activated

If type is fixed_duration or stored_duration (required):

duration duration in minutes, number between 1 and 2147483647 (>=1


and <=2147483647)

If Volume Accounting module is activated (required):

fair_use Option to apply volume limit, 'on' or 'off'. Default is 'off'

If type is stored_volume or fair_use is on (required):

volume Volume in MB, number between 1 and 2147483647 (>=1 and


<=2147483647)

qos_class QoS class, 'unlimited', 'PT-6' if premium is enabled, 'CT-7' if


complimentary is enabled, 'GB-1' to 'GB-30' if guaranteed is
enabled

download_bandwidth Download bandwidth, number between 0 and 2147483647


(>=0 and <=2147483647), 0=unlimited. 0 means unlimited,
i.e. no download bandwidth limit per device

upload_bandwidth Upload bandwidth, number between 0 and 2147483647 (>=0


and <=2147483647), 0=unlimited. 0 means unlimited, i.e. no
upload bandwidth limit per device

Optional Input
price Plan price, number between 0.00 and 999999999.99, (>=0 and
<=999999999.99). Default is 0.00

relogin Option to support relogin, 'on' or 'off'. Default is 'off'

public_ip Option to get public ip, 'on' or 'off' or 'ask'. Default is 'off'

download_unit Download bandwidth unit 'kbps'* or 'mbps'

upload_unit Upload bandwidth unit 'kbps'* or 'mbps'

If volume is not blank (optional):

volume_action After volume is exceeded, 'change' plan or 'logout' user. Default is

Connectivity Made Easy


59
'change' and will change the user to the Throttled plan

volume_action After volume is exceeded, 'change' plan or 'logout' user. Default is


'change' and will change the user to the Throttled plan

event_id Event id (must be a valid integer)

Output
op The name of this module: plan_add

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Invalid argument: Volume Accounting module must be activated to apply volume


limit

98 Database error

502 Invalid argument: plan already exists

Connectivity Made Easy


60
6.4.2 plan_delete - version 1.4.0

Delete existing plan.

Required Input
plan_name plan name or plan_uid (not allow to delete default plan 'Throttled')
or plan_uid

Output
op The name of this module: plan_delete

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Argument values incorrect

98 Critical error

501 Invalid argument: plan not found

504 Deletion error: plan is being used

Connectivity Made Easy


61
6.4.3 plan_get_all - version 1.3.0

Retrieve all the plans configured in the gateway.

Output
op The name of this module: plan_get_all

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

count The number of plans

[record_X] Each plan will be returned as an individual output argument.

X is the Within each output argument, the pipe | character is used to separate the
value for value for each field, if there are more than one values within the field. Do
each record not assume that this is a single value without pipe.

Example:

record_2 =
6|342.00|fixed_duration|on|1440|off|0|change|off|0|bps|off|0|bps|off|on|o
ff|1

Below are the fields being returned by the plan_get_all API in sequence:
1. plan ID
2. Price
3. Authentication type (unlimited, fixed_duration, stored_duration,
stored_volume)
4. duration limit (on, off)
5. valid duration in minutes
6. volume limit status (on, off)
7. valid volume limit in megabytes
8. action if stored volume plan is expired (change, logout)
9. download limit (on, off)
10. download bandwidth
11. download bandwidth unit (bps, kbps, mbps)
12. upload limit (on, off)
13. upload bandwidth
14. bandwidth unit (bps, kbps, mbps)
15. public IP status (on, ask, off)
16. when user comes back attempt user to relogin ( on, off )
17. fair_use value ( on, off )
18. Plan name

Connectivity Made Easy


62
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Could not read plan data.

Connectivity Made Easy


63
6.4.4 plan_get_id - version 1.3.0

Retrieve the plan’s ID.

Required Input
plan_name The name of the plan or plan unique identifier
or
plan_uid

Output
op The name of this module: plan_get_id

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

plan_id The plan's ID

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Could not read plan data.

501 Plan not found

Connectivity Made Easy


64
6.4.5 plan_update - version 1.4.0

Update an existing plan.

Required Input
plan_name Plan name or plan unique identifier
or
plan_uid

Optional Input
price Plan price, number between 0.00 and 999999999.99, (>=0
and <=999999999.99)

relogin Option to support relogin, 'on' or 'off'

public_ip Option to get public ip, 'on' or 'off' or 'ask'

qos_class QoS class, 'unlimited', 'PT-6' if premium is enabled, 'CT-7' if


complimentary is enabled, 'GB-1' to 'GB-30' if guaranteed is
enabled

download_bandwidth Download bandwidth, number between 0 and 2147483647


(>=0 and <=2147483647), 0=unlimited

upload_bandwidth Upload bandwidth, number between 0 and 2147483647


(>=0 and <=2147483647), 0=unlimited

download_unit Download bandwidth unit 'kbps' or 'mbps'

upload_unit Upload bandwidth unit 'kbps' or 'mbps'

sharing Sharing default upon creating account

If plan_name is not 'Throttled'

new_plan_name New plan name, maximum 100 characters

Output
op The name of this module: plan_update

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Connectivity Made Easy


65
Result Codes
0 Execution successful

1 Missing argument: plan_name must be provided

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Invalid argument

98 Critical error

501 Invalid argument: plan not found

503 Invalid argument: new plan name already exists

Connectivity Made Easy


66
6.5 Data

6.5.1 data_set - version 1.2.0

Stores a unique entry of data consisting of one or more data


arguments:
• If the name and key input arguments match an existing
entry, that entry will be updated
• Each stored entry is identified uniquely by a combination of
name and key
• Setting the name argument differently allows you to store
different sets of data by giving it different names (e.g.
cookies, userids)
• key can be similar across multiple data sets, if necessary
(e.g. the names userids_allowed and userids_free_access can
use a key which is the user ID)

Required Input
name A unique string identifying the set of data being stored. 32 characters
maximum.

key Unique key of the entry. 64 characters maximum.

[extra-fields] One or more fields to be stored as part of the entry's data.

These argument names cannot be used: name, key, timestamp, op,


api_interface, version, result, resultcode

Output
op The name of this module: data_set

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Data could not be set

Connectivity Made Easy


67
6.5.2 data_get - version 1.2.0

Retrieves a single entry of data matching the specified criteria

Required Input
name A unique string identifying the set of data being stored

key Unique key of the entry

Optional Input
timestamp If set, the timestamp output argument will be formatted using PHP's date()
function

Output
op The name of this module: data_get

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

name A unique string identifying the set of data being stored

key Unique key of the entry

timestamp Time that the data was created or updated with data_set. In Unix time
format if the timestamp input argument is not set.

[extra- Other extra fields stored with data_set


fields]

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Criteria from name and key doesn't match any data

98 Data could not be retrieved

Connectivity Made Easy


68
6.5.3 data_get_keys - version 1.2.0

Retrieves a list of keys matching the specified criteria


• If no optional input arguments are specified, all available keys
will be output

Optional Input
name Get entries belonging to this name

after_timestamp Get entries created/set on or after this time. In Unix time format.

before_timestamp Get entries created/set on or before this time. In Unix time format.
Set to now to use the current time.

Output
op The name of this module: data_get_keys

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

keys A pipe-delimited list of keys


<key1>|<key2>|<key3>|...

count Number of keys output

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Data could not be retrieved

Connectivity Made Easy


69
6.5.4 data_get_names - version 1.2.0

Retrieves a list of names matching the specified criteria


• If no optional input arguments are specified, all available
names will be output

Optional Input
key Get entries with this key

after_timestamp Get entries created/set on or after this time. In Unix time format.

before_timestamp Get entries created/set on or before this time. In Unix time format.
Set to now to use the current time.

Output
op The name of this module: data_get_names

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

names A pipe-delimited list of names


<name1>|<name2>|<name3>|...

count Number of names output

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Data could not be retrieved

Connectivity Made Easy


70
6.5.5 data_delete - version 1.2.0

Removes data matching the specified criteria


• At least one of the optional input arguments must be set
• If both after_timestamp and before_timestamp are not
set, entries that match the other criteria will be removed,
irregardless of the time the entry is created/set
• If name is set and key is not set, all entries (of any key)
matching name will be removed
• If key is set and name is not set, all entries (of any name)
matching key will be removed

Optional Input
name A unique string identifying the set of data being stored

key Unique key of the entry

after_timestamp Delete entries created/set on or after this time. In Unix time format.

before_timestamp Delete entries created/set on or before this time. In Unix time


format. Set to now to use the current time.

Output
op The name of this module: data_delete

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

count Number of entries deleted

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

98 Data could not be deleted

Connectivity Made Easy


71
6.6 Property Management System (PMS)

6.6.1 pms_bill_retrieve - version 1.0.1

Retrieves all guest hotel billing information

Required Input
guest_no Guest number

room_no Room number

Optional Input
force 0 or 1. Default is 0

Output
op The name of this module: pms_bill_retrieve

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

balance Total balance of the billing

bill_item_x Format:
Bill_item_x:description|item amount|department code|Reservation No|Room
No|Folio No|Item Display Flag|Date|Time
Ex:
bill_item_1=coke|100|123|10001|201|1000|Y|20100101|2310

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

Connectivity Made Easy


72
400 Transaction failed

401 Transaction timed out

402 Not supported by protocol

403 Not enough memory

404 Previous request is still being processed

405 Failed to send request

408 Unknown field guest_get_bill

410 Record does not exist

411 Transaction is incomplete

412 Transaction is rejected

413 Transaction is void

414 Transaction did not return bill_id

415 Bill not found

416 Bill items not found

Connectivity Made Easy


73
6.6.2 pms_bill_checkout - version 1.0.1

This API performs a guest remote checkout. This API can only be
called after a successful pms_bill_retrieve API call.

Required Input
guest_no Guest number

room_no Room Number

balance Total balance of the billing

Output
op The name of this module: pms_bill_checkout

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

400 Transaction failed

401 Transaction timed out

402 Not supported by protocol

403 Not enough memory

404 Previous request is still being processed

405 Failed to send request

409 Unknown field guest_remote_checkout

410 Record does not exist

411 Transaction is incomplete

Connectivity Made Easy


74
412 Transaction is rejected

413 Transaction is void

415 Bill not found

Connectivity Made Easy


75
6.6.3 pms_billing_log - version 1.0.1

This API retrieves HSIA billing entries from the gateway's PMS
database.

Optional Input
start_time Starting date and time of the log entries to be retrieved. In GNU standard
date and time format.

end_time Ending date and time of the log entries to be retrieved. In GNU standard date
and time format.

room_no When specified, limits the entries to the specified room number. When left
empty, all room numbers are considered.

sort Field to be used for sorting the retrieved log entries : date(default) or
room_no

order Sort order of the sort field chosen : asc ( ascending ) or desc ( descending )

count When specified, limits the number of log entries retrieved. Use in conjunction
with the page argument. When left empty, all matching entries will be
retrieved.

page The logical “page” number to be retrieved, taking into account the number of
entries retrieved limited by the count argument. Use in conjunction with the
count argument. Defaults to page 1.

guest_no When specified, limits the entries to the specified guest number. When left
empty, all guest numbers are considered.

Output
op The name of this module: pms_billing_log

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

count The total of how many record being shown

record_x Each record will contain pms billing log details for each transaction
Example:
record_1 = 9|2009-06-25 16:34:57|0|VLAN 210||21600|2009-06-25
16:34:57|2009-06-25 16:34:57|1000|S||Fixed Duration 6 hours

Below are field being return by API pms_billing_log in sequence :

1. Billing ID
2. date of billing transaction
3. guest number
4. room number
5. original room number (if the guest ever changed room)

Connectivity Made Easy


76
6. usage time
7. start time
8. charge start time
9. amount
10. status
11. hardware address ( MAC address )
12. description

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

417 Current PMS type is incorrect

Connectivity Made Easy


77
6.6.4 pms_guest_status - version 1.0.1

Retrieve guest status information

Required Input
room_no or Retrieve entries either by guest name or room number. If both are
guest_name or specified, guest_name will be used.
guest_no
For Galaxy, it uses either combination of room_no and guest_name,
room_no and guest_no or room_no and guest_name and guest_no.

Output
op The name of this module: pms_guest_status

version The version of this module

result The result of the execution: ok if successful, or error when the


module failed

resultcode The result code matching the result: 0 if result is ok or one of the
result codes in the "Result Codes" section below

error If result is error, contains a description of the error

count The number of entries retrieved.

[field] If count is 1 or more, fields will be returned as individual output


argument.
Within each output argument, the pipe | character is used to
separate the value for each field, if there are more than one
values within the field. Do not assume that this is a single value
without a pipe |, because it is possible for a guest room to have
two guest.

guest_status_id Guest status ID

guest_no Guest number

guest_name Guest name

room_no Room number where the guest checks in

date Date of check in (timestamp)

status Y or N

guest_vip_status Guest VIP status (Y or N)

guest_payment_type Guest payment type (NO POST or ALLOW POST)

guest_departure Date of check out

guest_share Guest sharing (Y or N)

a0..a9 User definable fields. Alphanumeric, 100 characters each

record_date

Connectivity Made Easy


78
record_time

guest_arrival Guest arrival date

guest_first_name Guest first name

guest_group_no Guest group number

guest_lang Guest language. The supported languages are:


EA: English/American
FR: France
GE: German
IT: Italian
JA: Japanese
SP: Spanish

guest_title Guest title

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

417 Current PMS type is incorrect

Connectivity Made Easy


79
6.6.5 pms_message_get - version 1.0.1

Retrieves guest messages

Required Input
guest_no Guest number

room_no Room number

Optional Input
message_id Message ID

Output
op The name of this module: pms_message_get

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

count The total of how many record being shown

message_x Format:
message_x=message_id|message
Example:
Message_1=1001|You have mail
Message_2=900|This is message 2

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

Connectivity Made Easy


80
6.6.6 pms_message_refresh - version 1.0

Refreshes the list of guest messages

Required Input
guest_no Guest number

room_no Room number

Output
op The name of this module: pms_message_refresh

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

400 Transaction failed

402 Not supported by protocol

403 Not enough memory

404 Previous request is still being processed

405 Failed to send request

406 Unknown field guest_guet_msg

410 Record does not exist

Connectivity Made Easy


81
6.6.7 pms_message_delete - version 1.0

Deletes a guest message

Required Input
guest_no Guest number

room_no Room number

message_id Message ID

Output
op The name of this module: pms_message_delete

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data

400 Transaction failed

402 Not supported by protocol

403 Not enough memory

404 Previous request is still being processed

405 Failed to send request

407 Unknown field guest_del_msg

410 Record does not exist

Connectivity Made Easy


82
6.6.8 pms_post_check - version 1.2.0

Check PMS posting and double_posting protection information.

Required Input
bill_mode Billing mode for double-posting protection.
Valid values: guest_no, guest_name, client_mac, ppli or vlan.

Optional Input
client_mac or Session ID or client_mac to identify the user. Required if bill_mode is
sid client_mac.

guest_name Required if bill_mode is guest_name.

guest_no Required if bill_mode is guest_no.

ppli or vlan Required if bill_mode is ppli or vlan

Output
op The name of this module: pms_post_check

version The version of this module

result The result of the execution: ok if successful, or error when the


module failed

resultcode The result code matching the result: 0 if result is ok or one of the
result codes in the "Result Codes" section below

error If result is error, contains a description of the error

start_time The time the posting was made

start_timestamp The time the posting was made in unix time format

end_time The time the billing will expire and cause the user to be charged again.

end_timestamp The time the billing will expire in unix time format.

balance Remaining time in seconds.

guest_no For double-posting protection based on guest_no. Required for Galaxy


PMS.

guest_name For double-posting protection based on guest_name.

client_mac Session ID or client_mac to identify the user. Required for double-


posting protection.

ppli For double-posting protection based on VLANs.

vlan For double-posting protection based on VLANs.

Connectivity Made Easy


83
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data.

Connectivity Made Easy


84
6.6.9 pms_post - version 1.32.0

This API posts to the hotel PMS system to charge a specified


amount to a room.
Commas in input arguments will be removed. To enable double-
posting protection, bill_mode and duration (seconds) must be set.

Required Input
room_no The room number to send the posting.

amount The amount to charge to the specified room, usually in the currency
configured in the PMS system ( e.g. cents ).
Accept whole number 0 or higher.

folioid The folio ID (for Galaxy PMS type)

guest_no The guest number (for Galaxy PMS type)

Optional Input
Optional/Allowed Input for SEND PS2

client_mac or Session ID or client_mac to identify the user. Required for double-


sid posting protection.

desc An arbitrary description field.

duration The duration that the billing will be effective for, in seconds. Required
for double-posting protection.

guest_no For double-posting protection based on guest_no. Required for Galaxy


PMS.

label This must be set to T, if you are posting to FCS.

time Time in Unix time format.

Optional Input for double-posting protection

bill_mode Billing mode for double-posting protection. Valid values: guest_no,


guest_name, client_mac, ppli, or vlan.
The specified value will be used to decide if the customer should be
charged again. If this is not set, double-posting protection will be
turned off and every call will result in a posting

guest_name For double-posting protection based on guest_name.

ppli or vlan For double-posting protection based on VLANs.

sales_outlet Sales outlet identification number.

Optional Input for RMSPsotToFolio

transaction_type Type of transaction (Charge or Receipt)

account_type Type of Account (Accomm, Extras, PABX, Internet etc)

Connectivity Made Easy


85
sundry_id Id of the Sundry Charge for this transaction

Connectivity Made Easy


86
Output
op The name of this module: pms_post

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

post Yes – Posting was sent successfully


No – No posting sent due to double-posting protection
The following arguments will only be output when double-posting protection
is turned on:
start_time - The time the posting was made.
start_timestamp – The time the posting was made in Unix time format.
end_time – The time the billing will expire and cause the user to be charged
again.
end_timestamp – The time billing will expire in Unix time format.
balance – Remaining time in seconds.
guest_no
guest_name
client_mac
ppli
vlan
Input arguments, as provided. For verification purposes.

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Posting Failed.

417 Current PMS type is incorrect

Connectivity Made Easy


87
6.6.10 pms_room_status - version 1.0.1

Retrieves guest room status information.

Required Input
room_no Room number to retrieve.

Output
op The name of this module: pms_room_status

version The version of this module

result The result of the execution: ok if successful, or error when the


module failed

resultcode The result code matching the result: 0 if result is ok or one of


the result codes in the "Result Codes" section below

error If result is error, contains a description of the error

room_no Room number

date Unix timestamp

guest_no Guest number

num_guest Number of guest staying in the room

[field] Each field will be returned as individual output argument.


Within each output argument, the pipe | character is used to
separate the value for each field, if there are more than one
values within the field. Do not assume that this is a single value
without pipe.

room_status_desc1..5 Access codes associated with the room (1 and 2) and user
(Micros Fidelio only) defined fields (3 to 5).

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data.

417 Current PMS type is incorrect

Connectivity Made Easy


88
6.6.11 pms_room_status_update – version 1.0.1

Updates guest room status information. Available on IG4 (patch 3


and above) and InnGate (patch 51 and above).

Required Input
room_no Room number

guest_no Guest number

Optional Input
guest_no Guest number

num_guest Number of guest staying in the room

[field] Each field will be returned as individual output argument.


Within each output argument, the pipe | character is used to
separate the value for each field, if there are more than one
values within the field. Do not assume that this is a single value
without pipe.

room_status_desc1..5 Access codes associated with the room (1 and 2) and user
(Micros Fidelio only) defined fields (3 to 5).

Output
op The name of this module: pms_room_status_update

version The version of this module

result The result of the execution: ok if successful, or error when the


module failed

resultcode The result code matching the result: 0 if result is ok or one of


the result codes in the "Result Codes" section below

error If result is error, contains a description of the error

room_no Room number

date Unix timestamp

guest_no Guest number

num_guest Number of guest staying in the room

[field] Each field will be returned as individual output argument.


Within each output argument, the pipe | character is used to
separate the value for each field, if there are more than one
values within the field. Do not assume that this is a single value
without pipe.

room_status_desc1..5 Access codes associated with the room (1 and 2) and user
(Micros Fidelio only) defined fields (3 to 5).

Connectivity Made Easy


89
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not read PMS data.

417 Current PMS type is incorrect

Connectivity Made Easy


90
6.7 Network

6.7.1 vlan_get - version 1.23.0

Returns information on a VLAN. If vlan is not provided, information


for the "No VLAN" entry is returned

Optional Input
vlan or ppli VLAN ID or ppli zero-config variable of the VLAN to get

Output
op The name of this module: vlan_get

version The version of this module

result The result of the execution: ok if successful, or error when the module
failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

vlan VLAN ID

name VLAN name

description VLAN description

vlangroup VLAN Group name that the VLAN belongs to

maxlogins Maximum number of logins allowed for this VLAN

accesscontrol One or more Access Control names that the VLAN belongs to. This is not
displayed if vlangroup is not displayed. This may be blank if the VLAN
has no associated access controls.
<accesscontrol1>|<accesscontrol2>|<accesscontrol3>|...

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

341 Could not find the vlan / ppli

Connectivity Made Easy


91
6.7.2 vlan_update - version 1.13.0

Update VLAN information

• If vlan is not provided, the "No VLAN" entry is updated


• The name of the "No VLAN" entry cannot be changed
• At least one of the following input arguments should be provided:
name, description, vlangroup or maxlogins

Optional Input
vlan or ppli VLAN ID or ppli zero-config variable of the VLAN to be updated

name VLAN name. Cannot be blank.

description VLAN description. Set to blank to remove the description.

vlangroup VLAN Group name that the VLAN belongs to. Cannot be blank.

maxlogins Maximum number of logins allowed for this VLAN


• Set to blank to disable
• Set to an integer (0 or larger) to enable

Output
op The name of this module: vlan_update

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Database error

341 Could not find the vlan / ppli

92
Connectivity Made Easy
6.7.3 device_status - version 1.01

Retrieves the network status of a particular device connected to the


gateway
• If connected is no, all other output arguments will not be available

Required Input
client_mac MAC address of the network device

Output
op The name of this module: device_status

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below

error If result is error, contains a description of the error

connected • yes: Device is found on the network


• no: A device with this MAC address does not exist on the network

failed_probes Number of times the gateway has failed to probe the network device. A value
more than 1 indicates that the device did not respond to probes and is likely to
have disconnected from the network.

internet_access • yes: Device can access the Internet/WAN network


• no: Device does not have network access because he has not logged
in, or the device is not allowed to access the internet

logged_in • yes: Device has a Charged Access Network Policy, and has already
logged in.
• no: Device has not logged in or does not have a policy which allows
logins

client_ip IP address of the device

ppli ppli zero-config variable of the device

vlan VLAN of the device. This will be blank if the device is not in a VLAN.

vlan_moved • yes: The device has moved from one VLAN to another
• no

location_index location_index zero-config variable

url The HTTP URL that the device last tried to request

93
Connectivity Made Easy
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

6.8 Credit Card

6.8.1 cc_payflowpro_post - version 1.0.1

This API posts to the PayFlow Pro payment gateway to charge a specified
amount to a guest.

Required Input
payment_url Payflow Pro payment server host name

vendor_id Registered vendor ID

vendor_password Password for the registered Vendor ID

partner Partner name whom the vendor ID is registered with

cc_number Credit Card Number

cc_expiry Credit Card Expiry date (MMYY format)

amount Amount to be charged

invoice Invoice number

94
Connectivity Made Easy
Optional Input
user_id Registered user ID ( Default: Will use the value of vendor )

timeout Max amount of seconds to wait for reply from Payflow Pro payment server
(Default: 30)

invoice Invoice number

cc_csc Card Security Code

cc_street Card holder’s street address

cc_postalcode Card holder’s ZIP/postal code

cc_fname Card holder’s first name

cc_lname Card holder's last name

cc_city Card holder's city

cc_state Card holder's state

cc_country Card holder's country; use 3-digit ISO country code

cc_email Card holder's email address

tc_desc Transaction description

tc_custom Transaction comments

proxy_server proxy server

proxy_port proxy_port

invoice_prefix Supplier specific prefix for invoice number

Output
op The name of this module: cc_payflowpro_post

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes
in the "Result Codes" section below

error If result is error, contains a description of the error

RESULT The outcome of the attempted trasaction. A result of 0 ( zero ) indicates the
transaction was approved. Any other number indicates a decline or error

PNREF Payflow Transaction ID, a unique number that identifies the transaction

CVV2MATCH Result of the card security code (CVV2) check. The issuing bank may decline the
transaction if there is a mismatch. In other cases, the transaction may be
approved despite a mismatch

95
Connectivity Made Easy
RESPMSG The response message returned with the transaction result. Exact wording
varies. Sometimes a colon appears after the initial RESPMSG followed by more
detailed information

AUTHCODE approval code obtained over the telephone from the processing network.
AUTHCODE is required when submitting a Force (F) transaction

AVSADDR Address Verification Service address response returned if you are using Address
Verification Service. Address Verification Service address responses are for
advice only. This process does not affect the outcome of the authorization

AVSZIP Address Verification Service zip code response returned if you are using Address
Verification Service. AVSZIP responses are for advice only. This process does
not affect the outcome of the authorization

IAVS International Address Verification Service address responses may be returned if


you are using Address Verification Service. IAVS responses are for advice only.
This value does not affect the outcome of the transaction

PROCAVS Address Verification Service response from the processor when you use Address
Verification Service and send a VERBOSITY request parameter value of MEDIUM

PROCCVV2 CVV2 response from the processor when you send a VERBOSITY request
parameter value of MEDIUM.

AMEXID Unique transaction ID returned when VERBOSITY = medium or high for tracking
American Express CAPN transactions

AMEXPOSDATA Value returned when VERBOSITY = medium or high

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 An invalid value was provided for an input argument

98 Could not execute pfpro binary or transaction unsuccessful

96
Connectivity Made Easy
6.9 Social login

6.9.1 social_embed - version 1.0.2

Provide the HTML code segment to allow the user to embed a social login
button on the page.

Required Input
app Application name

type login_button

Output
op The name of this module: social_embed

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes
in the "Result Codes" section below

error If result is error, contains a description of the error

image_path Path to the image of the login button on the gateway

image_width Image width

image_height Image height

html <img> tag for the login button

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

97
Connectivity Made Easy
6.9.2 social_init - version 1.0.5

Returns the social login page URL (complete with the appropriate
parameters) that the downstream user should be redirected to.

Required Input
app Application name

return_url URL which the user should return to after a social login attempt

client_mac Client MAC address

Output
op The name of this module: social_init

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

state Unique ID for the social login attempt

login_url URL to redirect the user to start the social login process

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 The social login attempt could not be initialized

98
Connectivity Made Easy
6.9.3 social_return - version 1.2.1

Get social login information and social user profile

Required Input
app Application name

response Query string of the return URL as provided after the social login

Output
op The name of this module: social_return

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in the "Result
Codes" section below

error If result is error, contains a description of the error

status Status returned from user authentication process


• status is social_login_rejected if the user cancelled the login, or denied permissions to
ANTlabs when logging in to the social network.
• status is access_token_failed if the access token could not be retrieved.
• status is social_process_failed if the social network-specific processing step was not
successful.
• status is server_post_failed if the call to the analytics server was not successful.
• status is success if all steps are performed successfully.

[others] Other data specific to the social network. Typical fields returned from Facebook are:
• id
• birthday
• name
• email
• first_name
• gender
• last_name
• link
• locale
• middle_name
• timezone
• updated_time
• verified

social_api_response Social API response in JSON format

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

99
Connectivity Made Easy
6.10 User form

6.10.1 form_add - version 1.0.1

Insert data to form_user table and send user data to acs.

Required Input
email Valid email address (Max 50 chars)

client_mac Client NIC MAC address

Optional Input
name User’s name, max 100 chars

gender male, female, other

birthday Datetime format:


y-m-d

country Max 100 characters

verification_type ‘NONE’, 'EMAIL', 'MOBILE'; default ‘NONE’

mobile Mobile Number, Max 15 chars (mandatory if


verification type is MOBILE)
privacy 'yes', 'no'; default ‘no’

custom_field_1 40 characters

custom_field_2 40 characters

custom_field_3 40 characters

custom_field_4 40 characters

custom_field_5 40 characters

login_location location name; Max 100 characters

data_consent ‘yes’ or ‘no’; default ‘no’

Output
op The name of this module: form_add

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below (pipe separated list of result for

100
Connectivity Made Easy
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

form_uid (unique identifier to identify record)

Result Codes
0 Execution successful

1 More input arguments required

Incorrect op. For HTTP API calls only.


3

90 An invalid value was provided for an input argument

98 Database error

6.10.2 form_delete - version 1.0.0

Delete data from form_user table by form_uid.

Required Input
form_uid Valid form_uid (unique ID)

Output
op The name of this module: form_delete

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

101
Connectivity Made Easy
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

6.10.3 form_get – version 1.0.0

Retrieve details by form_uid.

Required Input
form_uid Valid form_uid (unique ID)

Output
op The name of this module: form_get

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below below (pipe separated list of result
for each account: ‘ok’ or error message)

error If result is error, contains a description of the error

name User name

gender male, female, other

birthday Date of birthday (y-m-d)

email Email address

created_datetime First time user record creation datetime

102
Connectivity Made Easy
country User country

place Place of residence

mobile User mobile number

verified_by email or mobile

custom_field_1 Custom text detail enter by user

custom_field_2 Custom text detail enter by user

custom_field_3 Custom text detail enter by user

custom_field_4 Custom text detail enter by user

custom_field_5 Custom text detail enter by user

login_location User login location name

nic_mac Client MAC address

data_consent User data consent (on, off)

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

6.10.4 verified_add – version 1.0.1

Insert/Update verified user details.

Required Input
auth_type ‘form’ or ‘social’

103
Connectivity Made Easy
verify_by email, mobile, facebook, twitter, googleplus, wechat, instagram, line
or any other supported verification method.

auth_id Max 50 chars (email address, mobile number, user id, oauth id or
whatever key is used to identify the user)

Conditional Required Input


email Valid email address; max 50 chars (required only when auth_type is
‘form’, otherwise optional)

Optional Input
verified_uid Valid verified unique id (32 characters)

name User’s name, max 100 characters

gender male, female, other

birthday Datetime format:


y-m-d
country Valid country name

place Place of residence

mobile Mobile number, max 15 chars

data_consent ‘yes’, ‘no’; default ‘no’

custom_field_1 Max 40 chars

custom_field_2 Max 40 chars

custom_field_3 Max 40 chars

custom_field_4 Max 40 chars

custom_field_5 Max 40 chars

Output
op The name of this module: verified_add

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the “Result Codes” section below (pipe separated list of result for each account: ‘ok’
or error message)

error If result is error, contains a description of the error

104
Connectivity Made Easy
verified_uid verified_uid (unique id to identify verified user form entry)

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

6.10.5 verified_delete – version 1.0.0

Delete verified user data.

Required Input

verified_uid Valid verified unique id (32 characters)

Output
op The name of this module: verified_delete

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the “Result Codes” section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

105
Connectivity Made Easy
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

6.10.6 verified_get – version 1.0.0

Retrieve details by verified_uid.

Required Input

verified_uid Valid verified unique id (32 characters)

Output
op The name of this module: verified_get

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the “Result Codes” section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

name User name

gender male, female, other

birthday Date of birthday (y-m-d)

email Email address

creator form, facebook, twitter, googleplus, wechat, instagram, line

106
Connectivity Made Easy
created_datetime First time user record creation
eg: yyyy-mm-dd hh:mm:ss

updated_datetime Last time when user seen


eg: yyyy-mm-dd hh:mm:ss

country User country Name

place Place of residence

mobile User mobile number

verified_by email, mobile, facebook, twitter, googleplus, wechat, instagram, line

custom_field_1 Custom text detail enter by user

custom_field_2 Custom text detail enter by user

custom_field_3 Custom text detail enter by user

custom_field_4 Custom text detail enter by user

custom_field_5 Custom text detail enter by user

data_consent On, off (User data consent for data use)

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

107
Connectivity Made Easy
6.10.7 otp_add – version 1.0.0

Create a one time password for verification either by email or mobile.

Required Input
form_uid Valid form unique id (32 char)

verify_by_id Either email address or mobile number(


string/number)
otp_expiry_duration Time in seconds (int)

Output
op The name of this module: otp_add

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the “Result Codes” section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error.

otp otp – 6 digit

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

108
Connectivity Made Easy
6.10.8 otp_check – version 1.0.0

Check if OTP is valid or not.

Required Input
verify_by_id Either email address or mobile number

otp 6 digit one time password

Output

op The name of this module: otp_check

version The version of this module

result The result of the execution: ok if OTP is valid or error otherwise

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the “Result Codes” section below

error If result is error, contains a description of the error

form_uid The corresponding form unique ID

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Database error

601 OTP or verify_by_id is wrong

109
Connectivity Made Easy
6.10.9 captcha_get - version 1.0.0

Generate captcha id and code.

Required Input
No extra input required

Output
op The name of this module: captcha_get

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below (pipe separated list of result for each account:
‘ok’ or error message)

error If result is error, contains a description of the error

captcha_src This should go into the “src” attribute of you img html tag to show captcha.
_tag
Note: need to implement in sample code as below –

<form method="post" action="form.php">


2 <input type="hidden" id="captchaId" name="captchaId" value="<?php echo $captchaId ?>

3 <img id="siimage" src="(captcha_src_tag value) " alt="captcha image" />

4 <input type="text" name="captcha_code" value="" />


5 </form>

captcha_id Generated captcha reference code

Result Codes
0 Execution successful

1 More input arguments required

110
Connectivity Made Easy
2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

6.10.10 captcha_check - version 1.0.0

validate captcha.

Required Inputs
captcha_code 6-digit captcha

captcha_id Generated captcha reference code

Output
op The name of this module: captcha_check

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

111
Connectivity Made Easy
6.11 Miscellaneous

6.11.1 browser - version 1.04

Detects the type of browser used, based on the provided HTTP user agent
string.

Required Input
useragent The HTTP user agent string from the browser

Output
op The name of this module: browser

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

browser The type of browser detected


• pda for PDA browsers
• phone for phone browsers with very small screens
• other for other (non-detected) browsers
o Usually standard browsers like Netscape and Internet Explorer

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

Usage Example
Instead of detecting the browser by executing this API module, you can
also use the BrowserType() function within PHP code on the gateway.

When the BrowserType() function is used, you can omit passing the user
agent string as it will be automatically detected.

112
Connectivity Made Easy
Using this, a single PHP page can be used to output two different sets of
HTML content, depending on the browser type.

<?php
// include the API
require_once($_SERVER['DOCUMENT_ROOT'] . '/api/api.php');

// get the type of browser the user is using


$browserType = BrowserType();

if ($browserType == 'pda' || $browserType == 'phone')


{
// HTML FOR SMALL DEVICES ----------------------------------------
--------
?>

<html>
<body>
This is a tiny web page
</body>
</html>

<?php
}
else
{
// HTML FOR STANDARD BROWSERS --------------------------------
------------
?>

<html>
<body>
This is a standard web page
</body>
</html>

<?php
}
?>

You can also adapt this code to output three different types of pages depending on
the browser type, or even redirect the browser to other pages if necessary.

The browser strings supported by this API module can be configured in the Admin
GUI.

113
Connectivity Made Easy
To configure browser strings:

1. Click on Settings, under System.

2. Click on API.

3. Click on the Browser tab

A list of recognized browser strings and resulting browser type is displayed. The
module will use sub-string matching on the provided user agent string to determine
the browser type. Capitalization can be ignored, if necessary.

Click on an existing browser string to modify it, or add new ones to be recognized by
the API module.

114
Connectivity Made Easy
6.11.2 session_monitor_get_all - version 1.2.0

Get all active sessions or search active sessions with filters.

Optional Input
userid User ID with/without number, eg., tester or tester 1

client_mac Client MAC address

client_ip Client IP address

vlan VLAN ID (VLAN name)

status Session status

logged_in_start User logged in datetime range start, valid date time string, eg: yyyy-mm-dd
hh:mm:ss

logged_in_end User logged in datetime range end, valid date time string, eg: yyyy-mm-dd
hh:mm:ss

Output
op The name of this module: session_monitor_get_all

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

count Number of active sessions


[ if count > 0 ]
header - logged_in | authentication_type | status | userid | client_mac | client_ip |
vlan | qos_class | download_bandwidth | upload_bandwidth
record_* - information about each session separated by pipe

Header fields description:


• logged_in - user logged in time
• authentication_type - authentication type name (authentication type)
• status - session status
• userid - User ID
• client_mac - MAC Address
• client_ip - IP Address
• vlan - VLAN ID (VLAN Name)
• qos_class - QoS class
• download_bandwidth - download bandwidth
• upload_bandwidth - upload bandwidth

115
Connectivity Made Easy
Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only.

3 Incorrect op. For HTTP API calls only.

90 Argument values incorrect

98 Database error

116
Connectivity Made Easy
6.11.3 firewall_open – version 1.0.3

Interact with the gateway’s firewall to allow TCP connections for a non-
logged in user for a limited duration.

Required Input
client_ip IP Address of client machine

port Destination port

Optional Input
duration Duration in seconds to open the firewall (default: 60)

delay Delay in seconds, to allow the firewall rule some time to be applied (default: 1) allowed
value range [1..10]

Output
op The name of this module: firewall_open

version The version of this module

result The result of the execution: ok if successful, or error when the module failed

resultcode The result code matching the result: 0 if result is ok or one of the result codes in
the "Result Codes" section below

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

98 Failed to add the firewall rule

117
Connectivity Made Easy
6.11.4 smpp_post – version 1.0.3

This allows the user to send out SMS through the SMSC that is configured
in IG4.

Required Inputs
to Valid phone number ( max length 20)

message Text (max length 150)

Output
op The name of this module: smpp_post

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

118
Connectivity Made Easy
6.11.5 smtp_post – version 1.1.1

This allows the user to send out an email message using the Email Client
settings configured in the gateway.

Required Inputs
to Receiver email address

Subject Subject title of the email message (max length 200)

Body Body of the email message

Optional Input
From Sender email address

attachment_path Add files as attachment (only text, csv and zip). File must be present
under the ftponly account’s folder, e.g. /backup/reports/reports.zip. You
may specify multiple attachment_patch inputs for multiple attachments
e.g. /login/test.txt,/login/test2.txt

Output
op The name of this module: smtp_post

version The version of this module

result The result of the execution: ok if successful, or error

resultcode The result code matching the result: 0 if result is ok or one of the result
codes in the "Result Codes" section below (pipe separated list of result for
each account: ‘ok’ or error message)

error If result is error, contains a description of the error

Result Codes
0 Execution successful

1 More input arguments required

2 Incorrect api_password. For HTTP API calls only

3 Incorrect op. For HTTP API calls only

90 An invalid value was provided for an input argument

314 Email client is not configured

119
Connectivity Made Easy
315 SMTP server failed to send email

316 Invalid client conn security type

317 Attachment file does not exists

318 Attachment file should be txt, csv and format

120
Connectivity Made Easy

You might also like