Summary:ASTERISK-06878: [branch][post 1.4] Allow caller to dial 1-9 while leaving voicemail
Reporter:Mitch Sharp (bluecrow76)Labels:
Date Opened:2006-05-01 17:05:40Date Closed:2008-01-09 12:30:22.000-0600
Versions:Frequency of
Environment:Attachments:( 0) 20071207__bug7063.diff.txt
( 1) app_voicemail.c.patch.vm1-9
( 2) app_voicemail.v2.patch
( 3) app_voicemail.v3.asterisk-1.4.11.patch
( 4) app_voicemail.v3.svn-trunk.patch
Description:Currently, app_voicemail will allow you to fall out to the o and a extension by pressing 0 and * respectively while leaving a voicemail.  This patch allows the user to press 1-9 and falls out to the extensions vm1-vm9 based on the number pressed.  It uses the same logic that existed in app_voicemail.c for the a and o extensions.  The patch was created on, but patches svn 24053 just fine.

When the user presses 0-9 or *, app_voicemail sets the channel variable VMMAILBOX to the vmu->mailbox.

We created this patch to allow users to say "I am currently away from my desk, press 1 to reach my cell phone or 0 for the operator," as well as any other scenarios we/you can think of.  The application will set VMMAILBOX to the mailbox that was being accessed so the dialplan can handle the logic of dealing with what cell phone number to dial, or whatever action needs to be taken.
Comments:By: Clod Patry (junky) 2006-05-01 18:23:08

You need a disclaimer for this patch could be reviewed.

By: Leif Madsen (lmadsen) 2006-05-02 22:43:01

Should we actually be going to an extension called vm1-vm9? This same kind of logic exists in the Dial() application (and I'm sure a couple others). Here is a description from Dial():

d - Allow the calling user to dial a 1 digit extension while waiting for
   a call to be answered. Exit to that extension if it exists in the
   current context, or the context defined in the EXITCONTEXT variable,
   if it exists.

I'm thinking to keep usage consistant, use this 'd' option in the Voicemail() application then maybe read the contents of the VMEXITCONTEXT variable? Other than that, the logic seems sound to me.

By: Mitch Sharp (bluecrow76) 2006-05-03 07:47:54

Very good idea blitzrage.  I'll start working on that.

I will be sending in a disclaimer to Digium today.

By: Leif Madsen (lmadsen) 2006-05-03 09:11:06


By: BJ Weschke (bweschke) 2006-05-03 09:53:17

bluecrow76: blitzrage's suggestion is a good one, and I think that we do need to check for the existence of the extension in the requested context before we set ourselves up to go to that something that doesn't exist and let the pbx switching infrastructure try to handle the consequences of that.

By: Jeffrey C. Ollie (jcollie) 2006-05-19 14:40:50

This patch doesn't allow for 1-9 to be hit when the message is actually being recorded...  Also, i've been tracking this patch in branch "asterisk/team/jcollie/bug7063".

By: Serge Vecher (serge-v) 2006-06-05 20:11:41

bluecrow: please update your patch that takes jcollie's concerns into consideration ... Thanks.

By: Tilghman Lesher (tilghman) 2006-06-22 11:41:58

Reminder:  we need an update here.

By: dimitripietro (dimitripietro) 2006-07-01 01:25:12

I would really like to see this patch adapted for It's a very interresting function

By: Tilghman Lesher (tilghman) 2006-07-01 10:46:53

dimitripietro:  I'm afraid that's out of the question.  This is a new feature, and new features are not permitted in any release version, only in the development version.

By: Mitch Sharp (bluecrow76) 2006-07-20 14:36:43

I would like to get some feedback.  I took a look at the code to add this feature while leaving a message as well.  Numbers 1, 2, and 3 are already taken by other features while leaving a voicemail (because the function that is used it also used for other recording features of app_voicemail), which leaves 4-9 available.  There is a switch statement that has left 4-9 open for future features (like this one).  My question is how many of those 6 keys should we use here and how many should we leave open for other future features?

Another option would be to use double digits for the out, but I haven't really looked into it that hard yet.  I await opinions from the wise ones out there!

I will also post this to the asterisk-dev list.

By: Nic Bellamy (nic_bellamy) 2006-08-14 21:39:14

I'd like to see this move forward, so am pasting in my -dev list email here:


What about the possibility of using an exit context, much like you can with queues: if the number dialed exists as a VoiceMail app option, it handles it, otherwise it looks it up in the exit context, and if it exists (or matches, eg. allowing dialling of extensions or whatever), jumps to it.

Not that I'm a wise one, but it sounds good to me, as you'd then have single/multiple digit options, all configurable from the dialplan.


By: jmls (jmls) 2006-10-31 11:19:44.000-0600

are we going to move this forward ?

By: Jason Parker (jparker) 2006-11-21 10:34:50.000-0600

What is the status of the disclaimer on this?  Was it sent in?

By: Serge Vecher (serge-v) 2007-01-09 13:08:56.000-0600

ok, last request for update before we close this report ...

By: Mitch Sharp (bluecrow76) 2007-01-09 13:36:55.000-0600

I sent the disclaimer in quite a while ago... don't remember the exact date, but it's probably been at least two months by now.

By: Serge Vecher (serge-v) 2007-01-09 13:45:58.000-0600

bluecrow76: thanks. Please update the patch to the latest trunk too...

By: Serge Vecher (serge-v) 2007-02-21 14:54:36.000-0600


By: Mitch Sharp (bluecrow76) 2007-02-26 13:00:58.000-0600


Any update on the disclaimer status?  I sent it in quite a while ago.  Do I need to send another?

I don't have time to work on this right away but will try to spend some time on it in the next few weeks.

By: Tilghman Lesher (tilghman) 2007-08-27 15:45:38

bluecrow76:  the disclaimer process has now been changed to where you can "sign" a disclaimer online.  If you have time in the next week or so, you can update your patch to trunk and agree to the disclaimer via the file upload process.  Sorry for the past confusion; this new method should make the problem of knowing who has a disclaimer much easier to work with in the future.

By: Michiel van Baak (mvanbaak) 2007-09-23 04:35:52

Any update on the license ?

By: Mitch Sharp (bluecrow76) 2007-09-23 10:40:03

Will try to get things updated this week.

By: Daniel Lynes (dlynes) 2007-09-24 10:43:21

bluecrow76:  great idea; I've been using the '0' feature to double for this, so that it goes to the cellphone instead of the operator; I hope you get it approved for 1.4

By: Paul Hales (paulh) 2007-10-01 21:55:47

This patch would be great - we had someone looking for an extra option or two the other day...

By: Mitch Sharp (bluecrow76) 2007-10-04 12:27:28

FYI: I'm working on this today.  I just figured out how to extend the number pressing into the recording of the message itself.  Keep your fingers crossed and I should have a patch this afternoon.

By: Mitch Sharp (bluecrow76) 2007-10-04 17:14:24

I just uploaded app_voicemail.v2.patch.  This patch creates the 'd' option as suggested by blitzrage.

I'm still working on adding the VMEXITCONTEXT variable and extending accepting the keypresses into the recording of the message and not just the playing of the greeting.  I am having to do a bit of work on play_record_review.

It'll be late next week before I get another chance to dive back into it.

I'm not a fluent C programmer, so please, any optimization or style suggestions would be welcome!

By: Mitch Sharp (bluecrow76) 2007-10-05 11:37:29

I just finished getting the transfer to work during the greeting and while recording.  Right now it just dumps straight to the extension when the digit is pressed.  Would anyone like to see it ask if they want to send the message they've recorded and then jump?  Would anyone like it to play a beep or say transfer after the digit is pressed and before jumping to the extension?  I'm thinking a config file option for the beep or transfer would be handy, or another switch option to enable/disable it.

I'm of the opinion that if you want it to say something to the user before the extension does something, play the sound file of your choice from the extension.

Any thoughts?

By: Mitch Sharp (bluecrow76) 2007-10-05 12:37:29

The complete patch (v3) has just been uploaded.  It supports the VMEXITCONTEXT, the Voicemail application d option and leaving the application from listening to the greeting or recording a message.  The v3 patch for 1-9 jumps straight to the extension and does not give options for sending a partially recorded message.

The 1.4.11 patch has been tested on our office server today and have had no issues.  The svn patch has not been tested.  I applied the 1.4.11 patch to SVN and had 3 out of 20 hunks fail:

File to patch: apps/app_voicemail.c
patching file apps/app_voicemail.c
Hunk #1 succeeded at 243 with fuzz 2 (offset 44 lines).
Hunk #3 succeeded at 657 (offset 282 lines).
Hunk #4 FAILED at 735.
Hunk ASTERISK-1 succeeded at 2721 (offset -68 lines).
Hunk ASTERISK-2 succeeded at 3145 (offset 275 lines).
Hunk ASTERISK-3 succeeded at 2896 (offset -71 lines).
Hunk ASTERISK-4 FAILED at 3045.
Hunk ASTERISK-5 succeeded at 3487 with fuzz 2 (offset 296 lines).
Hunk ASTERISK-6 succeeded at 3148 (offset -71 lines).
Hunk ASTERISK-7 succeeded at 6508 (offset 526 lines).
Hunk ASTERISK-8 succeeded at 5925 (offset -71 lines).
Hunk ASTERISK-9 succeeded at 6533 (offset 526 lines).
Hunk ASTERISK-10 succeeded at 5975 (offset -71 lines).
Hunk ASTERISK-11 succeeded at 6680 with fuzz 1 (offset 520 lines).
Hunk ASTERISK-12 FAILED at 7535.
Hunk ASTERISK-13 succeeded at 8498 (offset 260 lines).
Hunk ASTERISK-14 succeeded at 8770 (offset 520 lines).
Hunk ASTERISK-15 succeeded at 8574 (offset 260 lines).
Hunk ASTERISK-16 succeeded at 8850 with fuzz 1 (offset 520 lines).
3 out of 20 hunks FAILED -- saving rejects to file apps/app_voicemail.c.rej

The failed hunks were due to some changes in the IMAP lines and removal of deprecated options.

By: Mitch Sharp (bluecrow76) 2007-11-09 17:08:39.000-0600

Has anyone tried the new patch?

By: Tilghman Lesher (tilghman) 2007-12-07 16:55:11.000-0600

I'm going to suggest a slightly simpler way of doing this, which also allows arbitrary length extensions to be entered while listening to a voicemail greeting.  It's also a much simpler patch.

By: Mitch Sharp (bluecrow76) 2007-12-07 17:12:31.000-0600

That's a great idea... and your code looks much better than mine!  I won't have an opportunity to test it until next week.  Does your code allow the extension to be entered while leaving a message?

By: Tilghman Lesher (tilghman) 2007-12-07 23:05:11.000-0600

It allows the extension to be entered during the playback of the greeting, same as the use of the '*' or '0' keys, to go to the 'a' or 'o' extension, respectively.

For obvious reasons, extensions cannot start with '*' or '0' if either of those capabilities are turned on in voicemail.conf.  Also, extensions cannot start with '#', because that DTMF is used to skip the greeting.

By: Tilghman Lesher (tilghman) 2007-12-24 21:14:36.000-0600

bluecrow76:  have you had an opportunity to test this and ensure that it works for you yet?

Or anyone else?

By: Digium Subversion (svnbot) 2008-01-08 17:48:03.000-0600

Repository: asterisk
Revision: 97305

U   trunk/apps/app_voicemail.c

r97305 | tilghman | 2008-01-08 17:48:02 -0600 (Tue, 08 Jan 2008) | 6 lines

Add a new flag 'd' (with optional context) permitting any extension within
that context to be entered as a new extension during the playback of a
voicemail greeting.
Patch inspired by bluecrow76, by tilghman.
(Closes issue ASTERISK-6878)



By: Digium Subversion (svnbot) 2008-01-09 12:30:22.000-0600

Repository: asterisk
Revision: 97556

_U  team/murf/bug11210/
U   team/murf/bug11210/apps/app_meetme.c
U   team/murf/bug11210/apps/app_queue.c
U   team/murf/bug11210/apps/app_voicemail.c
U   team/murf/bug11210/channels/Makefile
U   team/murf/bug11210/channels/chan_gtalk.c
U   team/murf/bug11210/channels/chan_oss.c
U   team/murf/bug11210/channels/chan_zap.c
A   team/murf/bug11210/channels/console_board.c
U   team/murf/bug11210/channels/console_gui.c
U   team/murf/bug11210/channels/console_video.c
U   team/murf/bug11210/channels/console_video.h
U   team/murf/bug11210/codecs/codec_zap.c
A   team/murf/bug11210/images/font.png
U   team/murf/bug11210/images/kpad2.jpg
U   team/murf/bug11210/main/asterisk.c
U   team/murf/bug11210/main/cli.c
U   team/murf/bug11210/main/editline/readline.c
U   team/murf/bug11210/res/res_features.c

r97556 | murf | 2008-01-09 12:30:19 -0600 (Wed, 09 Jan 2008) | 245 lines

Merged revisions 97280-97282,97303,97305,97307,97309,97364-97365,97389-97390,97421,97449,97451,97488,97490,97495,97530-97533 via svnmerge from

r97280 | rizzo | 2008-01-08 16:09:44 -0700 (Tue, 08 Jan 2008) | 11 lines

add support for textareas, used for various dialog windows on the gui.
The main code to implement the textarea is in console_board.c,
and uses a simple png image with the font, blitting characters
on the designated areas of the main screen.
Additionally we provide some annotations in the image used
as a skin to indicate which areas are used for text messages.
(images will be committed separately).
At the moment the dialog area is only used to display a running
counter, just as a proof of concept.

r97281 | rizzo | 2008-01-08 16:11:25 -0700 (Tue, 08 Jan 2008) | 5 lines

add a font suitable for use with the console GUI.
The background of this particular image is transparent so we
can preserve the original background when we draw strings.

r97282 | rizzo | 2008-01-08 16:14:48 -0700 (Tue, 08 Jan 2008) | 6 lines

Add the annotation for the textarea used for messages,
and also change the background from white to something
different to show that we can make use of fonts with transparent

r97303 | rizzo | 2008-01-08 16:35:05 -0700 (Tue, 08 Jan 2008) | 4 lines

add copyright (most of this code was written by Marta Carbone),
remove some unused code, add/clarify some comments.

r97305 | tilghman | 2008-01-08 16:51:51 -0700 (Tue, 08 Jan 2008) | 6 lines

Add a new flag 'd' (with optional context) permitting any extension within
that context to be entered as a new extension during the playback of a
voicemail greeting.
Patch inspired by bluecrow76, by tilghman.
(Closes issue ASTERISK-6878)

r97307 | mmichelson | 2008-01-08 16:56:24 -0700 (Tue, 08 Jan 2008) | 13 lines

Merged revisions 97304 via svnmerge from

r97304 | mmichelson | 2008-01-08 17:49:11 -0600 (Tue, 08 Jan 2008) | 5 lines

Part 1 of N of adding doxygen comments to app_queue. I picked some of the most common functions
used (which also happen to be some the biggest/ugliest functions too) to document first. I'm pretty
new to doxygen so criticism is welcome.


r97309 | mmichelson | 2008-01-08 17:18:15 -0700 (Tue, 08 Jan 2008) | 11 lines

Merged revisions 97308 via svnmerge from

r97308 | mmichelson | 2008-01-08 18:17:40 -0600 (Tue, 08 Jan 2008) | 3 lines

use the
etval doxygen command properly


r97364 | tilghman | 2008-01-08 17:51:59 -0700 (Tue, 08 Jan 2008) | 13 lines

Merged revisions 97350 via svnmerge from

r97350 | tilghman | 2008-01-08 18:44:14 -0600 (Tue, 08 Jan 2008) | 5 lines

Allow filename completion on zero-length modules, remove a memory leak, remove
a file descriptor leak, and make filename completion thread-safe.
Patched and tested by tilghman.
(Closes issue ASTERISK-11153)


r97365 | tilghman | 2008-01-08 17:58:22 -0700 (Tue, 08 Jan 2008) | 2 lines

New option in trunk, needs strdupa to be safe, too

r97389 | rizzo | 2008-01-09 05:13:32 -0700 (Wed, 09 Jan 2008) | 4 lines

make get_video_desc() return the active console if
passed a null argument (channel).

r97390 | rizzo | 2008-01-09 05:23:18 -0700 (Wed, 09 Jan 2008) | 7 lines

implement the "console startgui" and "console stopgui"
commands so you can start and stop the gui even outside
of a call. This is convenient for testing, and also for
using the keypad to pick up a call, and to dial a number
(the latter not yet implemented, but should be close).

r97421 | kpfleming | 2008-01-09 08:31:56 -0700 (Wed, 09 Jan 2008) | 10 lines

Merged revisions 97410 via svnmerge from

r97410 | kpfleming | 2008-01-09 09:26:23 -0600 (Wed, 09 Jan 2008) | 2 lines

add error number output to ioctl failure messages to help with debugging


r97449 | kpfleming | 2008-01-09 08:45:34 -0700 (Wed, 09 Jan 2008) | 10 lines

Merged revisions 97448 via svnmerge from

r97448 | kpfleming | 2008-01-09 09:43:19 -0600 (Wed, 09 Jan 2008) | 2 lines

pass the right variable to get an error string... oops


r97451 | file | 2008-01-09 09:13:24 -0700 (Wed, 09 Jan 2008) | 14 lines

Merged revisions 97450 via svnmerge from

r97450 | file | 2008-01-09 12:11:17 -0400 (Wed, 09 Jan 2008) | 6 lines

Don't do conferencing totally in Zaptel if Monitor is running on the channel.
(closes issue ASTERISK-11179)
Reported by: BigJimmy
     patch-meetmerec uploaded by BigJimmy (license 371)


r97488 | rizzo | 2008-01-09 09:44:20 -0700 (Wed, 09 Jan 2008) | 8 lines

Implement keyboard handling, and use it to enter
a number to dial in the 'message' area under the

Now you can make calls using the keypad as a regular phone
(or the keyboard for chars not present on the keypad)

r97490 | phsultan | 2008-01-09 09:59:09 -0700 (Wed, 09 Jan 2008) | 15 lines

Merged revisions 97489 via svnmerge from

r97489 | phsultan | 2008-01-09 17:44:24 +0100 (Wed, 09 Jan 2008) | 7 lines

Set the caller id within the gtalk_alloc function.

As underlined in issue ASTERISK-10070 by Josh, we need to prevent a possible
memory leak. We only set the name part of the caller id, the number
part is not relevant when dealing with JIDs.

Closes issue ASTERISK-11037.

r97495 | kpfleming | 2008-01-09 10:30:13 -0700 (Wed, 09 Jan 2008) | 10 lines

Merged revisions 97491 via svnmerge from

r97491 | kpfleming | 2008-01-09 11:21:14 -0600 (Wed, 09 Jan 2008) | 2 lines

report the same message whether Zaptel does not have transcoder support loaded or no transcoders were found


r97530 | rizzo | 2008-01-09 11:03:40 -0700 (Wed, 09 Jan 2008) | 11 lines

Two changes:
- support scrolling of message window;
- simplify the code for creating a message window,
 and try it using a second one in the top of
 the keypad (where we echo the dialed number).

The 'skin' that supports these two windows will be
committed separately.

r97531 | russell | 2008-01-09 11:04:14 -0700 (Wed, 09 Jan 2008) | 10 lines

Merged revisions 97529 via svnmerge from

r97529 | russell | 2008-01-09 12:02:08 -0600 (Wed, 09 Jan 2008) | 2 lines

Fix saying the parking space number to the caller doing the parking ...


r97532 | rizzo | 2008-01-09 11:04:17 -0700 (Wed, 09 Jan 2008) | 4 lines

add annotations for the two message windows
we use.

r97533 | rizzo | 2008-01-09 11:12:44 -0700 (Wed, 09 Jan 2008) | 3 lines

remove a wrong 'const'