Ticket #2303 (closed Bugs: fixed)

Opened 6 years ago

Last modified 5 years ago

Queue-IVR direct dial doesn't reach voicemail if extension is busy

Reported by: ronald.lew Assigned to: p_lindheimer
Priority: minor Milestone: 2.4
Component: Queues Version: SVN-HEAD
Keywords: Cc:
Confirmation: Confirmed Distro:
Backend Engine: All Distro Ver:
Backend Ver: SVN Revision (if applicable):

Description

A caller cannot reach the direct dial extension's voicemail from a queue with context of ivr. This bug is similar to (but not the same as) #1530 and #1119.

Steps to recreate:

  1. Create an extension.
  2. Create IVR with direct dial enabled.
  3. Create a Queue with voice menu IVR.
  4. Have caller join the queue from incoming route or dial to queue.
  5. Have caller dial extension.
  6. Now, the CLI should have notice of "CAME FROM: ${NODEST} - Blocking VM cause of key: ${DB{BLKVM_OVERRIDE}}.

From extensions.conf, FreePBX checks for ${DB${BLKVM_OVERRIDE}} and if it set to TRUE, then voicemail is blocked. On extensions_additional.conf, the variable is set before adding the caller to the queue. Since the caller is still in the same context, the variable was never unset.

Change History

08/21/07 16:43:39 changed by p_lindheimer

  • owner set to p_lindheimer.
  • status changed from new to assigned.
  • confirmation changed from Unreviewed to Confirmed.
  • version changed from 2.3-branch to SVN-HEAD.

It appears you stumbled accross a bug that is probably not going to be fixed, at least not for a while. The wiki documentation (which appears to be wrong) indicates that only single digit 'break out' extensions are supported from the Queue. It appears that what really happens is it will match what ever extension is in the given context but with no delay. This means, for example, if you have no options that start with 2 and all your extensions start with 2, you are in fact able to direct dial the extension. Unfortunately you run into a scenario which will be a bit more involved to address, assuming we choose to address it. (I would want to check that this mode is really supported by queues and not that it happens to be working at the time).

For now all we support is breaking out to a single digit extension so you would be advised to re-implement your scenario possibly as follows:

  • create IVR with no access to extensions and appropriate message for the queue
  • create options in that IVR as appropriate, maybe press 1 to dial an extension
  • make the given choice (1) go to another IVR with an appropriate message and expose the extensions at that point. They should then be able to successfully get to an extensions as well as the voicemail.

The fundamental issue here is that the mechanism is needed while in the Queue to block voicemail. So the solution is probably to not include ext-local and ext-findmefollow when allowing direct access to extension for a scenario like this (this is what is generated). Instead, a new set of contexts by core and followme would need to be created just for use in the IVR that cleared the flag first.

08/21/07 18:47:32 changed by ronald.lew

My temporary solution was to have a given choice (1) go to a custom app such as:

[custom-ivr-dial]

exten => s,1,Answer()

exten => s,n,Read(dialext2)
exten => s,n,Goto(ext-local,1${dialext},1)
exten => s,n,Hangup()

12/04/07 19:03:08 changed by p_lindheimer

  • status changed from assigned to closed.
  • resolution set to fixed.

r5344 in 2.4 should fix this.