Компоненты инфраструктуры MMS#

oFono отвечает за предоставление контекста данных, используемого для передачи данных MMS (изображение/музыка). Также передает push-уведомления wap на верхние уровни.

nuntium - демон, который прослушивает push-уведомления wap и активирует контекст данных MMS в приложении ofono по запросу, чтобы отправлять/получать MMS. Обеспечивает локальное хранилище.

telepathy-ofono <https://github.com/ubports/telepathy-ofono>- компонент связан с nuntium через протокол Dbus. Используется как для ретрансляции сообщений из телефонного приложения в nuntium, так и для ввода в инфраструктуру MMS, полученных nuntium как сообщения, состоящие из нескольких частей. Этот компонент также отмечает сообщения как «прочитанные» и удаляет успешно полученные сообщения из nuntium.

history-service - этот компонент следит за работой программы telepathy и хранит сообщения, получаемые telepathy-ofono и и отправляемые программой messaging-app.

telephony-service-approver - этот компонент отвечает за добавление SMS к меню сообщений и отображение входящих текстовых уведомлений.

messaging-app отображает MMS в режиме разговора, а также позволяет прикреплять мультимедийные файлы к сообщению для отправки в MMS.

Общее описание#

Входящее сообщение MMS#

  • Ofono получает MMS WAP push-уведомление и передает его nuntium

  • nuntium включает MMS context в приложении ofono, извлекает контент из MMSC и передаёт новое MMS-сообщение на верхние уровни.

  • Новое MMS-сообщение поступает в приложение telepathy-ofono.

  • Если автоматическая переадресация не включена или недоступна в данный момент, в приложение отправляется системное сообщение

  • Компонент messaging-app запрашивает передачу сообщения в telepathy-ofono.

  • После поступления сообщения из MMSC, оно передается в приложения через обычный текстовый канал в сообщении, состоящем из нескольких частей (одна текстовая/HTML-часть, одна текстовая обычная часть и одна часть для каждого вложения). Если системное сообщение было доставлено ранее, у этого реального сообщения есть флаг, указывающий, что оно заменяет предыдущее сообщение.

  • History service сохраняет новое сообщение в виде вложений на диск и меняет пути файлов в text/html части, чтобы они указывали новые папки. Также сохраняется флаг сообщения и тип контента.

Исходящее MMS-сообщение#

  • Компонент messaging-app создаёт новый текстовый канал в telepathy-ofono, или использует уже существующий канал.

  • messaging-app отправляет MMS-сообщение как сообщение, состоящее из нескольких частей в telepathy-ofono

  • nuntium активирует MMS context в ofono, отправляет MMS через MMSC и сигнализирует на верхние уровни о текущем статусе (оправлено или сохранен черновик).

  • telepathy-ofono отправляет сигнал приложению отчеты об отправке.

Диаграмма «Входящее MMS-сообщение»#

incoming-MMS.png

Диаграмма «Исходящее MMS-сообщение»#

outgoing-MMS.png

Справка и помощь#