Hi all,
I may have found a bug in FreePBX 17 where changing the destination of an existing Inbound Route in the web GUI appears to save correctly, but the actual destination in the database is not updated.
Environment
- FreePBX 17
- Sangoma FreePBX Distro 12
- Debian 12
- Asterisk 22.7.0
What I did
I have an existing Inbound Route for a DID, sanitized here as:
31XXXXXXXXX
Its original destination was:
Time Condition 1
I changed the destination in the FreePBX GUI to a direct extension, sanitized here as:
Extension 1XXX
I then clicked Submit and Apply Config.
The GUI showed the new destination, but incoming calls continued to follow the old Time Condition.
Reloading did not help
I manually ran:
sudo fwconsole reload
Output:
Reload Started
Reload Complete
And also:
sudo asterisk -rx "dialplan reload"
This completed successfully as well.
However, checking the active dialplan showed that the DID was still being sent to the old destination:
[dest-ext] Goto(timeconditions,1,1)
The incoming call trace also confirmed that the correct DID was being matched, so this does not appear to be a DID matching or trunk issue.
The call flow was still:
Inbound DID
-> Time Condition 1
-> IVR
instead of:
Inbound DID
-> Extension 1XXX
Database check
I then checked the asterisk.incoming table directly:
sudo mysql -e "SELECT extension,cidnum,destination,description FROM asterisk.incoming WHERE extension='31XXXXXXXXX'\G"
Result:
extension: 31XXXXXXXXX
cidnum:
destination: timeconditions,1,1
description: [redacted]
So despite changing the destination in the GUI and applying the configuration, the database itself still contained the old destination.
Manual database change works
As a test, I manually changed the destination field in asterisk.incoming to point directly to the extension and then ran:
sudo fwconsole reload
After that, the generated Asterisk dialplan immediately contained the new destination and incoming calls were routed correctly.
I later restored the database value back to:
timeconditions,1,1
and after another fwconsole reload the original routing was restored correctly as well.
This seems to indicate that:
- Asterisk is reloading correctly.
fwconsole reloadis generating the dialplan correctly.- The generated dialplan accurately reflects
asterisk.incoming. - The problem appears to be that changing the Inbound Route destination through the FreePBX GUI does not update the
destinationfield inasterisk.incoming.
Has anyone else seen this on FreePBX 17?
Is there a known Core/Inbounds issue where an existing Inbound Route can display a changed destination in the GUI without actually committing that destination to the database?
If useful, I can reproduce it again and provide sanitized browser/PHP logs and module versions.