Page 2 of 4 FirstFirst 1234 LastLast
Results 16 to 30 of 49

Thread: Скрипт проверки баланса счета на модеме

  1. #16
    Quote Originally Posted by AndreyUA View Post
    Есть такая возможность
    Прочитайте эту тему http://wl500g.info/showthread.php?t=22275&page=31
    перечитал вдоль и поперек прежде чем задать вопрос...
    послаю команду cat /dev/ttyUSB2 & echo AT+CUSD=1,*100#,15 > /dev/ttyUSB0 ; sleep 3; kill %cat
    а в ответ непонятно что...

  2. #17
    Я на питоне писал прогу, у мегафона ussd надо кодировать под модем хуавей, ответ тоже идет закодированный, его надо раскодировать.

    Code:
    #!/usr/bin/env python
    #
    # This script send 'get balance' request 
    # from Huawei e160g || e1550 USB-GPRS modem.
    
    import serial
    import string
    import os
    
    import time
    from subprocess import call
    
    #
    # Decode string from Beeline to current charset
    #
    def str2byte(a):
        b=''
        for i in range(len(a)/4):
            b+=chr(eval('0x'+a[i*4+2:i*4+4]))+chr(eval('0x'+a[i*4:i*4+2]))
        return unicode(b, 'utf16')
    #
    # Definitions
    USBPORT='/dev/cu.HUAWEIMobile-Pcui'
    USBSPEED=19200
    MAXSTRINGLENGTH=300
    
    print "Wait a USSD request ... "
    s=serial.Serial(USBPORT,USBSPEED,timeout=5)
    time.sleep(2)
    s.write('ATZ \015')
    time.sleep(2)
    s.write('AT+CFUN=1 \015')
    time.sleep(2)
    s.write('AT+CUSD=1,"AA180C3602",15 \015')
    
    line=''
    while line[0:6] != '+CUSD:':            
        line=s.readline(MAXSTRINGLENGTH)
        print line
    s.close()
    
    line2 = line.split(',')[1]
    line3 = string.replace(line2,'"','')
    result = unicode(line3.decode("hex"), "utf-16-be").encode("utf8")
    
    print result
    Только надо помимо питона установить либу pyserial. Проверялось на МТС и Мегафоне на Mac OS X. Под линуксом замените '/dev/cu.HUAWEIMobile-Pcui' на путь к модему.

  3. #18
    тут еще можно почитать
    http://ru.gentoo-wiki.com/wiki/MF626
    ASUS RT-N15U

  4. #19
    Join Date
    Mar 2009
    Location
    Default City
    Posts
    2,694
    Blog Entries
    4
    Quote Originally Posted by rss View Post
    1. Что выдаёт fdisk -l?
    2. Что выдаёт ls /dev/discs?
    3. Монтируется ли диск после nvram set usb_storage_device="123"? (если в пунктах 1 и 2 этот диск есть).
    Вот еще бы в web-мордочку запрос USSD баланса и было бы просто эдиальное решение )

  5. #20
    Quote Originally Posted by TReX View Post
    Вот еще бы в web-мордочку запрос USSD баланса и было бы просто эдиальное решение )
    Предложение для Rss:
    Можно сделать следующим образом: в Status & Log->System Utilization перед System Load Monitoring добавить ещё одну форму, которая будет выводить данные из файла заполняемого пользовательским скриптом. Имя скрипта и его местонахождение можно зафиксировать или задавать в какой нибудь форме. Формат скрипта: одна строка - одно значение. Формат значения: Тип, Имя, Название1, Название2, Значение
    Тип:
    текст - выводится в окне с заголовком Имя, текст=Значение в виде текста
    график1 - выводится в окне с заголовком Имя одномерный график из расчёта, что Значение указано в процентах. Можно подписать ось с интервалом в 20%.
    график2 - выводится в окне с заголовком Имя двумерный график из расчёта, что Значение указано в процентах, а оси имеют названия Название1, Название2. Можно подписать оси с интервалом в 20%.

    Готов написать скрипты для формирования такого файла с инфо о силе сигнала, инфо о балансе для некоторых модемов.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  6. #21
    Quote Originally Posted by dlukanidin View Post
    Предложение для Rss:
    Можно сделать следующим образом: в Status & Log->System Utilization перед System Load Monitoring добавить ещё одну форму, которая будет выводить данные из файла заполняемого пользовательским скриптом. Имя скрипта и его местонахождение можно зафиксировать или задавать в какой нибудь форме. Формат скрипта: одна строка - одно значение. Формат значения: Тип, Имя, Название1, Название2, Значение
    Тип:
    текст - выводится в окне с заголовком Имя, текст=Значение в виде текста
    график1 - выводится в окне с заголовком Имя одномерный график из расчёта, что Значение указано в процентах. Можно подписать ось с интервалом в 20%.
    график2 - выводится в окне с заголовком Имя двумерный график из расчёта, что Значение указано в процентах, а оси имеют названия Название1, Название2. Можно подписать оси с интервалом в 20%.
    С графиками надо разобраться нужны ли они или можно обойтись статической формой.

    Quote Originally Posted by dlukanidin View Post
    Готов написать скрипты для формирования такого файла с инфо о силе сигнала, инфо о балансе для некоторых модемов.
    На это согласен

    USSD не успел посмотреть. На сколько я понял, в некоторых модемах разъединять соединение для получения ответа на USSD не нужно (есть дополнительные каналы), а в некоторых - нужно.

    По поводу статистики - надо для начала составить классификацию способов её получения из разных модемов. Потом посмотреть как интегрировать в интерфейс (условно говоря, если получится сделать только на 10% используемых модемов, то нужно ли это делать).
    * Wiki *

  7. #22
    Quote Originally Posted by rss View Post
    С графиками надо разобраться нужны ли они или можно обойтись статической формой.).
    Ну хотя бы одномерный - горизонтальный слайд бар.

    Quote Originally Posted by rss View Post
    USSD не успел посмотреть. На сколько я понял, в некоторых модемах разъединять соединение для получения ответа на USSD не нужно (есть дополнительные каналы), а в некоторых - нужно.
    Абсолютно верно
    Quote Originally Posted by rss View Post
    По поводу статистики - надо для начала составить классификацию способов её получения из разных модемов. Потом посмотреть как интегрировать в интерфейс (условно говоря, если получится сделать только на 10% используемых модемов, то нужно ли это делать).
    Мы (извините Вы) можем заложить такую возможность, а написание разных скриптов для сбора разной статистики нужной пользователю модемов и/или других устройств и систем вынести в отдельную ветку. Предлагаемое дополнение, имхо, получается весьма универсально и подходит для отображения самой разной нужной пользователю дополнительной информации о состоянии маршрутизатора или используемых пользователем программ.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  8. #23

    Скрипт для проверки уровня сигнала модема

    Вот один из обещаных скриптов
    Attached Files Attached Files
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  9. #24

    Скрипт для проверки баланса

    Вот ещё один из обещаных скриптов
    Attached Files Attached Files
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  10. #25
    Quote Originally Posted by Ucxbt View Post
    Помогите добрые люди
    есть роутер Asus 500gP v2
    есть 3g модем Huawei E173
    есть оператор Мегафон

    Уже 2й день лазаю по форуму и не могу никак понять как этот роутер настроить на работу с модемом.

    Если не совсем сложно, то ответьте или дайте ссылку.
    Поиском пользовался.
    Даже как то затрудняюсь, сразу не соображу, что ответить
    Попробуйте для начала сходить по ссылке из подписи Rss.

    Вот для интересующихся новогодний подарочек: скрипт собирающий всю (интересную мне) статистику модема. По идее должен работать на большинстве Huawei - ев . Попробую на имеющихся у меня моделях, отпишусь.
    Attached Files Attached Files
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  11. #26
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    Quote Originally Posted by dlukanidin View Post
    Вот ещё один из обещаных скриптов
    Баланс.
    Опробовал на E1550 какая то ерунда, в цикле какие-то цифры выводятся
    успел увидеть что в начале выводилась команда с 100, мне нужно
    сделать команду для баланса *101#. что нужно изменить в скрипте?

    Остановить цикл удалось только из др. окна терминала killall cat

    Вопрос еще, модем должен находится в режиме коннекта или не обязательно.
    DIR-320 / WL-500gPv2 / O'Play R1

  12. #27
    Quote Originally Posted by dlukanidin View Post
    Вот для интересующихся новогодний подарочек: скрипт собирающий всю (интересную мне) статистику модема. По идее должен работать на большинстве Huawei - ев . Попробую на имеющихся у меня моделях, отпишусь.
    ZTE MF100 Билайн.
    Скрипт не работает
    В логе циклически пишет
    Jan 1 00:00:44 chat[177]: Can't set terminal parameters: Invalid argument
    Jan 1 00:00:44 chat[177]: Can't restore terminal parameters: Invalid argument

  13. #28
    Quote Originally Posted by dlukanidin View Post
    скрипт собирающий всю (интересную мне) статистику модема.
    Работает с e173,
    только неправильно декодирует ucs2 - вместо баланса абракадабра.
    Я собрал для теста программу, которая шлет at+cusd запрос и декодирует ucs2 (через оператора настроил ответы латиницей).
    Вот исходник, если кому нужно.
    Attached Files Attached Files

  14. #29
    Quote Originally Posted by andr128 View Post
    Баланс.
    Опробовал на E1550 какая то ерунда, в цикле какие-то цифры выводятся
    успел увидеть что в начале выводилась команда с 100, мне нужно
    сделать команду для баланса *101#. что нужно изменить в скрипте?

    Остановить цикл удалось только из др. окна терминала killall cat

    Вопрос еще, модем должен находится в режиме коннекта или не обязательно.
    посмотрите последний скрипт и поменяйте 100 на 101
    Пожалуйста смотрите текст скрипта. Это не готовое решение, а только начальный этап разработки, цикл нужен для отображения постоянно меняющейся статистики, сначала проверьте без цикла в Ваших условиях.
    У меня модем в режиме коннекта.
    только неправильно декодирует ucs2 - вместо баланса абракадабра.
    Я собрал для теста программу, которая шлет at+cusd запрос и декодирует ucs2 (через оператора настроил ответы латиницей).
    Вот исходник, если кому нужно.
    Декодирование сделано для кодировки русского языка в unicode UTF-8. Если оператор отвечает на другом языке или в другой кодировке, возможно нужны правки. Смотрите на чём протестировано (последний скрипт) и вносите правки под себя.
    ZTE MF100 Билайн.
    для ZTE и билайн пока не пробовал, хотя есть возможность. Подождите пожалуйста, попробую, внесу правки, выложу.
    Извините, но чуть позже, пока на каникулах все пользуются интернетом и нет возможности полноценного тестирования.

    Уважаемые коллеги. Я пишу то, что работает на моей комбинации аппаратуры и провайдеров. Я готов помочь Вам с Вашими условиями. Для этого мне, как минимум, нужно увидеть "чистые" ответы модема на данные ему команды. А вообще, пробуйте и пишите. Вместе мы найдём решение.

    ------- дополнил ---------

    Попробовал настроить ZTE MF180 из под билайна. Потратил тучу времени, в итоге не смог даже добиться устойчивого подключения к интернету. В режиме cd после usb_modeswitch имеем product 0x2003 и 4 порта. Собственно модем - на последнем. При отключении cd в терминале имеем совершенно другую конфигурацию product 0x0016 и 3 порта. Собственно модем опять на последнем. В итоге во всех комбинациях соединение постоянно рвётся, модем зависает, в общем полная Ж. То ли это какая то хитрая защита, то ли просто нужно подобрать какую то комбинацию параметров. Надо глубоко копать и дальше экспериментировать, нет ни времени, ни желания, у меня есть ещё 2 Huawei, с которыми нет никаких проблем. В итоге статистикой для этой комбинации модема и провайдера даже не занялся и не буду копать в этом направлении.

    Внёс небольшие исправления в скрипт и проверил работу на 2-х Huawei и всех операторах большой тройки.

    ------- ещё дополнил ---------

    Итак вот и последний скрипт из обещанных для статистики CDMA модема AnyDATA ADU-300 (наверное будет работать и на 100 и на 310 и на 500). К сожалению у меня нет достаточной информации по расшифровке ответа модема. Сам ответ извлекается, что я нашёл расшифровывается (не уверен, что до конца правильно), остальное просто выводится. Если кто-то знает как расшифровать ответ модема, подскажите.

    Кроме этого простенький скрипт и ярлык для рабочего стола для быстрого переключения модемов при необходимости. Естественно сделано для моих модемов, но крайне легко корректируется.
    Attached Files Attached Files
    Last edited by dlukanidin; 08-01-2011 at 15:09.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

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

  15. #30
    Quote Originally Posted by dlukanidin View Post
    посмотрите последний скрипт...

    Декодирование сделано для кодировки русского языка в unicode UTF-8. Если оператор отвечает на другом языке или в другой кодировке, возможно нужны правки.
    Проверил ваш скрипт на Huawei E1550 оператор Utel Украина
    Code:
    Modem: huawei E1550
    SysInfo: normal access : roaming : normal SIM : GSM/GPRS(EDGE)
    Operator: "UA-KYIVSTAR"(GSM)
    SysCfg: Auto-WCDMA prefered(Roaming Supported)
    Connection time: 0 days 5 hours 39 min 30 sec :
    Upload speed : 0.4 KBits :
    Download speed : 0.2 KBits :
    Sent data : 2 MB :
    Received data : 16 MB :
    Signal:  24 : db : -65 dBm : Persent : 80 %
    Balance: i640b75<67k021z014Q677N163t503.17q10334L035.2B2071152.17n1*340j276 456H
    163x645l116&063.334R74@506\015f542\434&173j021651$676h2076053=475n1n0439655$02a0
    24V701
    Вроде все работает кроме баланса. Я думаю нужно ориентироваться на последний параметр при ответе у меня он "15" у вас я думаю "72", еще встречал где-то "128". Впрочем насчет 128 не уверен помню только первые 2 цифры - пускай пока будет "12x". Предполагаю что он и говорит в какой кодировке ответ оператора. Для моего случая думаю нужна обратная процедура которой вы кодируете номер USSD(*100#), например decodePDU
    Вот пример ответа моего оператора
    Code:
    +CUSD: 0,"D6F01C0D1287D961F75CA70F9FC3EC933B9F06D9642C9B6D078287D765BA3B9F06C15830D80E447E93C3F4F5DB9E4F83602C180C8496BB5DD0B2BC6C4FCBD76110F94D0ED3D76F7B7E8D06C1DF7376FD0C52C564B111",15
    Должно полуиться что-то типа этого
    Code:
    Vash balans:zagal'nyi 62,66; paketnyi 0,00; dodatkovyi 0,00 hrn.Perevirka dodatkovykh poslug *121#
    По крайней мере так раскодирует перловый скрипт не помню где взятый
    Сам к сожалению не сильно могу помочь из-за своих обрывочных знаний программирования shell
    Добавляю пример "перлового" скрипта
    Code:
    #!/opt/bin/perl
    my $pdu_data = 'D6F01C0D1287D961F75CA70F9FC3EC933B9F06D9642C9B6D078287D765BA3B9F
    06C15830D80E447E93C3F4F5DB9E4F83602C180C8496BB5DD0B2BC6C4FCBD76110F94D0ED3D76F7B
    7E8D06C1DF7376FD0C52C564B111';
    if (@ARGV != 0)
    {
        $pdu_data = $ARGV[0];
    }
    
    @a=split(//,unpack("b*", pack("H*",$pdu_data)));
    for ($i=6; $i < $#a; $i+=7)
    {
        $a[$i].= "0";
    }
    #print @a,"\n";
    print pack("b*", join("", @a)).""
    Last edited by serget; 08-01-2011 at 20:29.

Page 2 of 4 FirstFirst 1234 LastLast

Similar Threads

  1. Скрипт чтения СМС на 3G модеме (ussd)
    By dlukanidin in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 114
    Last Post: 03-06-2022, 04:48
  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. Replies: 356
    Last Post: 01-01-2013, 22:33
  5. Скрипт для скачивания подкастов Python + Google Reader
    By 1ac3124 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 4
    Last Post: 18-08-2010, 12:36

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
  •