Text Messaging - the texting service ITFlow texts through (functions/sms.php), one * number for every client. Each row says whether it is on, the number, the address its texts * come back to (pasted into the service's portal), and its texts in the last 30 days. Send a * test text tries it; Opted out and blocked lists the numbers that replied STOP or were * marked spam. Add and Edit are one window (modals/sms_provider/sms_provider_edit.php); the * rest are admin/post/sms_provider.php. */ // Default Column Sortby Filter $sort = "sms_provider_name"; $order = "ASC"; require_once "includes/inc_all_admin.php"; // The tables arrive with the 3.6.0 database update try { mysqli_query($mysqli, "SELECT 1 FROM sms_providers LIMIT 1"); } catch (Throwable $e) { ?>
Text messaging arrives with a database update - run it in Maintenance > Update first.
"sms_provider_name $order", 'sms_provider_number' => "sms_provider_number $order, sms_provider_name ASC", 'sms_provider_last_inbound_at' => "sms_provider_last_inbound_at IS NULL, sms_provider_last_inbound_at $order, sms_provider_name ASC", ]; if (!isset($sortable_columns[$sort])) { $sort = 'sms_provider_name'; } $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM sms_providers WHERE (sms_provider_name LIKE '%$q%' OR sms_provider_description LIKE '%$q%' OR sms_provider_number LIKE '%$phone_query%') ORDER BY {$sortable_columns[$sort]}, sms_provider_id ASC LIMIT $record_from, $record_to"); $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); $set_up = intval(mysqli_fetch_row(mysqli_query($mysqli, "SELECT COUNT(DISTINCT sms_provider_name) FROM sms_providers"))[0]); $can_add = $set_up < count(smsProviderKinds()); $activity = smsProviderActivity(); $numbers = mysqli_fetch_row(mysqli_query($mysqli, "SELECT COALESCE(SUM(sms_number_opted_out_at IS NOT NULL), 0), COALESCE(SUM(sms_number_blocked_at IS NOT NULL), 0) FROM sms_numbers")); $opted_out = intval($numbers[0]); $blocked = intval($numbers[1]); $sort_link = function ($column, $label) use ($url_query_strings_sort, $sort, $disp, $order_icon) { return '' . $label . ($sort === $column ? " $order_icon" : '') . ''; }; $add_url = 'modals/sms_provider/sms_provider_add.php'; $csrf = $_SESSION['csrf_token']; ?>

Text Messaging

In the last 30 days: sent, failed, received
">
Texts come back to
Off
In 's portal: the number > SMS > Callback URL, by POST.
None yet - text the number to try it
'texting providers', 'icon' => 'fa-sms', 'text' => 'Set up Skyetel and your agents can reply to tickets by text, texts from your clients open tickets, and verification codes texted to your number land in Texts.', 'actions' => $can_add ? [['label' => 'Add Provider', 'modal' => $add_url]] : [], ]; ?>