LINUX.ORG.RU

Gnome Modem Manager

 , , , ,


2

2

Представляю вниманию общественности ЛОРа свою разработку - Gnome Modem Manager.

Это приложение представляет собой аналог различным Megafon Internet для Windows. А в отличии от всяких этих Mobile Partner написано не на Java, обладает нормальным GTK интерфейсом (а не пытается делать вид, что автор умнее всех, и рисовать все элементы самостоятельно). И самое главное - вместо своих велосипедов по работы с модемами использует в качестве бэкэнда D-Bus API ModemManager (компонент NetworkManager, который позволяет подключаться через USB модемы).

А это значит:

1) Мне не надо заботится об особенностях конкретных модемов. Меня вообще не волнует что там и как будет управляться. Я лишь дёргаю готовые функции общие для всех GSM-модемов.

2) Моё приложение поддерживает все USB-модемы, которые поддерживает ModemManager. Также добавление новых модемов и исправление багов я полностью перекладываю на плечи авторов ModemManager, а их больше :-)

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

Возможности:

1) Одновременная работа с несколькими модемами.

2) Получение информации о модеме (модель, драйвер, адрес устройства, уровень сигнала, название оператора, IMEI и т. д.)

3) Чтение СМС из памяти SIM-карты (все входящие попадают туда).

4) Удаление СМС из памяти SIM-карты (можно удалить старые, чтобы не занимали место, ведь размер памяти SIM-карты ограничен).

5) Поддержка USSD-запросов. Ответ на USSD пока нормально не работает, но тут вина странного метода ModemManager для ответа на USSD - оно не возвращает новое сообщение. В итоге ответить можно, но ответ на ответ мы не увидим уже.

Планируется:

1) Создание СМС с возможностью сохранения в памяти SIM-карты, либо сразу отправки.

2) Нормальный USSD-диалог.

3) Выбор кодировки USSD (пока с приёмом нелатинских сообщений всё печально)

4) Уведомление о новых СМС

5) Что-нибудь ещё.

Язык программирования: Vala (в отличии от Си там вменяемая поддержка D-Bus, зато по скорости не хуже)

Лицензия: GPLv2

Тулкит: GTK3 (при желании можно GTK2)

Официальная страничка (есть скриншот и подробное описание со всеми ссылками): http://cpu-fun.ru/projects/gmm (Английский и Русский)

Репозиторий на GitHub: https://github.com/kiv-apple/Gnome-Modem-Manager

Пакет для Arch Linux в AUR: https://aur.archlinux.org/packages.php?ID=54542

PPA для Ubuntu (обновляется раз в сутки, если есть изменения в GIT, так что можете быть уверенными, что у вас самая последняя версия): https://launchpad.net/~gnome-modem-manager-team/ archive/gnome-modem-manager-...

Все вопросы, пожелания, предложения вы можете оставлять в этой теме, на GitHub (issues) или в комментариях на моём сайте (никаких вконтактиков - встроенный модуль Drupal).

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

P.S.: Было бы не плохо советовать это приложение новичкам, которые задают вопросы типа «как проверить баланс 3г модема в Linux?»

P.P.S.: Не помешает собрать пакеты для других дистрибутивов. Приглашаются все желающие. Могу потом вывесить на сайте ссылки.

★★★★★

Ответ на: комментарий от mephistopheles

Ну сейчас мне ещё один человек с форума Ubuntu помогает. Например, перевёл программу на украинский язык и помог с PPA.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Может и слишком наглый feature request, но все же, можно ли как-нибудь добавить поддержку yota/4g/lte?

mephistopheles ★★ ()
Ответ на: комментарий от mephistopheles

Все вопросы к ModemManager. Если у него появится интерфейс для таких модемов, я допишу GMM.

KivApple ★★★★★ ()

Я джва года этого ждал! Радости полные штаны, разработчику два чая и бочку пива!

MyNameIsWinner ()

и почему я до сих пор пользуюсь pppd

pkurg ★★★ ()

Поставил пакетик посмотреть, запустил, воткнул хуавей — оно работает ;)
Интересно, до какой версии доживёт.
Нужно, т.к. эротичней выглядит и людей не придётся пугать консолью и пр. скриптами. Респект.

amorpher ★★★★★ ()

Как можно определить в Makefile, что сборка выполняется под Ubuntu?

А то у них странные требования для центра приложений (пытаюсь сейчас туда пропихнуть приложение) - надо обязательно ставить в /opt/extras.ubuntu.com. Хотелось бы для других дистрибутивов раскидывать файлы в нормальные местоположения (/usr/bin, /usr/share/gnome-modem-manager, /usr/share/locale).

KivApple ★★★★★ ()

Круто, ппока нет usb модема, но планируется. А тут такая удобная программа.

MikeB ★★★ ()

Ты крут. Я как раз сегодня целый день гуглил альтернативу Мегафон Интернету, ибо он у меня пишет «устройство отключено или недоступно». Пока остановился на gsm-ussd. Завтра и твою поделку попробую.

anonymous ()
Ответ на: комментарий от Lighting

Вообще-то именно его я и использую в качестве бэкэнда. Как оказалось он умеет и СМСки и USSD, просто в гуе это нигде не реализовано.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

NetworkManager, говорю, имеет интеграцию с ModemManager. А ты, вместо того, чтобы добавить соответствующую функциональность, наваял лисапед со смежными функциями. Да ещё и без присущей NetworkManager'у нативности(он умеет работать с keyring GNOME и KDE, уведомления и т.д.)

Не то чтобы это совсем уж плохо, но это же ЛОР.

Lighting ★★★★★ ()
Ответ на: комментарий от Lighting

NetworkManager не умеет СМС, USSD и т. д. ОН только управляет подключениями и ничего больше. Но его компонент ModemManager предоставляет D-Bus API, чтобы кто-нибудь мог доделать, чего не хватает.

Ты мне предлагаешь форкать network manage applet?

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

NetworkManager не умеет СМС, USSD и т. д. ОН только управляет подключениями и ничего больше.

Это Open Source, не?

Lighting ★★★★★ ()
Ответ на: комментарий от Lighting

Ну так я не плачусь, что он не умеет, а взял и написал своё.

KivApple ★★★★★ ()

В ответ на USSD-запросы - кракозябры. Huawei E173, Мегафон.

è"Δ@C¿Å$0òt!Δò@æ@¡@Σ¥¡ø@,@H£@ì@Δè@_ΣD ø@.@@!Δè£ßèöΔΔD@Δ$8òò"Pù@ΔènΔ@C¡ø$>òP!Pì£Éèj@@B¡ø$8òP!Pù£É@¡ΔΔ¥@ò$BòT!0ìAΞèò_pC å$5@è£ é¡Ξ@¿@0¥¡
@2@ø£@è¡Σ@¿Δ@è¿Ø$Aòø"
Excavator ()
Ответ на: комментарий от Excavator

Используй латиницу. У операторов часто есть такая функция для старых моделей телефонов (посылается особый USSD, включающий транслит). Перекодировка сообщений есть в TODO, но пока не реализовано. Под вопросом из чего перекодировать и как определять когда это нужно.

KivApple ★★★★★ ()
Ответ на: комментарий от Excavator

У Huawei-ев сообщения в ucs2 ходят.

В инете хватает скриптов перекодировки или сразу отправки USSD с раскодированием ответа

Kuzz ★★★ ()
Ответ на: комментарий от KivApple

Проверил на Теле2 - то же самое, у них кириллицы вообще нет. И ещё - модем после ussd-запроса самопроизвольно подключается к интернету

Excavator ()
Ответ на: комментарий от KivApple

А то у них странные требования для центра приложений (пытаюсь сейчас туда пропихнуть приложение) - надо обязательно ставить в /opt/extras.ubuntu.com.

Бред какой-то. Хоть одно такое приложение существует в природе? Сколько ни ставил программ из центра приложений, в /opt/extras.ubuntu.com они ничего не писали.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Ты не ставил пропиетарщину/из партнерского(?) репа.

КО

zz ★★★★ ()
Ответ на: комментарий от gentoo_root

Это ты ставишь то, что уже смогли пропихнуть в репозиторий Debian.

KivApple ★★★★★ ()
Ответ на: комментарий от zz

Ты не ставил пропиетарщину/из партнерского(?) репа.

Проприетарщину не ставил, да. Но ведь gnome-modem-manager — не проприетарщина, а гплщина, ему-то зачем отдельный префикс? Свалку какую-то хотят сделать из убунты.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Мне ещё на review сегодня прислали ответ, что я недостаточно глубоко запихнул GMM - в /opt вместо /opt/extras.ubuntu.com. Пришлось менять. Они какую-то винду делают...

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Мне ещё на review сегодня прислали ответ, что я недостаточно глубоко запихнул GMM - в /opt вместо /opt/extras.ubuntu.com. Пришлось менять. Они какую-то винду делают...

Как можно определить в Makefile, что сборка выполняется под Ubuntu?

Можно проверять, делать венду или не делать, читая /etc/lsb-release (там должно быть DISTRIB_ID=Ubuntu). Или вообще приделать какой-нибудь --enable-ubuntu к configure, которого, кстати, у тебя нет, а надо бы запилить (хотя лучше cmake, конечно).

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Потому что он хочет не попасть в архив, а поставлять как 3rd party приложение?

zz ★★★★ ()
Ответ на: комментарий от zz

Потому что он хочет не попасть в архив, а поставлять как 3rd party приложение?

Я бы в такой ситуации сделал бы или ppa, или просто пакеты, в которых собрано по-человечески. В конце концов, подключать ppa в убунте умеют даже последние хомяки. Если им нужна будет эта программа, они спокойно скопипастят 3 строчки в консоль.

gentoo_root ★★★★★ ()
Ответ на: комментарий от KivApple

Не во всех дистрибутивах есть /etc/lsb-release

Не во всех дистрибутивах есть gtk+, gcc, make, binutils. Мысль понятна?

Файл /etc/lsb-release — это часть стандарта LSB. Дистрибутив, который следует LSB (это 99.9% дистрибутивов, ориентированных на обычных пользователей), должен предоставлять пакет, в котором находится этот файл и программа lsb_release. Если этот пакет по умолчанию не устанавливается (как, например, сделано в Генте), то нужно всего лишь прописать зависимость — это нормально. Фактически, lsb-release — это единственный стандартизированный способ определения дистрибутива Линукса, установленного у пользователя; всё-таки, LSB — это не хухры-мухры. Если городить какие-то свои костыли вместо использования вещей, предусмотренных общепринятыми стандартами, то ничего хорошего из этого не выйдет. Lsb-release как раз для того и придумали, чтобы упорядочить и стандартизировать способ определения дистрибутива, а если делать вместо этого свои костыли, то просто вернёмся в нелёгкое прошлое.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Благо мне нужно определять только Ubuntu, потому что у других дистрибутивов таких заморочек расположением файлов нет. Варианта лишь два - «как правильно» и «как в Ubuntu». Дописал в начало Makefile:

ifneq ($([ -e /etc/lsb-release ] && cat /etc/lsb-release | grep Ubuntu),)
	IS_UBUNTU = 1
endif

ifdef IS_UBUNTU
	DATA_DIR = ${DESTDIR}/opt/extras.ubuntu.com/gnome-modem-manager
	BIN_DIR = ${DESTDIR}/opt/extras.ubuntu.com/gnome-modem-manager
	LOCALE_DIR = ${DESTDIR}/opt/extras.ubuntu.com/gnome-modem-manager/locale
	DESKTOP_FILE_NAME = extras-gnome-modem-manager.desktop
else
	DATA_DIR = ${DESTDIR}/usr/share/gnome-modem-manager
	BIN_DIR = ${DESTDIR}/usr/bin
	LOCALE_DIR = ${DESTDIR}/usr/share/locale
	DESKTOP_FILE_NAME = gnome-modem-manager.desktop
endif

«неUbuntu» определяет точно, сейчас попробую сборку под Ubuntu.

KivApple ★★★★★ ()
Ответ на: комментарий от gentoo_root

Не работает. Определяет все дистрибутивы как неUbuntu.

А такой код определения наоборот определяет все дистрибутивы как Ubuntu:

TMP = `[ -e /etc/lsb-release ] && cat /etc/lsb-release | grep Ubuntu`

ifneq (${TMP},)
	IS_UBUNTU = 1
endif

Поучите меня Makefile, а то пока оно не работает как надо.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

${TMP}

Тут круглые скобочки надо: $(TMP).

`[ -e /etc/lsb-release ] && cat /etc/lsb-release | grep Ubuntu`

Для этого есть $(shell):

$(shell [ -e /etc/lsb-release ] && cat /etc/lsb-release | grep Ubuntu)
gentoo_root ★★★★★ ()

Вопрос. А не пробовали предложить приложение к включению в гном (desktop-devel-list@gnome.org)? Полезная же штука.

Ну да, интерфейс бы пришлось хигануть.

svu ★★★★★ ()
Ответ на: комментарий от svu

Я не писатель по-английский. Предложите и скажите мне список изменений (можно даже по-английски) - я всё сделаю.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Это, конечно, плохо... даже если начальное сообщение я напишу - надо же как-то дальше жить. Вашим секретарем я все-таки не подпишусь работать.

svu ★★★★★ ()

Молодец! Может быть попробую когда-нибудь.

hibou ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.