Versions Compared

Key

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

This Guide provides instructions for setting up, configuring and demonstrating the capabilities of x-hoppers Green Box.

Created: August 2023

Updated: May June 2024

Permalink: https://wildix.atlassian.net/wiki/x/B4BeDw

...

  • To gather and post transcriptions of conversations, use these commands in Terminal:

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

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

      Code Block
      # vinano-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
    • add the following data to /rw2/etc/pbx/x-hoppers.json file

      Code Block
      [
        {
          "audio_conf_id": "2",
          "xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f"
        }
      ]
      • audio_conf_id: ID of the audio broadcast channel in x-hoppers where the communication takes place

      • xbees_channel_id: ID of the x-bees conversation, where the content will be posted

    • reload systemd and restart the service to apply the changes:

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

Configuring Voice-Enabled User Authorization

Tip

The verification of users by voice is available starting from WMS version 6.06, make sure to update your PBX from rel60beta.

...

    • engine 

How to perform the Demo 

During a demonstration of x-hoppers, you can enable the logic of assigning W-AIR headsets to users via speech-to-text and verify their identity by voice footprint. In this chapter, we will explore how to enable and use this feature.

  • By default, this feature is disabled. To activate it, add the parameter --xhop_voice_login true to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file

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

It is possible to ​​enable user verification by voice for users of specific Departments only. For this:

  1. Instead of --xhop_voice_login true use --xhop_voice_login department

  2. Add the following line, indicating the list of departments, where verification by voice should be used: 

Code Block
# 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 department
Environment='XHOP_VOICE_AUTH_DEPS_LIST=Sales,Support'
  • Where “Sales, Support” is the list of required departments, separated by comma.

  • Reload systemd and restart the service to apply the changes:

    Code Block
    # systemctl daemon-reload
    # systemctl restart pbx-data-engine
  • Install the specific libraries to enable verification of identity by voice using this command

    Code Block
    pip install librosa
  • Set up the Dialplan to allow users to record their voice footprint:

    View file
    namex-hoppers_auth.bkp
    and associate it with users Dialplan

  • Add the variable XHOP_VOICE_AUTH=yes to WMS -> Dialplan -> General Settings -> Set dialplan variables field

When the feature is enabled:

  • Users need to call the designated number in the Dialplan and follow the instructions to record their voice footprints

  • Upon lifting W-AIR headset, users are prompted to say their name and surname and are asked to pronounce the phrase “My voice is my password”

  • The system matches the pronunciation with user records and assigns the headset accordingly

  • Each time the headset is placed into the charger, it gets unassigned meaning that it gets Service license type

If you have already assigned the headsets via WMS, to initiate this feature:

  • After enabling, for the first headset use, users need to lift the headset from the charger, place it back, and then lift it again

  • Alternatively, before activation, unassign headsets via WMS (Devices -> choose device -> click Assign to user -> in the Extension field, choose “unknown”). Subsequently, users should press the Call button when lifting the headsets from the charger

Note: It is possible to customize prompts pronounced during user verification by voice. For this, add the following variable(s) to WMS -> Dialplan -> General Settings -> Set dialplan variables field:

  • XHOPPERS_VOICEFOOTPRINT_PROMPT=your custom prompt

This variable allows to set your custom prompt instead of the default voice footprint message “After the beep please say with x-hoppers: my voice is my password“.

  • XHOPPERS_LOGIN_PROMPT=custom login message

Set a custom prompt instead of “Please say your first and last name to use the device“. For example, as long as it is possible to login via extension number, you can change the prompt to “Say your extension”.

  • XHOPPERS_CONFIRMATION_PROMPT=no

By default, the value is yes. When disabled, the variable allows to skip the playback message “Please hold to use the device, or say cancel to search again“. 

  • XHOPPERS_FINISH_PROMPT=your custom prompt

Set a custom x-hoppers message instead of the default “Thank you”, pronounced at the end of voice verification, when a user needs to wait till the headset joins the conference. 

x-hoppers-custom-prompts.pngImage Removed

Set up virtual users

Starting from WMS 6.07, it is possible to configure dummy (virtual) users for assigning a headset in case a user could not be verified by voice after 3 attempts. To set a list of dummy users for assigning a headset in case of voice authorization failure:

  1. Create the file with the following name:

Code Block
/rw2/etc/pbx/x-hoppers_dummy_users.json
  1. In this file, add the list of dummy user extensions, for example:

Code Block
[703, 706, 702]

When dummy users are configured, and a user fails to complete verification by voice, the headset gets automatically assigned to an available dummy user. 

How to perform the Demo 

During a demonstration of x-hoppers, you can present both basic and advanced scenarios to showcase the system's capabilities. Basic scenarios involve scanning QR codes or using tablets and utilizing x-bees for gathering and posting content, while advanced scenarios showcase integration with Veesion and ChatGPT, taking communication to the next level.

Tip

To showcase tablet scenarios, you do not need to have an actual tablet, you can use a web version by using the link:

Joining the broadcast

The broadcast is the core functionality of x-hoppers, it refers to the network created by the system that enables real-time communication between x-hoppers users (retail assistants).

x-hoppers users are connected to the broadcast in Retail mode (muted) by default once W-AIR Headsets are lifted from the charging cradle.

Speaking

To start speaking in the broadcast, use one of the options:

  1. Call button: press and hold the button to get unmuted. You stay unmuted only while pressing the button. When the button is released, the Headset goes back to mute

  2. Mute button: press the button to unmute and be able to speak in the broadcast. All people in the broadcast can hear you. You stay unmuted till Mute button is pressed again or till the Headset is placed to the Charger

Muting

To mute/ unmute the broadcast:

  1. Double-press Call button

  2. By default, audio from the broadcast gets muted for 60 seconds

  3. To unmute the broadcast before the timeout, double-press Call button again

You can customize the default 60 seconds timeout:

  • Add the following line to /etc/systemd/system/pbx-data-engine.service.d/override.conf file: 

    Code Block
    Environment='XHOP_UNHOLD_TIMEOUT=120'
  • Where 120 is the preferred timeout. If you want to disable the timeout, set the value to 0:

    Code Block
    Environment='XHOP_UNHOLD_TIMEOUT=0'

...

It is also possible to manage incoming and outgoing calls while being connected to the broadcast. Once a call ends, the Headset will automatically return to the broadcast.

To answer incoming calls:

  1. Double-press Call button to answer the call

  2. Double-press Call button to swap between the call and the broadcast

  3. Double-press AUX Function button to finish the call

To make outgoing calls:

  1. Open x-bees app on your device

  2. Access the dialpad within the app

  3. Before placing the call, select the Headset as the audio output device to ensure the call audio is routed through the Headset

  4. Dial the desired number using the dialpad and initiate the call

Tip

Wildix desk phones can also join the broadcast, as long as they are connected to the same PBX. We suggest connecting SuperVision (specifically relevant for managers) and joining the broadcast via one of the following options:

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

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

In case you need to join several broadcasts, you can set a dedicated Function key to enter each broadcast.

Joining the broadcasts remotely

One of the remarkable features of x-hoppers system is its ability to allow users to join any broadcast from any location using any device. By dialling into x-hoppers demonstrations line via PSTN, for example, you are presented with a menu of choices to engage with the system and join specific broadcasts, allowing for flexible and accessible participation.

To demonstrate:

  • Dial CLASSOUND DID from an external device

  • Choose one of the options from the interactive menu:

    • Option 1: Ring all retail assistants in Call group. By pressing 1, you initiate a broadcast to all users in a specific Call group. This option is ideal for scenarios where a general announcement or message needs to be communicated to all users simultaneously

    • Option 2: Hunt through Call group with Priority or Round Robin strategy. By pressing 2, you trigger a call routing mechanism that hunts through each user connected to a specific Call group in a predefined order. This option is suitable for customer care scenarios where callers need to be connected to representatives consecutively until a successful connection is established

    • Option 3: Call directly to a single user. By selecting 3, you directly contact a specific user, typically a manager or designated contact person. This option allows for one-on-one communication and is useful for private conversations

    • Option 4: Join broadcast 1. Pressing 4 enables you to join the first broadcast. This option grants the ability to participate in a specific broadcast session and communicate with all users simultaneously

    • Option 5: Join broadcast 2. Pressing 5 enables you to join the second broadcast, extending the capability to address a different group of users simultaneously

It is possible to make announcement in x-hoppers broadcast to users of specific Departments only. For this:

  1. Create a CURL request that triggers a message to the required department

Example: 

Code Block
curl -X POST --header 'Authorization: Bearer {token}'

https://{pbx domain}/api/v1/Originate -d

'channel=Local/999@myDialplan&application=System&async=true' -d

'variable=dst=777,dept=Sales,msg=help required at checkouts'

Where:

  • 999 = the Dialplan rule that processes the request; you can set a custom number. 

  • dst = the rule in the outgoing Dialplan of users that should receive the announcement

  • dept =  department name

  • msg = the announcement, a text prompt or a path to an audio file stored on the PBX

Note: msg and dept values can be wrapped in double quotation marks (“)

  1. Create rule 999 (you can set a custom number) and call the following script in that rule:

Code Block
Custom app :: System(data_engine_cli OriginatePlayback ${dst} '${dept}' '${msg}')

3. Create a Dialplan rule with dst number (this can be any number that is not occupied by a user or by another real destination, e.g. 111 or 777) in the outgoing users Dialplan(s). If users have different Dialplans, the rule with dst number should be created in each of them (or it can be added as an included procedure). Configuration:

Code Block
Set :: Language :: en (this one is needed for TTS processing)

Set(sound=${SHELL(/usr/sbin/data_engine_cli GetSound ${CALLERID(num)})})

Play sound :: ${sound}

Important: In case of changing Department name, make sure to reload PBX engine to apply the changes:

...

present both basic and advanced scenarios to showcase the system's capabilities. Basic scenarios involve scanning QR codes or using tablets and utilizing x-bees for gathering and posting content, while advanced scenarios showcase integration with Veesion and ChatGPT, taking communication to the next level.

Tip

To showcase tablet scenarios, you do not need to have an actual tablet, you can use a web version by using the link:

Joining the broadcast

The broadcast is the core functionality of x-hoppers, it refers to the network created by the system that enables real-time communication between x-hoppers users (retail assistants).

x-hoppers users are connected to the broadcast in Retail mode (muted) by default once W-AIR Headsets are lifted from the charging cradle.

Speaking

To start speaking in the broadcast, use one of the options:

  1. Call button: press and hold the button to get unmuted. You stay unmuted only while pressing the button. When the button is released, the Headset goes back to mute

  2. Mute button: press the button to unmute and be able to speak in the broadcast. All people in the broadcast can hear you. You stay unmuted till Mute button is pressed again or till the Headset is placed to the Charger

Muting

To mute/ unmute the broadcast:

  1. Double-press Call button

  2. By default, audio from the broadcast gets muted for 60 seconds

  3. To unmute the broadcast before the timeout, double-press Call button again

The default 60 seconds timeout can be customized. For instructions, check x-hoppers Admin Guide (see the section “Modifying the timeout of broadcast mute”).


Managing calls

It is also possible to manage incoming and outgoing calls while being connected to the broadcast. Once a call ends, the Headset will automatically return to the broadcast.

To answer incoming calls:

  1. Double-press Call button to answer the call

  2. Double-press Call button to swap between the call and the broadcast

  3. Double-press AUX Function button to finish the call

To make outgoing calls:

  1. Open x-bees app on your device

  2. Access the dialpad within the app

  3. Before placing the call, select the Headset as the audio output device to ensure the call audio is routed through the Headset

  4. Dial the desired number using the dialpad and initiate the call

Tip

Wildix desk phones can also join the broadcast, as long as they are connected to the same PBX. We suggest connecting SuperVision (specifically relevant for managers) and joining the broadcast via one of the following options:

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

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

In case you need to join several broadcasts, you can set a dedicated Function key to enter each broadcast.

Joining the broadcasts remotely

One of the remarkable features of x-hoppers system is its ability to allow users to join any broadcast from any location using any device. By dialling into x-hoppers demonstrations line via PSTN, for example, you are presented with a menu of choices to engage with the system and join specific broadcasts, allowing for flexible and accessible participation.

To demonstrate:

  • Dial CLASSOUND DID from an external device

  • Choose one of the options from the interactive menu:

    • Option 1: Ring all retail assistants in Call group. By pressing 1, you initiate a broadcast to all users in a specific Call group. This option is ideal for scenarios where a general announcement or message needs to be communicated to all users simultaneously

    • Option 2: Hunt through Call group with Priority or Round Robin strategy. By pressing 2, you trigger a call routing mechanism that hunts through each user connected to a specific Call group in a predefined order. This option is suitable for customer care scenarios where callers need to be connected to representatives consecutively until a successful connection is established

    • Option 3: Call directly to a single user. By selecting 3, you directly contact a specific user, typically a manager or designated contact person. This option allows for one-on-one communication and is useful for private conversations

    • Option 4: Join broadcast 1. Pressing 4 enables you to join the first broadcast. This option grants the ability to participate in a specific broadcast session and communicate with all users simultaneously

    • Option 5: Join broadcast 2. Pressing 5 enables you to join the second broadcast, extending the capability to address a different group of users simultaneously

It is possible to make announcement in x-hoppers broadcast to users of specific Departments only. Read more in the documentation: x-hoppers Admin Guide (see the section “Make announcement to users of specific departments”)

Basic scenarios

Tip

Ensure that all demo users are connected to an audio conference set up in Dialplan (in our example, conf 2), as all audio alerts are delivered to this specific conference.

...

x-hoppers offers a dedicated Analytics feature that provides detailed statistics about the system’s usage. By monitoring these metrics, managers can gain insights into the time distribution of retail assistants in conferences, including the total time spent, wait time, and talk time, as well as view statistics per each separate store, including the number of active users, average and total talk time and monitor the usage of help points, both tablets and QR codes. Such information can be valuable for analyzing productivity and optimizing conference management to improve efficiency.

To access x-hoppers Analytics, follow these steps:

  • Open x-bees and navigate to Analytics menu, Liveboards tab

  • Select “x-hoppers: Agents Stats” Liveboard to view Agents or Stores Stats or

  • Select “Demo: x-hoppers HelpPoints” Liveboard to demonstrate the usage of help points. Note, that stats for this report are artificially generated. To show the real stats per a specific PBX, select “x-hoppers HelpPoints”

Tip: To generate statistics for multiple stores, it is necessary to have multiple active conferences.

...

panelIconId1f4d7
panelIcon:green_book:
panelIconText📗
bgColor#E3FCEF

...

time, and talk time, as well as view statistics per each separate store, including the number of active users, average and total talk time and monitor the usage of help points, both tablets and QR codes. Such information can be valuable for analyzing productivity and optimizing conference management to improve efficiency.

To access x-hoppers Analytics, follow these steps:

  • Open x-bees and navigate to Analytics menu, Liveboards tab

  • Select “x-hoppers: Agents Stats” Liveboard to view Agents or Stores Stats or

  • Select “Demo: x-hoppers HelpPoints” Liveboard to demonstrate the usage of help points. Note, that stats for this report are artificially generated. To show the real stats per a specific PBX, select “x-hoppers HelpPoints”

Tip: To generate statistics for multiple stores, it is necessary to have multiple active conferences.

...

Panel
panelIconId1f4d7
panelIcon:green_book:
panelIconText📗
bgColor#E3FCEF

Detailed description of x-hoppers Analytics can be found in x-hoppers Analytics.

Other options

Voice-Enabled User Authorization

Within x-hoppers, you can enable the logic of assigning W-AIR headsets to users via speech-to-text and verify their identity by voice footprint (either for all users or for users of specific Departments only).

Explore how to enable and use this feature in the documentation: How to set up Voice Authorization for x-hoppers

Push-to-talk on mobile

This option allows to send Push-to-talk messages to x-hoppers broadcast from x-bees conversation. Users can send voice messages to x-hoppers broadcast via mobile and receive broadcast messages to x-bees conversation, having them played automatically in Speaker mode. 

Read more in the documentation https://wildix.atlassian.net/wiki/x/AQCIIg