[openwrt wiki] send sms or email using 3g/gsm modem

WwanHotspot: maintain allways up a dual wifi config, Access Point and HotSpot client

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.

More information about cookies

Gsm-модем и отправление смс в openwrt | hardware solutions for openwrt

Долго и без дела валялся у меня дома usb-модем. Я думаю, у многих из вас он тоже есть. Про процесс прошивки Gsm-модема ZTE MF627 не буду здесь расписывать, т.к. этой информации достаточно в интернете. Честно говоря, поражает простота, с которой решается наша задача… Давайте посмотрим, как это делается!

На этапе конфигурации OpenWrt нужно отметить следующие модули:
Kernel modules:
Video Support:
<M> kmod-usb-serial
<M> kmod-usb-serial-option
<M> kmod-usb-serial-wwan

У меня была проблема с установкой модуля kmod-usb-serial-wwan. А именно: dmesg после загрузки выдавал следующее:

Решается она правкой файла ‘openWrt/package/kernel/modules/usb.mk’.
Добавляем раздел ‘kmod-usb-serial-wwan’

Всё это описано вот здесь: . Большое спасибо автору.

Устанавливаем:

Подключаем Gsm-модем и смотрим вывод dmesg:

Gsm-модем определился. Можно начать с ним работать. Как видно из лога, создалось три устройства ttyUSB: интерфейс доступа к sd-карте,интерфейс для настройки устройства,интерфейс, через который идет обмен данными. Нам нужен интерфейс обмена данными, у меня это ttyUSB1.

Определить, какой из трех интерфейсов нам нужен, очень просто. Подключаем Gsm-модем к компьютеру, запускаем терминал на скорости 19200 и вводим команду ati. Модем должен откликнуться.

Для отправки смс будем использовать утилиту smstools. На момент написания этой статьи она не входит в стандартные утилиты OpenWrt. Поэтому, скачиваем исходники отсюда:
и разархивируем.

Собрать нужно её, используя кросс-компилятор из OpenWrt. Для этого в файле smstools3/src/Makefile нужно добавить строчку:
CC=openwrt/staging_dir/toolchain-mipsel_gcc-4.3.3 cs_uClibc-0.9.30.1/bin/mipsel-openwrt-linux-gcc
т. е. указать путь до кросс-компилятора.

Запускаем make. В smstools3/src/ получаем файл демона sms-сервера smsd, который копируем на файловую систему в /usr/sbin. Заодно в директорию /etc положим файл конфигурации smsd.conf, который необходим для запуска smsd.

Загружаемся. Также для работы smsd нужно создать следующие директории (используя mkdir, создадим их):
/var/log/smstools
/var/spool/sms/checked/
/var/spool/sms/outgoing/
/var/spool/sms/incoming/

Запускаем sms-сервер:

Смотрим лог и видим, что Gsm-модем проинициализировался:

Можно отправлять смс. Смс отпраляются автоматически после того, как файл с смс будет помещен в директорию /var/spool/sms/outgoing/

Создадим файл send_sms.sms и поместим в эту директорию:

Смотрим лог и видим, что сервер обнаружил новое неотправленное смс, приступил к его отпаравке и после отправки удалил файл:
tail -f /var/log/smstools/smsd.log

1970-01-01 00:03:54,5, GSM1: Waiting for messages to send…
1970-01-01 00:05:23,5, smsd: Moved file /var/spool/sms/outgoing/send_sms.sms to /var/spool/sms/checked
1970-01-01 00:05:23,6, GSM1: I have to send 1 short message for /var/spool/sms/checked/send_sms.sms
1970-01-01 00:05:23,6, GSM1: Sending SMS from to 79161737465
1970-01-01 00:05:23,6, GSM1: Checking if modem is ready
1970-01-01 00:05:24,7, GSM1: -> AT
1970-01-01 00:05:24,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:24,7, GSM1: <- OK
1970-01-01 00:05:24,6, GSM1: Pre-initializing modem
1970-01-01 00:05:24,7, GSM1: -> ATE0 CMEE=1; CREG=2
1970-01-01 00:05:27,6, GSM1: Signal Strength Indicator: (13,99) -87 dBm (Workable), Bit Error Rate: not known or not detectable
1970-01-01 00:05:27,6, GSM1: Checking if Modem is registered to the network
1970-01-01 00:05:27,7, GSM1: -> AT CREG?
1970-01-01 00:05:28,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:28,7, GSM1: <- CREG: 0,1 OK
1970-01-01 00:05:28,6, GSM1: Modem is registered to the network
1970-01-01 00:05:28,6, GSM1: Selecting PDU mode
1970-01-01 00:05:29,7, GSM1: -> AT CMGF=0
1970-01-01 00:05:29,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:30,7, GSM1: <- ZUSIMR:2 OK
1970-01-01 00:05:30,6, GSM1: Changing SMSC
1970-01-01 00:05:30,7, GSM1: -> AT CSCA=” 79168960220″
1970-01-01 00:05:32,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:32,7, GSM1: <- ZUSIMR:2 OK
1970-01-01 00:05:32,7, GSM1: -> AT CMGS=29
1970-01-01 00:05:33,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:33,7, GSM1: <- >
1970-01-01 00:05:33,7, GSM1: -> 0011000B919711257733F30000FF115079DA5EA683D27A50FB4D2EB7C321#
1970-01-01 00:05:38,7, GSM1: Command is sent, waiting for the answer
1970-01-01 00:05:42,7, GSM1: <- ZUSIMR:2 ZUSIMR:2 ZUSIMR:2 ZUSIMR:2 CMGS: 174 OK
1970-01-01 00:05:42,5, GSM1: SMS sent, Message_id: 174, To: 79161737465, sending time 19 sec.
1970-01-01 00:05:42,6, GSM1: Deleted file /var/spool/sms/checked/send_sms.sms

[OpenWrt Wiki] Send SMS or Email using 3G/GSM modem

Ieee 802.1x md5 авторизация на openwrt

В последнее время у провайдеров домашних сетей среди множества способов авторизации стал появляться способ с использованием стандарта IEEE 802.1x. Работает протокол предельно просто: пока клиент не идентифицировал себя, на порту бегают только 802.1x пакеты. В Windows можно настроить проверку подлинности в несколько кликов, но чаще дома установлен беспроводной машрутизатор, который раздает интернет. В этом топике пойдет речь о том, как наладить IEEE 802.1x MD5 авторизацию на OpenWrt совместимом устройстве.

Cуществует море способов провести установку. Как правило, всё сводится к тому, что загруженный с сайта OpenWrt образ прошивки заливается через веб-интерфейс маршрутизатора, подробнее об этом можно почитать на вышеупомянутом сайте. Предположим, что у нас уже есть устройство с установленным OpenWrt: в качестве жертвы будет использоваться Linksys WRT54GL v1.1 и прошивка Kamikaze 8.09.2.
Итак:

  1. Загружаем прошивку и прошиваем наш роутер.
  2. Заходим на него в первый раз по telnet [email protected] и меняем пароль командой passwd, после чего telnet будет отключен, а ssh включен.
  3. Нам необходимо установить «особенный» wpa_supplicant, с поддержкой драйвера roboswitch:
    ssh [email protected]
    cd /tmp
    opkg update
    wget www.liacs.nl/~jwitteve/openwrt/8.09/brcm-2.4/packages/wpa-supplicant_0.6.9-2_mipsel.ipk
    opkg install wpa-supplicant_0.6.9-2_mipsel.ipk
  4. Создаем конфигурационный файл для wpa_supplicant, например /etc/config/wpa_supplicant.conf:
    ap_scan=0
    network={
        ssid=""
        key_mgmt=IEEE8021X
        eap=MD5
        identity="логин"
        password="пароль"
    }
    

    Кроме MD5 бывают и другие способы проверки подлинности, например TTLS PAP, в случае с которым требуются сертификаты. Подробнее о других способах можно прочитать, например, в man wpa_supplicant

  5. Теперь можно сделать тестовый запуск. В случае с WRT54GL провод провайдера воткнут в WAN порт, который в системе значится как интерфейс eth0.1:
    # wpa_supplicant -dd -D roboswitch -c /etc/config/wpa_supplicant.conf -i eth0.1
    Initializing interface 'eth0.1' conf '/etc/config/wpa_supplicant.conf' driver 'roboswitch' ctrl_interface 'N/A' bridge 'N/A'
    Configuration file '/etc/config/wpa_supplicant.conf' -> '/etc/config/wpa_supplicant.conf'
    Reading configuration file '/etc/config/wpa_supplicant.conf'

    В случае, если всё хорошо, мы увидим:
    ...
    EAPOL: SUPP_PAE entering state AUTHENTICATED
    EAPOL: Supplicant port status: Authorized
    ...
    EAPOL authentication completed successfully

    И теперь можно получить адрес:
    # udhcpc -i eth0.1
    udhcpc (v1.15.3) started
    Sending discover...
    Sending select for x.x.x.x...
    Lease of x.x.x.x obtained, lease time 21600

И это еще не всё, потому что надо сделать, чтобы всё работало автомагически.
Создаем init скрипт /etc/init.d/wpa_signin:

#!/bin/sh /etc/rc.common
START=99
start() {
        /usr/sbin/wpa_supplicant -i eth0.1 -D roboswitch -B -c /etc/config/wpa_supplicant.conf
}

Не забываем включить его:

# /etc/init.d/wpa_signin enable

Ссылки

Send sms or email using 3g/gsm modem

This method is fairly simple-minded, and uses only the serial /dev/ttyUSB0 port and “AT” commands to send an SMS message.

Almost any OpenWrt version should work, and any OpenWrt device which supports USB. It has been tested n a WL-500gPv2, a WL-520Gu, and a MPR-A8 (Ralink-based Hame A1 clone).

One modem was from dx.com, 7.2M HSDPA 3G SIM Card USB 2.0 Wireless Modem Adapter with TF Card Slot, item 80032. This is a Huawei E169 clone.

If you have device like WL-520Gu that has little onboard flash then you need to built my own OpenWrt firmware image with following modules (usually installing them via opkg installing fails due to for lack of memory):

kmod-usb2 kmod-usb-ohci kmod-usb-serial kmod-usb-serial-option usbutils usb-modeswitch kmod-usb-storage kmod-scsi-core kmod-scsi-cdrom kmod-scsi-generic picocom

When I plugged in the usb modem, it detected scsi drives and 4 tty devices–/dev/ttyUSB0 through ttyUSB3.

I connected to the modem using picocom:
picocom -b 9600 -f n -p n -d 8 -r /dev/ttyUSB0

Typing “AT<Enter>” got the response, “OK”

I then sent a message with the following commands:

AT CMGF=1 [set pdu mode to text]
AT CMGS=" 12345678900"  [use a valid cell phone number]
Type some message<Ctrl-z> [type a message terminated with <Ctrl-z>]

After a short while I got a response, “ CMGS: 18”

That was all there was to it with this device.

Mode Switching

With the WL-500gPv2 it was harder. The ttyUSB devices were not detected. This is because many (most?) cell modems initiate as scsi devices, which, in Windows, automatically load a driver and then switches mode to enable the modem. In linux, you have to perform the mode switch. There’s a program for that, usb-modeswitch, and also usb-modeswitch-data. On the WL-500gPv2, I needed to use lsusb (from usbutils) to get the Vendor # and product ID. You then execute “usb-modeswitch -v nnnn -p nnnn”. After doing this, dmesg showed the ttyUSB devices 0-3, and I was able to proceed as above.

The modeswitch process can apparently be more complicated for other devices. Various web sites explain it.

MPR-A8–modeswitch not needed

With the MPR-A8, with self-compiled trunk, watching on serial console, the scsi drives were recognized first, and then, after 30m seconds or so, the 4 ttyUSB devices. I again signed on to /dev/ttyUSB0 (with microcom), and sent an SMS message using the commands shown above.

Sending Email

With my provider, T-Mobile, you can also send an email with the address number of “500” with these commands (after “AT CMGF=1”):

AT CMGS="500"
[email protected]/Subject2/sending text.<Ctrl z>

The subject is within “/” or “#”.

Похожее:  Онлайн-Личный кабинет в Чувашкредитпромбанке раскрываем удобство и преимущества цифрового банкинга

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *