function voicemail_mailbox_add($mbox, $mboxoptsarray) { global $astman; //check if VM box already exists if (voicemail_mailbox_get($mbox) != null) { trigger_error("Voicemail mailbox '{$mbox}' already exists, call to voicemail_maibox_add failed"); die_freepbx(); } $uservm = voicemail_getVoicemail(); extract($mboxoptsarray); if ($vm != 'disabled') { // need to check if there are any options entered in the text field if ($options != '') { $options = explode("|", $options); foreach ($options as $option) { $vmoption = explode("=", $option); $vmoptions[$vmoption[0]] = $vmoption[1]; } } if ($imapuser != '' && $imapuser != '') { $vmoptions['imapuser'] = $imapuser; $vmoptions['imappassword'] = $imappassword; } $vmoption = explode("=", $attach); $vmoptions[$vmoption[0]] = $vmoption[1]; $vmoption = explode("=", $saycid); $vmoptions[$vmoption[0]] = $vmoption[1]; $vmoption = explode("=", $envelope); $vmoptions[$vmoption[0]] = $vmoption[1]; $vmoption = explode("=", $delete); $vmoptions[$vmoption[0]] = $vmoption[1]; $uservm[$vmcontext][$extension] = array('mailbox' => $extension, 'pwd' => $vmpwd, 'name' => $name, 'email' => $email, 'pager' => $pager, 'options' => $vmoptions); // Update $_REQUEST with 'devinfo_mailbox, so MWI works. if (empty($_REQUEST['devinfo_mailbox'])) { $_REQUEST['devinfo_mailbox'] = "{$extension}@{$vmcontext}"; } } voicemail_saveVoicemail($uservm); $vmxobj = new vmxObject($extension); // Operator extension can be set even without VmX enabled so that it can be // used as an alternate way to provide an operator extension for a user // without VmX enabled. // if (isset($vmx_option_0_system_default) && $vmx_option_0_system_default != '') { $vmxobj->setMenuOpt("", 0, 'unavail'); $vmxobj->setMenuOpt("", 0, 'busy'); } else { if (!isset($vmx_option_0_number)) { $vmx_option_0_number = ''; } $vmx_option_0_number = preg_replace("/[^0-9]/", "", $vmx_option_0_number); $vmxobj->setMenuOpt($vmx_option_0_number, 0, 'unavail'); $vmxobj->setMenuOpt($vmx_option_0_number, 0, 'busy'); } if (isset($vmx_state) && $vmx_state) { if (isset($vmx_unavail_enabled) && $vmx_unavail_enabled != '') { $vmxobj->setState('enabled', 'unavail'); } else { $vmxobj->setState('disabled', 'unavail'); } if (isset($vmx_busy_enabled) && $vmx_busy_enabled != '') { $vmxobj->setState('enabled', 'busy'); } else { $vmxobj->setState('disabled', 'busy'); } if (isset($vmx_play_instructions) && $vmx_play_instructions == 'checked') { $vmxobj->setVmPlay(true, 'unavail'); $vmxobj->setVmPlay(true, 'busy'); } else { $vmxobj->setVmPlay(false, 'unavail'); $vmxobj->setVmPlay(false, 'busy'); } if (isset($vmx_option_1_system_default) && $vmx_option_1_system_default != '') { $vmxobj->setFollowMe(1, 'unavail'); $vmxobj->setFollowMe(1, 'busy'); } else { $vmx_option_1_number = preg_replace("/[^0-9]/", "", $vmx_option_1_number); $vmxobj->setMenuOpt($vmx_option_1_number, 1, 'unavail'); $vmxobj->setMenuOpt($vmx_option_1_number, 1, 'busy'); } if (isset($vmx_option_2_number)) { $vmx_option_2_number = preg_replace("/[^0-9]/", "", $vmx_option_2_number); $vmxobj->setMenuOpt($vmx_option_2_number, 2, 'unavail'); $vmxobj->setMenuOpt($vmx_option_2_number, 2, 'busy'); } } else { if ($vmxobj->isInitialized()) { $vmxobj->disable(); } } }