Messaging Integration APIChanges in Messaging Integration API documentation
PurposeThis API enables third party developers to integrate their MTM based services to Messaging Centre and SendUI API. This document describes the required identifiers and the required resource definition necessary to implement the integration. It is assumed that the reader is familiar with Symbian Messaging Framework and Message Type Modules (MTMs). The intent of this document is not to describe how to create MTMs from scratch. API descriptionDevelopers can extend the messaging capabilities of the platform by implementing MTM services. The purpose of this API is to help developers integrate their MTM services into Messaging Centre and the Send menu provided by SendUI API. This is a framework API. Use casesMTM integration Enabling MTM in Messaging Centre and SendUI A sending service is installed into the system. The user launches Messaging Centre, and selects "Write Message". A list query containing all suitable installed sending services is shown. See implementation details in sections 1.1 and 1.2 . Dynamic function filtering in Messaging Centre A message is selected in Messaging Centre. MTM, owning the selected message, supports different functions based on the context. Messaging Centre inquires available functions from the selected MTM and creates the context sensitive menu accordingly. See section 1.3 for details. Integrating settings into Messaging Centre A sending service is installed into the system. The user wants to modify the settings of the service. He selects "Settings" in the options menu of the Messaging Centre main view. A view opens listing all the messaging services that has settings. The user chooses the service. The settings of the service open. See section 1.4 for details. Dynamic sending service filtering in SendUI The client application requests to show all sending services that have the predefined sending capability support. SendUI shows a list query containing all suitable sending services. The user has selected content and dynamic filtering is requested from SendUI. SendUI compares the content to the capabilities reported by the sending service. MTM service is shown in the Send menu, if the sending service can send the selected content. See sections 1.5 and 1.6 for details. Using Messaging Integration APIMTM services are integrated into Messaging Centre and SendUI. MTM can be integrated to Message Centre, SendUI or both. For Messaging Centre sending service can implement a context sensitive options for its own message entries. MTM Service IntegrationThe S60 on Symbian platform requests name and feature information from MTM. Enabling MTM in Messaging Centre and SendUIAn MTM service must have editor support ( KUidMsvMtmQuerySupportEditor ) in order to be visible in the Messaging Centre. Similarly, an MTM service must support sending ( KUidMtmQueryCanSendMsg ) in order to be available in the SendUI menu. The support for the features is checked by calling CBaseMtmUiData::QueryCapability with the corresponding capability identifiers. See the following sections for implementation details.
Capability identifiers
Related APIs
Setting MTM service names
Messaging Centre asks the name of the MTM service from the MTM registry.
The name is inquired from the MTM Registry using the function called
SendUI uses the following identifier to resolve the name of the service to be used in the SendUI menu. Constant defined in mtmuidef.hrh.
SendUI will search for a function with the above mentioned function identifier. If the function is found the name of the service is taken from the functiontext of the function. If the function is not found the name of the service is asked from the MTM Registry.
Related APIs
Integrating MTM specific functions into Messaging Centre
In the below picture is presented as an activity diagram, how the Messaging
Centre utilizes MTM functions. Messaging Centre goes through all the MTM functions
(MTUD_FUNCTIONs), checking if the
The command item is added to the Messaging Centre Options menu, if the
operation is supported or the command is not context specific. The
Activity diagram of creating dynamic MTM custom functions for a message entry in the Messaging Centre Selecting a message specific custom function is presented in the activity chart below. After a message command has been selected, it is checked if the command is context specific. If it is context specific the selected message is set as the context of the client MTM of the selected service. The method of calling MTM synchronously or asynchronously is determined next. Finally the function is invoked with the command identifier and the selected entry (or entries) as parameters. Messaging Centre uses the following constants to resolve sending service capabilities.
Constants defined in mtud.hrh.
The required function syntax for setting the sending service features is explained in the example below.
Related APIs
Integrating settings into Messaging CentreIntegrating an MTM service to Messaging Centre's settings list
An MTM service can register itself to be shown on Messaging Centre's settings
list with an MTM function (MTUD_FUNCTION). The command ID of the function
has to be
When the user selects an MTM service from the list the following steps are performed:
Note! MTM Services that support service entry creation should not register to be shown on the settings list. Integrating a mail service to Mail Wizard UI
A mail MTM service can also register itself to be shown in the list of
mail protocols in Mail Settings Wizard UI. This can be done with an MTM function
with command ID
When the user selects a protocol from the list
Assumptions concerning settings integration The following assumptions apply to both integration points described above:
Related APIs
Dynamic sending service filtering in SendUI
Framework inquires support for the specified feature at runtime from the
MTM. Default response of MTM is
SendUI uses the following identifiers to resolve the MTM service attributes at runtime. These flags are defined in mtmuids.h . These constants are defined in mtmuids.h, if not otherwise stated.
Related APIs
MTM service handling in SendUISendUI maintains a list of available sending services. Section 1.1 covered how to make MTM service visible in SendUI. The purpose of this section is to cover in detail how MTM services are managed in SendUI.
SendUI requests all MTM services from the MTM registry (see the picture
below). Each service's message sending capability is inquired. Services which
support message sending are taken to closer review. Service name is copied
from the function that has
Name resolving is followed by service attribute setting. SendUI inquires
from MTM's UI data component support for the following features:
The final phase of MTM service registration is to find out, if the MTM
service requires account to be functional. For instance SMS and MMS do not
require accounts in order to be valid. If the MTM service can create a service
entry (
Note, that Messaging Centre does not do this check for MTM services when creating list of available services. Sending a message via MTM service
The message is stored in the
A draft entry is created and set as the current entry of the client MTM. The client MTM takes the ownership of the entry. After entry has been created the message data is copied to MTM. The first stage is to add all recipient addresses to MTM. Next the body text is copied to MTM. If MTM does not support body text, then an attachment file is created from the body text. Name of the attachment file is taken from the first allowed characters of the body text. Filename extension of the attachment is TXT.
This is followed by inserting the attachments to MTM. If MTM supports linked
attachment, then the
SendUI waits until the asynchronous
Related APIs
GlossaryDefinitionsDefinitions
|