Esempio n. 1
0
 case "sms_subscribe_add_yes":
     $add_subscribe_keyword = strtoupper($_POST['add_subscribe_keyword']);
     $add_subscribe_msg = $_POST['add_subscribe_msg'];
     $add_unsubscribe_msg = $_POST['add_unsubscribe_msg'];
     $add_subscribe_param = strtoupper($_POST['add_subscribe_param']);
     $add_unsubscribe_param = strtoupper($_POST['add_unsubscribe_param']);
     $add_forward_param = strtoupper($_POST['add_forward_param'] ? $_POST['add_forward_param'] : 'BC');
     $add_unknown_format_msg = $_POST['add_unknown_format_msg'];
     $add_already_member_msg = $_POST['add_already_member_msg'];
     $add_expire_msg = $_POST['add_expire_msg'];
     $add_duration = (int) $_POST['add_duration'];
     if (auth_isadmin()) {
         $smsc = $_REQUEST['smsc'];
     }
     if ($add_subscribe_keyword && $add_subscribe_msg && $add_unsubscribe_msg && $add_forward_param && $add_unknown_format_msg && $add_already_member_msg) {
         if (checkavailablekeyword($add_subscribe_keyword)) {
             $db_query = "\n\t\t\t\t\tINSERT INTO " . _DB_PREF_ . "_featureSubscribe (uid,subscribe_keyword,subscribe_msg,unsubscribe_msg, subscribe_param, unsubscribe_param, forward_param, unknown_format_msg, already_member_msg,smsc,duration,expire_msg)\n\t\t\t\t\tVALUES ('" . $user_config['uid'] . "','{$add_subscribe_keyword}','{$add_subscribe_msg}','{$add_unsubscribe_msg}','{$add_subscribe_param}','{$add_unsubscribe_param}','{$add_forward_param}','{$add_unknown_format_msg}','{$add_already_member_msg}','{$smsc}','{$add_duration}','{$add_expire_msg}')";
             if ($new_uid = @dba_insert_id($db_query)) {
                 $_SESSION['error_string'] = _('SMS subscribe has been added') . " (" . _('keyword') . ": {$add_subscribe_keyword})";
             } else {
                 $_SESSION['error_string'] = _('Fail to add SMS subscribe') . " (" . _('keyword') . ": {$add_subscribe_keyword})";
             }
         } else {
             $_SESSION['error_string'] = _('SMS subscribe already exists, reserved or use by other feature') . " (" . _('keyword') . ": {$add_subscribe_keyword})";
         }
     } else {
         $_SESSION['error_string'] = _('You must fill all fields');
     }
     header("Location: " . _u('index.php?app=main&inc=feature_sms_subscribe&op=sms_subscribe_add'));
     exit;
     break;
Esempio n. 2
0
$message_id = $r['message_id'];
$sms_datetime = core_display_datetime(core_get_datetime());
$sms_sender = $r['from'];
$message = $r['message'];
$sms_receiver = $r['sent_to'];
$ok = FALSE;
if ($sms_sync_enable && $c_uid && $r['secret'] == $sms_sync_secret && $message_id && $sms_sender && $message) {
    $db_table = _DB_PREF_ . '_featureSmssysnc';
    $conditions = array('uid' => $c_uid, 'message_id' => $message_id);
    if (dba_isavail($db_table, $conditions, 'AND')) {
        _log("saving uid:" . $c_uid . " dt:" . $sms_datetime . " ts:" . $r['sent_timestamp'] . " message_id:" . $message_id . " s:" . $sms_sender . " m:" . $message . " r:" . $sms_receiver, 3, "sms_sync sync");
        // if keyword does not exists (checkavailablekeyword == TRUE)
        // then prefix the message with an @username so that it will be routed to $c_uid's inbox
        $m = explode(' ', $message);
        $c_m = str_replace('#', '', $m[0]);
        if (checkavailablekeyword($c_m)) {
            _log("forwarded to inbox uid:" . $c_uid . " message_id:" . $message_id, 3, "sms_sync sync");
            $message = "@" . user_uid2username($c_uid) . " " . $message;
        }
        // route it
        if ($recvsms_id = recvsms($sms_datetime, $sms_sender, $message, $sms_receiver)) {
            $items = array('uid' => $c_uid, 'message_id' => $message_id, 'recvsms_id' => $recvsms_id);
            dba_add($db_table, $items);
            _log("saved uid:" . $c_uid . " message_id:" . $message_id . " recvsms_id:" . $recvsms_id, 3, "sms_sync sync");
            $ret = array('payload' => array('success' => "true", 'error' => NULL));
            $ok = TRUE;
        } else {
            $error_string = "fail to save uid:" . $c_uid . " message_id:" . $message_id;
            _log($error_string, 3, "sms_sync sync");
        }
    } else {
Esempio n. 3
0
         }
     }
     header("Location: " . _u('index.php?app=main&inc=feature_sms_board&op=sms_board_list'));
     exit;
     break;
 case "sms_board_add":
     $content = _err_display() . "\n\t\t\t<h2>" . _('Manage board') . "</h2>\n\t\t\t<h3>" . _('Add SMS board') . "</h3>\n\t\t\t<form action=index.php?app=main&inc=feature_sms_board&op=sms_board_add_yes method=post>\n\t\t\t" . _CSRF_FORM_ . "\n\t\t\t<table class=playsms-table cellpadding=1 cellspacing=2 border=0>\n\t\t\t<tr>\n\t\t\t\t<td class=label-sizer>" . _('SMS board keyword') . "</td><td><input type=text maxlength=30 name=add_board_keyword value=\"{$add_board_keyword}\"></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . _('Forward to email') . "</td><td><input type=text name=add_email value=\"{$add_email}\"></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . _('CSS URL') . "</td><td><input type=text name=add_css value=\"{$add_css}\"></td>\n\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<p><input type=submit class=button value=\"" . _('Save') . "\">\n\t\t\t</form>\n\t\t\t" . _back('index.php?app=main&inc=feature_sms_board&op=sms_board_list');
     _p($content);
     break;
 case "sms_board_add_yes":
     $add_board_keyword = strtoupper($_POST['add_board_keyword']);
     $add_email = $_POST['add_email'];
     $add_css = $_POST['add_css'];
     $add_template = $_POST['add_template'];
     if ($add_board_keyword) {
         if (checkavailablekeyword($add_board_keyword)) {
             if (!$add_template) {
                 $add_template = "<div class=sms_board_row>\n";
                 $add_template .= "\t<div class=sender>{SENDER}</div>\n";
                 $add_template .= "\t<div class=datetime>{DATETIME}</div>\n";
                 $add_template .= "\t<div class=message>{MESSAGE}</div>\n";
                 $add_template .= "</div>\n";
             }
             $db_query = "\n\t\t\t\t\tINSERT INTO " . _DB_PREF_ . "_featureBoard (uid,board_keyword,board_forward_email,board_css,board_pref_template)\n\t\t\t\t\tVALUES ('" . $user_config['uid'] . "','{$add_board_keyword}','{$add_email}','{$add_css}','{$add_template}')";
             if ($new_uid = @dba_insert_id($db_query)) {
                 $_SESSION['error_string'] = _('SMS board has been added') . " (" . _('keyword') . ": {$add_board_keyword})";
             } else {
                 $_SESSION['error_string'] = _('Fail to add SMS board') . " (" . _('keyword') . ": {$add_board_keyword})";
             }
         } else {
             $_SESSION['error_string'] = _('SMS keyword already exists, reserved or use by other feature') . " (" . _('keyword') . ": {$add_board_keyword})";
Esempio n. 4
0
            }
        }
        header("Location: index.php?app=menu&inc=feature_sms_custom&op=sms_custom_list&err=" . urlencode($error_string));
        break;
    case "sms_custom_add":
        if ($err) {
            $content = "<div class=error_string>{$err}</div>";
        }
        $content .= "\n\t    <h2>" . _('Add SMS custom') . "</h2>\n\t    <p>\n\t    <form action=index.php?app=menu&inc=feature_sms_custom&op=sms_custom_add_yes method=post>\n\t    <p>" . _('SMS custom keyword') . ": <input type=text size=10 maxlength=10 name=add_custom_keyword value=\"{$add_custom_keyword}\">\n\t    <p>" . _('Pass these parameter to custom URL field') . ":\n\t    <p><b>{SMSDATETIME}</b> " . _('will be replaced by SMS incoming date/time') . "\n\t    <p><b>{SMSSENDER}</b> " . _('will be replaced by sender number') . "\n\t    <p><b>{CUSTOMKEYWORD}</b> " . _('will be replaced by custom keyword') . "\n\t    <p><b>{CUSTOMPARAM}</b> " . _('will be replaced by custom parameter passed to server from SMS') . "\n\t    <p>" . _('SMS custom URL') . ": <input type=text size=60 maxlength=200 name=add_custom_url value=\"{$add_custom_url}\">\n\t    <p><input type=submit class=button value=\"" . _('Add') . "\">\n\t    </form>\n\t";
        echo $content;
        break;
    case "sms_custom_add_yes":
        $add_custom_keyword = strtoupper($_POST['add_custom_keyword']);
        $add_custom_url = $_POST['add_custom_url'];
        if ($add_custom_keyword && $add_custom_url) {
            if (checkavailablekeyword($add_custom_keyword)) {
                $db_query = "INSERT INTO " . _DB_PREF_ . "_featureCustom (uid,custom_keyword,custom_url) VALUES ('{$uid}','{$add_custom_keyword}','{$add_custom_url}')";
                if ($new_uid = @dba_insert_id($db_query)) {
                    $error_string = _('SMS custom has been added') . " (" . _('keyword') . ": `{$add_custom_keyword}`)";
                } else {
                    $error_string = _('Fail to add SMS custom') . " (" . _('keyword') . ": `{$add_custom_keyword}`)";
                }
            } else {
                $error_string = _('SMS custom already exists, reserved or use by other feature') . " (" . _('keyword') . ": `{$add_custom_keyword}`)";
            }
        } else {
            $error_string = _('You must fill all fields');
        }
        header("Location: index.php?app=menu&inc=feature_sms_custom&op=sms_custom_add&err=" . urlencode($error_string));
        break;
}
        }
        header("Location: index.php?app=menu&inc=feature_sms_collect&op=sms_collect_list");
        exit;
        break;
    case "sms_collect_add":
        if ($err = $_SESSION['error_string']) {
            $content = "<div class=error_string>{$err}</div>";
        }
        $content .= "\n\t\t\t<h2>" . _('Manage collect') . "</h2>\n\t\t\t<h3>" . _('Add SMS collect') . "</h3>\n\t\t\t<form action=index.php?app=menu&inc=feature_sms_collect&op=sms_collect_add_yes method=post>\n\t\t\t<table width=100%>\n\t\t\t<tr>\n\t\t\t\t<td width=270>" . _('SMS collect keyword') . "</td><td><input type=text size=8 maxlength=10 name=add_collect_keyword value=\"{$add_collect_keyword}\"></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . _('SMS collect reply') . "</td><td><input type=text size=30 maxlength=200 name=add_collect_msg value=\"{$add_collect_msg}\"></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>" . _('Forward to email') . "</td><td><input type=text size=30 maxlength=250 name=add_collect_fwd_email value=\"{$add_collect_fwd_email}\"></td>\n\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<p><input type=submit class=button value=\"" . _('Save') . "\">\n\t\t\t</form>\n\t\t\t" . _b('index.php?app=menu&inc=feature_sms_collect&op=sms_collect_list');
        echo $content;
        break;
    case "sms_collect_add_yes":
        $add_collect_keyword = strtoupper($_REQUEST['add_collect_keyword']);
        $add_collect_msg = $_REQUEST['add_collect_msg'];
        $add_collect_fwd_email = $_REQUEST['add_collect_fwd_email'];
        if ($add_collect_keyword && $add_collect_msg) {
            if (checkavailablekeyword($add_collect_keyword)) {
                $db_query = "\n\t\t\t\t\tINSERT INTO " . _DB_PREF_ . "_featureCollect (uid,collect_keyword,collect_msg, collect_fwd_email)\n\t\t\t\t\tVALUES ('{$uid}','{$add_collect_keyword}','{$add_collect_msg}', '{$add_collect_fwd_email}')";
                if ($new_uid = @dba_insert_id($db_query)) {
                    $_SESSION['error_string'] = _('SMS collect has been added') . " (" . _('keyword') . ": " . $add_collect_keyword . ")";
                }
            } else {
                $_SESSION['error_string'] = _('SMS collect already exists, reserved or use by other feature') . " (" . _('keyword') . ": " . $add_collect_keyword . ")";
            }
        } else {
            $_SESSION['error_string'] = _('You must fill all fields');
        }
        header("Location: index.php?app=menu&inc=feature_sms_collect&op=sms_collect_add");
        exit;
        break;
}
Esempio n. 6
0
             $error_string = _('Fail to delete SMS autoreply') . " (" . _('keyword') . ": `{$keyword_name}`";
         }
     }
     header("Location: index.php?app=menu&inc=feature_sms_autoreply&op=sms_autoreply_list&err=" . urlencode($error_string));
     break;
 case "sms_autoreply_add":
     if ($err) {
         $content = "<div class=error_string>{$err}</div>";
     }
     $content .= "\n\t    <h2>" . _('Add SMS autoreply') . "</h2>\n\t    <p>\n\t    <form action=index.php?app=menu&inc=feature_sms_autoreply&op=sms_autoreply_add_yes method=post>\n\t    <p>" . _('SMS autoreply keyword') . ": <input type=text size=10 maxlength=10 name=add_autoreply_keyword value=\"{$add_autoreply_keyword}\">\n\t    <p><input type=submit class=button value=" . _('Add') . ">\n\t    </form>\n\t";
     echo $content;
     break;
 case "sms_autoreply_add_yes":
     $add_autoreply_keyword = strtoupper($_POST['add_autoreply_keyword']);
     if ($add_autoreply_keyword) {
         if (checkavailablekeyword($add_autoreply_keyword)) {
             $db_query = "INSERT INTO " . _DB_PREF_ . "_featureAutoreply (uid,autoreply_keyword) VALUES ('{$uid}','{$add_autoreply_keyword}')";
             if ($new_uid = @dba_insert_id($db_query)) {
                 $error_string = _('SMS autoreply keyword has been added') . " (" . _('keyword') . ": `{$add_autoreply_keyword}`)";
             } else {
                 $error_string = _('Fail to add SMS autoreply') . " (" . _('keyword') . ": `{$add_autoreply_keyword}`)";
             }
         } else {
             $error_string = _('SMS keyword already exists, reserved or use by other feature') . " (" . _('keyword') . ": `{$add_autoreply_keyword}`)";
         }
     } else {
         $error_string = _('You must fill all fields');
     }
     header("Location: index.php?app=menu&inc=feature_sms_autoreply&op=sms_autoreply_add&err=" . urlencode($error_string));
     break;
     // scenario
Esempio n. 7
0
        }
        header("Location: index.php?app=menu&inc=feature_sms_quiz&op=sms_quiz_list&err=" . urlencode($error_string));
        break;
    case "sms_quiz_add":
        if ($err) {
            $content = "<div class=error_string>{$err}</div>";
        }
        $content .= "\n\t\t\t\t<h2>" . _('Add SMS quiz') . "</h2>\n\t\t\t\t<p>\n\t\t\t\t<form action=index.php?app=menu&inc=feature_sms_quiz&op=sms_quiz_add_yes method=post>\n\t\t\t<table width=100% cellpadding=1 cellspacing=2 border=0>\n\t\t\t\t<tr>\n\t\t\t\t<td width=150>" . _('SMS quiz keyword') . "</td><td width=5>:</td><td><input type=text size=3 maxlength=10 name=add_quiz_keyword value=\"{$add_quiz_keyword}\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t<td>" . _('SMS quiz question') . "</td><td>:</td><td><input type=text size=40 maxlength=200 name=add_quiz_question value=\"{$add_quiz_question}\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t<td>" . _('SMS quiz answer') . "</td><td>:</td><td><input type=text size=12 maxlength=200 name=add_quiz_answer value=\"{$add_quiz_answer}\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t<td>" . _('Message when correct') . "</td><td>:</td><td><input type=text size=40 maxlength=200 name=add_quiz_msg_correct value=\"{$add_quiz_msg_correct}\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t<td>" . _('Message when incorrect') . "</td><td>:</td><td><input type=text size=40 maxlength=200 name=add_quiz_msg_incorrect value=\"{$add_quiz_msg_incorrect}\"></td>\n\t\t\t\t</tr>\t    \n\t\t\t</table>\n\t\t\t\t<p><input type=submit class=button value=\"" . _('Add') . "\">\n\t\t\t\t</form>\n\t\t\t";
        echo $content;
        break;
    case "sms_quiz_add_yes":
        $add_quiz_keyword = strtoupper($_POST['add_quiz_keyword']);
        $add_quiz_question = $_POST['add_quiz_question'];
        $add_quiz_answer = strtoupper($_POST['add_quiz_answer']);
        $add_quiz_msg_correct = $_POST['add_quiz_msg_correct'];
        $add_quiz_msg_incorrect = $_POST['add_quiz_msg_incorrect'];
        if ($add_quiz_keyword && $add_quiz_answer) {
            if (checkavailablekeyword($add_quiz_keyword)) {
                $db_query = "\n\t\t\t\t\t\t\tINSERT INTO " . _DB_PREF_ . "_featureQuiz (uid,quiz_keyword,quiz_question,quiz_answer,quiz_msg_correct,quiz_msg_incorrect)\n\t\t\t\t\t\t\tVALUES ('{$uid}','{$add_quiz_keyword}','{$add_quiz_question}','{$add_quiz_answer}','{$add_quiz_msg_correct}','{$add_quiz_msg_incorrect}')\n\t\t\t\t\t\t";
                if ($new_uid = @dba_insert_id($db_query)) {
                    $error_string = _('SMS quiz has been added') . " (" . _('keyword') . ": `{$add_quiz_keyword}`)";
                }
            } else {
                $error_string = _('SMS quiz already exists, reserved or use by other feature') . " (" . _('keyword') . ": `{$add_quiz_keyword}`)";
            }
        } else {
            $error_string = _('You must fill all field');
        }
        header("Location: index.php?app=menu&inc=feature_sms_quiz&op=sms_quiz_add&err=" . urlencode($error_string));
        break;
}
Esempio n. 8
0
                dba_query($db_query);
                $error_string = _('SMS poll choice and all its voters has been deleted') . " (" . _('keyword') . ": `{$choice_keyword}`)";
            }
        }
        header("Location: index.php?app=menu&inc=feature_sms_poll&op=sms_poll_edit&poll_id={$poll_id}&err=" . urlencode($error_string));
        break;
    case "sms_poll_add":
        if ($err) {
            $content = "<div class=error_string>{$err}</div>";
        }
        $content .= "\n\t    <h2>" . _('Add SMS poll') . "</h2>\n\t    <p>\n\t    <form action=index.php?app=menu&inc=feature_sms_poll&op=sms_poll_add_yes method=post>\n\t<table width=100% cellpadding=1 cellspacing=2 border=0>\n\t    <tr>\n\t\t<td width=150>" . _('SMS poll keyword') . "</td><td width=5>:</td><td><input type=text size=3 maxlength=10 name=add_poll_keyword value=\"{$add_poll_keyword}\"></td>\n\t    </tr>\n\t    <tr>\n\t\t<td>" . _('SMS poll title') . "</td><td>:</td><td><input type=text size=60 maxlength=200 name=add_poll_title value=\"{$add_poll_title}\"></td>\n\t    </tr>\t    \n\t</table>\n\t    <p><input type=submit class=button value=\"" . _('Add') . "\">\n\t    </form>\n\t";
        echo $content;
        break;
    case "sms_poll_add_yes":
        $add_poll_keyword = strtoupper($_POST['add_poll_keyword']);
        $add_poll_title = $_POST['add_poll_title'];
        if ($add_poll_title && $add_poll_keyword) {
            if (checkavailablekeyword($add_poll_keyword)) {
                $db_query = "\n\t\t    INSERT INTO " . _DB_PREF_ . "_featurePoll (uid,poll_keyword,poll_title)\n\t\t    VALUES ('{$uid}','{$add_poll_keyword}','{$add_poll_title}')\n\t\t";
                if ($new_uid = @dba_insert_id($db_query)) {
                    $error_string = _('SMS poll has been added') . " (" . _('keyword') . ": `{$add_poll_keyword}`)";
                }
            } else {
                $error_string = _('SMS poll already exists, reserved or use by other feature') . " (" . _('keyword') . ": `{$add_poll_keyword}`)";
            }
        } else {
            $error_string = _('You must fill all fields');
        }
        header("Location: index.php?app=menu&inc=feature_sms_poll&op=sms_poll_add&err=" . urlencode($error_string));
        break;
}
Esempio n. 9
0
function sms_survey_dataadd($keyword, $title)
{
    global $core_config;
    // check available keyword in the system, it will returns TRUE if available
    if (checkavailablekeyword($keyword)) {
        $datetime_now = $core_config['datetime']['now'];
        $uid = $core_config['user']['uid'];
        $keyword = trim(strtoupper($keyword));
        $db_query = "INSERT INTO " . _DB_PREF_ . "_featureSurvey (uid,keyword,title,creation_datetime) ";
        $db_query .= "VALUES ('{$uid}','{$keyword}','{$title}','{$datetime_now}')";
        $id = dba_insert_id($db_query);
    }
    return $id;
}
Esempio n. 10
0
function inboxgroup_dataedit($rid, $keywords, $description, $exclusive)
{
    $db_query = "SELECT keywords FROM " . _DB_PREF_ . "_featureInboxgroup WHERE id='{$rid}'";
    $db_result = dba_query($db_query);
    $db_row = dba_fetch_array($db_result);
    $orig_keywords = explode(',', $db_row['keywords']);
    $exclusive = $exclusive ? 1 : 0;
    $keywords = str_replace(' ', '', $keywords);
    $keywords = trim(strtoupper($keywords));
    $keywords = explode(',', $keywords);
    $k = '';
    for ($i = 0; $i < count($keywords); $i++) {
        if (checkavailablekeyword($keywords[$i])) {
            $k .= $keywords[$i] . ',';
        } else {
            for ($j = 0; $j < count($orig_keywords); $j++) {
                if ($keywords[$i] == $orig_keywords[$j]) {
                    $k .= $keywords[$i] . ',';
                }
            }
        }
    }
    if ($keywords = substr($k, 0, -1)) {
        $db_query = "UPDATE " . _DB_PREF_ . "_featureInboxgroup SET c_timestamp='" . mktime() . "',keywords='{$keywords}',description='{$description}',exclusive='{$exclusive}' WHERE deleted='0' AND id='{$rid}'";
        $db_result = dba_affected_rows($db_query);
    } else {
        $db_result = true;
    }
    return $db_result;
}
Esempio n. 11
0
    case "sms_command_add":
        if ($err) {
            $content = "<div class=error_string>{$err}</div>";
        }
        $content .= "\n\t    <h2>" . _('Add SMS command') . "</h2>\n\t    <p>\n\t    <form action=index.php?app=menu&inc=feature_sms_command&op=sms_command_add_yes method=post>\n\t    <p>" . _('SMS command keyword') . ": <input type=text size=10 maxlength=10 name=add_command_keyword value=\"{$add_command_keyword}\">\n\t    <p>" . _('Pass these parameter to command exec field') . ":\n\t    <p><b>{SMSDATETIME}</b> " . _('will be replaced by SMS incoming date/time') . "\n\t    <p><b>{SMSSENDER}</b> " . _('will be replaced by sender number') . "\n\t    <p><b>{COMMANDKEYWORD}</b> " . _('will be replaced by command keyword') . "\n\t    <p><b>{COMMANDPARAM}</b> " . _('will be replaced by command parameter passed to server from SMS') . "\n\t    <p>" . _('SMS command exec path') . ": <b>" . $plugin_config['feature']['sms_command']['bin'] . "</b>\n\t    <p>" . _('SMS command exec') . ": <input type=text size=60 maxlength=200 name=add_command_exec value=\"{$add_command_exec}\">\n\t    <p><input type=submit class=button value=\"" . _('Add') . "\">\n\t    </form>\n\t";
        echo $content;
        break;
    case "sms_command_add_yes":
        $add_command_keyword = strtoupper($_POST['add_command_keyword']);
        $add_command_exec = $_POST['add_command_exec'];
        if ($add_command_keyword && $add_command_exec) {
            $add_command_exec = $add_command_exec;
            $add_command_exec = str_replace("/", "", $add_command_exec);
            $add_command_exec = str_replace("|", "", $add_command_exec);
            $add_command_exec = str_replace("\\", "", $add_command_exec);
            if (checkavailablekeyword($add_command_keyword)) {
                $db_query = "INSERT INTO " . _DB_PREF_ . "_featureCommand (uid,command_keyword,command_exec) VALUES ('{$uid}','{$add_command_keyword}','{$add_command_exec}')";
                if ($new_uid = @dba_insert_id($db_query)) {
                    $error_string = _('SMS command has been added') . " (" . _('keyword') . " `{$add_command_keyword}`)";
                } else {
                    $error_string = _('Fail to add SMS command') . " (" . _('keyword') . ": `{$add_command_keyword}`)";
                }
            } else {
                $error_string = _('SMS command already exists, reserved or use by other feature') . " (" . _('keyword') . ": `{$add_command_keyword}`)";
            }
        } else {
            $error_string = _('You must fill all fields');
        }
        header("Location: index.php?app=menu&inc=feature_sms_command&op=sms_command_add&err=" . urlencode($error_string));
        break;
}
Esempio n. 12
0
/**
 * Intercept on before-process stage for incoming SMS
 *
 * @param $sms_datetime incoming
 *        	SMS date/time
 * @param $sms_sender incoming
 *        	SMS sender
 * @param $message incoming
 *        	SMS message before interepted
 * @param $sms_receiver receiver
 *        	number that is receiving incoming SMS
 * @param $reference_id reference_id
 *        	data
 * @return array $ret
 */
function incoming_hook_recvsms_intercept($sms_datetime, $sms_sender, $message, $sms_receiver, $reference_id)
{
    $ret = array();
    $found_bc = FALSE;
    $found_pv = FALSE;
    // continue only when keyword does not exists
    $m = explode(' ', $message);
    if (!checkavailablekeyword($m[0])) {
        return $ret;
    }
    // get settings
    $settings = incoming_settings_get();
    // get post rules
    $pre_rules = incoming_pre_rules_get();
    // scan for #<sender's phonebook group code> and @<username> according to pre rules
    $msg = explode(' ', $message);
    if (count($msg) > 0) {
        $bc = array();
        $pv = array();
        for ($i = 0; $i < count($msg); $i++) {
            $c_text = trim($msg[$i]);
            // scan message for @username
            if ($pre_rules['match_username']) {
                if (substr($c_text, 0, 1) === '@') {
                    $pv[] = strtolower(substr($c_text, 1));
                    $found_pv = TRUE;
                }
            }
            // scan message for #groupcode
            if ($pre_rules['match_groupcode']) {
                if (substr($c_text, 0, 1) === '#') {
                    $bc[] = strtoupper(substr($c_text, 1));
                    $found_bc = TRUE;
                }
            }
        }
    }
    if ($found_bc || $found_pv) {
        _log("recvsms_intercept dt:" . $sms_datetime . " s:" . $sms_sender . " r:" . $sms_receiver . " m:" . $message, 3, 'incoming recvsms_intercept');
    }
    if ($found_bc) {
        $groups = array_unique($bc);
        foreach ($groups as $key => $c_group_code) {
            $c_group_code = strtoupper($c_group_code);
            $c_group_code = core_sanitize_alphanumeric($c_group_code);
            $c_uid = user_mobile2uid($sms_sender);
            if ($c_uid && ($c_gpid = phonebook_groupcode2id($c_uid, $c_group_code))) {
                $c_username = user_uid2username($c_uid);
                _log("bc g:" . $c_group_code . " gpid:" . $c_gpid . " uid:" . $c_uid . " dt:" . $sms_datetime . " s:" . $sms_sender . " r:" . $sms_receiver . " m:" . $message, 3, 'incoming recvsms_intercept');
                sendsms_bc($c_username, $c_gpid, $message);
                _log("bc end", 3, 'incoming recvsms_intercept');
                $ret['uid'] = $c_uid;
                $ret['hooked'] = true;
            } else {
                // check the group_code for flag_sender<>0
                $db_query = "SELECT id,uid,flag_sender FROM " . _DB_PREF_ . "_featurePhonebook_group WHERE code='{$c_group_code}' AND flag_sender<>0";
                $db_result = dba_query($db_query);
                if ($db_row = dba_fetch_array($db_result)) {
                    $c_gpid = $db_row['id'];
                    $c_uid = $db_row['uid'];
                    $c_flag_sender = $db_row['flag_sender'];
                    if ($c_flag_sender == 2) {
                        $c_username = user_uid2username($c_uid);
                        _log("bc mobile flag_sender:" . $c_flag_sender . " username:"******" uid:" . $c_uid . " g:" . $c_group_code . " gpid:" . $c_gpid . " uid:" . $c_uid . " dt:" . $sms_datetime . " s:" . $sms_sender . " r:" . $sms_receiver . " m:" . $message, 3, 'incoming recvsms_intercept');
                        $sender = trim(phonebook_number2name($sms_sender, $c_username));
                        $sender = $sender ? $sender : $sms_sender;
                        sendsms_bc($c_username, $c_gpid, $sender . ":" . $message);
                        _log("bc mobile end", 3, 'incoming recvsms_intercept');
                        $ret['uid'] = $c_uid;
                        $ret['hooked'] = true;
                    } else {
                        if ($c_flag_sender == 1) {
                            // check whether sms_sender belongs to c_group_code
                            $db_query = "SELECT B.id AS id FROM " . _DB_PREF_ . "_featurePhonebook AS A\n\t\t\t\t\t\t\t\tLEFT JOIN playsms.playsms_featurePhonebook_group_contacts AS C ON A.id=C.pid\n\t\t\t\t\t\t\t\tLEFT JOIN playsms.playsms_featurePhonebook_group AS B ON B.id=C.gpid\n\t\t\t\t\t\t\t\tWHERE A.mobile LIKE '%" . substr($sms_sender, 3) . "' AND B.code='" . $c_group_code . "'";
                            $db_result = dba_query($db_query);
                            if ($db_row = dba_fetch_array($db_result)) {
                                $c_username = user_uid2username($c_uid);
                                _log("bc mobile flag_sender:" . $c_flag_sender . " username:"******" uid:" . $c_uid . " g:" . $c_group_code . " gpid:" . $c_gpid . " uid:" . $c_uid . " dt:" . $sms_datetime . " s:" . $sms_sender . " r:" . $sms_receiver . " m:" . $message, 3, 'incoming recvsms_intercept');
                                $sender = trim(phonebook_number2name($sms_sender, $c_username));
                                $sender = $sender ? $sender : $sms_sender;
                                sendsms_bc($c_username, $c_gpid, $sender . ":" . $message);
                                _log("bc mobile end", 3, 'incoming recvsms_intercept');
                                $ret['uid'] = $c_uid;
                                $ret['hooked'] = true;
                            }
                        }
                    }
                }
            }
        }
    }
    if ($found_pv) {
        $users = array_unique($pv);
        foreach ($users as $key => $c_username) {
            $c_username = core_sanitize_username($c_username);
            if ($c_uid = user_username2uid($c_username)) {
                _log("pv u:" . $c_username . " uid:" . $c_uid . " dt:" . $sms_datetime . " s:" . $sms_sender . " r:" . $sms_receiver . " m:[" . $message . "] reference_id:" . $reference_id, 3, 'incoming recvsms_intercept');
                recvsms_inbox_add($sms_datetime, $sms_sender, $c_username, $message, $sms_receiver, $reference_id);
                _log("pv end", 3, 'incoming recvsms_intercept');
                $ret['uid'] = $c_uid;
                $ret['hooked'] = true;
            }
        }
    }
    return $ret;
}
Esempio n. 13
0
     break;
 case "incoming_save":
     // form pre rules
     // scan message for @username
     $pre_rules['match_username'] = (int) $_REQUEST['incoming_match_username'];
     $items['incoming_match_username'] = $pre_rules['match_username'];
     // scan message for #groupcode
     $pre_rules['match_groupcode'] = (int) $_REQUEST['incoming_match_groupcode'];
     $items['incoming_match_groupcode'] = $pre_rules['match_groupcode'];
     // form post rules
     // sandbox match receiver number and sender ID
     $post_rules['match_sender_id'] = (int) $_REQUEST['sandbox_match_sender_id'];
     $items['sandbox_match_sender_id'] = $post_rules['match_sender_id'];
     // sandbox prefix
     $post_rules['insert_prefix'] = trim(strtoupper(core_sanitize_alphanumeric($_REQUEST['sandbox_prefix'])));
     if ($post_rules['insert_prefix'] && checkavailablekeyword($post_rules['insert_prefix'])) {
         $_SESSION['error_string'][] = _('Fail to insert keyword') . ' (' . _('keyword') . ': ' . $post_rules['insert_prefix'] . ')';
         $post_rules['insert_prefix'] = '';
     }
     $items['sandbox_prefix'] = $post_rules['insert_prefix'];
     // sandbox forward to users
     $post_rules['forward_to'] = serialize(array_unique($_REQUEST['uids']));
     $items['sandbox_forward_to'] = $post_rules['forward_to'];
     // form settings
     // settings to leave copy on sandbox
     $items['settings_leave_copy_sandbox'] = (int) $_REQUEST['settings_leave_copy_sandbox'];
     // settings to match with all approved sender ID
     $items['settings_match_all_sender_id'] = (int) $_REQUEST['settings_match_all_sender_id'];
     // save to registry
     if (count($items)) {
         registry_update(1, 'feature', 'incoming', $items);