1      Introduction. 2

1.1       Brief introduction. 2

1.2       Dependency. 2

2      Overview.. 3

3      Design and Concepts. 3

4      Package Map. 6

 

 

 


1         Introduction

1.1        Brief introduction

SMS application enables sending and recieving Short Message, at the same time, it also provides methods to manage messages and folders in device.

1.2        Dependency

SMS application depends on the following libraries:

l        Gtk+-2.0                          The GTK+ library contains widgets, that is, GUI components such as GtkButton or GtkTextView.

l        libgpewidget                

l        libgpephone                 Shared code for applications developed for the phone application framework providing easy access to softkey definitions and communication.

l        libabenabler                  A graphic independent enabler which can provide all the basic routines for PIM Address Books and other applications who wants to use the address book functions.

l        libiac                               The package  provides various interfaces to make the service oriented communication between applications much easier than using low-level D-Bus routines ever before.

l        libmsgenabler             A graphic independent enabler which can provide messaging service.


2         Overview

SMS application mainly provides functions in two aspects, one is process of telephony relevant event, including message sending and receiving; and another is management of messages and folders in device. SMS application also provides interaction with other applications.

SMS application provides message composing user interface to accept user input. According to the input information, SMS application will produce the message instance in form of msg_message_t with the interface provided by messaging enabler, and then invoke the relevant interface in messaging enabler to send it out. SMS will respond to the unsolicited event MSG_EVT_MSG_SEND_SUCCESS and MSG_EVT_MSG_SEND_FAILED generate by messaging enabler in order to change the message's status and its folder relationship. If a message failed to be sent out, a pop-up window will be present to inform end user. To message incoming and status report related events, the permanent-resided application homescreen instead of SMS application will respond.

SMS provides end user methods to add, delete and manage the messages with the folder hierarchy. There are four folders pre-installed in system, they are INBOX, OUTBOX, SENT, and DRAFT. The incoming message will be located in INBOX, all the messages sent is stored in OUTBOX automatically, if the message is sent out successfully, it will be transferred into SENT, and message draft is saved in DRAFT. User can not only list and view the messages in each folder, but also delete, reply and forward the messages.

 

SMS application follows the inter-application communication mechanism provided by libiac package to interact with other applications. SMS application can call out the contact muti-select interface of Addressbook application to choose the contacts, at the same time, SMS application also can repond to invocation of Address application to display the interface of composing message. Except Addressbook application, SMS application will also interact with Voicecall application to call back according to a specific message.

Except interaction based on libiac, SMS application also probes status of phoneserver with specific file lock.

Besides the message in mobile device, sms email also can read and delete the messages in SIM card.

3         Design and Concepts

This section explains what you should know as a programmer about SMS application when developing it. It helps to understand its architecture and implementation. SMS application's design and concepts are all very straightforward and easy to understand, and they are listed in the following.

The following graphic gives out the general architecture of SMS application.

Figure 3.1 Architecture of SMS application

As described in architecture figure, SMS application invokes libmsgenabler and libabenaber to achieve functional service, and uses interface provided by libiac to interact with other applications. libmsgenabler provides SMS application functionality relevant to message sending, receiving and management,  while SMS application invokes libabenabler for do translation between contact name and telephone number.

There are two layers in SMS application, UI layer and service layer. UI layer is in charge of drawing of graphic interface and service layer mainly focuses on function implementation based on enablers.

There are four main windows in UI layer, they are listed in following table:

Component

Functionality

Function

SMS main window

Display main entries relevant to SMS, including folder list and entry for composing message.

make_sms_window()

SMS folder window

Display message list in specific folder.

make_sms_folder()

SMS write window

interface allowing user compose and edit message

make_sms_write()

SMS view window

Display the detailed information of a specific message

make_sms_view_test()

 

Service layer of SMS application mainly deals with functions provided by libmsgenabler. SMS application does manipulate and manage folder and message,  register and respond to specific event and process the session. The detailed explanation of event, session, message and folder concept is located in documentation of libmsgenabler.

For application interaction based on IAC (Internal Application Communication) mechanism, SMS application opens the following interfaces for other application:

At the same time, SMS application will invoke the following interface provided by other applications.


4         Package Map