Page 1 of 8 123 ... LastLast
Results 1 to 15 of 115

Thread: Скрипт чтения СМС на 3G модеме (ussd)

  1. #1

    Lightbulb Скрипт чтения СМС на 3G модеме (ussd)

    Короткая предистория. Все началось с желтого мигающего огонька на модеме, который означал, что пришла СМС и жутко раздражал. А надо сказать, что Skylink шлет СМС после каждого захода на страницу статистики. Чтобы его убрать, надо было запустить родной софт и стирать СМС.
    Начал разбираться и пришла мысль, а почему бы не наладить аварийное управление роутером через СМС. Например для следующих ситуаций:
    - надо срочно перезагрузить роутер недоступный по сетевым интерфейсам и вне прямой досигаемости
    - роутер работает с соединением с интернетом по требованию и надо поднять его интерфейс
    - при использовании роутера для управления системами умного дома
    и т.д и т.п
    Надо сказать, что модем у меня Anydata ADU-300A (сразу оговорюсь, что скорее всего это заработает и для 100-й и 500-й серии). У этого модема есть управление по второму последовательному порту, который поднимается и в роутере при подключении модема через USB.
    К сожалению внятной документации найти не удалось, только обрывки и сообщения людей которые тоже с ним работают. Но в результате нужная информация была добыта из сети и перехвате трафика фирменной программы.
    Вторая проблема это работа с портом из скрипта. Но и тут удалось обойтись возможностями программы chat.
    В результате получился скрипт который делает следующее:
    - читает СМС из модема
    - записывает их в файл с ограниченным объемом (более старые удаляются)
    - удаляет прочитанные СМС из модема
    - выполняет внешний командный скрипт с параметрами переданными в СМС, при получении СМС с номера хозяина.
    - настройки можно задать в файле конфигурации

    Если кому то это интересно, пробуйте и пишите комментарии.

    sms.rar

    P.S. Я неважно пишу на шелле, поэтому с радостью приму все коструктивные замечания по коду и идеи по оптимизации.
    P.S.S Скорее всего не будет работать с драйвером option. По крайней мере у меня не получилось.
    Last edited by dlukanidin; 05-06-2010 at 21:57.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  2. #2
    Добавил обработку букв ёЁ.
    Скорректировал скрипт запуска.

    Не рекомендую пока вставлять этот скрипт в post-boot, кроме как для целей тестирования.

    План дальнейших действий:
    1. Найти (или написать) замену для chat используемому в скрипте для работы с диагностическим com портом. Подозреваю, что где то появляется конфликт с действиями pppd.
    2. Переписать скрипт на php или с , т.к. в настоящем варианте, при чтении СМС, сильно жрёт процессорное время, что при большом количестве СМС может сказаться на основных обязанностях роутера.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  3. #3
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543

    Lightbulb SMS на 3G модеме

    Сегодня возникла проблема между диром и модемом. У опсоса отвалился 3г и был доступен только эдж. Перезагрузка дира не помогла. Под виндой проверил смс-ящик - был забит до предела - 10/10. Почистил ящик - проблема осталсь. Оживить подключение удалось переключив модем в режим "только едж".
    Есть интуитивные догадки, но локализовать проблему не могу. В то время, когда модем определился диром запускается непрерывная попытка дозвона, и вроде бы модем, как физическое устройство, уже готов, но как логическая единица - еще нет. Внутри модема на этот момент еще идет процесс настройки оборудования на опсоса (поиск и выбор режима GSM<-->EDGE<-->WCDMA).
    Last edited by Omega; 18-12-2012 at 17:07. Reason: fixed
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  4. #4
    Quote Originally Posted by ConstAntz View Post
    Сегодня возникла проблема между диром и модемом. У опсоса отвалился 3г и был доступен только эдж. Перезагрузка дира не помогла. Под виндой проверил смс-ящик - был забит до предела - 10/10. Почистил ящик - проблема осталсь. Оживить подключение удалось переключив модем в режим "только едж".
    Есть интуитивные догадки, но локализовать проблему не могу. В то время, когда модем определился диром запускается непрерывная попытка дозвона, и вроде бы модем, как физическое устройство, уже готов, но как логическая единица - еще нет. Внутри модема на этот момент еще идет процесс настройки оборудования на опсоса (поиск и выбор режима GSM<-->EDGE<-->WCDMA).
    Извините, но непонятно.
    Напоминаю - Если Вы хотите чтобы мы тоже понимали Вашу ситуацию выкладывайте пожалуйста логи (какие и как мне кажется Вы знаете), иначе нам надо применять парапсихологические способности, а это не всегда получается

    Итак вот файлы для нового скрипта. Это уже функционирующая версия для тестирования. Компилировать в соответствии с указанными ранее рекомендациями rss.

    Ограничения:
    1. Штатно пока работает только для одного wan
    2. На ядре 2.4 если Ваш модем не может работать с драйвером option то его нужно заменить драйвером, который я выкладывал ранее.
    3. Для статистики тип модема (CDMA или WCDMA) определяется из базы, поэтому , для наилучших результатов всех прошу прислать доп. информацию - Ваш модем - vid - pid - тип (CDMA или WCDMA) - номер порта данных - номер порта для статистики ussd и т.п.

    Улучшения по сравнению с текущей версией:
    1. Более качественная автоматика
    2. Улучшенная настройка
    3. Почти полная подготовка для multiwan
    4. Возможна статистика для нескольких подключенных модемов

    Тестируйте пожалуйста.
    Attached Files Attached Files
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  5. #5
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by dlukanidin View Post
    Извините, но непонятно.
    Помощь не требуется (вопрос-то решенный), отписался на будущее (bug report, так сказать, только может не в ту тему). Суть в том, что модем еще не выбрал рабочий диапазон работы с опсосом, но уже получает команды на подключение к инету, которые завершаются бесконечной ошибкой
    Code:
    Calling UMTS/GPRS
    ATZ
    OK
    AT+CGDCONT=1,"IP","internet.mts.ru"
    OK
    ATD*99#
    NO CARRIERFailed (NO CARRIER)
    Script /tmp/ppp/peers/chat.sh finished (pid 215), status = 0x6
    Connect script failed
    pppd exit code: 8
    	Reconnect. Device: /dev/usb/tts/0
    Улучшения по сравнению с текущей версией:
    1. Более качественная автоматика
    2. Улучшенная настройка
    3. Почти полная подготовка для multiwan
    4. Возможна статистика для нескольких подключенных модемов

    Тестируйте пожалуйста.
    Можно Вас попросить добавить к четвертому пункту поддержку чтения входящих смс? ну или хотя бы емкость ящика("AT+CPMS?").
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  6. #6
    Join Date
    Mar 2009
    Location
    Default City
    Posts
    2,694
    Blog Entries
    4
    Quote Originally Posted by ConstAntz View Post
    Помощь не требуется (вопрос-то решенный), отписался на будущее (bug report, так сказать, только может не в ту тему). Суть в том, что модем еще не выбрал рабочий диапазон работы с опсосом, но уже получает команды на подключение к инету, которые завершаются бесконечной ошибкой .
    Модем не выбирает никаких диапазонов, решение об этом принимает базовая станция на основании показателей сигнала...

  7. #7
    Quote Originally Posted by ConstAntz View Post
    Можно Вас попросить добавить к четвертому пункту поддержку чтения входящих смс? ну или хотя бы емкость ящика("AT+CPMS?").
    Для работы с смс нужно писать скрипт. Напишите и многие скажут спасибо, а если получится не очень объёмный, то можно будет и в прошивку включить (в rtn версию то уж наверняка). Пока же смело давайте эту команду как ussd и получите ответ.
    В крайнем случае, если уж совсем с башем не дружите, напишите алгоритм в виде:
    1. послать AT+CSQ
    2. дождаться ответа CSQ: aa.bb
    3. напечатать сигнал=aa, ошибки=bb (если aa=99, то нет сигнала)
    4. если bb = 99 то перейти к пункту 6
    5. иначе перейти к пункту 1
    6. конец
    Я сделаю из него скрипт. Самому разбираться с смс некогда, есть более интересные задачи.
    Сразу предупреждаю для CDMA в DM режиме скрипт писать не буду, чтение СМС я уже делал. Ищите на форуме по моим сообщениям (где то пол года назад) и пишите пользовательский скрипт.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  8. #8
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Посмотрите пожалуйста, где я накосячил. Жизненно необходимо - готовится тестовая версия скрипта для чтения смс
    Code:
    [admin@(none) root]$ state_modem /dev/usb/tts/3 i
    Modem port in location /dev/usb/tts/3 not exist
    Code:
    #  Modem Status script for 3G modem
    #  ver. 1.005 beta 27.02.2011
    #  by dlukanidin, rss
    
    [admin@(none) root]$ cat /proc/bus/usb/devpath
    Device         : Location : Info
    /dev/usb/tts/0 : 1.4.0 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/1 : 1.4.1 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/2 : 1.4.2 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/3 : 1.4.3 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    
    [admin@(none) root]$ sh -x /usr/sbin/state_modem /dev/usb/tts/3 i
    + isDriversLoaded
    + [ -z  ]
    + getKernel
    + uname -r
    + kernel=2.4.37.11
    + kernel=2.4
    + [ 2.4 = 2.4 ]
    + acm_mod=acm
    + lsmod
    + grep usbserial
    + usbserial=usbserial              24196   0 [option]
    usbcore                78888   1 [acm option usbserial usb-storage printer ehci-hcd usb-ohci]
    + lsmod
    + grep acm
    + acm=acm                     7572   0 (unused)
    usbcore                78888   1 [acm option usbserial usb-storage printer ehci-hcd usb-ohci]
    + [ -z usbserial              24196   0 [option]
    usbcore                78888   1 [acm option usbserial usb-storage printer ehci-hcd usb-ohci] ]
    + return 0
    + devpath_name=/proc/bus/usb/devpath
    + tmp_name=/tmp/stat.tmp
    + modem_conf_name=/usr/share/modem/modems.conf
    + loc=/dev/usb/tts/3
    + grep : /dev/usb/tts/3 : /proc/bus/usb/devpath
    + awk -F: {print $1}
    + port=
    + lsmodem -c /usr/share/modem/modems.conf
    + loc=/dev/usb/tts/3
    + grep :/dev/usb/tts/3: /tmp/stat.tmp
    + cut -d: -f4
    + type=
    + rm /tmp/stat.tmp
    + [ -z ]
    + echo Modem port in location /dev/usb/tts/3 not exist
    Modem port in location /dev/usb/tts/3 not exist
    + exit 2
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  9. #9
    Quote Originally Posted by ConstAntz View Post
    Посмотрите пожалуйста, где я накосячил. Жизненно необходимо - готовится тестовая версия скрипта для чтения смс
    state_modem 1.4.3 i
    Этот вызов отличается по параметрам от вызова специфичного для модема скрипта
    Last edited by dlukanidin; 21-03-2011 at 10:31.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  10. #10
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by dlukanidin View Post
    state_modem 1.4.3 i
    Этот вызов отличается по параметрам от вызова специфичного для модема скрипта
    А здесь?
    Code:
    [admin@(none) root]$ state_modem 1.4.3 i
    sh: /dev/usb/tts/3: unknown operand
    sh: /dev/usb/tts/3: unknown operand
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head><body><pre>
    Error: bad command /dev/usb/tts/3
    </pre></body></html>
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  11. #11
    Quote Originally Posted by ConstAntz View Post
    А здесь?
    Code:
    [admin@(none) root]$ state_modem 1.4.3 i
    sh: /dev/usb/tts/3: unknown operand
    sh: /dev/usb/tts/3: unknown operand
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head><body><pre>
    Error: bad command /dev/usb/tts/3
    </pre></body></html>
    Не понимаю, как такое может быть. Похоже, что не прошло присвоение переменных. Может у Вас шелл не стандартный ?
    У меня:
    Code:
    [root@DIR root]$ state_modem 1.3.0 i
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head><body><pre>
    Modem:  huawei  E1550
    SysInfo: WCDMA(WCDMA) : home network : normal access : normal SIM
    Operator: "MegaFon RUS"(3G)
    SysCfg: WCDMA only(Roaming Supported)
    </pre></body></html>
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  12. #12
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by dlukanidin View Post
    Не понимаю, как такое может быть. Похоже, что не прошло присвоение переменных. Может у Вас шелл не стандартный ?
    У меня:
    Code:
    [root@DIR root]$ state_modem 1.3.0 i
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head><body><pre>
    Modem:  huawei  E1550
    SysInfo: WCDMA(WCDMA) : home network : normal access : normal SIM
    Operator: "MegaFon RUS"(3G)
    SysCfg: WCDMA only(Roaming Supported)
    </pre></body></html>
    Видать, пока баловался с выгрузкой модулей (в поисках проблем по соседней ветке) образовалось
    Code:
    [admin@(none) root]$ cat /proc/bus/usb/devpath
    Device         : Location : Info
    /dev/usb/tts/0 : 1.4.0 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/1 : 1.4.1 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/2 : 1.4.2 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/3 : 1.4.3 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/0 : 1.4.0 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/1 : 1.4.1 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/2 : 1.4.2 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    /dev/usb/tts/3 : 1.4.3 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  13. #13
    Quote Originally Posted by ConstAntz View Post
    Видать, пока баловался с выгрузкой модулей (в поисках проблем по соседней ветке) образовалось
    2 Rss - чуть поправил скрипт, чтобы не падал при таких ошибках.
    Attached Files Attached Files
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  14. #14
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by dlukanidin View Post
    2 Rss - чуть поправил скрипт, чтобы не падал при таких ошибках.
    В догонку: rmmod usbserial не вносит коррективы в /proc/bus/usb/devpath, и последующий insmod usbserial vendor=xxxx product=yyyy - добавляет новые сведения к существующим.
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  15. #15
    Quote Originally Posted by ConstAntz View Post
    В догонку: rmmod usbserial не вносит коррективы в /proc/bus/usb/devpath, и последующий insmod usbserial vendor=xxxx product=yyyy - добавляет новые сведения к существующим.
    Какая версия прошивки ?
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

Page 1 of 8 123 ... LastLast

Similar Threads

  1. Установка программ для чайника" (Новая редакция)
    By Rung in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 722
    Last Post: 14-08-2019, 06:04
  2. Скрипт перезагрузки роутера
    By Andrey_3 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 95
    Last Post: 18-12-2016, 16:11
  3. Скрипт для диагностики Wi-Fi
    By Oleg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 19
    Last Post: 13-03-2016, 20:29
  4. Тестирование скорости чтения/записи USB-HDD.
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 87
    Last Post: 20-06-2013, 13:11
  5. Replies: 356
    Last Post: 01-01-2013, 22:33

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •