Документация
ОС Аврора 4.1.0

Сотовая связь

ОС Аврора предназначена для использования на мобильных устройствах и поддерживает основную функциональность мобильного телефона.

Функции телефонии ОС Аврора включают в себя:

  • телефонные звонки;

  • оповещение с помощью мелодий звонка;

  • маршрутизацию звука телефонного звонка;

  • управление SIM-картами;

  • возможность работы с двумя SIM-картами;

  • подключение к GPRS и к оператору телефонной сети;

  • обработку AT-команд;

  • взаимодействие с SIM ToolKit (STK-меню);

  • общее управление модемом.

  • oFono — фреймворк и демон, который используется для общего управления модемом и обеспечивает доступ к таким инструментам как идентификация в сети, использование часового пояса — NITZ (Network Identity and Time Zone), дополнительная обработка SMS для поддержки MMS;

  • libqofono — библиотека Qt для доступа к демону oFono, включающая API QML;

  • libqofonoext — библиотека Qt для доступа к nemomobile-специфичным расширениям oFono, включающая API QML;

  • ConnMan — фреймворк, обеспечивает управление всеми сетевыми соединениями;

  • libconnman-qt — библиотека Qt для доступа к ConnMan, включающая API QML.

Телефонными звонками можно управлять через oFono и Telepathy.

Промежуточное программное обеспечение для голосовых вызовов и активации звонков реализованы в виде дополнений к oFono и Telepathy:

  • telepathy-ring — менеджер соединений Telepathy для GSM и аналогичной мобильной телефонии;
  • telepathy-qt — библиотека Qt для клиентов телефонии;
  • telepathy-mission-control — менеджер учетных записей и диспетчер каналов для Telepathy;
  • voicecall — менеджер голосовых вызовов для реализации пользовательского интерфейса набора номера и активации звонков;
  • libcommhistory — централизованное управление историей, сбор событий вызовов и передачи сообщений.

Управление и маршрутизация звукового потока реализована через PulseAudio:

Компоненты архитектуры представлены на схеме ниже.

Архитектура телефонии

Стек сотовой телефонии состоит из компонентов, обеспечивающих взаимодействие с сотовой сетью в целом и предоставляющих механизмы для расширения функционала сотового телефона.

Сотовый стек состоит из следующих компонентов:

  • RIL — аппаратная абстракция HAL based on Bionic;
  • oFono — абстракция модема;
  • ConnMan — обработка соединения;
  • Telepathy — промежуточное ПО голосовой связи и сообщений;
  • MCE/StateFS — обработка состояния модема;
  • Contactsd — обработка контактов;
  • обработка звонков и сообщений.

Содержание:

Сотовое подключение к данным

Сотовое подключение к данным является частью общей архитектуры сотовой телефонии.

Сеть сотовой связи предоставляет услуги подключения к данным для получения доступа к сети Интернет. Сотовое подключение к данным обрабатывается компонентами:

  • основные компоненты:
    • ConnMan,
    • Libconnman-qt,
    • Nemo-qml-plugin-connectivity,
    • ConnectionAgent;
  • дополнительный компонент расширения: Provisioning-service.

ConnMan является основным демоном, управляющим сетевыми соединениями Wi-Fi, Bluetooth, USB и сотовая связь. Доступ к функционалу ConnMan обеспечивается с помощью высокоуровневого API D-Bus.

ConnMan поддерживает различные технологии через плагин, разработанный подобно oFono. Модульная конструкция делает ConnMan расширяемым, т. е. может быть добавлена поддержка новых технологий соединения. Также в виде плагинов могут быть реализованы методы конфигурации подобные DHCP (протокол динамического конфигурирования узла) и разрешение доменного имени.

Желаемые плагины могут быть разрешены/запрещены и сконфигурированы во время запуска. Для этого можно использовать конфигурационный файл. Файл может, например, определить предпочтительный порядок технологий и список сетевых интерфейсов, которые не будут обработаны ConnMan.

Плагины ConnMan могут быть сконфигурированы во время компиляции или во время сборки с помощью опций, среди которых есть возможность исключения встроенных плагинов, таких как Wi-Fi.

ConnMan использует oFono в качестве провайдера сотовой технологии, и поддержка ConnMan при помощи oFono реализована плагином oFono. ConnMan отслеживает демон oFono в тот момент, когда он запускается, останавливается и перезапускается.

Компонент Libconnman-qt состоит привязок Qt, которые отражают интерфейсы ConnMan D-Bus: класс NetworkManager представляет net.connman.Manager, класс NetworkTechnology представляет net.connman.Technology, класс NetworkService представляет net.connman.Service.

Компонент Nemo-qml-plugin-connectivity является динамически загружаемым QML-плагином расширения для сетевых/коммуникационных QML-приложений, использующих протокол TCP/IP. Он использует Libconnman-qt для связи с ConnMan, чтобы предоставить требуемые службы.

Компонент ConnectionAgent представляет собой демон и плагин, обеспечивающий доступ к интерфейсу агента ConnMan (т. е. net.connman.Agent) через класс UserAgent из библиотеки Libconnman-qt. ConnectionAgent также предоставляет поддержку функции ConnMan autoconnect для включения сетевой/коммуникационной технологии, если у соответствующей службы ConnMan параметр autoconnect установлен в значение True.

Provisioning-service используется для установки обновления «по воздуху» (OTA, Over the Air), т. е. использование предоставленных оператором данных, полученных push-уведомлением для инициализирования контекста Интернет-данных и MMS-данных (Служба обмена мультимедийными сообщениями) oFono. Сначала данные получает oFono, который распознает их как push-уведомления и направляет к Provisioning-service для последующей обработки. Затем на основе полученных данных Provisioning-service инициализирует контексты данных и MMS oFono. После обработки данных Provisioning-service распространяет сигнал, отображающий результат (apnProvisioningSucceeded, apnProvisioningPartiallySucceeded, apnProvisioningFailed).

Необязательно включать Provisioning-service в операционную систему. Он только автоматизирует настройку MMS и Интернет-соединения. В мобильном телефоне те же данные могут быть предоставлены конечным пользователем через UI приложения.

Фреймворк Telepathy

Фреймворк Telepathy является частью общей архитектуры сотовой телефонии.

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

Например, при использовании фреймворка Telepathy нет отличий между сотовым голосовым вызовом и вызовом через SIP (Session Initiation Protocol, протокол установления сеанса). Это достигнуто при помощи модульной структуры, где каждый модуль связывается друг с другом через коммуникационный интерфейс D-Bus.

Подробная информация о фреймворке Telepathy и его компонентах представлена в статье.

Обработка состояния сотового модема

На мобильной программной платформе необходимо обрабатывать изменения, обозначенные модемом, и изменения состояния модема. Для учёта изменений и состояний данные передаются на уровень адаптации модема (oFono) независимо из каждого отдельного приложения.

StateFS и MCE предоставляют информацию о системных состояниях, включая модем и модем-связанные состояния.

Сотовый речевой вызов и обработка сообщений

Компоненты речевого вызова и обработки сообщений:

  • Voicecall;
  • Commhistory-daemon;
  • libcommhistory;
  • Mms-engine.

Компоненты взаимодействуют с другими частями системы, такими как libqofono и Telepathy, чтобы разрешить выполнение приложений для получения и отправки сообщений (SMS и MMS), а также для получения и создания голосовых вызовов через сотовую сеть.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.