epoc32/include/app/smscmds.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 // smscmds.h
    15 //
    16 /**
    17  * @file 
    18  * @publishedAll
    19  * @released
    20  */
    21 #ifndef __SMSCMDS_H__
    22 #define __SMSCMDS_H__
    23 
    24 #include <e32def.h>
    25 
    26 /**
    27 Numeric value of the first SMS-specific command.
    28 
    29 This is only used by TSmsMtmCommand.
    30 
    31 @see	TSmsMtmCommand
    32 
    33 @publishedAll 
    34 @released
    35 */
    36 const TInt KMinCommandExpected = 10000;
    37 
    38 /**
    39 The SMS-specific commands that can be issued through CSmsClientMtm::InvokeAsyncFunctionL.
    40 
    41 SMS messages can be stored in a medium other than the message store itself. For
    42 instance, SMS messages can be stored on the SIM card. This alternative storage
    43 is referred to as the phone store.
    44 
    45 Some of the commands defined allow the contents of the phone store to accessed
    46 and manipulated.
    47 
    48 @see	CSmsClientMtm::InvokeAsyncFunctionL
    49 @see	CSmsClientMtm::ReadSimParamsL
    50 @see	CSmsClientMtm::WriteSimParamsL
    51 @see	TSmsProgress 
    52 
    53 @publishedAll
    54 @released
    55 */
    56 enum TSmsMtmCommand 
    57 	{
    58 /**
    59 Gets the service centre address (i.e. telephone number) from the GSM handset.
    60 
    61 The result may be retrieved from the iServiceCenterAddress member variable 
    62 in the TSmsProgress progress object for this operation. 
    63 
    64 The aSelection and aParameter arguments are not used by this command, except 
    65 that aSelection must contain at least one member, preferably the SMS Service 
    66 ID. 
    67 
    68 If the telephone handset is unable to supply the service centre address, then 
    69 the progress object for this operation will contain the error. 
    70 
    71 NOTE - ESmsMtmCommandReadServiceCenter should only be used if the telephone 
    72 handset or TSY module does not support reading the SMS parameters on the SIM. 
    73 ESmsMtmCommandReadServiceCenter should only be used if the operation 
    74 returned by CSmsClientMtm::ReadSimParamsL completes with KErrNotSupported.
    75 
    76 @removed	
    77 This command is not supported from v7.0. The function CSmsClientMtm::ReadSimParamsL
    78 should be used instead to obtain Service Centre number from the phone store.
    79 
    80 @see	CSmsClientMtm::ReadSimParamsL
    81 @see	TSmsProgress
    82 */
    83 	ESmsMtmCommandReadServiceCenter			= KMinCommandExpected,
    84 
    85 /** 
    86 Sets a new service centre address (i.e. telephone number) on the GSM handset. 
    87 
    88 The new telephone number is passed in aParameter as an 8-bit descriptor containing 
    89 a packaged TSmsServiceCenterAddress. 
    90 
    91 The aSelection parameter argument is not used by this command, except that 
    92 aSelection must contain at least one member, preferably the SMS Service ID. 
    93 
    94 @removed
    95 This command is not supported from v7.0. The function CSmsClientMtm::WriteSimParamsL
    96 should be used instead to write the Service Centre number to the phone store.
    97 
    98 @see	CSmsClientMtm::WriteSimParamsL
    99 @see	TSmsServiceCenterAddress
   100 */
   101 	ESmsMtmCommandWriteServiceCenter,
   102 
   103 /**
   104 Schedules the selected SMS messages to be sent.
   105 
   106 The aSelection argument contains the TMsvId of the SMS messages to be sent. An 
   107 empty selection will cause a panic in debug mode. In release mode nothing will 
   108 happen.
   109 
   110 The time that each message is scheduled to be sent is set by the date field in
   111 the TMsvEntry for that message. Each message in the selection must have the same
   112 scheduled time as the first message in the selection. A send task is scheduled 
   113 to occur at this time.
   114 
   115 In debug mode a panic will occur if all the messages in the selection do not 
   116 have the safe scheduled time. In release mode, the scheduled time sending all 
   117 the messages in the selection will be that of the last message in the selection.
   118 
   119 When the scheduled task occurs not only will the selected messages be sent but
   120 also any waiting SMS messages in the Outbox.
   121 
   122 If the messages are successfully sent by the scheduled task, then all the sent
   123 messages are moved to the Sent folder.
   124 
   125 If any message fails to be sent then the message is marked as failed. Also it
   126 may be re-scheduled to be sent at a later time if that particular error has been
   127 specified as a re-schedulable error. The message remains in its current folder.
   128 
   129 The aParameter agrument is not used.
   130 
   131 @see	CMsvSession::TransferCommandL
   132 
   133 @see	CBaseMtm::InvokeAsyncCommandL
   134 
   135 */
   136 	ESmsMtmCommandScheduleCopy,
   137 
   138 /**
   139 Not supported by the SMS MTM.
   140 
   141 @publishedAll 
   142 */
   143 	ESmsMtmCommandScheduleMove,
   144 
   145 /**
   146 Removes all messages specified in aSelection from the task scheduler list.
   147 
   148 If successful, the messages will have their SendingState() set to KMsvSendStateSuspended 
   149 on completion of this operation. 
   150 
   151 The aParameter argument is not used by this function. 
   152 
   153 @see	TMsvEntry::SendingState() 
   154 */
   155 	ESmsMtmCommandDeleteSchedule,
   156 
   157 /** 
   158 Checks the current scheduled status of the messages specified by aSelection. 
   159 
   160 If successful, the Scheduled() and iDate members of each TMsvEntry identified 
   161 in the selection will be changed to represent that messages's current status. 
   162 
   163 The aParameter argument is not used by this function. 
   164 
   165 @see	TMsvEntry
   166 */
   167 	ESmsMtmCommandCheckSchedule,
   168 
   169 /**
   170 Starts sending the specified selection of SMS messages.
   171 
   172 When a selection of SMS messages are scheduled to be sent using the ESmsMtmCommandScheduleCopy
   173 command this is the actual command that is executed the scheduled time occurs.
   174 
   175 The SMS server MTM creates a package contain this command. The package is passed
   176 to the task scheduler who then passes it to the schedule send exe. The exe then
   177 uses the package to ask the SMS server MTM to send the messages. As such this
   178 command should not be used be external clients.
   179 
   180 When the scheduled task occurs not only will the selected messages be sent but
   181 also any waiting SMS messages in the Outbox.
   182 
   183 If the messages are successfully sent by the scheduled task, then all the sent
   184 messages are moved to the Sent folder.
   185 
   186 If any message fails to be sent then the message is marked as failed. Also it
   187 may be re-scheduled to be sent at a later time if that particular error has been
   188 specified as a re-schedulable error. The message remains in its current folder.
   189 
   190 @publishedAll 
   191 */
   192 	ESmsMtmCommandSendScheduledCopy,
   193 
   194 /**
   195 Not supported by the SMS MTM.
   196 
   197 @publishedAll 
   198 */
   199 	ESmsMtmCommandSendScheduledMove,
   200 
   201 /**
   202 Reads the SMS messages on the phone store and creates a copy of those messages
   203 in an invisible folder under the SMS service in the message store. 
   204 
   205 If successful, the iEnumerateFolder member of the operation's progress will 
   206 identify the invisible folder which contains the messages read from the phone 
   207 store.
   208 
   209 The aSelection argument must contain at least the SMS servive ID. The aParameter 
   210 argument can optionally be a TPckgC containing the ID of an existing folder to
   211 use for the enumeration. The contents of this folder will be replaced with the
   212 current messages in the phone store.
   213 
   214 The operation will fail with KErrArgument if the ID in aParameter is one of the
   215 following - KMsvRootIndexEntryId, KMsvLocalServiceIndexEntryId, KMsvGlobalInBoxIndexEntryId,
   216 KMsvGlobalOutBoxIndexEntryId, KMsvDraftEntryId or KMsvSentEntryId.
   217 
   218 This command must be called before using ESmsMtmCommandCopyFromPhoneStore, 
   219 ESmsMtmCommandMoveFromPhoneStore or ESmsMtmCommandDeleteFromPhoneStore. 
   220 
   221 Pre v7.0, this was named ESmsMtmCommandEnumerateSim.
   222 
   223 @see	TSmsProgress
   224 */
   225 	ESmsMtmCommandEnumeratePhoneStores,
   226 
   227 /** 
   228 Moves the messages identified in aSelection to the folder identified in aParameter 
   229 (e.g. the inbox). 
   230 	
   231 The associated SMS messages are not deleted from the phone store.
   232 
   233 The first entry ID in aSelection must be the SMS service ID. All following 
   234 entry IDs in the selection must then represent each message to be transferred. 
   235 aParameter should contain a packaged TMsvId, which identifies the folder to 
   236 which the messages in aSelection will be moved. 
   237 
   238 The command ESmsMtmCommandEnumeratePhoneStores must be called before using 
   239 this command. 
   240 
   241 Pre v7.0, this was named ESmsMtmCommandCopyFromSim.
   242 
   243 @see	TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores
   244 */
   245 	ESmsMtmCommandCopyFromPhoneStore,  
   246 
   247 /**
   248 Moves the messages identified in aSelection to the folder identified in aParameter 
   249 (e.g. the inbox), and then deletes the messages from the phone store. 
   250 
   251 The first entry ID in aSelection must be the SMS service ID. All following 
   252 entry IDs in the selection must then represent each message to be transferred. 
   253 aParameter should contain a packaged TMsvId, which identifies the folder to 
   254 which the messages in aSelection will be moved. 
   255 
   256 The command ESmsMtmCommandEnumeratePhoneStores must be called before using 
   257 this command. 
   258 
   259 Pre v7.0, this was named ESmsMtmCommandMoveFromSim.
   260 
   261 @see	TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores
   262 */
   263 	ESmsMtmCommandMoveFromPhoneStore,  
   264 
   265 /**
   266 Deletes the specified messages from the phone store.
   267 
   268 The first entry ID in aSelection must be the SMS service ID. All following 
   269 entry IDs in the selection must then represent each message to be deleted. 
   270 aParameter is not used.
   271 
   272 The command ESmsMtmCommandEnumeratePhoneStores must be called before using 
   273 this command. 
   274 
   275 Pre v7.0, this was named ESmsMtmCommandDeleteFromSim.
   276 
   277 @see	TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores
   278 */
   279 	ESmsMtmCommandDeleteFromPhoneStore,  
   280 
   281 /**
   282 Reads the SIM parameters.
   283 
   284 This should not be used in the CSmsClientMtm::InvokeAsyncFunctionL function. The
   285 CSmsClientMtm::ReadSimParamsL function should be used to read the SIM parameters.
   286 
   287 @see	CSmsClientMtm::ReadSimParamsL
   288 
   289 @publishedAll 
   290 */
   291 	ESmsMtmCommandReadSimParams,
   292 
   293 /**
   294 Writes the specified SIM parameters.
   295 
   296 This should not be used in the CSmsClientMtm::InvokeAsyncFunctionL function. The
   297 CSmsClientMtm::WriteSimParamsL function should be used to write the SIM parameters.
   298 
   299 @see	CSmsClientMtm::WriteSimParamsL
   300 
   301 @publishedAll 
   302 */
   303 	ESmsMtmCommandWriteSimParams,
   304 
   305 /**
   306 Copies the SMS messages identified in aSelection to the phone store.
   307 
   308 The first entry ID in aSelection must be the SMS service ID. All following 
   309 entry IDs in the selection must then represent each message to be copied.
   310 Single message with multiple recipients is copied onto SIM as multiple messages,
   311 one message for each recipient.Copy/Move from SIM will result in multiple messages,
   312 single message will not be reformed out of the mutiple messages on SIM.
   313 
   314 
   315 Pre v7.0, this was named ESmsMtmCommandCopyToSim.
   316 */
   317 	ESmsMtmCommandCopyToPhoneStore,  
   318 
   319 /**
   320 Moves the SMS messages identified in aSelection to the phone store.
   321 
   322 The first entry ID in aSelection must be the SMS service ID. All following 
   323 entry IDs in the selection must then represent each message to be moved.
   324 SSingle message with multiple recipients is moved onto SIM as multiple messages,
   325 one message for each recipient.Copy/Move from SIM will result in multiple messages,
   326 single message will not be reformed out of the mutiple messages on SIM.
   327 
   328 
   329 Pre v7.0, this was named ESmsMtmCommandMoveToSim.
   330 */
   331 	ESmsMtmCommandMoveToPhoneStore
   332 	};
   333 
   334 #endif	// __SMSCMDS_H__