Исходные данные:
Модем Huawei e171 от Мегафона (прошитый)
Домашний сервер FreeBSD
1 2 |
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.
Обновляем порты:
1 |
portsnap fetch && portsnap update |
Если порты ранее не обновлялись – то рекомендуется запустить так:
1 |
portsnap fetch && portsnap extract && portsnap update |
Устанавливаем порт:
1 2 |
cd /usr/ports/comms/smstools3 make install clean |
Ставим дополнительный порт (чуть позже понадобится):
1 2 |
/usr/ports/sysutils/screen make install clean |
Смотрим устройства:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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.*.
Перебираем в поисках диагностических сообщений:
1 2 3 4 |
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.
1 2 |
cd /usr/local/etc/ ee smsd.conf |
Пока у меня получился следующий листинг:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 |
Добавляем порт в автозапуск:
1 |
echo 'smsd_enable="YES"' >> /etc/rc.conf |
Стартуем демон:
1 |
/usr/local/etc/rc.d/smsd start |
Отправляем тестовое смс:
1 |
sendsms 7923XXXXXXX TEST |
Если получили, всё ок, если нет — роем логи:
1 2 |
cd /var/log/smsd/ ee smsd.log |
Я с первого раза не получил смс — пошел в логи:
1 2 |
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/) строку:
1 2 3 |
smsd_user="smsd" #на smsd_user="uucp" |
Повторно отправил смс -пришло. Всё ок.
2 Comments Добавить комментарий