This is an addition to #1697, If you install a core freepbx system, and don't add the vm module, all extensions get default as voicemail option:
mysql> select extension, voicemail from asterisk.users;
+-----------+-----------+
| extension | voicemail |
+-----------+-----------+
| 2401 | default |
| 2402 | default |
| 2491 | default |
+-----------+-----------+
3 rows in set (0.00 sec)
When dialing an extension:
-- Executing Set("IAX2/sb-3", "FROMCONTEXT=exten-vm") in new stack
-- Executing Set("IAX2/sb-3", "VMBOX=2402") in new stack
-- Executing Set("IAX2/sb-3", "EXTTOCALL=2402") in new stack
-- Executing Set("IAX2/sb-3", "CFUEXT=") in new stack
-- Executing Set("IAX2/sb-3", "CFBEXT=") in new stack
-- Executing Set("IAX2/sb-3", "RT=15") in new stack
...
-- Executing Dial("IAX2/sb-3", "IAX2/2402|15|tr") in new stack
-- Called 2402
== Manager 'admin' logged off from 127.0.0.1
-- Call accepted by 83.248.12.187 (format alaw)
-- Format for call is alaw
-- IAX2/2402-4 is ringing
-- Nobody picked up in 15000 ms
-- Hungup 'IAX2/2402-4'
-- Executing Set("IAX2/sb-3", "SV_DIALSTATUS=NOANSWER") in new stack
-- Executing GosubIf("IAX2/sb-3", "0?docfu|1") in new stack
-- Executing GosubIf("IAX2/sb-3", "0?docfb|1") in new stack
-- Executing Set("IAX2/sb-3", "DIALSTATUS=NOANSWER") in new stack
-- Executing NoOp("IAX2/sb-3", "Voicemail is 2402") in new stack
-- Executing GotoIf("IAX2/sb-3", "0?s-NOANSWER|1") in new stack
-- Executing NoOp("IAX2/sb-3", "Sending to Voicemail box 2402") in new stack
-- Executing Macro("IAX2/sb-3", "vm|2402|NOANSWER") in new stack
-- Executing Macro("IAX2/sb-3", "user-callerid|SKIPTTL") in new stack
-- Executing NoOp("IAX2/sb-3", "user-callerid: Niklas Larsson 8541") in new stack
-- Executing GotoIf("IAX2/sb-3", "0?report") in new stack
-- Executing GotoIf("IAX2/sb-3", "1?start") in new stack
-- Goto (macro-user-callerid,s,5)
-- Executing NoOp("IAX2/sb-3", "REALCALLERIDNUM is 8541") in new stack
-- Executing Set("IAX2/sb-3", "AMPUSER=") in new stack
-- Executing Set("IAX2/sb-3", "AMPUSERCIDNAME=") in new stack
-- Executing GotoIf("IAX2/sb-3", "1?report") in new stack
-- Goto (macro-user-callerid,s,11)
-- Executing NoOp("IAX2/sb-3", "TTL: 64 ARG1: SKIPTTL") in new stack
-- Executing GotoIf("IAX2/sb-3", "1?continue") in new stack
-- Goto (macro-user-callerid,s,21)
-- Executing NoOp("IAX2/sb-3", "Using CallerID "Niklas Larsson" <8541>") in new stack
-- Executing Set("IAX2/sb-3", "VMGAIN=") in new stack
-- Executing GotoIf("IAX2/sb-3", "1?s-NOANSWER|1") in new stack
-- Goto (macro-vm,s-NOANSWER,1)
-- Executing Macro("IAX2/sb-3", "get-vmcontext|2402") in new stack
-- Executing Set("IAX2/sb-3", "VMCONTEXT=") in new stack
-- Executing GotoIf("IAX2/sb-3", "1?200:300") in new stack
-- Goto (macro-get-vmcontext,s,200)
-- Executing Set("IAX2/sb-3", "VMCONTEXT=default") in new stack
-- Executing VoiceMail("IAX2/sb-3", "2402@default|u") in new stack
-- Executing Goto("IAX2/sb-3", "exit-FAILED|1") in new stack
-- Goto (macro-vm,exit-FAILED,1)
-- Executing Playback("IAX2/sb-3", "im-sorry&an-error-has-occured") in new stack
-- Playing 'im-sorry' (language 'se')
-- Playing 'an-error-has-occured' (language 'se')
-- Executing Hangup("IAX2/sb-3", "") in new stack
And it doesn't help to install the voicemail module after the extensions are added, the vm module only looks for disabled or empty string in the table.
Fix:
in voicemail module:
update users set voicemail='novm' where voicemail='disabled' or voicemail='' or voicemail='default';
And for core: amp_conf/htdocs/admin/modules/core/functions.inc.php
Index: functions.inc.php
===================================================================
--- functions.inc.php (revision 3931)
+++ functions.inc.php (arbetskopia)
@@ -1120,7 +1120,7 @@
$sql.= "\", \"";
$sql.= isset($name)?$name:'';
$sql.= "\", \"";
- $sql.= isset($voicemail)?$voicemail:'default';
+ $sql.= isset($voicemail)?$voicemail:'novm';
$sql.= "\", \"";
$sql.= isset($ringtimer)?$ringtimer:'';
$sql.= "\", \"";