FreePBX Version
FreePBX 17
Issue Description
Module: Superfecta 17.0.5
FreePBX Version: 17
PHP Version: 8.2.29
Severity: Critical — Superfecta non-functional on all inbound calls
Summary:
Superfecta returns empty caller ID on all live calls. No sources execute. No errors logged.
Root Cause:
In agi/superfecta.agi, the scheme name is parsed with:
php$sn = explode("_", $scheme, 2);
In FreePBX 17, CIDSFSCHEME decodes to Default (no underscore prefix). This produces only $sn[0]; $sn[1] is undefined. The call to execute($sn[1], ...) passes an empty string, which hits the early return in execute():
phpif(empty($scheme) || ...) { return ''; }
Fix:
Add after the explode line:
phpif (!isset($sn[1])) { $sn[1] = $sn[0]; }
Steps to Reproduce:
Install FreePBX 17 with Superfecta 17.0.5
Configure any Superfecta scheme
Place inbound call
Observe SUPERFECTA_NEW is always empty
Operating Environment
See above
Relevant log output
FreePBX Version
FreePBX 17
Issue Description
Module: Superfecta 17.0.5
FreePBX Version: 17
PHP Version: 8.2.29
Severity: Critical — Superfecta non-functional on all inbound calls
Summary:
Superfecta returns empty caller ID on all live calls. No sources execute. No errors logged.
Root Cause:
In agi/superfecta.agi, the scheme name is parsed with:
php$sn = explode("_", $scheme, 2);
In FreePBX 17, CIDSFSCHEME decodes to Default (no underscore prefix). This produces only $sn[0]; $sn[1] is undefined. The call to execute($sn[1], ...) passes an empty string, which hits the early return in execute():
phpif(empty($scheme) || ...) { return ''; }
Fix:
Add after the explode line:
phpif (!isset($sn[1])) { $sn[1] = $sn[0]; }
Steps to Reproduce:
Install FreePBX 17 with Superfecta 17.0.5
Configure any Superfecta scheme
Place inbound call
Observe SUPERFECTA_NEW is always empty
Operating Environment
See above
Relevant log output