Отправка смс с модема Huawei e171 FreeBSD
Исходные данные:
- Модем 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"
Повторно отправил смс -пришло. Всё ок.