コード例 #1
0
ファイル: ivr_action.php プロジェクト: shinichi85/voiperopen
     } elseif ($DIRECTORY != 'disabled') {
         $aa[] = array($context, 'i', '2', 'Goto', 's,8', '', '0');
     }
 }
 $i = 1;
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'GotoIf', '$["${DIALSTATUS}" = ""]?3', '', '0');
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'GotoIf', '$["${DIALSTATUS}" = "ANSWER"]?4', '', '0');
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Answer', '', '', '0');
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Wait', '1', '', '0');
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'LOOPED=1', '', '0');
 if ($_REQUEST['loopdestinationcontext'] == 'hangup') {
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'GotoIf', '$[${LOOPED} > ' . $_REQUEST['loopmenu'] . ']?hang,1', $_REQUEST['loopmenu'], '0');
 } else {
     $loopgoto = $_REQUEST;
     extract($loopgoto);
     $loopdestination = buildActualGoto($loopgoto, 999);
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'GotoIf', '$[${LOOPED} > ' . $_REQUEST['loopmenu'] . ']?' . $loopdestination . ':', $_REQUEST['loopmenu'], '0');
 }
 if ($DIRECTORY != 'disabled') {
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'DIR-CONTEXT=' . $_REQUEST['dircontext'], '', '0');
 }
 if ($_REQUEST['custom-speeddial'] != 'disabled' or $_REQUEST['extlocal-context'] != 'disabled') {
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'TIMEOUT(digit)=3', $_REQUEST['mname'], '0');
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'TIMEOUT(response)=3', '', '0');
 } else {
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'TIMEOUT(digit)=1', $_REQUEST['mname'], '0');
     $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Set', 'TIMEOUT(response)=1', '', '0');
 }
 $aa[] = array($context, $extension, sprintf('%02s', $i++), 'Background', 'custom/' . $context, $_REQUEST['notes'], '0');
 $aa[] = array($context, 't', '1', 'Set', 'LOOPED=$[${LOOPED} + 1]', '', '0');
 $aa[] = array($context, 't', '2', 'Goto', 's,6', '', '0');
コード例 #2
0
ファイル: did.php プロジェクト: shinichi85/voiperopen
function addIncoming($incoming)
{
    global $db;
    foreach ($incoming as $key => $val) {
        ${$key} = addslashes($val);
    }
    // create variables from request
    $existing = getIncomingInfo($extension, $cidnum, $channel);
    if (empty($existing)) {
        $destination = buildActualGoto($incoming, 0);
        $destination_only_numba = explode(",", $destination);
        if ($destination_only_numba[1] == "s") {
            $destination_only_numba = "";
        }
        $alertinfofix = mysql_escape_string($alertinfo);
        $sql = "INSERT INTO incoming (cidnum,extension,destination,faxexten,faxemail,faxemail2,answer,wait,CIDName,privacyman,alertinfo,channel,ringing,addprefix,phonebook) values ('{$cidnum}','{$extension}','{$destination}','{$faxexten}','{$faxemail}','{$faxemail2}','{$answer}','{$wait}','{$CIDName}','{$privacyman}','{$alertinfofix}','{$channel}','{$ringing}','{$ADDPrefix}','{$phonebook}')";
        $results = $db->query($sql);
        if (DB::IsError($result)) {
            die($result->getMessage());
        }
        $extension = empty($extension) ? "s" : $extension;
        $account = $extension . (empty($cidnum) ? "" : "/" . $cidnum);
        $i = 1;
        $catchall = false;
        if (empty($channel)) {
            $context = "ext-did";
        } else {
            $context = "macro-from-zaptel-{$channel}";
            if (!isset($zapchan[$channel])) {
                $addarray[] = array($context, $account, sprintf('%02s', $i++), 'NoOp', $context . ' with DID = ${DID}', $destination_only_numba[1], '0');
                $zapchan[$channel] = "unfinished";
            }
        }
        $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'FROM_DID=' . $account, $destination_only_numba[1], '0');
        if ($ringing == "CHECKED") {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Ringing', '', $destination_only_numba[1], '0');
        }
        if ($extension == "s" && $context == "ext-did") {
            $catchaccount = "_X." . (empty($cidnum) ? "" : "/" . $cidnum);
            if ($catchaccount == "_X.") {
                $catchall = true;
                $addarray[] = array($context, $catchaccount, "1", 'NoOp', 'Catch-All DID Match - Found ${EXTEN} - You probably want a DID for this.', $destination_only_numba[1], '0');
                $addarray[] = array($context, $catchaccount, "2", 'Goto', 'ext-did,s,1', $destination_only_numba[1], '0');
            }
        }
        if ($faxexten != "default") {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'FAX_RX=' . $faxexten, $destination_only_numba[1], '0');
        }
        if (!empty($faxemail)) {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'FAX_RX_EMAIL=' . $faxemail, $destination_only_numba[1], '0');
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'FAX_RX_EMAIL2=' . $faxemail2, $destination_only_numba[1], '0');
        }
        if ($answer == "1") {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Answer', '', $destination_only_numba[1], '0');
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Wait', $wait, $destination_only_numba[1], '0');
        }
        if (!empty($CIDName)) {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'CALLERID(name)=' . $CIDName, $destination_only_numba[1], '0');
        }
        if ($phonebook == "CHECKED") {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Macro', 'inboundphonebook', $destination_only_numba[1], '0');
        }
        if ($ADDPrefix != "") {
            $xcounter = $i;
            $true = $xcounter + 1;
            $false = $xcounter + 2;
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'GotoIf', '$[$[${LEN(${CALLERID(num)})} > 2] & $["${CALLERID(num)}" != "anonymous" ] & $["${CALLERID(num)}" != "unknown" ]]?' . $true . ':' . $false, $destination_only_numba[1], '0');
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Set', 'CALLERID(number)=' . $ADDPrefix . '${CALLERID(number)}', $destination_only_numba[1], '0');
        }
        if ($privacyman == "1") {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Macro', 'privacy-mgr', $destination_only_numba[1], '0');
        }
        if (!empty($alertinfo)) {
            $addarray[] = array($context, $account, sprintf('%02s', $i++), 'SIPAddHeader', '"' . $alertinfo . '"', $destination_only_numba[1], '0');
        }
        $zapchan[$channel] = "set";
        $addarray[] = array($context, $account, sprintf('%02s', $i++), 'Goto', $destination, $destination_only_numba[1], '0');
        foreach ($addarray as $add) {
            addextensions($add);
        }
    } else {
        echo "<script>javascript:alert('" . _("A route for this DID/CID already exists!") . "')</script>";
    }
}