In General Settings make honoring CFU in Ring Group optional.
A check box in General Setting:
[] Follow CFU in Ring Group
Help Text: "If checked (default) follow extension CFU setting when part of a Ring Group"
This will set a global variable CFU_IN_RG = 1 (default) and CFU_IN_RG = 0 if not checked.
Change in dialparties.agi:
// Ext has CFU and is Unavailable
if ( ($exthascfu == 1) && ($extstate == 4) ) {
// If part of a ring group, then just do what CF does, otherwise needs to
// drop back to dialplan with NOANSWER
if ($rgmethod != '' && $rgmethod != 'none') {
debug("Extension $extnum has call forward on no answer set and is unavailable and is part of a Ring Group forwarding to '$extcfu'",1);
$extnum = $extcfu . '#'; # same method as the normal cf, i.e. send to Local
} else {
debug("Extension $extnum has call forward on no answer set and is unavailable",1);
$extnum = '';
$AGI->set_variable('DIALSTATUS','NOANSWER');
}
Change this to:
// Ext has CFU and is Unavailable
if ( ($exthascfu == 1) && ($extstate == 4) ) {
// If part of a ring group, then just do what CF does, otherwise needs to
// drop back to dialplan with NOANSWER
if ($rgmethod != '' && $rgmethod != 'none') {
debug("Extension $extnum has call forward on no answer set and is unavailable and is part of a Ring Group forwarding to '$extcfu'",1);
if ($honorcfu = '0') {
$extnum = '';
} else
$extnum = $extcfu . '#'; # same method as the normal cf, i.e. send to Local
}
} else {
debug("Extension $extnum has call forward on no answer set and is unavailable",1);
$extnum = '';
$AGI->set_variable('DIALSTATUS','NOANSWER');
}
This request will make FreePBX follow the Ring Group strategy that other branded PBX's do.