diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/gsmuelem.h
--- a/epoc32/include/gsmuelem.h	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/gsmuelem.h	Wed Mar 31 12:33:34 2010 +0100
@@ -1,9 +1,9 @@
 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
@@ -19,6 +19,7 @@
 
 /**
  @file
+ @publishedAll
 */
 
 #ifndef __GSMUELEM_H__
@@ -35,7 +36,7 @@
 class RReadStream;
 class RWriteStream;
 class CSmsEMSBufferSegmenter;
-
+struct TEncodeParams;
 
 // class declarations
 
@@ -45,22 +46,6 @@
  *  @released 
  */
 const TInt KErrGsmuDecoding = KErrCorrupt;
-/**
- *  @internalComponent
- */
-_LIT8(KMOSES,"\x40\x4d\x64\xd3\x50\x00");
-/**
- *  @internalComponent
- */
-_LIT16(KNETWORK,"NETWORK");
-
-
-// Constants
-/**
- *  @internalComponent
- */
-const TUint8 KSms7BitAlphabetEscapeChar=0x1b;
-
 
 /**
  *  Thin wrapper over TLex8 to provide leaving functions when getting the next
@@ -463,7 +448,7 @@
 	/** Unspecified error cause. */
 		ESmsErrorUnspecified=0xFF,
 
-	/**	@internalComponent	*/
+	/**	@publishedAll	*/
 		ESmsErrorFree=0x100
 		};
 public:
@@ -1220,8 +1205,8 @@
 	 *  	Coded according to 3GPP TS 23.038 - GSM 7-bit default alphabet. 
 	 */
 		EGsmSmsTONAlphaNumeric=0x50,
-		EGsmSmsTONAbbreviatedNumber=0x60,		///< Abbreviated number
-		EGsmSmsTONReserverved=0x70,				///< Reserved for extension
+		EGsmSmsTONAbbreviatedNumber=0x60,		//< Abbreviated number
+		EGsmSmsTONReserverved=0x70,				//< Reserved for extension
 	};
 
 /** Numbering-plan-identification defined in ETSI 3GPP TS 23.040. */
@@ -1309,7 +1294,7 @@
 	{
 	public:
         /**
-         *  @internalComponent
+         *  @publishedAll
          *  If the address is an alphanumeric address,
          *  it can represent a voice message waiting indicator
          *  as defined in the Common PCN Handset Specification
@@ -1354,8 +1339,8 @@
 
 	public:
 
-		TGsmSmsTypeOfAddress iTypeOfAddress;		///< The type-of-address of iTelNumber
-		TBuf<TGsmSmsTelNumberMaxLen> iTelNumber;	///< Telephone number, in format of iTypeOfAddress
+		TGsmSmsTypeOfAddress iTypeOfAddress;		//< The type-of-address of iTelNumber
+		TBuf<TGsmSmsTelNumberMaxLen> iTelNumber;	//< Telephone number, in format of iTypeOfAddress
 	};
 
 
@@ -1389,6 +1374,9 @@
 	void DecodeL(TGsmuLex8& aPdu);
 	void InternalizeL(RReadStream& aStream);
 	void ExternalizeL(RWriteStream& aStream) const;
+
+	CSmsAddress*  DuplicateL() const;
+
 private:
 	CSmsAddress(CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs);
 	void NewBufferL(TInt aLength);
@@ -1495,6 +1483,7 @@
 	inline void SetTimeIntervalMinutes(const TTimeIntervalMinutes& aTimeIntervalMinutes);
 	TTime Time() const;
 	TUint8* EncodeL(TUint8* aPtr) const;
+	TUint8* EncodeL(TUint8* aPtr, const TEncodeParams* aEncodeParams) const;	
 	void DecodeL(TGsmuLex8& aPdu);
 	void InternalizeL(RReadStream& aStream);
 	void ExternalizeL(RWriteStream& aStream) const;
@@ -1736,7 +1725,7 @@
 	/** SC specific use 32. */
 		ESmsIEISCSpecificUse32=0xDF,
 	/**
-	 *  @internalComponent
+	 *  @publishedAll
 	 */
 		ESmsIEMaximum = 0xFF
 		};
@@ -1767,7 +1756,7 @@
 
 
 /**
- *  @internalComponent
+ *  @publishedAll
  *  
  *  TSmsInformationElementCategories
  *  
@@ -1825,7 +1814,7 @@
 
 
 /**
- *  @internalComponent
+ *  @publishedAll
  */
 typedef CSmsInformationElement::TSmsInformationElementIdentifier TSmsId;
 
@@ -1862,6 +1851,9 @@
 	void DecodeL(TGsmuLex8& aPdu);
 	void InternalizeL(RReadStream& aStream);
 	void ExternalizeL(RWriteStream& aStream) const;
+	
+	CSmsCommandData* DuplicateL() const;
+
 private:
 	CSmsCommandData(TSmsFirstOctet& aFirstOctet);
 
@@ -1917,6 +1909,7 @@
 	{
 public:
 	enum {KSmsMaxUserDataSize=140};
+	enum {KSmsMaxUserDataLengthInChars=(KSmsMaxUserDataSize*8)/7};
 
 public:
 	static CSmsUserData* NewL(CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TSmsFirstOctet& aFirstOctet,const TSmsDataCodingScheme& aDataCodingScheme);
@@ -1960,9 +1953,12 @@
 
 	TUint8* EncodeL(TUint8* aPtr) const;
 	void DecodeL(TGsmuLex8& aPdu);
-	void DecodeL(TGsmuLex8& aPdu, TBool aAcceptTruncation);
+	void DecodeL(TGsmuLex8& aPdu, TBool aAcceptTruncation);	
 	void InternalizeL(RReadStream& aStream);
 	void ExternalizeL(RWriteStream& aStream) const;
+	
+	CSmsUserData* DuplicateL(TSmsFirstOctet& aFirstOctet, const TSmsDataCodingScheme& aDataCodingScheme) const;
+
 private:
 	CSmsUserData(CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TSmsFirstOctet& aFirstOctet,const TSmsDataCodingScheme& aDataCodingScheme);
 	void ConstructL();
@@ -2080,6 +2076,7 @@
  *  both types of Enhanced Voice Mail Information Element.
  *  
  *  @publishedAll
+ *  @released
  */
 class CEnhancedVoiceMailBoxInformation : public CBase
 {
@@ -2148,6 +2145,7 @@
  *  It is used as one of the attributes a Enhanced Voice Mail Notification.
  *  
  *  @publishedAll
+ *  @released
  */
 class CVoiceMailNotification : public CBase
 {
@@ -2219,6 +2217,7 @@
  *  only the Enhanced Voice Mail Information Element and no other information elements or text.
  *  
  *  @publishedAll
+ *  @released
  */
 class CEnhancedVoiceMailNotification : public CEnhancedVoiceMailBoxInformation
 {
@@ -2257,6 +2256,7 @@
  *  It is used as one of the attributes of a Enhanced Voice Mail Delete Confirmation.
  *  
  *  @publishedAll
+ *  @released
  */
 class CVoiceMailDeletion : public CBase
 {
@@ -2292,6 +2292,7 @@
  *  interface provided by the class CSmsEnhancedVoiceMailOperations.
  *  
  *  @publishedAll
+ *  @released
  */
 class CEnhancedVoiceMailDeleteConfirmations : public
       CEnhancedVoiceMailBoxInformation