Проверка баланса на 3G модеме.

Ethernet card, Wi-Fi, Bluetooth, IrDA, ADSL-модемы, модемы

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Clansman
Сообщения: 170
ОС: Windows 7|XP

Проверка баланса на 3G модеме.

Сообщение Clansman »

субж. нужно для мегафона. мобиле партнёр не предлагать! где-то слыщал можно послать какую-то команду прямо в консоли, что-то типа echo в порт мопеда.
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Проверка баланса на 3G модеме.

Сообщение Ism »

Именно AT команду через какую нибудь утилиту работающую с сом портом. Найдите справочник AT команд для вашего модема

эта команда посылает набранный номер для получения балланса (для каждого оператора свой) и в ответ в консоли вам возвращается значение , как в обычном телефоне.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Проверка баланса на 3G модеме.

Сообщение broom »

Для билайна вот скрипт писали: конкретно про GPRS/EDGE/3G/CDMA/EvDO модемы
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Аватара пользователя
Clansman
Сообщения: 170
ОС: Windows 7|XP

Re: Проверка баланса на 3G модеме.

Сообщение Clansman »

помогите плиз его довести до мегафона. какие команды заменить? какое расширение? .py?

#!/usr/bin/env python
#
# This script send 'get balance' request to the Beeline
# from Huawei E219/E220 USB-GPRS modem.
#
# IDima © 2008
#
import serial
import string
import os
#
# 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
#
KDIALOG='/usr/bin/kdialog'
USBPORT='/dev/ttyUSB1'
USBSPEED=460800
MAXSTRINGLENGTH=300

print "Wait a while ... "
s=serial.Serial(USBPORT,USBSPEED,timeout=5)
s.write('ATZ \015')
s.write('AT+CUSD=1,AA184C3602,15 \015')
line=''
while line[0:6] != '+CUSD:':
line=s.readline(MAXSTRINGLENGTH)
s.close()

line2=line.split(',')[1]
line3=string.replace(line2,'"','')
line4=str2byte(line3)
result=line4.encode('utf8')

if KDIALOG and os.path.isfile(KDIALOG):
os.system(KDIALOG + ' --title "Beeline_Internet@Home" --msgbox "' + result + '"')
else:
print result
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Проверка баланса на 3G модеме.

Сообщение Ism »

s.write('AT+CUSD=1,номер проверки счета,15 \015')


Если команда выдает ошибку, можно попытаться ussd-запрос нужно написать с парными кавычками, т.е. “*111#”


в общем поиграть с кавычками
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Проверка баланса на 3G модеме.

Сообщение Ism »

кстати есть вариант с pdu перекодировкой

http://habrahabr.ru/blogs/php/98837/

http://habrahabr.ru/blogs/telecom/98846/
Спасибо сказали:
Аватара пользователя
Clansman
Сообщения: 170
ОС: Windows 7|XP

Re: Проверка баланса на 3G модеме.

Сообщение Clansman »

ничего блин не помогает :( ну грузить же каждый раз мобле партнер в винде...............
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Проверка баланса на 3G модеме.

Сообщение broom »

Если вы хотите, чтобы вам помогли решить задачу, вам придётся показать, КАК вам ничего не помогает.
Например, как и какую команду вы даёте модему, что он отвечает.

Кстати, переношу в "Сетевые устройства".
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Аватара пользователя
Clansman
Сообщения: 170
ОС: Windows 7|XP

Re: Проверка баланса на 3G модеме.

Сообщение Clansman »

эти все ваши скрипты это сейчас не нужно! как просто проверить баланс? почему вы не отвечаете на мой ответ?
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Проверка баланса на 3G модеме.

Сообщение broom »

Открываете порт модема (/dev/ttyUSB0 или /dev/ttyUSB1) с помощью, например, программы minicom, и шлёте в него команды вида "AT+CUSD=1,AA184C3602,15" (для разных модемов и операторов они разные).
Это вам уже говорил Ism в сообщении №2.

И поизучайте всё-таки тему конкретно про GPRS/EDGE/3G/CDMA/EvDO модемы
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Аватара пользователя
Clansman
Сообщения: 170
ОС: Windows 7|XP

Re: Проверка баланса на 3G модеме.

Сообщение Clansman »

как его выполнитьв консоли?

Код: Выделить всё

<?php

function decodePDU($in) {
  $b = 0; $d = 0;
  $out = "";
  foreach (str_split($in, 2) as $ss) {
    $byte = hexdec($ss);
    $c = (($byte & ((1 << 7-$d)-1)) << $d) | $b;
    $b = $byte >> (7-$d);
    $out .= chr($c);
    $d++;
    if ($d == 7) {
      $out .= chr($b);
      $d = 0; $b = 0;
    }
  }
  return $out;
}

function encodePDU($in) {
  $out = "";
  for ($i = 0; $i < strlen($in); $i++) {
    $t = $i%8+1;
    if ($t == 8)
      continue;
    $c = ord($in[$i])>>($i%8);
    $oc = $c;
    $b = ord($in[$i+1]) & ((1 << $t)-1);
    $c = ($b << (8-$t)) | $c;
    $out .= strtoupper(str_pad(dechex($c), 2, '0', STR_PAD_LEFT));
  }
  return $out;
}

$f = fopen ("/dev/ttyUSB2", "rw+");
fputs($f, "AT+CUSD=1,".encodePDU("*100#").",15\r\n");

while ($s = fgets($f)) {
  if (substr($s, 0, 5) == "+CUSD") {
    $s = decodePDU(substr(trim($s), 10, -3));
    echo $s."\n";
    if (strpos($s, "1 - Dalee") !== false) {
      fputs($f, "AT+CUSD=1,".encodePDU("1").",15\r\n");
    }
    else
      break;
  }
 }

fclose($f);

?>
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Проверка баланса на 3G модеме.

Сообщение broom »

Вы же говорили, что не нужны вам никакие скрипты?
А вообще очевидно: сохранить в файл и сказать интерпретатору php, чтобы он его выполнил:

Код: Выделить всё

$ php <filename>
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Аватара пользователя
Aviator
Сообщения: 65
ОС: Debian GNU/Linux amd64

Re: Проверка баланса на 3G модеме.

Сообщение Aviator »

Вот накатал себе скрипт для проверки баланса, чтения SMS и прочего для ZTE MF626.
Проверка баланса и SMS-ок подойдут и для других модемов.
За питон не пинать - это моя первая и пока единственная программа на нем, а так я заядлый сишник. :)
Вложения
zte.txt
(5.28 КБ) 89 скачиваний
С уважением, Сергей.
Спасибо сказали:
inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Re: Проверка баланса на 3G модеме.

Сообщение inspirra »

А разве нельзя проверить баланс через сервис гид.
Плюс, есть GUI Wammu (диспетчер для мобильного).
Спасибо сказали:
Ответить