コード例 #1
0
 public function doConfigPageInit($page)
 {
     $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
     $itemid = isset($_REQUEST['itemid']) ? $_REQUEST['itemid'] : '';
     switch ($action) {
         case "add":
             $_REQUEST['itemid'] = disa_add($_POST);
             needreload();
             break;
         case "delete":
             $oldItem = disa_get($itemid);
             disa_del($itemid);
             needreload();
             break;
         case "edit":
             //just delete and re-add
             disa_edit($itemid, $_POST);
             $_REQUEST['itemid'] = $itemid;
             needreload();
             break;
     }
 }
コード例 #2
0
ファイル: page.disa.php プロジェクト: hardikk/HNH
<?php 
if (isset($disas)) {
    foreach ($disas as $d) {
        echo "<li><a id=\"" . ($itemid == $d['disa_id'] ? 'current' : 'std') . "\" href=\"config.php?display=" . urlencode($dispnum) . "&itemid=" . urlencode($d['disa_id']) . "\">{$d['displayname']} ({$d['disa_id']})</a></li>";
    }
}
?>
</ul></div>

<div class="content">
<?php 
if ($action == 'delete') {
    echo '<br><h3>DISA ' . $oldItem["displayname"] . ' ' . _("deleted") . '!</h3>';
} else {
    //get details for this time condition
    $thisItem = disa_get($itemid);
    ?>

	<h2><?php 
    echo $itemid ? "DISA: " . $thisItem["displayname"] . " ({$itemid})" : _("Add DISA");
    ?>
</h2>
<?php 
    if ($itemid) {
        $delURL = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] . '&action=delete';
        $tlabel = sprintf(_("Delete DISA %s"), $thisItem["displayname"]);
        $label = '<span><img width="16" height="16" border="0" title="' . $tlabel . '" alt="" src="images/core_delete.png"/>&nbsp;' . $tlabel . '</span>';
        ?>
					<a href="<?php 
        echo $delURL;
        ?>
コード例 #3
0
ファイル: functions.inc.php プロジェクト: hardikk/HNH
function disa_get_config($engine)
{
    global $ext;
    switch ($engine) {
        case "asterisk":
            $disalist = disa_list();
            if (is_array($disalist)) {
                foreach ($disalist as $item) {
                    $nopass = false;
                    // delete it incase there was one from before (of course if it was deleted???
                    // this should all be done properly in class, see pinsets, but for now ...
                    //
                    $filename = "/etc/asterisk/disa-" . $item['disa_id'] . ".conf";
                    if (file_exists($filename)) {
                        unlink($filename);
                    }
                    if (isset($item['pin']) && !empty($item['pin']) && strtolower($item['pin']) != 'no-password') {
                        // Create the disa-$id.conf file
                        $fh = fopen($filename, "w+");
                        $pinarr = explode(',', $item['pin']);
                        if (count($pinarr) > 1) {
                            $is_file = true;
                            foreach ($pinarr as $pin) {
                                // Don't support remote MWI, too easy for users to break.
                                fwrite($fh, "{$pin}\n");
                            }
                            fclose($fh);
                            chmod($filename, 0660);
                        } else {
                            $is_file = false;
                        }
                    } else {
                        $nopass = true;
                    }
                    $thisitem = disa_get(ltrim($item['disa_id']));
                    // add dialplan
                    if ($thisitem['needconf'] == 'CHECKED') {
                        $ext->add('disa', $item['disa_id'], '', new ext_setvar('RESCOUNT', '1'));
                        $ext->add('disa', $item['disa_id'], 'loop', new ext_gotoif('$[ ${RESCOUNT} > 5]', 'end'));
                        $ext->add('disa', $item['disa_id'], '', new ext_read('RRES', 'press-1', '1', ',1,3'));
                        $ext->add('disa', $item['disa_id'], '', new ext_setvar('RESCOUNT', '$[${RESCOUNT}+1]'));
                        $ext->add('disa', $item['disa_id'], '', new ext_gotoif('$["x${RRES}"="x"]', 'loop'));
                    }
                    if (!$nopass) {
                        if ($is_file) {
                            $ext->add('disa', $item['disa_id'], '', new ext_authenticate('/etc/asterisk/disa-' . $item['disa_id'] . '.conf'));
                        } else {
                            $ext->add('disa', $item['disa_id'], '', new ext_authenticate($item['pin']));
                        }
                    } else {
                        $ext->add('disa', $item['disa_id'], '', new ext_answer(''));
                    }
                    $ext->add('disa', $item['disa_id'], '', new ext_setvar('_DISA', 'disa^' . $item['disa_id'] . '^newcall'));
                    $ext->add('disa', $item['disa_id'], 'newcall', new ext_setvar('_DISACONTEXT', $thisitem['context']));
                    $ext->add('disa', $item['disa_id'], '', new ext_setvar('_KEEPCID', 'TRUE'));
                    if ($thisitem['hangup'] == 'CHECKED') {
                        $ext->add('disa', $item['disa_id'], '', new ext_setvar('_HANGUP', '${TRUNK_OPTIONS}Hg'));
                    } else {
                        $ext->add('disa', $item['disa_id'], '', new ext_setvar('_HANGUP', '${TRUNK_OPTIONS}'));
                    }
                    $ext->add('disa', $item['disa_id'], '', new ext_setvar('TIMEOUT(digit)', $thisitem['digittimeout']));
                    $ext->add('disa', $item['disa_id'], '', new ext_setvar('TIMEOUT(response)', $thisitem['resptimeout']));
                    if ($item['cid']) {
                        $ext->add('disa', $item['disa_id'], '', new ext_setvar('CALLERID(all)', $item['cid']));
                    }
                    $ext->add('disa', $item['disa_id'], '', new ext_disa('no-password,disa-dial'));
                    $ext->add('disa', $item['disa_id'], 'end', new ext_hangup(''));
                }
                $context = 'disa-dial';
                $exten = '_[0-9a-zA-Z*#].';
                $ext->add($context, $exten, '', new ext_noop('called ${EXTEN} in ${DISACONTEXT} by ID: ${CUT(DISA,^,2)}'));
                $ext->add($context, $exten, '', new ext_dial('Local/${EXTEN}@${DISACONTEXT}', '300,${HANGUP}'));
                // Regular Trunk Dial
                $ext->add($context, $exten, '', new ext_gosub('1', 's-${DIALSTATUS}'));
                $ext->add($context, $exten, '', new ext_goto('${CUT(DISA,^,1)},${CUT(DISA,^,2)},${CUT(DISA,^,3)}'));
                $exten = 's-ANSWER';
                $ext->add($context, $exten, '', new ext_return());
                $exten = 's-CANCEL';
                $ext->add($context, $exten, '', new ext_return());
                $exten = 's-BUSY';
                $ext->add($context, $exten, '', new ext_playtones('busy'));
                $ext->add($context, $exten, '', new ext_wait('3'));
                $ext->add($context, $exten, '', new ext_return());
                $exten = '_s-.';
                $ext->add($context, $exten, '', new ext_noop('DISA Dial failed due to ${DIALSTATUS} - returning to dial tone'));
                $ext->add($context, $exten, '', new ext_playtones('congestion'));
                $ext->add($context, $exten, '', new ext_wait('3'));
                $ext->add($context, $exten, '', new ext_stopplaytones());
                $ext->add($context, $exten, '', new ext_return());
            }
            break;
    }
}