Telepathy

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

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

Фреймворк Telepathy (Mer) состоит из следующих компонентов:

  • Telepathy-glib;
  • Telepathy-qt;
  • Telepathy-mission-control;
  • Telepathy-ring.

Telepathy является модульным провайдером услуг связи с унифицированным интерфейсом прикладного протокола. Каждый поддерживаемый протокол и каждый клиент для каждого протокола реализованы, учитывая свои собственные процессы. Фреймворк Telepathy состоит из нескольких модулей, используемых клиентами Telepathy:

  • менеджеры соединений;
  • менеджеры учетных записей;
  • диспетчеры канала.

Модули представляют следующие роли:

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

Типы канала, поддерживаемые Telepathy-qt и Telepathy-glib, сконфигурированы во время сборки для включения следующих компонент:

  • вызов;
  • список контактов;
  • поиск контактов;
  • DBus Tube;
  • передача файлов;
  • список комнат;
  • сервер аутентификации;
  • сервер соединения TLS;
  • Stream_Tube;
  • потоковое медиа;
  • текст;
  • Tubes.

При этом фреймворк Telepathy технически определен как набор спецификаций API D-Bus, таким образом, не существует единой или эталонной реализации Telepathy. Различные реализации предназначены для различных биндингов высокоуровневого языка, в числе которых Telepathy-glib или Telepathy-qt. При изменениях в реализации могут возникнуть некоторые проблемы функциональной совместимости.

Telepathy-glib

Telepathy-glib является библиотекой для компонентов Telepathy, использующих GLib (программная библиотека утилиты, написанная на языке C). Он обеспечивает высокоуровневые GLib-биндинги Telepathy для пользователей и провайдеров услуг, реализующих использование языка C.

Одно из проектных решений при данной реализации — проект Telepathy-glib эффективно останавливает менеджер соединений каждый раз, когда соединение отсутствует. Поэтому для активного менеджера соединений он должен оставаться в подключенном состоянии. Это проблематично в случае Telepathy-ring, потому что модемное соединение через oFono может появляться и исчезать, особенно в случае, когда используются USB-модемы. Таким образом, Telepathy-ring должно всегда оставаться в подключенном состоянии, даже когда отсутствует модемное соединение.

Telepathy-qt

Telepathy-qt является библиотекой для компонентов Telepathy, используя фреймворк Qt. Он предоставляет Qt-биндинги Telepathy пользователям и провайдерам услуг, реализованные в Qt на языке C++.

Telepathy-mission-control

Telepathy-mission-control обрабатывает учетные записи. Когда он запускается, он загружает или создает учетные записи, имеющие соответствующего менеджера по протоколу. Параметры учетной записи сохранены Telepathy-mission-control. Используя параметры, он возвращает учетную запись в режиме онлайн, подключаясь к соответствующему менеджеру по протоколу, например, с Telepathy-ring. Telepathy-mission-control действует как диспетчер канала, который распределяет входящие и исходящие каналы передачи данных соответствующим приложениям. Telepathy-mission-control использует Telepathy-glib для обеспечения биндинга Telepathy.

Telepathy-ring

Telepathy-ring является менеджером по протоколу сотовой связи Telepathy, обрабатывающим SMS и сотовый головой вызов. Telepathy-ring предоставляет поддержку при вызове (для создания сотовых голосовых вызовов), SMS (для отправки, получения и управления помещенных в очередь SMS-сообщений) и службе SIM (Subscriber Identity Module) (для доступа к некоторой информации SIM).

Telepathy-ring состоит из трех основных частей: плагин Telepathy-mission-control, модем (т. е. интерфейс oFono) и сам менеджер соединений. Telepathy-ring использует Telepathy-glib для обеспечения биндинга Telepathy. Плагин Telepathy-mission-control устанавливает необходимые свойства и позволяет выполнять роль менеджера учетных записей Telepathy-ring. Например, плагин Telepathy-mission-control от Telepathy-ring устанавливает параметр ConnectAutomatically как true, вследствие чего Telepathy-mission-control попытается соединиться, т. е. запустить Telepathy-ring каждый раз, когда свойство ConnectionStatus разъединено.