Отправка смс с модема Huawei e171 FreeBSD

Отправка смс с модема Huawei e171 FreeBSD
Huawei E173, E173u-1, E171 описание, прошивка
* HSDPA/UMTS 2100 МГц * EDGE/GPRS/GSM 900/1800 Мгц * Скорость приёма данных до 7,2 Мбит/с * Поддержка: Windows 2000 SP4, XP SP2, Vista, MacOS 10.4/10.5 * Plug’n’Play-устройство * Размеры: 72.15х25х12.2 мм * Дополнительные функции: Телефонная книга, SMS, USB-кабель (опция), слот Micro SD, возможность подключения

Исходные данные:

  • Модем Huawei e171 от Мегафона
  • Домашний сервер FreeBSD
uname -v
FreeBSD 9.1-RELEASE #0: Mon Jan 21 22:14:00 IRKT 2013     root@f02.24srv.ru:/usr/obj/usr/src/sys/GEN210113

Начало:

Для работы с модемом и отправки с него смс нам понадобится порт SMSTools3. Обновляем порты:

portsnap fetch  && portsnap update

Если порты ранее не обновлялись – то рекомендуется запустить так:

portsnap fetch && portsnap extract && portsnap update

Устанавливаем порт:

cd /usr/ports/comms/smstools3
make install clean

Ставим дополнительный порт (чуть позже понадобится):

/usr/ports/sysutils/screen
make install clean

Смотрим устройства:

ls /dev | grep cuaU && ls /dev | grep ttyU
cuaU0.0
cuaU0.0.init
cuaU0.0.lock
cuaU0.1
cuaU0.1.init
cuaU0.1.lock
cuaU0.2
cuaU0.2.init
cuaU0.2.lock
cuaU0.3
cuaU0.3.init
cuaU0.3.lock
ttyU0.0
ttyU0.0.init
ttyU0.0.lock
ttyU0.1
ttyU0.1.init
ttyU0.1.lock
ttyU0.2
ttyU0.2.init
ttyU0.2.lock
ttyU0.3
ttyU0.3.init
ttyU0.3.lock

Нас интересуют файлы cuaU0.*. Перебираем в поисках диагностических сообщений:

screen /dev/cuaU0.0
screen /dev/cuaU0.1
screen /dev/cuaU0.2
screen /dev/cuaU0.3

Кратко о команде screen:

Ctrl-a, c или Ctrl-a, Ctrl-с — запустить новый терминал;Ctrl-a-a или Ctrl-a, Ctrl-a — переключение между терминалами;Ctrl-a, 0…9 — переключение между терминалами 0…9;Ctrl-a, d — выйти из screen (сам screen продолжает висеть в фоне, выполняя задачи);Ctrl-a, k — убить текущее окно screen (требуется подтверждение — жмем «y»);Ctrl-a, \ — закрыть screen, убив все терминалы (требуется подтверждение);

И наконец последняя команда (screen /dev/cuaU0.3) выдает нам следующее:

Порт определён — переходим к конфигурации SMSTools3.

cd /usr/local/etc/
ee smsd.conf

Пока у меня получился следующий листинг:

cat smsd.conf
# Example smsd.conf. Read the manual for a description

devices = GSM1
logfile = /var/log/smsd.log
loglevel = 5
USER = uucp
GROUP = dialer
PIDFILE= /var/run/smsd/smsd.pid
INFOFILE= /var/run/smsd/smsd.working

[GSM1]
device = /dev/cuaU0.3
incoming = yes
#pin = 1111
incoming = yes
memory_start=0

Добавляем порт в автозапуск:

echo 'smsd_enable="YES"' >> /etc/rc.conf

Стартуем демон:

/usr/local/etc/rc.d/smsd start

Отправляем тестовое смс:

sendsms 7923XXXXXXX TEST

Если получили, всё ок, если нет — роем логи:

cd /var/log/smsd/
ee smsd.log

Я с первого раза не получил смс — пошел в логи:

2013-02-06 23:13:10,3, GSM1: Couldn't open serial port /dev/cuaU0.3, error: Devi  ce busy, waiting 30 sec.
2013-02-06 23:13:40,3, GSM1: Cannot open serial port /dev/cuaU0.3, error: Device   busy

Однако, девайс наш занят. Ну проблема тривиальна, не правильно вышел со screen’a.

Смс всё-равно не пришла, подменил в файле sendsms (находится в папке: /usr/local/share/smstools/) строку:

smsd_user="smsd"
#на
smsd_user="uucp"

Повторно отправил смс -пришло. Всё ок.