FreePBX drops calls when going to voicemail

Trixbox v2.2.3
FreePBX 2.3.1.3

Problem: freepbx drops calls when they reach voicemail from a specific route.

Inbound route workflow:

incoming → from-pstn → business hours time condition → ring group → queue → dial by name directory → select name → confirm → ring extension → voicemail

The incoming call follows the route correctly throught the ring group (the group times out), falls over to the queue, the caller selects the dial by name directory, dials the recipient, and the recipient’s phone rings, then it is supposed to fall over to voicemail. At that point the call is disconnected. I’ve also received feedback from callers that this occurs through other routes as well, but always from the dial by name directory.

Call path:

[code]Incoming call

|
Time condition (no match)-> off hours IVR → voicemail or queue depending on selection (this path works fine)
|
(time condition matched)
|
Queue (no breakout allowed)
|
Queue → # → dial by name → # → user’s voicemail
|
General voicemail

Log:

Sorry about that. :frowning:
I captured the log again, this time I am making sure I copy the right thing!

Moment of disconnect:

Initially I thought this may have been due to the queue’s having had an extension beginning with 9, however I replaced the queue with another one in another range (the 6000 range) and obtained the same results, so I put it back the way it was. " Blocking VM cause of key: " - I am querying google for that now, but what is it?

is the IVR associated with the queue so that they can break out of the queue and dial by name?

yes

Can you try this patch (from IVR’s functions.inc.php):

Index: functions.inc.php
===================================================================
--- functions.inc.php   (revision 5686)
+++ functions.inc.php   (working copy)
@@ -167,6 +167,8 @@
                                                $ext->addInclude($id,'app-directory');
                                                $dir = featurecodes_getFeatureCode('infoservices', 'directory');
                                                $ext->add($id, '#', '', new ext_goto("app-directory,$dir,1"));
+                                               $ext->add($id, '#' ,'', new ext_dbdel('${BLKVM_OVERRIDE}'));
+                                               $ext->add($id, '#' ,'', new ext_setvar('__NODEST', ''));
                                        }
 
                                        $ext->add($id, 'h', '', new ext_hangup(''));

Hello Phillippe,

I applied the change and did an amportal restart, no change in behavior.

I then created a new IVR, changed the inbound route to use the new IVR, and I still see the same behavior.

(deleted incorrect log info)

That did it! Thanks a ton!

glad to hear it. Would be great if you cold open up a ticket in the bug tracker. I can then get the fix into both 2.3 and 2.4 and published.

Will do - I’ll try to log it this evening

that does not look like the correct part of the log. I don’t see where the call is being blocked or even attempting to go to voicemail.

oops - got my added instructions in the wrong place. Try this version of the patch (you need to apply it to the original file, or if you want you can just manually edit the currently patched file. The two instructions with the + should come before, not after the goto.

Index: functions.inc.php
===================================================================
--- functions.inc.php   (revision 5686)
+++ functions.inc.php   (working copy)
@@ -166,6 +166,8 @@
                                        if (!empty($details['enable_directory'])) {
                                                $ext->addInclude($id,'app-directory');
                                                $dir = featurecodes_getFeatureCode('infoservices', 'directory');
+                                               $ext->add($id, '#' ,'', new ext_dbdel('${BLKVM_OVERRIDE}'));
+                                               $ext->add($id, '#' ,'', new ext_setvar('__NODEST', ''));
                                                $ext->add($id, '#', '', new ext_goto("app-directory,$dir,1"));
                                        }

took care of it: #2687

r5712 (2.4), r5714 (2.3)

Hmm, I just logged it (I got SWAMPED the last two days and didn’t get a chance until now) and checked back here. Sorry about the dupe!

Hi,
I have a similar problem, except that mine occurs when a queue member answers a call, and they tries to transfer it to another extension. I see from the logs that it is blocking voicemail because the call came out of a queue - but the transferred call should go to voicemail.

CAME FROM: 575 - Blocking VM cause of key:

Will the patch above fix this? I see that the change was made to the ivr module, so I’m thinking not as mine does not go through an IVR. Thanks!

I opened a bug for this: http://freepbx.org/trac/ticket/2696

awells,
your scenario should not happen. What sort of ‘agents’ are you using? The mechanisms in place are specifically designed to allow your scenario to work. When the call gets answered, the flag gets cleared. If you are using ‘agents.conf’ agents then that would be a problem as they are not supported in the FreePBX environment and your described behavior would happen.

So yeah 4 years old now but I, too am having the exact same trouble.
FreePBX 2.9.0.7, Asterisk 1.6.2.20

I created my entire configuration through the GUI, so there shouldn’t be any surprises in the config. The scenario:

Someone calls one of three queues via an IVR. Agent answers, sends the caller to an extension. If the extension is using follow me no matter what you set the timers to it will never go to voicemail. The call is simply dropped instead.

Any thoughts? I’ve looked and this is the only thread I saw of this kind, so I hope I’m not duplicating something answered somewhere else!