diff --git a/system/autoload/Message.php b/system/autoload/Message.php
index aab67ed2..c8f184d9 100644
--- a/system/autoload/Message.php
+++ b/system/autoload/Message.php
@@ -24,9 +24,20 @@ class Message
global $config;
run_hook('send_sms'); #HOOK
if (!empty($config['sms_url'])) {
- $smsurl = str_replace('[number]', urlencode($phone), $config['sms_url']);
- $smsurl = str_replace('[text]', urlencode($txt), $smsurl);
- Http::getData($smsurl);
+ if (strlen($config['sms_url']) > 4 && substr($config['sms_url'], 0, 4) != "http") {
+ try{
+ $mikrotik = Mikrotik::info($config['sms_url']);
+ $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
+ Mikrotik::sendSMS($client, $phone, $txt);
+ }catch(Exception $e){
+ // ignore, add to logs
+ _log("Failed to send SMS using Mikrotik.\n". $e->getMessage(), 'SMS', 0);
+ }
+ } else {
+ $smsurl = str_replace('[number]', urlencode($phone), $config['sms_url']);
+ $smsurl = str_replace('[text]', urlencode($txt), $smsurl);
+ Http::getData($smsurl);
+ }
}
}
diff --git a/system/autoload/Mikrotik.php b/system/autoload/Mikrotik.php
index 0f67475a..e496d4c1 100644
--- a/system/autoload/Mikrotik.php
+++ b/system/autoload/Mikrotik.php
@@ -501,4 +501,19 @@ class Mikrotik
->setArgument('numbers', $profileID)
);
}
+
+ public static function sendSMS($client, $to, $message)
+ {
+ global $_app_stage;
+ if ($_app_stage == 'demo') {
+ return null;
+ }
+
+ $req = new RouterOS\Request('/tool/sms/send');
+ $client(
+ $req
+ ->setArgument('phone', $to)
+ ->setArgument('message', $message)
+ );
+ }
}
diff --git a/system/controllers/settings.php b/system/controllers/settings.php
index 989d1514..e49fca14 100644
--- a/system/controllers/settings.php
+++ b/system/controllers/settings.php
@@ -38,8 +38,14 @@ switch ($action) {
$themes[] = $file;
}
}
- $php = trim(shell_exec('which php'));
- if (empty($php)) {
+ $r = ORM::for_table('tbl_routers')->find_many();
+ $ui->assign('r', $r);
+ if (function_exists("shell_exec")) {
+ $php = trim(shell_exec('which php'));
+ if (empty($php)) {
+ $php = 'php';
+ }
+ } else {
$php = 'php';
}
$ui->assign('php', $php);
@@ -473,10 +479,9 @@ switch ($action) {
$d->value = $tawkto;
$d->save();
}
-
if ($radius_enable) {
try {
- Radius::getTableNas()->find_one(1);
+ Radius::getTableNas()->find_many();
} catch (Exception $e) {
$ui->assign("error_title", "RADIUS Error");
$ui->assign("error_message", "Radius table not found.
" .
diff --git a/ui/ui/app-settings.tpl b/ui/ui/app-settings.tpl
index 5fb0a3fd..0048a0ca 100644
--- a/ui/ui/app-settings.tpl
+++ b/ui/ui/app-settings.tpl
@@ -225,6 +225,20 @@
replaced.
Must include [text] & [number], it will be + replaced. +
+