[Home]

Summary:ASTERISK-09185: Add ability to forward multiple users the same voicemail.
Reporter:Aujang Abadi (spectheintro)Labels:
Date Opened:2007-04-04 11:28:04Date Closed:2011-06-07 14:02:50
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/app_voicemail
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:From within the voicemailmain application, it is currently impossible to send a broadcast voicemail message. This is a fairly ubiquitous feature in PBXs.

Modify app_voicemail so that, upon choosing "forward a message," the user is asked to enter an extension, confirm it, and then asked if he/she would like to add another recipient.
Comments:By: Aujang Abadi (spectheintro) 2007-04-04 11:38:18

In case I am not being clear, let me paste an example broadcast-VM context I created in extensions.conf.

[vm-broadcast]

; basic premise--they dial in, and can add up to six recipients for voicemail

exten => s,1,SetVar(TEMPBOX1=0)
exten => s,2,SetVar(TEMPBOX2=0)
exten => s,3,SetVar(TEMPBOX3=0)
exten => s,4,SetVar(TEMPBOX4=0)
exten => s,5,SetVar(TEMPBOX5=0)
exten => s,6,SetVar(TEMPBOX6=0)
exten => s,7,Background(custom/broadcast)
exten => 1,1,Background(custom/continue)
exten => 9,1,Goto(ext-local-custom,100,1)
exten => 0,1,Voicemail(su101&${TEMPBOX1}&${TEMPBOX2}&${TEMPBOX3}&${TEMPBOX4}&${TEMPBOX5}&${TEMPBOX6})
exten => 0,n,Hangup()

; below, they add the individual mailboxes. i use tempbox to keep track of each separate voicemail box.

exten => _3XX,1,GoToIf($[${TEMPBOX1}=0]?,10:2)
exten => _3XX,2,GoToIf($[${TEMPBOX2}=0]?,20:3)
exten => _3XX,3,GoToIf($[${TEMPBOX3}=0]?,30:4)
exten => _3XX,4,GoToIf($[${TEMPBOX4}=0]?,40:5)
exten => _3XX,5,GoToIf($[${TEMPBOX5}=0]?,50:6)
exten => _3XX,6,GoToIf($[${TEMPBOX6}=0]?,50:6)
exten => _3XX,7,Goto(vm-broadcast,9,1)

exten => _3XX,10,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,11,SetVar(TEMPBOX1=${EXTEN})
exten => _3XX,12,SetVar(PEOPLE=1)
exten => _3XX,13,Background(custom/if-this-is-correct)
exten => _3XX,14,Background(custom/press-1)
exten => _3XX,15,Background(custom/if-this-is-not-correct)
exten => _3XX,16,Background(custom/press-2)


exten => _3XX,20,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,21,SetVar(TEMPBOX2=${EXTEN})
exten => _3XX,22,SetVar(PEOPLE=2)
exten => _3XX,23,Background(custom/if-this-is-correct)
exten => _3XX,24,Background(custom/press-1)
exten => _3XX,25,Background(custom/if-this-is-not-correct)
exten => _3XX,26,Background(custom/press-2)


exten => _3XX,30,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,31,SetVar(TEMPBOX3=${EXTEN})
exten => _3XX,32,SetVar(PEOPLE=3)
exten => _3XX,33,Background(custom/if-this-is-correct)
exten => _3XX,34,Background(custom/press-1)
exten => _3XX,35,Background(custom/if-this-is-not-correct)
exten => _3XX,36,Background(custom/press-2)


exten => _3XX,40,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,41,SetVar(TEMPBOX4=${EXTEN})
exten => _3XX,42,SetVar(PEOPLE=4)
exten => _3XX,43,Background(custom/if-this-is-correct)
exten => _3XX,44,Background(custom/press-1)
exten => _3XX,45,Background(custom/if-this-is-not-correct)
exten => _3XX,46,Background(custom/press-2)


exten => _3XX,50,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,51,SetVar(TEMPBOX5=${EXTEN})
exten => _3XX,52,SetVar(PEOPLE=5)
exten => _3XX,53,Background(custom/if-this-is-correct)
exten => _3XX,54,Background(custom/press-1)
exten => _3XX,55,Background(custom/if-this-is-not-correct)
exten => _3XX,56,Background(custom/press-2)


exten => _3XX,60,Playback(/var/spool/asterisk/voicemail/default/${EXTEN}/greet)
exten => _3XX,61,SetVar(TEMPBOX6=${EXTEN})
exten => _3XX,62,SetVar(PEOPLE=6)
exten => _3XX,63,Background(custom/if-this-is-correct)
exten => _3XX,64,Background(custom/press-1)
exten => _3XX,65,Background(custom/if-this-is-not-correct)
exten => _3XX,66,Background(custom/press-2)

; if someone makes a mistake, they press two and come here. this resets the tempbox to its proper setting, which will in
; turn reset people properly. (since people is only called for this function)

exten => 2,1,GoToIf($[${PEOPLE}=1]?,10:2)
exten => 2,2,GoToIf($[${PEOPLE}=2]?,20:3)
exten => 2,3,GoToIf($[${PEOPLE}=3]?,30:4)
exten => 2,4,GoToIf($[${PEOPLE}=4]?,40:5)
exten => 2,5,GoToIf($[${PEOPLE}=5]?,50:6)
exten => 2,6,GoToIf($[${PEOPLE}=6]?,50:6)

exten => 2,10,SetVar(TEMPBOX1=0)
exten => 2,11,Goto(vm-broadcast,1,1)

exten => 2,20,SetVar(TEMPBOX2=0)
exten => 2,21,Goto(vm-broadcast,1,1)

exten => 2,30,SetVar(TEMPBOX3=0)
exten => 2,31,Goto(vm-broadcast,1,1)

exten => 2,40,SetVar(TEMPBOX4=0)
exten => 2,41,Goto(vm-broadcast,1,1)

exten => 2,50,SetVar(TEMPBOX5=0)
exten => 2,51,Goto(vm-broadcast,1,1)

exten => 2,60,SetVar(TEMPBOX1=0)
exten => 2,61,Goto(vm-broadcast,1,1)

; end of [vm-broadcast]


Make this functionality to be available from the voicemail application, so that when someone chooses to forward a message, they are taken through steps similar to these.



By: Jason Parker (jparker) 2007-04-04 13:02:41

This can easily be done in dialplan, as you've already discovered.  We don't typically add features that can be done with a few lines of dialplan.  Closing.

By: Aujang Abadi (spectheintro) 2007-04-04 13:08:47

I do not think this is a reason to close the issue. It should not have to be enabled in the dial plan; it is an extremely common voicemail feature that should be accessible from the voicemail application. I have received numerous requests, despite my workaround, that this functionality be available from the voicemail menu, because many of my employees call in from external phones to check their messages, and it is an oversight to make them hang up, call back in, and then dial the VM-broadcast extension, when software PBX systems that are nearly 10 years old offer this functionality.

However, if you are adamant about not letting this particular issue remain open, please let me point out that there is currently NO workaround to do this exact thing with voicemail forwarding. Would you prefer I change the feature request to an implementation for voicemail forwarding?



By: Jason Parker (jparker) 2007-04-04 13:34:41

Yes, that would be more appropriate.

By: Aujang Abadi (spectheintro) 2007-04-04 13:35:47

All right, I will edit it momentarily.

By: Aujang Abadi (spectheintro) 2007-04-04 13:36:27

Oh, my mistake, it looks like you did it for me. Thanks!

By: Jason Parker (jparker) 2007-04-04 13:36:50

Already edited.

By: Serge Vecher (serge-v) 2007-04-05 08:31:38

please be aware, that feature requests without a patch will be closed within a week if no patch is produced. There are simply too many features requested to keep the bug-tracker in any sort of manageable state without doing that. If you really need this feature, I suggest placing a bounty on voip-info.org

By: Aujang Abadi (spectheintro) 2007-04-05 08:35:21

Understood. I am actually looking in to doing this myself--I cannot code in C, but a coworker of mine can, and I think together we may be able to hammer it out. If no one else responds to this, and it is closed within the week, could I re-open it at a later date if I have produced a patch? Or is the record itself deleted?

By: Leif Madsen (lmadsen) 2007-04-05 08:42:14

If closed, the original poster is able to re-open it. If that is not the case, then find a bug marshall on irc.freenode.net in the #asterisk-bugs channel.

By: Jason Parker (jparker) 2007-06-07 17:54:43

Closing for now.  Please do re-open if you get a patch for this.