Repository navigation
Description
Steps to reproduce
- In FreePBX, open Applications → Blind transfer callback (Return On Transfer).
- Set Enabled to No and save, leaving a valid timeout configured.
- Reload FreePBX, or upgrade/restart NethVoice with this configuration.
Expected behavior
FreePBX reloads and starts successfully. Blind-transfer callback remains disabled, and existing timeout, caller-name prefix and Alertinfo settings are preserved.
Actual behavior
fwconsole reload fails with Undefined array key "enabled" in Returnontransfer.class.php at line 85. During startup this prevents FreePBX from becoming ready, and systemd repeatedly restarts the service. The reported instance also had NethCTI server restarts; a direct causal link has not been verified.
The module saves the disabled state using setConfig('enabled', false). FreePBX interprets boolean false as deletion, so getAll() no longer contains the key. Installation initializes all settings only when timeout is absent, leaving this legacy disabled configuration unchanged. Dialplan generation and the settings form access the missing key without a default.
The deletion and reload-hook exception were reproduced locally with the bundled module and FreePBX 17.0.33.2 storage helper, using simulated database operations. The affected instance database and exact before/after application versions have not been inspected.
Components
NethVoice, bundled Return On Transfer module 1.2.0; repository framework pin FreePBX 17.0.33.2. Exact deployed NethVoice version was not supplied. Although initially reported as Recall On Busy, the failing code is in the separate Return On Transfer module.
Proposed correction
Persist disabled as 0 instead of deleting the setting. Accept a missing enabled key as legacy disabled state in dialplan generation and the settings form. Initialize missing settings independently, preserving existing values and the enabled-by-default behavior of genuinely fresh installations.
See also
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
edospadoni commentedon Nov 11, 2026
Test
PRs: nethesis/ns8-nethvoice#1194
Setup: an instance on a release before this one (e.g. 1.8.1). In FreePBX, Applications → Blind transfer callback.
Test Case 1 - Upgrade with the callback disabled
fwconsole reloadmay already fail withUndefined array key "enabled")systemctl --user show freepbx -p NRestarts(as the module user) does not increase,fwconsole reloadcompletesTest Case 2 - Save and reload
Test Case 3 - Callback behavior
Test Case 4 - Fresh installation
RT: ${xfer_exten} ${CALLERID(name)})Testing release: 1.8.2-testing.2 (nethesis/ns8-nethvoice#1194, includes nethesis/ns8-nethvoice#1196 from 1.8.2-testing.1)
Update command (replace
nethvoiceXwith the NethVoice instance):Stell0 commentedon Nov 12, 2026
Release
nethesis/ns8-nethvoice1.8.2