Меню Рубрики

Huawei mobile partner для linux

Linux, кодинг, митолл и прочая хрень 🙂

Прога для данного usb модема, почти аналог виндовой. Подрубаться к сети можно и без нее, но функции телефона, как чтение смсок например, не будет. А так все и сразу.
Выложили добрые парни из Acer.
Скачать Mobile Partner для Linux

34 комментария

Спасибо, реально выручил дружище. Прошелся малёха по-твоему блогу — интересно. Сам имею сабжевый модем, а он как-то себя странно вёл, и вот бац и твой пост про прогу для моего модема, и под Линь ))). Кстати, за Линь уважаю — я тоже 2 год сижу, начинал с Кубунты 7.04, сейчас люблю больше гном — юзаю Убу 10.04. Спасибо. Пиши ещё ))

Ссылка не работает. Можете помочь?

Вот скажите, а голосовые функции под линукс работают в ней?

Даже незнаю, не пробовал

Это под какую архитектуру?

Уже скачал 3 раза эту прогу с трех разных мест, и после установки у всех просто белое окно ((
А с этого сайта вообще не запускается, что делать.

Для корректного отображения окна Mobile Ppartner,нужно отключить зффекты рабочего стола,и всё будет ОК.

Не запускается в принципе…
Exception in thread «main» java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)
at java.awt.Window. (Unknown Source)
at java.awt.Frame. (Unknown Source)
at java.awt.Frame. (Unknown Source)
at javax.swing.SwingUtilities$SharedOwnerFrame. (Unknown Source)
at javax.swing.SwingUtilities.getSharedOwnerFrame(Unknown Source)
at javax.swing.JDialog. (Unknown Source)
at javax.swing.JDialog. (Unknown Source)
at javax.swing.JDialog. (Unknown Source)
at com.huawei.mobilePartner.common.util.JreVerControl. (JreVerControl.java:23)
at com.huawei.mobilePartner.gui.ui.MobilePartner.main(MobilePartner.java:54)
И повисла…

Java попробуй обнови

Она только для Мегафона как в поставке с модемом или для МТС тоже проканает? А то мегафоновская уже есть, но не могу настроить точку доступа МТС. Пишет большими буквами и не показывает точки.

Добрый день Алексей! Пользователь линукс с недельным стажем. Не получается установить программу, если возможно опишите по подробнее как ставить, скачал, распаковал, пробывал кликом по huawei081126.sh — ругается, других способов для установки подобных файлов не нашел. Спасибо

Я немного Александр, но не суть

пробывал кликом по huawei081126.sh

надо в консоли sh ./huawei.sh набрать

openSUSE 11.4
модем huawei E1550
Mobile Partner huawei081126.sh
zenity установил
При запуске скрипта установки в консоли вижу следующую распечатку:
Verifying archive integrity… All good.
Uncompressing update huawei….

(zenity:5572): Gtk-WARNING **: cannot open display:
1
При установке родной программы модема Megafon_Internet проблем нет, работать начинает, но часто появляется сообщение, что устройство отсутсвует (т.е. пропало) — приходится перезапускать программу.
Через QInternet openSUSE все тоже работает, только постоянно прерывается прием — приходится принудительно разрывать соединение и вновь включать.
Поэтому решил попробовать предложенную Вами программу, а она не устанавливается.
Что посоветуете?

Здравствуйте Александр!
Ничего личного, не хотел проявить неуважение.
Писал телеграфным стилем (мужчины все таки).
Но тем не менее — извиняюсь.
Попробую вашу рекомендацию.
Я запускал sudo ./huawei081126.sh из консоли, перейдя до этого через cd в нужный каталог.

Если уж Вы не оставили без внимания мой вопрос, то хотелось бы услышать ваше мнение и о причинах различной стабильности работы Megafon_Internet в openSUSE и Windows 7.
Дело в том, что в Windows у меня, в основном, только одна проблема — скорость передачи (EDGE), в остальном можно не жаловаться — качает.
Бывают дни с перерывами в связи, но не часто.
В openSUSE — страшный суд — скачать 5 МБ — подвиг — или перерывы в связи или система перестает видеть модем — приходится выключать Megafon_Internet и запускать снова.
Все действо происходит на одном и том же компьютере у меня дома.
Еще одно наблюдение.
Я ставил Megafon_Internet в VirtualBox (Host — Windows, Guest — openSUSE) и при этом не наблюдал различий в работе программы, т.е. в гостевом Linux я получал равноценный доступ в интернет.

Так что вопрос ц у меня многогранный, а цель одна — обеспечить в openSUSE качество связи, как в Windows.

С уважением
Алексей

Алексей, по первому коменту — гугля утверждает что проблема решаема http://ubuntuforums.org/showthread.php?t=759389

По второму — а для линукса разве есть Megafon_Internet ?

В зюзе я пробовал просто для теста использовать модем — все работало, но вот как там качает и через сколько обрывается я не замерял. В бубунте тоже завелось, но там если отключил модем, то по второму разу уже не включишь.

Посколько я не активный юзер опенсюси, то что-то конкретное я не могу посоветовать, уж извиняйте. Обычно гугл может много рассказать, но в любом случае предстоит немного полюбиться с системой.

У меня модем мегафоновский Е1550. Прямо на нем была папка Linux и в ней программа, запускается через bash, ограничений по дистрибутивам не указано.
Получается в Linux-е Мегафон-Интернет стандартного вида со стандартными функциями.
Если надо — могу выслать на почту (как я понимаю программа не коммерческая и за распространение ничего не будет). Моя почта у Вас есть — сообщите куда отправить.
Единственная рекомендация перед установкой в службах включить smpppd.
Больше она ничего не требует.

http://ubuntuforums.org/showthread.php?t=759389 я уже видел и с -s опцией пробовал запускать, а именно:
sudo -s ./huawei081126.sh
Результат к сожалению тот же, только номер ошибки поменялся.

Алексей, спасибо за прогу, но я в данный момент не использую модем. В данный момент любви хватает с l2tp ))

Вот несколько вариантов Mobile Partner Linux!
http://www.multiupload.com/66RI9BFJI4
http://www.multiupload.com/TNN7MT83SR
http://www.multiupload.com/MGQ2MJYRLX
Все три прги похожи, но первоя и вторая позволяют вводить код разблокировки. Версия 21.003, программа работает на QT от java не осталось и следа. Программа стала стабильнее и быстрей.
как установить написано в файле readme.txt

ОТКРЫВАЕТСЯ ОКНО И УХОДИТ В СРЫВ ,А ПОТОМ ВТОРОЙ РАЗ НЕ ЗАПУСКАЕТСЯ ВООБЩЕ , НЕ ПОЙМУ В ЧЁМ ДЕЛО , JAVA ОБНОВИЛ ,ЭФЕКТЫ РАБОЧЕГО СТОЛА ОТКЛЮЧЕНЫ , СИСТЕМА UBUNTU 10.10

Запусти с консоли и посмотри, чего пишет

Сколько можно. Давно бы перешел на UBUNTU если бы не «пляски» эти с подключениями мобильных модемов…Есть ли у кого информация какая версия какого линя сразу начинает работать с мобильными модемами? ДОСТАЛО УЖЕ…

Программу поставил без проблем. При появлении модема идентифтцирует его, но сеть не видет. Может, кто-нибудб подскажет, что делать?
Вл.

Ребята,что ВЫ паритесь.Проблема с 1550 и подобными Хуавеями в Линуксе решается просто-под Виндой отключи автозапуск и тогда в Линуксах будет работать со стандартным Нетворк менеджером и Мобильным Партнером.Я уже около 3 лет работаю без проблем.Кстати очень хорошо зарекомендовали себя ПуппиРус-через vdial с версии ,5.10 все хуйавеи подключаются моментально.Как переключитьфункции модема-исчите в ин-те статью Алексея Дмитриева «КАКПРИРУЧИТЬ МТС-модем Huawei E1550.C уважением ко всем Валерий

Источник

Huawei Mobile Partner для работы с 3G/LTE модемами

Huawei Mobile Partner — это фирменное ПО, используемое для управления подключением к мобильным сетям через 3G/LTE модемы Huawei. Помимо драйвера для подключения модема к ПК Mobile Partner включает в себя утилиту, позволяющую отправлять и читать SMS, редактировать телефонную книгу и отслеживать статистику входящего/исходящего трафика.

Данная версия Huawei Mobile Partner является универсальной и подходит для большинства 3G/4G модемов Huawei (залоченых/разлоченых устройств).

Поддерживаемые операционные системы: Windows XP, Windows Vista, Windows 7 , Windows 8, Windows 2012 Server, Linux.

Последний актуальный билд 23.009.09.02.910:

  • Поддержка HiCloud (Cloud+)
  • Улучшенное отслеживание трафика
  • Новая тема оформления
  • WiFi Direct
  • Автоматический выбор APN

Помимо этого, в новой версии улучшена поддержка Windows 8.

Скачать актуальную версию Huawei Mobile Partner — Яндекс.Диск. В архиве присутствует инструкция по установке Huawei Linux Driver Tool.

Источник

Huawei mobile partner для linux

Эта статья адресована прежде всего пользователям Linux имеющим 3G модем HUAWEI от Киевстар, но может быть полезна и клиентам других сотовых операторов — MTS, BeeLine, Megafon, Life.

Дело в том, что при переходе на Linux, теряется возможность проконтролировать денежный баланс, остаток пакетных мегабайт, наличие СМС от оператора и ряд других необходимых функций. В Windows этот сервис доступен в программе Mobile partner, которая поставляется вместе с модемом.

Linux-версию этой программы предоставляет только Megafon, остальные же операторы игнорируют тот факт, что кроме Windows существуют и другие операционные системы. Давайте устраним этот пробел.

Восполнить этот пробел призван скрипт на GTK2+Python. Он не заменяет собой Mobile Partner, а просто предоставляет наиболее востребованные функции управления модемом. Скрипт работал на машине автора с UBUNTU 12.04LTS и модемом HUAWEI E153. При желании скрипт легко модифицируется под других операторов, достаточно поменять в нем USSD коды запроса баланса и т.п.

#!/usr/bin/python
# vim:fileencoding=utf-8
# author Kustarev Valery
import gtk
import glib
import sys
import serial
import time
import datetime

# Functions for PDU en-/decoding
def pduDecode (text):
pad = lambda number: number + «0» * (8 — len(number))
data = «».join([ pad(«».join(reversed(bin(ord(c))[2:]))) for c in text.decode( «hex» ) ])
output = «»
while len(data) >= 7:
output += chr(int(«».join(reversed(data[:7])), 2))
data = data[7:]
return output
def pduDecodeSMS (text):
text = text[2 + int(text[:2], 16) * 2:] # Skip SMSC
text = text[2:] # Skip info
#text = text[2:] # Skip reference
text = text[2 + (int(text[:2], 16) + int(text[:2], 16) % 2) + 2:] # Skip telephone number
text = text[2:] # Skip protocol
text = text[2:] # Skip data coding scheme
text = text[14:] # Skip date
text = text[2:] # Skip content length
return pduDecode(text)
def pduEncode (text):
pad = lambda number: number + «0» * (7 — len(number)) binrep = «»
while text:
binrep += pad(«».join(reversed(bin(ord(text[0]) &

(1
text = text[1:]
output = «»
while len(binrep) >= 8:
output += chr(int(«».join(reversed(binrep[:8])), 2)).encode(«hex»)
binrep = binrep[8:]
if binrep:
binrep = «».join(reversed(binrep))
output += chr(int(binrep, 2)).encode(«hex»)
return output.upper()
#Convert telephone number
def convertPhone (number):
pdu_number = »
for i in range(0,len(number)):
if i%2==0:
continue
pdu_number += number[i] + number[i-1]
return pdu_number
def dectobin (i):
b = »
while i > 0:
j = i & 1
b = str(j) + b
i >>= 1
return b
def TextToSMS (text):
#»’Convert text to binary format»’
pdu_text_bin = []
for i in text:
dec_s=ord(i)
if dec_s == 95: dec_s = 17
if dec_s == 94: dec_s = 1
if dec_s == 64: dec_s = 0
if dec_s == 36: dec_s = 2
if dec_s == 123: dec_s = 40
if dec_s == 125: dec_s = 41
if dec_s == 124: dec_s = 64
if dec_s == 126: dec_s = 61
if dec_s == 92: dec_s = 47
if dec_s == 91: dec_s = 60
if dec_s == 93: dec_s = 62
bin = dectobin(dec_s)
le = len(bin)
while le
bin= ‘0’ +bin
le = len(bin)
pdu_text_bin.append(bin)
#»’Encode binary to PDU format»’
pdu_text_bin_cp = []
n=0
for i in range(0,len(text)):
if (i>0) & ((i+1)%8==0):
continue
n+=1
if n==8:
n=1
if i==len(text)-1:
cp = pdu_text_bin[i][0:8-n]
else :
cp = str(pdu_text_bin[i+1][7-n:7] + pdu_text_bin[i])[0:8]
pdu_text_bin_cp.append(cp)
#»’Convert PDU to hex»’
pdu_text=»
for i in pdu_text_bin_cp:
hexi = str(hex(int(i,2)))[2:4].upper()
if len(hexi) == 1:
hexi = ‘0’ + str(hexi)
pdu_text += hexi
return pdu_text
def CreateSMS (data):
number = data[0:10]
text = data[10:97]
pdu_data = ’00’ #СМС центр (default)
pdu_data += ’11’ #SMS-SUBMIT
pdu_data += ’00’ #TP-Message-Reference
pdu_data += ‘0A’ #Phone number-Length
pdu_data += ’81’ #81 — национальный формат, 91 — международный
pdu_data += convertPhone(number)
pdu_data += ’00’ #TP-Protocol identifier
pdu_data += ’00’ #TP-Data coding scheme
pdu_data += ‘AA’ #TP-Validity-Period
len_hex = hex(len(text))[2:4].upper() #Calculate text length
if len(len_hex) == 1:
len_hex = ‘0’ + str(len_hex)
pdu_text = pduEncode(text)
pdu_data+=len_hex
pdu_data+=pdu_text
return pdu_data

def aboutDialog ():
about = gtk.AboutDialog()
about.set_modal(gtk.DIALOG_MODAL)
about.set_program_name( «gKyivStarModemTool» )
about.set_version( «0.0.5-2» )
about.set_copyright( «2013 © Valery Kustarev» )
about.set_comments( «gKyivStarModemTool — программа управления модемом Киевстар для GTK+» )
about.run()
about.destroy()

# Function to show „action pending“ message
def doPendingDialog ():
dlg = gtk.MessageDialog(wnd, 0, gtk.MESSAGE_OTHER, gtk.BUTTONS_NONE, None)
dlg.set_markup( «Ждите ответа от модема. » )
sp = gtk.Spinner()
sp.set_size_request(50, 50)
dlg.vbox.add(sp)
sp.start()
dlg.set_modal(True)
dlg.show_all()
return dlg

# Function to show error dialog
def doError (message):
dlg = gtk.MessageDialog(wnd, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, None)
dlg.set_markup(message)
dlg.set_title( «USB GPRS 3G modem tool — Ошибка» )
dlg.run()
dlg.destroy()
sys.exit(1)
# Function to ask for sth
def doAsk (question):
dlg = gtk.MessageDialog(wnd, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, None)
dlg.set_markup(question)
dlg.set_title( «Modem tool — Запрос» )
entry = gtk.Entry()
dlg.vbox.add(entry)
entry.show()
if dlg.run() == gtk.RESPONSE_CANCEL:
dlg.destroy()
return False
retVal = entry.get_text()
dlg.destroy()
return retVal
def dialogSMS (question):
dlg = gtk.MessageDialog(wnd, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, None)
dlg.set_markup(question)
dlg.set_title( «Modem tool — Запрос» )
Label1 = gtk.Label()
dlg.vbox.add(Label1)
Label1.set_text( ‘Номер телефона: \n (в национальном формате, например 0661234567)’ )
Label1.show()
entry = gtk.Entry()
dlg.vbox.add(entry)
entry.show()
Label2 = gtk.Label()
dlg.vbox.add(Label2)
Label2.set_text( ‘Текст сообщения:’ )
Label2.show()
textView = gtk.TextView()
textView.set_editable(True)
textView.set_cursor_visible(True)
textView.set_size_request(240, 120)
textView.set_wrap_mode(gtk.WRAP_WORD)
dlg.vbox.add(textView)
textView.show()
if dlg.run() == gtk.RESPONSE_CANCEL:
dlg.destroy()
return False
buffer = textView.get_buffer()
txt = buffer.get_text(buffer.get_start_iter(),buffer.get_end_iter())
retVal = entry.get_text()+unicode(txt)
dlg.destroy()
return retVal
def sendNWait (send):
usbTTY.write(send + «\r\n» )
usbTTY.flush()
globals()[ «pending» ] = doPendingDialog()
def ttyReceivedCallback (source, condition):
if condition != glib.IO_IN:
doError( «Потеряна связь с модемом» )
textInput = usbTTY.readline().strip()
print textInput
if «cmglMode» in globals():
if textInput[0:2] == «AT»: return True
if textInput == «»: return True
if textInput[:5] == «+CMGL» :
msgNo = textInput[7:textInput.find( «,» )]
appendText( «==============================» )
appendText( «Сообщение №. » + msgNo + » следующее:» )
appendText( «——————————————————————-» )
return True
if textInput == «OK» :
del globals()[ «cmglMode» ]
if «pending» in globals():
globals()[«pending»].destroy()
del globals()[ «pending» ]
appendText( «Нет новых сообщений» )
appendText( «» )
else :
try :
appendText( » * » + pduDecodeSMS(textInput))
except :
appendText( «Не понято » + textInput)
return True
if textInput[:9] == «^SYSINFO:» :
data = textInput[20:21]
if data == «0» :
outputText = «Нет доступа к сети»
if data == «1» :
outputText = «GSM mode»
if data == «2» :
outputText = «GPRS»
if data == «3» :
outputText = «EDGE mode»
if data == «4» :
outputText = «WCDMA mode»
if data == «5» :
outputText = «HSDPA mode »
if data == «6» :
outputText = «HSUPA mode»
if data == «7» :
outputText = «HSPA mode»
if data == «8» :
outputText = «HSPA + mode»
setStatus1Mes( ‘Режим сети: «‘ +outputText+ ‘»‘ )
return True
if len(textInput) == 0 or textInput[0] != «+» :
# Not of interest for us
return True
if «pending» in globals():
globals()[ «pending» ].destroy()
del globals()[ «pending» ]
if textInput[0:5] == «+COPS» :
textInput = textInput[textInput.find( ‘»‘ ) + 1:]
textInput = textInput[:textInput.find( ‘»‘ )]
if textInput == «25001» : textInput = «MTS RUS»
elif textInput == «25002» : textInput = «MegaFon»
elif textInput == «25099» : textInput = «BeeLine RUS»
elif textInput == «25020» : textInput = «Tele2»
elif textInput == «25039» : textInput = «Utel (Пермский край)»
elif textInput == «25501» : textInput = «MTS-UA»
elif textInput == «25502» : textInput = «Beeline-UA»
elif textInput == «25503» : textInput = «UA-KYIVSTAR»
elif textInput == «25505» : textInput = «UA-GOLDEN TELECOM»
elif textInput == «25506» : textInput = «Life:)»
elif textInput == «25507» : textInput = «Utel (Ukrtelecom)»
else : textInput = «Unknown»
setStatus3Mes( «Оператор: » + ‘»‘ +textInput+ ‘»‘ )
if textInput[0:5] == «+CPIN» :
result = textInput[7:]
if result != ‘READY’ :
pin = doAsk( «Карточка просит » + result)
if pin == False:
sys.exit(1)
sendNWait( ‘AT+CPIN=»‘ + pin + ‘»‘ )
usbTTY.flush()
def send_ask_pin (*w):
usbTTY.write( «AT+CPIN?\r\n» )
return False
glib.timeout_add(300, send_ask_pin)
else :
appendText( «Pin ok; модем доступен» )
appendText( «» )
usbTTY.write( «AT+CNUM\r\n» )
usbTTY.flush()
usbTTY.write( «AT+CSQ\r\n» )
usbTTY.flush()
usbTTY.write( «AT^SYSINFO\r\n» )
usbTTY.flush()
usbTTY.write( «AT+CMGF=0\r\n» )
usbTTY.flush()
usbTTY.write( «AT+COPS?\r\n» )
usbTTY.flush()
usbTTY.write( «AT+CNMI=1,1,0,0,0\r\n» )
usbTTY.flush()
return True
if textInput[0:5] == «+CUSD» :
textInput = textInput[textInput.find( ‘»‘ ) + 1:textInput.rfind( ‘»‘ )]
s = pduDecode(textInput)
appendText(s)
try :
Mb = s[s.index(‘Bonusy:’)+7:s.index( ‘Mb’ )]
# print Mb
# print s[-4:]
# print s[-7:-5]
# print s[-10:-8]
nowDay = datetime.date.today()
finish = datetime.date(int(s[-4:]),int(s[-7:-5]),int(s[-10:-8]))
delta = finish — nowDay
mb_per_day = int(Mb)/(delta.days+1)
appendText( «» )
appendText( «Осталось » +unicode(delta.days+1)+ » дней (включая сегодняшний)» )
appendText ( ‘В день можно тратить: ‘ + unicode(mb_per_day) + ‘ Mb’ )
except :
appendText( «» )
appendText( «» )
if textInput[:5] == «+CNUM» :
textInput = textInput[10:]
textInput = textInput[textInput.find( ‘»‘ ) + 1:textInput.rfind(‘»‘)]
setStatus4Mes( «Номер телефона модема: » + textInput)
if textInput[:5] == «+CMTI» :
appendText( «Получено новое СМС!» )
if textInput[:5] == «+CSQ:» :
print textInput
data = textInput[6:8]
print data
sig_str = -113 + int(data)*2
sig_per = int(data)*100 / 30
pbar.set_text( «Уровень сигнала сети: » +unicode(sig_str)+ «dBm / » +unicode(sig_per)+ «%» )
pbar.set_fraction(float(sig_per)/100)
return True

# Create main window

wnd.set_title( «USB GPRS EDGE 3G KyivStar modem tool» )
wnd.set_size_request(640, 420)
gbox = gtk.VBox()
hbox = gtk.HBox()
vbox = gtk.VBox()

textView = gtk.TextView()
textView.set_editable(True)
textView.set_cursor_visible(False)
textView.set_size_request(320, 64)
textView.set_wrap_mode(gtk.WRAP_WORD)
textView.get_vadjustment ()
buffer = textView.get_buffer()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

# Create the menu items
menu = gtk.Menu()
menu_item1 = gtk.MenuItem( ‘О программе’ )
menu_item2 = gtk.MenuItem( ‘Выход’ )
menu.append(menu_item1)
menu.append(menu_item2)
menu_item1.connect_object( «activate» , lambda *f: aboutDialog(), «О программе» )
menu_item2.connect_object( «activate» , lambda *f: wnd.hide(), «Выход» )
menu_item1.show()
menu_item2.show()
root_menu = gtk.MenuItem( «Меню» )
root_menu.show()
root_menu.set_submenu(menu)
menu_bar = gtk.MenuBar()
gbox.pack_start(menu_bar, False, False, 2)
menu_bar.show()
menu_bar.append (root_menu)
# Create the menu items

def appendText (text):
buffer.insert(buffer.get_end_iter(), text.strip() + «\n» )
textView.scroll_to_iter(buffer.get_end_iter(), 0.25)
checkButton = gtk.Button( «Проверить баланс» )
def checkAction (widget):
sendNWait( ‘AT+CUSD=1,»‘ + pduEncode( «*111#» ) + ‘»,15’ )
checkButton.connect( «clicked» , checkAction)
mbButton = gtk.Button( «Проверить остаток Мб» )
def mbAction (widget):
sendNWait( ‘AT+CUSD=1,»‘ + pduEncode( «*221#» ) + ‘»,15’ )
mbButton.connect( «clicked» , mbAction)
rechargeButton = gtk.Button( «Пополнить счет» )
def rechargeAction (widget):
code = doAsk( «Введите код пополнения:» )
if code == False: return
appendText( «Код послан-ответ оператора:» )
sendNWait( ‘AT+CUSD=1,»‘ + pduEncode( «*123*» + code + «#» ) + ‘»,15’ )
rechargeButton.connect( «clicked» , rechargeAction)
readTextButton = gtk.Button( «Прочитать новые СМС» )
def readTextAction (widget):
sendNWait( «AT+CMGL» )
globals()[ «cmglMode» ] = True
readTextButton.connect( «clicked» , readTextAction)
readAllTextButton = gtk.Button( «Прочитать все СМС» )
def readAllTextAction (widget):
appendText( «Текст полученных сообщений: » )
sendNWait( «AT+CMGL=4» )
globals()[ «cmglMode» ] = True
readAllTextButton.connect( «clicked» , readAllTextAction)
deleteTextButton = gtk.Button( «Удалить СМС» )
def deleteTextAction (widget):
delw = doAsk( «Введите № удаляемого СМС» )
if delw == False: return True
usbTTY.write( «AT+CMGD=» + delw + «\r\n» )
deleteTextButton.connect( «clicked» , deleteTextAction)
sendTextButton = gtk.Button( «Отправить СМС» )
def sendTextAction (widget):
sendText = dialogSMS( «Введите номер телефона и текст сообщения \n Только для украинских операторов!» )
print sendText
if sendText == False: return True
usbTTY.write( «AT+CMGF=0 \015» )
time.sleep(1)
pdu_data = CreateSMS(sendText)
print pdu_data
pdu_len = str(len(pdu_data)/2-1)
usbTTY.write( «AT+CMGS=» + pdu_len + «\015» )
time.sleep(1)
usbTTY.write(pdu_data + «\032» )
sendTextButton.connect( «clicked» , sendTextAction)
sendCusdButton = gtk.Button( «Послать USSD запрос» )
def sendCusdAction (widget):
cusd = doAsk( «USSD запрос: (например *101#)» )
if cusd == False:
return
sendNWait( ‘AT+CUSD=1,»‘ + pduEncode(cusd) + ‘»,15’ )
sendCusdButton.connect( «clicked» , sendCusdAction)
sep1 = gtk.HSeparator()
sep2 = gtk.HSeparator()
stBar1 = gtk.Statusbar()

stBar3 = gtk.Statusbar()
stBar4 = gtk.Statusbar()
pbar = gtk.ProgressBar()
pbar.show()
table = gtk.Table(2, 2, False)
table.attach(stBar1, 0, 1, 0, 1)
table.attach(pbar, 1, 2, 0, 1)
table.attach(stBar3, 0, 1, 1, 2)
table.attach(stBar4, 1, 2, 1, 2)
table.show()
def setStatus1Mes (mess):
stBar1.push(0,mess)
return
def setStatus3Mes (mess):
stBar3.push(0,mess)
return
def setStatus4Mes (mess):
stBar4.push(0,mess)
return
wnd.connect(«hide», lambda *f: gtk.main_quit())
hbox.add(vbox)
sw.add(textView)
hbox.pack_end(sw, padding=5)
vbox.pack_start(checkButton, False, padding=3)
vbox.pack_start(mbButton, False, padding=3)
vbox.pack_start(rechargeButton, False, padding=3)
vbox.pack_start(sep1, False, padding=8)
vbox.pack_start(readTextButton, False, padding=3)
vbox.pack_start(readAllTextButton, False, padding=3)
vbox.pack_start(deleteTextButton, False, padding=3)
vbox.pack_start(sendTextButton, False, padding=3)
vbox.pack_start(sep2, False, padding=8)
vbox.pack_start(sendCusdButton, False, padding=3)
gbox.add(hbox)
gbox.pack_end(table, False, padding=5)
wnd.add(gbox)
wnd.show_all()

# Open TTY
try:
usbTTY = serial.Serial(Port)
glib.io_add_watch(usbTTY.fileno(), glib.IO_IN | glib.IO_ERR, ttyReceivedCallback)
except:
doError( ‘Ошибка открытия порта USB-tty. Убедитесь, что подключение «/dev/ttyUSB2» доступно ‘ +
‘(возможно его заняло другое приложение, работающее с модемом, например NetworkManager). ‘ +
‘Убедитесь, что «usbserial» модуль загружен и модем подключен к порту USB’ )
usbTTY.write( «ATZ\r\n» )
sendNWait( «AT+CPIN?» )

Скрипт можно скачать одним файлом — ussd.zip. Распаковав и сохранив его в домашней папке, нужно дать ему права на выполнение. После запуска скрипта появится следующее окно.

Ну а дальше все понятно. Можно проверить баланс, пополнить счет, проверить наличие входящих СМС или послать СМС с модема. При отсылке СМС, следует иметь ввиду, что текст сообщения надо написать транслитом, иначе корреспондент получит его абракадаброй. Есть возможность послать любой USSD запрос и получить любую информацию от оператора. Предлагаю также deb-пакет этого скрипта для установки в Linux-системы на основе Debian.

Network manager обычно забирает себе все ресурсы модема и скрипт не работает, если модем подключен к интернет через NM. После этого приходится перезагружать модем. Приходится мирится с этим, но зато теперь уже можно не ходить в Windows, чтобы просто посмотреть баланс и не нужно искать Mobile Partner, который заработал бы с вашим модемом в Linux.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mac os kext utility
  • Mac os kernel task жрет ресурсы
  • Mac os java jdk
  • Mac os java home
  • Mac os java firefox