Versions Compared

Key

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

This guide explains how to configure voice authorization for assigning x-hoppers headsets to users. 

Created: June 2024

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

Introduction

x-hoppers allows to configure the logic of assigning headsets to users via:

...

Make sure to reload systemd and restart the service to apply the changes:

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

Note:

Reloading systemd

Reloading systemd is

required

each

time

you

make

any

changes

to

the 

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

...

and

...

gets

...

Service

...

license

...

type

...

in

...

the

...

system.

...

When

...

a

...

user

...

lifts

...

the

...

headset

...

from

...

the

...

charger:

  1. The user is asked to say their name

  2. The user should pronounce the name and surname 

  3. The system looks for the user and assigns the headset to the user

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.  

Enable user verification by voice

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. 

Tip

Note: The support starts from WMS 6.06

To set up the feature, see instructions below:

  1. Install the specific libraries to enable verification of identity by voice using the following command: 

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

...

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.

Tip

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.

  1. Add the following variable to

...

  1. WMS -> Dialplan -> General Settings -> Set dialplan variables field and click Save:

    Code Block
    XHOP_VOICE_AUTH=yes 

When the feature is enabled, upon lifting the headset, users are prompted to say their first and last name and pronounce the phrase “My voice is my password“ to complete voice recognition.

...

Tip

Note: Starting from WMS 6.07, instead of first and last name users can pronounce their extension during verification by voice.

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.

...

  1. Modify the following line in /etc/systemd/system/pbx-data-engine.service.d/override.conf file by adding “department” value after --xhop_voice_login:

    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

    When the value “department” is set, the list of departments from the environment variable XHOP_VOICE_AUTH_DEPS_LIST (see step 2) is used for verification by voice.

  2. Add the following line to /etc/systemd/system/pbx-data-engine.service.d/override.conf file, 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.

...

  1. Create the file with the following name:

    Code Block
    /rw2/etc/pbx/x-hoppers_dummy_users.json
  2. 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. 

...

It is possible to customize prompts pronounced during user verification by voice. 

Tip

Note: The support starts from WMS 6.07.

For this, add the following variable(s) to WMS -> Dialplan -> General Settings -> Set dialplan variables field:

  1. 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“:

    Code Block
    XHOPPERS_VOICEFOOTPRINT_PROMPT=your custom prompt
  2. To 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”.

    Code Block
    XHOPPERS_LOGIN_PROMPT=custom login message
  3. To skip the playback message “Please hold to use the device, or say cancel to search again“: 

    Code Block
    XHOPPERS_CONFIRMATION_PROMPT=no

    By default, the value is yes. 

  4. To 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:

    Code Block
    XHOPPERS_FINISH_PROMPT=your custom prompt

...