SMS is supported on two radio networks, CDMA and GSM. Because of the differences in the SMS standards on the two networks, messaging's SMS support is implemented in different libraries for each. The following table summarises source, executable, and header locations for the two modes:
|
This page explains how to configure the emulator to use either GSM or CDMA libraries, and how to select which libraries go into a ROM.
An application does not link directly to either GSM or CDMA libraries. Instead, it links to thin 'shim' libraries that redirect
function calls to the GSM or CDMA libraries, depending how the emulator is configured. The client MTM shim library is smcm.lib
, the server MTM shim library is smss.lib
.
For how to specify the libraries to link to and the headers to use in your mmp project file, see Project files.
You can configure the emulator either on the command line, or in a configuration file. To use the command line, add an option
-DGSM
or -DCDMA
to the command line launching the emulator. For example,
> epoc -DCDMA
launches the emulator in the CDMA configuration.
Alternatively, you can set the configuration in the file epoc32\data\configuration.ini
. To configure for CDMA, make an entry in this file as follows:
RadioBearer=CDMA
The emulator will default to the GSM configuration if no explicit setting is made on the command line or in the configuration file.
When building a ROM, you should specify inclusion of only one set of libraries. The client MTM library should be named smcm.dll
in the ROM, and the server mtm library smss.dll
.
An IBY file to do this is provided in common\messaging\sms\multimode\group\GtSmsMtm.iby
. It includes the CDMA MTM libraries if the macro CDMA
is defined. This macro can be defined when building a ROM using buildrom
by specifying an argument -DCDMA
.