Комментарии 37
как же вы вовремя:) сейчас же пойду тестить на киевстаровском ZTE mf100 из 3G пакета…
+1
zte не катит под линух
huawei вот наш выбор
huawei вот наш выбор
0
НЛО прилетело и опубликовало эту надпись здесь
zte mf100 завелся в ubuntu10 без какихлибо шаманств.
0
Отлично даже работает. Именно MF100.
+1
Интересное решение. Вопрос: какой путь ставить при соединении через fopen для винды? Есть у меня одна фирма у которой всё под винду заточено. Хотелось бы сделать напоминалку о состоянии баланса…
+1
Скорей всего будет вида fopen(«COM1:», «rw+»);?
К сожалению сейчас не могу протестировать…
К сожалению сейчас не могу протестировать…
+1
Извините, но с Windows очень мало работал. Сомневаюсь, что там устройства хранятся в виде файлов (думаю знающий человек меня поправит, если что).
+1
для винды нужно будет открывать COM-порт на котором висит модем и скорее всего средствами пхп это сделать нельзя, либо сложнее чем просто fopen. Только зачем под виндой извращатся, ведь через софтину оператора все можно увидеть.
+1
почемуто неверно декодируется полученый ответ от модема:(
например при получении ответа
+CUSD: 0,«0050006F0073006C007500670061002000500061006B0065007400790020006
40061006E007900680020006E00650020007000690064006B006C00690075006300680065006E0061»,72
(строку разбил пополам чтобы в комент влезла и вместо типографских кавычек там обычные двойные)
на экран выводится вот это:
есть идеи как исправить?
например при получении ответа
+CUSD: 0,«0050006F0073006C007500670061002000500061006B0065007400790020006
40061006E007900680020006E00650020007000690064006B006C00690075006300680065006E0061»,72
(строку разбил пополам чтобы в комент влезла и вместо типографских кавычек там обычные двойные)
на экран выводится вот это:
есть идеи как исправить?
0
Возможно зависит от модема, но в моем телефоне (Philips) в ответах используется кодировка UCS2. Я на питоне делаю так:
>>> import serial
>>> ser = serial.Serial('COM7', timeout=0.5)
>>> ser.write('AT+CUSD=1,"*102#"\r\n')
19L
>>> hexstr = ser.readall().split(',')[1][1:-1]
>>> response = hexstr.decode('hex').decode('utf-16-be')
>>> print response.encode('cp866', 'ignore') # windows cmd
Баланс 299,43 руб. Сумма бонуса 0.30 руб.
Формат команды:
5.14 AT+CUSD – Unstructured supplementary service data (Sec 7.15)
5.14.1 Description
Allows control of the Unstructured Supplementary Service Data (USSD). Both network- and mobile-initiated
operations are supported. This command is used to enable the unsolicited result code +CUSD.
5.14.2 Format
Command
Possible response(s)
+CUSD=[<n>[,<str>[,<dcs>]]]
+CME ERROR: <err>
+CUSD?
+CUSD: <n>
+CUSD=?
+CUSD: (list of supported <n>s)
5.14.3 Field
<n>:
0 disable the result code presentation to the TE
1 enable the result code presentation to the TE
2 cancel session (not applicable to read command response)
<str>: string type USSD string
<dcs>: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
<m>:
0 no further user action required
1 further user action required
2 USSD terminated by network
3 other local client has responded
4 operation not supported
5 network time out
>>> import serial
>>> ser = serial.Serial('COM7', timeout=0.5)
>>> ser.write('AT+CUSD=1,"*102#"\r\n')
19L
>>> hexstr = ser.readall().split(',')[1][1:-1]
>>> response = hexstr.decode('hex').decode('utf-16-be')
>>> print response.encode('cp866', 'ignore') # windows cmd
Баланс 299,43 руб. Сумма бонуса 0.30 руб.
Формат команды:
5.14 AT+CUSD – Unstructured supplementary service data (Sec 7.15)
5.14.1 Description
Allows control of the Unstructured Supplementary Service Data (USSD). Both network- and mobile-initiated
operations are supported. This command is used to enable the unsolicited result code +CUSD.
5.14.2 Format
Command
Possible response(s)
+CUSD=[<n>[,<str>[,<dcs>]]]
+CME ERROR: <err>
+CUSD?
+CUSD: <n>
+CUSD=?
+CUSD: (list of supported <n>s)
5.14.3 Field
<n>:
0 disable the result code presentation to the TE
1 enable the result code presentation to the TE
2 cancel session (not applicable to read command response)
<str>: string type USSD string
<dcs>: 3GPP TS 23.038 [25] Cell Broadcast Data Coding Scheme in integer format (default 0)
<m>:
0 no further user action required
1 further user action required
2 USSD terminated by network
3 other local client has responded
4 operation not supported
5 network time out
0
я уже разобрался что это пхп с кодировкой шалит, переписал на скрипт на питон и все стало ок.
+1
а поделиться питон вариантом не могли бы?
+1
а отправлять принимать через такой модем смс проблематично? он залочен под киевстар? разлочиваентся?
0
под виндой принимать и отправлять умеет родной софт от операторов. Так как почти на всех модемах софт-лок то он либо легко обходится, либо лечится прошивкой без лока.
0
Конкретно в случае с Киевстаровским HUAWEI E1550 — там изначально исчерпаны попытки разлочки кодом, и заблокирована перепрошивка (любая попытка перепрошить обрывается с сообщением о неверной версии прошивки). Лечится через DC-Unlocker и подобный софт, увы — разлочка стоит денег (около 7 Евро).
0
тут все зависит от версии прошивки модема, в более старых там все очень просто, в новых уже постарались все заблочить что только можно… так что все зависит от даты покупки.
0
wrong, эти е1550 залочены не кодом, а прошивкой.
простое обновление прошивки снимет лок, а вот активация voice-функций — это уже 4 евро.
простое обновление прошивки снимет лок, а вот активация voice-функций — это уже 4 евро.
0
Хорошо, попробуйте сейчас купить и перепрошить его, в таком случае. Год назад это было возможно. Сейчас, вряд ли найдется новый можем, который не заточён по полной — так, что перепрошивка уже на начальном этапе прервется.
Я это говорю не с целью поделиться тем, что прочитал на первом попавшемся форуме, а делюсь личным опытом.
Коды сейчас не помогают. Прошивка тоже. В новых партиях модемов возможность перепрошивки заблокирована. Флеш-коды там тоже не помогут.
Я это говорю не с целью поделиться тем, что прочитал на первом попавшемся форуме, а делюсь личным опытом.
Коды сейчас не помогают. Прошивка тоже. В новых партиях модемов возможность перепрошивки заблокирована. Флеш-коды там тоже не помогут.
0
а под линукс как? теми же ат командами по идее должен?
0
да должен, но я не пробовал пока. в сети видел вот такое сообщение:
«Я её юзал для моторолы. В частности этот код:
at+cmgf=1
at+cmgf?
at+cscs=”GSM”
at+cmgw=”+7905XXXXXXX”}Tekst soobsheniya~!gets”+cmgw:”
at+cmss=%%1
at+cmgd=%%1
Прекрасно работает на мотороле C350 и сименсе m55. А на моём модеме никак.
После строки at+cscs=”GSM” выдаёт ERROR.»
нужно пробовать и подбирать команды для конкретного модема.
«Я её юзал для моторолы. В частности этот код:
at+cmgf=1
at+cmgf?
at+cscs=”GSM”
at+cmgw=”+7905XXXXXXX”}Tekst soobsheniya~!gets”+cmgw:”
at+cmss=%%1
at+cmgd=%%1
Прекрасно работает на мотороле C350 и сименсе m55. А на моём модеме никак.
После строки at+cscs=”GSM” выдаёт ERROR.»
нужно пробовать и подбирать команды для конкретного модема.
0
НЛО прилетело и опубликовало эту надпись здесь
перл скрипты:
#encodepdu.pl
use Getopt::Std;
use Device::Gsm::Pdu;
@a=split(//,unpack(«b*», "*101#")); for ($i=7; $i < $#a; $i+=8) { $a[$i]="" } print uc(unpack(«H*», pack(«b*», join("", @a))))."\n"
#decodepdu.pl
use Getopt::Std;
use Device::Gsm::Pdu;
while(<>){print STDOUT Device::Gsm::Pdu::decode_text7('00'.$_)."\n";}
#encodepdu.pl
use Getopt::Std;
use Device::Gsm::Pdu;
@a=split(//,unpack(«b*», "*101#")); for ($i=7; $i < $#a; $i+=8) { $a[$i]="" } print uc(unpack(«H*», pack(«b*», join("", @a))))."\n"
#decodepdu.pl
use Getopt::Std;
use Device::Gsm::Pdu;
while(<>){print STDOUT Device::Gsm::Pdu::decode_text7('00'.$_)."\n";}
0
А я для этих целей написал программу на C++ и Qt.
Помимо запроса баланса добавил туда возможность принимать СМС, отправлять СМС (на инглише), отправлять простые USSD запросы. Имеются также потуги подключения к интернету.
В общем, если кому интересно даю ссылку со всеми исходниками: rghost.ru/2102920 (Предупреждаю, программа очень сырая)
Помимо запроса баланса добавил туда возможность принимать СМС, отправлять СМС (на инглише), отправлять простые USSD запросы. Имеются также потуги подключения к интернету.
В общем, если кому интересно даю ссылку со всеми исходниками: rghost.ru/2102920 (Предупреждаю, программа очень сырая)
+3
прошу прощения за оффтоп, но можно ли как то под FreeBSD запусить people.net на huawei?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Проверка счета Киевстар модема в Linux