Automatic Store Broadcast Switching – Admin Guide
This guide explains how to set up and use W-AIR Locator, the option which automatically switches x-hoppers users to the correct store broadcast when they move between stores. The store is detected from the W-AIR base station to which the headset is connected.
Created: October 2026
Introduction
In multi-store retail environments, staff often move between different stores or departments during their shift. Without automatic location tracking, a headset remains connected to its initial broadcast group, causing staff to receive notifications intended for a store they have already left.
The W-AIR Locator service automatically detects which base station a headset is connected to and switches the staff member to the appropriate store broadcast seamlessly, without requiring any manual action.
Requirements
WMS 7.10 or higher
Note: Repeaters are currently not supported.
Set up the service
Step 1. Add comments to W-AIR Bases
Update W-AIR Bases by adding a comment to each Base, e.g. using 7-digit number and store/ Department name:
When a headset connects to a W-AIR base, the PBX identifies the store from the first seven characters of the base station Comment field in WMS. For example, 7933193_Test_Store identifies the store 7933193.
Step 2. Configure Dialplan
Update the users Dialplan rules *Wairhotline*, *wair*, and *wairbroadcast* by adding custom applications with the following lines:
Set(storeid=${Descript:0:7})Set(WairIpei=${TOUPPER(${FILTER(0-9a-f,${Useragent:-14})})})Set(storeid=${IF($["${DB(WAIR/${WairIpei}/store)}" != ""]?${DB(WAIR/${WairIpei}/store)}:${storeid})})
Note: Without these lines, the new store is recorded, but the Dialplan can continue using the previous store after the broadcast channel is disconnected.
Add every store to the REGEX in the users Dialplan rule:
GotoIf($[${REGEX("^(...)$" ${storeid})}]?users_${storeid},...)
If a store is missing from the configuration, the user will hear Routing issue message.
For each store/ W-AIR Base create Dialplan context named users_<store> that contains *Wairhotline* and *wair* with relevant broadcasts.
W-AIR Locator re-reads the generated dialplan every 60 seconds, so dialplan changes do not require a service restart.
Step 3. Enable W-AIR Locator
In WMS, check that each W-AIR base station Description starts with the correct 7-digit store number.
Enable W-AIR Locator in /rw2/etc/provision.conf:
[wildixair]WairLocator=onSynchronise the W-AIR bases in WMS. If a base does not start sending syslog data, synchronise it again or reboot it.
Start the service:
systemctl daemon-reloadsystemctl enable --now wairlocatorAllow 10–15 minutes for the service to learn the W-AIR network layout.
Step 4. Configure movement timing (optional)
Use the following movement timing values in /rw2/etc/wair-locator.json to avoid switching users when they briefly pass another store:
{"learning": "on","debounce_sec": 15,"cooldown_sec": 60,"bases": []}
Where:
debounce_sec = seconds a headset must remain on another store’s base before movement
cooldown_sec = minimum pause between hangups for the same user.
By default, debounce_sec value is 5 seconds, cooldown_sec is 20 seconds.
If the user moves to another store and remains there long enough to pass the movement timer, W-AIR Locator records the new store and moves the user to the matching broadcast. If the PBX restarts, the last known store is preserved and used again after the service starts.
Step 4. Verify the result
Use these commands to check the service state and headset movement history:
wairlocator statuswairlocator status --mismatchwairlocator status --historyjournalctl -u wairlocator
Use wairlocator status --history to see when and where a headset moved between stores.
Note: W-AIR Base mapping for W-AIR Locator service is performed automatically. The process normally takes approximately 10–15 minutes after service start/ restart. To view the status, use the command:
wairlocator learn status
How to disable the service
Stop and disable the service:
systemctl disable --now wairlocatorRemove WairLocator or set it to off in the [wildixair] section of /rw2/etc/provision.conf file.
Synchronise the W-AIR bases.
Optionally, remove stored headset locations:
callweaver -rx "database deltree WAIR"


