This guide explains how to configure Retail mode for x-hoppers – Wildix wireless headset solution that allows fast and easy communication for retail stores. Created: May 2022 Updated: April 2024 Permalink: https://wildix.atlassian.net/wiki/x/QB-OAQ Other documentation: x-hoppers User Guide, x-hoppers datasheet, x-bees documentation |
x-hoppers is a solution for individual and chain retail stores, that provides an active channel to colleagues and support anywhere in the store, connects clerks and increases in-store conversions. The solution is built on DECT (Digital Enhanced Cordless Telecommunications) technology, linked to a full communications system in the Cloud. Fully wireless x-hoppers headsets let clerks easily communicate with each other as well as receive calls.
x-hoppers users are connected to a broadcast, in Retail mode (muted) by default. If any user wants to talk in the broadcast, they just need to press a button to unmute themselves. Besides, users can accept incoming calls, after which they return to the broadcast.
Also, x-hoppers offers an integrated QR code system, which can provide store clerks with instant buyer alerts and lets you gather analytics on customer engagement. The system logs each occasion of scanning a QR code by customer. To set up the QR code system, you need to create dedicated pages on your web server, each page devoted either to a category of products or a separate product. Then, generate QR code for each of these pages, print and attach them wherever required in the store, letting customers request for assistance right on the spot. See more in the QR code system section of this guide.
x-hoppers licenses can be ordered in Wildix Partner Community. The following licenses are available:
Device | BackOffice | HelperHopper | SalesFloorHopper | SalesFloorHopper + AI | SuperHopper + AI | |
---|---|---|---|---|---|---|
Ideal for: | For SIP devices | Administration and support users who don't face customers | Customer care, contact center, users who need access to integrations | Retail assistants who work on the shop floor | Retail assistants who work on the shop floor | Managers and supervisors |
Free minutes for outbound calls | 100 min | 3000 min | 3000 min | 3000 min | 3000 min | 3000 min |
SMS included | 100 sms | 200 sms | 1000 sms | 1000 sms | 1000 sms | 1000 sms |
Chats and videoconferencing | ➖ | ✅ | ✅ | ✅ | ✅ | ✅ |
Using x-bees apps | ➖ | ✅ | ✅ | ✅ | ✅ | ✅ |
Adding guests to conversations | ➖ | ➖ | ✅ | ✅ | ✅ | ✅ |
Integrations | ➖ | ➖ | ✅ | ✅ | ✅ | ✅ |
Personal contact-me link, meeting scheduler, website widget | ➖ | ➖ | ✅ | ✅ | ✅ | ✅ |
Website widget setup | ➖ | ➖ | ➖ | ➖ | ➖ | ✅ |
Max number of devices / calls | Up to 1 device / 2 calls | Up to 10 devices / 4 calls | Up to 10 devices / 8 calls | Up to 10 devices / 8 calls | Up to 10 devices / 8 calls | Up to 10 devices / 8 calls |
Contact center events logging | ➖ | ➖ | ✅ | ✅ | ✅ | ✅ |
DECT headset included | ➖ | ➖ | ➖ | ✅ | ✅ | ➖ |
Internal broadcast channel | ➖ | ➖ | ➖ | ✅ | ✅ | ➖ |
Customer service powered by AI prompts | ➖ | ➖ | ➖ | ➖ | ✅ | ✅ |
Wallboard and analytics | ➖ | ➖ | ➖ | ➖ | ➖ | ✅ |
Note:
|
1 - Microphone
2 - Mute button
3 - Call button
4 - Volume- button
5 - LED Indicator
6 - AUX Function button (Power On)
7 - Volume+ button
8 - Speaker
Note: There are 2 button combinations that have to be pressed at the same time: Register - Call, Volume+ and Volume- Power off - AUX function, Volume+ and Volume- |
Color | LED indication | Status |
Green | Short blink followed by long blink | Power Up |
Fast short blink, repeated | Incoming call | |
Single short blink. Notification of call only via audio in HS | 2nd incoming call, call active | |
Single short blink | In call | |
Long blink | Battery charging | |
Steady on | Battery charging, full | |
Red | Long blink followed by short blink | Power Down |
Fast, short blink | Low battery | |
Steady on | Battery charging, low battery | |
Long blink | Registration failed | |
Single short blink repeated slow | Idle, out of range | |
Blue | Short blink repeated fast | Registration, ongoing |
Long blink | Registration completed | |
Single short blink repeated slow | Idle, connected | |
Purple | Steady on | Menu |
None | Deregistered |
Multi-Сharger consists of 6 chargers connected in parallel with a 5V/ 4A power supply and can simultaneously charge up to 6 headsets.
1 - Charging pins
2 - Charger connection
When charging a Headset for the first time, it is necessary to leave it in the Multi-Charger for at least 10 hours before the battery is fully charged, and the Headset is ready for use.
For correct charging, ensure that the room temperature is between 5°C and 45°C / 41°F and 113°F. Do not place the Headset in direct sunlight when charging.
The Headset is automatically deactivated and can’t receive calls while charging.
To configure Retail mode on your PBX, open a ticket with our Technical Support team and our x-hoppers architects will help you with the setup.
Note: To see if Retail mode is activated, you can check the following parameters in the [wildixair] section of the /rw2/etc/provision.conf file:
|
You need to install and provision W-AIR Base stations and set up a multicell W-AIR DECT network. For detailed information and instructions on how to plan and configure multicell network, check this guide: W-AIR Network Admin Guide - Sync over LAN.
Before headsets can be assigned to specific users, they need to be registered to W-AIR Base Station.
Limitation: It is impossible to register a headset if the code of DECT network set up in WMS → Devices → W-AIR Networks is different from "0000" (default code). Workaround: you can temporarily change the code to default one ("0000") on the W-AIR Networks page in WMS, register and assign the Headset(s), and then change it back to the custom one. |
Note: in case you have several W-AIR networks (for example, in a test environment), the Headset might register to a Base station belonging to another network. In such a situation it’s recommended to hold the Headset closer to the Base station you would like to register it to. |
The Headset connects to the Base Station. When the Headset is subscribed, the voice prompt announces “Headset subscribed”.
Note: If the registration fails, the voice prompt announces “Headset not subscribed”. Before trying to register the Headset again, please check if it is within range of W-AIR Base station and the voice prompt announces “Registering”. |
Headsets can be assigned to users via the W-AIR devices tab in WMS, where you can find the list of all x-hoppers headsets:
Note: After assigning headsets to users, to figure out which headset belongs to whom, you can dial users’ extensions and see which headsets respond. |
Assigning headset to a different user
Starting from W-AIR firmware v 650b2, headsets get the following pre-configured settings:
Notes:
|
Deassigning a headset
Documentation: WMS Start Guide: Devices management. |
x-hoppers allows to configure the logic of assigning headsets to users via speech-to-text, so that staff can take the headset from charger, pronounce their names and automatically get assigned to the headset.
Note: The support starts from WMS Beta 6.05.20240119.1. |
By default, the feature is disabled. To enable it, add the parameter --xhop_voice_login true to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file. The parameter should be added to the line "ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr":
# vi /etc/systemd/system/pbx-data-engine.service.d/override.conf [Service] ExecStart= ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr --xhop_voice_login true |
Make sure to reload systemd and restart the service to apply the changes:
# systemctl daemon-reload # systemctl restart pbx-data-engine |
Note: Reloading systemd is required each time you make any changes to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file. |
When enabled, each time the headset is placed into the charger, it gets unassigned. When a user lifts the headset from the charger:
Each time the headset is placed into the charger, it gets unassigned and gets Service license type in the system.
Important: For the feature to start working on the headsets, follow one of the following procedures: a) After enabling the feature, when using the headsets for the first time, users need to lift the headsets from the charger -> place into the charger -> lift from the charger again. b) Alternatively, before performing the upgrade and activating the feature, unassign headsets via WMS (Devices -> choose device and click Assign to user -> in the Extension field, choose “unknown”). Then, when users lift the headsets from the charger, they need to press the Call button first. |
Also, you can configure the logic of verifying users' identity by voice footprint. When this feature is enabled, during user authorisation the system compares the voice of the user with user voices previously saved in the system and in case of a match, allows authorisation. This eliminates the risk of user logging in under a different name.
See instructions for below:
Note:
|
1. Install the specific libraries to enable verification of identity by voice using the following command:
pip install librosa |
2. Set up a Dialplan to allow employees leave their voice footprints in the system, which will later be used for verification.
You can download the Dialplan example here: x-hoppers_auth.bkp
Once the Dialplan is set up, employees should call the number provided in the Dialplan and follow the audio instructions to record their voice footprints.
Note: Each new employee should follow the procedure first, before trying to log in to the headset, as in case user voice footprint is missing in the system, authorisation will not be allowed. |
2. Add the following variable to WMS -> Dialplan -> General Settings -> Set dialplan variables field and click Save:
XHOP_VOICE_AUTH=yes |
When the feature is enabled, upon lifting the headset, users are prompted to say their name and surname. The system matches the pronunciation with user records and assigns the headset. Each time the headset is placed into the charger, it gets unassigned and gets Service license type.
5. Configure Dialplan
Modify the users dialplan as follows:
Enter *Wairhotline*
Note: It is the value which is dialled by the headset in the Retail mode. This value is default and should not be changed. |
Documentation: Dialplan Applications - Admin Guide. |
Wildix desk phones can also join the broadcast, as long as they are connected to the same PBX. There are two options:
Documentation: Dialplan Applications - Admin Guide. |
Starting from WMS Beta 6.06.20240315.1, users have possibility to mute the broadcast by double-pressing the Call button. By default, the broadcast gets muted for 60 seconds. If user wants to unmute the broadcast before the 60-second timeout, user can double-press the Call button again.
The default timeout can be customized. To do this:
1. Add the following line to the file /etc/systemd/system/pbx-data-engine.service.d/override.conf:
# vi /etc/systemd/system/pbx-data-engine.service.d/override.conf Environment='UNHOLD_TIMEOUT=120' |
Where 120 is the custom timeout. If you want to disable the timeout, set the value to 0:
Environment='UNHOLD_TIMEOUT=0' |
2. Reload systemd and restart the service to apply the changes:
# systemctl daemon-reload # systemctl restart pbx-data-engine |
Have a separate web page for each of the products and want customers to get to that exact page when scanning the QR code? Then, this option is just for you. Attach QR code next to each product, which customers can scan and get to the page with the product description.
If you have a huge store, rather than attaching QR code to every single product, you can opt for using one QR code for a category of products. In this case, you can place the code in each row in your store, to be easily found by customers.
In either of the above scenarios, once QR code is scanned, clerks are instantly notified which exact product or product category a customer is interested in and can provide any necessary assistance and guidance. Moreover, you can collect statistics (e.g. via Google Analytics) on which product QRs were scanned and how many times, which allows you to analyze customer engagement and make weighted decisions.
Additionally, on the product web page you can place a Kite button, letting customers contact clerks or back office via chat, audio or video call.
Kite documentation: Wildix WebRTC Kite - Admin Guide - English. |
Generate a call
We provide SDK (REST APIs), which can be used to set up call generation when someone scans the code. So for this part, you need a web developer, who would configure the relevant POST and CURL requests for each QR code.
Documentation: Developer Documentation. |
Note: To protect the system from spam, you may set up CAPTCHA on your website before the call is initiated. |
Configure Dialplan
On the Dialplan side, you need to configure the call to be sent to the broadcast with clerks. The call should be accompanied with notification via our Text-to-speech feature, to inform clerks which page was scanned/ where in the store assistance is required. QR codes require separate Dialplan entries.
Documentation: Dialplan applications - Admin Guide. |
Click and collect functionality speeds up and simplifies the process of processing the orders made online. When customers with online orders come to the store, they just need to enter their order ID number on a dedicated tablet. The staff is immediately notified in the conference that the relevant order number is there to collect.
To configure click and collect functionality:
Example of CURL request:
curl -u admin:admin_password -X POST 'https://xhoppersdemo.wildixin.com/api/v1/Originate' --data-urlencode "channel=Local/conf*1@pbxservices" --data-urlencode "context=clickcollect" --data-urlencode "priority=1" --data-urlencode "exten=s" --data-urlencode "variable=text=124" --data-urlencode "callerid=1"
Note:
|
Important: For correct work of the features of gathering and posting content to x-bees channel, a correct email has to be set up for all the users in the channel. |
Starting from WMS 6.03.20230630.3, it is possible to record in-store conversations and listen them via CDR-View. The recording starts when user unmutes himself in the conference and begins talking.
Conversations recording is also required if you wish to transcribe in-store conversations and post content to x-bees channel (setup instructions available in further section of this guide).
To enable the functionality:
create directory /etc/systemd/system/pbx-data-engine.service.d
# mkdir /etc/systemd/system/pbx-data-engine.service.d |
Add the following key to the file:
# vi /etc/systemd/system/pbx-data-engine.service.d/override.conf [Service] ExecStart= ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr |
Reload systemd and restart the service to apply the changes:
# systemctl daemon-reload # systemctl restart pbx-data-engine |
Note: Reloading systemd is required each time you make any changes to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file. |
Once enabled, the recording of in-store conversations get displayed in the CDR-View. Recording starts when a user unmutes themselves in the conference and starts talking.
Current limitations:
|
When there is an alert from Veesion, the relevant message, containing alert type, date, time, camera IP, ID of the camera and group, as well as video attachment, is sent to x-bees conversation.
Documentation: x-hoppers integration with Veesion
It is possible to transcribe the content of x-hoppers conference (everything that was said during the day) and post it to x-bees conversation (both the transcription and the audio recording of each piece of the conversation). The transcription is posted on behalf of the users that were talking at a given moment.
Important: Make sure you've also set up recording of the in-store conversations (see the "Record in-store conversations (listen in CDR-View)" section of this guide. |
Create x-bees conversation with all the users that are participating in the x-hoppers conference and also needed managers.
Copy x-bees conversation ID (available in the URL of the conversation)
Add the following data to the /rw2/etc/pbx/x-hoppers.json file:
[ { "store_veesion_id": "test-store-wildix", "name": "Store1", "audio_conf_id": "2", "location": "Odesa", "xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f", "veesion_user_extension": "12345" } ] |
Where:
When the feature is enabled, whatever is told in the conference is automatically transcribed and displayed in x-bees conversation, so managers could monitor what was discussed in the conference.
Note: If user talks for more than 60 seconds without a pause, the message is not transcribed. |
Note: The support starts from WMS Beta 6.03.20230601.1. |
In case of noisy environment, you can increase x-hoppers volume. To do this, add the following parameters to the section [default_bridge] of the file /etc/callweaver/confbridge.conf:
default_listening_volume=6 |
Where 6 is the preferred volume. The maximum value is 10. The default value for both parameters is 0.
ChatGPT integration with x-hoppers can enhance customer support and information sharing, allowing to ask questions and instantly receive answers. Powered by ChatGPT, x-hoppers processes the questions and generates the response based on its knowledge base, which is then played back to the user through the broadcast channel.
Currently, users are limited to asking one question. To ask another question, Headset should be put into the Charger and then lifted again. This restarts the interaction and allows users to ask a new question. Alternatively, user has to double-press the AUX Function button. |
Speech to text -> insert Please unmute and say question for Chat GPT, or wait to join the broadcast (or any customized text)
Jump to if -> "${RECOGNITION_RESULT}"="question" -> ChatGPT procedure
For the current development stage, users are limited to asking one question. To ask another question, Headset should be put into the Charger and then lifted again, which restarts the interaction and allows to ask a new question. Alternatively, user has to double-press the AUX Function button.