Reply to comment

USSD4all

Введение

USSD запросы широко используются операторами мобильной связи: через них можно узнать баланс, количество предоплаченных минут и мегебайт. Они были разработаны в 1990'х и с тех пор способ работы с ними не поменялся. Пользователь должен ввести неинтуитивный код чтобы на экране высветилось сообщение. USSD-widget предоставляет новый способ использования этих кодов, уменьшающий количество необходимых действий до минимально возможного, что позволяет лучше контролировать свой счет. В том числе это важно в силу того, что опреаторы порой приворовывают в надежде, что это останется незамеченным.

Что из себя представляет этот проект

Этот проект был разработан для n900 и состоит из двух пакетов: USSD4all и USSD-widget. Первый предоставляет GUI и CLI интерфейсы для отправки USSD запросов. Основное нововведение заключается в предоставлении сторонним приложениям простого API и обеспечения необходимых блокировок, чтобы эти программы не мешали друг другу.
Так как реализация USSD от NOKIA в PR 1.2 аналогична реализации в любом другом телефоне и рассчитана на то, что никто другой запросы посылать не будет, она конфликтует с любой другой программой. USSD4all отключает проблемную GUI часть этой реализации и заменяет ее своей. Надеюсь, что когда-нибудь необходимость в этом отпадет.
USSD-widget это виджет для рабочего стола, который выполняет предустановленные пользователем запросы по команде или по таймеру, удаляет из ответов спам. извлек4ае полезную информацию. показывает на экране и отправляет другим приложениям (например в журнал). Он также может повторять запросы в случае ошибки, что полезно при плохом приемем, напмер в вметро. Так что, если пользователь хочет узнать свой баланс, ему достаточно просто взглянуть на рабочий стол.

Актуальность

USSD коды можно разделить на две группы:
  • Редко используемые. Как правило используются для включения сервисов. Каждый раз пользователю нужен новый сервис, так что надо вводить новый код. Традиционный подход работает хорошо.
  • Коды для получения информации и включеня ежедневно используемых сервисов. Было бы удобно иметь эту информацию уже высвеченной на рабочем столе, а для сервисов иметь кнопки, их включающие. USSD-widget поддерживает динамическое изменение оформления через DBus интерфейс, что позволяет изменять его цвет в зависиости от статуса услуги, активируемой виджетом. Например, некоторые операторы позволяют иметь несколько номеров на одной SIM карте и переключаться между ними с помощью USSD запросов. В таком случае вы можете иметь по виджету на номер и подсвечивать активный номер.
    А даже если ваш шаблон использования не ложится на возможности USSD-widget, вы можете использовать автоматизировать его с помощью USSD4all и любого скриптового языка.
  • Принципиальная схема

    Приложение состоит из 4х модулей: ussdquery.py (CLI утилита для выполнения запросов), qussd (традиционный GUI (я бы с удовольствием сделал бы кнопки побольше, но QT не поддерживает кнопочки с высотой отличной от 72 px.)), USSD-widget (виджет рабочего стола) и ussdd (демон, ожидающий входящие USSD сессии и. если нет приложения, готового обработать сессию, вызывающий qussd).
    Во время тестирования многие пользователи жаловались на спам, добавляемый операторами к сообщениям, поэтому USSD-widget использует регулярные выражения для извлечения полезной информации из ответов. Кроме того, некоторые операторы предпочитают возвращать ответ в SMS сообщенииьвместо USSD ответа. Этот случай также может обрабатываться USSD-widget.

    Блокировки

    Так как GSM модуль только один, USSD сессии должны выстраиваться в очередь. USSD4all организует блокировки таким образом, что запросы от одного приложения не будут посланы по середине сесии другого приложения. Единственным слабым местом являются запросы инициированные сотовой сетью. Из-за отсутствия необходимых оповещений блоктровка будет осуществлена только после приема сообщения. Теоретически, возможно возникнование гонок. Но практически такие сессии используются крайне редко (Текущая раелизация телефонного приложения в n900 не использует USSD4all, поэтому ее сессии также считаются инициированными соовой сетью). Так что вероятностью возникновения такой ситуации можно пренебречь. Или же нужно модифицировать ПО GSM модуля (до которого у меня нет доступа).

    Дополнительная документация

    За дополнительной информацией вы можете обратиться на домашнюю страницу USSD-widget.

Reply

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.