Running several differnt PBX systems in the past (including Nortel) I found that having calls forwarded to your cell phone very helpful. This feature is known as Find me Follow me, and now available on most systems out therem even some standard home-phone systems. It is a life saver for some one on the road.

But it has one huge flaw – VoiceMail. Sure you can program the Find Me Follow Me to pull the call back before it gets picked up after the x ring, so the call never ends up in your cell’s voicemail. But what if you loose reception, or the phone dies. Voicemail kicks in on the FIRST ring!!!

Well FreePBX has a fix for that!!! Its called Remote Call Announce. When it forwards a call to a cell phone, a lady comes on asking you to push 1 to accept the call, 2 to decline it or 3 for CID information. Since Voicemails cant send back dtfm tones, the call never gets sent to the cell unless YOU pick it up! Although you may get some random voicemails 🙂

Sounds Great right? Not so much. I turned the feature on, and sure enough the lady came ont he phone, and i pushed one…. And then Nothing. Thats right.. Silence. In fact the pbx system just hung up!

Seems theres is a bug in FreePBX that broke this feature some time ago. Im not sure if newer versions have it fixed, and there is no official fix for it.

But pooring over some of the differnt forums and fixes, none of them where a perminate fix. AT very best i found a manual edit of the conf files after freepbx was done with them. That means every change has to be re-corrected.

So i decided to build my own patch file for this issue.. And here it is..

*** admin/modules/core/functions.inc.php.back 2010-06-17 01:14:21.000000000 -0400
--- admin/modules/core/functions.inc.php 2010-06-17 01:17:11.000000000 -0400
***************
*** 1437,1445 ****
$ext->add($context, $exten, '', new ext_setvar('__MACRO_RESULT','ABORT'));
$ext->add($context, $exten, '', new ext_setvar('MSG1','${IF($["foo${ARG1}" != "foo"]?${ARG1}:"incoming-call-1-accept-2-decline")}'));
if (version_compare($version, "1.4", "ge")) {
! $ext->add($context, $exten, 'start', new ext_background('${MSG1},m,${CHANNEL(language)},macro-confirm'));
} else {
! $ext->add($context, $exten, 'start', new ext_background('${MSG1},m,${LANGUAGE},macro-confirm'));
}
$ext->add($context, $exten, '', new ext_read('INPUT', '', 1, '', '', 4));
$ext->add($context, $exten, '', new ext_gotoif('$[${LEN(${INPUT})} > 0]', '${INPUT},1', 't,1'));
--- 1437,1445 ----
$ext->add($context, $exten, '', new ext_setvar('__MACRO_RESULT','ABORT'));
$ext->add($context, $exten, '', new ext_setvar('MSG1','${IF($["foo${ARG1}" != "foo"]?${ARG1}:"incoming-call-1-accept-2-decline")}'));
if (version_compare($version, "1.4", "ge")) {
! $ext->add($context, $exten, 'start', new ext_background('${MSG1},m,${CHANNEL(language)},confirm'));
} else {
! $ext->add($context, $exten, 'start', new ext_background('${MSG1},m,${LANGUAGE},confirm'));
}
$ext->add($context, $exten, '', new ext_read('INPUT', '', 1, '', '', 4));
$ext->add($context, $exten, '', new ext_gotoif('$[${LEN(${INPUT})} > 0]', '${INPUT},1', 't,1'));

Leave a Reply

Your email address will not be published.