Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

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: June September 2024

Permalink: https://x-hoppers.atlassian.net/wiki/x/AQAt

...

  1. An x-hoppers system on WMS 6

  2. W-AIR DECT Network components: W-AIR Base stations and repeaters. Amount depends on the store area and the number of users

Licensing

Some points to consider before deploying 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

...

...

...

...

...

...

...

infrastructure:

  • How much bandwidth is available on the site for the headsets 

G711 uses about 80 kbps. Every time a headset is lifted off the cradle, there is an audio stream from the headset to the Base station and from the Base station to the PBX. 

  • Is there a benefit in using Hardware PBX as a Proxy to connect to base stations

If Hardware or Virtual PBX is on the same subnet as the Base stations, you can proxy through the PBX to the Base stations and access them easily. Another benefit for Hardware PBX: e.g. if the internet goes down, and there is a hardware PBX, x-hoppers still continues working.

Licensing

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 
(max 2 calls on DECT headset) 

Up to 10 devices / 8 calls
(max 2 calls on DECT headset)

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

...

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: WMS Start Guide: Devices management.

4. Configure Dialplan 

Modify the users dialplan as follows: 

  1. Click Add number

  2. Enter *Wairhotline*

...

x-hoppers headsets dial two different strings:

  • *Wairhotline*: dialled when the headset is removed from the cradle

  • *wair*: dialled automatically to bring the headset to the broadcast in other cases e.g. after receiving a call, when using AI Assistant

Modify the users dialplan as follows to include both dial strings: 

  1. Click Add number

  2. Enter *Wairhotline*

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Note: It is the value which is dialled by the headset in the Retail mode. This value is default and should not be changed.

  1. Add the below Dialplan applications:

    • Set -> Language Codecs -> choose language

    • Play sound -> click Browse (three dots) and choose the sound to be played on joining the broadcast or create it dynamically using TTS, for example Welcome to x-hoppers, joining the broadcast

    • Conference -> enter the conference room ID number. This can be any numberalaw

    • (optional) Set -> Tags -> enter tag name, e.g. 1, 2, 3, etc. 

...

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Dialplan Applications - Admin Guide.

Joining the Broadcast from Other Devices

Wildix desk phones can also join the broadcast, as long as they are connected to the same PBX. There are two options:

  • A user should dial the feature code for Conference access (98 by default) + the conference room number. Example: 981 for conference room number 1.

  • Alternatively, a Dialplan can be configured so that when users dial a certain number, e.g. 333, the call is automatically put into the broadcast.

...

    • hotline
      Tags allow to monitor data in CDR-View, e.g. what time the headset was in use, when taken off the cradle, when left the broadcast.

    • Set -> Music on hold -> choose silence
      In case you don’t set Music on hold silent, when there is only one person in the broadcast, there would be the default music on hold instead of silence.

    • Set -> Language -> choose language

    • Play sound -> click Browse (three dots) and choose the sound to be played on joining the broadcast or create it dynamically using TTS, for example Welcome to x-hoppers, joining the broadcast

    • Conference -> enter the conference room ID number. This can be any number, e.g. 1, 2, 3, etc.

      x-hoppers-configure-users-dialplan.pngImage Added
Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Dialplan Applications - Admin Guide.

QR code system 

Use cases  

  • QR code for each product 

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. 

  • QR code for a category of products 

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. 

...

  1. Click Add number

  2. Enter *wair*

  3. Add the below Dialplan applications:

    • Set -> Codecs -> choose alaw

    • (optional) Set -> Tags -> enter tag name, e.g. wair click

    • Set -> Music on hold -> choose silence
      In case you don’t set Music on hold silent, when there is only one person in the broadcast, there would be the default music on hold instead of silence.

    • Set -> Language -> choose language

    • Play sound -> click Browse (three dots) and choose the sound to be played on joining the broadcast or create it dynamically using TTS, for example Welcome to x-hoppers, joining the broadcast

    • Conference -> enter the conference room ID number. This can be any number, e.g. 1, 2, 3, etc. 

      wair-dialplan.pngImage Added
Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Kite documentation: Wildix WebRTC Kite - Admin Guide - English.

How to set up 

Generate a call 

...

Note: In case of using ChatGPT, you may also need to include relevant ChatGPT procedure in the *wair* Dialplan entry. Documentation: https://x-hoppers.atlassian.net/wiki/x/GgAU

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Developer Documentation.

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Note: To protect the system from spam, you may set up CAPTCHA on your website before the call is initiated. 

Configure Dialplan

...

Note: If you need to set up multiple x-hoppers broadcasts, you need to create separate Dialplans, rather than modifying users Dialplan. Example:

x-hoppers-multiple-broadcasts.pngImage Added

Each x-hoppers Dialplan should contain both Wairhotline and wair strings described above.

Joining the Broadcast from Other Devices

Wildix desk phones can also join the broadcast, as long as they are connected to the same PBX. There are two options:

  • A user should dial the feature code for Conference access (98 by default) + the conference room number. Example: 981 for conference room number 1.

  • Alternatively, a Dialplan can be configured so that when users dial a certain number, e.g. 333, the call is automatically put into the broadcast.

...

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Dialplan Applications - Admin Guide.

QR code system 

Use cases  

  • QR code for each product 

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. 

  • QR code for a category of products 

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. 

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Kite documentation: Wildix WebRTC Kite - Admin Guide - English.

How to set up 

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.

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Developer Documentation.

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

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. 

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Dialplan applications - Admin Guide.

Click and collect setup

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:

  1. Create a Dialplan rule e.g. clickcollect

  2. Add number default:

    • Add Verify number of calls application, enter 1 for the max number of active calls and select the relevant procedure 

    • Add application Play sound and enter the text that should be pronounced in the conference, e.g. Order number ${text} has arrived to collect the order

  3. Add number wait with the following applications:

    • Custom application with parameter Wait(3)

    • Jump to application with the procedure clickcollect

...

Example of CURL request:

Code Block
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"

Gather and post x-hoppers content to x-bees channel

It is possible to configure recording of in-store conversation, with possibility to listen to it in CDR-View, as well as post x-hoppers broadcast content to x-bees channel.

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Documentation: Dialplan applications - Admin Guide.

Click and collect setup

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:

  1. Create a Dialplan rule e.g. clickcollect

  2. Add number default:

    • Add Verify number of calls application, enter 1 for the max number of active calls and select the relevant procedure 

    • Add application Play sound and enter the text that should be pronounced in the conference, e.g. Order number ${text} has arrived to collect the order

  3. Add number wait with the following applications:

    • Custom application with parameter Wait(3)

    • Jump to application with the procedure clickcollect

...

Example of CURL request:

Code Block
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"

Gather and post x-hoppers content to x-bees channel

It is possible to configure recording of in-store conversation, with possibility to listen to it in CDR-View, as well as post x-hoppers broadcast content to x-bees channel.

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Note: The support starts from WMS 6.03.20230630.3. 

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.

Record in-store conversations (listen in CDR-View)

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:

  1. create directory /etc/systemd/system/pbx-data-engine.service.d

    Code Block
    # mkdir /etc/systemd/system/pbx-data-engine.service.d
  2. Add the following key to the file:

    Code Block
    # nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
    
    [Service]
    ExecStart=
    ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr
  3. Reload systemd and restart the service to apply the changes:

    Code Block
    # systemctl daemon-reload
    # systemctl restart pbx-data-engine
Note

Important: 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.

Note

Current limitations:

  • Recording is not automatically stopped if user forgets to mute the headset.

  • For a new user who joins the conference, recording is automatically started even if the user is muted, and the recording file of about 3 seconds is saved on the PBX.

Post content to x-bees channel

Use case 1: Veesion integration

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: https://x-hoppers.atlassian.net/wiki/x/AYAj

Use case 2: Transcribe all in-store conversations

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.

Note

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.

How to configure

  1. Create x-bees conversation with all the users that are participating in the x-hoppers conference and also needed managers.

  2. Copy x-bees conversation ID (available in the URL of the conversation)

  3. Add the following data to the /rw2/etc/pbx/x-hoppers.json file:

Code Block
[
  {
    "audio_conf_id": "2",
    "xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f"
  }
]

Where:

  1. audio_conf_id: ID of the audio broadcast channel in x-hoppers where the communication takes place

  2. xbees_channel_id: ID of the x-bees conversation, copied in step 2, where the content will be posted.

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.

Current limitation: Messages to x-hoppers broadcast with transcription of in-store conversations enabled should not be longer than 3 minutes.

How to increase volume for noisy environments

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

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:

Code Block
default_listening_volume=6 

Where 6 is the preferred volume. The maximum value is 10. The default value for both parameters is 0.

How to modify the timeout of broadcast mute

Starting from WMS 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: 

Code Block
# nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
[Service]
Environment='XHOP_UNHOLD_TIMEOUT=120' 

Where 120 is the custom timeout. If you want to disable the timeout, set the value to 0:

Code Block
Environment='XHOP_UNHOLD_TIMEOUT=0' 
  1. Reload systemd and restart the service to apply the changes:

Code Block
# systemctl daemon-reload # systemctl restart pbx-data-engine

Note: The support starts from WMS 6.03.20230630.3. 

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.

Record in-store conversations (listen in CDR-View)

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:

  1. create directory /etc/systemd/system/pbx-data-engine.service.d

    Code Block
    # mkdir /etc/systemd/system/pbx-data-engine.service.d
  2. Add the following key to the file:

    Code Block
    # nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
    
    [Service]
    ExecStart=
    ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr
  3. Reload systemd and restart the service to apply the changes:

    Code Block
    # systemctl daemon-reload
    # systemctl restart pbx-data-engine
Note

Important: 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.

Note

Current limitations:

  • Recording is not automatically stopped if user forgets to mute the headset.

  • For a new user who joins the conference, recording is automatically started even if the user is muted, and the recording file of about 3 seconds is saved on the PBX.

Post content to x-bees channel

Use case 1: Veesion integration

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: https://x-hoppers.atlassian.net/wiki/x/AYAj

Use case 2: Transcribe all in-store conversations

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.

Note

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.

How to configure

  1. Create x-bees conversation with all the users that are participating in the x-hoppers conference and also needed managers.

  2. Copy x-bees conversation ID (available in the URL of the conversation)

  3. Add the following data to the /rw2/etc/pbx/x-hoppers.json file:

Code Block
[
  {
    "audio_conf_id": "2",
    "xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f"
  }
]

Where:

  1. audio_conf_id: ID of the audio broadcast channel in x-hoppers where the communication takes place

  2. xbees_channel_id: ID of the x-bees conversation, copied in step 2, where the content will be posted.

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.

Current limitation: Messages to x-hoppers broadcast with transcription of in-store conversations enabled should not be longer than 3 minutes.

Tip

Tip: You can use x-bees feature AI Assistant to get a quick AI-generated summary of what was going on in the broadcast during the day (documentation: https://wildix.atlassian.net/wiki/x/AQCHI):

  1. Create a new custom command, named e.g. “Conversation today” (check the “Create a New Command” section of the guide https://wildix.atlassian.net/wiki/x/AQCHI for instructions)

  2. Write the necessary instructions in the Prompt field, e.g. “Summarize the conversation for the last 24 hours and break it into what each user said. Provide bullet points underneath each user”.
    Running the command you’ve created, you can get a brief summary of conversations in the broadcast during the day.

How to increase volume for noisy environments

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

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:

Code Block
default_listening_volume=6 

Where 6 is the preferred volume. The maximum value is 10. The default value for both parameters is 0.

How to modify the timeout of broadcast mute

Starting from WMS 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: 

Code Block
# nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
[Service]
Environment='XHOP_UNHOLD_TIMEOUT=120' 

Where 120 is the custom timeout. If you want to disable the timeout, set the value to 0:

Code Block
Environment='XHOP_UNHOLD_TIMEOUT=0' 
  1. Reload systemd and restart the service to apply the changes:

Code Block
# systemctl daemon-reload
# systemctl restart pbx-data-engine
Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Note: For WMS versions prior to 6.07, instead of XHOP_UNHOLD_TIMEOUT, the parameter UNHOLD_TIMEOUT should be used.

How to enable battery level announcement

In case of using voice authorization (documentation: How to set up Voice Authorization for x-hoppers), the announcement about battery level is played by default. If you don’t use voice authorization, but want to play the announcement, you can configure it via Dialplan:

  1. Add Set application -> battery_level -> ${CURL(http://127.0.0.1:5060/v1/wair_battery_level/?ua=${BASE64_ENCODE(${SIP_HEADER(User-Agent)})})}

  2. Add Custom application -> ExecIf($["${battery_level}"=""]?Set(battery_level=unavailable))

  3. Add Play sound application -> Battery level is ${battery_level}

Panel
panelIconIdatlassian-note
panelIcon:note:
bgColor#E3FCEF

Note: For WMS versions prior to 6.07, instead of XHOP_UNHOLD_TIMEOUT, the parameter UNHOLD_TIMEOUT should be usedThe support starts from WMS 6.07.20240806.1.

Other features

ChatGPT Integration

...