Exemplo n.º 1
0
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();
        }
    }
}