Pull to refresh

Comments 37

как же вы вовремя:) сейчас же пойду тестить на киевстаровском ZTE mf100 из 3G пакета…
zte не катит под линух
huawei вот наш выбор
UFO just landed and posted this here
значит не все так плохо.

уж не упомню точно название модели от zte но я перелопатил кучу инфы но так и не смог его запустить под убунтой. а хуавей нашелся и заработал на 1-2-3
zte mf100 завелся в ubuntu10 без какихлибо шаманств.
Отлично даже работает. Именно MF100.
Интересное решение. Вопрос: какой путь ставить при соединении через fopen для винды? Есть у меня одна фирма у которой всё под винду заточено. Хотелось бы сделать напоминалку о состоянии баланса…
Скорей всего будет вида fopen(«COM1:», «rw+»);?
К сожалению сейчас не могу протестировать…
Извините, но с Windows очень мало работал. Сомневаюсь, что там устройства хранятся в виде файлов (думаю знающий человек меня поправит, если что).
емнип, устройства вроде com и lpt имеют такие же файловые метки как и в юниксах, только хранятся они в текущей для процесса директории «в очень скрытом виде», а не в специальном каталоге типа dev.
для винды нужно будет открывать COM-порт на котором висит модем и скорее всего средствами пхп это сделать нельзя, либо сложнее чем просто fopen. Только зачем под виндой извращатся, ведь через софтину оператора все можно увидеть.
почемуто неверно декодируется полученый ответ от модема:(
например при получении ответа
+CUSD: 0,«0050006F0073006C007500670061002000500061006B0065007400790020006
40061006E007900680020006E00650020007000690064006B006C00690075006300680065006E0061»,72
(строку разбил пополам чтобы в комент влезла и вместо типографских кавычек там обычные двойные)
на экран выводится вот это:

есть идеи как исправить?
Возможно зависит от модема, но в моем телефоне (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
я уже разобрался что это пхп с кодировкой шалит, переписал на скрипт на питон и все стало ок.
а поделиться питон вариантом не могли бы?
через несколько минут опубликую топик, правда питонист из меня слабый, потому скрипты будут не универсальные. но может ктото поопытней поможет их развить в универсальную графическую утилитку.
графику исключительно опционально. нам тут главное cli-подавай, а гуй, как говорится, всегда приложится.
а отправлять принимать через такой модем смс проблематично? он залочен под киевстар? разлочиваентся?
под виндой принимать и отправлять умеет родной софт от операторов. Так как почти на всех модемах софт-лок то он либо легко обходится, либо лечится прошивкой без лока.
Конкретно в случае с Киевстаровским HUAWEI E1550 — там изначально исчерпаны попытки разлочки кодом, и заблокирована перепрошивка (любая попытка перепрошить обрывается с сообщением о неверной версии прошивки). Лечится через DC-Unlocker и подобный софт, увы — разлочка стоит денег (около 7 Евро).
тут все зависит от версии прошивки модема, в более старых там все очень просто, в новых уже постарались все заблочить что только можно… так что все зависит от даты покупки.
wrong, эти е1550 залочены не кодом, а прошивкой.
простое обновление прошивки снимет лок, а вот активация voice-функций — это уже 4 евро.
Хорошо, попробуйте сейчас купить и перепрошить его, в таком случае. Год назад это было возможно. Сейчас, вряд ли найдется новый можем, который не заточён по полной — так, что перепрошивка уже на начальном этапе прервется.
Я это говорю не с целью поделиться тем, что прочитал на первом попавшемся форуме, а делюсь личным опытом.
Коды сейчас не помогают. Прошивка тоже. В новых партиях модемов возможность перепрошивки заблокирована. Флеш-коды там тоже не помогут.
ну камрад, так не бывает, чтобы ничего не помогало. покупал пару месяцев назад и imei был из числа тех, куда, как писали ничего не вольешь и ничего не сломаешь. ошибались, все прошло на ура.
Значит, повезло. На моем не работали никакие из известных мне бесплатных вариантов (коды, перепрошивка).
а под линукс как? теми же ат командами по идее должен?
да должен, но я не пробовал пока. в сети видел вот такое сообщение:
«Я её юзал для моторолы. В частности этот код:
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.»

нужно пробовать и подбирать команды для конкретного модема.
UFO just landed and posted this here
не во всех дистрибутивах нормально отрабатывается извлечение виртсд и переключение в режим модема, хотя например в убунте10 вообще ничего делать не пришлось — только настроить соединение в менеджере сети.
перл скрипты:
#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";}

UFO just landed and posted this here
А я для этих целей написал программу на C++ и Qt.



Помимо запроса баланса добавил туда возможность принимать СМС, отправлять СМС (на инглише), отправлять простые USSD запросы. Имеются также потуги подключения к интернету.
В общем, если кому интересно даю ссылку со всеми исходниками: rghost.ru/2102920 (Предупреждаю, программа очень сырая)
а версии для х86_64 нету? а то ругается стандартно /usr/lib/gio/modules/libgvfsdbus.so: неправильный класс ELF: ELFCLASS64
Это все, что есть
прошу прощения за оффтоп, но можно ли как то под FreeBSD запусить people.net на huawei?
Sign up to leave a comment.

Articles