Symbian3/PDK/Source/GUID-697087D6-C029-51E8-8722-9E2584420276.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     6
<!-- Initial Contributors:
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     7
    Nokia Corporation - initial contribution.
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     8
Contributors: 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     9
-->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    10
<!DOCTYPE concept
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    12
<concept xml:lang="en" id="GUID-697087D6-C029-51E8-8722-9E2584420276"><title>SMS Stack Architecture</title><shortdesc>The SMS Stack is a plug-in to the socket server. This section provides the architectural relationships of the SMS stack. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>SMS stack components</title> <ol id="GUID-B7B94BE7-8F08-5104-9741-87600C6B2BB2"><li id="GUID-A354C7A1-7DE5-571F-9DFB-2F3AC90ED12D"><p>SMSPROT - The SMS stack protocol module </p> </li> <li id="GUID-7636FB1A-5162-5136-8ADD-2C4DCE36818A"><p>GSMU - GSM Utility class </p> </li> <li id="GUID-B9C83C25-4727-5992-A40A-83EFDABFE2FF"><p>SMSU - SMS Utility class </p> </li> </ol> <p><b>SMSPROT</b> </p> <p>SMSPROT.prt is a socket server (ESOCK) plug-in DLL implemented with a protocol module suffix <codeph>PRT</codeph>. The main functions of the SMS protocol module are to send queues, receive queues and maintain the connection to the socket server. For more information about SMSPROT, <xref href="GUID-4ADE94EF-346F-541A-B0FB-AF43ADB1C66D.dita">see SMS Protocol Modules</xref>. </p> <p><b>GSMU</b> </p> <p>The GSM Utility (GSMU) class provides some utility functions for the SMS stack. The SMS messages are represented by a <xref href="GUID-FA6D9B1B-3845-3B81-ACBB-34977D3C9631.dita"><apiname>CSmsMessage</apiname></xref> object of the GSMU class. GSMU also provide methods to send and receive the SMS messages through the socket server. For more information about GSMU, <xref href="GUID-A957A1DF-AF81-5A9D-BB44-1B34B2EB809E.dita">see GSM Utilities</xref>. </p> <p><b>SMSU</b> </p> <p>The SMS Utility (SMSU) class provides the base class for active objects of the SMS stack. For more information about SMSU, <xref href="GUID-A4FBD7D4-DCC0-517A-BCAA-D36D8940A64D.dita">see SMS Utilities</xref>. </p> <fig id="GUID-B0D5C075-FE00-5E3B-9F1A-C6F9D45A3BF3"><title>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    13
             SMS Stack Architectural Relationships
12
80ef3a206772 Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 9
diff changeset
    14
          </title> <image href="GUID-D7AFA78E-4B87-554E-B0A5-1AEEA98B537C_d0e43862_href.png" placement="inline"/></fig> <p>When a client application requests a service from the SMS stack, the SMS stack is loaded by the socket server. The main SMS stack clients are the messaging application, the WAP stack and the third party applications. The WAP stack binds directly to the SMS stack. The messaging applications and other third party applications access the SMS stack as the clients of the socket server. </p> <p>The SMS stack communicates with the ETel (Telephony) server to send, receive, read, write and delete the SMS messages from the Subscriber Identity Module (SIM). </p> <p>The SMS stack uses the message store called as the reassembly store to store the messages passed by the Telephony System plug-in (TSY). The stored messages are then processed. </p> </section> <section><title>Stack initialisation</title> <p>The socket server loads the SMS stack. The socket server loads the stack when one of the clients requests a session with the stack. The load the SMS stack, the socket server searches for the smswap.sms.esk file. The ESK files contain the details of the DLL which creates the SMS stack. The smswap.sms.esk file is located at <codeph>epoc32\data\z\private\101F7989\SOCKET</codeph> and <codeph>epoc32\wins\c\private\101f7989</codeph>. </p> <codeblock id="GUID-70A2081E-A7EB-58AB-852E-53DD4B7C5AF9" xml:space="preserve">
9
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    15
#smswap.sms.esk
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    16
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    17
[sockman]
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    18
protocols= sms
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    19
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    20
[sms]
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    21
filename= SMSPROT.PRT
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    22
index= 1
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    23
</codeblock> <p>The SMS stack is initialised and loaded when the first client makes a request to the stack through the socket server. The SMS stack is unloaded when the last client disconnects. The ESK file is used to customise different time out values.For more information see <xref href="GUID-EE0D8964-C343-5389-8932-9AC48DCC67FD.dita">Configuration</xref>. </p> </section> <section><title>SMS communication</title> <p>The three main components that enable applications to send and receive SMS messages are the baseband signalling stack, Telephony system plug-in (TSY) and the SMS stack. The SMS stack communicates with the baseband signalling stack through the TSY to send and receive the messages from the network. The different types of receive modes are defined in the <xref href="GUID-AAFF75F0-B2F2-33D9-AE9D-7AC5B7EDD801.dita"><apiname>TMobileSmsReceiveMode</apiname></xref> class. Receive modes describe how a message is processed by the SMS stack. </p> <p><b>EReceiveStored </b> </p> <p>In <xref href="GUID-78CBD8FD-99CE-304C-A2BE-81287EB5555E.dita"><apiname>EReceiveStored</apiname></xref> mode, the baseband stack stores the incoming SMS messages. The baseband stack acknowledges to the network before it passes the SMS to the TSY. The message is then passed to the SMS stack for processing. The message is stored in the reassembly store until it is processed. If the processing is successful, a positive acknowledgement is sent to the TSY. If the processing is unsuccessful, a negative acknowledgement is sent to the TSY and the message is processed later by sending a resume command to the TSY. Since the message is stored in the baseband stack it is not lost due to lack of memory in the SMS stack. The disadvantage of this method is that the network is acknowledged even if the message is not passed to the messaging client. </p> <p><b>EReceiveUnstoredPhoneAck </b> </p> <p>In <xref href="GUID-D1BC871D-76F9-3A12-9979-6E06EBFABE8C.dita"><apiname>EReceiveUnstoredPhoneAck</apiname></xref> mode, the message is acknowledged as soon as it is received by the baseband stack but it is the responsibility of the SMS stack that stores and processes the message. The disadvantage of this mode is that if sufficient memory or disk space is not available the message is lost. The network does not resend the message because of the positive acknowledgement was sent by the baseband stack. </p> <p><b>EReceiveUnstoredClientAck </b> </p> <p>In <xref href="GUID-2A9E4D0B-BBF4-3894-8A4B-E76554751904.dita"><apiname>EReceiveUnstoredClientAck</apiname></xref> mode the baseband stack does not store or acknowledge any incoming SMS messages. The SMS stack has the responsibility to store and acknowledge the received SMS. If sufficient memory is not available the SMS stack rejects the incoming message and sends a negative acknowledgement to the network. The network does not send any other SMS to the device until it receives a resume request from the device. The resume request is initiated by the SMS stack. </p> <p>Two other modes specified in the <xref href="GUID-AAFF75F0-B2F2-33D9-AE9D-7AC5B7EDD801.dita"><apiname>TMobileSmsReceiveMode</apiname></xref> class, they are <xref href="GUID-9F61E856-9E38-37F5-86E6-4AEC6317AFF4.dita"><apiname>EReceiveModeUnspecified</apiname></xref> and <xref href="GUID-133EB470-9241-3285-9B34-DC6522BD1D8E.dita"><apiname>EReceiveEither</apiname></xref>. For more information about the enumerations see the cpp reference documentation. </p> </section> </conbody></concept>