Есть модем. Как получить баланс?
Это читал https://wiki.archlinux.org/index.php/Hu ... 0_3G_modem
Пробовал.
Пробовал это http://beliashou.com/blog/archives/5829
Отвечает просто ОК.
Проверка баланса Huawei E1550 МТС.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: Проверка баланса Huawei E1550 МТС.
Код: Выделить всё
gw2# cat pdu.inc
<?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;
}
?>
Код: Выделить всё
gw2# cat config.inc
<?php
$gsmDevice['Name'] = 'e1550';
$gsmDevice['Port'] = '/dev/cuaU0.2';
$lastError = '';
?>
Код: Выделить всё
gw2# cat ussd.inc
<?php
require_once ('config.inc');
require_once ('pdu.inc');
function sendUSSD($Number)
{
global $gsmDevice;
global $lastError;
$ussdResult = '';
if ($gsmDevice['Port'] == '')
{
$lastError = "gsmDevice['Port'] не установлен.";
return false;
}
$f = fopen($gsmDevice['Port'], "rw+");
if (!$f)
{
$lastError = "Ошибка открытия файла '" . $gsmDevice['Port'] . "'";
return false;
}
$query = "AT+CUSD=1,\"" . encodePDU($Number) . "\",15";
fwrite($f, $query . "\n\n");
$i = 0;
while ($i<50)
{
$line = trim(fgets($f));
if ($line != '')
{
if ($line == "ERROR")
{
$lastError = "AT+CUSD failed.";
fclose($f);
return false;
}
if (!strncmp($line, "+CUSD", 5))
{
$values = explode('"', $line);
if ($values[1] != '')
$ussdResult = decodePDU($values[1]);
break;
}
$i++;
}
}
$lastError = '';
fclose($f);
return $ussdResult;
}
?>
Код: Выделить всё
gw2# cat send_ussd
#!/usr/local/bin/php
<?php
require_once ('ussd.inc');
if ($argc != 2)
{
echo "Interactive mode. Type 'exit' to quit.\n";
while(true)
{
$line = trim(fgets(STDIN));
if (strtolower($line) == 'exit')
break;
$ussdResult = sendUSSD($line);
if ($ussdResult === false)
echo $lastError . "\n";
else
echo $ussdResult . "\n";
}
}
else
{
$ussdResult = sendUSSD(trim($argv[1]));
if ($ussdResult === false)
echo $lastError . "\n";
else
echo $ussdResult . "\n";
}
?>
Код: Выделить всё
gw2# ./send_ussd \*101#
Na rakhunku 1.66 grn, dijsnyj do 02.10.2011. Taryf - MTC Pervyy. Podarunky PlayStation 3 ta XBOX360 tut *121#
-
- ст. прапорщик
- Сообщения: 538
- Зарегистрирован: 2008-03-13 12:02:59
Re: Проверка баланса Huawei E1550 МТС.
Не не, вы не поняли.
У меня на аткоманду AT+CUSD=1,encodePDU(*100#),15 выдается просто ОК.
То, что вы предложили я видел, да и не вкусно еще php ставить для этого :-)
У меня на аткоманду AT+CUSD=1,encodePDU(*100#),15 выдается просто ОК.
То, что вы предложили я видел, да и не вкусно еще php ставить для этого :-)
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: Проверка баланса Huawei E1550 МТС.
работать надо с /dev/cuaU0.2, а не /dev/cuaU0.0
-
- ст. прапорщик
- Сообщения: 538
- Зарегистрирован: 2008-03-13 12:02:59
Re: Проверка баланса Huawei E1550 МТС.
Дада, спасибо. Только что это попробовал.