Thank you to @pcm who provided the answer!
So, it turns out, this is an existing (and known) issue with the current (20.04) and previous versions of Wazo. See [WAZO-1467] - Wazo for the bug report. @sduthil is working on a fix, but for now, we have a patch you can implement using the Wazo custom configuration tools which WILL survive an upgrade.
The setting to enable dtmf transfers is available if you are using the API but not with the Web GUI. If you use the API to enable dtmf transfers and then make changes with the Web GUI, you may undo the API changes, so that is not a good solution.
You can enable dtmf transfers for all users or selected users. I chose to enable it for all users, but if you want, you can do it for selected users. I will show you the patch that enables dtmf transfer for all users.
In
/etc/asterisk/extensions_extra.d
add a file name
dtmf-transfer.conf
(you can call it whatever you want as long as it ends in .conf)
In dtmf-transfer.conf add the following:
[xivo-subrgbl-user]
exten = s,1,NoOp(Adding the ability for users to transfer calls using star-codes (eg *1 and *2))
same = n,Set(XIVO_CALLOPTIONS=tT${XIVO_CALLOPTIONS})
same = n,Return()
Now go back in and set the file permissions so the configuration can be accessed by Asterisk and the Web GUI:
chown asterisk:www-data /etc/asterisk/extensions_extra.d/dtmf-transfer.conf
chmod 660 /etc/asterisk/extensions_extra.d/dtmf-transfer.conf
The only thing to be careful of is that there are no other files in /etc/asterisk/extensions_extra.d that invoke the [xivo-subrgbl-user] global subroutine. There are none in the default Wazo setup so unless you add one elsewhere, you do not have an issue. By using the [xivo-subrgbl-user] global subroutine you do not need to add anything to each user’s setting to enable dtmf transfers.
Reboot your server and all users now have the ability to transfer calls using star-codes whether they are the recipient of or originator of a call.
In the default Wazo setup, you have two transfer types you can now do with star-codes:
*1 = Blind Transfer
*2 = Attended Transfer
If you do want to have only selected users have the ability to transfer calls using star-codes, change the name of the subroutine from the global subroutine (ie does not have to be called manually) [xivo-subrgbl-user] to something else like [allow-transfer] (ie a user-defined subroutine that has to be called to be in effect) and then add this subroutine name to the subroutine field in selected user’s configuration in:
User → General (tab) → Subroutine (field). Leave the brackets out ewhen entering the subroutine name in the Subroutine field.
Thanks Pascal @pcm !