Files
cdn-star/admin/configure.php
T
yuancheng 2c815cec02 Revert 150-160MHz as "valid" for POCSAG frequency - hardware rejects it
Confirmed on real hardware: setting POCSAG frequency to 155MHz makes
MMDVMHost exit immediately with "Received a NAK to the SET_FREQ
command from the modem" - the MMDVM_HS_Dual_Hat's ADF7021 chips are
tuned for UHF and can't physically retune to VHF 150-160. Since
MMDVMHost controls DMR/YSF/NXDN/P25/POCSAG through one process, this
takes the whole modem down, not just POCSAG - matches the "DMR turns
red after setting POCSAG" symptom reported.

The earlier commit (that added this range as green/valid) was wrong;
it gave false confidence for a frequency that hard-crashes the radio
service. Back to the original 144-148/220-225/420-450/842-950 ranges.
2026-07-22 00:07:16 +08:00

5335 lines
328 KiB
PHP

<?php
// Get the CPU temp and colour the box accordingly...
$cpuTempCRaw = floatval(exec('cat /sys/class/thermal/thermal_zone0/temp'));
if ($cpuTempCRaw > 1000) { $cpuTempC = round($cpuTempCRaw / 1000, 1); } else { $cpuTempC = round($cpuTempCRaw, 1); }
$cpuTempF = round(+$cpuTempC * 9 / 5 + 32, 1);
if ($cpuTempC < 50) { $cpuTempHTML = "<td style=\"background: #1d1\">".$cpuTempC."&deg;C / ".$cpuTempF."&deg;F</td>\n"; }
if ($cpuTempC >= 50) { $cpuTempHTML = "<td style=\"background: #fa0\">".$cpuTempC."&deg;C / ".$cpuTempF."&deg;F</td>\n"; }
if ($cpuTempC >= 69) { $cpuTempHTML = "<td style=\"background: #f00\">".$cpuTempC."&deg;C / ".$cpuTempF."&deg;F</td>\n"; }
// Pull in some config
require_once('config/version.php');
require_once('config/ircddblocal.php');
require_once('config/language.php');
$cpuLoad = sys_getloadavg();
// Load the pistar-release file
$pistarReleaseConfig = '/etc/pistar-release';
$configPistarRelease = parse_ini_file($pistarReleaseConfig, true);
// Load the dstarrepeater config file
$configdstar = array();
if ($configdstarfile = fopen('/etc/dstarrepeater','r')) {
while ($line1 = fgets($configdstarfile)) {
if (strpos($line1, '=') !== false) {
list($key1,$value1) = preg_split('/=/',$line1);
$value1 = trim(str_replace('"','',$value1));
if (strlen($value1) > 0)
$configdstar[$key1] = $value1;
}
}
fclose($configdstarfile);
}
// Load the ircDDBGateway config file
$configs = array();
if ($configfile = fopen($gatewayConfigPath,'r')) {
while ($line = fgets($configfile)) {
if (strpos($line, '=') !== false) {
list($key,$value) = preg_split('/=/',$line);
$value = trim(str_replace('"','',$value));
if ($key != 'ircddbPassword' && strlen($value) > 0)
$configs[$key] = $value;
}
}
fclose($configfile);
}
// Load the mmdvmhost config file
$mmdvmConfigFile = '/etc/mmdvmhost';
$configmmdvm = parse_ini_file($mmdvmConfigFile, true);
// Load the ysfgateway config file
$ysfgatewayConfigFile = '/etc/ysfgateway';
$configysfgateway = parse_ini_file($ysfgatewayConfigFile, true);
// Load the ysf2dmr config file
if (file_exists('/etc/ysf2dmr')) {
$ysf2dmrConfigFile = '/etc/ysf2dmr';
if (fopen($ysf2dmrConfigFile,'r')) { $configysf2dmr = parse_ini_file($ysf2dmrConfigFile, true); }
}
// Load the ysf2nxdn config file
if (file_exists('/etc/ysf2nxdn')) {
$ysf2nxdnConfigFile = '/etc/ysf2nxdn';
if (fopen($ysf2nxdnConfigFile,'r')) { $configysf2nxdn = parse_ini_file($ysf2nxdnConfigFile, true); }
}
// Load the ysf2p25 config file
if (file_exists('/etc/ysf2p25')) {
$ysf2p25ConfigFile = '/etc/ysf2p25';
if (fopen($ysf2p25ConfigFile,'r')) { $configysf2p25 = parse_ini_file($ysf2p25ConfigFile, true); }
}
// Load the dgidgateway config file
if (file_exists('/etc/dgidgateway')) {
$dgidgatewayConfigFile = '/etc/dgidgateway';
if (fopen($dgidgatewayConfigFile,'r')) { $configdgidgateway = parse_ini_file($dgidgatewayConfigFile, true); }
}
// Load the dmr2ysf config file
if (file_exists('/etc/dmr2ysf')) {
$dmr2ysfConfigFile = '/etc/dmr2ysf';
if (fopen($dmr2ysfConfigFile,'r')) { $configdmr2ysf = parse_ini_file($dmr2ysfConfigFile, true); }
}
// Load the dmr2nxdn config file
if (file_exists('/etc/dmr2nxdn')) {
$dmr2nxdnConfigFile = '/etc/dmr2nxdn';
if (fopen($dmr2nxdnConfigFile,'r')) { $configdmr2nxdn = parse_ini_file($dmr2nxdnConfigFile, true); }
}
// Load the p25gateway config file
if (file_exists('/etc/p25gateway')) {
$p25gatewayConfigFile = '/etc/p25gateway';
if (fopen($p25gatewayConfigFile,'r')) { $configp25gateway = parse_ini_file($p25gatewayConfigFile, true); }
}
// Load the nxdngateway config file
if (file_exists('/etc/nxdngateway')) {
$nxdngatewayConfigFile = '/etc/nxdngateway';
if (fopen($nxdngatewayConfigFile,'r')) { $confignxdngateway = parse_ini_file($nxdngatewayConfigFile, true); }
}
// Load the m17gateway config file
if (file_exists('/etc/m17gateway')) {
$m17gatewayConfigFile = '/etc/m17gateway';
if (fopen($m17gatewayConfigFile,'r')) { $configm17gateway = parse_ini_file($m17gatewayConfigFile, true); }
}
// Load the nxdn2dmr config file
if (file_exists('/etc/nxdn2dmr')) {
$nxdn2dmrConfigFile = '/etc/nxdn2dmr';
if (fopen($nxdn2dmrConfigFile,'r')) { $confignxdn2dmr = parse_ini_file($nxdn2dmrConfigFile, true); }
}
// DAPNet Gateway config
if (file_exists('/etc/dapnetgateway')) {
$configDAPNetConfigFile = '/etc/dapnetgateway';
if (fopen($configDAPNetConfigFile,'r')) { $configdapnetgw = parse_ini_file($configDAPNetConfigFile, true); }
}
// APRS Gateway config
if (file_exists('/etc/aprsgateway')) {
$configAPRSconfigFile = '/etc/aprsgateway';
if (fopen($configAPRSconfigFile,'r')) { $configaprsgw = parse_ini_file($configAPRSconfigFile, true); }
}
// Load the dmrgateway config file
$dmrGatewayConfigFile = '/etc/dmrgateway';
if (fopen($dmrGatewayConfigFile,'r')) { $configdmrgateway = parse_ini_file($dmrGatewayConfigFile, true); }
// Load the modem config information
if (file_exists('/etc/dstar-radio.dstarrepeater')) {
$modemConfigFileDStarRepeater = '/etc/dstar-radio.dstarrepeater';
if (fopen($modemConfigFileDStarRepeater,'r')) { $configModem = parse_ini_file($modemConfigFileDStarRepeater, true); }
}
if (file_exists('/etc/dstar-radio.mmdvmhost')) {
$modemConfigFileMMDVMHost = '/etc/dstar-radio.mmdvmhost';
if (fopen($modemConfigFileMMDVMHost,'r')) { $configModem = parse_ini_file($modemConfigFileMMDVMHost, true); }
}
function aprspass ($callsign) {
$stophere = strpos($callsign, '-');
if ($stophere) $callsign = substr($callsign, 0, $stophere);
$realcall = strtoupper(substr($callsign, 0, 10));
// initialize hash
$hash = 0x73e2;
$i = 0;
$len = strlen($realcall);
// hash callsign two bytes at a time
while ($i < $len) {
$hash ^= ord(substr($realcall, $i, 1))<<8;
$hash ^= ord(substr($realcall, $i + 1, 1));
$i += 2;
}
// mask off the high bit so number is always positive
return $hash & 0x7fff;
}
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
$rev=$version;
$MYCALL=strtoupper($configs['gatewayCallsign']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta name="robots" content="index" />
<meta name="robots" content="follow" />
<meta name="language" content="English" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo "<meta name=\"GENERATOR\" content=\"$progname $rev\" />\n"; ?>
<meta name="Author" content="Andrew Taylor (MW0MWZ)" />
<meta name="Description" content="CDN Configuration" />
<meta name="KeyWords" content="CDN, MW0MWZ" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="css/nice-select.min.css?ver=<?php echo $configPistarRelease['Pi-Star']['Version']; ?>" />
<meta http-equiv="Expires" content="0" />
<title><?php echo "$MYCALL"." - ".$lang['digital_voice']." ".$lang['dashboard']." - ".$lang['configuration'];?></title>
<link rel="stylesheet" type="text/css" href="css/pistar-css.php?version=0.95" />
<script type="text/javascript">
function disablesubmitbuttons() {
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type === 'button') {
inputs[i].disabled = true;
}
}
}
function submitform() {
disablesubmitbuttons();
document.getElementById("config").submit();
}
function submitPassform() {
disablesubmitbuttons();
document.getElementById("adminPassForm").submit();
}
function submitPskform() {
disablesubmitbuttons();
document.getElementById("autoApPassForm").submit();
}
function resizeIframe(obj) {
var numpix = parseInt(obj.contentWindow.document.body.scrollHeight, 10);
obj.style.height = numpix + 'px';
}
</script>
<script type="text/javascript" src="/functions.js?version=1.718"></script>
</head>
<body onload="checkFrequency(); return false;">
<?php
if ( (file_exists('/etc/dstar-radio.mmdvmhost') && $configmmdvm['DMR']['Enable'] == 1 && $configmmdvm['DMR']['SelfOnly'] == 0 && strlen($configmmdvm['General']['Id']) >= 7 ) && (!isset($configmmdvm['DMR']['WhiteList'])) ) {
?>
<div>
<table align="center" width="760px" class="alert-banner-table">
<tr>
<td align="center" valign="top" class="alert-cell alert-warning">Alert: You are running a hotspot in public mode without an access list for DMR, this setup *could* participate in network loops!</td>
</tr>
</table>
</div>
<?php }
$bmAPIkeyFile = '/etc/bmapi.key';
if (file_exists($bmAPIkeyFile) && fopen($bmAPIkeyFile,'r')) {
$configBMapi = parse_ini_file($bmAPIkeyFile, true);
$bmAPIkey = $configBMapi['key']['apikey'];
// Check the BM API Key
if ( strlen($bmAPIkey) <= 200 ) {
?>
<div>
<table align="center" width="760px" class="alert-banner-table">
<tr>
<td align="center" valign="top" class="alert-cell alert-danger">Alert: You have a BM API v1 Key, click here for the announcement: <a href="https://news.brandmeister.network/introducing-user-api-keys/" alt="BM API Keys">BM API Keys - Announcement</a>.</td>
</tr>
</table>
</div>
<?php } } ?>
<div class="container">
<div class="header">
<div style="font-size: 8px; text-align: right; padding-right: 8px;">CDN:<?php echo $configPistarRelease['Pi-Star']['Version']?> / <?php echo $lang['dashboard'].": ".$version; ?></div>
<h1>CDN <?php echo $lang['digital_voice']." - ".$lang['configuration'];?></h1>
<p style="padding-right: 5px; text-align: right; color: #ffffff;">
<a href="/" style="color: #ffffff;"><?php echo $lang['dashboard'];?></a> |
<a href="/admin/" style="color: #ffffff;"><?php echo $lang['admin'];?></a> |
<a href="/admin/expert/" style="color: #ffffff;">专家模式</a> |
<a href="/admin/calibration.php" style="color: #ffffff;">校准</a> |
<a href="/admin/power.php" style="color: #ffffff;"><?php echo $lang['power'];?></a>
</p>
</div>
<div class="contentwide">
<?php
// Hardware Detail
if ($_SERVER["PHP_SELF"] == "/admin/configure.php") {
//HTML output starts here
?>
<h2><?php echo $lang['hardware_info'];?></h2>
<div class="settings-card">
<table style="table-layout: fixed;">
<tr>
<th><a class="tooltip" href="#"><?php echo $lang['hostname'];?><span><b>Hostname</b>The name of host<br />running the CDN Software.</span></a></th>
<th><a class="tooltip" href="#"><?php echo $lang['kernel'];?><span><b>Release</b>This is the version<br />number of the Linux Kernel running<br />on this Raspberry Pi.</span></a></th>
<th colspan="2"><a class="tooltip" href="#"><?php echo $lang['platform'];?><span><b>Uptime:<br /><?php echo str_replace(',', ',<br />', exec('uptime -p'));?></b></span></a></th>
<th><a class="tooltip" href="#"><?php echo $lang['cpu_load'];?><span><b>CPU Load</b>This is the standard Linux<br />system load indicator.</span></a></th>
<th><a class="tooltip" href="#"><?php echo $lang['cpu_temp'];?><span><b>CPU Temp</b></span></a></th>
</tr>
<tr>
<td><?php if (strlen(php_uname('n')) >= 16) { echo substr(php_uname('n'), 0, 14) . '..'; } else { echo php_uname('n'); } ?></td>
<td><?php echo php_uname('r');?></td>
<td colspan="2"><?php echo exec('/usr/local/bin/platformDetect.sh');?></td>
<td><?php echo number_format($cpuLoad[0],2);?> / <?php echo number_format($cpuLoad[1],2);?> / <?php echo number_format($cpuLoad[2],2);?></td>
<?php echo $cpuTempHTML; ?>
</tr>
</table>
</div>
<br />
<?php if (!empty($_POST)):
// Make the root filesystem writable
system('sudo mount -o remount,rw /');
// Admin Password Change
if (empty($_POST['adminPassword']) != TRUE ) {
$rollAdminPass0 = 'htpasswd -b /var/www/.htpasswd cdn \''.stripslashes(trim($_POST['adminPassword'])).'\'';
system($rollAdminPass0);
unset($_POST);
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>处理中…</th></tr>\n";
echo "<tr><td>正在应用配置更改…</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
echo "<br />\n</div>\n";
echo "</div>\n</body>\n</html>\n";
die();
}
// AutoAP PSK Change
if (empty($_POST['autoapPsk']) != TRUE ) {
$rollAutoApPsk = 'sudo sed -i "/wpa_passphrase=/c\\wpa_passphrase='.$_POST['autoapPsk'].'" /etc/hostapd/hostapd.conf';
system($rollAutoApPsk);
$rollAutoApWPA = 'sudo sed -i "/wpa=/c\\wpa=2" /etc/hostapd/hostapd.conf';
system($rollAutoApWPA);
unset($_POST);
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>处理中…</th></tr>\n";
echo "<tr><td>正在应用配置更改…</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
echo "<br />\n</div>\n";
echo "</div>\n</body>\n</html>\n";
die();
}
// Stop Cron (occasionally remounts root as RO - would be bad if it did this at the wrong time....)
system('sudo systemctl stop cron.service > /dev/null 2>/dev/null &'); //Cron
// Stop the DV Services
system('sudo systemctl stop dstarrepeater.service > /dev/null 2>/dev/null &'); // D-Star Radio Service
system('sudo systemctl stop mmdvmhost.service > /dev/null 2>/dev/null &'); // MMDVMHost Radio Service
system('sudo systemctl stop ircddbgateway.service > /dev/null 2>/dev/null &'); // ircDDBGateway Service
system('sudo systemctl stop timeserver.service > /dev/null 2>/dev/null &'); // Time Server Service
system('sudo systemctl stop pistar-watchdog.service > /dev/null 2>/dev/null &'); // PiStar-Watchdog Service
system('sudo systemctl stop pistar-remote.service > /dev/null 2>/dev/null &'); // PiStar-Remote Service
system('sudo systemctl stop ysfgateway.service > /dev/null 2>/dev/null &'); // YSFGateway
system('sudo systemctl stop ysf2dmr.service > /dev/null 2>/dev/null &'); // YSF2DMR
system('sudo systemctl stop ysf2nxdn.service > /dev/null 2>/dev/null &'); // YSF2NXDN
system('sudo systemctl stop ysf2p25.service > /dev/null 2>/dev/null &'); // YSF2P25
system('sudo systemctl stop nxdn2dmr.service > /dev/null 2>/dev/null &'); // NXDN2DMR
system('sudo systemctl stop ysfparrot.service > /dev/null 2>/dev/null &'); // YSFParrot
system('sudo systemctl stop p25gateway.service > /dev/null 2>/dev/null &'); // P25Gateway
system('sudo systemctl stop p25parrot.service > /dev/null 2>/dev/null &'); // P25Parrot
system('sudo systemctl stop nxdngateway.service > /dev/null 2>/dev/null &'); // NXDNGateway
system('sudo systemctl stop nxdnparrot.service > /dev/null 2>/dev/null &'); // NXDNParrot
system('sudo systemctl stop m17gateway.service > /dev/null 2>/dev/null &'); // M17Gateway
system('sudo systemctl stop dmr2ysf.service > /dev/null 2>/dev/null &'); // DMR2YSF
system('sudo systemctl stop dmr2nxdn.service > /dev/null 2>/dev/null &'); // DMR2YSF
system('sudo systemctl stop dmrgateway.service > /dev/null 2>/dev/null &'); // DMRGateway
system('sudo systemctl stop dapnetgateway.service > /dev/null 2>/dev/null &'); // DAPNetGateway
system('sudo systemctl stop aprsgateway.service > /dev/null 2>/dev/null &'); // APRSGateway
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>处理中…</th></tr>\n";
echo "<tr><td>正在停止服务并应用配置更改…</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
// Let the services actualy stop
sleep(1);
// Handle the case where the config is not read correctly
if (count($configmmdvm) <= 18) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to read source configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
echo "<br />\n</div>\n";
echo "</div>\n</body>\n</html>\n";
die();
}
// Change Radio Control Software
if (empty($_POST['controllerSoft']) != TRUE ) {
system('sudo rm -rf /etc/dstar-radio.*');
if (escapeshellcmd($_POST['controllerSoft']) == 'DSTAR') { system('sudo touch /etc/dstar-radio.dstarrepeater'); }
if (escapeshellcmd($_POST['controllerSoft']) == 'MMDVM') { system('sudo touch /etc/dstar-radio.mmdvmhost'); }
}
// HostAP
if (empty($_POST['autoAP']) != TRUE ) {
if (escapeshellcmd($_POST['autoAP']) == 'OFF') { system('sudo touch /etc/hostap.off'); }
if (escapeshellcmd($_POST['autoAP']) == 'ON') { system('sudo rm -rf /etc/hostap.off'); }
}
// Change Dashboard Language
if (empty($_POST['dashboardLanguage']) != TRUE ) {
$rollDashLang = 'sudo sed -i "/pistarLanguage=/c\\$pistarLanguage=\''.escapeshellcmd($_POST['dashboardLanguage']).'\';" /var/www/dashboard/config/language.php';
system($rollDashLang);
}
// Set the ircDDBGAteway Remote Password and Port
if (empty($_POST['confPassword']) != TRUE ) {
$rollConfPassword0 = 'sudo sed -i "/remotePassword=/c\\remotePassword='.escapeshellcmd($_POST['confPassword']).'" /etc/ircddbgateway';
$rollConfPassword1 = 'sudo sed -i "/password=/c\\password='.escapeshellcmd($_POST['confPassword']).'" /root/.Remote\ Control';
$rollConfRemotePort = 'sudo sed -i "/port=/c\\port='.$configs['remotePort'].'" /root/.Remote\ Control';
system($rollConfPassword0);
system($rollConfPassword1);
system($rollConfRemotePort);
}
// Set the ircDDBGateway Defaut Reflector
if (empty($_POST['confDefRef']) != TRUE ) {
if (stristr(strtoupper(escapeshellcmd($_POST['confDefRef'])), strtoupper(escapeshellcmd($_POST['confCallsign']))) != TRUE ) {
if (strlen($_POST['confDefRef']) != 7) {
$targetRef = strtoupper(escapeshellcmd(str_pad($_POST['confDefRef'], 7, " ")));
} else {
$targetRef = strtoupper(escapeshellcmd($_POST['confDefRef']));
}
$rollconfDefRef = 'sudo sed -i "/reflector1=/c\\reflector1='.$targetRef.escapeshellcmd($_POST['confDefRefLtr']).'" /etc/ircddbgateway';
system($rollconfDefRef);
}
}
// Set the ircDDBGAteway Defaut Reflector Autostart
if (empty($_POST['confDefRefAuto']) != TRUE ) {
if (escapeshellcmd($_POST['confDefRefAuto']) == 'ON') {
$rollconfDefRefAuto = 'sudo sed -i "/atStartup1=/c\\atStartup1=1" /etc/ircddbgateway';
}
if (escapeshellcmd($_POST['confDefRefAuto']) == 'OFF') {
$rollconfDefRefAuto = 'sudo sed -i "/atStartup1=/c\\atStartup1=0" /etc/ircddbgateway';
}
system($rollconfDefRefAuto);
}
// Set random (working) CCS host.
if ($configs['ccsEnabled'] == "1") {
$activeCCS = array("CCS701"=>"CCS701","CCS702"=>"CCS702","CCS704"=>"CCS704");
shuffle($activeCCS);
$rollCCS = 'sudo sed -i "/ccsHost=/c\\ccsHost='.$activeCCS[0].'" /etc/ircddbgateway';
system($rollCCS);
}
// Set the Latitude
if (empty($_POST['confLatitude']) != TRUE ) {
$newConfLatitude = preg_replace('/[^0-9\.\-]/', '', $_POST['confLatitude']);
$rollConfLat0 = 'sudo sed -i "/latitude=/c\\latitude='.$newConfLatitude.'" /etc/ircddbgateway';
$rollConfLat1 = 'sudo sed -i "/latitude1=/c\\latitude1='.$newConfLatitude.'" /etc/ircddbgateway';
$configmmdvm['Info']['Latitude'] = $newConfLatitude;
$configysfgateway['Info']['Latitude'] = $newConfLatitude;
$configysf2dmr['Info']['Latitude'] = $newConfLatitude;
$configysf2nxdn['Info']['Latitude'] = $newConfLatitude;
$configysf2p25['Info']['Latitude'] = $newConfLatitude;
if (isset($configdgidgateway)) { $configdgidgateway['Info']['Latitude'] = $newConfLatitude; }
$configdmrgateway['Info']['Latitude'] = $newConfLatitude;
$confignxdngateway['Info']['Latitude'] = $newConfLatitude;
if (isset($configm17gateway['Info']['Latitude'])) { $configm17gateway['Info']['Latitude'] = $newConfLatitude; }
system($rollConfLat0);
system($rollConfLat1);
}
// Set the Longitude
if (empty($_POST['confLongitude']) != TRUE ) {
$newConfLongitude = preg_replace('/[^0-9\.\-]/', '', $_POST['confLongitude']);
$rollConfLon0 = 'sudo sed -i "/longitude=/c\\longitude='.$newConfLongitude.'" /etc/ircddbgateway';
$rollConfLon1 = 'sudo sed -i "/longitude1=/c\\longitude1='.$newConfLongitude.'" /etc/ircddbgateway';
$configmmdvm['Info']['Longitude'] = $newConfLongitude;
$configysfgateway['Info']['Longitude'] = $newConfLongitude;
$configysf2dmr['Info']['Longitude'] = $newConfLongitude;
$configysf2nxdn['Info']['Longitude'] = $newConfLongitude;
$configysf2p25['Info']['Longitude'] = $newConfLongitude;
if (isset($configdgidgateway)) { $configdgidgateway['Info']['Longitude'] = $newConfLongitude; }
$configdmrgateway['Info']['Longitude'] = $newConfLongitude;
$confignxdngateway['Info']['Longitude'] = $newConfLongitude;
if (isset($configm17gateway['Info']['Longitude'])) { $configm17gateway['Info']['Longitude'] = $newConfLongitude; }
system($rollConfLon0);
system($rollConfLon1);
}
// Set the Town
if (empty($_POST['confDesc1']) != TRUE ) {
$newConfDesc1 = preg_replace('/[^A-Za-z0-9\.\s\,\-\x{4e00}-\x{9fff}]/u', '', $_POST['confDesc1']);
$rollDesc1 = 'sudo sed -i "/description1=/c\\description1='.$newConfDesc1.'" /etc/ircddbgateway';
$rollDesc11 = 'sudo sed -i "/description1_1=/c\\description1_1='.$newConfDesc1.'" /etc/ircddbgateway';
$configmmdvm['Info']['Location'] = '"'.$newConfDesc1.'"';
$configdmrgateway['Info']['Location'] = '"'.$newConfDesc1.'"';
$configysf2dmr['Info']['Location'] = '"'.$newConfDesc1.'"';
$configysf2nxdn['Info']['Location'] = '"'.$newConfDesc1.'"';
$configysf2p25['Info']['Location'] = '"'.$newConfDesc1.'"';
$confignxdngateway['Info']['Name'] = '"'.$newConfDesc1.'"';
if (isset($configm17gateway['Info']['Name'])) { $configm17gateway['Info']['Name'] = '"'.$newConfDesc1.'"'; }
system($rollDesc1);
system($rollDesc11);
}
// Set the Country
if (empty($_POST['confDesc2']) != TRUE ) {
$newConfDesc2 = preg_replace('/[^A-Za-z0-9\.\s\,\-\x{4e00}-\x{9fff}]/u', '', $_POST['confDesc2']);
$rollDesc2 = 'sudo sed -i "/description2=/c\\description2='.$newConfDesc2.'" /etc/ircddbgateway';
$rollDesc22 = 'sudo sed -i "/description1_2=/c\\description1_2='.$newConfDesc2.'" /etc/ircddbgateway';
$configmmdvm['Info']['Description'] = '"'.$newConfDesc2.'"';
$configdmrgateway['Info']['Description'] = '"'.$newConfDesc2.'"';
$configysfgateway['Info']['Description'] = '"'.$newConfDesc2.'"';
$confignxdngateway['Info']['Description'] = '"'.$newConfDesc2.'"';
if (isset($configm17gateway['Info']['Description'])) { $configm17gateway['Info']['Description'] = '"'.$newConfDesc2.'"'; }
if (isset($configdgidgateway)) { $configdgidgateway['Info']['Description'] = '"'.$newConfDesc2.'"'; }
system($rollDesc2);
system($rollDesc22);
}
// Set the URL
if (empty($_POST['confURL']) != TRUE ) {
$newConfURL = strtolower(preg_replace('/[^A-Za-z0-9\.\s\,\-\/\:]/', '', $_POST['confURL']));
if (escapeshellcmd($_POST['urlAuto']) == 'auto') { $txtURL = "https://www.qrz.com/db/".strtoupper(escapeshellcmd($_POST['confCallsign'])); }
if (escapeshellcmd($_POST['urlAuto']) == 'man') { $txtURL = $newConfURL; }
if (escapeshellcmd($_POST['urlAuto']) == 'auto') { $rollURL0 = 'sudo sed -i "/url=/c\\url=https://www.qrz.com/db/'.strtoupper(escapeshellcmd($_POST['confCallsign'])).'" /etc/ircddbgateway'; }
if (escapeshellcmd($_POST['urlAuto']) == 'man') { $rollURL0 = 'sudo sed -i "/url=/c\\url='.$newConfURL.'" /etc/ircddbgateway'; }
$configmmdvm['Info']['URL'] = $txtURL;
$configysf2dmr['Info']['URL'] = $txtURL;
$configysf2nxdn['Info']['URL'] = $txtURL;
$configysf2p25['Info']['URL'] = $txtURL;
$configdmrgateway['Info']['URL'] = $txtURL;
system($rollURL0);
}
// Set the APRS Host for ircDDBGateway
if (empty($_POST['selectedAPRSHost']) != TRUE ) {
// "custom" lets the operator type their own APRS-IS server + port
// instead of picking from /usr/local/etc/APRSHosts.txt (which is
// always port 14580). Validate both before use: the value is
// still run through escapeshellcmd() below, but a hostname
// containing "/" would break the sed "/pattern/c\..." syntax
// (sed's default delimiter), so reject anything that isn't a
// plain hostname/IP up front rather than relying on
// escapeshellcmd() alone.
if ($_POST['selectedAPRSHost'] === 'custom' && !empty($_POST['customAPRSHost']) && preg_match('/^[A-Za-z0-9.\-]+$/', trim($_POST['customAPRSHost']))) {
$aprsHost = escapeshellcmd(trim($_POST['customAPRSHost']));
$aprsPort = (!empty($_POST['customAPRSPort']) && ctype_digit(trim($_POST['customAPRSPort'])) && (int)trim($_POST['customAPRSPort']) >= 1 && (int)trim($_POST['customAPRSPort']) <= 65535) ? trim($_POST['customAPRSPort']) : '14580';
} else {
$aprsHost = escapeshellcmd($_POST['selectedAPRSHost']);
$aprsPort = '14580';
}
$rollAPRSHost = 'sudo sed -i "/aprsHostname=/c\\aprsHostname='.$aprsHost.'" /etc/ircddbgateway';
system($rollAPRSHost);
$rollAPRSPort = 'sudo sed -i "/^aprsPort=/c\\aprsPort='.$aprsPort.'" /etc/ircddbgateway';
system($rollAPRSPort);
$configysfgateway['aprs.fi']['Server'] = $aprsHost;
$configysfgateway['aprs.fi']['Port'] = $aprsPort;
$configysf2dmr['aprs.fi']['Server'] = $aprsHost;
$configysf2dmr['aprs.fi']['Port'] = $aprsPort;
$configysf2nxdn['aprs.fi']['Server'] = $aprsHost;
$configysf2nxdn['aprs.fi']['Port'] = $aprsPort;
$configysf2p25['aprs.fi']['Server'] = $aprsHost;
$configysf2p25['aprs.fi']['Port'] = $aprsPort;
$configysf2dmr['aprs.fi']['Enable'] = "0";
$configysf2nxdn['aprs.fi']['Enable'] = "0";
$configysf2p25['aprs.fi']['Enable'] = "0";
if ($configPistarRelease['Pi-Star']['Version'] >= "4.1.4") {
$rollAPRSGatewayHost = 'sudo sed -i "/Server=/c\\Server='.$aprsHost.'" /etc/aprsgateway';
system($rollAPRSGatewayHost);
$rollAPRSGatewayPort = 'sudo sed -i "/^Port=/c\\Port='.$aprsPort.'" /etc/aprsgateway';
system($rollAPRSGatewayPort);
}
}
// Set ircDDBGateway and TimeServer language
if (empty($_POST['ircDDBGatewayAnnounceLanguage']) != TRUE) {
$ircDDBGatewayAnnounceLanguageArr = explode(',', escapeshellcmd($_POST['ircDDBGatewayAnnounceLanguage']));
$rollIrcDDBGatewayLang = 'sudo sed -i "/language=/c\\language='.escapeshellcmd($ircDDBGatewayAnnounceLanguageArr[0]).'" /etc/ircddbgateway';
$rollTimeserverLang = 'sudo sed -i "/language=/c\\language='.escapeshellcmd($ircDDBGatewayAnnounceLanguageArr[1]).'" /etc/timeserver';
system($rollIrcDDBGatewayLang);
system($rollTimeserverLang);
}
// Clear timeserver modules
$rollTimeserverBandA = 'sudo sed -i "/sendA=/c\\sendA=0" /etc/timeserver';
$rollTimeserverBandB = 'sudo sed -i "/sendB=/c\\sendB=0" /etc/timeserver';
$rollTimeserverBandC = 'sudo sed -i "/sendC=/c\\sendC=0" /etc/timeserver';
$rollTimeserverBandD = 'sudo sed -i "/sendD=/c\\sendD=0" /etc/timeserver';
$rollTimeserverBandE = 'sudo sed -i "/sendE=/c\\sendE=0" /etc/timeserver';
system($rollTimeserverBandA);
system($rollTimeserverBandB);
system($rollTimeserverBandC);
system($rollTimeserverBandD);
system($rollTimeserverBandE);
// Set the POCSAG Frequency
if (empty($_POST['pocsagFrequency']) != TRUE ) {
$newPocsagFREQ = preg_replace('/[^0-9\.]/', '', $_POST['pocsagFrequency']);
$newPocsagFREQ = number_format($newPocsagFREQ, 6, ".", "");
$newPocsagFREQ = str_pad(str_replace(".", "", $newPocsagFREQ), 9, "0");
$configmmdvm['POCSAG']['Frequency'] = $newPocsagFREQ;
}
// Set the POCSAG AuthKey
if (empty($_POST['pocsagAuthKey']) != TRUE ) {
$configdapnetgw['DAPNET']['AuthKey'] = escapeshellcmd($_POST['pocsagAuthKey']);
}
// Set the POCSAG Callsign
if (empty($_POST['pocsagCallsign']) != TRUE ) {
$configdapnetgw['General']['Callsign'] = strtoupper(escapeshellcmd($_POST['pocsagCallsign']));
}
// Set the POCSAG Whitelist
if (isset($configdapnetgw['General']['WhiteList'])) { unset($configdapnetgw['General']['WhiteList']); }
if (empty($_POST['pocsagWhitelist']) != TRUE ) {
$configdapnetgw['General']['WhiteList'] = preg_replace('/[^0-9\,]/', '', escapeshellcmd($_POST['pocsagWhitelist']));
}
// Set the POCSAG Blacklist
if (isset($configdapnetgw['General']['BlackList'])) { unset($configdapnetgw['General']['BlackList']); }
if (empty($_POST['pocsagBlacklist']) != TRUE ) {
$configdapnetgw['General']['BlackList'] = preg_replace('/[^0-9\,]/', '', escapeshellcmd($_POST['pocsagBlacklist']));
}
// Set the POCSAG Server
if (empty($_POST['pocsagServer']) != TRUE ) {
$configdapnetgw['DAPNET']['Address'] = escapeshellcmd($_POST['pocsagServer']);
}
// Set the Frequency for Duplex
if (empty($_POST['confFREQtx']) != TRUE && empty($_POST['confFREQrx']) != TRUE ) {
if (empty($_POST['confHardware']) != TRUE ) { $confHardware = escapeshellcmd($_POST['confHardware']); }
$newConfFREQtx = preg_replace('/[^0-9\.]/', '', $_POST['confFREQtx']);
$newConfFREQrx = preg_replace('/[^0-9\.]/', '', $_POST['confFREQrx']);
$newFREQtx = number_format($newConfFREQtx, 6, ".", "");
$newFREQrx = number_format($newConfFREQrx, 6, ".", "");
$newFREQtx = str_pad(str_replace(".", "", $newFREQtx), 9, "0");
//$newFREQtx = mb_strimwidth($newFREQtx, 0, 9);
$newFREQrx = str_pad(str_replace(".", "", $newFREQrx), 9, "0");
//$newFREQrx = mb_strimwidth($newFREQrx, 0, 9);
//$newFREQirc = substr_replace($newFREQtx, '.', '3', 0);
//$newFREQirc = mb_strimwidth($newFREQirc, 0, 9);
$newFREQirc = number_format($newConfFREQtx, 5, ".", "");
$newFREQOffset = ($newFREQrx - $newFREQtx)/1000000;
$newFREQOffset = number_format($newFREQOffset, 4, '.', '');
$rollFREQirc = 'sudo sed -i "/frequency1=/c\\frequency1='.$newFREQirc.'" /etc/ircddbgateway';
$rollFREQdvap = 'sudo sed -i "/dvapFrequency=/c\\dvapFrequency='.$newFREQrx.'" /etc/dstarrepeater';
$rollFREQdvmegaRx = 'sudo sed -i "/dvmegaRXFrequency=/c\\dvmegaRXFrequency='.$newFREQrx.'" /etc/dstarrepeater';
$rollFREQdvmegaTx = 'sudo sed -i "/dvmegaTXFrequency=/c\\dvmegaTXFrequency='.$newFREQtx.'" /etc/dstarrepeater';
$rollModeDuplex = 'sudo sed -i "/mode=/c\\mode=0" /etc/dstarrepeater';
$rollGatewayType = 'sudo sed -i "/gatewayType=/c\\gatewayType=0" /etc/ircddbgateway';
$rollFREQOffset = 'sudo sed -i "/offset1=/c\\offset1='.$newFREQOffset.'" /etc/ircddbgateway';
$configmmdvm['Info']['RXFrequency'] = $newFREQrx;
$configmmdvm['Info']['TXFrequency'] = $newFREQtx;
$configdmrgateway['Info']['RXFrequency'] = $newFREQrx;
$configdmrgateway['Info']['TXFrequency'] = $newFREQtx;
$configysfgateway['Info']['RXFrequency'] = $newFREQrx;
$configysfgateway['Info']['TXFrequency'] = $newFREQtx;
$configysfgateway['General']['Suffix'] = "RPT";
$configysf2dmr['Info']['RXFrequency'] = $newFREQrx;
$configysf2dmr['Info']['TXFrequency'] = $newFREQrx;
$configysf2dmr['YSF Network']['Suffix'] = "RPT";
$configysf2nxdn['Info']['RXFrequency'] = $newFREQrx;
$configysf2nxdn['Info']['TXFrequency'] = $newFREQtx;
$configysf2nxdn['YSF Network']['Suffix'] = "RPT";
$configysf2p25['Info']['RXFrequency'] = $newFREQrx;
$configysf2p25['Info']['TXFrequency'] = $newFREQtx;
$configysf2p25['YSF Network']['Suffix'] = "RPT";
if (isset($configdgidgateway)) { $configdgidgateway['Info']['RXFrequency'] = $newFREQrx; }
if (isset($configdgidgateway)) { $configdgidgateway['Info']['TXFrequency'] = $newFREQtx; }
if (isset($configdgidgateway)) { $configdgidgateway['General']['Suffix'] = "RPT"; }
$configdmr2ysf['YSF Network']['Suffix'] = "RPT";
$confignxdngateway['Info']['RXFrequency'] = $newFREQrx;
$confignxdngateway['Info']['TXFrequency'] = $newFREQtx;
$confignxdngateway['General']['Suffix'] = "RPT";
if (isset($configm17gateway['Info']['RXFrequency'])) { $configm17gateway['Info']['RXFrequency'] = $newFREQrx; }
if (isset($configm17gateway['Info']['TXFrequency'])) { $configm17gateway['Info']['TXFrequency'] = $newFREQtx; }
if (isset($configm17gateway['General']['Suffix'])) { $configm17gateway['General']['Suffix'] = "R"; }
system($rollFREQirc);
system($rollFREQdvap);
system($rollFREQdvmegaRx);
system($rollFREQdvmegaTx);
system($rollModeDuplex);
system($rollGatewayType);
system($rollFREQOffset);
// Set RPT1 and RPT2
if (empty($_POST['confDStarModuleSuffix'])) {
if ($newFREQtx >= 1240000000 && $newFREQtx <= 1300000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."A";
$confIRCrepeaterBand1 = "A";
$configmmdvm['D-Star']['Module'] = "A";
$rollTimeserverBand = 'sudo sed -i "/sendA=/c\\sendA=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQtx >= 420000000 && $newFREQtx <= 450000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."B";
$confIRCrepeaterBand1 = "B";
$configmmdvm['D-Star']['Module'] = "B";
$rollTimeserverBand = 'sudo sed -i "/sendB=/c\\sendB=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQtx >= 218000000 && $newFREQtx <= 226000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."A";
$confIRCrepeaterBand1 = "A";
$configmmdvm['D-Star']['Module'] = "A";
$rollTimeserverBand = 'sudo sed -i "/sendA=/c\\sendA=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQtx >= 144000000 && $newFREQtx <= 148000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."C";
$confIRCrepeaterBand1 = "C";
$configmmdvm['D-Star']['Module'] = "C";
$rollTimeserverBand = 'sudo sed -i "/sendC=/c\\sendC=1" /etc/timeserver';
system($rollTimeserverBand);
}
}
else {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ").strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$confIRCrepeaterBand1 = strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$configmmdvm['D-Star']['Module'] = strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$rollTimeserverBand = 'sudo sed -i "/send'.strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix'])).'=/c\\send'.strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix'])).'=1" /etc/timeserver';
system($rollTimeserverBand);
}
$newCallsignUpper = strtoupper(escapeshellcmd($_POST['confCallsign']));
$confRPT2 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."G";
$confRPT1 = strtoupper($confRPT1);
$confRPT2 = strtoupper($confRPT2);
$rollRPT1 = 'sudo sed -i "/callsign=/c\\callsign='.$confRPT1.'" /etc/dstarrepeater';
$rollRPT2 = 'sudo sed -i "/gateway=/c\\gateway='.$confRPT2.'" /etc/dstarrepeater';
$rollBEACONTEXT = 'sudo sed -i "/beaconText=/c\\beaconText='.$confRPT1.'" /etc/dstarrepeater';
$rollIRCrepeaterBand1 = 'sudo sed -i "/repeaterBand1=/c\\repeaterBand1='.$confIRCrepeaterBand1.'" /etc/ircddbgateway';
$rollIRCrepeaterCall1 = 'sudo sed -i "/repeaterCall1=/c\\repeaterCall1='.$newCallsignUpper.'" /etc/ircddbgateway';
system($rollRPT1);
system($rollRPT2);
system($rollBEACONTEXT);
system($rollIRCrepeaterBand1);
system($rollIRCrepeaterCall1);
}
// Set the Frequency for Simplex
if (empty($_POST['confFREQ']) != TRUE ) {
if (empty($_POST['confHardware']) != TRUE ) { $confHardware = escapeshellcmd($_POST['confHardware']); }
$newConfFREQ = preg_replace('/[^0-9\.]/', '', $_POST['confFREQ']);
$newFREQ = number_format($newConfFREQ, 6, ".", "");
$newFREQ = str_pad(str_replace(".", "", $newFREQ), 9, "0");
$newFREQirc = number_format($newConfFREQ, 5, ".", "");
//$newFREQ = mb_strimwidth($newFREQ, 0, 9);
//$newFREQirc = substr_replace($newFREQ, '.', '3', 0);
//$newFREQirc = mb_strimwidth($newFREQirc, 0, 9);
$newFREQOffset = "0.0000";
$rollFREQirc = 'sudo sed -i "/frequency1=/c\\frequency1='.$newFREQirc.'" /etc/ircddbgateway';
$rollFREQdvap = 'sudo sed -i "/dvapFrequency=/c\\dvapFrequency='.$newFREQ.'" /etc/dstarrepeater';
$rollFREQdvmegaRx = 'sudo sed -i "/dvmegaRXFrequency=/c\\dvmegaRXFrequency='.$newFREQ.'" /etc/dstarrepeater';
$rollFREQdvmegaTx = 'sudo sed -i "/dvmegaTXFrequency=/c\\dvmegaTXFrequency='.$newFREQ.'" /etc/dstarrepeater';
$rollModeSimplex = 'sudo sed -i "/mode=/c\\mode=1" /etc/dstarrepeater';
$rollGatewayType = 'sudo sed -i "/gatewayType=/c\\gatewayType=1" /etc/ircddbgateway';
$rollFREQOffset = 'sudo sed -i "/offset1=/c\\offset1='.$newFREQOffset.'" /etc/ircddbgateway';
$configmmdvm['Info']['RXFrequency'] = $newFREQ;
$configmmdvm['Info']['TXFrequency'] = $newFREQ;
$configdmrgateway['Info']['RXFrequency'] = $newFREQ;
$configdmrgateway['Info']['TXFrequency'] = $newFREQ;
$configysfgateway['Info']['RXFrequency'] = $newFREQ;
$configysfgateway['Info']['TXFrequency'] = $newFREQ;
$configysfgateway['General']['Suffix'] = "ND";
$configysf2dmr['Info']['RXFrequency'] = $newFREQ;
$configysf2dmr['Info']['TXFrequency'] = $newFREQ;
$configysf2dmr['YSF Network']['Suffix'] = "ND";
$configysf2nxdn['Info']['RXFrequency'] = $newFREQ;
$configysf2nxdn['Info']['TXFrequency'] = $newFREQ;
$configysf2nxdn['YSF Network']['Suffix'] = "ND";
$configysf2p25['Info']['RXFrequency'] = $newFREQ;
$configysf2p25['Info']['TXFrequency'] = $newFREQ;
$configysf2p25['YSF Network']['Suffix'] = "ND";
if (isset($configdgidgateway)) { $configdgidgateway['Info']['RXFrequency'] = $newFREQ; }
if (isset($configdgidgateway)) { $configdgidgateway['Info']['TXFrequency'] = $newFREQ; }
if (isset($configdgidgateway)) { $configdgidgateway['General']['Suffix'] = "ND"; }
$configdmr2ysf['YSF Network']['Suffix'] = "ND";
$confignxdngateway['Info']['RXFrequency'] = $newFREQ;
$confignxdngateway['Info']['TXFrequency'] = $newFREQ;
$confignxdngateway['General']['Suffix'] = "ND";
if (isset($configm17gateway['Info']['RXFrequency'])) { $configm17gateway['Info']['RXFrequency'] = $newFREQ; }
if (isset($configm17gateway['Info']['TXFrequency'])) { $configm17gateway['Info']['TXFrequency'] = $newFREQ; }
if (isset($configm17gateway['General']['Suffix'])) { $configm17gateway['General']['Suffix'] = "H"; }
system($rollFREQirc);
system($rollFREQdvap);
system($rollFREQdvmegaRx);
system($rollFREQdvmegaTx);
system($rollModeSimplex);
system($rollGatewayType);
system($rollFREQOffset);
// Set RPT1 and RPT2
if (empty($_POST['confDStarModuleSuffix'])) {
if ($newFREQ >= 1240000000 && $newFREQ <= 1300000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."A";
$confIRCrepeaterBand1 = "A";
$configmmdvm['D-Star']['Module'] = "A";
$rollTimeserverBand = 'sudo sed -i "/sendA=/c\\sendA=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQ >= 420000000 && $newFREQ <= 450000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."B";
$confIRCrepeaterBand1 = "B";
$configmmdvm['D-Star']['Module'] = "B";
$rollTimeserverBand = 'sudo sed -i "/sendB=/c\\sendB=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQ >= 218000000 && $newFREQ <= 226000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."A";
$confIRCrepeaterBand1 = "A";
$configmmdvm['D-Star']['Module'] = "A";
$rollTimeserverBand = 'sudo sed -i "/sendA=/c\\sendA=1" /etc/timeserver';
system($rollTimeserverBand);
}
if ($newFREQ >= 144000000 && $newFREQ <= 148000000) {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."C";
$confIRCrepeaterBand1 = "C";
$configmmdvm['D-Star']['Module'] = "C";
$rollTimeserverBand = 'sudo sed -i "/sendA=/c\\sendA=1" /etc/timeserver';
system($rollTimeserverBand);
}
}
else {
$confRPT1 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ").strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$confIRCrepeaterBand1 = strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$configmmdvm['D-Star']['Module'] = strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix']));
$rollTimeserverBand = 'sudo sed -i "/send'.strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix'])).'=/c\\send'.strtoupper(escapeshellcmd($_POST['confDStarModuleSuffix'])).'=1" /etc/timeserver';
system($rollTimeserverBand);
}
$newCallsignUpper = strtoupper(escapeshellcmd($_POST['confCallsign']));
$confRPT2 = str_pad(escapeshellcmd($_POST['confCallsign']), 7, " ")."G";
$confRPT1 = strtoupper($confRPT1);
$confRPT2 = strtoupper($confRPT2);
$rollRPT1 = 'sudo sed -i "/callsign=/c\\callsign='.$confRPT1.'" /etc/dstarrepeater';
$rollRPT2 = 'sudo sed -i "/gateway=/c\\gateway='.$confRPT2.'" /etc/dstarrepeater';
$rollBEACONTEXT = 'sudo sed -i "/beaconText=/c\\beaconText='.$confRPT1.'" /etc/dstarrepeater';
$rollIRCrepeaterBand1 = 'sudo sed -i "/repeaterBand1=/c\\repeaterBand1='.$confIRCrepeaterBand1.'" /etc/ircddbgateway';
$rollIRCrepeaterCall1 = 'sudo sed -i "/repeaterCall1=/c\\repeaterCall1='.$newCallsignUpper.'" /etc/ircddbgateway';
system($rollRPT1);
system($rollRPT2);
system($rollBEACONTEXT);
system($rollIRCrepeaterBand1);
system($rollIRCrepeaterCall1);
}
// Set Callsign
if (empty($_POST['confCallsign']) != TRUE ) {
$newCallsignUpper = strtoupper(preg_replace('/[^A-Za-z0-9]/', '', $_POST['confCallsign']));
// Removed the need for the r prefix - OpenQuad have fixed up the servers not to require it.
// if (preg_match("/^[0-9]/", $newCallsignUpper)) { $newCallsignUpperIRC = 'r'.$newCallsignUpper; } else { $newCallsignUpperIRC = $newCallsignUpper; }
$newCallsignUpperIRC = $newCallsignUpper;
$rollGATECALL = 'sudo sed -i "/gatewayCallsign=/c\\gatewayCallsign='.$newCallsignUpper.'" /etc/ircddbgateway';
$rollDPLUSLOGIN = 'sudo sed -i "/dplusLogin=/c\\dplusLogin='.str_pad($newCallsignUpper, 8, " ").'" /etc/ircddbgateway';
$rollDASHBOARDcall = 'sudo sed -i "/callsign=/c\\$callsign=\''.$newCallsignUpper.'\';" /var/www/dashboard/config/ircddblocal.php';
$rollTIMESERVERcall = 'sudo sed -i "/callsign=/c\\callsign='.$newCallsignUpper.'" /etc/timeserver';
$rollSTARNETSERVERcall = 'sudo sed -i "/callsign=/c\\callsign='.$newCallsignUpper.'" /etc/starnetserver';
$rollSTARNETSERVERirc = 'sudo sed -i "/ircddbUsername=/c\\ircddbUsername='.$newCallsignUpperIRC.'" /etc/starnetserver';
// Only roll ircDDBGateway Username if using OpenQuad
if (strpos($configs['ircddbHostname'], 'openquad.net') !== false) {
$rollIRCUSER = 'sudo sed -i "/ircddbUsername=/c\\ircddbUsername='.$newCallsignUpperIRC.'" /etc/ircddbgateway';
system($rollIRCUSER);
}
//if ( strlen($newCallsignUpper) < 6 ) { $configysfgateway['General']['Callsign'] = $newCallsignUpper."-1"; }
//else { $configysfgateway['General']['Callsign'] = $newCallsignUpper; }
$configysfgateway['General']['Callsign'] = $newCallsignUpper;
$configmmdvm['General']['Callsign'] = $newCallsignUpper;
$configysfgateway['aprs.fi']['Password'] = aprspass($newCallsignUpper);
$configysfgateway['aprs.fi']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2dmr['aprs.fi']['Password'] = aprspass($newCallsignUpper);
$configysf2dmr['aprs.fi']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2dmr['YSF Network']['Callsign'] = $newCallsignUpper;
$configysf2nxdn['aprs.fi']['Password'] = aprspass($newCallsignUpper);
$configysf2nxdn['aprs.fi']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2nxdn['YSF Network']['Callsign'] = $newCallsignUpper;
$configysf2p25['aprs.fi']['Password'] = aprspass($newCallsignUpper);
$configysf2p25['aprs.fi']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2p25['YSF Network']['Callsign'] = $newCallsignUpper;
$configdmr2ysf['YSF Network']['Callsign'] = $newCallsignUpper;
$configp25gateway['General']['Callsign'] = $newCallsignUpper;
$confignxdngateway['aprs.fi']['Description'] = $newCallsignUpper."_Pi-Star";
$confignxdngateway['aprs.fi']['Password'] = aprspass($newCallsignUpper);
$confignxdngateway['General']['Callsign'] = $newCallsignUpper;
if (isset($configm17gateway['General']['Callsign'])) { $configm17gateway['General']['Callsign'] = $newCallsignUpper; }
$configysfgateway['Info']['Name'] = $newCallsignUpper."_Pi-Star";
$configysf2dmr['Info']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2nxdn['Info']['Description'] = $newCallsignUpper."_Pi-Star";
$configysf2p25['Info']['Description'] = $newCallsignUpper."_Pi-Star";
if (isset($configdgidgateway)) { $configdgidgateway['General']['Callsign'] = $newCallsignUpper; }
if (isset($configdgidgateway)) { $configdgidgateway['Info']['Description'] = $newCallsignUpper."_Pi-Star"; }
if ($configPistarRelease['Pi-Star']['Version'] >= "4.1.4") {
$rollAPRSGatewayCallsign = 'sudo sed -i "/Callsign=/c\\Callsign='.$newCallsignUpper.'" /etc/aprsgateway';
system($rollAPRSGatewayCallsign);
$rollAPRSGatewayPassword = 'sudo sed -i "/Password=/c\\Password='.aprspass($newCallsignUpper).'" /etc/aprsgateway';
system($rollAPRSGatewayPassword);
$rollircDDBGatewayAprsPort = 'sudo sed -i "/aprsPort=/c\\aprsPort=8673" /etc/ircddbgateway';
system($rollircDDBGatewayAprsPort);
unset($configs['aprsPassword']);
$rollircDDBGatewayAprsPass = 'sudo sed -i "/aprsPassword/d" /etc/ircddbgateway';
system($rollircDDBGatewayAprsPass);
if (empty($_POST['APRSGatewayEnable']) != TRUE ) {
if (escapeshellcmd($_POST['APRSGatewayEnable']) == 'ON' ) { $rollAPRSGatewayEnable = 'sudo sed -i "/Enabled=/c\\Enabled=1" /etc/aprsgateway'; }
if (escapeshellcmd($_POST['APRSGatewayEnable']) == 'OFF' ) { $rollAPRSGatewayEnable = 'sudo sed -i "/Enabled=/c\\Enabled=0" /etc/aprsgateway'; }
}
system($rollAPRSGatewayEnable);
}
// If ircDDBGateway config supports APRS Password
if (isset($configs['aprsPassword'])) {
$rollircDDBGatewayAprsPassword = 'sudo sed -i "/aprsPassword=/c\\aprsPassword='.aprspass($newCallsignUpper).'" /etc/ircddbgateway';
system($rollircDDBGatewayAprsPassword);
}
system($rollGATECALL);
system($rollDPLUSLOGIN);
system($rollDASHBOARDcall);
system($rollTIMESERVERcall);
system($rollSTARNETSERVERcall);
system($rollSTARNETSERVERirc);
}
// Set the ircDDB Callsign routing option
if (empty($_POST['confircddbEnabled']) != TRUE ) {
if (escapeshellcmd($_POST['confircddbEnabled']) == 'ON' ) {
$rollconfircddbEnabled = 'sudo sed -i "/rcddbEnabled=/c\\ircddbEnabled=1" /etc/ircddbgateway';
}
if (escapeshellcmd($_POST['confircddbEnabled']) == 'OFF' ) {
$rollconfircddbEnabled = 'sudo sed -i "/rcddbEnabled=/c\\ircddbEnabled=0" /etc/ircddbgateway';
}
if (isset($configs['ircddbHostname']) && $configs['ircddbHostname'] == "rr.openquad.net") {
$rollconfircddbEnabled = 'sudo sed -i "/rcddbEnabled=/c\\ircddbEnabled=0" /etc/ircddbgateway';
$rollconfircddbHostname = 'sudo sed -i "/rcddbHostname=/c\\ircddbHostname=ircv4.openquad.net" /etc/ircddbgateway';
system($rollconfircddbHostname);
}
system($rollconfircddbEnabled);
}
// Set the P25 Startup Host
if (empty($_POST['p25StartupHost']) != TRUE ) {
$newP25StartupHost = strtoupper(escapeshellcmd($_POST['p25StartupHost']));
if ($newP25StartupHost === "NONE") {
unset($configp25gateway['Network']['Startup']);
unset($configysf2p25['P25 Network']['StartupDstId']);
unset($configp25gateway['Network']['Static']);
} else {
$configp25gateway['Network']['Startup'] = $newP25StartupHost;
$configysf2p25['P25 Network']['StartupDstId'] = $newP25StartupHost;
}
}
// Set P25 NAC
if (empty($_POST['p25nac']) != TRUE ) {
$p25nacNew = strtolower(escapeshellcmd($_POST['p25nac']));
if (preg_match('/[a-f0-9]{3}/', $p25nacNew)) {
$configmmdvm['P25']['NAC'] = $p25nacNew;
}
}
// Set the NXDN Startup Host
if (empty($_POST['nxdnStartupHost']) != TRUE ) {
$newNXDNStartupHost = strtoupper(escapeshellcmd($_POST['nxdnStartupHost']));
if (file_exists('/etc/nxdngateway')) {
if ($newNXDNStartupHost === "NONE") {
if (isset($confignxdngateway['Network']['Startup'])) { unset($confignxdngateway['Network']['Startup']); }
if (isset($confignxdngateway['Network']['Static'])) { unset($confignxdngateway['Network']['Static']); }
} else {
$confignxdngateway['Network']['Startup'] = $newNXDNStartupHost;
}
} else {
$configmmdvm['NXDN Network']['GatewayAddress'] = $newNXDNStartupHost;
$configmmdvm['NXDN Network']['GatewayPort'] = "41007";
}
$configysf2nxdn['NXDN Network']['StartupDstId'] = $newNXDNStartupHost;
}
// Set NXDN RAN
if (empty($_POST['nxdnran']) != TRUE ) {
$nxdnranNew = strtolower(escapeshellcmd($_POST['nxdnran']));
$nxdnranNew = preg_replace('/[^0-9]/', '', $nxdnranNew);
if (($nxdnranNew >= 1) && ($nxdnranNew <= 64)) {
$configmmdvm['NXDN']['RAN'] = $nxdnranNew;
}
}
// Set the M17 Startup Host
if (empty($_POST['m17StartupHost']) != TRUE || empty($_POST['m17StartupRoom']) != TRUE) {
$newM17StartupHost = strtoupper(escapeshellcmd($_POST['m17StartupHost']))."_".strtoupper(escapeshellcmd($_POST['m17StartupRoom']));
if (file_exists('/etc/m17gateway')) {
if (strtoupper(escapeshellcmd($_POST['m17StartupHost'])) === "NONE") {
if (isset($configm17gateway['Network']['Startup'])) { unset($configm17gateway['Network']['Startup']); }
} else {
$configm17gateway['Network']['Startup'] = $newM17StartupHost;
}
}
}
// Set M17 CAN
if (isset($_POST['m17can']) && $_POST['m17can'] !== '') {
$m17canNew = strtolower(escapeshellcmd($_POST['m17can']));
$m17canNew = preg_replace('/[^0-9]/', '', $m17canNew);
$configmmdvm['M17']['CAN'] = $m17canNew;
}
// Set the YSF Startup Host
if (empty($_POST['ysfStartupHost']) != TRUE ) {
$newYSFStartupHostArr = explode(',', escapeshellcmd($_POST['ysfStartupHost']));
//$newYSFStartupHost = strtoupper(escapeshellcmd($_POST['ysfStartupHost']));
//if ($newYSFStartupHost == "NONE") { unset($configysfgateway['Network']['Startup']); }
//else { $configysfgateway['Network']['Startup'] = $newYSFStartupHost; }
if (isset($configysfgateway['FCS Network'])) {
if ($newYSFStartupHostArr[0] == "none") {
unset($configysfgateway['Network']['Startup']);
$configdmr2ysf['DMR Network']['DefaultDstTG'] = "9";
}
else {
$configysfgateway['Network']['Startup'] = $newYSFStartupHostArr[1];
if (substr( $newYSFStartupHostArr[0], 0, 3 ) !== "FCS") {
$configdmr2ysf['DMR Network']['DefaultDstTG'] = $newYSFStartupHostArr[0];
} else {
$configdmr2ysf['DMR Network']['DefaultDstTG'] = "9";
}
//$configdmr2ysf['DMR Network']['DefaultDstTG'] = str_replace("FCS", "1", $newYSFStartupHostArr[0]);
}
} else {
if ($newYSFStartupHostArr[0] == "none") {
unset($configysfgateway['Network']['Startup']);
$configdmr2ysf['DMR Network']['DefaultDstTG'] = "9";
}
else {
$configysfgateway['Network']['Startup'] = $newYSFStartupHostArr[0];
if (substr( $newYSFStartupHostArr[0], 0, 3 ) !== "FCS") {
$configdmr2ysf['DMR Network']['DefaultDstTG'] = $newYSFStartupHostArr[0];
} else {
$configdmr2ysf['DMR Network']['DefaultDstTG'] = "9";
}
//$configdmr2ysf['DMR Network']['DefaultDstTG'] = str_replace("FCS", "1", $newYSFStartupHostArr[0]);
}
}
}
// Set YSFGateway to automatically pass through WiresX
if (empty($_POST['wiresXCommandPassthrough']) != TRUE ) {
if (escapeshellcmd($_POST['wiresXCommandPassthrough']) == 'ON' ) { $configysfgateway['General']['WiresXCommandPassthrough'] = "1"; }
if (escapeshellcmd($_POST['wiresXCommandPassthrough']) == 'OFF' ) { $configysfgateway['General']['WiresXCommandPassthrough'] = "0"; }
}
// Remove hostfiles.ysfupper and use the new YSFGateway Feature
if (empty($_POST['confHostFilesYSFUpper']) != TRUE ) {
if (escapeshellcmd($_POST['confHostFilesYSFUpper']) == 'ON' ) { $configysfgateway['General']['WiresXMakeUpper'] = "1"; }
if (escapeshellcmd($_POST['confHostFilesYSFUpper']) == 'OFF' ) { $configysfgateway['General']['WiresXMakeUpper'] = "0"; }
if (file_exists('/etc/hostfiles.ysfupper')) { system('sudo rm -rf /etc/hostfiles.ysfupper'); }
}
// Set the YSF2DMR Master
if (empty($_POST['ysf2dmrMasterHost']) != TRUE ) {
$ysf2dmrMasterHostArr = explode(',', escapeshellcmd($_POST['ysf2dmrMasterHost']));
$configysf2dmr['DMR Network']['Address'] = $ysf2dmrMasterHostArr[0];
$configysf2dmr['DMR Network']['Password'] = '"'.$ysf2dmrMasterHostArr[1].'"';
$configysf2dmr['DMR Network']['Port'] = $ysf2dmrMasterHostArr[2];
if (isset($_POST['bmHSSecurity'])) {
if (empty($_POST['bmHSSecurity']) != TRUE ) {
$configysf2dmr['DMR Network']['Password'] = '"'.$_POST['bmHSSecurity'].'"';
$configModem['BrandMeister']['Password'] = '"'.$_POST['bmHSSecurity'].'"';
} else {
unset ($configModem['BrandMeister']['Password']);
}
}
}
// Set the YSF2DMR Starting TG
if (empty($_POST['ysf2dmrTg']) != TRUE ) {
$ysf2dmrStartupDstId = preg_replace('/[^0-9]/', '', $_POST['ysf2dmrTg']);
$configysf2dmr['DMR Network']['StartupDstId'] = $ysf2dmrStartupDstId;
}
// Set the YSF2NXDN Master
if (empty($_POST['ysf2nxdnStartupDstId']) != TRUE ) {
$configysf2nxdn['NXDN Network']['StartupDstId'] = escapeshellcmd($_POST['ysf2nxdnStartupDstId']);
if (file_exists('/etc/nxdngateway')) {
if (escapeshellcmd($_POST['ysf2nxdnStartupDstId']) === "none") {
unset($confignxdngateway['Network']['Startup']);
unset($confignxdngateway['Network']['Static']);
} else {
$confignxdngateway['Network']['Startup'] = escapeshellcmd($_POST['ysf2nxdnStartupDstId']);
}
}
}
// Set the YSF2NXDN Id
if (empty($_POST['ysf2nxdnId']) != TRUE ) {
$configysf2nxdn['NXDN Network']['Id'] = preg_replace('/[^0-9]/', '', $_POST['ysf2nxdnId']);
}
// Set the YSF2P25 Master
if (empty($_POST['ysf2p25StartupDstId']) != TRUE ) {
$newYSF2P25StartupHost = strtoupper(escapeshellcmd($_POST['ysf2p25StartupDstId']));
if ($newYSF2P25StartupHost === "NONE") {
unset($configp25gateway['Network']['Startup']);
unset($configp25gateway['Network']['Static']);
unset($configysf2p25['P25 Network']['StartupDstId']);
} else {
$configp25gateway['Network']['Startup'] = $newYSF2P25StartupHost;
$configysf2p25['P25 Network']['StartupDstId'] = $newYSF2P25StartupHost;
}
}
// Set the YSF2P25 P25Id
if (empty($_POST['ysf2p25Id']) != TRUE ) {
$configysf2p25['P25 Network']['Id'] = preg_replace('/[^0-9]/', '', $_POST['ysf2p25Id']);
}
// Set Duplex
if (empty($_POST['trxMode']) != TRUE ) {
if ($configmmdvm['Info']['RXFrequency'] === $configmmdvm['Info']['TXFrequency'] && $_POST['trxMode'] == "DUPLEX" ) {
$configmmdvm['Info']['RXFrequency'] = $configmmdvm['Info']['TXFrequency'] - 1;
}
if ($configmmdvm['Info']['RXFrequency'] !== $configmmdvm['Info']['TXFrequency'] && $_POST['trxMode'] == "SIMPLEX" ) {
$configmmdvm['Info']['RXFrequency'] = $configmmdvm['Info']['TXFrequency'];
}
if ($_POST['trxMode'] == "DUPLEX") {
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['DMR Network']['Slot1'] = '1';
$configmmdvm['DMR Network']['Slot2'] = '1';
}
if ($_POST['trxMode'] == "SIMPLEX") {
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = '0';
$configmmdvm['DMR Network']['Slot2'] = '1';
}
}
// Set DMR / CCS7 ID
if (empty($_POST['dmrId']) != TRUE ) {
$newPostDmrId = preg_replace('/[^0-9]/', '', $_POST['dmrId']);
$newPostDmrId = substr($newPostDmrId, 0, 7);
$configmmdvm['General']['Id'] = $newPostDmrId;
$configmmdvm['DMR']['Id'] = $newPostDmrId;
$configysfgateway['General']['Id'] = $newPostDmrId;
$configdmrgateway['XLX Network']['Id'] = $newPostDmrId;
$configdmr2ysf['DMR Network']['Id'] = $newPostDmrId;
$configdmr2nxdn['DMR Network']['Id'] = $newPostDmrId;
if (isset($configdgidgateway)) { $configdgidgateway['General']['Id'] = $newPostDmrId; }
}
// Set DMR Extended ID
if (empty($_POST['dmrExtendedId']) != TRUE ) {
$newPostdmrExtendedId = preg_replace('/[^0-9]/', '', $_POST['dmrExtendedId']);
$configmmdvm['DMR']['Id'] = $configmmdvm['General']['Id'].$newPostdmrExtendedId;
}
// Set BrandMeister Extended ID
if (empty($_POST['bmExtendedId']) != TRUE ) {
$newPostbmExtendedId = preg_replace('/[^0-9]/', '', $_POST['bmExtendedId']);
$configdmrgateway['DMR Network 1']['Id'] = $configmmdvm['General']['Id'].$newPostbmExtendedId;
}
// Set DMR Plus Extended ID
if (empty($_POST['dmrPlusExtendedId']) != TRUE ) {
$newPostdmrPlusExtendedId = preg_replace('/[^0-9]/', '', $_POST['dmrPlusExtendedId']);
$configdmrgateway['DMR Network 2']['Id'] = $configmmdvm['General']['Id'].$newPostdmrPlusExtendedId;
}
// Set YSF2DMR ID
if (empty($_POST['ysf2dmrId']) != TRUE ) {
$newPostYsf2DmrId = preg_replace('/[^0-9]/', '', $_POST['ysf2dmrId']);
$configysf2dmr['DMR Network']['Id'] = $newPostYsf2DmrId;
}
// Set NXDN ID
if (empty($_POST['nxdnId']) != TRUE ) {
$newPostNxdnId = preg_replace('/[^0-9]/', '', $_POST['nxdnId']);
$configmmdvm['NXDN']['Id'] = $newPostNxdnId;
if ($configmmdvm['NXDN']['Id'] > 65535) { unset($configmmdvm['NXDN']['Id']); }
}
// Set DMR Master Server
if (empty($_POST['dmrMasterHost']) != TRUE ) {
$dmrMasterHostArr = explode(',', escapeshellcmd($_POST['dmrMasterHost']));
$configmmdvm['DMR Network']['Address'] = $dmrMasterHostArr[0];
$configmmdvm['DMR Network']['RemoteAddress'] = $dmrMasterHostArr[0];
$configmmdvm['DMR Network']['Password'] = '"'.$dmrMasterHostArr[1].'"';
$configmmdvm['DMR Network']['Port'] = $dmrMasterHostArr[2];
$configmmdvm['DMR Network']['RemotePort'] = $dmrMasterHostArr[2];
if ($dmrMasterHostArr[0] == '127.0.0.1' && $dmrMasterHostArr[2] == '62031') {
// DMR Gateway
$configmmdvm['DMR Network']['Type'] = "Gateway";
} else {
// Everything Else
$configmmdvm['DMR Network']['Type'] = "Direct";
}
if ((isset($_POST['bmHSSecurity'])) && ((substr($dmrMasterHostArr[3], 0, 2) == "BM") || (substr($dmrMasterHostArr[3], 0, 3) == "CDN"))) {
if (empty($_POST['bmHSSecurity']) != TRUE ) {
$configModem['BrandMeister']['Password'] = '"'.$_POST['bmHSSecurity'].'"';
if ($dmrMasterHostArr[0] != '127.0.0.1') { $configmmdvm['DMR Network']['Password'] = '"'.$_POST['bmHSSecurity'].'"'; }
} else {
unset ($configModem['BrandMeister']['Password']);
}
}
if ((isset($_POST['tgifHSSecurity'])) && substr($dmrMasterHostArr[3], 0, 4) == "TGIF") {
if (empty($_POST['tgifHSSecurity']) != TRUE ) {
$configModem['TGIF']['Password'] = '"'.$_POST['tgifHSSecurity'].'"';
if ($dmrMasterHostArr[0] != '127.0.0.1') { $configmmdvm['DMR Network']['Password'] = '"'.$_POST['tgifHSSecurity'].'"'; }
} else {
unset ($configModem['TGIF']['Password']);
}
}
if ((substr($dmrMasterHostArr[3], 0, 2) == "BM") || (substr($dmrMasterHostArr[3], 0, 3) == "CDN")) {
unset ($configmmdvm['DMR Network']['Options']);
unset ($configdmrgateway['DMR Network 2']['Options']);
unset ($configmmdvm['DMR Network']['Local']);
unset ($configmmdvm['DMR Network']['LocalPort']);
unset ($configysf2dmr['DMR Network']['Options']);
unset ($configysf2dmr['DMR Network']['Local']);
if (isset($configModem['BrandMeister']['Password'])) {
$configmmdvm['DMR Network']['Password'] = '"'.str_replace('"', "", $configModem['BrandMeister']['Password']).'"';
}
}
// DMR Gateway
if ($dmrMasterHostArr[0] == '127.0.0.1' && $dmrMasterHostArr[2] == '62031') {
unset ($configmmdvm['DMR Network']['Options']);
unset ($configdmrgateway['DMR Network 2']['Options']);
$configmmdvm['DMR Network']['Local'] = "62032";
$configmmdvm['DMR Network']['LocalPort'] = "62032";
unset ($configysf2dmr['DMR Network']['Options']);
$configysf2dmr['DMR Network']['Local'] = "62032";
if (isset($configdmr2ysf['DMR Network']['LocalAddress'])) {
$configdmr2ysf['DMR Network']['LocalAddress'] = "127.0.0.1";
}
if (isset($configdmr2nxdn['DMR Network']['LocalAddress'])) {
$configdmr2nxdn['DMR Network']['LocalAddress'] = "127.0.0.1";
}
}
// DMR2YSF
if ($dmrMasterHostArr[0] == '127.0.0.2' && $dmrMasterHostArr[2] == '62033') {
unset ($configmmdvm['DMR Network']['Options']);
$configmmdvm['DMR Network']['Local'] = "62034";
$configmmdvm['DMR Network']['LocalPort'] = "62034";
if (isset($configdmr2ysf['DMR Network']['LocalAddress'])) {
$configdmr2ysf['DMR Network']['LocalAddress'] = "127.0.0.2";
}
}
// DMR2NXDN
if ($dmrMasterHostArr[0] == '127.0.0.3' && $dmrMasterHostArr[2] == '62035') {
unset ($configmmdvm['DMR Network']['Options']);
$configmmdvm['DMR Network']['Local'] = "62036";
$configmmdvm['DMR Network']['LocalPort'] = "62036";
if (isset($configdmr2nxdn['DMR Network']['LocalAddress'])) {
$configdmr2nxdn['DMR Network']['LocalAddress'] = "127.0.0.3";
}
}
// TGIF
if (substr($dmrMasterHostArr[3], 0, 4) == "TGIF") {
unset ($configmmdvm['DMR Network']['Options']);
}
// Set the DMR+ / HBLink Options= line
if ((substr($dmrMasterHostArr[3], 0, 4) == "DMR+") || (substr($dmrMasterHostArr[3], 0, 3) == "HB_") || (substr($dmrMasterHostArr[3], 0, 3) == "FD_") || (substr($dmrMasterHostArr[3], 0, 8) == "FreeDMR_") || (substr($dmrMasterHostArr[3], 0, 9) == "FreeSTAR_")) {
unset ($configmmdvm['DMR Network']['Local']);
unset ($configmmdvm['DMR Network']['LocalPort']);
unset ($configysf2dmr['DMR Network']['Local']);
if (empty($_POST['dmrNetworkOptions']) != TRUE ) {
$dmrOptionsLineStripped = str_replace('"', "", $_POST['dmrNetworkOptions']);
$configmmdvm['DMR Network']['Options'] = '"'.$dmrOptionsLineStripped.'"';
$configdmrgateway['DMR Network 2']['Options'] = '"'.$dmrOptionsLineStripped.'"';
}
else {
unset ($configmmdvm['DMR Network']['Options']);
unset ($configdmrgateway['DMR Network 2']['Options']);
unset ($configysf2dmr['DMR Network']['Options']);
}
}
}
if (empty($_POST['dmrMasterHost']) == TRUE ) {
unset ($configmmdvm['DMR Network']['Options']);
unset ($configdmrgateway['DMR Network 2']['Options']);
}
if (empty($_POST['dmrMasterHost1']) != TRUE ) {
$dmrMasterHostArr1 = explode(',', escapeshellcmd($_POST['dmrMasterHost1']));
$configdmrgateway['DMR Network 1']['Address'] = $dmrMasterHostArr1[0];
$configdmrgateway['DMR Network 1']['Password'] = '"'.$dmrMasterHostArr1[1].'"';
if (empty($_POST['bmHSSecurity']) != TRUE ) {
$configdmrgateway['DMR Network 1']['Password'] = '"'.$_POST['bmHSSecurity'].'"';
}
$configdmrgateway['DMR Network 1']['Port'] = $dmrMasterHostArr1[2];
$configdmrgateway['DMR Network 1']['Name'] = $dmrMasterHostArr1[3];
}
if (empty($_POST['dmrMasterHost2']) != TRUE ) {
$dmrMasterHostArr2 = explode(',', escapeshellcmd($_POST['dmrMasterHost2']));
$configdmrgateway['DMR Network 2']['Address'] = $dmrMasterHostArr2[0];
$configdmrgateway['DMR Network 2']['Password'] = '"'.$dmrMasterHostArr2[1].'"';
$configdmrgateway['DMR Network 2']['Port'] = $dmrMasterHostArr2[2];
$configdmrgateway['DMR Network 2']['Name'] = $dmrMasterHostArr2[3];
if (empty($_POST['dmrNetworkOptions']) != TRUE ) {
$dmrOptionsLineStripped = str_replace('"', "", $_POST['dmrNetworkOptions']);
unset ($configmmdvm['DMR Network']['Options']);
$configdmrgateway['DMR Network 2']['Options'] = '"'.$dmrOptionsLineStripped.'"';
}
else {
unset ($configdmrgateway['DMR Network 2']['Options']);
}
}
if (empty($_POST['dmrMasterHost3']) != TRUE ) {
$dmrMasterHostArr3 = explode(',', escapeshellcmd($_POST['dmrMasterHost3']));
$configdmrgateway['XLX Network 1']['Address'] = $dmrMasterHostArr3[0];
$configdmrgateway['XLX Network 1']['Password'] = '"'.$dmrMasterHostArr3[1].'"';
$configdmrgateway['XLX Network 1']['Port'] = $dmrMasterHostArr3[2];
$configdmrgateway['XLX Network 1']['Name'] = $dmrMasterHostArr3[3];
$configdmrgateway['XLX Network']['Startup'] = substr($dmrMasterHostArr3[3], 4);
}
// XLX StartUp TG
if (empty($_POST['dmrMasterHost3Startup']) != TRUE ) {
$dmrMasterHost3Startup = escapeshellcmd($_POST['dmrMasterHost3Startup']);
if ($dmrMasterHost3Startup != "None") {
$configdmrgateway['XLX Network 1']['Startup'] = $dmrMasterHost3Startup;
}
else { unset($configdmrgateway['XLX Network 1']['Startup']); }
}
// XLX Module Override
if (empty($_POST['dmrMasterHost3StartupModule']) != TRUE ) {
$dmrMasterHost3StartupModule = escapeshellcmd($_POST['dmrMasterHost3StartupModule']);
if ($dmrMasterHost3StartupModule == "Default") {
unset($configdmrgateway['XLX Network']['Module']);
} else {
$configdmrgateway['XLX Network']['Module'] = $dmrMasterHost3StartupModule;
}
}
// Set JutterBuffer Option
//if (empty($_POST['dmrDMRnetJitterBufer']) != TRUE ) {
// if (escapeshellcmd($_POST['dmrDMRnetJitterBufer']) == 'ON' ) { $configmmdvm['DMR Network']['JitterEnabled'] = "1"; $configysf2dmr['DMR Network']['JitterEnabled'] = "1"; }
// if (escapeshellcmd($_POST['dmrDMRnetJitterBufer']) == 'OFF' ) { $configmmdvm['DMR Network']['JitterEnabled'] = "0"; $configysf2dmr['DMR Network']['JitterEnabled'] = "0"; }
//}
unset($configmmdvm['DMR Network']['JitterEnabled']);
// Set Talker Alias Option
if (empty($_POST['dmrEmbeddedLCOnly']) != TRUE ) {
if (escapeshellcmd($_POST['dmrEmbeddedLCOnly']) == 'ON' ) { $configmmdvm['DMR']['EmbeddedLCOnly'] = "1"; }
if (escapeshellcmd($_POST['dmrEmbeddedLCOnly']) == 'OFF' ) { $configmmdvm['DMR']['EmbeddedLCOnly'] = "0"; }
}
// Set Dump TA Data Option for GPS support
if (empty($_POST['dmrDumpTAData']) != TRUE ) {
if (escapeshellcmd($_POST['dmrDumpTAData']) == 'ON' ) { $configmmdvm['DMR']['DumpTAData'] = "1"; }
if (escapeshellcmd($_POST['dmrDumpTAData']) == 'OFF' ) { $configmmdvm['DMR']['DumpTAData'] = "0"; }
}
// Set the XLX DMRGateway Master On or Off
if (empty($_POST['dmrGatewayXlxEn']) != TRUE ) {
if (escapeshellcmd($_POST['dmrGatewayXlxEn']) == 'ON' ) { $configdmrgateway['XLX Network 1']['Enabled'] = "1"; $configdmrgateway['XLX Network']['Enabled'] = "1"; }
if (escapeshellcmd($_POST['dmrGatewayXlxEn']) == 'OFF' ) { $configdmrgateway['XLX Network 1']['Enabled'] = "0"; $configdmrgateway['XLX Network']['Enabled'] = "0"; }
}
// Set the DMRGateway Network 2 On or Off
if (empty($_POST['dmrGatewayNet2En']) != TRUE ) {
if (escapeshellcmd($_POST['dmrGatewayNet2En']) == 'ON' ) { $configdmrgateway['DMR Network 2']['Enabled'] = "1"; }
if (escapeshellcmd($_POST['dmrGatewayNet2En']) == 'OFF' ) { $configdmrgateway['DMR Network 2']['Enabled'] = "0"; }
}
// Set the DMRGateway Network 1 On or Off
if (empty($_POST['dmrGatewayNet1En']) != TRUE ) {
if (escapeshellcmd($_POST['dmrGatewayNet1En']) == 'ON' ) { $configdmrgateway['DMR Network 1']['Enabled'] = "1"; }
if (escapeshellcmd($_POST['dmrGatewayNet1En']) == 'OFF' ) { $configdmrgateway['DMR Network 1']['Enabled'] = "0"; }
}
// Remove old settings
if (isset($configmmdvm['General']['ModeHang'])) { unset($configmmdvm['General']['ModeHang']); }
if (isset($configdmrgateway['General']['Timeout'])) { unset($configdmrgateway['General']['Timeout']); }
if (isset($configmmdvm['General']['RFModeHang'])) { $configmmdvm['General']['RFModeHang'] = 300; }
if (isset($configmmdvm['General']['NetModeHang'])) { $configmmdvm['General']['NetModeHang'] = 300; }
// Set DMR Hang Timers
if (empty($_POST['dmrRfHangTime']) != TRUE ) {
$configmmdvm['DMR']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['dmrRfHangTime']);
$configdmrgateway['General']['RFTimeout'] = preg_replace('/[^0-9]/', '', $_POST['dmrRfHangTime']);
}
if (empty($_POST['dmrNetHangTime']) != TRUE ) {
$configmmdvm['DMR Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['dmrNetHangTime']);
$configdmrgateway['General']['NetTimeout'] = preg_replace('/[^0-9]/', '', $_POST['dmrNetHangTime']);
}
// Set D-Star Hang Timers
if (empty($_POST['dstarRfHangTime']) != TRUE ) {
$configmmdvm['D-Star']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['dstarRfHangTime']);
}
if (empty($_POST['dstarNetHangTime']) != TRUE ) {
$configmmdvm['D-Star Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['dstarNetHangTime']);
}
// Set YSF Hang Timers
if (empty($_POST['ysfRfHangTime']) != TRUE ) {
$configmmdvm['System Fusion']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['ysfRfHangTime']);
if (isset($configdgidgateway)) { $configdgidgateway['General']['RFHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfRfHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['YSF Network']['RFHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfRfHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['FCS Network']['RFHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfRfHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['IMRS Network']['RFHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfRfHangTime']); }
}
if (empty($_POST['ysfNetHangTime']) != TRUE ) {
$configmmdvm['System Fusion Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['ysfNetHangTime']);
if (isset($configdgidgateway)) { $configdgidgateway['General']['NetHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfNetHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['YSF Network']['NetHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfNetHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['FCS Network']['NetHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfNetHangTime']); }
if (isset($configdgidgateway)) { $configdgidgateway['IMRS Network']['NetHangTime'] = preg_replace('/[^0-9]/', '', $_POST['ysfNetHangTime']); }
}
// Set P25 Hang Timers
if (empty($_POST['p25RfHangTime']) != TRUE ) {
$configmmdvm['P25']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['p25RfHangTime']);
$configp25gateway['Network']['RFHangTime'] = "0";
}
if (empty($_POST['p25NetHangTime']) != TRUE ) {
$configmmdvm['P25 Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['p25NetHangTime']);
$configp25gateway['Network']['NetHangTime'] = "0";
}
// Set NXDN Hang Timers
if (empty($_POST['nxdnRfHangTime']) != TRUE ) {
$configmmdvm['NXDN']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['nxdnRfHangTime']);
$confignxdngateway['Network']['RFHangTime'] = "0";
}
if (empty($_POST['nxdnNetHangTime']) != TRUE ) {
$configmmdvm['NXDN Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['nxdnNetHangTime']);
$confignxdngateway['Network']['NetHangTime'] = "0";
}
// Set M17 Hang Timers
if (empty($_POST['m17RfHangTime']) != TRUE ) {
$configmmdvm['M17']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['m17RfHangTime']);
}
if (empty($_POST['m17NetHangTime']) != TRUE ) {
$configmmdvm['M17 Network']['ModeHang'] = preg_replace('/[^0-9]/', '', $_POST['m17NetHangTime']);
if (isset($configm17gateway['Network']['HangTime'])) { $configm17gateway['Network']['HangTime'] = preg_replace('/[^0-9]/', '', $_POST['m17NetHangTime']); }
}
// Set the hardware type
if (empty($_POST['confHardware']) != TRUE ) {
$confHardware = escapeshellcmd($_POST['confHardware']);
$configModem['Modem']['Hardware'] = $confHardware;
// Set the Start delay
$rollDstarRepeaterStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=30" /lib/systemd/system/dstarrepeater.timer';
$rollMMDVMHostStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=30" /lib/systemd/system/mmdvmhost.timer';
// Turn on RPT1 Validation in DStarRepeater
$rollRpt1Validation = 'sudo sed -i "/rpt1Validation=/c\\rpt1Validation=1" /etc/dstarrepeater';
// Set Standard IP/Port for DStarRepeater/MMDVMHost
$rollRepeaterAddress1 = 'sudo sed -i "/repeaterAddress1=/c\\repeaterAddress1=127.0.0.1" /etc/ircddbgateway';
$rollRepeaterPort1 = 'sudo sed -i "/repeaterPort1=/c\\repeaterPort1=20011" /etc/ircddbgateway';
if ( $confHardware == 'idrp2c' ) {
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=1" /etc/ircddbgateway';
$rollRepeaterAddress1 = 'sudo sed -i "/repeaterAddress1=/c\\repeaterAddress1=172.16.0.1" /etc/ircddbgateway';
$rollRepeaterPort1 = 'sudo sed -i "/repeaterPort1=/c\\repeaterPort1=20000" /etc/ircddbgateway';
system($rollRepeaterType1);
$testNeworkConfig = exec('grep "eth0:1" /etc/network/interfaces | wc -l');
if (substr($testNeworkConfig, 0, 1) === '0') {
system('sudo sed -i "$ a\ \\nauto eth0:1\\nallow-hotplug eth0:1\\niface eth0:1 inet static\\n address 172.16.0.20\\n netmask 255.255.255.0" /etc/network/interfaces');
}
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'icomTerminalAuto' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=Icom Access Point\/Terminal Mode" /etc/dstarrepeater';
$rollIcomPort = 'sudo sed -i "/icomPort=/c\\icomPort=/dev/icom_ta" /etc/dstarrepeater';
$rollRpt1Validation = 'sudo sed -i "/rpt1Validation=/c\\rpt1Validation=0" /etc/dstarrepeater';
system($rollModemType);
system($rollIcomPort);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'dvmpis' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=2" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmpid' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmuadu' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmuada' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyACM0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmbss' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=2" /etc/dstarrepeater';
$rollDstarRepeaterStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=60" /lib/systemd/system/dstarrepeater.timer';
$rollMMDVMHostStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=60" /lib/systemd/system/mmdvmhost.timer';
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmbsd' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$rollDstarRepeaterStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=60" /lib/systemd/system/dstarrepeater.timer';
$rollMMDVMHostStartDelay = 'sudo sed -i "/OnStartupSec=/c\\OnStartupSec=60" /lib/systemd/system/mmdvmhost.timer';
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmuagmsku' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=0" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmuagmska' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyACM0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=0" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvrptr1' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DV-RPTR V1" /etc/dstarrepeater';
$rollDVRPTRPort = 'sudo sed -i "/dvrptr1Port=/c\\dvrptr1Port=/dev/ttyACM0" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVRPTRPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvrptr2' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DV-RPTR V2" /etc/dstarrepeater';
$rollDVRPTRPort = 'sudo sed -i "/dvrptr1Port=/c\\dvrptr1Port=/dev/ttyACM0" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVRPTRPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvrptr3' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DV-RPTR V3" /etc/dstarrepeater';
$rollDVRPTRPort = 'sudo sed -i "/dvrptr1Port=/c\\dvrptr1Port=/dev/ttyACM0" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollDVRPTRPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'gmsk_modem' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=GMSK Modem" /etc/dstarrepeater';
system($rollModemType);
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvap' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVAP" /etc/dstarrepeater';
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumspotlibre' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumspotusb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'lsusb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumspotgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumspotdualgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumspotduplexgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'zumradiopiusb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'zumradiopigpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'zum' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyACM0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'stm32dvm' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'stm32usb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'f4mgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'f4mf7m' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'mmdvmhshat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'lshshatgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'mmdvmhshatambe' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttySC0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmhsdualbandgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'sbhsdualbandgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'genesyshat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'genesysdualhat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmhsdualhatgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'lshsdualhatgpio' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmhsdualhatusb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmrpthat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'mmdvmmdohat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmvyehat' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mmdvmvyehatdual' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 1;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mnnano-spot' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'mnnano-teensy' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollMMDVMPort = 'sudo sed -i "/mmdvmPort=/c\\mmdvmPort=/dev/ttyUSB0" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollMMDVMPort);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyUSB0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'nanodv' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'nanodvusb' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
}
if ( $confHardware == 'dvmpicast' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyAMA0" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=2" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
$configmmdvm['Modem']['Port'] = "/dev/ttyAMA0";
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmpicasths' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyS2" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
$configmmdvm['Modem']['Port'] = "/dev/ttyS2";
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'dvmpicasthd' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=DVMEGA" /etc/dstarrepeater';
$rollDVMegaPort = 'sudo sed -i "/dvmegaPort=/c\\dvmegaPort=/dev/ttyS2" /etc/dstarrepeater';
$rollDVMegaVariant = 'sudo sed -i "/dvmegaVariant=/c\\dvmegaVariant=3" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
$configmmdvm['Modem']['Port'] = "/dev/ttyS2";
system($rollModemType);
system($rollDVMegaPort);
system($rollDVMegaVariant);
system($rollRepeaterType1);
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
if ( $confHardware == 'opengd77' ) {
$rollModemType = 'sudo sed -i "/modemType=/c\\modemType=MMDVM" /etc/dstarrepeater';
$rollRepeaterType1 = 'sudo sed -i "/repeaterType1=/c\\repeaterType1=0" /etc/ircddbgateway';
system($rollModemType);
system($rollRepeaterType1);
$configmmdvm['Modem']['Port'] = "/dev/ttyACM0";
$configmmdvm['General']['Duplex'] = 0;
$configmmdvm['DMR Network']['Slot1'] = 0;
$configmmdvm['Modem']['Protocol'] = "uart";
$configmmdvm['Modem']['UARTPort'] = $configmmdvm['Modem']['Port'];
if (isset($configmmdvm['FM']['Enable'])) { $configmmdvm['FM']['Enable'] = "0"; }
}
// Set the Service start delay
system($rollDstarRepeaterStartDelay);
system($rollMMDVMHostStartDelay);
// Turn on RPT1 validation on DStarRepeater
system($rollRpt1Validation);
// Set Standard IP/Port for ircDDBGateway
system($rollRepeaterAddress1);
system($rollRepeaterPort1);
}
// Set the Dashboard Public
if (empty($_POST['dashAccess']) != TRUE ) {
$publicDashboard = 'sudo sed -i \'/$ipVar 80 80/c\\\t\t$DAEMON -u ${igdURL} -e ${hostVar}_Dash -a $ipVar 80 80 TCP > /dev/null 2>&1\' /usr/local/sbin/pistar-upnp.service';
$privateDashboard = 'sudo sed -i \'/$ipVar 80 80/ s/^#*/#/\' /usr/local/sbin/pistar-upnp.service';
if (escapeshellcmd($_POST['dashAccess']) == 'PUB' ) { system($publicDashboard); }
if (escapeshellcmd($_POST['dashAccess']) == 'PRV' ) { system($privateDashboard); }
}
// Set the ircDDBGateway Remote Public
if (empty($_POST['ircRCAccess']) != TRUE ) {
$publicRCirc = 'sudo sed -i \'/$ipVar 10022 10022/c\\\t\t\t$DAEMON -u ${igdURL} -e ${hostVar}_Remote -a $ipVar 10022 10022 UDP > /dev/null 2>&1\' /usr/local/sbin/pistar-upnp.service';
$privateRCirc = 'sudo sed -i \'/$ipVar 10022 10022/ s/^#*/#/\' /usr/local/sbin/pistar-upnp.service';
if (escapeshellcmd($_POST['ircRCAccess']) == 'PUB' ) { system($publicRCirc); }
if (escapeshellcmd($_POST['ircRCAccess']) == 'PRV' ) { system($privateRCirc); }
}
// Set SSH Access Public
if (empty($_POST['sshAccess']) != TRUE ) {
$publicSSH = 'sudo sed -i \'/$ipVar 22 22/c\\\t\t$DAEMON -u ${igdURL} -e ${hostVar}_SSH -a $ipVar 22 22 TCP > /dev/null 2>&1\' /usr/local/sbin/pistar-upnp.service';
$privateSSH = 'sudo sed -i \'/$ipVar 22 22/ s/^#*/#/\' /usr/local/sbin/pistar-upnp.service';
if (escapeshellcmd($_POST['sshAccess']) == 'PUB' ) { system($publicSSH); }
if (escapeshellcmd($_POST['sshAccess']) == 'PRV' ) { system($privateSSH); }
}
// Set uPNP On or Off
if (empty($_POST['uPNP']) != TRUE ) {
$uPNPon = 'sudo sed -i \'/pistar-upnp.service/c\\*/5 *\t* * *\troot\t/usr/local/sbin/pistar-upnp.service start > /dev/null 2>&1 &\' /etc/crontab';
$uPNPoff = 'sudo sed -i \'/pistar-upnp.service/ s/^#*/#/\' /etc/crontab';
$uPNPsvcOn = 'sudo systemctl enable pistar-upnp.timer';
$uPNPsvcOff = 'sudo systemctl disable pistar-upnp.timer';
$uPNPsvcStart = '(sudo systemctl stop pistar-upnp.service && sudo systemctl start pistar-upnp.service) > /dev/null 2>&1 &';
$uPNPsvcStop = '(sudo systemctl stop pistar-upnp.service) > /dev/null 2>&1 &';
if (escapeshellcmd($_POST['uPNP']) == 'ON' ) { system($uPNPon); system($uPNPsvcOn); system($uPNPsvcStart); }
if (escapeshellcmd($_POST['uPNP']) == 'OFF' ) { system($uPNPoff); system($uPNPsvcStop); system($uPNPsvcOff); }
}
// D-Star Time Announce
if (empty($_POST['confTimeAnnounce']) != TRUE ) {
if (escapeshellcmd($_POST['confTimeAnnounce']) == 'ON' ) { system('sudo rm -rf /etc/timeserver.dissable'); }
if (escapeshellcmd($_POST['confTimeAnnounce']) == 'OFF' ) { system('sudo touch /etc/timeserver.dissable'); }
}
// Set MMDVMHost DMR Mode
if (empty($_POST['MMDVMModeDMR']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeDMR']) == 'ON' ) { $configmmdvm['DMR']['Enable'] = "1"; $configmmdvm['DMR Network']['Enable'] = "1"; $configysf2dmr['Enabled']['Enabled'] = "0";}
if (escapeshellcmd($_POST['MMDVMModeDMR']) == 'OFF' ) { $configmmdvm['DMR']['Enable'] = "0"; $configmmdvm['DMR Network']['Enable'] = "0"; }
}
// Set MMDVMHost D-Star Mode
if (empty($_POST['MMDVMModeDSTAR']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeDSTAR']) == 'ON' ) { $configmmdvm['D-Star']['Enable'] = "1"; $configmmdvm['D-Star Network']['Enable'] = "1"; }
if (escapeshellcmd($_POST['MMDVMModeDSTAR']) == 'OFF' ) { $configmmdvm['D-Star']['Enable'] = "0"; $configmmdvm['D-Star Network']['Enable'] = "0"; }
}
// Set MMDVMHost Fusion Mode
if (empty($_POST['MMDVMModeFUSION']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeFUSION']) == 'ON' ) { $configmmdvm['System Fusion']['Enable'] = "1"; $configmmdvm['System Fusion Network']['Enable'] = "1"; $configdmr2ysf['Enabled']['Enabled'] = "0"; }
if (escapeshellcmd($_POST['MMDVMModeFUSION']) == 'OFF' ) { $configmmdvm['System Fusion']['Enable'] = "0"; $configmmdvm['System Fusion Network']['Enable'] = "0"; }
}
// Set MMDVMHost P25 Mode
if (empty($_POST['MMDVMModeP25']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeP25']) == 'ON' ) { $configmmdvm['P25']['Enable'] = "1"; $configmmdvm['P25 Network']['Enable'] = "1"; $configysf2p25['Enabled']['Enabled'] = "0"; }
if (escapeshellcmd($_POST['MMDVMModeP25']) == 'OFF' ) { $configmmdvm['P25']['Enable'] = "0"; $configmmdvm['P25 Network']['Enable'] = "0"; }
}
// Set MMDVMHost NXDN Mode
if (empty($_POST['MMDVMModeNXDN']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeNXDN']) == 'ON' ) { $configmmdvm['NXDN']['Enable'] = "1"; $configmmdvm['NXDN Network']['Enable'] = "1"; $configysf2nxdn['Enabled']['Enabled'] = "0"; }
if (escapeshellcmd($_POST['MMDVMModeNXDN']) == 'OFF' ) { $configmmdvm['NXDN']['Enable'] = "0"; $configmmdvm['NXDN Network']['Enable'] = "0"; }
}
// Set MMDVMHost M17 Mode
if (empty($_POST['MMDVMModeM17']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeM17']) == 'ON' ) { $configmmdvm['M17']['Enable'] = "1"; $configmmdvm['M17 Network']['Enable'] = "1"; }
if (escapeshellcmd($_POST['MMDVMModeM17']) == 'OFF' ) { $configmmdvm['M17']['Enable'] = "0"; $configmmdvm['M17 Network']['Enable'] = "0"; }
}
// Set YSF2DMR Mode
if (empty($_POST['MMDVMModeYSF2DMR']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeYSF2DMR']) == 'ON' ) { $configysf2dmr['Enabled']['Enabled'] = "1"; }
if (escapeshellcmd($_POST['MMDVMModeYSF2DMR']) == 'OFF' ) { $configysf2dmr['Enabled']['Enabled'] = "0"; }
}
// Set YSF2NXDN Mode
if (empty($_POST['MMDVMModeYSF2NXDN']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeYSF2NXDN']) == 'ON' ) { $configysf2nxdn['Enabled']['Enabled'] = "1"; $configmmdvm['NXDN']['Enable'] = "0"; $configmmdvm['NXDN Network']['Enable'] = "0";}
if (escapeshellcmd($_POST['MMDVMModeYSF2NXDN']) == 'OFF' ) { $configysf2nxdn['Enabled']['Enabled'] = "0"; }
}
// Set YSF2P25 Mode
if (empty($_POST['MMDVMModeYSF2P25']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeYSF2P25']) == 'ON' ) { $configysf2p25['Enabled']['Enabled'] = "1"; $configmmdvm['P25']['Enable'] = "0"; $configmmdvm['P25 Network']['Enable'] = "0"; }
if (escapeshellcmd($_POST['MMDVMModeYSF2P25']) == 'OFF' ) { $configysf2p25['Enabled']['Enabled'] = "0"; }
if (escapeshellcmd($_POST['MMDVMModeFUSION']) == 'OFF' ) { $configysf2p25['Enabled']['Enabled'] = "0"; }
}
// Set DMR2YSF Mode
if (empty($_POST['MMDVMModeDMR2YSF']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeDMR2YSF']) == 'ON' ) {
$configdmr2ysf['Enabled']['Enabled'] = "1";
unset($configdmrgateway['DMR Network 3']);
$configdmrgateway['DMR Network 3']['Enabled'] = "0";
$configdmrgateway['DMR Network 3']['Name'] = "DMR2YSF_Cross-over";
$configdmrgateway['DMR Network 3']['Id'] = $configdmrgateway['DMR Network 2']['Id'];
$configdmrgateway['DMR Network 3']['Address'] = "127.0.0.1";
$configdmrgateway['DMR Network 3']['Port'] = "62033";
$configdmrgateway['DMR Network 3']['Local'] = "62034";
$configdmrgateway['DMR Network 3']['TGRewrite0'] = "2,7000001,2,1,999998";
$configdmrgateway['DMR Network 3']['SrcRewrite0'] = "2,1,2,7000001,999998";
$configdmrgateway['DMR Network 3']['PCRewrite0'] = "2,7000001,2,1,999998";
$configdmrgateway['DMR Network 3']['Password'] = '"'."PASSWORD".'"';
$configdmrgateway['DMR Network 3']['Location'] = "0";
$configdmrgateway['DMR Network 3']['Debug'] = "0";
$configmmdvm['System Fusion']['Enable'] = "0";
$configmmdvm['System Fusion Network']['Enable'] = "0";
}
if (escapeshellcmd($_POST['MMDVMModeDMR2YSF']) == 'OFF' ) {
$configdmr2ysf['Enabled']['Enabled'] = "0";
$configdmrgateway['DMR Network 3']['Enabled'] = "0";
}
}
// Set DMR2NXDN Mode
if (empty($_POST['MMDVMModeDMR2NXDN']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeDMR2NXDN']) == 'ON' ) {
if (empty($_POST['MMDVMModeDMR2YSF']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeDMR2YSF']) == 'ON' ) {
$configdmr2ysf['Enabled']['Enabled'] = "0";
}
}
if (empty($_POST['MMDVMModeYSF2NXDN']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModeYSF2NXDN']) == 'ON' ) {
$configysf2nxdn['Enabled']['Enabled'] = "0";
}
}
$configdmr2nxdn['Enabled']['Enabled'] = "1";
unset($configdmrgateway['DMR Network 3']);
$configdmrgateway['DMR Network 3']['Enabled'] = "0";
$configdmrgateway['DMR Network 3']['Name'] = "DMR2NXDN_Cross-over";
$configdmrgateway['DMR Network 3']['Id'] = $configdmrgateway['DMR Network 2']['Id'];
$configdmrgateway['DMR Network 3']['Address'] = "127.0.0.1";
$configdmrgateway['DMR Network 3']['Port'] = "62035";
$configdmrgateway['DMR Network 3']['Local'] = "62036";
$configdmrgateway['DMR Network 3']['TGRewrite0'] = "2,7000001,2,1,999998";
$configdmrgateway['DMR Network 3']['SrcRewrite0'] = "2,1,2,7000001,999998";
$configdmrgateway['DMR Network 3']['PCRewrite0'] = "2,7000001,2,1,999998";
$configdmrgateway['DMR Network 3']['Password'] = '"'."PASSWORD".'"';
$configdmrgateway['DMR Network 3']['Location'] = "0";
$configdmrgateway['DMR Network 3']['Debug'] = "0";
$configmmdvm['NXDN']['Enable'] = "0";
$configmmdvm['NXDN Network']['Enable'] = "0";
}
if (escapeshellcmd($_POST['MMDVMModeDMR2NXDN']) == 'OFF' ) {
$configdmr2nxdn['Enabled']['Enabled'] = "0";
$configdmrgateway['DMR Network 3']['Enabled'] = "0";
}
}
// Work out if DMR Network 3 should be ON or not
if (empty($_POST['MMDVMModeDMR2YSF']) != TRUE || empty($_POST['MMDVMModeDMR2NXDN']) != TRUE) {
if (escapeshellcmd($_POST['MMDVMModeDMR2YSF']) == 'ON' || escapeshellcmd($_POST['MMDVMModeDMR2NXDN']) == 'ON') {
$configdmrgateway['DMR Network 3']['Enabled'] = "1";
} else {
$configdmrgateway['DMR Network 3']['Enabled'] = "0";
}
}
// Set POCSAG Mode
if (empty($_POST['MMDVMModePOCSAG']) != TRUE ) {
if (escapeshellcmd($_POST['MMDVMModePOCSAG']) == 'ON' ) { $configmmdvm['POCSAG']['Enable'] = "1"; $configmmdvm['POCSAG Network']['Enable'] = "1"; }
if (escapeshellcmd($_POST['MMDVMModePOCSAG']) == 'OFF' ) { $configmmdvm['POCSAG']['Enable'] = "0"; $configmmdvm['POCSAG Network']['Enable'] = "0"; }
}
// Set the MMDVMHost Display Type
if (empty($_POST['mmdvmDisplayType']) != TRUE ) {
if (substr($_POST['mmdvmDisplayType'] , 0, 4 ) === "OLED") {
$configmmdvm['General']['Display'] = "OLED";
$configmmdvm['OLED']['Type'] = substr($_POST['mmdvmDisplayType'] , 4, 1 );
if ($configmmdvm['OLED']['Type'] == "6") { $configmmdvm['OLED']['Scroll'] = "0"; }
}
else {
$configmmdvm['General']['Display'] = escapeshellcmd($_POST['mmdvmDisplayType']);
}
}
// Set the MMDVMHost Display Type
if (empty($_POST['mmdvmDisplayPort']) != TRUE ) {
if (($_POST['mmdvmDisplayPort'] == "None") || ($_POST['mmdvmDisplayPort'] == "modem")) {
$configmmdvm['Nextion']['Port'] = $_POST['mmdvmDisplayPort'];
} else {
$configmmdvm['Nextion']['Port'] = "/dev/".$_POST['mmdvmDisplayPort'];
}
}
// Set the Nextion Display Layout
if (empty($_POST['mmdvmNextionDisplayType']) != TRUE ) {
if (escapeshellcmd($_POST['mmdvmNextionDisplayType']) == "G4KLX") { $configmmdvm['Nextion']['ScreenLayout'] = "0"; }
if (escapeshellcmd($_POST['mmdvmNextionDisplayType']) == "ON7LDSL2") { $configmmdvm['Nextion']['ScreenLayout'] = "2"; }
if (escapeshellcmd($_POST['mmdvmNextionDisplayType']) == "ON7LDSL3") { $configmmdvm['Nextion']['ScreenLayout'] = "3"; }
if (escapeshellcmd($_POST['mmdvmNextionDisplayType']) == "ON7LDSL3HS") { $configmmdvm['Nextion']['ScreenLayout'] = "4"; }
}
// Set MMDVMHost DMR Colour Code
if (empty($_POST['dmrColorCode']) != TRUE ) {
$configmmdvm['DMR']['ColorCode'] = escapeshellcmd($_POST['dmrColorCode']);
}
// Set MMDVMHost DMR Access List
if (isset($configmmdvm['DMR']['WhiteList'])) { unset($configmmdvm['DMR']['WhiteList']); }
if (empty($_POST['confDMRWhiteList']) != TRUE ) {
$configmmdvm['DMR']['WhiteList'] = escapeshellcmd(preg_replace('/[^0-9\,]/', '', $_POST['confDMRWhiteList']));
}
// Set Node Lock Status
if (empty($_POST['nodeMode']) != TRUE ) {
if (escapeshellcmd($_POST['nodeMode']) == 'prv' ) {
$configmmdvm['DMR']['SelfOnly'] = 1;
$configmmdvm['D-Star']['SelfOnly'] = 1;
$configmmdvm['System Fusion']['SelfOnly'] = 1;
$configmmdvm['P25']['SelfOnly'] = 1;
$configmmdvm['NXDN']['SelfOnly'] = 1;
system('sudo sed -i "/restriction=/c\\restriction=1" /etc/dstarrepeater');
}
if (escapeshellcmd($_POST['nodeMode']) == 'pub' ) {
$configmmdvm['DMR']['SelfOnly'] = 0;
$configmmdvm['D-Star']['SelfOnly'] = 0;
$configmmdvm['System Fusion']['SelfOnly'] = 0;
$configmmdvm['P25']['SelfOnly'] = 0;
$configmmdvm['NXDN']['SelfOnly'] = 0;
system('sudo sed -i "/restriction=/c\\restriction=0" /etc/dstarrepeater');
}
}
// Set the Hostname
if (empty($_POST['confHostame']) != TRUE ) {
$newHostnameLower = strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', $_POST['confHostame']));
$currHostname = exec('cat /etc/hostname');
$rollHostname = 'sudo sed -i "s/'.$currHostname.'/'.$newHostnameLower.'/" /etc/hostname';
$rollHosts = 'sudo sed -i "s/'.$currHostname.'/'.$newHostnameLower.'/" /etc/hosts';
$rollMotd = 'sudo sed -i "s/'.$currHostname.'/'.$newHostnameLower.'/" /etc/motd';
system($rollHostname);
system($rollHosts);
system($rollMotd);
if (file_exists('/etc/hostapd/hostapd.conf')) {
// Update the Hotspot name to the Hostname
$rollApSsid = 'sudo sed -i "/^ssid=/c\\ssid='.$newHostnameLower.'" /etc/hostapd/hostapd.conf';
system($rollApSsid);
}
}
// Add missing values to DMRGateway
if (!isset($configdmrgateway['Info']['Enabled'])) { $configdmrgateway['Info']['Enabled'] = "0"; }
if (!isset($configdmrgateway['Info']['Power'])) { $configdmrgateway['Info']['Power'] = $configmmdvm['Info']['Power']; }
if (!isset($configdmrgateway['Info']['Height'])) { $configdmrgateway['Info']['Height'] = $configmmdvm['Info']['Height']; }
if (!isset($configdmrgateway['XLX Network']['Enabled'])) { $configdmrgateway['XLX Network']['Enabled'] = "0"; }
if (!isset($configdmrgateway['XLX Network']['File'])) { $configdmrgateway['XLX Network']['File'] = "/usr/local/etc/XLXHosts.txt"; }
if (!isset($configdmrgateway['XLX Network']['Port'])) { $configdmrgateway['XLX Network']['Port'] = "62030"; }
if (!isset($configdmrgateway['XLX Network']['Password'])) { $configdmrgateway['XLX Network']['Password'] = "passw0rd"; }
if (!isset($configdmrgateway['XLX Network']['ReloadTime'])) { $configdmrgateway['XLX Network']['ReloadTime'] = "60"; }
if (!isset($configdmrgateway['XLX Network']['Slot'])) { $configdmrgateway['XLX Network']['Slot'] = "2"; }
if (!isset($configdmrgateway['XLX Network']['TG'])) { $configdmrgateway['XLX Network']['TG'] = "6"; }
if (!isset($configdmrgateway['XLX Network']['Base'])) { $configdmrgateway['XLX Network']['Base'] = "64000"; }
if (!isset($configdmrgateway['XLX Network']['Startup'])) { $configdmrgateway['XLX Network']['Startup'] = "950"; }
if (!isset($configdmrgateway['XLX Network']['Relink'])) { $configdmrgateway['XLX Network']['Relink'] = "60"; }
if (!isset($configdmrgateway['XLX Network']['Debug'])) { $configdmrgateway['XLX Network']['Debug'] = "0"; }
if (!isset($configdmrgateway['DMR Network 3']['Enabled'])) { $configdmrgateway['DMR Network 3']['Enabled'] = "0"; }
if (!isset($configdmrgateway['DMR Network 3']['Name'])) { $configdmrgateway['DMR Network 3']['Name'] = "HBLink"; }
if (!isset($configdmrgateway['DMR Network 3']['Address'])) { $configdmrgateway['DMR Network 3']['Address'] = "1.2.3.4"; }
if (!isset($configdmrgateway['DMR Network 3']['Port'])) { $configdmrgateway['DMR Network 3']['Port'] = "5555"; }
if (!isset($configdmrgateway['DMR Network 3']['TGRewrite0'])) { $configdmrgateway['DMR Network 3']['TGRewrite0'] = "2,11,2,11,1"; }
if (!isset($configdmrgateway['DMR Network 3']['Password'])) { $configdmrgateway['DMR Network 3']['Password'] = "PASSWORD"; }
if (!isset($configdmrgateway['DMR Network 3']['Location'])) { $configdmrgateway['DMR Network 3']['Location'] = "0"; }
if (!isset($configdmrgateway['DMR Network 3']['Debug'])) { $configdmrgateway['DMR Network 3']['Debug'] = "0"; }
if (!isset($configdmrgateway['XLX Network']['UserControl'])) { $configdmrgateway['XLX Network']['UserControl'] = "1"; }
$dmrGatewayVer = exec("DMRGateway -v | awk {'print $3'} | cut -c 1-8");
if ($dmrGatewayVer > 20210130) {
if (!isset($configdmrgateway['DMR Network 1']['Location'])) { $configdmrgateway['DMR Network 1']['Location'] = "1"; }
if (!isset($configdmrgateway['DMR Network 2']['Location'])) { $configdmrgateway['DMR Network 2']['Location'] = "0"; }
if (!isset($configdmrgateway['DMR Network 3']['Location'])) { $configdmrgateway['DMR Network 3']['Location'] = "0"; }
if (isset($configdmrgateway['DMR Network 4'])) {
if (!isset($configdmrgateway['DMR Network 4']['Location'])) { $configdmrgateway['DMR Network 4']['Location'] = "0"; }
}
if (isset($configdmrgateway['DMR Network 5'])) {
if (!isset($configdmrgateway['DMR Network 5']['Location'])) { $configdmrgateway['DMR Network 5']['Location'] = "0"; }
}
if (isset($configdmrgateway['DMR Network 6'])) {
if (!isset($configdmrgateway['DMR Network 6']['Location'])) { $configdmrgateway['DMR Network 6']['Location'] = "0"; }
}
if (!isset($configdmrgateway['GPSD'])) {
$configdmrgateway['GPSD']['Enable'] = "0";
$configdmrgateway['GPSD']['Address'] = "127.0.0.1";
$configdmrgateway['GPSD']['Port'] = "2947";
}
if (!isset($configdmrgateway['APRS'])) {
$configdmrgateway['APRS']['Enable'] = "1";
$configdmrgateway['APRS']['Address'] = "127.0.0.1";
$configdmrgateway['APRS']['Port'] = "8673";
$configdmrgateway['APRS']['Description'] = "APRS for DMRGateway";
$configdmrgateway['APRS']['Suffix'] = "DMR";
}
if (!isset($configdmrgateway['Dynamic TG Control'])) {
$configdmrgateway['Dynamic TG Control']['Enabled'] = "1";
$configdmrgateway['Dynamic TG Control']['Port'] = "3769";
}
}
// DMRGateway can break the lines with quotes in, when DMRGateway is off...
if ( isset($configdmrgateway['Info']['Location']) && substr($configdmrgateway['Info']['Location'], 0, 1) !== '"' ) { $configdmrgateway['Info']['Location'] = '"'.$configdmrgateway['Info']['Location'].'"'; }
if ( isset($configdmrgateway['Info']['Description']) && substr($configdmrgateway['Info']['Description'], 0, 1) !== '"' ) { $configdmrgateway['Info']['Description'] = '"'.$configdmrgateway['Info']['Description'].'"'; }
if ( isset($configdmrgateway['DMR Network 1']['Password']) && substr($configdmrgateway['DMR Network 1']['Password'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 1']['Password'] = '"'.$configdmrgateway['DMR Network 1']['Password'].'"'; }
if ( isset($configdmrgateway['DMR Network 1']['Options']) && substr($configdmrgateway['DMR Network 1']['Options'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 1']['Options'] = '"'.$configdmrgateway['DMR Network 1']['Options'].'"'; }
if ( isset($configdmrgateway['DMR Network 2']['Password']) && substr($configdmrgateway['DMR Network 2']['Password'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 2']['Password'] = '"'.$configdmrgateway['DMR Network 2']['Password'].'"'; }
if ( isset($configdmrgateway['DMR Network 2']['Options']) && substr($configdmrgateway['DMR Network 2']['Options'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 2']['Options'] = '"'.$configdmrgateway['DMR Network 2']['Options'].'"'; }
if ( isset($configdmrgateway['DMR Network 3']['Password']) && substr($configdmrgateway['DMR Network 3']['Password'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 3']['Password'] = '"'.$configdmrgateway['DMR Network 3']['Password'].'"'; }
if ( isset($configdmrgateway['DMR Network 3']['Options']) && substr($configdmrgateway['DMR Network 3']['Options'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 3']['Options'] = '"'.$configdmrgateway['DMR Network 3']['Options'].'"'; }
if ( isset($configdmrgateway['DMR Network 4']['Password']) && substr($configdmrgateway['DMR Network 4']['Password'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 4']['Password'] = '"'.$configdmrgateway['DMR Network 4']['Password'].'"'; }
if ( isset($configdmrgateway['DMR Network 4']['Options']) && substr($configdmrgateway['DMR Network 4']['Options'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 4']['Options'] = '"'.$configdmrgateway['DMR Network 4']['Options'].'"'; }
if ( isset($configdmrgateway['DMR Network 5']['Password']) && substr($configdmrgateway['DMR Network 5']['Password'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 5']['Password'] = '"'.$configdmrgateway['DMR Network 5']['Password'].'"'; }
if ( isset($configdmrgateway['DMR Network 5']['Options']) && substr($configdmrgateway['DMR Network 5']['Options'], 0, 1) !== '"' ) { $configdmrgateway['DMR Network 5']['Options'] = '"'.$configdmrgateway['DMR Network 5']['Options'].'"'; }
// Add missing options to MMDVMHost
if (!isset($configmmdvm['Modem']['RFLevel'])) { $configmmdvm['Modem']['RFLevel'] = "100"; }
if (!isset($configmmdvm['Modem']['RXDCOffset'])) { $configmmdvm['Modem']['RXDCOffset'] = "0"; }
if (!isset($configmmdvm['Modem']['TXDCOffset'])) { $configmmdvm['Modem']['TXDCOffset'] = "0"; }
if (!isset($configmmdvm['Modem']['CWIdTXLevel'])) { $configmmdvm['Modem']['CWIdTXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['NXDNTXLevel'])) { $configmmdvm['Modem']['NXDNTXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['M17TXLevel'])) { $configmmdvm['Modem']['M17TXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['POCSAGTXLevel'])) { $configmmdvm['Modem']['POCSAGTXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['FMTXLevel'])) { $configmmdvm['Modem']['FMTXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['AX25TXLevel'])) { $configmmdvm['Modem']['AX25TXLevel'] = "50"; }
if (!isset($configmmdvm['Modem']['UseCOSAsLockout'])) { $configmmdvm['Modem']['UseCOSAsLockout'] = "0"; }
if (!isset($configmmdvm['Modem']['UARTSpeed'])) { $configmmdvm['Modem']['UARTSpeed'] = "115200"; }
if (!isset($configmmdvm['Transparent Data']['SendFrameType'])) { $configmmdvm['Transparent Data']['SendFrameType'] = "0"; }
if (!isset($configmmdvm['D-Star']['AckReply'])) { $configmmdvm['D-Star']['AckReply'] = "1"; }
if (!isset($configmmdvm['D-Star']['AckTime'])) { $configmmdvm['D-Star']['AckTime'] = "750"; }
if (!isset($configmmdvm['D-Star']['AckMessage'])) { $configmmdvm['D-Star']['AckMessage'] = "0"; }
if (!isset($configmmdvm['D-Star']['RemoteGateway'])) { $configmmdvm['D-Star']['RemoteGateway'] = "0"; }
if (!isset($configmmdvm['DMR']['BeaconInterval'])) { $configmmdvm['DMR']['BeaconInterval'] = "60"; }
if (!isset($configmmdvm['DMR']['BeaconDuration'])) { $configmmdvm['DMR']['BeaconDuration'] = "3"; }
if (!isset($configmmdvm['DMR']['OVCM'])) { $configmmdvm['DMR']['OVCM'] = "0"; }
if (!isset($configmmdvm['DMR Network']['Type'])) { $configmmdvm['DMR Network']['Type'] = "Direct"; }
if (!isset($configmmdvm['P25']['RemoteGateway'])) { $configmmdvm['P25']['RemoteGateway'] = "0"; }
if (!isset($configmmdvm['P25']['TXHang'])) { $configmmdvm['P25']['TXHang'] = "5"; }
if (!isset($configmmdvm['OLED']['Scroll'])) { $configmmdvm['OLED']['Scroll'] = "0"; }
if (!isset($configmmdvm['NXDN']['Enable'])) { $configmmdvm['NXDN']['Enable'] = "0"; }
if (!isset($configmmdvm['NXDN']['RAN'])) { $configmmdvm['NXDN']['RAN'] = "1"; }
if (!isset($configmmdvm['NXDN']['SelfOnly'])) { $configmmdvm['NXDN']['SelfOnly'] = "1"; }
if (!isset($configmmdvm['NXDN']['RemoteGateway'])) { $configmmdvm['NXDN']['RemoteGateway'] = "0"; }
if (!isset($configmmdvm['NXDN']['TXHang'])) { $configmmdvm['NXDN']['TXHang'] = "5"; }
if (!isset($configmmdvm['M17']['Enable'])) { $configmmdvm['M17']['Enable'] = "0"; }
if (!isset($configmmdvm['M17']['CAN'])) { $configmmdvm['M17']['CAN'] = "0"; }
if (!isset($configmmdvm['M17']['SelfOnly'])) { $configmmdvm['M17']['SelfOnly'] = "1"; }
if (!isset($configmmdvm['M17']['TXHang'])) { $configmmdvm['M17']['TXHang'] = "5"; }
if (!isset($configmmdvm['M17']['Enable'])) { $configmmdvm['M17']['Enable'] = "0"; }
if (!isset($configmmdvm['M17']['ModeHang'])) { $configmmdvm['M17']['ModeHang'] = "20"; }
if (!isset($configmmdvm['AX.25']['Enable'])) { $configmmdvm['AX.25']['Enable'] = "0"; }
if (!isset($configmmdvm['AX.25']['TXDelay'])) { $configmmdvm['AX.25']['TXDelay'] = "300"; }
if (!isset($configmmdvm['AX.25']['RXTwist'])) { $configmmdvm['AX.25']['RXTwist'] = "6"; }
if (!isset($configmmdvm['AX.25']['SlotTime'])) { $configmmdvm['AX.25']['SlotTime'] = "30"; }
if (!isset($configmmdvm['AX.25']['PPersist'])) { $configmmdvm['AX.25']['PPersist'] = "128"; }
if (!isset($configmmdvm['AX.25']['Trace'])) { $configmmdvm['AX.25']['Trace'] = "0"; }
if (!isset($configmmdvm['NXDN Network']['Enable'])) { $configmmdvm['NXDN Network']['Enable'] = "0"; }
if (!isset($configmmdvm['NXDN Network']['LocalPort'])) { $configmmdvm['NXDN Network']['LocalPort'] = "3300"; }
if (!isset($configmmdvm['NXDN Network']['GatewayAddress'])) { $configmmdvm['NXDN Network']['GatewayAddress'] = "127.0.0.1"; }
if (!isset($configmmdvm['NXDN Network']['GatewayPort'])) { $configmmdvm['NXDN Network']['GatewayPort'] = "4300"; }
if (!isset($configmmdvm['NXDN Network']['Protocol'])) { $configmmdvm['NXDN Network']['Protocol'] = "Icom"; }
if (!isset($configmmdvm['NXDN Network']['Debug'])) { $configmmdvm['NXDN Network']['Debug'] = "0"; }
if (!isset($configmmdvm['M17 Network']['Enable'])) { $configmmdvm['M17 Network']['Enable'] = "0"; }
if (!isset($configmmdvm['M17 Network']['LocalAddress'])) { $configmmdvm['M17 Network']['LocalAddress'] = "127.0.0.1"; }
if (!isset($configmmdvm['M17 Network']['LocalPort'])) { $configmmdvm['M17 Network']['LocalPort'] = "17011"; }
if (!isset($configmmdvm['M17 Network']['GatewayAddress'])) { $configmmdvm['M17 Network']['GatewayAddress'] = "127.0.0.1"; }
if (!isset($configmmdvm['M17 Network']['GatewayPort'])) { $configmmdvm['M17 Network']['GatewayPort'] = "17010"; }
if (!isset($configmmdvm['M17 Network']['ModeHang'])) { $configmmdvm['M17 Network']['ModeHang'] = "20"; }
if (!isset($configmmdvm['M17 Network']['Debug'])) { $configmmdvm['M17 Network']['Debug'] = "0"; }
if (!isset($configmmdvm['AX.25 Network']['Enable'])) { $configmmdvm['AX.25 Network']['Enable'] = "0"; }
if (!isset($configmmdvm['AX.25 Network']['Port'])) { $configmmdvm['AX.25 Network']['Port'] = "/dev/ttyp7"; }
if (!isset($configmmdvm['AX.25 Network']['Speed'])) { $configmmdvm['AX.25 Network']['Speed'] = "9600"; }
if (!isset($configmmdvm['AX.25 Network']['Debug'])) { $configmmdvm['AX.25 Network']['Debug'] = "0"; }
if (!isset($configmmdvm['NXDN Id Lookup']['File'])) { $configmmdvm['NXDN Id Lookup']['File'] = "/usr/local/etc/NXDN.csv"; }
if (!isset($configmmdvm['NXDN Id Lookup']['Time'])) { $configmmdvm['NXDN Id Lookup']['Time'] = "24"; }
if (!isset($configmmdvm['System Fusion']['TXHang'])) { $configmmdvm['System Fusion']['TXHang'] = "3"; }
if (!isset($configmmdvm['Lock File']['Enable'])) { $configmmdvm['Lock File']['Enable'] = "0"; }
if (!isset($configmmdvm['Lock File']['File'])) { $configmmdvm['Lock File']['File'] = "/tmp/MMDVMHost.lock"; }
if (!isset($configmmdvm['Mobile GPS']['Enable'])) { $configmmdvm['Mobile GPS']['Enable'] = "0"; }
if (!isset($configmmdvm['Mobile GPS']['Address'])) { $configmmdvm['Mobile GPS']['Address'] = "127.0.0.1"; }
if (!isset($configmmdvm['Mobile GPS']['Port'])) { $configmmdvm['Mobile GPS']['Port'] = "7834"; }
if (!isset($configmmdvm['OLED']['Rotate'])) { $configmmdvm['OLED']['Rotate'] = "0"; }
if (!isset($configmmdvm['OLED']['Cast'])) { $configmmdvm['OLED']['Cast'] = "0"; }
if (!isset($configmmdvm['OLED']['LogoScreensaver'])) { $configmmdvm['OLED']['LogoScreensaver'] = "0"; }
if (!isset($configmmdvm['Remote Control']['Enable'])) { $configmmdvm['Remote Control']['Enable'] = "0"; }
if (!isset($configmmdvm['Remote Control']['Port'])) { $configmmdvm['Remote Control']['Port'] = "7642"; }
if (!isset($configmmdvm['Remote Control']['Address'])) { $configmmdvm['Remote Control']['Address'] = "127.0.0.1"; }
if (isset($configmmdvm['TFT Serial']['Port'])) { $configmmdvm['TFT Serial']['Port'] = "/dev/ttyAMA0"; }
if (isset($configmmdvm['Nextion']['Port'])) {
if ( $configmmdvm['Nextion']['Port'] == "/dev/modem" ) { $configmmdvm['Nextion']['Port'] = "modem"; }
}
if (!isset($configmmdvm['NextionDriver'])) {
$configmmdvm['NextionDriver']['Port'] = "modem";
$configmmdvm['NextionDriver']['LogLevel'] = "2";
$configmmdvm['NextionDriver']['DataFilesPath'] = "/usr/local/etc/";
$configmmdvm['NextionDriver']['GroupsFile'] = "nextionGroups.txt";
$configmmdvm['NextionDriver']['GroupsFileSrc'] = "https://www.pistar.uk/downloads/groups.txt";
$configmmdvm['NextionDriver']['DMRidFile'] = "nextionUsers.csv";
$configmmdvm['NextionDriver']['DMRidFileSrc'] = "https://www.pistar.uk/downloads/nextionUsers.csv";
$configmmdvm['NextionDriver']['DMRidDelimiter'] = ",";
$configmmdvm['NextionDriver']['DMRidId'] = "1";
$configmmdvm['NextionDriver']['DMRidCall'] = "2";
$configmmdvm['NextionDriver']['DMRidName'] = "3";
$configmmdvm['NextionDriver']['DMRidX1'] = "5";
$configmmdvm['NextionDriver']['DMRidX2'] = "6";
$configmmdvm['NextionDriver']['DMRidX3'] = "7";
$configmmdvm['NextionDriver']['RemoveDim'] = "0";
$configmmdvm['NextionDriver']['SleepWhenInactive'] = "600";
$configmmdvm['NextionDriver']['ShowModesStatus'] = "0";
$configmmdvm['NextionDriver']['WaitForLan'] = "1";
$configmmdvm['Transparent Data']['Enable'] = "1";
$configmmdvm['Transparent Data']['SendFrameType'] = "1";
$configmmdvm['Nextion']['Port'] = "/dev/ttyNextionDriver";
}
if (isset($configmmdvm['NextionDriver'])) {
if ($configmmdvm['Nextion']['Port'] == $configmmdvm['Modem']['Port']) { $configmmdvm['Nextion']['Port'] = "/dev/ttyNextionDriver"; }
if ($configmmdvm['Nextion']['Port'] == $configmmdvm['Modem']['UARTPort']) { $configmmdvm['Nextion']['Port'] = "/dev/ttyNextionDriver"; }
}
if (!isset($configmmdvm['FM'])) {
$configmmdvm['FM']['Enable'] = "0";
$configmmdvm['FM']['Callsign'] = $newCallsignUpper;
$configmmdvm['FM']['CallsignSpeed'] = "20";
$configmmdvm['FM']['CallsignFrequency'] = "1000";
$configmmdvm['FM']['CallsignTime'] = "10";
$configmmdvm['FM']['CallsignHoldoff'] = "0";
$configmmdvm['FM']['CallsignHighLevel'] = "50";
$configmmdvm['FM']['CallsignLowLevel'] = "20";
$configmmdvm['FM']['CallsignAtStart'] = "1";
$configmmdvm['FM']['CallsignAtEnd'] = "1";
$configmmdvm['FM']['CallsignAtLatch'] = "0";
$configmmdvm['FM']['RFAck'] = "K";
$configmmdvm['FM']['ExtAck'] = "N";
$configmmdvm['FM']['AckSpeed'] = "20";
$configmmdvm['FM']['AckFrequency'] = "1750";
$configmmdvm['FM']['AckMinTime'] = "4";
$configmmdvm['FM']['AckDelay'] = "1000";
$configmmdvm['FM']['AckLevel'] = "50";
$configmmdvm['FM']['Timeout'] = "180";
$configmmdvm['FM']['TimeoutLevel'] = "80";
$configmmdvm['FM']['CTCSSFrequency'] = "94.8";
$configmmdvm['FM']['CTCSSHighThreshold'] = "30";
$configmmdvm['FM']['CTCSSLowThreshold'] = "20";
$configmmdvm['FM']['CTCSSLevel'] = "20";
$configmmdvm['FM']['KerchunkTime'] = "0";
$configmmdvm['FM']['HangTime'] = "7";
$configmmdvm['FM']['AccessMode'] = "1";
$configmmdvm['FM']['LinkMode'] = "0";
$configmmdvm['FM']['COSInvert'] = "0";
$configmmdvm['FM']['NoiseSquelch'] = "0";
$configmmdvm['FM']['SquelchHighThreshold'] = "30";
$configmmdvm['FM']['SquelchLowThreshold'] = "20";
$configmmdvm['FM']['RFAudioBoost'] = "1";
$configmmdvm['FM']['MaxDevLevel'] = "90";
$configmmdvm['FM']['ExtAudioBoost'] = "1";
$configmmdvm['FM']['ModeHang'] = "20";
}
// Stop ircDDBGateway from trying to lookup rr.openquad.net (the hard coded default) all the time
if ( (!isset($configs['ircddbHostname2'])) && (!isset($configs['ircddbEnabled2'])) ) {
$fix2ndIRCHost = "sudo sed -i '/^ircddbEnabled=/a ircddbEnabled2=0' /etc/ircddbgateway";
system($fix2ndIRCHost);
}
// Add missing options to DMR2YSF
if (!isset($configdmr2ysf['YSF Network']['FCSRooms'])) { $configdmr2ysf['YSF Network']['FCSRooms'] = "/usr/local/etc/FCSHosts.txt"; }
if (!isset($configdmr2ysf['DMR Network']['DefaultDstTG'])) { $configdmr2ysf['DMR Network']['DefaultDstTG'] = "9"; }
if (!isset($configdmr2ysf['DMR Network']['TGUnlink'])) { $configdmr2ysf['DMR Network']['TGUnlink'] = "4000"; }
if (!isset($configdmr2ysf['DMR Network']['TGListFile'])) { $configdmr2ysf['DMR Network']['TGListFile'] = "/usr/local/etc/TGList_YSF.txt"; }
$configdmr2ysf['Log']['DisplayLevel'] = "0";
$configdmr2ysf['Log']['FileLevel'] = "2";
if (!isset($configdmr2ysf['YSF Network']['DT1'])) { $configdmr2ysf['YSF Network']['DT1'] = "1,34,97,95,43,3,17,0,0,0"; }
if (!isset($configdmr2ysf['YSF Network']['DT2'])) { $configdmr2ysf['YSF Network']['DT2'] = "0,0,0,0,108,32,28,32,3,8"; }
if (!isset($configdmr2ysf['YSF Network']['Debug'])) { $configdmr2ysf['YSF Network']['Debug'] = "0"; }
// Add missing options to YSFGateway
if (!isset($configysfgateway['General']['WiresXMakeUpper'])) { $configysfgateway['General']['WiresXMakeUpper'] = "1"; }
if (!isset($configysfgateway['Network']['Revert'])) { $configysfgateway['Network']['Revert'] = "0"; }
if (!isset($configysfgateway['Network']['Port'])) { $configysfgateway['Network']['Port'] = "42000"; }
if (isset($configysfgateway['Network']['YSF2DMRAddress'])) { unset($configysfgateway['Network']['YSF2DMRAddress']); }
if (isset($configysfgateway['Network']['YSF2DMRPort'])) { unset($configysfgateway['Network']['YSF2DMRPort']); }
unset($configysfgateway['Network']['DataPort']);
unset($configysfgateway['Network']['StatusPort']);
if (!isset($configysfgateway['Mobile GPS']['Enable'])) { $configysfgateway['Mobile GPS']['Enable'] = "0"; }
if (!isset($configysfgateway['Mobile GPS']['Address'])) { $configysfgateway['Mobile GPS']['Address'] = "127.0.0.1"; }
if (!isset($configysfgateway['Mobile GPS']['Port'])) { $configysfgateway['Mobile GPS']['Port'] = "7834"; }
// Add missing options to YSF2DMR
if (!isset($configysf2dmr['Info']['Power'])) { $configysf2dmr['Info']['Power'] = "1"; }
if (!isset($configysf2dmr['Info']['Height'])) { $configysf2dmr['Info']['Height'] = "0"; }
if (!isset($configysf2dmr['YSF Network']['DstAddress'])) { $configysf2dmr['YSF Network']['DstAddress'] = "127.0.0.1"; }
if (!isset($configysf2dmr['YSF Network']['DstPort'])) { $configysf2dmr['YSF Network']['DstPort'] = "42000"; }
if (!isset($configysf2dmr['YSF Network']['LocalAddress'])) { $configysf2dmr['YSF Network']['LocalAddress'] = "127.0.0.1"; }
if (!isset($configysf2dmr['YSF Network']['LocalPort'])) { $configysf2dmr['YSF Network']['LocalPort'] = "42013"; }
if (!isset($configysf2dmr['YSF Network']['Daemon'])) { $configysf2dmr['YSF Network']['Daemon'] = "1"; }
if (!isset($configysf2dmr['YSF Network']['EnableWiresX'])) { $configysf2dmr['YSF Network']['EnableWiresX'] = "1"; }
if (!isset($configysf2dmr['DMR Network']['StartupDstId'])) { $configysf2dmr['DMR Network']['StartupDstId'] = "31672"; }
if (!isset($configysf2dmr['DMR Network']['StartupPC'])) { $configysf2dmr['DMR Network']['StartupPC'] = "0"; }
if (!isset($configysf2dmr['DMR Network']['Jitter'])) { $configysf2dmr['DMR Network']['Jitter'] = "500"; }
if (!isset($configysf2dmr['DMR Network']['EnableUnlink'])) { $configysf2dmr['DMR Network']['EnableUnlink'] = "1"; }
if (!isset($configysf2dmr['DMR Network']['TGUnlink'])) { $configysf2dmr['DMR Network']['TGUnlink'] = "4000"; }
if (!isset($configysf2dmr['DMR Network']['PCUnlink'])) { $configysf2dmr['DMR Network']['PCUnlink'] = "0"; }
if (!isset($configysf2dmr['DMR Network']['Debug'])) { $configysf2dmr['DMR Network']['Debug'] = "0"; }
if ( (!isset($configysf2dmr['DMR Network']['TGListFile'])) && (file_exists('/usr/local/etc/TGList_BM.txt')) ) { $configysf2dmr['DMR Network']['TGListFile'] = "/usr/local/etc/TGList_BM.txt"; }
if (!isset($configysf2dmr['DMR Id Lookup']['File'])) { $configysf2dmr['DMR Id Lookup']['File'] = "/usr/local/etc/DMRIds.dat"; }
if (!isset($configysf2dmr['DMR Id Lookup']['Time'])) { $configysf2dmr['DMR Id Lookup']['Time'] = "24"; }
if (!isset($configysf2dmr['DMR Id Lookup']['DropUnknown'])) { $configysf2dmr['DMR Id Lookup']['DropUnknown'] = "0"; }
if (!isset($configysf2dmr['Log']['DisplayLevel'])) { $configysf2dmr['Log']['DisplayLevel'] = "1"; }
if (!isset($configysf2dmr['Log']['FileLevel'])) { $configysf2dmr['Log']['FileLevel'] = "2"; }
if (!isset($configysf2dmr['Log']['FilePath'])) { $configysf2dmr['Log']['FilePath'] = "/var/log/pi-star"; }
if (!isset($configysf2dmr['Log']['FileRoot'])) { $configysf2dmr['Log']['FileRoot'] = "YSF2DMR"; }
if (!isset($configysf2dmr['aprs.fi']['Enable'])) { $configysf2dmr['aprs.fi']['Enable'] = "0"; }
if (!isset($configysf2dmr['aprs.fi']['Port'])) { $configysf2dmr['aprs.fi']['Port'] = "14580"; }
if (!isset($configysf2dmr['aprs.fi']['Refresh'])) { $configysf2dmr['aprs.fi']['Refresh'] = "240"; }
if (!isset($configysf2dmr['Enabled']['Enabled'])) { $configysf2dmr['Enabled']['Enabled'] = "0"; }
unset($configysf2dmr['Info']['Enabled']);
unset($configysf2dmr['DMR Network']['JitterEnabled']);
$configysf2dmr['Log']['DisplayLevel'] = "0";
$configysf2dmr['Log']['FileLevel'] = "0";
if (!isset($configysf2dmr['aprs.fi']['Enable'])) { $configysf2dmr['aprs.fi']['Enable'] = "0"; }
if (!isset($configysf2dmr['YSF Network']['WiresXMakeUpper'])) { $configysf2dmr['YSF Network']['WiresXMakeUpper'] = "1"; }
if (!isset($configysf2dmr['YSF Network']['DT1'])) { $configysf2dmr['YSF Network']['DT1'] = "1,34,97,95,43,3,17,0,0,0"; }
if (!isset($configysf2dmr['YSF Network']['DT2'])) { $configysf2dmr['YSF Network']['DT2'] = "0,0,0,0,108,32,28,32,3,8"; }
// Add missing options to YSF2NXDN
$configysf2nxdn['YSF Network']['LocalPort'] = $configysfgateway['YSF Network']['YSF2NXDNPort'];
$configysf2nxdn['YSF Network']['DstPort'] = $configysfgateway['YSF Network']['Port'];
$configysf2nxdn['YSF Network']['Daemon'] = "1";
$configysf2nxdn['YSF Network']['EnableWiresX'] = "1";
if (!isset($configysf2nxdn['Enabled']['Enabled'])) { $configysf2nxdn['Enabled']['Enabled'] = "0"; }
$configysf2nxdn['NXDN Id Lookup']['File'] = "/usr/local/etc/NXDN.csv";
$configysf2nxdn['NXDN Network']['TGListFile'] = "/usr/local/etc/TGList_NXDN.txt";
$configysf2nxdn['Log']['DisplayLevel'] = "0";
$configysf2nxdn['Log']['FileLevel'] = "0";
$configysf2nxdn['Log']['FilePath'] = "/var/log/pi-star";
$configysf2nxdn['Log']['FileRoot'] = "YSF2NXDN";
if (!isset($configysf2nxdn['aprs.fi']['Enable'])) { $configysf2nxdn['aprs.fi']['Enable'] = "0"; }
if (!isset($configysf2nxdn['YSF Network']['WiresXMakeUpper'])) { $configysf2nxdn['YSF Network']['WiresXMakeUpper'] = "1"; }
if (!isset($configysf2nxdn['YSF Network']['DT1'])) { $configysf2nxdn['YSF Network']['DT1'] = "1,34,97,95,43,3,17,0,0,0"; }
if (!isset($configysf2nxdn['YSF Network']['DT2'])) { $configysf2nxdn['YSF Network']['DT2'] = "0,0,0,0,108,32,28,32,3,8"; }
// Add missing options to YSF2P25
$configysf2p25['YSF Network']['LocalPort'] = $configysfgateway['YSF Network']['YSF2P25Port'];
$configysf2p25['YSF Network']['DstPort'] = $configysfgateway['YSF Network']['Port'];
$configysf2p25['YSF Network']['Daemon'] = "1";
$configysf2p25['YSF Network']['EnableWiresX'] = "1";
if (!isset($configysf2p25['Enabled']['Enabled'])) { $configysf2p25['Enabled']['Enabled'] = "0"; }
$configysf2p25['DMR Id Lookup']['File'] = "/usr/local/etc/DMRIds.dat";
$configysf2p25['P25 Network']['TGListFile'] = "/usr/local/etc/TGList_P25.txt";
$configysf2p25['Log']['DisplayLevel'] = "0";
$configysf2p25['Log']['FileLevel'] = "0";
$configysf2p25['Log']['FilePath'] = "/var/log/pi-star";
$configysf2p25['Log']['FileRoot'] = "YSF2P25";
if (isset($configysf2p25['aprs.fi'])) { unset($configysf2p25['aprs.fi']); }
if (!isset($configysf2p25['YSF Network']['WiresXMakeUpper'])) { $configysf2p25['YSF Network']['WiresXMakeUpper'] = "1"; }
if (!isset($configysf2p25['YSF Network']['DT1'])) { $configysf2p25['YSF Network']['DT1'] = "1,34,97,95,43,3,17,0,0,0"; }
if (!isset($configysf2p25['YSF Network']['DT2'])) { $configysf2p25['YSF Network']['DT2'] = "0,0,0,0,108,32,28,32,3,8"; }
// Defaults for DGIdGateway
if (isset($configdgidgateway)) {
$configdgidgateway['General']['LocalPort'] = $configmmdvm['System Fusion Network']['GatewayPort'];
$configdgidgateway['General']['RptPort'] = $configmmdvm['System Fusion Network']['LocalPort'];
$configdgidgateway['Log']['DisplayLevel'] = 1;
$configdgidgateway['Log']['FileLevel'] = 1;
$configdgidgateway['Log']['FilePath'] = "/var/log/pi-star";
$configdgidgateway['Log']['FileRoot'] = "DGIdGateway";
$configdgidgateway['Log']['FileRotate'] = 0;
$configdgidgateway['YSF Network']['Hosts'] = "/usr/local/etc/YSFHosts.txt";
}
// Clean up for NXDN Gateway
if (file_exists('/etc/nxdngateway')) {
if (isset($confignxdngateway['Network']['HostsFile'])) {
$confignxdngateway['Network']['HostsFile1'] = $confignxdngateway['Network']['HostsFile'];
$confignxdngateway['Network']['HostsFile2'] = "/usr/local/etc/NXDNHostsLocal.txt";
unset($confignxdngateway['Network']['HostsFile']);
if (!file_exists('/usr/local/etc/NXDNHostsLocal.txt')) { exec('sudo touch /usr/local/etc/NXDNHostsLocal.txt'); }
}
$configmmdvm['NXDN Network']['LocalAddress'] = "127.0.0.1";
$configmmdvm['NXDN Network']['LocalPort'] = "14021";
$configmmdvm['NXDN Network']['GatewayAddress'] = "127.0.0.1";
$configmmdvm['NXDN Network']['GatewayPort'] = "14020";
if(isset($configmmdvm['NXDN']['SelfOnly'])) {
$nxdnSelfOnlyTmp = $configmmdvm['NXDN']['SelfOnly'];
unset($configmmdvm['NXDN']['SelfOnly']);
$configmmdvm['NXDN']['SelfOnly'] = $nxdnSelfOnlyTmp;
}
if(isset($configmmdvm['NXDN']['ModeHang'])) {
$nxdnRfModeHangTmp = $configmmdvm['NXDN']['ModeHang'];
unset($configmmdvm['NXDN']['ModeHang']);
$configmmdvm['NXDN']['ModeHang'] = $nxdnRfModeHangTmp;
}
if(isset($configmmdvm['NXDN Network']['ModeHang'])) {
$nxdnNetModeHangTmp = $configmmdvm['NXDN Network']['ModeHang'];
unset($configmmdvm['NXDN Network']['ModeHang']);
$configmmdvm['NXDN Network']['ModeHang'] = $nxdnNetModeHangTmp;
}
// Add in all the APRS stuff
if(!isset($confignxdngateway['Info']['Power'])) { $confignxdngateway['Info']['Power'] = "1"; }
if(!isset($confignxdngateway['Info']['Height'])) { $confignxdngateway['Info']['Height'] = "0"; }
if(!isset($confignxdngateway['aprs.fi']['Enable'])) { $confignxdngateway['aprs.fi']['Enable'] = "0"; }
if(!isset($confignxdngateway['aprs.fi']['Server'])) { $confignxdngateway['aprs.fi']['Server'] = "euro.aprs2.net"; }
if(!isset($confignxdngateway['aprs.fi']['Port'])) { $confignxdngateway['aprs.fi']['Port'] = "14580"; }
if(!isset($confignxdngateway['aprs.fi']['Password'])) { $confignxdngateway['aprs.fi']['Password'] = "9999"; }
if(!isset($confignxdngateway['aprs.fi']['Description'])) { $confignxdngateway['aprs.fi']['Description'] = "APRS for NXDN Gateway"; }
if(!isset($confignxdngateway['aprs.fi']['Suffix'])) { $confignxdngateway['aprs.fi']['Suffix'] = "N"; }
}
// Clean up legacy options
$dmrGatewayVer = exec("DMRGateway -v | awk {'print $3'} | cut -c 1-8");
if ($dmrGatewayVer > 20170924) {
unset($configdmrgateway['XLX Network 1']);
unset($configdmrgateway['XLX Network 2']);
}
// Add P25Gateway Options
$p25GatewayVer = exec("P25Gateway -v | awk {'print $3'} | cut -c 1-8");
if ($p25GatewayVer > 20200502) {
if (!isset($configp25gateway['Remote Commands']['Enable'])) { $configp25gateway['Remote Commands']['Enable'] = "1"; }
if (!isset($configp25gateway['Remote Commands']['Port'])) { $configp25gateway['Remote Commands']['Port'] = "6074"; }
}
if ($p25GatewayVer > 20210201) {
if (isset($configp25gateway['General']['Announcements'])) { unset($configp25gateway['General']['Announcements']); }
if (!isset($configp25gateway['Log']['DisplayLevel'])) { $configp25gateway['Log']['DisplayLevel'] = "1"; }
if (!isset($configp25gateway['Log']['FileLevel'])) { $configp25gateway['Log']['FileLevel'] = "1"; }
if (!isset($configp25gateway['Network']['P252DMRAddress'])) { $configp25gateway['Network']['P252DMRAddress'] = "127.0.0.1"; }
if (!isset($configp25gateway['Network']['P252DMRPort'])) { $configp25gateway['Network']['P252DMRPort'] = "42012"; }
if (isset($configp25gateway['Network']['Startup'])) {
$configp25gateway['Network']['Static'] = $configp25gateway['Network']['Startup'];
unset($configp25gateway['Network']['Startup']);
}
}
// Add NXDNGateway Options
$nxdnGatewayVer = exec("NXDNGateway -v | awk {'print $3'} | cut -c 1-8");
if ($nxdnGatewayVer > 20200502) {
if (!isset($confignxdngateway['Remote Commands']['Enable'])) { $confignxdngateway['Remote Commands']['Enable'] = "1"; }
if (!isset($confignxdngateway['Remote Commands']['Port'])) { $confignxdngateway['Remote Commands']['Port'] = "6075"; }
}
if ($nxdnGatewayVer > 20210131) {
if (isset($confignxdngateway['aprs.fi'])) { unset($confignxdngateway['aprs.fi']); }
if (isset($confignxdngateway['Mobile GPS'])) { unset($confignxdngateway['Mobile GPS']); }
if (!isset($confignxdngateway['General']['RptProtocol'])) { $confignxdngateway['General']['RptProtocol'] = "Icom"; }
if (!isset($confignxdngateway['Log']['DisplayLevel'])) { $confignxdngateway['Log']['DisplayLevel'] = "1"; }
if (!isset($confignxdngateway['Log']['FileLevel'])) { $confignxdngateway['Log']['FileLevel'] = "1"; }
if (!isset($confignxdngateway['APRS']['Enable'])) { $confignxdngateway['APRS']['Enable'] = "1"; }
if (!isset($confignxdngateway['APRS']['Address'])) { $confignxdngateway['APRS']['Address'] = "127.0.0.1"; }
if (!isset($confignxdngateway['APRS']['Port'])) { $confignxdngateway['APRS']['Port'] = "8673"; }
if (!isset($confignxdngateway['APRS']['Suffix'])) { $confignxdngateway['APRS']['Suffix'] = "N"; }
if (!isset($confignxdngateway['APRS']['Description'])) { $confignxdngateway['APRS']['Description'] = $configysfgateway['Info']['Name']."_".$configysfgateway['General']['Suffix']; }
if (isset($confignxdngateway['APRS']['Description'])) { $confignxdngateway['APRS']['Description'] = $configysfgateway['Info']['Name']."_".$configysfgateway['General']['Suffix']; }
if (!isset($confignxdngateway['GPSD']['Enable'])) { $confignxdngateway['GPSD']['Enable'] = "0"; }
if (!isset($confignxdngateway['GPSD']['Address'])) { $confignxdngateway['GPSD']['Address'] = "127.0.0.1"; }
if (!isset($confignxdngateway['GPSD']['Port'])) { $confignxdngateway['GPSD']['Port'] = "2947"; }
if (isset($confignxdngateway['Network']['Startup'])) {
$confignxdngateway['Network']['Static'] = $confignxdngateway['Network']['Startup'];
unset($confignxdngateway['Network']['Startup']);
}
}
// Migrate YSFGateway Config
$ysfGatewayVer = exec("YSFGateway -v | awk {'print $3'} | cut -c 1-8");
if ($ysfGatewayVer > 20180303) {
if (isset($configysfgateway['Network']['Startup'])) { $ysfTmpStartup = $configysfgateway['Network']['Startup']; }
if (!isset($configysfgateway['aprs.fi']['Enable'])) { $configysfgateway['aprs.fi']['Enable'] = "1"; }
//unset($configysfgateway['Network']);
if (isset($ysfTmpStartup)) { $configysfgateway['Network']['Startup'] = $ysfTmpStartup; }
if (!isset($configysfgateway['Network']['InactivityTimeout'])) { $configysfgateway['Network']['InactivityTimeout'] = "0"; }
if (!isset($configysfgateway['Network']['Revert'])) { $configysfgateway['Network']['Revert'] = "0"; }
$configysfgateway['Network']['Debug'] = "0";
$configysfgateway['YSF Network']['Enable'] = "1";
$configysfgateway['YSF Network']['Port'] = "42000";
$configysfgateway['YSF Network']['Hosts'] = "/usr/local/etc/YSFHosts.txt";
$configysfgateway['YSF Network']['ReloadTime'] = "60";
$configysfgateway['YSF Network']['ParrotAddress'] = "127.0.0.1";
$configysfgateway['YSF Network']['ParrotPort'] = "42012";
$configysfgateway['YSF Network']['YSF2DMRAddress'] = "127.0.0.1";
$configysfgateway['YSF Network']['YSF2DMRPort'] = "42013";
$configysfgateway['YSF Network']['YSF2NXDNAddress'] = "127.0.0.1";
$configysfgateway['YSF Network']['YSF2NXDNPort'] = "42014";
$configysfgateway['YSF Network']['YSF2P25Address'] = "127.0.0.1";
$configysfgateway['YSF Network']['YSF2P25Port'] = "42015";
$configysfgateway['FCS Network']['Enable'] = "1";
$configysfgateway['FCS Network']['Port'] = "42001";
$configysfgateway['FCS Network']['Rooms'] = "/usr/local/etc/FCSHosts.txt";
}
if ($ysfGatewayVer > 20200502) {
if (!isset($configysfgateway['Remote Commands']['Enable'])) { $configysfgateway['Remote Commands']['Enable'] = "1"; }
if (!isset($configysfgateway['Remote Commands']['Port'])) { $configysfgateway['Remote Commands']['Port'] = "6073"; }
}
if ($ysfGatewayVer > 20200907) {
if (!isset($configysfgateway['General']['Debug'])) { $configysfgateway['General']['Debug'] = "0"; }
if (!isset($configysfgateway['GPSD']['Enable'])) { $configysfgateway['GPSD']['Enable'] = "0"; }
if (!isset($configysfgateway['GPSD']['Address'])) { $configysfgateway['GPSD']['Address'] = "127.0.0.1"; }
if (!isset($configysfgateway['GPSD']['Port'])) { $configysfgateway['GPSD']['Port'] = "2947"; }
if (!isset($configysfgateway['APRS']['Enable'])) { $configysfgateway['APRS']['Enable'] = "0"; }
if (!isset($configysfgateway['APRS']['Address'])) { $configysfgateway['APRS']['Address'] = "127.0.0.1"; }
if (!isset($configysfgateway['APRS']['Port'])) { $configysfgateway['APRS']['Port'] = "8673"; }
if (!isset($configysfgateway['APRS']['Description'])) { $configysfgateway['APRS']['Description'] = $configysfgateway['Info']['Name']."_".$configysfgateway['General']['Suffix']; }
if (isset($configysfgateway['APRS']['Description'])) { $configysfgateway['APRS']['Description'] = $configysfgateway['Info']['Name']."_".$configysfgateway['General']['Suffix']; }
if (!isset($configysfgateway['APRS']['Suffix'])) { $configysfgateway['APRS']['Suffix'] = "Y"; }
if (isset($configysfgateway['Mobile GPS'])) { unset($configysfgateway['Mobile GPS']); }
if (isset($configysfgateway['aprs.fi'])) { unset($configysfgateway['aprs.fi']); }
}
if ($ysfGatewayVer > 20210130) {
if (isset($configysfgateway['APRS']['Enable'])) { $configysfgateway['APRS']['Enable'] = "1"; }
}
// Add the DAPNet Config
if (!isset($configdapnetgw['General']['Callsign'])) { $configdapnetgw['General']['Callsign'] = "M1ABC"; }
if (!isset($configdapnetgw['General']['RptAddress'])) { $configdapnetgw['General']['RptAddress'] = "127.0.0.1"; }
if (!isset($configdapnetgw['General']['RptPort'])) { $configdapnetgw['General']['RptPort'] = "3800"; }
if (!isset($configdapnetgw['General']['LocalAddress'])) { $configdapnetgw['General']['LocalAddress'] = "127.0.0.1"; }
if (!isset($configdapnetgw['General']['LocalPort'])) { $configdapnetgw['General']['LocalPort'] = "4800"; }
if (!isset($configdapnetgw['General']['Daemon'])) { $configdapnetgw['General']['Daemon'] = "0"; }
if (!isset($configdapnetgw['Log']['DisplayLevel'])) { $configdapnetgw['Log']['DisplayLevel'] = "0"; }
if (!isset($configdapnetgw['Log']['FileLevel'])) { $configdapnetgw['Log']['FileLevel'] = "2"; }
if (!isset($configdapnetgw['Log']['FilePath'])) { $configdapnetgw['Log']['FilePath'] = "/var/log/pi-star"; }
if (!isset($configdapnetgw['Log']['FileRoot'])) { $configdapnetgw['Log']['FileRoot'] = "DAPNETGateway"; }
if (!isset($configdapnetgw['DAPNET']['Address'])) { $configdapnetgw['DAPNET']['Address'] = "dapnet.afu.rwth-aachen.de"; }
if (!isset($configdapnetgw['DAPNET']['Port'])) { $configdapnetgw['DAPNET']['Port'] = "43434"; }
if (!isset($configdapnetgw['DAPNET']['AuthKey'])) { $configdapnetgw['DAPNET']['AuthKey'] = "TOPSECRET"; }
if (!isset($configdapnetgw['DAPNET']['SuppressTimeWhenBusy'])) { $configdapnetgw['DAPNET']['SuppressTimeWhenBusy'] = "1"; }
if (!isset($configdapnetgw['DAPNET']['Debug'])) { $configdapnetgw['DAPNET']['Debug'] = "0"; }
if (!isset($configmmdvm['POCSAG']['Enable'])) { $configmmdvm['POCSAG']['Enable'] = "0"; }
if (!isset($configmmdvm['POCSAG']['Frequency'])) { $configmmdvm['POCSAG']['Frequency'] = "439987500"; }
if (!isset($configmmdvm['POCSAG Network']['Enable'])) { $configmmdvm['POCSAG Network']['Enable'] = "0"; }
if (!isset($configmmdvm['POCSAG Network']['LocalAddress'])) { $configmmdvm['POCSAG Network']['LocalAddress'] = "127.0.0.1"; }
if (!isset($configmmdvm['POCSAG Network']['LocalPort'])) { $configmmdvm['POCSAG Network']['LocalPort'] = "3800"; }
if (!isset($configmmdvm['POCSAG Network']['GatewayAddress'])) { $configmmdvm['POCSAG Network']['GatewayAddress'] = "127.0.0.1"; }
if (!isset($configmmdvm['POCSAG Network']['GatewayPort'])) { $configmmdvm['POCSAG Network']['GatewayPort'] = "4800"; }
if (!isset($configmmdvm['POCSAG Network']['ModeHang'])) { $configmmdvm['POCSAG Network']['ModeHang'] = "5"; }
if (!isset($configmmdvm['POCSAG Network']['Debug'])) { $configmmdvm['POCSAG Network']['Debug'] = "0"; }
if (isset($configmmdvm['POCSAG Network']['ModeHang'])) { $configmmdvm['POCSAG Network']['ModeHang'] = "5"; }
// Fix Demon mode on M17Gateway
if (isset($configm17gateway['General']['Daemon'])) { $configm17gateway['General']['Daemon'] = "1"; }
// MobileGPS Setup
if (file_exists('/etc/mobilegps')) {
if (empty($_POST['mobilegps_enable']) != TRUE ) {
// Add missing lines to MMDVMHost Config
if (!isset($configmmdvm['Mobile GPS']['Enable'])) { $configmmdvm['Mobile GPS']['Enable'] = "0"; }
if (!isset($configmmdvm['Mobile GPS']['Address'])) { $configmmdvm['Mobile GPS']['Address'] = "127.0.0.1"; }
if (!isset($configmmdvm['Mobile GPS']['Port'])) { $configmmdvm['Mobile GPS']['Port'] = "7834"; }
// Add missing lines to YSFGateway Config
if (!isset($configysfgateway['GPSD'])) {
if (!isset($configysfgateway['Mobile GPS']['Enable'])) { $configysfgateway['Mobile GPS']['Enable'] = "0"; }
if (!isset($configysfgateway['Mobile GPS']['Address'])) { $configysfgateway['Mobile GPS']['Address'] = "127.0.0.1"; }
if (!isset($configysfgateway['Mobile GPS']['Port'])) { $configysfgateway['Mobile GPS']['Port'] = "7834"; }
}
// Add missing lines to NXDNGateway Config
//if (!isset($confignxdngateway['Mobile GPS']['Enable'])) { $confignxdngateway['Mobile GPS']['Enable'] = "0"; }
//if (!isset($confignxdngateway['Mobile GPS']['Address'])) { $confignxdngateway['Mobile GPS']['Address'] = "127.0.0.1"; }
//if (!isset($confignxdngateway['Mobile GPS']['Port'])) { $confignxdngateway['Mobile GPS']['Port'] = "7834"; }
// Clean up MobilGPS config
system('sudo sed -i "/Daemon=/c\\Daemon=0" /etc/mobilegps');
system('sudo sed -i "/Debug=/c\\Debug=0" /etc/mobilegps');
system('sudo sed -i "/DisplayLevel=/c\\DisplayLevel=0" /etc/mobilegps');
system('sudo sed -i "/FileLevel=/c\\FileLevel=1" /etc/mobilegps');
system('sudo sed -i "/FilePath=/c\\FilePath=/var/log/pi-star" /etc/mobilegps');
// Enable or Disable MobileGPS
if (escapeshellcmd($_POST['mobilegps_enable']) == 'ON' ) {
$configmmdvm['Mobile GPS']['Enable'] = "1";
if (isset($configysfgateway['Mobile GPS']['Enable'])) { $configysfgateway['Mobile GPS']['Enable'] = "1"; }
if (isset($confignxdngateway['Mobile GPS']['Enable'])) { $confignxdngateway['Mobile GPS']['Enable'] = "1"; }
system('sudo sed -i "/Enabled=/c\\Enabled=1" /etc/mobilegps');
} else {
$configmmdvm['Mobile GPS']['Enable'] = "0";
if (isset($configysfgateway['Mobile GPS']['Enable'])) { $configysfgateway['Mobile GPS']['Enable'] = "0"; }
if (isset($confignxdngateway['Mobile GPS']['Enable'])) { $confignxdngateway['Mobile GPS']['Enable'] = "0"; }
system('sudo sed -i "/Enabled=/c\\Enabled=0" /etc/mobilegps');
}
}
if (empty($_POST['mobilegps_port']) != TRUE ) {
$newMobileGPSport = preg_replace('/[^a-z0-9]/i', '', $_POST['mobilegps_port']);
system('sudo sed -i "/Port=\/dev/c\\Port=/dev/'.$newMobileGPSport.'" /etc/mobilegps');
}
if (empty($_POST['mobilegps_speed']) != TRUE ) {
$newMobileGPSspeed = preg_replace('/[^0-9]/', '', $_POST['mobilegps_speed']);
system('sudo sed -i "/Speed=/c\\Speed='.$newMobileGPSspeed.'" /etc/mobilegps');
}
}
// Create the hostfiles.nodextra file if required
if (empty($_POST['confHostFilesNoDExtra']) != TRUE ) {
if (escapeshellcmd($_POST['confHostFilesNoDExtra']) == 'ON' ) {
if (!file_exists('/etc/hostfiles.nodextra')) { system('sudo touch /etc/hostfiles.nodextra'); }
}
if (escapeshellcmd($_POST['confHostFilesNoDExtra']) == 'OFF' ) {
if (file_exists('/etc/hostfiles.nodextra')) { system('sudo rm -rf /etc/hostfiles.nodextra'); }
}
}
// Continue Page Output
echo "<br />";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>完成…</th></tr>\n";
echo "<tr><td>更改已应用,正在启动服务…</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
// MMDVMHost config file wrangling
$mmdvmContent = "";
foreach($configmmdvm as $mmdvmSection=>$mmdvmValues) {
// UnBreak special cases
$mmdvmSection = str_replace("_", " ", $mmdvmSection);
$mmdvmContent .= "[".$mmdvmSection."]\n";
// append the values
foreach($mmdvmValues as $mmdvmKey=>$mmdvmValue) {
$mmdvmContent .= $mmdvmKey."=".$mmdvmValue."\n";
}
$mmdvmContent .= "\n";
}
if (!$handleMMDVMHostConfig = fopen('/tmp/bW1kdm1ob3N0DQo.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/bW1kdm1ob3N0DQo.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleMMDVMHostConfig, $mmdvmContent);
fclose($handleMMDVMHostConfig);
if (intval(exec('cat /tmp/bW1kdm1ob3N0DQo.tmp | wc -l')) > 140 ) {
exec('sudo mv /tmp/bW1kdm1ob3N0DQo.tmp /etc/mmdvmhost'); // Move the file back
exec('sudo chmod 644 /etc/mmdvmhost'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/mmdvmhost'); // Set the owner
}
}
// ysfgateway config file wrangling
$ysfgwContent = "";
foreach($configysfgateway as $ysfgwSection=>$ysfgwValues) {
// UnBreak special cases
$ysfgwSection = str_replace("_", " ", $ysfgwSection);
$ysfgwContent .= "[".$ysfgwSection."]\n";
// append the values
foreach($ysfgwValues as $ysfgwKey=>$ysfgwValue) {
$ysfgwContent .= $ysfgwKey."=".$ysfgwValue."\n";
}
$ysfgwContent .= "\n";
}
if (!$handleYSFGWconfig = fopen('/tmp/eXNmZ2F0ZXdheQ.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/eXNmZ2F0ZXdheQ.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleYSFGWconfig, $ysfgwContent);
fclose($handleYSFGWconfig);
if (intval(exec('cat /tmp/eXNmZ2F0ZXdheQ.tmp | wc -l')) > 35 ) {
exec('sudo mv /tmp/eXNmZ2F0ZXdheQ.tmp /etc/ysfgateway'); // Move the file back
exec('sudo chmod 644 /etc/ysfgateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/ysfgateway'); // Set the owner
}
}
// NXDNGateway config file wrangling
$nxdngwContent = "";
foreach($confignxdngateway as $nxdngwSection=>$nxdngwValues) {
// UnBreak special cases
$nxdngwSection = str_replace("_", " ", $nxdngwSection);
$nxdngwContent .= "[".$nxdngwSection."]\n";
// append the values
foreach($nxdngwValues as $nxdngwKey=>$nxdngwValue) {
$nxdngwContent .= $nxdngwKey."=".$nxdngwValue."\n";
}
$nxdngwContent .= "\n";
}
if (!$handleNXDNGWconfig = fopen('/tmp/kXKwkDKy793HF5.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/kXKwkDKy793HF5.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleNXDNGWconfig, $nxdngwContent);
fclose($handleNXDNGWconfig);
if ( (intval(exec('cat /tmp/kXKwkDKy793HF5.tmp | wc -l')) > 30 ) && (file_exists('/etc/nxdngateway')) ) {
exec('sudo mv /tmp/kXKwkDKy793HF5.tmp /etc/nxdngateway'); // Move the file back
exec('sudo chmod 644 /etc/nxdngateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/nxdngateway'); // Set the owner
}
}
// P25Gateway config file wrangling
$p25gwContent = "";
foreach($configp25gateway as $p25gwSection=>$p25gwValues) {
// UnBreak special cases
$p25gwSection = str_replace("_", " ", $p25gwSection);
$p25gwContent .= "[".$p25gwSection."]\n";
// append the values
foreach($p25gwValues as $p25gwKey=>$p25gwValue) {
$p25gwContent .= $p25gwKey."=".$p25gwValue."\n";
}
$p25gwContent .= "\n";
}
if (!$handleP25GWconfig = fopen('/tmp/sJSySkheSgrelJX.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/sJSySkheSgrelJX.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleP25GWconfig, $p25gwContent);
fclose($handleP25GWconfig);
if ( (intval(exec('cat /tmp/sJSySkheSgrelJX.tmp | wc -l')) > 30 ) && (file_exists('/etc/p25gateway')) ) {
exec('sudo mv /tmp/sJSySkheSgrelJX.tmp /etc/p25gateway'); // Move the file back
exec('sudo chmod 644 /etc/p25gateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/p25gateway'); // Set the owner
}
}
// M17Gateway config file wrangling
$m17gwContent = "";
foreach($configm17gateway as $m17gwSection=>$m17gwValues) {
// UnBreak special cases
$m17gwSection = str_replace("_", " ", $m17gwSection);
$m17gwContent .= "[".$m17gwSection."]\n";
// append the values
foreach($m17gwValues as $m17gwKey=>$m17gwValue) {
$m17gwContent .= $m17gwKey."=".$m17gwValue."\n";
}
$m17gwContent .= "\n";
}
if (!$handleM17GWconfig = fopen('/tmp/spNcSdRUEmySTo9.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/spNcSdRUEmySTo9.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleM17GWconfig, $m17gwContent);
fclose($handleM17GWconfig);
if ( (intval(exec('cat /tmp/spNcSdRUEmySTo9.tmp | wc -l')) > 30 ) && (file_exists('/etc/m17gateway')) ) {
exec('sudo mv /tmp/spNcSdRUEmySTo9.tmp /etc/m17gateway'); // Move the file back
exec('sudo chmod 644 /etc/m17gateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/m17gateway'); // Set the owner
}
}
// ysf2dmr config file wrangling
$ysf2dmrContent = "";
foreach($configysf2dmr as $ysf2dmrSection=>$ysf2dmrValues) {
// UnBreak special cases
$ysf2dmrSection = str_replace("_", " ", $ysf2dmrSection);
$ysf2dmrContent .= "[".$ysf2dmrSection."]\n";
// append the values
foreach($ysf2dmrValues as $ysf2dmrKey=>$ysf2dmrValue) {
$ysf2dmrContent .= $ysf2dmrKey."=".$ysf2dmrValue."\n";
}
$ysf2dmrContent .= "\n";
}
if (!$handleYSF2DMRconfig = fopen('/tmp/dsWGR34tHRrSFFGA.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/dsWGR34tHRrSFFGA.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleYSF2DMRconfig, $ysf2dmrContent);
fclose($handleYSF2DMRconfig);
if (intval(exec('cat /tmp/dsWGR34tHRrSFFGA.tmp | wc -l')) > 35 ) {
exec('sudo mv /tmp/dsWGR34tHRrSFFGA.tmp /etc/ysf2dmr'); // Move the file back
exec('sudo chmod 644 /etc/ysf2dmr'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/ysf2dmr'); // Set the owner
}
}
// ysf2nxdn config file wrangling
$ysf2nxdnContent = "";
foreach($configysf2nxdn as $ysf2nxdnSection=>$ysf2nxdnValues) {
// UnBreak special cases
$ysf2nxdnSection = str_replace("_", " ", $ysf2nxdnSection);
$ysf2nxdnContent .= "[".$ysf2nxdnSection."]\n";
// append the values
foreach($ysf2nxdnValues as $ysf2nxdnKey=>$ysf2nxdnValue) {
$ysf2nxdnContent .= $ysf2nxdnKey."=".$ysf2nxdnValue."\n";
}
$ysf2nxdnContent .= "\n";
}
if (!$handleYSF2NXDNconfig = fopen('/tmp/dsWGR34tHRrSFFGb.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/dsWGR34tHRrSFFGb.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleYSF2NXDNconfig, $ysf2nxdnContent);
fclose($handleYSF2NXDNconfig);
if (intval(exec('cat /tmp/dsWGR34tHRrSFFGb.tmp | wc -l')) > 35 ) {
exec('sudo mv /tmp/dsWGR34tHRrSFFGb.tmp /etc/ysf2nxdn'); // Move the file back
exec('sudo chmod 644 /etc/ysf2nxdn'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/ysf2nxdn'); // Set the owner
}
}
// ysf2p25 config file wrangling
$ysf2p25Content = "";
foreach($configysf2p25 as $ysf2p25Section=>$ysf2p25Values) {
// UnBreak special cases
$ysf2p25Section = str_replace("_", " ", $ysf2p25Section);
$ysf2p25Content .= "[".$ysf2p25Section."]\n";
// append the values
foreach($ysf2p25Values as $ysf2p25Key=>$ysf2p25Value) {
$ysf2p25Content .= $ysf2p25Key."=".$ysf2p25Value."\n";
}
$ysf2p25Content .= "\n";
}
if (!$handleYSF2P25config = fopen('/tmp/dsWGR34tHRrSFFGc.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/dsWGR34tHRrSFFGc.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleYSF2P25config, $ysf2p25Content);
fclose($handleYSF2P25config);
if (intval(exec('cat /tmp/dsWGR34tHRrSFFGc.tmp | wc -l')) > 25 ) {
exec('sudo mv /tmp/dsWGR34tHRrSFFGc.tmp /etc/ysf2p25'); // Move the file back
exec('sudo chmod 644 /etc/ysf2p25'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/ysf2p25'); // Set the owner
}
}
// dgidgateway config file wrangling
if (isset($configdgidgateway)) {
$dgidgatewayContent = "";
foreach($configdgidgateway as $dgidgatewaySection=>$dgidgatewayValues) {
// UnBreak special cases
$dgidgatewaySection = str_replace("_", " ", $dgidgatewaySection);
$dgidgatewayContent .= "[".$dgidgatewaySection."]\n";
// append the values
foreach($dgidgatewayValues as $dgidgatewayKey=>$dgidgatewayValue) {
$dgidgatewayContent .= $dgidgatewayKey."=".$dgidgatewayValue."\n";
}
$dgidgatewayContent .= "\n";
}
if (!$handleDGIdGatewayConfig = fopen('/tmp/cu0G4tG3CA45Z9B.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/cu0G4tG3CA45Z9B.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleDGIdGatewayConfig, $dgidgatewayContent);
fclose($handleDGIdGatewayConfig);
if (intval(exec('cat /tmp/cu0G4tG3CA45Z9B.tmp | wc -l')) > 25 ) {
exec('sudo mv /tmp/cu0G4tG3CA45Z9B.tmp /etc/dgidgateway'); // Move the file back
exec('sudo chmod 644 /etc/dgidgateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/dgidgateway'); // Set the owner
}
}
}
// dmr2ysf config file wrangling
$dmr2ysfContent = "";
foreach($configdmr2ysf as $dmr2ysfSection=>$dmr2ysfValues) {
// UnBreak special cases
$dmr2ysfSection = str_replace("_", " ", $dmr2ysfSection);
$dmr2ysfContent .= "[".$dmr2ysfSection."]\n";
// append the values
foreach($dmr2ysfValues as $dmr2ysfKey=>$dmr2ysfValue) {
$dmr2ysfContent .= $dmr2ysfKey."=".$dmr2ysfValue."\n";
}
$dmr2ysfContent .= "\n";
}
if (!$handleDMR2YSFconfig = fopen('/tmp/dhJSgdy7755HGc.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/dhJSgdy7755HGc.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleDMR2YSFconfig, $dmr2ysfContent);
fclose($handleDMR2YSFconfig);
if (intval(exec('cat /tmp/dhJSgdy7755HGc.tmp | wc -l')) > 25 ) {
exec('sudo mv /tmp/dhJSgdy7755HGc.tmp /etc/dmr2ysf'); // Move the file back
exec('sudo chmod 644 /etc/dmr2ysf'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/dmr2ysf'); // Set the owner
}
}
// dmr2nxdn config file wrangling
$dmr2nxdnContent = "";
foreach($configdmr2nxdn as $dmr2nxdnSection=>$dmr2nxdnValues) {
// UnBreak special cases
$dmr2nxdnSection = str_replace("_", " ", $dmr2nxdnSection);
$dmr2nxdnContent .= "[".$dmr2nxdnSection."]\n";
// append the values
foreach($dmr2nxdnValues as $dmr2nxdnKey=>$dmr2nxdnValue) {
$dmr2nxdnContent .= $dmr2nxdnKey."=".$dmr2nxdnValue."\n";
}
$dmr2nxdnContent .= "\n";
}
if (!$handleDMR2NXDNconfig = fopen('/tmp/nthfheS55HGc.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/nthfheS55HGc.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleDMR2NXDNconfig, $dmr2nxdnContent);
fclose($handleDMR2NXDNconfig);
if (intval(exec('cat /tmp/nthfheS55HGc.tmp | wc -l')) > 25 ) {
exec('sudo mv /tmp/nthfheS55HGc.tmp /etc/dmr2nxdn'); // Move the file back
exec('sudo chmod 644 /etc/dmr2nxdn'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/dmr2nxdn'); // Set the owner
}
}
// DAPNet Gateway Config file wragling
$dapnetContent = "";
foreach($configdapnetgw as $dapnetSection=>$dapnetValues) {
// UnBreak special cases
$dapnetSection = str_replace("_", " ", $dapnetSection);
$dapnetContent .= "[".$dapnetSection."]\n";
// append the values
foreach($dapnetValues as $dapnetKey=>$dapnetValue) {
$dapnetContent .= $dapnetKey."=".$dapnetValue."\n";
}
$dapnetContent .= "\n";
}
if (!$handledapnetconfig = fopen('/tmp/lsHWie734HS.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/lsHWie734HS.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handledapnetconfig, $dapnetContent);
fclose($handledapnetconfig);
if (intval(exec('cat /tmp/lsHWie734HS.tmp | wc -l')) > 19 ) {
exec('sudo mv /tmp/lsHWie734HS.tmp /etc/dapnetgateway'); // Move the file back
exec('sudo chmod 644 /etc/dapnetgateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/dapnetgateway'); // Set the owner
}
}
// dmrgateway config file wrangling
$dmrgwContent = "";
foreach($configdmrgateway as $dmrgwSection=>$dmrgwValues) {
// UnBreak special cases
$dmrgwSection = str_replace("_", " ", $dmrgwSection);
$dmrgwContent .= "[".$dmrgwSection."]\n";
// append the values
foreach($dmrgwValues as $dmrgwKey=>$dmrgwValue) {
$dmrgwContent .= $dmrgwKey."=".$dmrgwValue."\n";
}
$dmrgwContent .= "\n";
}
if (!$handledmrGWconfig = fopen('/tmp/k4jhdd34jeFr8f.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/k4jhdd34jeFr8f.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handledmrGWconfig, $dmrgwContent);
fclose($handledmrGWconfig);
if (fopen($dmrGatewayConfigFile,'r')) {
if (intval(exec('cat /tmp/k4jhdd34jeFr8f.tmp | wc -l')) > 55 ) {
exec('sudo mv /tmp/k4jhdd34jeFr8f.tmp /etc/dmrgateway'); // Move the file back
exec('sudo chmod 644 /etc/dmrgateway'); // Set the correct runtime permissions
exec('sudo chown root:root /etc/dmrgateway'); // Set the owner
}
}
}
// modem config file wrangling
$configModemContent = "";
if (isset($configModem)) {
foreach($configModem as $configModemSection=>$configModemValues) {
// UnBreak special cases
$configModemSection = str_replace("_", " ", $configModemSection);
$configModemContent .= "[".$configModemSection."]\n";
// append the values
foreach($configModemValues as $modemKey=>$modemValue) {
if ($modemKey == "Password") { $configModemContent .= $modemKey."=".'"'.str_replace('"', "", $modemValue).'"'."\n"; }
else { $configModemContent .= $modemKey."=".$modemValue."\n"; }
}
$configModemContent .= "\n";
}
if (!$handleModemConfig = fopen('/tmp/sja7hFRkw4euG7.tmp', 'w')) {
return false;
}
if (!is_writable('/tmp/sja7hFRkw4euG7.tmp')) {
echo "<br />\n";
echo "<div class=\"settings-card\" style=\"max-width:480px;margin:24px auto;text-align:center;\">\n";
echo "<table>\n";
echo "<tr><th>ERROR</th></tr>\n";
echo "<tr><td>Unable to write configuration file(s)...</td><tr>\n";
echo "<tr><td>Please wait a few seconds and retry...</td></tr>\n";
echo "</table>\n";
echo "</div>\n";
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},5000);</script>';
die();
}
else {
$success = fwrite($handleModemConfig, $configModemContent);
fclose($handleModemConfig);
if (file_exists('/etc/dstar-radio.dstarrepeater')) {
if (fopen($modemConfigFileDStarRepeater,'r')) {
exec('sudo mv /tmp/sja7hFRkw4euG7.tmp '.$modemConfigFileDStarRepeater); // Move the file back
exec('sudo chmod 644 $modemConfigFileDStarRepeater'); // Set the correct runtime permissions
exec('sudo chown root:root $modemConfigFileDStarRepeater'); // Set the owner
}
}
if (file_exists('/etc/dstar-radio.mmdvmhost')) {
if (fopen($modemConfigFileMMDVMHost,'r')) {
exec('sudo mv /tmp/sja7hFRkw4euG7.tmp '.$modemConfigFileMMDVMHost); // Move the file back
exec('sudo chmod 644 $modemConfigFileMMDVMHost'); // Set the correct runtime permissions
exec('sudo chown root:root $modemConfigFileMMDVMHost'); // Set the owner
}
}
}
}
// Start the DV Services
system('sudo systemctl daemon-reload > /dev/null 2>/dev/null &'); // Restart Systemd to account for any service changes
system('sudo systemctl start dstarrepeater.service > /dev/null 2>/dev/null &'); // D-Star Radio Service
system('sudo systemctl start mmdvmhost.service > /dev/null 2>/dev/null &'); // MMDVMHost Radio Service
system('sudo systemctl start ircddbgateway.service > /dev/null 2>/dev/null &'); // ircDDBGateway Service
system('sudo systemctl start timeserver.service > /dev/null 2>/dev/null &'); // Time Server Service
system('sudo systemctl start pistar-watchdog.service > /dev/null 2>/dev/null &'); // PiStar-Watchdog Service
system('sudo systemctl start pistar-remote.service > /dev/null 2>/dev/null &'); // PiStar-Remote Service
system('sudo systemctl start ysf2dmr.service > /dev/null 2>/dev/null &'); // YSF2DMR
system('sudo systemctl start ysf2nxdn.service > /dev/null 2>/dev/null &'); // YSF2NXDN
system('sudo systemctl start ysf2p25.service > /dev/null 2>/dev/null &'); // YSF2P25
system('sudo systemctl start nxdn2dmr.service > /dev/null 2>/dev/null &'); // NXDN2DMR
system('sudo systemctl start ysfgateway.service > /dev/null 2>/dev/null &'); // YSFGateway
system('sudo systemctl start ysfparrot.service > /dev/null 2>/dev/null &'); // YSFParrot
system('sudo systemctl start p25gateway.service > /dev/null 2>/dev/null &'); // P25Gateway
system('sudo systemctl start p25parrot.service > /dev/null 2>/dev/null &'); // P25Parrot
system('sudo systemctl start nxdngateway.service > /dev/null 2>/dev/null &'); // NXDNGateway
system('sudo systemctl start nxdnparrot.service > /dev/null 2>/dev/null &'); // NXDNParrot
system('sudo systemctl start m17gateway.service > /dev/null 2>/dev/null &'); // M17Gateway
system('sudo systemctl start dmr2ysf.service > /dev/null 2>/dev/null &'); // DMR2YSF
system('sudo systemctl start dmr2nxdn.service > /dev/null 2>/dev/null &'); // DMR2NXDN
system('sudo systemctl start dmrgateway.service > /dev/null 2>/dev/null &'); // DMRGateway
system('sudo systemctl start dapnetgateway.service > /dev/null 2>/dev/null &'); // DAPNetGateway
system('sudo systemctl start aprsgateway.service > /dev/null 2>/dev/null &'); // APRSGateway
// Set the system timezone
if (empty($_POST['systemTimezone']) != TRUE ) {
$rollTimeZone = 'sudo timedatectl set-timezone '.escapeshellcmd($_POST['systemTimezone']);
system($rollTimeZone);
system('echo "'.escapeshellcmd($_POST['systemTimezone']).'" | sudo tee /etc/timezone > /dev/null');
$rollTimeZoneConfig = 'sudo sed -i "/date_default_timezone_set/c\\date_default_timezone_set(\''.escapeshellcmd($_POST['systemTimezone']).'\')\;" /var/www/dashboard/config/config.php';
system($rollTimeZoneConfig);
}
// Start Cron (occasionally remounts root as RO - would be bad if it did this at the wrong time....)
system('sudo systemctl start cron.service > /dev/null 2>/dev/null &'); //Cron
unset($_POST);
echo '<script type="text/javascript">setTimeout(function() { window.location=window.location;},7500);</script>';
// Make the root filesystem read-only
system('sudo sync && sudo sync && sudo sync && sudo mount -o remount,ro /');
else:
// Output the HTML Form here
if ((file_exists('/etc/dstar-radio.mmdvmhost') || file_exists('/etc/dstar-radio.dstarrepeater')) && (!isset($configModem['Modem']['Hardware']) || !$configModem['Modem']['Hardware'])) { echo "<script type=\"text/javascript\">\n\talert(\"警告:\\n调制解调器选择部分已更新,\\n请从列表中重新选择您的调制解调器。\")\n</script>\n"; }
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false) {
$toggleDMRCheckboxCr = 'onclick="toggleDMRCheckbox()"';
$toggleDSTARCheckboxCr = 'onclick="toggleDSTARCheckbox()"';
$toggleYSFCheckboxCr = 'onclick="toggleYSFCheckbox()"';
$toggleP25CheckboxCr = 'onclick="toggleP25Checkbox()"';
$toggleNXDNCheckboxCr = 'onclick="toggleNXDNCheckbox()"';
$toggleM17CheckboxCr = 'onclick="toggleM17Checkbox()"';
$toggleYSF2DMRCheckboxCr = 'onclick="toggleYSF2DMRCheckbox()"';
$toggleYSF2NXDNCheckboxCr = 'onclick="toggleYSF2NXDNCheckbox()"';
$toggleYSF2P25CheckboxCr = 'onclick="toggleYSF2P25Checkbox()"';
$toggleDMR2YSFCheckboxCr = 'onclick="toggleDMR2YSFCheckbox()"';
$toggleDMR2NXDNCheckboxCr = 'onclick="toggleDMR2NXDNCheckbox()"';
$togglePOCSAGCheckboxCr = 'onclick="togglePOCSAGCheckbox()"';
$toggleAPRSGatewayCheckboxCr = 'onclick="toggleAPRSGatewayCheckbox()"';
$toggleDmrGatewayNet1EnCheckboxCr = 'onclick="toggleDmrGatewayNet1EnCheckbox()"';
$toggleDmrGatewayNet2EnCheckboxCr = 'onclick="toggleDmrGatewayNet2EnCheckbox()"';
$toggleDmrGatewayXlxEnCheckboxCr = 'onclick="toggleDmrGatewayXlxEnCheckbox()"';
$toggleDmrEmbeddedLCOnlyCr = 'onclick="toggleDmrEmbeddedLCOnly()"';
$toggleDmrDumpTADataCr = 'onclick="toggleDmrDumpTAData()"';
$toggleHostFilesYSFUpperCr = 'onclick="toggleHostFilesYSFUpper()"';
$toggleWiresXCommandPassthroughCr = 'onclick="toggleWiresXCommandPassthrough()"';
$toggleDstarTimeAnnounceCr = 'onclick="toggleDstarTimeAnnounce()"';
$toggleDstarDplusHostfilesCr = 'onclick="toggleDstarDplusHostfiles()"';
$toggleMobilegps_enableCr = 'onclick="toggleMobilegps_enable()"';
$toggleircddbEnabledCr = 'onclick="toggleircddbEnabled()"';
} else {
$toggleDMRCheckboxCr = "";
$toggleDSTARCheckboxCr = "";
$toggleYSFCheckboxCr = "";
$toggleP25CheckboxCr = "";
$toggleNXDNCheckboxCr = "";
$toggleM17CheckboxCr = "";
$toggleYSF2DMRCheckboxCr = "";
$toggleYSF2NXDNCheckboxCr = "";
$toggleYSF2P25CheckboxCr = "";
$toggleDMR2YSFCheckboxCr = "";
$toggleDMR2NXDNCheckboxCr = "";
$togglePOCSAGCheckboxCr = "";
$toggleAPRSGatewayCheckboxCr = "";
$toggleDmrGatewayNet1EnCheckboxCr = "";
$toggleDmrGatewayNet2EnCheckboxCr = "";
$toggleDmrGatewayXlxEnCheckboxCr = "";
$toggleDmrEmbeddedLCOnlyCr = "";
$toggleDmrDumpTADataCr = "";
$toggleHostFilesYSFUpperCr = "";
$toggleWiresXCommandPassthroughCr = "";
$toggleDstarTimeAnnounceCr = "";
$toggleDstarDplusHostfilesCr = "";
$toggleMobilegps_enableCr = "";
$toggleircddbEnabledCr = "";
}
?>
<form id="config" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<h2><?php echo $lang['control_software'];?></h2>
<div class="settings-card">
<div class="field-row">
<div class="field-label"><a class="tooltip2" href="#"><?php echo $lang['controller_software'];?>:<span><b>Radio Control Software</b>Choose the software used to control the DV Radio Module. Please note that DV Mega hardware will require a firmware upgrade.</span></a></div>
<?php
if (file_exists('/etc/dstar-radio.mmdvmhost')) {
echo " <div class=\"field-control\"><input type=\"radio\" name=\"controllerSoft\" value=\"DSTAR\" onclick=\"alert('After applying your Configuration Settings, you will need to powercycle your Pi.');\" />DStarRepeater <input type=\"radio\" name=\"controllerSoft\" value=\"MMDVM\" checked=\"checked\" />MMDVMHost (DV-Mega Minimum Firmware 3.07 Required)</div>\n";
}
elseif (file_exists('/etc/dstar-radio.dstarrepeater')) {
echo " <div class=\"field-control\"><input type=\"radio\" name=\"controllerSoft\" value=\"DSTAR\" checked=\"checked\" />DStarRepeater <input type=\"radio\" name=\"controllerSoft\" value=\"MMDVM\" onclick=\"alert('After applying your Configuration Settings, you will need to powercycle your Pi.');\" />MMDVMHost (DV-Mega Minimum Firmware 3.07 Required)</div>\n";
}
else { // Not set - default to MMDVMHost
echo " <div class=\"field-control\"><input type=\"radio\" name=\"controllerSoft\" value=\"DSTAR\" onclick=\"alert('After applying your Configuration Settings, you will need to powercycle your Pi.');\" />DStarRepeater <input type=\"radio\" name=\"controllerSoft\" value=\"MMDVM\" checked=\"checked\" />MMDVMHost (DV-Mega Minimum Firmware 3.07 Required)</div>\n";
}
?>
</div>
<div class="field-row">
<div class="field-label"><a class="tooltip2" href="#"><?php echo $lang['controller_mode'];?>:<span><b>TRX Mode</b>Choose the mode type Simplex node or Duplex repeater.</span></a></div>
<?php
if ($configmmdvm['Info']['RXFrequency'] === $configmmdvm['Info']['TXFrequency']) {
echo " <div class=\"field-control\"><input type=\"radio\" name=\"trxMode\" value=\"SIMPLEX\" checked=\"checked\" />Simplex Node <input type=\"radio\" name=\"trxMode\" value=\"DUPLEX\" />Duplex Repeater (or Half-Duplex on Hotspots)</div>\n";
}
else {
echo " <div class=\"field-control\"><input type=\"radio\" name=\"trxMode\" value=\"SIMPLEX\" />Simplex Node <input type=\"radio\" name=\"trxMode\" value=\"DUPLEX\" checked=\"checked\" />Duplex Repeater (or Half-Duplex on Hotspots)</div>\n";
}
?>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost')) { ?>
<input type="hidden" name="MMDVMModeDMR" value="OFF" />
<input type="hidden" name="MMDVMModeDSTAR" value="OFF" />
<input type="hidden" name="MMDVMModeFUSION" value="OFF" />
<input type="hidden" name="MMDVMModeP25" value="OFF" />
<input type="hidden" name="MMDVMModeNXDN" value="OFF" />
<input type="hidden" name="MMDVMModeM17" value="OFF" />
<input type="hidden" name="MMDVMModeYSF2DMR" value="OFF" />
<input type="hidden" name="MMDVMModeYSF2NXDN" value="OFF" />
<input type="hidden" name="MMDVMModeYSF2P25" value="OFF" />
<input type="hidden" name="MMDVMModeDMR2YSF" value="OFF" />
<input type="hidden" name="MMDVMModeDMR2NXDN" value="OFF" />
<input type="hidden" name="MMDVMModePOCSAG" value="OFF" />
<h2><?php echo $lang['mmdvmhost_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_mode'];?>:<span><b>DMR Mode</b>Turn on DMR Features</span></a></div>
<?php
if ( $configmmdvm['DMR']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMRCheckboxCr." /><label id=\"aria-toggle-dmr\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR Mode\" aria-checked=\"true\" onKeyPress=\"toggleDMRCheckbox()\" onclick=\"toggleDMRCheckbox()\" for=\"toggle-dmr\"><font style=\"font-size:0px\">DMR Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMRCheckboxCr." /><label id=\"aria-toggle-dmr\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR Mode\" aria-checked=\"false\" onKeyPress=\"toggleDMRCheckbox()\" onclick=\"toggleDMRCheckbox()\" for=\"toggle-dmr\"><font style=\"font-size:0px\">DMR Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="dmrRfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['DMR']['ModeHang'])) { echo $configmmdvm['DMR']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="dmrNetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['DMR Network']['ModeHang'])) { echo $configmmdvm['DMR Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['d-star_mode'];?>:<span><b>D-Star Mode</b>Turn on D-Star Features</span></a></div>
<?php
if ( $configmmdvm['D-Star']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dstar\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDSTAR\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDSTARCheckboxCr." /><label id=\"aria-toggle-dstar\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DStar Mode\" aria-checked=\"true\" onKeyPress=\"toggleDSTARCheckbox()\" onclick=\"toggleDSTARCheckbox()\" for=\"toggle-dstar\"><font style=\"font-size:0px\">DStar Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dstar\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDSTAR\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDSTARCheckboxCr." /><label id=\"aria-toggle-dstar\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DStar Mode\" aria-checked=\"false\" onKeyPress=\"toggleDSTARCheckbox()\" onclick=\"toggleDSTARCheckbox()\" for=\"toggle-dstar\"><font style=\"font-size:0px\">DStar Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="dstarRfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['D-Star']['ModeHang'])) { echo $configmmdvm['D-Star']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="dstarNetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['D-Star Network']['ModeHang'])) { echo $configmmdvm['D-Star Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['m17_mode'];?>:<span><b>M17 Mode</b>Turn on M17 Features</span></a></div>
<?php
if ( $configmmdvm['M17']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-m17\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeM17\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleM17CheckboxCr." /><label id=\"aria-toggle-m17\" role=\"checkbox\" tabindex=\"0\" aria-label=\"M 17 Mode\" aria-checked=\"true\" onKeyPress=\"toggleM17Checkbox()\" onclick=\"toggleM17Checkbox()\" for=\"toggle-m17\"><font style=\"font-size:0px\">M 17 Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-m17\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeM17\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleM17CheckboxCr." /><label id=\"aria-toggle-m17\" role=\"checkbox\" tabindex=\"0\" aria-label=\"M 17 Mode\" aria-checked=\"false\" onKeyPress=\"toggleM17Checkbox()\" onclick=\"toggleM17Checkbox()\" for=\"toggle-m17\"><font style=\"font-size:0px\">M 17 Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="m17RfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['M17']['ModeHang'])) { echo $configmmdvm['M17']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="m17NetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['M17 Network']['ModeHang'])) { echo $configmmdvm['M17 Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['ysf_mode'];?>:<span><b>YSF Mode</b>Turn on YSF Features</span></a></div>
<?php
if ( $configmmdvm['System Fusion']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeFUSION\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSFCheckboxCr." /><label id=\"aria-toggle-ysf\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F Mode\" aria-checked=\"true\" onKeyPress=\"toggleYSFCheckbox()\" onclick=\"toggleYSFCheckbox()\" for=\"toggle-ysf\"><font style=\"font-size:0px\">Y S F Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeFUSION\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSFCheckboxCr." /><label id=\"aria-toggle-ysf\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F Mode\" aria-checked=\"false\" onKeyPress=\"toggleYSFCheckbox()\" onclick=\"toggleYSFCheckbox()\" for=\"toggle-ysf\"><font style=\"font-size:0px\">Y S F Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="ysfRfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['System Fusion']['ModeHang'])) { echo $configmmdvm['System Fusion']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="ysfNetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['System Fusion Network']['ModeHang'])) { echo $configmmdvm['System Fusion Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['p25_mode'];?>:<span><b>P25 Mode</b>Turn on P25 Features</span></a></div>
<?php
if ( $configmmdvm['P25']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-p25\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeP25\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleP25CheckboxCr." /><label id=\"aria-toggle-p25\" role=\"checkbox\" tabindex=\"0\" aria-label=\"P 25 Mode\" aria-checked=\"true\" onKeyPress=\"toggleP25Checkbox()\" onclick=\"toggleP25Checkbox()\" for=\"toggle-p25\"><font style=\"font-size:0px\">P 25 Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-p25\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeP25\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleP25CheckboxCr." /><label id=\"aria-toggle-p25\" role=\"checkbox\" tabindex=\"0\" aria-label=\"P 25 Mode\" aria-checked=\"false\" onKeyPress=\"toggleP25Checkbox()\" onclick=\"toggleP25Checkbox()\" for=\"toggle-p25\"><font style=\"font-size:0px\">P 25 Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="p25RfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['P25']['ModeHang'])) { echo $configmmdvm['P25']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="p25NetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['P25 Network']['ModeHang'])) { echo $configmmdvm['P25 Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['nxdn_mode'];?>:<span><b>NXDN Mode</b>Turn on NXDN Features</span></a></div>
<?php
if ( $configmmdvm['NXDN']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeNXDN\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleNXDNCheckboxCr." /><label id=\"aria-toggle-nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"NXDN Mode\" aria-checked=\"true\" onKeyPress=\"toggleNXDNCheckbox()\" onclick=\"toggleNXDNCheckbox()\" for=\"toggle-nxdn\"><font style=\"font-size:0px\">NXDN Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeNXDN\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleNXDNCheckboxCr." /><label id=\"aria-toggle-nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"NXDN Mode\" aria-checked=\"false\" onKeyPress=\"toggleNXDNCheckbox()\" onclick=\"toggleNXDNCheckbox()\" for=\"toggle-nxdn\"><font style=\"font-size:0px\">NXDN Mode</font></label></div></div>\n";
}
?>
<div>RF Hangtime: <input type="text" name="nxdnRfHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['NXDN']['ModeHang'])) { echo $configmmdvm['NXDN']['ModeHang']; } else { echo "20"; } ?>" />
Net Hangtime: <input type="text" name="nxdnNetHangTime" size="7" maxlength="3" value="<?php if (isset($configmmdvm['NXDN Network']['ModeHang'])) { echo $configmmdvm['NXDN Network']['ModeHang']; } else { echo "20"; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">YSF2DMR:<span><b>YSF2DMR Mode</b>Turn on YSF2DMR Features</span></a></div>
<?php
if ( $configysf2dmr['Enabled']['Enabled'] == 1 ) {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2dmr\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2DMR\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2DMRCheckboxCr." /><label id=\"aria-toggle-ysf2dmr\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 DMR Mode\" aria-checked=\"true\" onKeyPress=\"toggleYSF2DMRCheckbox()\" onclick=\"toggleYSF2DMRCheckbox()\" for=\"toggle-ysf2dmr\"><font style=\"font-size:0px\">Y S F 2 DMR Mode</font></label></div></div>\n";
}
else {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2dmr\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2DMR\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2DMRCheckboxCr." /><label id=\"aria-toggle-ysf2dmr\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 DMR Mode\" aria-checked=\"false\" onKeyPress=\"toggleYSF2DMRCheckbox()\" onclick=\"toggleYSF2DMRCheckbox()\" for=\"toggle-ysf2dmr\"><font style=\"font-size:0px\">Y S F 2 DMR Mode</font></label></div></div>\n";
}
?>
</div>
<?php if (file_exists('/etc/ysf2nxdn')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">YSF2NXDN:<span><b>YSF2NXDN Mode</b>Turn on YSF2NXDN Features</span></a></div>
<?php
if ( $configysf2nxdn['Enabled']['Enabled'] == 1 ) {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2NXDN\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2NXDNCheckboxCr." /><label id=\"aria-toggle-ysf2nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 NXDN Mode\" aria-checked=\"true\" onKeyPress=\"toggleYSF2NXDNCheckbox()\" onclick=\"toggleYSF2NXDNCheckbox()\" for=\"toggle-ysf2nxdn\"><font style=\"font-size:0px\">Y S F 2 NXDN Mode</font></label></div></div>\n";
}
else {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2NXDN\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2NXDNCheckboxCr." /><label id=\"aria-toggle-ysf2nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 NXDN Mode\" aria-checked=\"false\" onKeyPress=\"toggleYSF2NXDNCheckbox()\" onclick=\"toggleYSF2NXDNCheckbox()\" for=\"toggle-ysf2nxdn\"><font style=\"font-size:0px\">Y S F 2 NXDN Mode</font></label></div></div>\n";
}
?>
</div>
<?php } ?>
<?php if (file_exists('/etc/ysf2p25')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">YSF2P25:<span><b>YSF2P25 Mode</b>Turn on YSF2P25 Features</span></a></div>
<?php
if ( $configysf2p25['Enabled']['Enabled'] == 1 ) {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2p25\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2P25\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2P25CheckboxCr." /><label id=\"aria-toggle-ysf2p25\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 P 25 Mode\" aria-checked=\"true\" onKeyPress=\"toggleYSF2P25Checkbox()\" onclick=\"toggleYSF2P25Checkbox()\" for=\"toggle-ysf2p25\"><font style=\"font-size:0px\">Y S F 2 P 25 Mode</font></label></div></div>\n";
}
else {
echo "<div colspan=\"2\" align=\"left\"><div class=\"switch\"><input id=\"toggle-ysf2p25\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeYSF2P25\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleYSF2P25CheckboxCr." /><label id=\"aria-toggle-ysf2p25\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Y S F 2 P 25 Mode\" aria-checked=\"false\" onKeyPress=\"toggleYSF2P25Checkbox()\" onclick=\"toggleYSF2P25Checkbox()\" for=\"toggle-ysf2p25\"><font style=\"font-size:0px\">Y S F 2 P 25 Mode</font></label></div></div>\n";
}
?>
</div>
<?php } ?>
<?php if (file_exists('/etc/dmr2ysf')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR2YSF:<span><b>DMR2YSF Mode</b>Turn on DMR2YSF Features</span></a></div>
<?php
if ( $configdmr2ysf['Enabled']['Enabled'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr2ysf\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR2YSF\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMR2YSFCheckboxCr." /><label id=\"aria-toggle-dmr2ysf\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR 2 Y S F Mode\" aria-checked=\"true\" onKeyPress=\"toggleDMR2YSFCheckbox()\" onclick=\"toggleDMR2YSFCheckbox()\" for=\"toggle-dmr2ysf\"><font style=\"font-size:0px\">DMR 2 Y S F Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr2ysf\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR2YSF\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMR2YSFCheckboxCr." /><label id=\"aria-toggle-dmr2ysf\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR 2 Y S F Mode\" aria-checked=\"false\" onKeyPress=\"toggleDMR2YSFCheckbox()\" onclick=\"toggleDMR2YSFCheckbox()\" for=\"toggle-dmr2ysf\"><font style=\"font-size:0px\">DMR 2 Y S F Mode</font></label></div></div>\n";
}
?>
<div>Uses 7 prefix on DMRGateway</div>
</div>
<?php } ?>
<?php if (file_exists('/etc/dmr2nxdn')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR2NXDN:<span><b>DMR2NXDN Mode</b>Turn on DMR2NXDN Features</span></a></div>
<?php
if ( $configdmr2nxdn['Enabled']['Enabled'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr2nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR2NXDN\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMR2NXDNCheckboxCr." /><label id=\"aria-toggle-dmr2nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR 2 NXDN Mode\" aria-checked=\"true\" onKeyPress=\"toggleDMR2NXDNCheckbox()\" onclick=\"toggleDMR2NXDNCheckbox()\" for=\"toggle-dmr2nxdn\"><font style=\"font-size:0px\">DMR 2 NXDN Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dmr2nxdn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModeDMR2NXDN\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDMR2NXDNCheckboxCr." /><label id=\"aria-toggle-dmr2nxdn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR 2 NXDN Mode\" aria-checked=\"false\" onKeyPress=\"toggleDMR2NXDNCheckbox()\" onclick=\"toggleDMR2NXDNCheckbox()\" for=\"toggle-dmr2nxdn\"><font style=\"font-size:0px\">DMR 2 NXDN Mode</font></label></div></div>\n";
}
?>
<div>Uses 7 prefix on DMRGateway</div>
</div>
<?php } ?>
<?php if (file_exists('/etc/dapnetgateway')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG:<span><b>POCSAG Mode</b>Turn on POCSAG Features</span></a></div>
<?php
if ( $configmmdvm['POCSAG']['Enable'] == 1 ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-pocsag\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModePOCSAG\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$togglePOCSAGCheckboxCr." /><label id=\"aria-toggle-pocsag\" role=\"checkbox\" tabindex=\"0\" aria-label=\"POCSAG Mode\" aria-checked=\"true\" onKeyPress=\"togglePOCSAGCheckbox()\" onclick=\"togglePOCSAGCheckbox()\" for=\"toggle-pocsag\"><font style=\"font-size:0px\">POCSAG Mode</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-pocsag\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"MMDVMModePOCSAG\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$togglePOCSAGCheckboxCr." /><label id=\"aria-toggle-pocsag\" role=\"checkbox\" tabindex=\"0\" aria-label=\"POCSAG Mode\" aria-checked=\"false\" onKeyPress=\"togglePOCSAGCheckbox()\" onclick=\"togglePOCSAGCheckbox()\" for=\"toggle-pocsag\"><font style=\"font-size:0px\">POCSAG Mode</font></label></div></div>\n";
}
?>
<div>POCSAG Paging Features</div>
</div>
<?php } ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['mmdvm_display'];?>:<span><b>Display Type</b>Choose your display type, if you have one.</span></a></div>
<div align="left" colspan="2"><select name="mmdvmDisplayType">
<option <?php if (($configmmdvm['General']['Display'] == "None") || ($configmmdvm['General']['Display'] == "") ) {echo 'selected="selected" ';}; ?>value="None">None</option>
<option <?php if (($configmmdvm['General']['Display'] == "OLED") && ($configmmdvm['OLED']['Type'] == "3")) {echo 'selected="selected" ';}; ?>value="OLED3">OLED Type 3</option>
<option <?php if (($configmmdvm['General']['Display'] == "OLED") && ($configmmdvm['OLED']['Type'] == "6")) {echo 'selected="selected" ';}; ?>value="OLED6">OLED Type 6</option>
<option <?php if ($configmmdvm['General']['Display'] == "Nextion") {echo 'selected="selected" ';}; ?>value="Nextion">Nextion</option>
<option <?php if ($configmmdvm['General']['Display'] == "HD44780") {echo 'selected="selected" ';}; ?>value="HD44780">HD44780</option>
<option <?php if ($configmmdvm['General']['Display'] == "TFT Serial") {echo 'selected="selected" ';}; ?>value="TFT Serial">TFT Serial</option>
<option <?php if ($configmmdvm['General']['Display'] == "LCDproc") {echo 'selected="selected" ';}; ?>value="LCDproc">LCDproc</option>
</select>
Port: <select name="mmdvmDisplayPort">
<?php
if (($configmmdvm['General']['Display'] == "None") || ($configmmdvm['General']['Display'] == "")) {
echo ' <option selected="selected" value="None">None</option>'."\n";
} else {
echo ' <option value="None">None</option>'."\n";
}
if (isset($configmmdvm['Nextion']['Port'])) {
if ($configmmdvm['Nextion']['Port'] == "modem") {
echo ' <option selected="selected" value="modem">modem</option>'."\n";
} else {
echo ' <option value="modem">modem</option>'."\n";
}
if ( ($configmmdvm['Nextion']['Port'] == "None") || ($configmmdvm['Nextion']['Port'] == "" )) { } else {
$currentPort = str_replace($configmmdvm['Nextion']['Port'], "/dev/", "");
echo ' <option selected="selected" value="'.$currentPort.'">'.$configmmdvm['Nextion']['Port'].'</option>'."\n";
}
}
exec('ls /dev/ | egrep -h "ttyA|ttyUSB"', $availablePorts);
foreach($availablePorts as $port) {
echo " <option value=\"$port\">/dev/$port</option>\n";
}
?>
<?php if (file_exists('/dev/ttyS2')) { ?>
<option <?php if ($configmmdvm['Nextion']['Port'] == "/dev/ttyS2") {echo 'selected="selected" ';}; ?>value="ttyS2">/dev/ttyS2</option>
<?php } ?>
<?php if (file_exists('/dev/ttyNextionDriver')) { ?>
<option <?php if ($configmmdvm['Nextion']['Port'] == "/dev/ttyNextionDriver") {echo 'selected="selected" ';}; ?>value="ttyNextionDriver">/dev/ttyNextionDriver</option>
<?php } ?>
</select>
Nextion Layout: <select name="mmdvmNextionDisplayType">
<option <?php if ($configmmdvm['Nextion']['ScreenLayout'] == "0") {echo 'selected="selected" ';}; ?>value="G4KLX">G4KLX</option>
<option <?php if ($configmmdvm['Nextion']['ScreenLayout'] == "2") {echo 'selected="selected" ';}; ?>value="ON7LDSL2">ON7LDS L2</option>
<option <?php if ($configmmdvm['Nextion']['ScreenLayout'] == "3") {echo 'selected="selected" ';}; ?>value="ON7LDSL3">ON7LDS L3</option>
<option <?php if ($configmmdvm['Nextion']['ScreenLayout'] == "4") {echo 'selected="selected" ';}; ?>value="ON7LDSL3HS">ON7LDS L3 HS</option>
</select>
</div></div>
<!--<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['mode_hangtime'];?>:<span><b>Net Hang Time</b>Stay in the last mode for this many seconds</span></a></div>
<div align="left" colspan="2"><input type="text" name="hangTime" size="13" maxlength="3" value="<?php echo $configmmdvm['General']['RFModeHang']; ?>" /> in seconds (90 secs works well for Multi-Mode)</div>
</div>-->
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<h2><?php echo $lang['general_config'];?></h2>
<input type="hidden" name="APRSGatewayEnable" value="OFF" />
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">Hostname:<span><b>System Hostname</b>This is the system hostname, used for access to the dashboard etc.</span></a></div>
<div align="left" colspan="2"><input type="text" name="confHostame" size="13" maxlength="15" value="<?php echo exec('cat /etc/hostname'); ?>" />Do not add suffixes such as .local</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['node_call'];?>:<span><b>Gateway Callsign</b>This is your licenced callsign for use on this gateway, do not append the "G"</span></a></div>
<div align="left" colspan="2"><input type="text" id="confCallsign" name="confCallsign" size="13" maxlength="7" value="<?php echo $configs['gatewayCallsign'] ?>" onblur="lookupCallsignRegion();" /></div>
</div>
<script type="text/javascript">
var provinceCapitalMap = {
"北京市":"北京", "上海市":"上海", "天津市":"天津", "重庆市":"重庆",
"河北省":"石家庄", "山西省":"太原", "内蒙古自治区":"呼和浩特", "辽宁省":"沈阳", "吉林省":"长春", "黑龙江省":"哈尔滨",
"江苏省":"南京", "浙江省":"杭州", "安徽省":"合肥", "福建省":"福州", "江西省":"南昌", "山东省":"济南", "河南省":"郑州", "湖北省":"武汉", "湖南省":"长沙",
"广东省":"广州", "广西壮族自治区":"南宁", "海南省":"海口", "四川省":"成都", "贵州省":"贵阳", "云南省":"昆明", "西藏自治区":"拉萨",
"陕西省":"西安", "甘肃省":"兰州", "青海省":"西宁", "宁夏回族自治区":"银川", "新疆维吾尔自治区":"乌鲁木齐"
};
function lookupCallsignRegion() {
var callsign = document.getElementById("confCallsign").value.trim();
if (callsign === "") { return; }
var xhr = new XMLHttpRequest();
xhr.open("GET", "callsign_lookup.php?callsign=" + encodeURIComponent(callsign), true);
xhr.onload = function() {
if (xhr.status !== 200) { return; }
var data;
try { data = JSON.parse(xhr.responseText); } catch (e) { return; }
if (!data.found) { return; }
var citySelect = document.getElementById("confDesc1");
var countrySelect = document.getElementById("confDesc2");
var capital = provinceCapitalMap[data.state];
if (capital && citySelect) {
for (var i = 0; i < citySelect.options.length; i++) {
if (citySelect.options[i].value === capital) { citySelect.selectedIndex = i; break; }
}
}
if (data.country === "China" && countrySelect) {
for (var j = 0; j < countrySelect.options.length; j++) {
if (countrySelect.options[j].value === "中国") { countrySelect.selectedIndex = j; break; }
}
}
};
xhr.send();
}
</script>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && (($configmmdvm['DMR']['Enable'] == 1) || ($configmmdvm['P25']['Enable'] == 1 ) || ($configmmdvm['System Fusion']['Enable'] == 1 ))) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_id'];?>:<span><b>CCS7/DMR ID</b>Enter your CCS7 / DMR ID here</span></a></div>
<div align="left" colspan="2"><input type="text" name="dmrId" size="13" maxlength="9" value="<?php if (isset($configmmdvm['General']['Id'])) { echo $configmmdvm['General']['Id']; } else { echo $configmmdvm['DMR']['Id']; } ?>" /></div>
</div><?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && ($configmmdvm['NXDN']['Enable'] == 1)) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">NXDN ID:<span><b>NXDN ID</b>Enter your NXDN ID here</span></a></div>
<div align="left" colspan="2"><input type="text" name="nxdnId" size="13" maxlength="5" value="<?php if (isset($configmmdvm['NXDN']['Id'])) { echo $configmmdvm['NXDN']['Id']; } ?>" /></div>
</div><?php } ?>
<?php if ($configmmdvm['Info']['TXFrequency'] === $configmmdvm['Info']['RXFrequency']) {
echo " <div class=\"field-row\">\n";
echo " <div align=\"left\"><a class=\"tooltip2\" href=\"#\">".$lang['radio_freq'].":<span><b>Radio Frequency</b>This is the Frequency your<br />CDN is on</span></a></div>\n";
echo " <div align=\"left\" colspan=\"2\"><input type=\"text\" id=\"confFREQ\" onkeyup=\"checkFrequency(); return false;\" name=\"confFREQ\" size=\"13\" maxlength=\"12\" value=\"".number_format(round(($configmmdvm['Info']['RXFrequency']/1000000),6), 6, '.', '')."\" />MHz</div>\n";
echo " </div>\n";
}
else {
echo " <div class=\"field-row\">\n";
echo " <div align=\"left\"><a class=\"tooltip2\" href=\"#\">".$lang['radio_freq']." RX:<span><b>Radio Frequency</b>This is the Frequency your<br />repeater will listen on</span></a></div>\n";
echo " <div align=\"left\" colspan=\"2\"><input type=\"text\" id=\"confFREQrx\" onkeyup=\"checkFrequency(); return false;\" name=\"confFREQrx\" size=\"13\" maxlength=\"12\" value=\"".number_format(round(($configmmdvm['Info']['RXFrequency']/1000000),6), 6, '.', '')."\" />MHz</div>\n";
echo " </div>\n";
echo " <div class=\"field-row\">\n";
echo " <div align=\"left\"><a class=\"tooltip2\" href=\"#\">".$lang['radio_freq']." TX:<span><b>Radio Frequency</b>This is the Frequency your<br />repeater will transmit on</span></a></div>\n";
echo " <div align=\"left\" colspan=\"2\"><input type=\"text\" id=\"confFREQtx\" onkeyup=\"checkFrequency(); return false;\" name=\"confFREQtx\" size=\"13\" maxlength=\"12\" value=\"".number_format(round(($configmmdvm['Info']['TXFrequency']/1000000),6), 6, '.', '')."\" />MHz</div>\n";
echo " </div>\n";
}
?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['lattitude'];?>:<span><b>Gateway Latitude</b>This is the latitude where the gateway is located (positive number for North, negative number for South) - Set to 0 to hide your hotspot location</span></a></div>
<div align="left" colspan="2"><input type="text" id="confLatitude" name="confLatitude" size="13" maxlength="9" value="<?php echo $configs['latitude'] ?>" />degrees (positive value for North, negative for South)</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['longitude'];?>:<span><b>Gateway Longitude</b>This is the longitude where the gateway is located (positive number for East, negative number for West) - Set to 0 to hide your hotspot location</span></a></div>
<div align="left" colspan="2"><input type="text" id="confLongitude" name="confLongitude" size="13" maxlength="9" value="<?php echo $configs['longitude'] ?>" />degrees (positive value for East, negative for West)</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['town'];?>:<span><b>Gateway Town</b>The town where the gateway is located</span></a></div>
<div align="left" colspan="2"><select id="confDesc1" name="confDesc1">
<?php
$cityList = array("重庆","北京","上海","天津","石家庄","太原","呼和浩特","沈阳","长春","哈尔滨","南京","杭州","合肥","福州","南昌","济南","郑州","武汉","长沙","广州","南宁","海口","成都","贵阳","昆明","拉萨","西安","兰州","西宁","银川","乌鲁木齐");
$cityCurrent = isset($configs['description1']) ? $configs['description1'] : '';
if (!in_array($cityCurrent, $cityList)) { $cityCurrent = "重庆"; }
foreach ($cityList as $cityOption) {
echo " <option".($cityOption == $cityCurrent ? " selected=\"selected\"" : "")." value=\"".$cityOption."\">".$cityOption."</option>\n";
}
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['country'];?>:<span><b>Gateway Country</b>The country where the gateway is located</span></a></div>
<div align="left" colspan="2"><select id="confDesc2" name="confDesc2">
<?php
$countryList = array("中国","中国香港","中国澳门","中国台湾");
$countryCurrent = isset($configs['description2']) ? $configs['description2'] : '';
if (!in_array($countryCurrent, $countryList)) { $countryCurrent = "中国"; }
foreach ($countryList as $countryOption) {
echo " <option".($countryOption == $countryCurrent ? " selected=\"selected\"" : "")." value=\"".$countryOption."\">".$countryOption."</option>\n";
}
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['url'];?>:<span><b>Gateway URL</b>The URL used to access this dashboard</span></a></div>
<div align="left"><input type="text" name="confURL" size="30" maxlength="30" value="<?php echo $configs['url'] ?>" /></div>
<div width="300">
<input type="radio" name="urlAuto" value="auto"<?php if (strpos($configs['url'], 'www.qrz.com/db/'.$configmmdvm['General']['Callsign']) !== FALSE) {echo ' checked="checked"';} ?> />Auto
<input type="radio" name="urlAuto" value="man"<?php if (strpos($configs['url'], 'www.qrz.com/db/'.$configmmdvm['General']['Callsign']) == FALSE) {echo ' checked="checked"';} ?> />Manual</div>
</div>
<?php if ( (file_exists('/etc/dstar-radio.dstarrepeater')) || (file_exists('/etc/dstar-radio.mmdvmhost')) ) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['radio_type'];?>:<span><b>Radio/Modem</b>What kind of radio or modem hardware do you have?</span></a></div>
<div align="left" colspan="2"><select name="confHardware">
<option<?php if (!isset($configModem['Modem']['Hardware']) || !$configModem['Modem']['Hardware']) { echo ' selected="selected"';}?> value="">--</option>
<?php if (file_exists('/dev/icom_ta')) { ?>
<option<?php if ($configModem['Modem']['Hardware'] === 'icomTerminalAuto') { echo ' selected="selected"';}?> value="icomTerminalAuto">Icom Radio in Terminal Mode (DStarRepeater Only)</option>
<?php } ?>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'idrp2c') { echo ' selected="selected"';}?> value="idrp2c">Icom Repeater Controller ID-RP2C (DStarRepeater Only)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmpis') { echo ' selected="selected"';}?> value="dvmpis">DV-Mega Raspberry Pi Hat (GPIO) - Single Band (70cm)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmpid') { echo ' selected="selected"';}?> value="dvmpid">DV-Mega Raspberry Pi Hat (GPIO) - Dual Band</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmuadu') { echo ' selected="selected"';}?> value="dvmuadu">DV-Mega on Arduino (USB - /dev/ttyUSB0) - Dual Band</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmuada') { echo ' selected="selected"';}?> value="dvmuada">DV-Mega on Arduino (USB - /dev/ttyACM0) - Dual Band</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmuagmsku') { echo ' selected="selected"';}?> value="dvmuagmsku">DV-Mega on Arduino (USB - /dev/ttyUSB0) - GMSK Modem</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmuagmska') { echo ' selected="selected"';}?> value="dvmuagmska">DV-Mega on Arduino (USB - /dev/ttyACM0) - GMSK Modem</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmbss') { echo ' selected="selected"';}?> value="dvmbss">DV-Mega on Bluestack (USB) - Single Band (70cm)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmbsd') { echo ' selected="selected"';}?> value="dvmbsd">DV-Mega on Bluestack (USB) - Dual Band</option>
<?php if (file_exists('/dev/ttyS2')) { ?>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmpicast') { echo ' selected="selected"';}?> value="dvmpicast">DV-Mega Cast Base Radio (Main Unit)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmpicasths') { echo ' selected="selected"';}?> value="dvmpicasths">DV-Mega Cast Hotspot - Single Band (70cm)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvmpicasthd') { echo ' selected="selected"';}?> value="dvmpicasthd">DV-Mega Cast Hotspot - Dual Band (2m/70cm)</option>
<?php } ?>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'gmsk_modem') { echo ' selected="selected"';}?> value="gmsk_modem">GMSK Modem (USB DStarRepeater Only)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvrptr1') { echo ' selected="selected"';}?> value="dvrptr1">DV-RPTR V1 (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvrptr2') { echo ' selected="selected"';}?> value="dvrptr2">DV-RPTR V2 (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvrptr3') { echo ' selected="selected"';}?> value="dvrptr3">DV-RPTR V3 (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'dvap') { echo ' selected="selected"';}?> value="dvap">DVAP (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zum') { echo ' selected="selected"';}?> value="zum">MMDVM / MMDVM_HS / Teensy / ZUM (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'stm32dvm') { echo ' selected="selected"';}?> value="stm32dvm">STM32-DVM / MMDVM_HS - Raspberry Pi Hat (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'stm32usb') { echo ' selected="selected"';}?> value="stm32usb">STM32-DVM (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumspotlibre') { echo ' selected="selected"';}?> value="zumspotlibre">ZUMspot - Libre (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumspotusb') { echo ' selected="selected"';}?> value="zumspotusb">ZUMspot - USB Stick</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumspotgpio') { echo ' selected="selected"';}?> value="zumspotgpio">ZUMspot - Single Band Raspberry Pi Hat (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumspotdualgpio') { echo ' selected="selected"';}?> value="zumspotdualgpio">ZUMspot - Dual Band Raspberry Pi Hat (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumspotduplexgpio') { echo ' selected="selected"';}?> value="zumspotduplexgpio">ZUMspot - Duplex Raspberry Pi Hat (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumradiopigpio') { echo ' selected="selected"';}?> value="zumradiopigpio">ZUM Radio-MMDVM for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'zumradiopiusb') { echo ' selected="selected"';}?> value="zumradiopiusb">ZUM Radio-MMDVM-Nucleo (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mnnano-spot') { echo ' selected="selected"';}?> value="mnnano-spot">MicroNode Nano-Spot (Built In)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mnnano-teensy') { echo ' selected="selected"';}?> value="mnnano-teensy">MicroNode Teensy (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'f4mgpio') { echo ' selected="selected"';}?> value="f4mgpio">MMDVM F4M-GPIO (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'f4mf7m') { echo ' selected="selected"';}?> value="f4mf7m">MMDVM F4M/F7M (F0DEI) for USB</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmhsdualbandgpio') { echo ' selected="selected"';}?> value="mmdvmhsdualbandgpio">MMDVM_HS_Dual_Band for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmhshat') { echo ' selected="selected"';}?> value="mmdvmhshat">MMDVM_HS_Hat (DB9MAT &amp; DF2ET) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmhsdualhatgpio') { echo ' selected="selected"';}?> value="mmdvmhsdualhatgpio">MMDVM_HS_Dual_Hat (DB9MAT, DF2ET &amp; DO7EN) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmhsdualhatusb') { echo ' selected="selected"';}?> value="mmdvmhsdualhatusb">MMDVM_HS_Dual_Hat (DB9MAT, DF2ET &amp; DO7EN) for Pi (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmhshatambe') { echo ' selected="selected"';}?> value="mmdvmhshatambe">MMDVM_HS_AMBE (D2RG HS_AMBE) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmrpthat') { echo ' selected="selected"';}?> value="mmdvmrpthat">MMDVM_RPT_Hat (DB9MAT, DF2ET &amp; F0DEI) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmmdohat') { echo ' selected="selected"';}?> value="mmdvmmdohat">MMDVM_HS_MDO Hat (BG3MDO) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmvyehat') { echo ' selected="selected"';}?> value="mmdvmvyehat">MMDVM_HS_NPi Hat (VR2VYE) for Nano Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'mmdvmvyehatdual') { echo ' selected="selected"';}?> value="mmdvmvyehatdual">MMDVM_HS_Hat_Dual Hat (VR2VYE) for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'genesyshat') { echo ' selected="selected"';}?> value="genesyshat">Genesis - HHDVM_HS_Hat for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'genesysdualhat') { echo ' selected="selected"';}?> value="genesysdualhat">Genesis Dual - HHDVM_HS_Hat_Dual for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'lshshatgpio') { echo ' selected="selected"';}?> value="lshshatgpio">LoneStar - MMDVM_HS_Hat for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'lshsdualhatgpio') { echo ' selected="selected"';}?> value="lshsdualhatgpio">LoneStar - MMDVM_HS_Dual_Hat for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'lsusb') { echo ' selected="selected"';}?> value="lsusb">LoneStar - USB Stick</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'sbhsdualbandgpio') { echo ' selected="selected"';}?> value="sbhsdualbandgpio">SkyBridge - MMDVM_HS_Dual_Band for Pi (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'nanodv') { echo ' selected="selected"';}?> value="nanodv">MMDVM_NANO_DV (BG4TGO) for NanoPi AIR (GPIO)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'nanodvusb') { echo ' selected="selected"';}?> value="nanodvusb">MMDVM_NANO_DV (BG4TGO) for NanoPi AIR (USB)</option>
<option<?php if (isset($configModem['Modem']['Hardware']) && $configModem['Modem']['Hardware'] === 'opengd77') { echo ' selected="selected"';}?> value="opengd77">OpenGD77 DMR hotspot (USB)</option>
</select></div>
</div>
<?php } ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['node_type'];?>:<span><b>Node Lock</b>Set the public/private node type. &quot;Private&quot; limits access to your system to your ID/Callsign only, this may be a licence requirement for your country and helps prevent network loops.</span></a></div>
<div align="left" colspan="2">
<input type="radio" name="nodeMode" value="prv"<?php if ($configmmdvm['DMR']['SelfOnly'] == 1) {echo ' checked="checked"';} ?> />Private
<input type="radio" name="nodeMode" value="pub"<?php if ($configmmdvm['DMR']['SelfOnly'] == 0) {echo ' checked="checked"';} ?> />Public</div>
</div>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configmmdvm['DMR']['Enable'] == 1 && $configmmdvm['DMR']['SelfOnly'] == 0) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR Access List:<span><b>DMR IDs</b>Set the DMR IDs here that should have access to your hotspot, expected comma seperated list.</span></a></div>
<div align="left" colspan="2"><input type="text" name="confDMRWhiteList" size="30" maxlength="50" value="<?php if (isset($configmmdvm['DMR']['WhiteList'])) { echo $configmmdvm['DMR']['WhiteList']; } ?>" /></div>
</div>
<?php } ?>
<?php if (file_exists('/etc/aprsgateway')) {
echo "<div class=\"field-row\">\n";
echo "<div align=\"left\"><a class=\"tooltip2\" href=\"#\">".$lang['aprs_host']." Enable:<span><b>APRS Host Enable</b>Enabling this feature will make your location public.</span></a></div>\n";
if ( $configaprsgw['Enabled']['Enabled'] == 1 ) {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-aprsgateway\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"APRSGatewayEnable\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleAPRSGatewayCheckboxCr." /><label id=\"aria-toggle-aprsgateway\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable APRS Position Reporting\" aria-checked=\"true\" onKeyPress=\"toggleAPRSGatewayCheckbox()\" onclick=\"toggleAPRSGatewayCheckbox()\" for=\"toggle-aprsgateway\"><font style=\"font-size:0px\">Enable APRS Position Reporting</font></label></div></div>\n";
} else {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-aprsgateway\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"APRSGatewayEnable\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleAPRSGatewayCheckboxCr." /><label id=\"aria-toggle-aprsgateway\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable APRS Position Reporting\" aria-checked=\"false\" onKeyPress=\"toggleAPRSGatewayCheckbox()\" onclick=\"toggleAPRSGatewayCheckbox()\" for=\"toggle-aprsgateway\"><font style=\"font-size:0px\">Enable APRS Position Reporting</font></label></div></div>\n";
}
} ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['aprs_host'];?>:<span><b>APRS Host</b>Set your prefered APRS host here, or pick "自定义" to type your own server + port.</span></a></div>
<div colspan="2" style="text-align: left;">
<select name="selectedAPRSHost" onchange="document.getElementById('customAPRSFields').style.display = (this.value == 'custom') ? 'inline' : 'none';">
<?php
$testAPSRHost = $configs['aprsHostname'];
$aprsHostIsCustom = true;
$aprsHostFile = fopen("/usr/local/etc/APRSHosts.txt", "r");
while (!feof($aprsHostFile)) {
$aprsHostFileLine = fgets($aprsHostFile);
$aprsHost = preg_split('/:/', $aprsHostFileLine);
if ((strpos($aprsHost[0], ';') === FALSE ) && ($aprsHost[0] != '')) {
if ($testAPSRHost == $aprsHost[0]) { echo " <option value=\"$aprsHost[0]\" selected=\"selected\">$aprsHost[0]</option>\n"; $aprsHostIsCustom = false; }
else { echo " <option value=\"$aprsHost[0]\">$aprsHost[0]</option>\n"; }
}
}
fclose($aprsHostFile);
echo " <option value=\"custom\"".($aprsHostIsCustom ? " selected=\"selected\"" : "").">自定义 (Custom)</option>\n";
?>
</select>
<span id="customAPRSFields" style="display:<?php echo $aprsHostIsCustom ? 'inline' : 'none'; ?>;">
<input type="text" name="customAPRSHost" placeholder="server.example.com" size="22" maxlength="64" value="<?php echo $aprsHostIsCustom ? htmlspecialchars(trim($testAPSRHost), ENT_QUOTES, 'UTF-8') : ''; ?>" />
:
<input type="text" name="customAPRSPort" placeholder="14580" size="6" maxlength="5" value="<?php echo htmlspecialchars(trim(isset($configs['aprsPort']) ? $configs['aprsPort'] : '14580'), ENT_QUOTES, 'UTF-8'); ?>" />
</span>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['timezone'];?>:<span><b>System TimeZone</b>Set the system timezone</span></a></div>
<div style="text-align: left;" colspan="2"><select name="systemTimezone">
<?php
exec('timedatectl list-timezones', $tzList);
if (!in_array("UTC", $tzList)) { array_push($tzList, "UTC"); }
exec('cat /etc/timezone', $tzCurrent);
foreach ($tzList as $timeZone) {
if ($timeZone == $tzCurrent[0]) { echo " <option selected=\"selected\" value=\"".$timeZone."\">".$timeZone."</option>\n"; }
else { echo " <option value=\"".$timeZone."\">".$timeZone."</option>\n"; }
}
?>
</select></div>
</div>
<?php
$lang_dir = './lang';
if (is_dir($lang_dir)) {
echo ' <div class="field-row">'."\n";
echo ' <div align="left"><a class="tooltip2" href="#">'.$lang['dash_lang'].':<span><b>Dashboard Language</b>Set the language for the dashboard.</span></a></div>'."\n";
echo ' <div align="left" colspan="2"><select name="dashboardLanguage">'."\n";
if ($dh = opendir($lang_dir)) {
while ($files[] = readdir($dh))
sort($files); // Add sorting for the Language(s)
foreach ($files as $file){
if (($file != 'index.php') && ($file != '.') && ($file != '..') && ($file != '') && (substr($file, 0, 7) == 'chinese')) {
$file = substr($file, 0, -4);
if ($file == $pistarLanguage) { echo " <option selected=\"selected\" value=\"".$file."\">".$file."</option>\n"; }
else { echo " <option value=\"".$file."\">".$file."</option>\n"; }
}
}
closedir($dh);
}
echo ' </select></div></div>'."\n";
}
?>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configmmdvm['DMR']['Enable'] == 1) {
$dmrMasterFile = fopen("/usr/local/etc/DMR_Hosts.txt", "r"); ?>
<h2><?php echo $lang['dmr_config'];?></h2>
<input type="hidden" name="dmrEmbeddedLCOnly" value="OFF" />
<input type="hidden" name="dmrDumpTAData" value="OFF" />
<input type="hidden" name="dmrGatewayXlxEn" value="OFF" />
<input type="hidden" name="dmrGatewayNet1En" value="OFF" />
<input type="hidden" name="dmrGatewayNet2En" value="OFF" />
<input type="hidden" name="dmrDMRnetJitterBufer" value="OFF" />
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_master'];?>:<span><b>DMR Master (MMDVMHost)</b>Set your prefered DMR master here</span></a></div>
<div style="text-align: left;"><select name="dmrMasterHost">
<?php
$testMMDVMdmrMaster = $configmmdvm['DMR Network']['Address'];
$testMMDVMdmrMasterPort = $configmmdvm['DMR Network']['Port'];
while (!feof($dmrMasterFile)) {
$dmrMasterLine = fgets($dmrMasterFile);
$dmrMasterHost = preg_split('/\s+/', $dmrMasterLine);
if ((strpos($dmrMasterHost[0], '#') === FALSE ) && (substr($dmrMasterHost[0], 0, 3) != "XLX") && ($dmrMasterHost[0] != '')) {
if (($testMMDVMdmrMaster == $dmrMasterHost[2]) && ($testMMDVMdmrMasterPort == $dmrMasterHost[4])) { echo " <option value=\"$dmrMasterHost[2],$dmrMasterHost[3],$dmrMasterHost[4],$dmrMasterHost[0]\" selected=\"selected\">$dmrMasterHost[0]</option>\n"; $dmrMasterNow = $dmrMasterHost[0]; }
else { echo " <option value=\"$dmrMasterHost[2],$dmrMasterHost[3],$dmrMasterHost[4],$dmrMasterHost[0]\">$dmrMasterHost[0]</option>\n"; }
}
}
fclose($dmrMasterFile);
?>
</select></div>
</div>
<?php if ($dmrMasterNow == "DMRGateway") { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['bm_master'];?>:<span><b>BrandMeister Master</b>Set your prefered DMR master here</span></a></div>
<div style="text-align: left;"><select name="dmrMasterHost1">
<?php
$dmrMasterFile1 = fopen("/usr/local/etc/DMR_Hosts.txt", "r");
$testMMDVMdmrMaster1 = $configdmrgateway['DMR Network 1']['Address'];
$testMMDVMdmrMaster1Port = $configdmrgateway['DMR Network 1']['Port'];
while (!feof($dmrMasterFile1)) {
$dmrMasterLine1 = fgets($dmrMasterFile1);
$dmrMasterHost1 = preg_split('/\s+/', $dmrMasterLine1);
if ((strpos($dmrMasterHost1[0], '#') === FALSE ) && (substr($dmrMasterHost1[0], 0, 2) == "BM") && ($dmrMasterHost1[0] != '')) {
if (($testMMDVMdmrMaster1 == $dmrMasterHost1[2]) && ($testMMDVMdmrMaster1Port == $dmrMasterHost1[4])) { echo " <option value=\"$dmrMasterHost1[2],$dmrMasterHost1[3],$dmrMasterHost1[4],$dmrMasterHost1[0]\" selected=\"selected\">$dmrMasterHost1[0]</option>\n"; }
else { echo " <option value=\"$dmrMasterHost1[2],$dmrMasterHost1[3],$dmrMasterHost1[4],$dmrMasterHost1[0]\">$dmrMasterHost1[0]</option>\n"; }
}
}
fclose($dmrMasterFile1);
?>
</select></div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">BM Hotspot Security:<span><b>BrandMeister Password</b>Override the Password for BrandMeister with your own custom password, make sure you already configured this using BM Self Care. Empty the field to use the default.</span></a></div>
<div align="left">
<input type="password" name="bmHSSecurity" size="30" maxlength="30" value="<?php if (isset($configModem['BrandMeister']['Password'])) {echo $configModem['BrandMeister']['Password'];} ?>"></input>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['bm_network'];?> ESSID:<span><b>BrandMeister Extended ID</b>This is the extended ID, to make your DMR ID 9 digits long</span></a></div>
<div align="left">
<?php
if (isset($configdmrgateway['DMR Network 1']['Id'])) {
if (strlen($configdmrgateway['DMR Network 1']['Id']) > strlen($configmmdvm['General']['Id'])) {
$brandMeisterESSID = substr($configdmrgateway['DMR Network 1']['Id'], -2);
} else {
$brandMeisterESSID = "None";
}
} else {
if (isset($configmmdvm['General']['Id'])) {
if (strlen($configmmdvm['General']['Id']) == 9) {
$brandMeisterESSID = substr($configmmdvm['General']['Id'], -2);
} else {
$brandMeisterESSID = "None";
}
} else {
$brandMeisterESSID = "None";
}
}
if (isset($configmmdvm['General']['Id'])) { if ($configmmdvm['General']['Id'] !== "1234567") { echo substr($configmmdvm['General']['Id'], 0, 7); } }
echo "<select name=\"bmExtendedId\">\n";
if ($brandMeisterESSID == "None") { echo " <option value=\"None\" selected=\"selected\">None</option>\n"; } else { echo " <option value=\"None\">None</option>\n"; }
for ($brandMeisterESSIDInput = 1; $brandMeisterESSIDInput <= 99; $brandMeisterESSIDInput++) {
$brandMeisterESSIDInput = str_pad($brandMeisterESSIDInput, 2, "0", STR_PAD_LEFT);
if ($brandMeisterESSID === $brandMeisterESSIDInput) {
echo " <option value=\"$brandMeisterESSIDInput\" selected=\"selected\">$brandMeisterESSIDInput</option>\n";
} else {
echo " <option value=\"$brandMeisterESSIDInput\">$brandMeisterESSIDInput</option>\n";
}
}
echo "</select>\n";
?>
</div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['bm_network'];?> Enable:<span><b>BrandMeister Network Enable</b>Enable or disable BrandMeister Network</span></a></div>
<div align="left">
<?php if ($configdmrgateway['DMR Network 1']['Enabled'] == 1) { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayNet1En\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayNet1En\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayNet1EnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayNet1En\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable BrandMeister DMR\" aria-checked=\"true\" onKeyPress=\"toggleDmrGatewayNet1EnCheckbox()\" onclick=\"toggleDmrGatewayNet1EnCheckbox()\" for=\"toggle-dmrGatewayNet1En\"><font style=\"font-size:0px\">Enable Brandmeister DMR</font></label></div>\n"; }
else { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayNet1En\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayNet1En\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayNet1EnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayNet1En\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable BrandMeister DMR\" aria-checked=\"false\" onKeyPress=\"toggleDmrGatewayNet1EnCheckbox()\" onclick=\"toggleDmrGatewayNet1EnCheckbox()\" for=\"toggle-dmrGatewayNet1En\"><font style=\"font-size:0px\">Enable Brandmeister DMR</font></label></div>\n"; } ?>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['bm_network'];?>:<span><b>BrandMeister Dashboards</b>Direct links to your BrandMeister Dashboards</span></a></div>
<div>
<a href="https://brandmeister.network/?page=device&amp;id=<?php if (isset($configdmrgateway['DMR Network 1']['Id'])) { echo $configdmrgateway['DMR Network 1']['Id']; } else { echo $configmmdvm['General']['Id']; } ?>" target="_new" style="color: #000;">Device Information</a> |
<a href="https://brandmeister.network/?page=device-edit&amp;id=<?php if (isset($configdmrgateway['DMR Network 1']['Id'])) { echo $configdmrgateway['DMR Network 1']['Id']; } else { echo $configmmdvm['General']['Id']; } ?>" target="_new" style="color: #000;">Edit Device (BrandMeister Selfcare)</a>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_plus_master'];?>:<span><b>DMR+ Master</b>Set your prefered DMR master here</span></a></div>
<div style="text-align: left;"><select name="dmrMasterHost2">
<?php
$dmrMasterFile2 = fopen("/usr/local/etc/DMR_Hosts.txt", "r");
$testMMDVMdmrMaster2= $configdmrgateway['DMR Network 2']['Address'];
$testMMDVMdmrMaster2Port = $configdmrgateway['DMR Network 2']['Port'];
while (!feof($dmrMasterFile2)) {
$dmrMasterLine2 = fgets($dmrMasterFile2);
$dmrMasterHost2 = preg_split('/\s+/', $dmrMasterLine2);
if ((strpos($dmrMasterHost2[0], '#') === FALSE ) && (substr($dmrMasterHost2[0], 0, 4) == "DMR+") && ($dmrMasterHost2[0] != '')) {
if (($testMMDVMdmrMaster2 == $dmrMasterHost2[2]) && ($testMMDVMdmrMaster2Port == $dmrMasterHost2[4])) { echo " <option value=\"$dmrMasterHost2[2],$dmrMasterHost2[3],$dmrMasterHost2[4],$dmrMasterHost2[0]\" selected=\"selected\">$dmrMasterHost2[0]</option>\n"; }
else { echo " <option value=\"$dmrMasterHost2[2],$dmrMasterHost2[3],$dmrMasterHost2[4],$dmrMasterHost2[0]\">$dmrMasterHost2[0]</option>\n"; }
}
}
fclose($dmrMasterFile2);
?>
</select></div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_plus_network'];?>:<span><b>DMR+ Network</b>Set your options= for DMR+ here</span></a></div>
<div align="left">
Options=<input type="text" name="dmrNetworkOptions" size="65" maxlength="250" value="<?php if (isset($configdmrgateway['DMR Network 2']['Options'])) { echo $configdmrgateway['DMR Network 2']['Options']; } ?>" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_plus_network'];?> ESSID:<span><b>DMR Plus Extended ID</b>This is the extended ID, to make your DMR ID 8 digits long</span></a></div>
<div align="left">
<?php
if (isset($configdmrgateway['DMR Network 2']['Id'])) {
if (strlen($configdmrgateway['DMR Network 2']['Id']) > strlen($configmmdvm['General']['Id'])) {
$dmrPlusESSID = substr($configdmrgateway['DMR Network 2']['Id'], -2);
} else {
$dmrPlusESSID = "None";
}
} else {
if (isset($configmmdvm['General']['Id'])) {
if (strlen($configmmdvm['General']['Id']) == 9) {
$dmrPlusESSID = substr($configmmdvm['General']['Id'], -2);
} else {
$dmrPlusESSID = "None";
}
} else {
$dmrPlusESSID = "None";
}
}
if (isset($configmmdvm['General']['Id'])) { if ($configmmdvm['General']['Id'] !== "1234567") { echo substr($configmmdvm['General']['Id'], 0, 7); } }
echo "<select name=\"dmrPlusExtendedId\">\n";
if ($dmrPlusESSID == "None") { echo " <option value=\"None\" selected=\"selected\">None</option>\n"; } else { echo " <option value=\"None\">None</option>\n"; }
for ($dmrPlusESSIDInput = 1; $dmrPlusESSIDInput <= 99; $dmrPlusESSIDInput++) {
$dmrPlusESSIDInput = str_pad($dmrPlusESSIDInput, 2, "0", STR_PAD_LEFT);
if ($dmrPlusESSID === $dmrPlusESSIDInput) {
echo " <option value=\"$dmrPlusESSIDInput\" selected=\"selected\">$dmrPlusESSIDInput</option>\n";
} else {
echo " <option value=\"$dmrPlusESSIDInput\">$dmrPlusESSIDInput</option>\n";
}
}
echo "</select>\n";
?>
</div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_plus_network'];?> Enable:<span><b>DMR+ Network Enable</b></span></a></div>
<div align="left">
<?php if ($configdmrgateway['DMR Network 2']['Enabled'] == 1) { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayNet2En\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayNet2En\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayNet2EnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayNet2En\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable DMR+\" aria-checked=\"true\" onKeyPress=\"toggleDmrGatewayNet2EnCheckbox()\" onclick=\"toggleDmrGatewayNet2EnCheckbox()\" for=\"toggle-dmrGatewayNet2En\"><font style=\"font-size:0px\">Enable DMR+</font></label></div>\n"; }
else { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayNet2En\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayNet2En\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayNet2EnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayNet2En\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable DMR+\" aria-checked=\"false\" onKeyPress=\"toggleDmrGatewayNet2EnCheckbox()\" onclick=\"toggleDmrGatewayNet2EnCheckbox()\" for=\"toggle-dmrGatewayNet2En\"><font style=\"font-size:0px\">Enable DMR+</font></label></div>\n"; } ?>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['xlx_master'];?>:<span><b>XLX Master</b>Set your prefered XLX master here</span></a></div>
<div style="text-align: left;"><select name="dmrMasterHost3">
<?php
$dmrMasterFile3 = fopen("/usr/local/etc/DMR_Hosts.txt", "r");
if (isset($configdmrgateway['XLX Network 1']['Address'])) { $testMMDVMdmrMaster3= $configdmrgateway['XLX Network 1']['Address']; }
if (isset($configdmrgateway['XLX Network']['Startup'])) { $testMMDVMdmrMaster3= $configdmrgateway['XLX Network']['Startup']; }
while (!feof($dmrMasterFile3)) {
$dmrMasterLine3 = fgets($dmrMasterFile3);
$dmrMasterHost3 = preg_split('/\s+/', $dmrMasterLine3);
if ((strpos($dmrMasterHost3[0], '#') === FALSE ) && (substr($dmrMasterHost3[0], 0, 3) == "XLX") && ($dmrMasterHost3[0] != '')) {
if ($testMMDVMdmrMaster3 == $dmrMasterHost3[2]) { echo " <option value=\"$dmrMasterHost3[2],$dmrMasterHost3[3],$dmrMasterHost3[4],$dmrMasterHost3[0]\" selected=\"selected\">$dmrMasterHost3[0]</option>\n"; }
if ('XLX_'.$testMMDVMdmrMaster3 == $dmrMasterHost3[0]) { echo " <option value=\"$dmrMasterHost3[2],$dmrMasterHost3[3],$dmrMasterHost3[4],$dmrMasterHost3[0]\" selected=\"selected\">$dmrMasterHost3[0]</option>\n"; }
else { echo " <option value=\"$dmrMasterHost3[2],$dmrMasterHost3[3],$dmrMasterHost3[4],$dmrMasterHost3[0]\">$dmrMasterHost3[0]</option>\n"; }
}
}
fclose($dmrMasterFile3);
?>
</select></div></div>
<?php if (isset($configdmrgateway['XLX Network 1']['Startup'])) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">XLX Startup TG:<span><b>XLX Startup TG</b></span></a></div>
<div align="left"><select name="dmrMasterHost3Startup">
<?php
if (isset($configdmrgateway['XLX Network 1']['Startup'])) {
echo ' <option value="None">None</option>'."\n";
}
else {
echo ' <option value="None" selected="selected">None</option>'."\n";
}
for ($xlxSu = 1; $xlxSu <= 26; $xlxSu++) {
$xlxSuVal = '40'.sprintf('%02d', $xlxSu);
if ((isset($configdmrgateway['XLX Network 1']['Startup'])) && ($configdmrgateway['XLX Network 1']['Startup'] == $xlxSuVal)) {
echo ' <option value="'.$xlxSuVal.'" selected="selected">'.$xlxSuVal.'</option>'."\n";
}
else {
echo ' <option value="'.$xlxSuVal.'">'.$xlxSuVal.'</option>'."\n";
}
}
?>
</select></div></div>
<?php } ?>
<?php if (isset($configdmrgateway['XLX Network']['TG'])) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">XLX Startup Module:<span><b>XLX Startup Module override</b>Default will use the host file option, or override it here.</span></a></div>
<div align="left"><select name="dmrMasterHost3StartupModule">
<?php
if ((isset($configdmrgateway['XLX Network']['Module'])) && ($configdmrgateway['XLX Network']['Module'] != "@")) {
echo ' <option value="'.$configdmrgateway['XLX Network']['Module'].'" selected="selected">'.$configdmrgateway['XLX Network']['Module'].'</option>'."\n";
echo ' <option value="Default">Default</option>'."\n";
echo ' <option value="@">None</option>'."\n";
} elseif ((isset($configdmrgateway['XLX Network']['Module'])) && ($configdmrgateway['XLX Network']['Module'] == "@")) {
echo ' <option value="Default">Default</option>'."\n";
echo ' <option value="@" selected="selected">None</option>'."\n";
} else {
echo ' <option value="Default" selected="selected">Default</option>'."\n";
echo ' <option value=" ">None</option>'."\n";
}
?>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</select></div>
</div>
<?php } ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['xlx_enable'];?>:<span><b>XLX Master Enable</b>Turn your XLX connection on or off.</span></a></div>
<div align="left">
<?php
if ((isset($configdmrgateway['XLX Network 1']['Enabled'])) && ($configdmrgateway['XLX Network 1']['Enabled'] == 1)) { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayXlxEn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayXlxEn\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayXlxEnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayXlxEn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable XLX Network\" aria-checked=\"true\" onKeyPress=\"toggleDmrGatewayXlxEnCheckbox()\" onclick=\"toggleDmrGatewayXlxEnCheckbox()\" for=\"toggle-dmrGatewayXlxEn\"><font style=\"font-size:0px\">Enable XLX via DMR</font></label></div>\n"; }
else if ((isset($configdmrgateway['XLX Network']['Enabled'])) && ($configdmrgateway['XLX Network']['Enabled'] == 1)) { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayXlxEn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayXlxEn\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayXlxEnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayXlxEn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable XLX Network\" aria-checked=\"true\" onKeyPress=\"toggleDmrGatewayXlxEnCheckbox()\" onclick=\"toggleDmrGatewayXlxEnCheckbox()\" for=\"toggle-dmrGatewayXlxEn\"><font style=\"font-size:0px\">Enable XLX via DMR</font></label></div>\n"; }
else { echo "<div class=\"switch\"><input id=\"toggle-dmrGatewayXlxEn\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrGatewayXlxEn\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrGatewayXlxEnCheckboxCr." /><label id=\"aria-toggle-dmrGatewayXlxEn\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable XLX Network\" aria-checked=\"false\" onKeyPress=\"toggleDmrGatewayXlxEnCheckbox()\" onclick=\"toggleDmrGatewayXlxEnCheckbox()\" for=\"toggle-dmrGatewayXlxEn\"><font style=\"font-size:0px\">Enable XLX via DMR</font></label></div>\n"; } ?>
</div></div>
<?php }
if ((substr($dmrMasterNow, 0, 2) == "BM") || (substr($dmrMasterNow, 0, 3) == "CDN")) {
$dmrNetworkId = isset($configmmdvm['DMR']['Id']) ? $configmmdvm['DMR']['Id'] : $configmmdvm['General']['Id'];
echo ' <div class="field-row">
<div align="left"><a class="tooltip2" href="#">Hotspot Security:<span><b>Custom Password</b>Override the Password for your DMR Host with your own custom password, make sure you already configured this with your chosen DMR Host too. Empty the field to use the default.</span></a></div>
<div align="left">
<input type="password" name="bmHSSecurity" size="30" maxlength="30" value="'; if (isset($configModem['BrandMeister']['Password'])) {echo $configModem['BrandMeister']['Password'];}; echo '"></input>
</div>
</div>
<div class="field-row">'."\n";
if (substr($dmrMasterNow, 0, 3) == "CDN") {
echo ' <div align="left"><a class="tooltip2" href="#">China DMR Network 网络:<span><b>China DMR Network</b>直达 China DMR Network 控制面板的链接</span></a></div>
<div>
<a href="https://860.radiowo.com/?page=device&amp;id='.$dmrNetworkId.'" target="_new" style="color: #000;">设备信息</a> |
<a href="https://860.radiowo.com/?page=device-edit&amp;id='.$dmrNetworkId.'" target="_new" style="color: #000;">编辑设备(CDN 自助服务)</a>
</div>
</div>'."\n";
} else {
echo ' <div align="left"><a class="tooltip2" href="#">'.$lang['bm_network'].':<span><b>BrandMeister Dashboards</b>Direct links to your BrandMeister Dashboards</span></a></div>
<div>
<a href="https://brandmeister.network/?page=device&amp;id='.$dmrNetworkId.'" target="_new" style="color: #000;">Device Information</a> |
<a href="https://brandmeister.network/?page=device-edit&amp;id='.$dmrNetworkId.'" target="_new" style="color: #000;">Edit Device (BrandMeister Selfcare)</a>
</div>
</div>'."\n";
}
}
if (substr($dmrMasterNow, 0, 8) == "FreeDMR_") {
echo ' <div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR Options:<span><b>DMR Network</b>Set your options= for DMR here</span></a></div>
<div align="left">
Options=<input type="text" name="dmrNetworkOptions" size="65" maxlength="250" value="';
if (isset($configmmdvm['DMR Network']['Options'])) { echo $configmmdvm['DMR Network']['Options']; }
echo '" />
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">FreeDMR Help:<span><b>FreeDMR Help</b>FreeDMR Options Help</span></a></div>
<div>
<a href="http://www.freedmr.uk/index.php/static-talk-groups-pi-star/" target="_new" style="color: #000;">FreeDMR Options Guide</a> |
<a href="http://www.freedmr.uk/index.php/dashboard/options-calculator/" target="_new" style="color: #000;">FreeDMR Options Calculator</a>
</div>
</div>'."\n";}
if ((substr($dmrMasterNow, 0, 4) == "DMR+") || (substr($dmrMasterNow, 0, 3) == "HB_") || (substr($dmrMasterNow, 0, 3) == "FD_") || (substr($dmrMasterNow, 0, 9) == "FreeSTAR_")) {
echo ' <div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR Options:<span><b>DMR Network</b>Set your options= for DMR here</span></a></div>
<div align="left">
Options=<input type="text" name="dmrNetworkOptions" size="65" maxlength="250" value="';
if (isset($configmmdvm['DMR Network']['Options'])) { echo $configmmdvm['DMR Network']['Options']; }
echo '" />
</div>
</div>'."\n";}
if (substr($dmrMasterNow, 0, 4) == "TGIF") {
echo ' <div class="field-row">
<div align="left"><a class="tooltip2" href="#">Hotspot Security:<span><b>Custom Password</b>Override the Password for your DMR Host with your own custom password, make sure you already configured this with your chosen DMR Host too. Empty the field to use the default.</span></a></div>
<div align="left">
<input type="password" name="tgifHSSecurity" size="30" maxlength="30" value="'; if (isset($configModem['TGIF']['Password'])) {echo $configModem['TGIF']['Password'];}; echo '"></input>
</div>
</div>
<div class="field-row">'."\n";}
?>
<?php if ($dmrMasterNow !== "DMRGateway") { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR ESSID:<span><b>DMR Extended ID</b>This is the extended ID, to make your DMR ID 8 or 9 digits long</span></a></div>
<div align="left"><?php
if (isset($configmmdvm['DMR']['Id'])) {
if (strlen($configmmdvm['DMR']['Id']) > strlen($configmmdvm['General']['Id'])) {
$essidLen = strlen($configmmdvm['DMR']['Id']) - strlen($configmmdvm['General']['Id']);
$dmrESSID = substr($configmmdvm['DMR']['Id'], - $essidLen);
} else {
$dmrESSID = "None";
}
} else {
$dmrESSID = "None";
}
if (isset($configmmdvm['General']['Id'])) { if ($configmmdvm['General']['Id'] !== "1234567") { echo substr($configmmdvm['General']['Id'], 0, 7); } }
echo "<select name=\"dmrExtendedId\">\n";
if ($dmrESSID == "None") { echo " <option value=\"None\" selected=\"selected\">None</option>\n"; } else { echo " <option value=\"None\">None</option>\n"; }
for ($dmrESSIDInput = 1; $dmrESSIDInput <= 99; $dmrESSIDInput++) {
$dmrESSIDInput = str_pad($dmrESSIDInput, 2, "0", STR_PAD_LEFT);
if ($dmrESSID === $dmrESSIDInput) {
echo " <option value=\"$dmrESSIDInput\" selected=\"selected\">$dmrESSIDInput</option>\n";
} else {
echo " <option value=\"$dmrESSIDInput\">$dmrESSIDInput</option>\n";
}
}
echo "</select>\n";
?>
</div></div>
<div class="field-row">
<?php } ?>
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_cc'];?>:<span><b>DMR Color Code</b>Set your DMR Color Code here</span></a></div>
<div style="text-align: left;"><select name="dmrColorCode">
<?php for ($dmrColorCodeInput = 0; $dmrColorCodeInput <= 15; $dmrColorCodeInput++) {
if ($configmmdvm['DMR']['ColorCode'] == $dmrColorCodeInput) { echo "<option selected=\"selected\" value=\"$dmrColorCodeInput\">$dmrColorCodeInput</option>\n"; }
else {echo " <option value=\"$dmrColorCodeInput\">$dmrColorCodeInput</option>\n"; }
} ?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_embeddedlconly'];?>:<span><b>DMR EmbeddedLCOnly</b>Turn ON to disable extended message support, including GPS and Talker Alias data. This can help reduce problems with some DMR Radios that do not support such features.</span></a></div>
<div align="left">
<?php if ($configmmdvm['DMR']['EmbeddedLCOnly'] == 1) { echo "<div class=\"switch\"><input id=\"toggle-dmrEmbeddedLCOnly\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrEmbeddedLCOnly\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrEmbeddedLCOnlyCr." /><label id=\"aria-toggle-dmrEmbeddedLCOnly\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable DMR Embedded LC Only\" aria-checked=\"true\" onKeyPress=\"toggleDmrEmbeddedLCOnly()\" onclick=\"toggleDmrEmbeddedLCOnly()\" for=\"toggle-dmrEmbeddedLCOnly\"><font style=\"font-size:0px\">Enable DMR Embedded LC only</font></label></div>\n"; }
else { echo "<div class=\"switch\"><input id=\"toggle-dmrEmbeddedLCOnly\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrEmbeddedLCOnly\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrEmbeddedLCOnlyCr." /><label id=\"aria-toggle-dmrEmbeddedLCOnly\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Enable DMR Embedded LC Only\" aria-checked=\"false\" onKeyPress=\"toggleDmrEmbeddedLCOnly()\" onclick=\"toggleDmrEmbeddedLCOnly()\" for=\"toggle-dmrEmbeddedLCOnly\"><font style=\"font-size:0px\">Enable DMR Embedded LC Only</font></label></div>\n"; } ?>
</div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_dumptadata'];?>:<span><b>DMR DumpTAData</b>Turn ON to dump GPS and Talker Alias data to MMDVMHost log file.</span></a></div>
<div align="left">
<?php if ($configmmdvm['DMR']['DumpTAData'] == 1) { echo "<div class=\"switch\"><input id=\"toggle-dmrDumpTAData\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrDumpTAData\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrDumpTADataCr." /><label id=\"aria-toggle-dmrDumpTAData\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR Dump TA Data\" aria-checked=\"true\" onKeyPress=\"toggleDmrDumpTAData()\" onclick=\"toggleDmrDumpTAData()\" for=\"toggle-dmrDumpTAData\"><font style=\"font-size:0px\">DMR Dump T-A Data</font></label></div>\n"; }
else { echo "<div class=\"switch\"><input id=\"toggle-dmrDumpTAData\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrDumpTAData\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDmrDumpTADataCr." /><label id=\"aria-toggle-dmrDumpTAData\" role=\"checkbox\" tabindex=\"0\" aria-label=\"DMR Dump TA Data\" aria-checked=\"false\" onKeyPress=\"toggleDmrDumpTAData()\" onclick=\"toggleDmrDumpTAData()\" for=\"toggle-dmrDumpTAData\"><font style=\"font-size:0px\">DMR Dump T-A Data</font></label></div>\n"; } ?>
</div></div>
<!-- <div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo "DMR JitterBuffer";?>:<span><b>DMR JitterBuffer</b>Turn on for improved network resiliancy, in high Latency networks.</span></a></div>
<div align="left">
<?php // if ((isset($configmmdvm['DMR Network']['JitterEnabled'])) && ($configmmdvm['DMR Network']['JitterEnabled'] == 0)) { echo "<div class=\"switch\"><input id=\"toggle-dmrJitterBufer\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrDMRnetJitterBufer\" value=\"ON\"/><label for=\"toggle-dmrJitterBufer\"></label></div>\n"; }
// else { echo "<div class=\"switch\"><input id=\"toggle-dmrJitterBufer\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"dmrDMRnetJitterBufer\" value=\"ON\" checked=\"checked\" /><label for=\"toggle-dmrJitterBufer\"></label></div>\n"; }
?>
</div></div>. -->
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.dstarrepeater') || $configmmdvm['D-Star']['Enable'] == 1) { ?>
<h2><?php echo $lang['dstar_config'];?></h2>
<input type="hidden" name="confTimeAnnounce" value="OFF" />
<input type="hidden" name="confircddbEnabled" value="OFF" />
<input type="hidden" name="confHostFilesNoDExtra" value="OFF" />
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_rpt1'];?>:<span><b>RPT1 Callsign</b>This is the RPT1 field for your radio</span></a></div>
<div align="left" colspan="2"><?php echo str_replace(' ', '&nbsp;', substr($configdstar['callsign'], 0, 7)) ?>
<select name="confDStarModuleSuffix">
<?php echo " <option value=\"".substr($configdstar['callsign'], 7)."\" selected=\"selected\">".substr($configdstar['callsign'], 7)."</option>\n"; ?>
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
<option>F</option>
<option>G</option>
<option>H</option>
<option>I</option>
<option>J</option>
<option>K</option>
<option>L</option>
<option>M</option>
<option>N</option>
<option>O</option>
<option>P</option>
<option>Q</option>
<option>R</option>
<option>S</option>
<option>T</option>
<option>U</option>
<option>V</option>
<option>W</option>
<option>X</option>
<option>Y</option>
<option>Z</option>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_rpt2'];?>:<span><b>RPT2 Callsign</b>This is the RPT2 field for your radio</span></a></div>
<div align="left" colspan="2"><?php echo str_replace(' ', '&nbsp;', $configdstar['gateway']) ?></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_irc_password'];?>:<span><b>Remote Password</b>Used for ircDDBGateway remote control access</span></a></div>
<div align="left" colspan="2"><input type="password" name="confPassword" size="30" maxlength="30" value="<?php echo $configs['remotePassword'] ?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_default_ref'];?>:<span><b>Default Reflector</b>Used for setting the default reflector.</span></a></div>
<div align="left" colspan="1"><select name="confDefRef"
onchange="if (this.options[this.selectedIndex].value == 'customOption') {
toggleField(this,this.nextSibling);
this.selectedIndex='0';
} ">
<?php
$dcsFile = fopen("/usr/local/etc/DCS_Hosts.txt", "r");
$dplusFile = fopen("/usr/local/etc/DPlus_Hosts.txt", "r");
$dextraFile = fopen("/usr/local/etc/DExtra_Hosts.txt", "r");
echo " <option value=\"".substr($configs['reflector1'], 0, 6)."\" selected=\"selected\">".substr($configs['reflector1'], 0, 6)."</option>\n";
echo " <option value=\"customOption\">Text Entry</option>\n";
while (!feof($dcsFile)) {
$dcsLine = fgets($dcsFile);
if (strpos($dcsLine, 'DCS') !== FALSE && strpos($dcsLine, '#') === FALSE) {
echo " <option value=\"".substr($dcsLine, 0, 6)."\">".substr($dcsLine, 0, 6)."</option>\n";
}
if (strpos($dcsLine, 'XLX') !== FALSE && strpos($dcsLine, '#') === FALSE) {
echo " <option value=\"".substr($dcsLine, 0, 6)."\">".substr($dcsLine, 0, 6)."</option>\n";
}
}
fclose($dcsFile);
while (!feof($dplusFile)) {
$dplusLine = fgets($dplusFile);
if (strpos($dplusLine, 'REF') !== FALSE && strpos($dplusLine, '#') === FALSE) {
echo " <option value=\"".substr($dplusLine, 0, 6)."\">".substr($dplusLine, 0, 6)."</option>\n";
}
if (strpos($dplusLine, 'XRF') !== FALSE && strpos($dplusLine, '#') === FALSE) {
echo " <option value=\"".substr($dplusLine, 0, 6)."\">".substr($dplusLine, 0, 6)."</option>\n";
}
}
fclose($dplusFile);
while (!feof($dextraFile)) {
$dextraLine = fgets($dextraFile);
if (strpos($dextraLine, 'XRF') !== FALSE && strpos($dextraLine, '#') === FALSE)
echo " <option value=\"".substr($dextraLine, 0, 6)."\">".substr($dextraLine, 0, 6)."</option>\n";
}
fclose($dextraFile);
?>
</select><input name="confDefRef" style="display:none;" disabled="disabled" type="text" size="7" maxlength="7"
onblur="if(this.value==''){toggleField(this,this.previousSibling);}" />
<select name="confDefRefLtr">
<?php echo " <option value=\"".substr($configs['reflector1'], 7)."\" selected=\"selected\">".substr($configs['reflector1'], 7)."</option>\n"; ?>
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
<option>F</option>
<option>G</option>
<option>H</option>
<option>I</option>
<option>J</option>
<option>K</option>
<option>L</option>
<option>M</option>
<option>N</option>
<option>O</option>
<option>P</option>
<option>Q</option>
<option>R</option>
<option>S</option>
<option>T</option>
<option>U</option>
<option>V</option>
<option>W</option>
<option>X</option>
<option>Y</option>
<option>Z</option>
</select>
</div>
<div width="300">
<input type="radio" name="confDefRefAuto" value="ON"<?php if ($configs['atStartup1'] == '1') {echo ' checked="checked"';} ?> />Startup
<input type="radio" name="confDefRefAuto" value="OFF"<?php if ($configs['atStartup1'] == '0') {echo ' checked="checked"';} ?> />Manual</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_irc_lang'];?>:<span><b>ircDDBGateway Language</b>Set your prefered language here</span></a></div>
<div colspan="2" style="text-align: left;"><select name="ircDDBGatewayAnnounceLanguage">
<?php
$testIrcLanguage = $configs['language'];
if (is_readable("/var/www/dashboard/config/ircddbgateway_languages.inc")) {
$ircLanguageFile = fopen("/var/www/dashboard/config/ircddbgateway_languages.inc", "r");
while (!feof($ircLanguageFile)) {
$ircLanguageFileLine = fgets($ircLanguageFile);
$ircLanguage = preg_split('/;/', $ircLanguageFileLine);
if ((strpos($ircLanguage[0], '#') === FALSE ) && ($ircLanguage[0] != '')) {
$ircLanguage[2] = rtrim($ircLanguage[2]);
if ($testIrcLanguage == $ircLanguage[1]) { echo " <option value=\"$ircLanguage[1],$ircLanguage[2]\" selected=\"selected\">".htmlspecialchars($ircLanguage[0])."</option>\n"; }
else { echo " <option value=\"$ircLanguage[1],$ircLanguage[2]\">".htmlspecialchars($ircLanguage[0])."</option>\n"; }
}
}
fclose($ircLanguageFile);
}
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dstar_irc_time'];?>:<span><b>Time Announce</b>Announce time hourly</span></a></div>
<?php
if ( !file_exists('/etc/timeserver.dissable') ) {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-timeAnnounce\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confTimeAnnounce\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDstarTimeAnnounceCr." /><label id=\"aria-toggle-timeAnnounce\" role=\"checkbox\" tabindex=\"0\" aria-label=\"D-Star Time Announcements\" aria-checked=\"true\" onKeyPress=\"toggleDstarTimeAnnounce()\" onclick=\"toggleDstarTimeAnnounce()\" for=\"toggle-timeAnnounce\"><font style=\"font-size:0px\">D-Star Time Announcements</font></label></div></div>\n";
}
else {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-timeAnnounce\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confTimeAnnounce\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDstarTimeAnnounceCr." /><label id=\"aria-toggle-timeAnnounce\" role=\"checkbox\" tabindex=\"0\" aria-label=\"D-Star Time Announcements\" aria-checked=\"false\" onKeyPress=\"toggleDstarTimeAnnounce()\" onclick=\"toggleDstarTimeAnnounce()\" for=\"toggle-timeAnnounce\"><font style=\"font-size:0px\">D-Star Time Announcements</font></label></div></div>\n";
}
?>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">Callsign Routing:<span><b>Callsign Routing</b>Do you want callsign routing for D-Star</span></a></div>
<?php
if ( isset($configs['ircddbEnabled']) && $configs['ircddbEnabled'] == "1" ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-ircddbEnabled\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confircddbEnabled\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleircddbEnabledCr." /><label id=\"aria-toggle-ircddbEnabled\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Use ircDDB callsign routing\" aria-checked=\"true\" onKeyPress=\"toggleircddbEnabled()\" onclick=\"toggleircddbEnabled()\" for=\"toggle-ircddbEnabled\"><font style=\"font-size:0px\">Enable ircDDB callsign routing</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-ircddbEnabled\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confircddbEnabled\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleircddbEnabledCr." /><label id=\"aria-toggle-ircddbEnabled\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Use ircDDB callsign routing\" aria-checked=\"false\" onKeyPress=\"toggleircddbEnabled()\" onclick=\"toggleircddbEnabled()\" for=\"toggle-ircddbEnabled\"><font style=\"font-size:0px\">Enable ircDDB callsign routing</font></label></div></div>\n";
}
?>
<div>Connect ircDDB for call routing</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">Use DPlus for XRF:<span><b>No DExtra</b>Should host files use DPlus Protocol for XRFs</span></a></div>
<?php
if ( file_exists('/etc/hostfiles.nodextra') ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dplusHostFiles\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confHostFilesNoDExtra\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDstarDplusHostfilesCr." /><label id=\"aria-toggle-dplusHostFiles\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Use D-Plus for XRF Hosts\" aria-checked=\"true\" onKeyPress=\"toggleDstarDplusHostfiles()\" onclick=\"toggleDstarDplusHostfiles()\" for=\"toggle-dplusHostFiles\"><font style=\"font-size:0px\">Use D-Plus for XRF Hosts</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-dplusHostFiles\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confHostFilesNoDExtra\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleDstarDplusHostfilesCr." /><label id=\"aria-toggle-dplusHostFiles\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Use D-Plus for XRF Hosts\" aria-checked=\"false\" onKeyPress=\"toggleDstarDplusHostfiles()\" onclick=\"toggleDstarDplusHostfiles()\" for=\"toggle-dplusHostFiles\"><font style=\"font-size:0px\">Use D-Plus for XRF Hosts</font></label></div></div>\n";
}
?>
<div>Note: Update Required if changed</div>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && ($configmmdvm['System Fusion Network']['Enable'] == 1 || $configdmr2ysf['Enabled']['Enabled'] == 1 )) {
$ysfHosts = fopen("/usr/local/etc/YSFHosts.txt", "r"); ?>
<input type="hidden" name="confHostFilesYSFUpper" value="OFF" />
<input type="hidden" name="wiresXCommandPassthrough" value="OFF" />
<h2><?php echo $lang['ysf_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['ysf_startup_host'];?>:<span><b>YSF Host</b>Set your prefered YSF Host here</span></a></div>
<div colspan="2" style="text-align: left;"><select name="ysfStartupHost">
<?php
if (isset($configysfgateway['Network']['Startup'])) {
$testYSFHost = $configysfgateway['Network']['Startup'];
echo " <option value=\"none\">None</option>\n";
}
else {
$testYSFHost = "none";
echo " <option value=\"none\" selected=\"selected\">None</option>\n";
}
if ($testYSFHost == "ZZ Parrot") {
echo " <option value=\"00001,ZZ Parrot\" selected=\"selected\">YSF00001 - Parrot</option>\n";
} else {
echo " <option value=\"00001,ZZ Parrot\">YSF00001 - Parrot</option>\n";
}
if ($testYSFHost == "YSF2DMR") {
echo " <option value=\"00002,YSF2DMR\" selected=\"selected\">YSF00002 - Link YSF2DMR</option>\n";
} else {
echo " <option value=\"00002,YSF2DMR\">YSF00002 - Link YSF2DMR</option>\n";
}
if ($testYSFHost == "YSF2NXDN") {
echo " <option value=\"00003,YSF2NXDN\" selected=\"selected\">YSF00003 - Link YSF2NXDN</option>\n";
} else {
echo " <option value=\"00003,YSF2NXDN\">YSF00003 - Link YSF2NXDN</option>\n";
}
if ($testYSFHost == "YSF2P25") {
echo " <option value=\"00004,YSF2P25\" selected=\"selected\">YSF00004 - Link YSF2P25</option>\n";
} else {
echo " <option value=\"00004,YSF2P25\">YSF00004 - Link YSF2P25</option>\n";
}
while (!feof($ysfHosts)) {
$ysfHostsLine = fgets($ysfHosts);
$ysfHost = preg_split('/;/', $ysfHostsLine);
if ((strpos($ysfHost[0], '#') === FALSE ) && ($ysfHost[0] != '')) {
if ($testYSFHost == $ysfHost[1]) { echo " <option value=\"$ysfHost[0],$ysfHost[1]\" selected=\"selected\">YSF$ysfHost[0] - ".htmlspecialchars($ysfHost[1])." - ".htmlspecialchars($ysfHost[2])."</option>\n"; }
else { echo " <option value=\"$ysfHost[0],$ysfHost[1]\">YSF$ysfHost[0] - ".htmlspecialchars($ysfHost[1])." - ".htmlspecialchars($ysfHost[2])."</option>\n"; }
}
}
fclose($ysfHosts);
if (file_exists("/usr/local/etc/FCSHosts.txt")) {
$fcsHosts = fopen("/usr/local/etc/FCSHosts.txt", "r");
while (!feof($fcsHosts)) {
$ysfHostsLine = fgets($fcsHosts);
$ysfHost = preg_split('/;/', $ysfHostsLine);
if (substr($ysfHost[0], 0, 3) == "FCS") {
if ($testYSFHost == $ysfHost[0]) { echo " <option value=\"$ysfHost[0],$ysfHost[0]\" selected=\"selected\">$ysfHost[0] - ".htmlspecialchars($ysfHost[1])."</option>\n"; }
else { echo " <option value=\"$ysfHost[0],$ysfHost[0]\">$ysfHost[0] - ".htmlspecialchars($ysfHost[1])."</option>\n"; }
}
}
fclose($fcsHosts);
}
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">UPPERCASE Hostfiles:<span><b>UPPERCASE Hostfiles</b>Should host files use UPPERCASE only - fixes issues with FT-70D radios.</span></a></div>
<?php
if ( isset($configysfgateway['General']['WiresXMakeUpper']) ) {
if ( $configysfgateway['General']['WiresXMakeUpper'] ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confHostFilesYSFUpper\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confHostFilesYSFUpper\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleHostFilesYSFUpperCr." /><label id=\"aria-toggle-confHostFilesYSFUpper\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Uppercase Host Files\" aria-checked=\"true\" onKeyPress=\"toggleHostFilesYSFUpper()\" onclick=\"toggleHostFilesYSFUpper()\" for=\"toggle-confHostFilesYSFUpper\"><font style=\"font-size:0px\">Uppercase Host Files</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confHostFilesYSFUpper\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confHostFilesYSFUpper\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleHostFilesYSFUpperCr." /><label id=\"aria-toggle-confHostFilesYSFUpper\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Uppercase Host Files\" aria-checked=\"false\" onKeyPress=\"toggleHostFilesYSFUpper()\" onclick=\"toggleHostFilesYSFUpper()\" for=\"toggle-confHostFilesYSFUpper\"><font style=\"font-size:0px\">Uppercase Host Files</font></label></div></div>\n";
}
} else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confHostFilesYSFUpper\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"confHostFilesYSFUpper\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleHostFilesYSFUpperCr." /><label id=\"aria-toggle-confHostFilesYSFUpper\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Uppercase Host Files\" aria-checked=\"false\" onKeyPress=\"toggleHostFilesYSFUpper()\" onclick=\"toggleHostFilesYSFUpper()\" for=\"toggle-confHostFilesYSFUpper\"><font style=\"font-size:0px\">Uppercase Host files</font></label></div></div>\n";
}
?>
<div>Note: Update Required if changed</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">WiresX Passthrough:<span><b>WiresX Auto Passthrough</b>Use this to automatically send WiresX commands through to YSF2xxx cross-over modes.</span></a></div>
<?php
if ( isset($configysfgateway['General']['WiresXCommandPassthrough']) ) {
if ( $configysfgateway['General']['WiresXCommandPassthrough'] ) {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-confWiresXCommandPassthrough\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"wiresXCommandPassthrough\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleWiresXCommandPassthroughCr." /><label id=\"aria-toggle-confWiresXCommandPassthrough\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Wires-X Command Passthrough\" aria-checked=\"true\" onKeyPress=\"toggleWiresXCommandPassthrough()\" onclick=\"toggleWiresXCommandPassthrough()\" for=\"toggle-confWiresXCommandPassthrough\"><font style=\"font-size:0px\">Wires-X Command Passthrough</font></label></div></div>\n";
}
else {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-confWiresXCommandPassthrough\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"wiresXCommandPassthrough\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleWiresXCommandPassthroughCr." /><label id=\"aria-toggle-confWiresXCommandPassthrough\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Wires-X Command Passthrough\" aria-checked=\"false\" onKeyPress=\"toggleWiresXCommandPassthrough()\" onclick=\"toggleWiresXCommandPassthrough()\" for=\"toggle-confWiresXCommandPassthrough\"><font style=\"font-size:0px\">Wires-X Command Passthrough</font></label></div></div>\n";
}
} else {
echo "<div align=\"left\" colspan=\"2\"><div class=\"switch\"><input id=\"toggle-confWiresXCommandPassthrough\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"wiresXCommandPassthrough\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleWiresXCommandPassthroughCr." /><label id=\"aria-toggle-confWiresXCommandPassthrough\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Wires-X Command Passthrough\" aria-checked=\"false\" onKeyPress=\"toggleWiresXCommandPassthrough()\" onclick=\"toggleWiresXCommandPassthrough()\" for=\"toggle-confWiresXCommandPassthrough\"><font style=\"font-size:0px\">Wires-X Command Passthrough</font></label></div></div>\n";
}
?>
</div>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configysf2dmr['Enabled']['Enabled'] == 1) {
$dmrMasterFile = fopen("/usr/local/etc/DMR_Hosts.txt", "r"); ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">(YSF2DMR)<?php echo $lang['dmr_id'];?>:<span><b>CCS7/DMR ID</b>Enter your CCS7 / DMR ID here</span></a></div>
<div align="left" colspan="2">
<?php
if (isset($configysf2dmr['DMR Network']['Id'])) {
if (strlen($configysf2dmr['DMR Network']['Id']) > strlen($configmmdvm['General']['Id'])) {
$essidYSF2DMRLen = strlen($configysf2dmr['DMR Network']['Id']) - strlen($configmmdvm['General']['Id']);
$ysf2dmrESSID = substr($configysf2dmr['DMR Network']['Id'], -$essidYSF2DMRLen);
} else {
$ysf2dmrESSID = "None";
}
} else {
$ysf2dmrESSID = "None";
}
if (isset($configmmdvm['General']['Id'])) { if ($configmmdvm['General']['Id'] !== "1234567") { echo substr($configmmdvm['General']['Id'], 0, 7); } }
if (isset($configmmdvm['General']['Id'])) { $ysf2dmrIdBase = substr($configmmdvm['General']['Id'], 0, 7); } else { $ysf2dmrIdBase = "1234567"; }
echo "<select name=\"ysf2dmrId\">\n";
if ($ysf2dmrESSID == "None") { echo " <option value=\"$ysf2dmrIdBase\" selected=\"selected\">None</option>\n"; } else { echo " <option value=\"None\">None</option>\n"; }
for ($ysf2dmrESSIDInput = 1; $ysf2dmrESSIDInput <= 99; $ysf2dmrESSIDInput++) {
$ysf2dmrESSIDInput = str_pad($ysf2dmrESSIDInput, 2, "0", STR_PAD_LEFT);
if ($ysf2dmrESSID === $ysf2dmrESSIDInput) {
echo " <option value=\"$ysf2dmrIdBase$ysf2dmrESSIDInput\" selected=\"selected\">$ysf2dmrESSIDInput</option>\n";
} else {
echo " <option value=\"$ysf2dmrIdBase$ysf2dmrESSIDInput\">$ysf2dmrESSIDInput</option>\n";
}
}
echo "</select>\n";
?>
</div></div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['dmr_master'];?>:<span><b>DMR Master (YSF2DMR)</b>Set your prefered DMR master here</span></a></div>
<div colspan="2" style="text-align: left;"><select name="ysf2dmrMasterHost">
<?php
$testMMDVMysf2dmrMaster = $configysf2dmr['DMR Network']['Address'];
while (!feof($dmrMasterFile)) {
$dmrMasterLine = fgets($dmrMasterFile);
$dmrMasterHost = preg_split('/\s+/', $dmrMasterLine);
if ((strpos($dmrMasterHost[0], '#') === FALSE ) && (substr($dmrMasterHost[0], 0, 3) != "XLX") && (substr($dmrMasterHost[0], 0, 4) != "DMRG") && (substr($dmrMasterHost[0], 0, 4) != "DMR2") && ($dmrMasterHost[0] != '')) {
if ($testMMDVMysf2dmrMaster == $dmrMasterHost[2]) { echo " <option value=\"$dmrMasterHost[2],$dmrMasterHost[3],$dmrMasterHost[4],$dmrMasterHost[0]\" selected=\"selected\">$dmrMasterHost[0]</option>\n"; $dmrMasterNow = $dmrMasterHost[0]; }
else { echo " <option value=\"$dmrMasterHost[2],$dmrMasterHost[3],$dmrMasterHost[4],$dmrMasterHost[0]\">$dmrMasterHost[0]</option>\n"; }
}
}
fclose($dmrMasterFile);
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">Hotspot Security:<span><b>DMR Master Password</b>Override the Password for DMR with your own custom password, make sure you already configured this on your chosed DMR Master. Empty the field to use the default.</span></a></div>
<div align="left" colspan="2">
<input type="password" name="bmHSSecurity" size="30" maxlength="30" value="<?php if (isset($configModem['BrandMeister']['Password'])) {echo $configModem['BrandMeister']['Password'];} ?>"></input>
</div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DMR TG:<span><b>YSF2DMR TG</b>Enter your DMR TG here</span></a></div>
<div align="left" colspan="2"><input type="text" name="ysf2dmrTg" size="13" maxlength="7" value="<?php if (isset($configysf2dmr['DMR Network']['StartupDstId'])) { echo $configysf2dmr['DMR Network']['StartupDstId']; } ?>" /></div>
</div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configysf2nxdn['Enabled']['Enabled'] == 1) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">(YSF2NXDN) NXDN ID:<span><b>NXDN ID</b>Enter your NXDN ID here</span></a></div>
<div align="left" colspan="2"><input type="text" name="ysf2nxdnId" size="13" maxlength="5" value="<?php if (isset($configysf2nxdn['NXDN Network']['Id'])) { echo $configysf2nxdn['NXDN Network']['Id']; } ?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['nxdn_startup_host'];?>:<span><b>NXDN Host</b>Set your prefered NXDN Host here</span></a></div>
<div colspan="2" style="text-align: left;"><select name="ysf2nxdnStartupDstId">
<?php
$nxdnHosts = fopen("/usr/local/etc/NXDNHosts.txt", "r");
$testNXDNHost = $configysf2nxdn['NXDN Network']['StartupDstId'];
if ($testNXDNHost == "") { echo " <option value=\"none\" selected=\"selected\">None</option>\n"; }
else { echo " <option value=\"none\">None</option>\n"; }
if ($testNXDNHost == "10") { echo " <option value=\"10\" selected=\"selected\">10 - Parrot</option>\n"; }
else { echo " <option value=\"10\">10 - Parrot</option>\n"; }
while (!feof($nxdnHosts)) {
$nxdnHostsLine = fgets($nxdnHosts);
$nxdnHost = preg_split('/\s+/', $nxdnHostsLine);
if ((strpos($nxdnHost[0], '#') === FALSE ) && ($nxdnHost[0] != '')) {
if ($testNXDNHost == $nxdnHost[0]) { echo " <option value=\"$nxdnHost[0]\" selected=\"selected\">$nxdnHost[0] - $nxdnHost[1]</option>\n"; }
else { echo " <option value=\"$nxdnHost[0]\">$nxdnHost[0] - $nxdnHost[1]</option>\n"; }
}
}
fclose($nxdnHosts);
if (file_exists('/usr/local/etc/NXDNHostsLocal.txt')) {
$nxdnHosts2 = fopen("/usr/local/etc/NXDNHostsLocal.txt", "r");
while (!feof($nxdnHosts2)) {
$nxdnHostsLine2 = fgets($nxdnHosts2);
$nxdnHost2 = preg_split('/\s+/', $nxdnHostsLine2);
if ((strpos($nxdnHost2[0], '#') === FALSE ) && ($nxdnHost2[0] != '')) {
if ($testNXDNHost == $nxdnHost2[0]) { echo " <option value=\"$nxdnHost2[0]\" selected=\"selected\">$nxdnHost2[0] - $nxdnHost2[1]</option>\n"; }
else { echo " <option value=\"$nxdnHost2[0]\">$nxdnHost2[0] - $nxdnHost2[1]</option>\n"; }
}
}
fclose($nxdnHosts2);
}
?>
</select></div>
</div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configysf2p25['Enabled']['Enabled'] == 1) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">(YSF2P25) <?php echo $lang['dmr_id'];?>:<span><b>DMR ID</b>Enter your CCS7 / DMR ID here</span></a></div>
<div align="left" colspan="2"><input type="text" name="ysf2p25Id" size="13" maxlength="7" value="<?php if (isset($configysf2p25['P25 Network']['Id'])) { echo $configysf2p25['P25 Network']['Id']; } ?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['p25_startup_host'];?>:<span><b>P25 Host</b>Set your prefered P25 Host here</span></a></div>
<div colspan="2" style="text-align: left;"><select name="ysf2p25StartupDstId">
<?php
$p25Hosts = fopen("/usr/local/etc/P25Hosts.txt", "r");
if (isset($configysf2p25['P25 Network']['StartupDstId'])) {
$testP25Host = $configysf2p25['P25 Network']['StartupDstId'];
} else {
$testP25Host = "";
}
if ($testP25Host == "") { echo " <option value=\"none\" selected=\"selected\">None</option>\n"; }
else { echo " <option value=\"none\">None</option>\n"; }
if ($testP25Host == "10") { echo " <option value=\"10\" selected=\"selected\">10 - Parrot</option>\n"; }
else { echo " <option value=\"10\">10 - Parrot</option>\n"; }
while (!feof($p25Hosts)) {
$p25HostsLine = fgets($p25Hosts);
$p25Host = preg_split('/\s+/', $p25HostsLine);
if ((strpos($p25Host[0], '#') === FALSE ) && ($p25Host[0] != '')) {
if ($testP25Host == $p25Host[0]) { echo " <option value=\"$p25Host[0]\" selected=\"selected\">$p25Host[0] - $p25Host[1]</option>\n"; }
else { echo " <option value=\"$p25Host[0]\">$p25Host[0] - $p25Host[1]</option>\n"; }
}
}
fclose($p25Hosts);
if (file_exists('/usr/local/etc/P25HostsLocal.txt')) {
$p25Hosts2 = fopen("/usr/local/etc/P25HostsLocal.txt", "r");
while (!feof($p25Hosts2)) {
$p25HostsLine2 = fgets($p25Hosts2);
$p25Host2 = preg_split('/\s+/', $p25HostsLine2);
if ((strpos($p25Host2[0], '#') === FALSE ) && ($p25Host2[0] != '')) {
if ($testP25Host == $p25Host2[0]) { echo " <option value=\"$p25Host2[0]\" selected=\"selected\">$p25Host2[0] - $p25Host2[1]</option>\n"; }
else { echo " <option value=\"$p25Host2[0]\">$p25Host2[0] - $p25Host2[1]</option>\n"; }
}
}
fclose($p25Hosts2);
}
?>
</select></div>
</div>
<?php } ?>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && $configmmdvm['P25 Network']['Enable'] == 1) {
$p25Hosts = fopen("/usr/local/etc/P25Hosts.txt", "r");
?>
<h2><?php echo $lang['p25_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['p25_startup_host'];?>:<span><b>P25 Host</b>Set your prefered P25 Host here</span></a></div>
<div style="text-align: left;"><select name="p25StartupHost">
<?php
if (isset($configp25gateway['Network']['Startup'])) { $testP25Host = $configp25gateway['Network']['Startup']; }
elseif (isset($configp25gateway['Network']['Static'])) { $testP25Host = $configp25gateway['Network']['Static']; }
else { $testP25Host = "none"; }
if ($testP25Host == "") { echo " <option value=\"none\" selected=\"selected\">None</option>\n"; }
else { echo " <option value=\"none\">None</option>\n"; }
if ($testP25Host == "10") { echo " <option value=\"10\" selected=\"selected\">10 - Parrot</option>\n"; }
else { echo " <option value=\"10\">10 - Parrot</option>\n"; }
while (!feof($p25Hosts)) {
$p25HostsLine = fgets($p25Hosts);
$p25Host = preg_split('/\s+/', $p25HostsLine);
if ((strpos($p25Host[0], '#') === FALSE ) && ($p25Host[0] != '')) {
if ($testP25Host == $p25Host[0]) { echo " <option value=\"$p25Host[0]\" selected=\"selected\">$p25Host[0] - $p25Host[1]</option>\n"; }
else { echo " <option value=\"$p25Host[0]\">$p25Host[0] - $p25Host[1]</option>\n"; }
}
}
fclose($p25Hosts);
if (file_exists('/usr/local/etc/P25HostsLocal.txt')) {
$p25Hosts2 = fopen("/usr/local/etc/P25HostsLocal.txt", "r");
while (!feof($p25Hosts2)) {
$p25HostsLine2 = fgets($p25Hosts2);
$p25Host2 = preg_split('/\s+/', $p25HostsLine2);
if ((strpos($p25Host2[0], '#') === FALSE ) && ($p25Host2[0] != '')) {
if ($testP25Host == $p25Host2[0]) { echo " <option value=\"$p25Host2[0]\" selected=\"selected\">$p25Host2[0] - $p25Host2[1]</option>\n"; }
else { echo " <option value=\"$p25Host2[0]\">$p25Host2[0] - $p25Host2[1]</option>\n"; }
}
}
fclose($p25Hosts2);
}
?>
</select></div>
</div>
<?php if ($configmmdvm['P25']['NAC']) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['p25_nac'];?>:<span><b>P25 NAC</b>Set your NAC code here</span></a></div>
<div align="left"><input type="text" name="p25nac" size="13" maxlength="3" value="<?php echo $configmmdvm['P25']['NAC'];?>" /></div>
</div>
<?php } ?>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && ($configmmdvm['NXDN Network']['Enable'] == 1 || $configdmr2nxdn['Enabled']['Enabled'] == 1) ) { ?>
<h2><?php echo $lang['nxdn_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['nxdn_startup_host'];?>:<span><b>NXDN Host</b>Set your prefered NXDN Host here</span></a></div>
<div style="text-align: left;"><select name="nxdnStartupHost">
<?php
if (file_exists('/etc/nxdngateway')) {
$nxdnHosts = fopen("/usr/local/etc/NXDNHosts.txt", "r");
if (isset($confignxdngateway['Network']['Startup'])) { $testNXDNHost = $confignxdngateway['Network']['Startup']; }
elseif (isset($confignxdngateway['Network']['Static'])) { $testNXDNHost = $confignxdngateway['Network']['Static']; }
else { $testNXDNHost = ""; }
if ($testNXDNHost == "") { echo " <option value=\"none\" selected=\"selected\">None</option>\n"; }
else { echo " <option value=\"none\">None</option>\n"; }
if ($testNXDNHost == "10") { echo " <option value=\"10\" selected=\"selected\">10 - Parrot</option>\n"; }
else { echo " <option value=\"10\">10 - Parrot</option>\n"; }
while (!feof($nxdnHosts)) {
$nxdnHostsLine = fgets($nxdnHosts);
$nxdnHost = preg_split('/\s+/', $nxdnHostsLine);
if ((strpos($nxdnHost[0], '#') === FALSE ) && ($nxdnHost[0] != '')) {
if ($testNXDNHost == $nxdnHost[0]) { echo " <option value=\"$nxdnHost[0]\" selected=\"selected\">$nxdnHost[0] - $nxdnHost[1]</option>\n"; }
else { echo " <option value=\"$nxdnHost[0]\">$nxdnHost[0] - $nxdnHost[1]</option>\n"; }
}
}
fclose($nxdnHosts);
if (file_exists('/usr/local/etc/NXDNHostsLocal.txt')) {
$nxdnHosts2 = fopen("/usr/local/etc/NXDNHostsLocal.txt", "r");
while (!feof($nxdnHosts2)) {
$nxdnHostsLine2 = fgets($nxdnHosts2);
$nxdnHost2 = preg_split('/\s+/', $nxdnHostsLine2);
if ((strpos($nxdnHost2[0], '#') === FALSE ) && ($nxdnHost2[0] != '')) {
if ($testNXDNHost == $nxdnHost2[0]) { echo " <option value=\"$nxdnHost2[0]\" selected=\"selected\">$nxdnHost2[0] - $nxdnHost2[1]</option>\n"; }
else { echo " <option value=\"$nxdnHost2[0]\">$nxdnHost2[0] - $nxdnHost2[1]</option>\n"; }
}
}
fclose($nxdnHosts2);
}
} else {
echo '<option value="176.9.1.168">D2FET Test Host - 176.9.1.168</option>'."\n";
}
?>
</select></div>
</div>
<?php if ($configmmdvm['NXDN']['RAN']) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['nxdn_ran'];?>:<span><b>NXDN RAN</b>Set your RAN code here, sane values are 1-64</span></a></div>
<div align="left"><input type="text" name="nxdnran" size="13" maxlength="2" value="<?php echo $configmmdvm['NXDN']['RAN'];?>" /></div>
</div>
<?php } ?>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if (file_exists('/etc/dstar-radio.mmdvmhost') && ($configmmdvm['M17 Network']['Enable'] == 1) ) { ?>
<h2><?php echo $lang['m17_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['m17_startup_host'];?>:<span><b>M17 Host</b>Set your prefered M17 Host here</span></a></div>
<div style="text-align: left;"><select name="m17StartupHost">
<?php
if (file_exists('/etc/m17gateway')) {
$m17Hosts = fopen("/usr/local/etc/M17Hosts.txt", "r");
if (isset($configm17gateway['Network']['Startup'])) { $testM17Host = explode("_", $configm17gateway['Network']['Startup'])[0]; }
else { $testM17Host = ""; }
if ($testM17Host == "") { echo " <option value=\"none\" selected=\"selected\">None</option>\n"; }
else { echo " <option value=\"none\">None</option>\n"; }
while (!feof($m17Hosts)) {
$m17HostsLine = fgets($m17Hosts);
$m17Host = preg_split('/\s+/', $m17HostsLine);
if ((strpos($m17Host[0], '#') === FALSE ) && ($m17Host[0] != '')) {
if ($testM17Host == $m17Host[0]) { echo " <option value=\"$m17Host[0]\" selected=\"selected\">$m17Host[0]</option>\n"; }
else { echo " <option value=\"$m17Host[0]\">$m17Host[0]</option>\n"; }
}
}
fclose($m17Hosts);
if (file_exists('/root/M17Hosts.txt')) {
$m17Hosts2 = fopen("/root/M17Hosts.txt", "r");
while (!feof($m17Hosts2)) {
$m17HostsLine2 = fgets($m17Hosts2);
$m17Host2 = preg_split('/\s+/', $m17HostsLine2);
if ((strpos($m17Host2[0], '#') === FALSE ) && ($m17Host2[0] != '')) {
if ($testM17Host == $m17Host2[0]) { echo " <option value=\"$m17Host2[0]\" selected=\"selected\">$m17Host2[0]</option>\n"; }
else { echo " <option value=\"$m17Host2[0]\">$m17Host2[0]</option>\n"; }
}
}
fclose($m17Hosts2);
}
}
?>
</select>
<select name="m17StartupRoom">
<?php if (isset($configm17gateway['Network']['Startup'])) { echo "<option value=\"".substr($configm17gateway['Network']['Startup'], -1)."\" selected=\"selected\">".substr($configm17gateway['Network']['Startup'], -1)."</option>"; } ?>
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
<option>F</option>
<option>G</option>
<option>H</option>
<option>I</option>
<option>J</option>
<option>K</option>
<option>L</option>
<option>M</option>
<option>N</option>
<option>O</option>
<option>P</option>
<option>Q</option>
<option>R</option>
<option>S</option>
<option>T</option>
<option>U</option>
<option>V</option>
<option>W</option>
<option>X</option>
<option>Y</option>
<option>Z</option>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['m17_can'];?>:<span><b>M17 CAN</b>Set your CAN code here, sane values are 0-64</span></a></div>
<div align="left"><input type="text" name="m17can" size="13" maxlength="2" value="<?php echo $configmmdvm['M17']['CAN'];?>" /></div>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if ( $configmmdvm['POCSAG']['Enable'] == 1 ) { ?>
<h2><?php echo $lang['pocsag_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG Server:<span><b>POCSAG Server</b>Set the POCSAG Network here</span></a></div>
<div style="text-align: left;"><select name="pocsagServer">
<option value="<?php echo $configdapnetgw['DAPNET']['Address'];?>" selected="selected"><?php echo $configdapnetgw['DAPNET']['Address'];?></option>
<option value="dapnet.afu.rwth-aachen.de">dapnet.afu.rwth-aachen.de</option>
<option value="db0dbn.ig-funk-siebengebirge.de">db0dbn.ig-funk-siebengebirge.de</option>
<option value="dapnet.db0sda.ampr.org">dapnet.db0sda.ampr.org (HAMNET)</option>
<option value="node1.dapnet-italia.it">node1.dapnet-italia.it</option>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG <?php echo $lang['node_call'];?>:<span><b>POCSAG Callsign</b>Set your paging callsign here</span></a></div>
<div align="left"><input type="text" name="pocsagCallsign" size="13" maxlength="12" value="<?php echo $configdapnetgw['General']['Callsign'];?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG <?php echo $lang['radio_freq'];?>:<span><b>POCSAG Frequency</b>Set your paging frequency here</span></a></div>
<div align="left"><input type="text" id="pocsagFrequency" onkeyup="checkFrequency(); return false;" name="pocsagFrequency" size="13" maxlength="12" value="<?php echo number_format(round(($configmmdvm['POCSAG']['Frequency']/1000000),6), 6, '.', '');?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">DAPNET AuthKey:<span><b>DAPNET AuthKey</b>Set your DAPNET AuthKey here</span></a></div>
<div align="left"><input type="password" name="pocsagAuthKey" size="30" maxlength="50" value="<?php echo $configdapnetgw['DAPNET']['AuthKey'];?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG Whitelist:<span><b>POCSAG Whitelist</b>Set your POCSAG RIC Whitelist here, if these are set ONLY these RICs will be transmitted. List is comma seperated.</span></a></div>
<div align="left"><input type="text" name="pocsagWhitelist" size="60" maxlength="350" value="<?php if (isset($configdapnetgw['General']['WhiteList'])) { echo $configdapnetgw['General']['WhiteList']; } ?>" /></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">POCSAG Blacklist:<span><b>POCSAG Blacklist</b>Set your POCSAG RIC Blacklist here, if these are set any other RIC will be transmitted, but not these. List is comma seperated.</span></a></div>
<div align="left"><input type="text" name="pocsagBlacklist" size="60" maxlength="350" value="<?php if (isset($configdapnetgw['General']['BlackList'])) { echo $configdapnetgw['General']['BlackList']; } ?>" /></div>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<?php if ( file_exists('/etc/mobilegps') && file_exists('/etc/dstar-radio.mmdvmhost') ) { ?>
<input type="hidden" name="mobilegps_enable" value="OFF" />
<h2><?php echo $lang['mobilegps_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['mobilegps_enable'];?>:<span><b>MobileGPS</b>Enable the MobileGPS service, this uses a GPS dongle to update the position information in MMDVMHost.</span></a></div>
<?php
if ( isset($configmmdvm['Mobile GPS']['Enable']) ) {
if ( $configmmdvm['Mobile GPS']['Enable'] ) {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confMobilegps_enable\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"mobilegps_enable\" value=\"ON\" checked=\"checked\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleMobilegps_enableCr." /><label id=\"aria-toggle-confMobilegps_enable\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Mobile GPS\" aria-checked=\"true\" onKeyPress=\"toggleMobilegps_enable()\" onclick=\"toggleMobilegps_enable()\" for=\"toggle-confMobilegps_enable\"><font style=\"font-size:0px\">Mobile GPS</font></label></div></div>\n";
}
else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confMobilegps_enable\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"mobilegps_enable\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleMobilegps_enableCr." /><label id=\"aria-toggle-confMobilegps_enable\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Mobile GPS\" aria-checked=\"false\" onKeyPress=\"toggleMobilegps_enable()\" onclick=\"toggleMobilegps_enable()\" for=\"toggle-confMobilegps_enable\"><font style=\"font-size:0px\">Mobile GPS</font></label></div></div>\n";
}
} else {
echo "<div align=\"left\"><div class=\"switch\"><input id=\"toggle-confMobilegps_enable\" class=\"toggle toggle-round-flat\" type=\"checkbox\" name=\"mobilegps_enable\" value=\"ON\" aria-hidden=\"true\" tabindex=\"-1\" ".$toggleMobilegps_enableCr." /><label id=\"aria-toggle-confMobilegps_enable\" role=\"checkbox\" tabindex=\"0\" aria-label=\"Mobile GPS\" aria-checked=\"false\" onKeyPress=\"toggleMobilegps_enable()\" onclick=\"toggleMobilegps_enable()\" for=\"toggle-confMobilegps_enable\"><font style=\"font-size:0px\">Mobile GPS</font></label></div></div>\n";
}
?>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['mobilegps_port'];?>:<span><b>GPS Port</b>The port used by the Mobile GPS service.</span></a></div>
<div align="left"><select name="mobilegps_port">
<option value="<?php echo exec('grep "Port=/dev/" /etc/mobilegps | awk -F "=" \'{print $2}\' | awk -F "/" \'{print $3}\''); ?>" selected="selected"><?php echo exec('grep "Port=/dev/" /etc/mobilegps | awk -F "=" \'{print $2}\''); ?></option>
<?php
exec('ls /dev/ | egrep -h "ttyA|ttyUSB"', $mobileGPSPorts);
foreach($mobileGPSPorts as $port) {
echo " <option value=\"$port\">/dev/$port</option>\n";
}
?>
</select></div>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['mobilegps_speed'];?>:<span><b>GPS Port Speed</b>Port speed for the Mobile GPS port.</span></a></div>
<div align="left"><input type="text" name="mobilegps_speed" size="13" maxlength="6" value="<?php echo exec('grep "Speed" /etc/mobilegps | awk -F "=" \'{print $2}\''); ?>" /></div>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
<?php } ?>
<h2><?php echo $lang['fw_config'];?></h2>
<div class="settings-card">
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['fw_dash'];?>:<span><b>Dashboard Access</b>Do you want the dashboard access to be publicly available? This modifies the uPNP firewall configuration.</span></a></div>
<?php
$testPrvPubDash = exec('sudo grep "80 80" /usr/local/sbin/pistar-upnp.service | cut -c 1');
if (substr($testPrvPubDash, 0, 1) === '#') {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"dashAccess\" value=\"PRV\" checked=\"checked\" />Private <input type=\"radio\" name=\"dashAccess\" value=\"PUB\" />Public</div>\n";
}
else {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"dashAccess\" value=\"PRV\" />Private <input type=\"radio\" name=\"dashAccess\" value=\"PUB\" checked=\"checked\" />Public</div>\n";
}
?>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['fw_irc'];?>:<span><b>ircDDBGateway Remote</b>Do you want the ircDDBGateway remote control access to be publicly available? This modifies the uPNP firewall Configuration.</span></a></div>
<?php
$testPrvPubIRC = exec('sudo grep "10022 10022" /usr/local/sbin/pistar-upnp.service | cut -c 1');
if (substr($testPrvPubIRC, 0, 1) === '#') {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"ircRCAccess\" value=\"PRV\" checked=\"checked\" />Private <input type=\"radio\" name=\"ircRCAccess\" value=\"PUB\" />Public</div>\n";
}
else {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"ircRCAccess\" value=\"PRV\" />Private <input type=\"radio\" name=\"ircRCAccess\" value=\"PUB\" checked=\"checked\" />Public</div>\n";
}
?>
</div>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#"><?php echo $lang['fw_ssh'];?>:<span><b>SSH Access</b>Do you want access to be publicly available over SSH (used for support issues)? This modifies the uPNP firewall Configuration.</span></a></div>
<?php
$testPrvPubSSH = exec('sudo grep "22 22" /usr/local/sbin/pistar-upnp.service | cut -c 1');
if (substr($testPrvPubSSH, 0, 1) === '#') {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"sshAccess\" value=\"PRV\" checked=\"checked\" />Private <input type=\"radio\" name=\"sshAccess\" value=\"PUB\" />Public</div>\n";
}
else {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"sshAccess\" value=\"PRV\" />Private <input type=\"radio\" name=\"sshAccess\" value=\"PUB\" checked=\"checked\" />Public</div>\n";
}
?>
</div>
<?php if (file_exists('/etc/default/hostapd')) { ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">Auto AP:<span><b>Auto AP</b>Do you want your Pi to create its own AP if it cannot connect to WiFi within 120 secs of boot</span></a></div>
<?php
if (file_exists('/etc/hostap.off')) {
echo " <div align=\"left\"><input type=\"radio\" name=\"autoAP\" value=\"ON\" />On <input type=\"radio\" name=\"autoAP\" value=\"OFF\" checked=\"checked\" />Off</div>\n";
}
else {
echo " <div align=\"left\"><input type=\"radio\" name=\"autoAP\" value=\"ON\" checked=\"checked\" />On <input type=\"radio\" name=\"autoAP\" value=\"OFF\" />Off</div>\n";
}
?>
<div>Note: Reboot Required if changed</div>
</div>
<?php } ?>
<div class="field-row">
<div align="left"><a class="tooltip2" href="#">uPNP:<span><b>uPNP</b>Do you want your Pi to create its own Firewall rules for use with D-Star.</span></a></div>
<?php
$testupnp = exec('grep "pistar-upnp.service" /etc/crontab | cut -c 1');
if (substr($testupnp, 0, 1) === '#') {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"uPNP\" value=\"ON\" />On <input type=\"radio\" name=\"uPNP\" value=\"OFF\" checked=\"checked\" />Off</div>\n";
}
else {
echo " <div align=\"left\" colspan=\"2\"><input type=\"radio\" name=\"uPNP\" value=\"ON\" checked=\"checked\" />On <input type=\"radio\" name=\"uPNP\" value=\"OFF\" />Off</div>\n";
}
?>
</div>
</div>
<div class="field-actions"><input type="button" value="<?php echo $lang['apply'];?>" onclick="submitform()" /></div>
</form>
<?php
if ( file_exists('/sys/class/net/wlan0') || file_exists('/sys/class/net/wlan1') || file_exists('/sys/class/net/wlan0_ap') ) {
echo '
<br />
<h2>'.$lang['wifi_config'].'</h2>
<div class="settings-card" style="padding-top:16px;padding-bottom:16px;">
<iframe frameborder="0" scrolling="auto" name="wifi" src="wifi.php?page=wlan0_info" width="100%" onload="javascript:resizeIframe(this);">If you can see this message, your browser does not support iFrames, however if you would like to see the content please click <a href="wifi.php?page=wlan0_info">here</a>.</iframe>
</div>
<form id="autoApPassForm" action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="post">
<div class="settings-card">
<div class="field-row">
<div><b>Auto AP SSID:</b> '.php_uname('n').'</div>
<div><label for="psk1">PSK:</label><input type="password" name="autoapPsk" id="psk1" onkeyup="checkPsk(); return false;" size="20" />
<label for="psk2">Confirm PSK:</label><input type="password" name="autoapPsk" id="psk2" onkeyup="checkPskMatch(); return false;" />
<br /><span id="confirmMessage" class="confirmMessage"></span></div>
<div><input type="button" id="submitpsk" value="Set PSK" onclick="submitPskform()" disabled="disabled" /></div>
</div>
</div>
</form>';} ?>
<br />
<h2><?php echo $lang['remote_access_pw'];?></h2>
<form id="adminPassForm" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="settings-card">
<div class="field-row">
<div><b><?php echo $lang['user'];?>:</b> cdn</div>
<div><label for="pass1">Password:</label><input type="password" name="adminPassword" id="pass1" onkeyup="checkPass(); return false;" size="20" />
<label for="pass2">Confirm Password:</label><input type="password" name="adminPassword" id="pass2" onkeyup="checkPass(); return false;" />
<br /><span id="confirmMessage" class="confirmMessage"></span></div>
<div><input type="button" id="submitpwd" value="<?php echo $lang['set_password'];?>" onclick="submitPassform()" disabled="disabled" /></div>
</div>
<div class="field-row"><div class="field-note" style="flex:1 1 100%;"><b>WARNING:</b> This changes the password for this admin page only, not the "cdn" SSH account</div></div>
</div>
</form>
<?php endif; ?>
<br />
</div>
</div>
<script type="text/javascript" src="/nice-select.min.js"></script>
<script type="text/javascript">
var selectize = document.querySelectorAll('select')
var options = {searchable: true};
selectize.forEach(function(select){
if( select.length > 30 && null === select.onchange && !select.name.includes("ExtendedId") ) {
select.classList.add("small", "selectize");
tabletd = select.closest('.field-row') || select.closest('td');
tabletd.style.cssText = 'overflow-x:unset';
NiceSelect.bind(select, options);
}
});
</script>
</body>
</html>
<?php } else { ?>
<br />
<br />
</div>
</div>
<script type="text/javascript" src="/nice-select.min.js"></script>
<script type="text/javascript">
var selectize = document.querySelectorAll('select')
var options = {searchable: true};
selectize.forEach(function(select){
if( select.length > 30 && null === select.onchange && !select.name.includes("ExtendedId") ) {
select.classList.add("small", "selectize");
tabletd = select.closest('.field-row') || select.closest('td');
tabletd.style.cssText = 'overflow-x:unset';
NiceSelect.bind(select, options);
}
});
</script>
</body>
</html>
<?php } ?>