Я долго искал в Интернете руководство по отправке sms из командной строки с помощью Huawei E3131 и HiLink в системе Linux на базе debian. Все они не работали. Похоже, что было обновление программного обеспечения.
HiLink показывает мне следующие версии:
- Имя устройства: E3131
- Версия аппаратного обеспечения: CU1E3131IM
- Версия программного обеспечения: 22.521.23.00.00
- Веб-интерфейс-версия: 17.100.08.00.03
После вопроса: Как отправить / получить sms из командной строки в системе Linux на базе debian с E3131?
Peters 24 Июн 2016 в 18:11
3 ответа
Лучший ответ
Необходимо 3 шага:
- Получить идентификатор сеанса
- Получить токен
- Отправлять / получать смс
Шаг 1. Получите идентификатор сеанса
Для получения идентификатора сеанса я использую следующую команду в собственном сценарии оболочки:
#!/bin/bash curl -b session.txt -c session.txt http://192.168.8.1/html/index.html > /dev/null 2>’ -f 10) echo $TOKEN > token.txt
Шаг 3, часть A. Отправьте SMS
How to change sms service center number in Huawei|sms service center number change problem in Huawei
Наконец, третий сценарий оболочки для отправки sms, который также вызывает два других сценария:
#!/bin/bash NUMBER=$1 MESSAGE=$2 ./session.sh ./token.sh LENGTH=$ TIME=$(date +»%Y-%m-%d %T») TOKEN=$(
command phonenumber «text»
Шаг 3, часть 2. Получение SMS
А для получения последней непрочитанной смс (или, если она недоступна, последней прочитанной смс) я использую следующий скрипт:
#!/bin/bash ./session.sh ./token.sh TOKEN=$(
Возможно, это не очень хорошее кодирование, но оно работает.
Peters 1 Июл 2016 в 15:42
Я сделал скрипт Python для своего HUAWEI E3276:
import requests, sys import xml.etree.ElementTree as ET msg = «From python» phone = «PHONE_NUMBER» #To fill ip = «192.168.1.1» #Dongle ip #Get token r = requests.get(«http://%s/api/webserver/token» % ip) root = ET.fromstring(r.content) token = root[0].text print «token», token #Send sms headers = < «__RequestVerificationToken»: token, «Content-Type»: «text/xml» >data = «-1%s%s%d1$TIME» % ( phone, msg, len(msg) ) r = requests.post( «http://%s/api/sms/send-sms» % ip, data=data, headers=headers ) print «send-sms», r.headers, r.content
themadmax 26 Июл 2017 в 09:50
Хотя Питер очень хорошо это объяснил, но мне нравится иметь один сценарий, и я также использую его на маршрутизаторах OpenWrt вместо Debian.
Итак, вот моя версия для отправки СМС:
#!/bin/sh RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo` COOKIE=`echo «$RESPONSE»| grep SessionID=| cut -b 10-147` TOKEN=`echo «$RESPONSE»| grep TokInfo| cut -b 10-41` NUMBER=$1 SMS=$2 DATA=»-1$NUMBER $SMS111-1″ curl -v http://192.168.8.1/api/sms/send-sms -H «Cookie: $COOKIE» -H «__RequestVerificationToken: $TOKEN» -H «Content-Type: application/x-www-form-urlencoded; charset=UTF-8» —data $DATA
А вот скрипт для чтения последних трех sms-сообщений:
Не отправляется смс с HUAWEI
#!/bin/sh RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo` COOKIE=`echo «$RESPONSE»| grep SessionID=| cut -b 10-147` TOKEN=`echo «$RESPONSE»| grep TokInfo| cut -b 10-41` DATA=»131001» curl -b $COOKIE -c $COOKIE -H «X-Requested-With: XMLHttpRequest» —data «$DATA» http://192.168.8.1/api/sms/sms-list —header «__RequestVerificationToken: $TOKEN» —header «Content-Type:text/xml»
Источник: question-it.com
Huawei как получить смс по at
Здравствуйте.
Имеем: Manufacturer: huawei Model: E173 Revision: 11.126.85.00.209
Отправляю СМС на модем. В своей программе считываю смс и удаляю её AT+CMGD=0. Отчет о доставке выславшему смс не приходит. Подскажите плиз, что нужно сделать в модеме чтобы высылались отчеты о доставке?
Регистрация: 29.09.2009
Сообщений: 9,742
. в модеме ничего, в меню телефона можно было-бы. Отчет о доставке — это обычное ответное входящее SMS, которое можно прочитать по AT+CMGL=0, запросить AT+CNMA. Для активации отчета у разных опсосов разный подход, вот почитайте http://dv.megafon.ru/services/commun. s_options.html (тут точками балуются, либо служебной командой на спецномер).
К чему это, у многих операторов этот отчет автоматом задействован. В общем случае AT+CNMA работает, если CSMS равно 1.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer 07.10.2013 в 15:01 .
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
Если СИМ карту переставить из модема в телефон и отправить на эту симку СМС то отчет приходит.
А вот если СИМ стоит в модеме — отчет о доставке не приход. Вот не могу понять почему.
Регистрация: 29.09.2009
Сообщений: 9,742
. так пошлите запрос AT+CNMA принудительно. Запрос отчета в телефоне может быть опцией, вы читаете что вам пишут?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer https://www.programmersforum.ru/showthread.php?t=245187″ target=»_blank»]www.programmersforum.ru[/mask_link]
Отправка и прием SMS сообщений с помощью пакета smstools3 и GSM модема
1. Для переключения устройства в режим модема, воспользуемся инструментом usb_modeswitch. Готовый RPM-пакет есть в репозитории rpmforge, скачиваем, устанавливаем:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
yum install usb_modeswitch
Добавляем в /etc/usb_modeswitch.conf
DefaultVendor = 0x12d1
DefaultProduct = 0x1001
MessageEndpoint = 0x01
MessageContent = «55534243000000000000000000000011060000000000000000000000000000»
Переключаем устройство в режим модема командой
usb_modeswitch -c /etc/usb_modeswitch.conf
Если usb_modeswitch отработает без ошибок, в системе должно появиться некоторое количество устройств /dev/ttyUSB*. Если этого не произошло, значит драйвер usbserial нужно загружать вручную
modprobe usbserial vendor=0x12d1 product=0x1001
Чтобы не делать этого вручную после каждой перезагрузки, нужно добавить в конфиг udev строку
SYSFS==»12d1″, SYSFS==»1001″, RUN+=»/sbin/modprobe usbserial vendor=0x12d1 product=0x1001″
2. Устанавливаем пакет minicom, настраиваем устройство для постоянной работы в режиме модема
yum install minicom
minicom -s
В «Serial port setup» выставляем значения «Serial Device» — /dev/ttyUSB0, «Bps/Par/Bits» — 38400 8N1. Выбиваем пункт «Save setup as dfl» для сохранения настроек и подключаемся к модему. Посылаем модему команду
Это заставит устройство всегда включаться в режиме модема, не возвращаясь в режим хранилища данных. Использование usb_modeswitch более не понадобится.
Настройка smstools3
1. Скачиваем smstools3 с сайта разработчика, устанавливаем
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz
cd smstools3
make install
2. Настройка smstools3
Настройки smstools3 хранятся в файле /etc/smsd.conf. Пример настроек:
devices = GSM1
logfile = /var/log/smsd.log
loglevel = 2
pidfile = /var/run/smsd/smsd.pid
infofile = /var/run/smsd/smsd.working
checkhandler = /opt/sms_to_ucs2.sh
eventhandler = /opt/sms_from_ucs2.sh
[GSM1]
device = /dev/ttyUSB0
baudrate = 115200
init = AT+CPMS=»ME»,»ME»,»ME»
incoming = high
- GSM1 — произвольное имя
- при loglevel равном 2, в лог пишется только информация о запуске/завершении программы. Для начала, лучше поставить сделать значение равным 7 и проверить лог на предмет ошибок.
- checkhandler — в этом параметре указан путь к скрипту, который будет запускаться каждый раз при отправке сообщения. Путь к файлу сообщения передается в первом параметре, текст скрипта будет приведен ниже.
- eventhandler — в этом параметре указан путь к скрипту, который будет запускаться каждый раз при получении сообщения. Путь к файлу сообщения передается во втором параметре, текст скрипта будет приведен ниже.
- init — команды, которые будут отправлены модему перед получением и отправкой сообщений. Команда AT+CPMS казывает, какую память следует использовать для работы с SMS. В данном случае, для всех операций с SMS будет использоваться память модема.
- incoming — значение high означает, что получение сообщений будет происходить с большим приоритетом, чем отправка. Если это поведение нежелательно, данный параметр указывать не нужно.
3. Скрипты для обработки отправляемых и получаемых SMS сообщений
SMS сообщения, содержащие символы кириллицы, приходят в кодировке UCS2 и отправляться должны в кодировке UCS2.
Отправка SMS:
FROM_FILE=»$1″
[ ! -r «$FROM_FILE» ] exit 1
if grep -q ‘[а-яА-Я]’ $FROM_FILE; then
TMPFILE=$(mktemp /tmp/smsd_XXXXXX)
sed -e ‘/^$/ q’ < «$FROM_FILE» >$TMPFILE
echo ‘Alphabet: Unicode’ >> $TMPFILE
sed -e ‘1,/^$/ d’ < «$FROM_FILE» | iconv -f UTF-8 -t UNICODEBIG >> $TMPFILE
mv $TMPFILE «$FROM_FILE»
fi
Отправлять SMS можно с помощью команды sendsms (входит в пакет smstools3)
Получение SMS, пересылка на почту [email protected]
[email protected]
[email protected]
FROM_FILE=»$2″
[ ! -r «$FROM_FILE» ] exit 1
[[ ! $FROM_FILE == /var/spool/sms/incoming* ]] exit 0
cat From: $MAIL_FROM
To: $MAIL_TO
Subject: Входящее SMS сообщение с номера $NUM
Content-Type: text/plain; charset=»UTF-8″
Content-Transfer-Encoding: 8bit
Источник: voxlink.ru