Компоненты инфраструктуры 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-сообщение»#
Диаграмма «Исходящее MMS-сообщение»#
Справка и помощь#
Исходный документ: https://wiki.ubuntu.com/Touch/Specs/MMSInfrastructure