Skip to end of metadata
Go to start of metadata


Sep 21, 2020 06:41

How to change Voicemail PIN from a phone

The Article describes the procedure that allows users to dial a specific number from their phone to change their voicemail password.

Created: March 2020

Permalink: https://confluence.wildix.com/x/N4AbB

Introduction

Currently there is no built-in way for a user to change a voicemail password from a phone. This is because the VM password is derived from the web password (password for Collaboration).  This is fine in most of the cases, but there could be scenarios where a user does not access Collaboration at all (Basic licenses).  In such cases, all a user has is a hard phone. This means that there must be another way configured for them to change the VM PIN. The procedure described here allows users to dial an specific number from their phone to change their voicemail password.

Prerequisites

Sounds

There are some sounds that need to be created, these sounds are for giving users instructions during the process of changing the voicemail password:

  • vmpass

Create (either using TTS or uploading a file) a new sound called “vmpass”.  This sound is to indicate to the user to enter the current voicemail password (e.g. please enter your current voicemail password,).

  • getnewpass

Create (either using TTS or uploading a file) a new sound called “getnewpass”.  This sound is to indicate to the user to enter a new voicemail password (e.g. Please enter a new 5-digit password.)

  • again

Create (either using TTS or uploading a file) a new sound called “again”.  This sound is to be played after “getnewpass” is played. It will be used to have the caller re-enter the password.

All of the sounds should be named as indicated.  If different names or directories are used please adjust corresponding references within the Dialplan configurations shown below.

Script

There is a required script called “changePIN.php” that you need to upload to your system and place it in /var/www/scripts directory.  You can of course put the script in some other suitable place if you choose but you will need to adjust the corresponding entry in “execute” number within “changeVMPIN” procedure if you do so. Make sure that “changePIN.php” has execution permissions and is owned by WMS user.

Download the script:

changePIN.php 

Dialplan Configuration

A Dialplan called “changeVMPIN” is created to allow users to dial a number to change their voicemail password.  In the example dial plan, the access number is 7777 but this number can be changed to anything that you desire.  

Import the Dialplan to your system and include it in any procedure your users already have access to (most likely "users" Dialplan).  For clarity, we mean add it as an “included procedure”.

Download the Dialplan:

dialplan_2020.03.27_11.49.34_wildixacd_4.03.44914.08_221100002b70.bkp

The Dialplan procedure consists of:

7777

  • Custom application -> NoOp(Setting all needed variables)
  • Set -> attempts -> 0
  • Custom application -> Set(uid=${SHELL(ldapsearch -xLLL -D 'cn=admin,dc=wildix' -b 'dc=wildix' -w 'wildix' '(&(objectClass=wPerson)(|(telephoneNumber=${CALLERID(num)})))' userPIN | grep dn | tr -d '\n')})
  • Custom application -> Set(pin=${SHELL(ldapsearch -xLLL -D 'cn=admin,dc=wildix' -b 'dc=wildix' -w 'wildix' '(&(objectClass=wPerson)(|(telephoneNumber=${CALLERID(num)})))' userPIN | grep userPIN | tr -d '\n')})
  • Custom application -> Read(pass,00000/vmpass,5,,2,5)
  • Jump to -> changeVMPIN procedure -> set "start" number
  • Hangup -> 16 - Normal Call Clearing


change

  • Custom application -> NoOp(Changing vm password)
  • Custom application -> Read(pass1,00000/getnewpass,5,,2,5)
  • Custom application -> Read(pass2,00000/getnewpass&00000/again,5,,2,5)
  • Jump to if -> ${pass1}==${pass2} -> changeVMPIN procedure -> set "execute" number
  • Play sound -> Entered passwords do not match, please try again
  • Jump to -> changeVMPIN procedure -> set "change" number


execute

  • Jump to if -> ${LEN(${pass1})}!=5 -> changeVMPIN procedure -> set "finish" number
  • Remote script -> /var/www/scripts/changePIN.php
  • Hangup -> 16 - Normal Call Clearing


finish

  • Play sound -> too many wrong attempts or password length minor than 5 digits
  • Hangup -> 16 - Normal Call Clearing


start

  • Jump to if -> ${attempts}==3 -> changeVMPIN procedure -> set "finish" number
  • Jump to if -> ${REGEX("^.*${pass}$" ${pin})} -> changeVMPIN procedure -> set "change" number
  • Set -> attempts -> $[${attempts} + 1]
  • Play sound -> Wrong password
  • Custom application -> Read(pass,00000/vmpass,5,,2,5)
  • Jump to -> changeVMPIN procedure -> set "start" number

Recap of Setup Steps

  1. Create sounds in the system
  2. Download the “changePIN.php” script and copy it to the system under the /var/www/scripts directory.
  3. Make the script file executable and change it’s ownership to wms
  4. Download the dial plan and include into any users dial plans that need access to it.


Not finding the help you need?
Join the Facebook group to ask a question!
facebook_tech-wizards