Skip to content

Third-Party Hotspot Routers

RansNet HSG can run the captive portal and RADIUS for hotspot routers from other vendors. The third-party router intercepts guests and enforces access, while HSG (on-premise or in the cloud) serves the login and purchase pages, authenticates users, records usage, and disconnects sessions on demand.

This page explains how to connect Peplink and Teltonika routers, and other routers that use the CoovaChilli UAM protocol, to an HSG portal.


Overview

How It Works

Most commercial hotspot routers use one of a few standard "external portal" protocols. You choose the protocol per portal with the portal type setting, so one HSG can serve RansNet and third-party routers at the same time, each with its own portal.

Third-party hotspot router login flow with HSG portal and RADIUS

Flow summary:

  • Steps 1–2: The router redirects an unauthenticated guest to the portal with its UAM parameters. The md checksum, signed with the UAM secret, proves the redirect came from your router.
  • Steps 3–6: The portal shows the login or purchase page. When the guest signs in, or a payment completes, the portal sends the browser back to the router's /logon address with the username and the password encoded with the router's challenge and the UAM secret.
  • Steps 7–10: The router checks the credentials with HSG RADIUS and opens access. Accounting records the session in HOTSPOT USERS → User Sessions.
  • Step 11: To disconnect a guest, HSG sends a RADIUS Disconnect-Request (CoA) to the router.

Supported Router Types

Portal Type Routers Login Method Notes
mbox (default) RansNet HSG, HSA, UA, UAP HSG hotspot engine Full feature set, including portal sticky, free temporary access and click-to-login email links.
CoovaChilli (Teltonika, Peplink) Teltonika RUT/RUTX/RUTM (RutOS hotspot), Peplink / Pepwave (Captive Portal → External Server → CoovaChilli), other routers that run CoovaChilli Standard CoovaChilli UAM login (/logon) Covered on this page.
WiFiDog Routers and access points with a WiFiDog client WiFiDog token login Configure the router's WiFiDog gateway to point to the portal.

Requirements

Item Requirement
HSG Release with the CoovaChilli (Teltonika, Peplink) portal type (see Release Notes). On-premise HSG or mFusion cloud.
Portal URL Reachable by guests before login, preferably over HTTPS with a valid certificate (e.g. https://wifi.example.com/pid/<portal>/login.php).
RADIUS UDP 1812 (authentication) and 1813 (accounting) open from the router to HSG.
CoA (optional) UDP 3799 open from HSG to the router, for disconnecting sessions. The router needs a public IP address or a VPN to HSG for this.
Peplink Firmware with Captive Portal → Access Mode: External Server, Server Type: CoovaChilli.
Teltonika RutOS with the Hotspot service and an external landing page (field names below are from a RUT241).

Step 1: Add the Router as a RADIUS Client

HSG RADIUS answers only routers registered as RADIUS clients (NAS). Add each router's address as it reaches HSG: its public IP address, or its VPN tunnel address if it connects over a VPN. To admit a whole fleet with one shared secret, use a subnet.

Via GUI: Navigate to Device Settings → Security → RADIUS and click Add RADIUS Client. See AAA / RADIUS — GUI Configuration.

Via CLI:

security radius-server
 client 203.0.113.25/32 key Str0ngRadiusKey name peplink-cafe1
 client 10.1.168.0/22 key Str0ngRadiusKey name branch-routers
!

The first entry admits one router at its public IP address. The second admits every router in a VPN subnet. When several entries match, HSG uses the exact address first, then the most specific subnet.

Warning

Avoid 0.0.0.0/0 as a RADIUS client in production. It accepts requests from any address that knows the secret.


Step 2: Configure the Portal

Navigate to CAPTIVE PORTAL → Portal List, click Edit on the portal, and open the Settings tab.

Portal Settings with CoovaChilli portal type

Field Example Value Description
Select portal type (default mbox) CoovaChilli (Teltonika, Peplink) Makes the portal log users in through the router's standard CoovaChilli /logon address.
Enable portal pre-shared key Str0ngUamSecret Must equal the router's UAM Secret. Required: without it the router does not sign its redirects and the portal refuses them.
Enable portal sticky Off Not available for third-party routers (it relies on the HSG hotspot engine).

Then set the login methods and purchases on the Login Option tab, as for any portal. See Captive Portal — Login Option.

The portal's login page address is the router's splash or landing page:

https://wifi.example.com/pid/<portal>/login.php

Step 3: Configure the Router

On the Peplink router (or in InControl 2), open Network → Captive Portal, add a portal, and bind it to the SSID or LAN.

Peplink Captive Portal — General, CoovaChilli and RADIUS settings

Field Value Notes
Hostname captive-portal.peplink.com (default) The router answers this name itself. Upload a certificate for it only if you change it to your own host name.
Access Mode External Server
Server Type CoovaChilli
UAM Secret Same as the portal's pre-shared key
Authentication Protocol PAP
Authentication Host / Port / Secret HSG address, 1812, RADIUS client key Use Custom profile.
Accounting Host / Port / Secret HSG address, 1813, RADIUS client key
CoA-DM Ticked, port 3799 Lets HSG disconnect sessions (see Disconnecting Users).
Accounting Interim Interval 300 Seconds between usage updates.
NAS-Identifier Device Name Shown as the hotspot name in User Sessions. Use letters, digits, ., _ or - only.

Peplink Captive Portal — Portal Access Settings

Field Value Notes
Allowed Networks Portal host plus payment gateway domains See Walled Garden.
Splash Page https://wifi.example.com/pid/<portal>/login.php The portal's login page.
Popup Handling Both unticked (default)

Note

Peplink sends its own host name (captive-portal.peplink.com) and port 8008 as the UAM address. The portal sends guests back to that address to log in, so no Peplink-specific portal setting is needed.

Teltonika (RutOS)

On the Teltonika router (e.g. RUT241), open Services → Hotspot → Hotspot general, edit the hotspot instance, and set the three parts of its Configuration page.

Step 3a: Hotspot instance

Teltonika hotspot instance configuration

Field Value Notes
Enable On
Name e.g. RansNet-Cloud
Configuration profile Default
Authentication mode Radius Users are checked against HSG RADIUS.
Interface The LAN or Wi-Fi network guests use
Hotspot network e.g. 10.21.0.1 / 255.255.255.0 Address range the hotspot gives guests.
Success page Success page (default) Where guests go after login. Original URL returns them to the page they first opened.

Walled garden (link at the top right of this page) holds the domains guests can reach before login: the portal host and the payment provider's domains (see Walled Garden).

Step 3b: Landing page

Teltonika landing page settings

Field Value Notes
Password encoding On Required: the portal sends the password encoded with the UAM secret.
Landing page External
UAM secret Same as the portal's pre-shared key
Landing page address https://wifi.example.com/pid/<portal>/login.php The portal's login page.
Subdomain / Domain Empty
HTTPS to redirect to landing page Off
UAM port 3990

Step 3c: RADIUS

Teltonika RADIUS settings

Field Value Notes
Require Message-Authenticator Off
RADIUS main server HSG address, e.g. wifi.example.com
RADIUS backup server Optional, e.g. a second HSG
Ports Authenticator 1812, Accounting 1813
NAS identifier e.g. RansNet_Cloud Shown as the hotspot name in User Sessions. Use letters, digits, ., _ or - only.
Radius secret key RADIUS client key Must match the router's RADIUS client entry on HSG (Step 1).
Swap octets Off
Location (Name / ID) Optional
Enable MAC authentication Off

Note

RutOS field names and menus vary between firmware versions; the screenshots above are from a RUT241. The Teltonika hotspot intercepts http:// pages only: a guest who first opens an https:// site may not see the portal until the phone's sign-in prompt appears or an http:// page is opened.


Walled Garden

Guests must reach the portal and, for purchases, the payment provider's pages before they log in. Add these domains to the router's walled garden (Peplink Allowed Networks, Teltonika Walled Garden):

Purpose Domains
Portal Your portal host, e.g. wifi.example.com
Airwallex (cards, Alipay, WeChat Pay) airwallex.com, forter.com, statsigapi.net, featureassets.org
PayPal paypal.com, paypalobjects.com
Alipay through PayPal alipay.com, alipayobjects.com, alicdn.com

On Teltonika, add the domains under the instance's Walled garden. Payment pages load content from several hosts, and the list changes over time: if a page loads only partly, find the blocked host in the browser's developer tools and add it.


Disconnecting Users (RADIUS CoA)

HOTSPOT USERS → User Sessions → Online Sessions → Disconnect, and the Single Session kick-out of an older login, send a RADIUS Disconnect-Request to the router on UDP port 3799.

The router must:

  • Have CoA enabled (Peplink CoA-DM ticked, port 3799).
  • Be reachable from HSG on UDP 3799. A router behind carrier-grade NAT (common on 4G/5G) cannot receive CoA. Give it a public IP address or connect it to HSG over a VPN.
  • Accept CoA from HSG's RADIUS address. HSG sends the request from the address the router sends its accounting to.

If the router cannot be reached, Disconnect reports an error and the session stays until it times out.


Feature Support

Feature mbox (RansNet) CoovaChilli (Peplink, Teltonika)
Username/password, PIN code Yes Yes
Click to connect (accept the terms) Yes Yes (uses the default demouser account, or the account set on the Login Option tab)
Email / SMS self-registration with OTP Yes Yes. The verification period before the OTP is entered uses the built-in registeruser RADIUS account (5 minutes, 1 Mbps).
Register by purchase only, data top-up and access plan purchase Yes Yes. Add the payment provider's domains to the router's walled garden.
Portal sticky (automatic re-login) Yes No
Disconnect from User Sessions (CoA) Yes Yes, when the router supports CoA and is reachable on UDP 3799
Bandwidth, data and time limits from access profiles Yes Session time limits: yes. Bandwidth and data limits: depends on the router's support for the RADIUS attributes. Test on your model.
Per-instance options (client-single, client-flow, bypass lists, bandwidth) HSG CLI Configured on the third-party router

Verification

Items to Test How Expected Outcome
Redirect to portal Connect a phone to the router's Wi-Fi and open an http:// site The portal login page appears, without "No captive portal detected".
Login Sign in with a test account The browser returns to the router, then to the page the guest opened. The session appears in HOTSPOT USERS → User Sessions → Online Sessions with the router's NAS identifier as the hotspot.
RADIUS show security radius-log on HSG Login OK: [<username>/...] (from client <name> ...) for the router's RADIUS client entry.
Accounting Wait one interim interval (e.g. 5 minutes) Traffic counters in Online Sessions increase.
Purchase Buy a plan with the provider's sandbox mode on The payment page loads, the guest returns to the portal's success page and is online.
Disconnect Disconnect on the session in Online Sessions "User is successfully disconnected"; the guest sees the portal again on the next page.

Troubleshooting

Symptom Likely Cause Solution
Portal shows "No captive portal detected" or "Invalid URL" UAM secret on the router differs from the portal's pre-shared key, or no UAM secret is set Set the same value on both. Reconnect the client to get a fresh redirect.
Login fails with "Access denied"; RADIUS log shows a garbled password Login page opened from an old redirect (stale challenge), or UAM secret mismatch Reconnect to the Wi-Fi so the router issues a new redirect, then log in again. Check that both secrets match.
RADIUS log shows nothing for the router Router not registered as a RADIUS client, wrong secret, or UDP 1812/1813 blocked Add the router's public or VPN address as a RADIUS client. Check firewalls on both sides.
Payment page does not load or loads blank Payment provider domains missing from the walled garden Add the provider's domains (see Walled Garden).
After paying with WeChat Pay, the provider page shows "Succeeded" but the guest stays there The provider page does not return to the portal Tap Back, or reconnect to the Wi-Fi: the portal completes the paid order and logs the guest in (within 15 minutes of the order).
Disconnect reports "Error disconnecting user" CoA not enabled on the router, UDP 3799 not reachable (carrier NAT), or the router does not accept CoA from HSG's address Enable CoA, give the router a public IP address or VPN, and check the router accepts CoA from the HSG address it sends RADIUS to.
Guests on https:// sites never see the portal Router intercepts http only Open an http:// page, or rely on the phone's sign-in prompt.

Best Practices

Security Best Practices

  • Use a strong, unique UAM secret and RADIUS key per site or fleet — they authenticate the router's redirects and RADIUS requests.
  • Register routers by address, not 0.0.0.0/0 — use a VPN subnet or each router's public IP address.
  • Serve the portal over HTTPS with a valid certificate — guests enter passwords and payment details on it.
  • Keep the walled garden minimal — allow only the portal and payment provider domains.
  • Never expose HSG management (SSH, GUI) to the routers' networks — only the portal (HTTPS) and RADIUS (UDP 1812/1813) need to be reachable. See Device Hardening.

Deployment Tips

  • Test with sandbox payments first — tick Sandbox (test) mode on the portal and use the provider's test credentials before going live. See Captive Portal — Purchases and Payment Gateway.
  • Use a VPN for CoA — routers on 4G/5G are usually behind carrier NAT; a VPN to HSG makes disconnect and Single Session work.