Table of Contents

Надсилання SMS з Shell

Ви можете надсилати SMS через shell, використовуючи AT-команди, отже цей процес легко автоматизується через скрипти.
Джерело: Надсилання SMS за допомогою AT-команд

Надсилання через AT-команди у shell

За допомогою shell можна надсилати SMS-повідомлення — підійде майже будь-який модем, хоча перевірити всі моделі неможливо. Завдяки AT-командам використовується базова функціональність модема, тому драйвери 3G не потрібні.

Основна послідовність дій для надсилання SMS виглядає так:

# Визначити пристрій модема, у цьому прикладі використовується /dev/ttyUSB0
echo -e "ATZ\r" >/dev/ttyUSB0 # параметр -e дозволяє обробку escape-послідовностей
echo -e "AT+CMGF=1\r" >/dev/ttyUSB0
echo -e "AT+CMGS=\"123456789\"\r" >/dev/ttyUSB0 # замініть 123456789 на номер одержувача
echo -e "Привіт, це SMS з shell\x1A" >/dev/ttyUSB0 # повідомлення має завершуватись \x1A (ASCII-код CTRL+Z)

Ось і все — SMS має надійти найближчим часом.

Скрипт для надсилання SMS

Оскільки SMS можна надіслати з shell, ми можемо автоматизувати цей процес за допомогою скрипта. Нижче приклад shell-скрипта для надсилання SMS:

#!/bin/sh
 
# Пристрій модема
DEV=/dev/ttyUSB0
# Номер одержувача
DESTNUM="123456789"
# Текст повідомлення
SMS="Привіт!"
 
# Затримка потрібна, щоб модем встиг обробити команди
echo -e "ATZ\r" >$DEV
sleep 1
echo -e "AT+CMGF=1\r" >$DEV
sleep 1
echo -e "AT+CMGS=\"$DESTNUM\"\r" >$DEV
sleep 1
echo -e "$SMS\x1A" >$DEV