Architecture

The telephony server plug-in is the interface between the telephony server and the baseband. This topic describes the architectural relationship between the telephony server plug-in components.

The CTSY inherits its base class from the telephony Server. The server can be CCallBase, CPhoneBase or CLineBase. CTSY has two main APIs:

TSY plug-in API

This API is used for communication with the telephony server. The telephony client sends the request to the telephony server for any communication that requires baseband connection. The telephony server forwards these requests to the LTSY through TSY plug-in API.

Common TSY plug-in API

This interface is used for the communication between the CTSY and the LTSY. The CTSY forwards the telephony client request to the LTSY using the Common TSY plug-in API as CTSY messages. The CTSY messages are converted to baseband requests by the LTSY.

The CTSY is implemented as a static DLL and it is loaded during device boot time by the telephony server. The telephony server and the CTSY run in the same thread. Since it is a static DLL, the initialisation will not fail.

There are two variants of Common TSY:

  • Common TSY without Dispatcher

  • Common TSY with Dispatcher

Common TSY without Dispatcher

Telephony clients send requests which can be mode specific or mode independent. The mode can be GSM or UMTS. These requests are passed on to CTSY by the telephony server (ETel). The mode independent requests are handled by CTSY and the mode specific requests are handled by the extension modules such as CMmPhoneGsmWcdmaExtInterface. A mode specific extension module may process the requests related to specific technologies such as GSM or UMTS.

Figure 1. Common TSY without Dispatcher

The CTSY is independent of the LTSY and the baseband. The generic interface allows licensees to modify the LTSY and baseband, but allows easy integration. The phone engine is the main user of the CTSY but other processes such as the SIM Application Toolkit (SAT) can also use the CTSY. The phone engine is created by the telephony server when the phone boots. The phone engine initialises the CTSY and the LTSY when a first request call is made by one of the clients. The CTSY creates the message manager and the message router proxy. The LTSY creates a message router and message handlers.

Message manager

The message manager separates the CTSY from the LTSY. Telephony client requests are all processed by the message manager and passed to the LTSY using the message router. CMmMessageRouterBase provides the required implementation for routing the client request to the LTSY. When the requests are acknowledged, the message manager forwards the response message to the client. Each client is identified by a unique IPC number. LTSY should use the MmMessageManagerCallback interface to respond to the telephony clients.

The requests passed from CTSY to LTSY should be sent as a packaged data using the CmDataPackage template. The template class allows packing of two parameters together.

Message router proxy

The message router proxy handles the response from the baseband to the CTSY. Message router proxy implements the MmMessageMangerCallBack which is used by the LTSY to respond back to the CTSY request messages using the Complete() method.

Common TSY with Dispatcher

In the second variant of the CTSY a new layer is provided to decrease the development time of the LTSY. This new layer, between the CTSY and the LTSY, is known as the dispatch layer. The dispatch layer provides a simple interface to be implemented in the LTSY. The dispatch layer handles the packing and unpacking of messages between the CTSY and LTSY. The LTSY is responsible for the implementation of the functions defined in the dispatcher classes and translating the requests to baseband commands.

CTSY

The CTSY implements the message manager. The message manager processes the incoming client requests and pass them to appropriate dispatcher class through the message router. The acknowledgements from the dispatcher class are passed back to the clients through the telephony server.

Dispatcher

The dispatch layer provides the following:

  • LTSY factory classes

    The factory classes creates the required interfaces for communication between the LTSY and the CTSY.

  • Message router

    The message router is responsible to call the appropriate dispatcher class function.

  • Dispatcher classes

    The dispatcher classes are grouped according to the functional areas.

  • Call-back functions

    The LTSY uses the call-back function to acknowledge previous request or to notify an event.

Note: Some of the functions may not be implemented in the LTSY. When the dispatcher receives a request for an unsupported function it returns KErrNotSupported to the clients.