[MS-ASMS]:

Exchange ActiveSync: Short Message Service (SMS) Protocol

Intellectual Property Rights Notice for Open Specifications Documentation

Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages, standards as well as overviews of the interaction among each of these technologies.

Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the technologies described in the Open Specifications and may distribute portions of it in your implementations using these technologies or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL's, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications.

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

Patents. Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, a given Open Specification may be covered by Microsoft Open Specification Promise or the Community Promise. If you would prefer a written license, or if the technologies described in the Open Specifications are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting .

Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit

Fictitious Names. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.

Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise.

Tools. The Open Specifications do not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them. Certain Open Specifications are intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it.

Preliminary Documentation. This Open Specification provides documentation for past and current releases and/or for the pre-release version of this technology. This Open Specification is final documentation for past or current releases as specifically noted in the document, as applicable; it is preliminary documentation for the pre-release versions. Microsoft will release final documentation in connection with the commercial release of the updated or new version of this technology. As the documentation may change between this preliminary version and the final version of this technology, there are risks in relying on preliminary documentation. To the extent that you incur additional development obligations or any other costs as a result of relying on this preliminary documentation, you do so at your own risk.

Revision Summary

Date / Revision History / Revision Class / Comments
4/10/2009 / 0.1.0 / Major / Initial Availability.
7/15/2009 / 1.0.0 / Major / Revised and edited for technical content.
11/4/2009 / 2.0.0 / Major / Updated and revised the technical content.
2/10/2010 / 3.0.0 / Major / Updated and revised the technical content.
5/5/2010 / 4.0.0 / Major / Updated and revised the technical content.
8/4/2010 / 5.0 / Major / Significantly changed the technical content.
11/3/2010 / 5.0 / No change / No changes to the meaning, language, or formatting of the technical content.
3/18/2011 / 5.1 / Minor / Clarified the meaning of the technical content.
8/5/2011 / 6.0 / Major / Significantly changed the technical content.
10/7/2011 / 6.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
1/20/2012 / 7.0 / Major / Significantly changed the technical content.
4/27/2012 / 7.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
7/16/2012 / 7.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
10/8/2012 / 8.0 / Major / Significantly changed the technical content.
2/11/2013 / 8.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
7/26/2013 / 9.0 / Major / Significantly changed the technical content.
11/18/2013 / 9.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
2/10/2014 / 9.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
4/30/2014 / 10.0 / Major / Significantly changed the technical content.
7/31/2014 / 10.0 / No Change / No changes to the meaning, language, or formatting of the technical content.
10/30/2014 / 10.1 / Minor / Clarified the meaning of the technical content.
5/26/2015 / 11.0 / Major / Significantly changed the technical content.
6/30/2015 / 11.0 / No Change / No changes to the meaning, language, or formatting of the technical content.

Table of Contents

1Introduction

1.1Glossary

1.2References

1.2.1Normative References

1.2.2Informative References

1.3Overview

1.4Relationship to Other Protocols

1.5Prerequisites/Preconditions

1.6Applicability Statement

1.7Versioning and Capability Negotiation

1.8Vendor-Extensible Fields

1.9Standards Assignments

2Messages

2.1Transport

2.2Message Syntax

2.2.1Namespaces

2.2.2Elements

2.2.2.1SMS Class Elements

2.2.2.1.1Body

2.2.2.1.2ConversationId

2.2.2.1.3ConversationIndex

2.2.2.1.4DateReceived

2.2.2.1.5Flag

2.2.2.1.6From

2.2.2.1.7Importance

2.2.2.1.8InternetCPID

2.2.2.1.9Read

2.2.2.1.10To

2.2.2.2Additional Elements

2.2.2.2.1Class

2.2.2.2.1.1Class (GetItemEstimate)

2.2.2.2.1.2Class (Sync)

2.2.2.2.2EnableOutboundSMS

2.2.2.2.3PhoneNumber

3Protocol Details

3.1Client Details

3.1.1Abstract Data Model

3.1.2Timers

3.1.3Initialization

3.1.4Higher-Layer Triggered Events

3.1.4.1Synchronizing SMS Items

3.1.4.1.1Options

3.1.4.1.1.1Sticky Options

3.1.4.1.1.2Filtering

3.1.4.1.2Making Changes Involving SMS Items

3.1.4.1.3Special Case for Synchronization of Outbox

3.1.4.2Estimating the Number of Changes

3.1.4.3Provisioning for Relay of Outbound SMS Messages

3.1.5Message Processing Events and Sequencing Rules

3.1.5.1Sending Outbound SMS Messages

3.1.6Timer Events

3.1.7Other Local Events

3.2Server Details

3.2.1Abstract Data Model

3.2.2Timers

3.2.3Initialization

3.2.4Higher-Layer Triggered Events

3.2.5Message Processing Events and Sequencing Rules

3.2.5.1Processing a Sync Request

3.2.5.2Processing a GetItemEstimate Request

3.2.5.3Processing a Settings Request

3.2.6Timer Events

3.2.7Other Local Events

4Protocol Examples

4.1Synchronizing E-Mail Items and SMS Items

4.2Synchronizing Only SMS Items

4.3SMS Message Added by the Server

4.4Enabling Outbound SMS Messages

5Security

5.1Security Considerations for Implementers

5.2Index of Security Parameters

6Appendix A: Full XML Schema

7Appendix B: Product Behavior

8Change Tracking

9Index

1Introduction

The Exchange ActiveSync: Short Message Service (SMS) Protocol describes an XML-based format that provides the mechanisms for a mobile device to synchronize SMS messages with the server and for the server to send SMS messages through the mobile device.

Sections 1.8, 2, and 3 of this specification are normative and can contain the terms MAY, SHOULD, MUST, MUST NOT, and SHOULD NOT as defined in [RFC2119]. Sections 1.5 and 1.9 are also normative but do not contain those terms. All other sections and examples in this specification are informative.

1.1Glossary

The following terms are specific to this document:

code page: An ordered set of characters of a specific script in which a numerical index (code-point value) is associated with each character. Code pages are a means of providing support for character sets (1) and keyboard layouts used in different countries. Devices such as the display and keyboard can be configured to use a specific code page and to switch from one code page (such as the United States) to another (such as Portugal) at the user's request.

conversation: A single representation of a send/response series of email messages. A conversation appears in the Inbox as one unit and allows the user to view and read the series of related email messages in a single effort.

conversation ID: A unique value that is associated with a conversation. It is assigned to each Message object that is part of a conversation and it is used to identify the conversation to which the message belongs.

conversation index: A value that specifies the location of a message within a conversation. A client can use this value to identify the parent and child messages of a message, and then generate a tree view of the conversation that contains those messages.

Inbox folder: A special folder that is the default location for Message objects received by a user or resource.

non-delivery report: A report message that is generated and sent by a server to the sender of a message if an email message could not be received by an intended recipient.

Outbox folder: A special folder that contains Message objects that are submitted to be sent.

Sent Items folder: A special folder that is the default location for storing copies of Message objects after they are submitted or sent.

Short Message Service (SMS): A communications protocol that is designed for sending text messages between mobile phones.

Wireless Application Protocol (WAP) Binary XML (WBXML): A compact binary representation of XML that is designed to reduce the transmission size of XML documents over narrowband communication channels.

XML: The Extensible Markup Language, as described in [XML1.0].

XML namespace: A collection of names that is used to identify elements, types, and attributes in XML documents identified in a URI reference [RFC3986]. A combination of XML namespace and local name allows XML documents to use elements, types, and attributes that have the same names but come from different sources. For more information, see [XMLNS-2ED].

XML schema: A description of a type of XML document that is typically expressed in terms of constraints on the structure and content of documents of that type, in addition to the basic syntax constraints that are imposed by XML itself. An XML schema provides a view of a document type at a relatively high level of abstraction.

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.

1.2References

Links to a document in the Microsoft Open Specifications library point to the correct section in the most recently published version of the referenced document. However, because individual documents in the library are not updated at the same time, the section numbers in the documents may not match. You can confirm the correct section numbering by checking the Errata.

1.2.1Normative References

We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact . We will assist you in finding the relevant information.

[MS-ASAIRS] Microsoft Corporation, "Exchange ActiveSync: AirSyncBase Namespace Protocol".

[MS-ASCMD] Microsoft Corporation, "Exchange ActiveSync: Command Reference Protocol".

[MS-ASCON] Microsoft Corporation, "Exchange ActiveSync: Conversations Protocol".

[MS-ASDTYPE] Microsoft Corporation, "Exchange ActiveSync: Data Types".

[MS-ASEMAIL] Microsoft Corporation, "Exchange ActiveSync: Email Class Protocol".

[MS-ASWBXML] Microsoft Corporation, "Exchange ActiveSync: WAP Binary XML (WBXML) Algorithm".

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997,

[XMLNS] Bray, T., Hollander, D., Layman, A., et al., Eds., "Namespaces in XML 1.0 (Third Edition)", W3C Recommendation, December 2009,

[XMLSCHEMA1] Thompson, H., Beech, D., Maloney, M., and Mendelsohn, N., Eds., "XML Schema Part 1: Structures", W3C Recommendation, May 2001,

[XML] World Wide Web Consortium, "Extensible Markup Language (XML) 1.0 (Fourth Edition)", W3C Recommendation 16 August 2006, edited in place 29 September 2006,

1.2.2Informative References

[MS-OXPROTO] Microsoft Corporation, "Exchange Server Protocols System Overview".

1.3Overview

This protocol is an XML-based format that is used to do the following:

Enable a mobile device to synchronize SMS messages with the server.

Provision the server to send outgoing SMS messages through the mobile device.

This protocol also includes XML elements to represent SMS message data. The SMS data is included in protocol command requests when SMS data is being sent from the client to the server, and is included in protocol command responses when SMS data is retrieved from the server. SMS data includes some of the same header information as e-mail data such as to and from, as well as body, flag, and importance.

1.4Relationship to Other Protocols

This protocol consists of a series of XML elements that are embedded inside a command request or a command response. For information about command requests and responses, see [MS-ASCMD]. The Wireless Application Protocol (WAP) Binary XML (WBXML), described in [MS-ASWBXML], is used to transmit the XML markup that constitutes the request body and the response body.

This protocol defines elements according to the data type definitions that are described in [MS-ASDTYPE].

For conceptual background information and overviews of the relationships and interactions between this and other protocols, see [MS-OXPROTO].

1.5Prerequisites/Preconditions

None.

1.6Applicability Statement

This protocol is applicable for synchronizing SMS messages from mobile devices to the server and relaying outbound SMS messages from the server to the mobile device.

1.7Versioning and Capability Negotiation

None.

1.8Vendor-Extensible Fields

None.

1.9Standards Assignments

None.

2Messages

2.1Transport

This protocol consists of a series of XML elements that are embedded inside a command request or a command response. The XML markup that constitutes the request body or the response body is transmitted between client and server by using WBXML, as specified in [MS-ASWBXML].

The mobile device uses standard mobile network protocols, such as GSM and CDMA, to send outbound SMS messages.

2.2Message Syntax

The XML schemas for the Email, Email2, and AirSyncBase namespaces are described in section 6.

The markup that is used by this protocol MUST be well-formed XML, as specified in [XML].

2.2.1Namespaces

This specification defines and references various XML namespaces using the mechanisms specified in [XMLNS]. Although this specification associates a specific XML namespace prefix for each XML namespace that is used, the choice of any particular XML namespace prefix is implementation-specific and is not significant for interoperability.

Prefix / Namespace URI / Reference
airsync / AirSync / [MS-ASCMD] section 2.2.2.20
airsycnbase / AirSyncBase / [MS-ASAIRS]
email / Email / [MS-ASEMAIL]
email2 / Email2 / [MS-ASEMAIL]
settings / Settings / [MS-ASCMD] section 2.2.2.17
xs / / [XMLSCHEMA1]

2.2.2Elements

Elements of the SMS class are defined in three namespaces: Email, Email2, and AirSyncBase. The namespace in which an element is defined is indicated by the presence of a namespace prefix, as defined in section 2.2.1.

The XML schema elements that are specific to the SMS class are specified in section 2.2.2.1. Additional XML schema elements that are used for the SMS class are specified in section 2.2.2.2. Elements that are specific to a particular operation are specified further in sections 3.1.4, 3.1.5, and 3.2.5.

Protocol Versions

The SMS class is supported only by protocol versions 14.0, 14.1, and 16.0. Therefore, the elements that are defined by this specification MUST be used with protocol version 14.0, 14.1, or 16.0 for any operation involving the SMS class.

When protocol version 14.0 is used, operations on SMS items are supported only for certain folders. For details, see section 3.1.4.1 and section 3.1.4.2.

2.2.2.1SMS Class Elements

This section specifies elements that constitute the SMS class. The SMS class represents an SMS message. The SMS class elements are children of the airsync:ApplicationData element in the Sync command.

For details about the airsync:ApplicationData element, see [MS-ASCMD] section 2.2.3.11.

2.2.2.1.1Body

The airsyncbase:Body element (as specified in [MS-ASAIRS] section 2.2.2.9) is an optional child element of the SMS class (represented by the airsync:ApplicationData element). It contains details about the body of the SMS message. This element is part of the AirSyncBase namespace, as specified in [MS-ASAIRS].

2.2.2.1.2ConversationId

The email2:ConversationId element (as specified in [MS-ASCON] section 2.2.2.3.3) is a required child element of the SMS class (represented by the airsync:ApplicationData element) in Sync command responses. It specifies a unique identifier for a conversation.

2.2.2.1.3ConversationIndex

The email2:ConversationIndex element (as specified in [MS-ASCON] section 2.2.2.4) is a required child element of the SMS class (represented by the airsync:ApplicationData element) in Sync command responses. It specifies a set of timestamps that is used by a client to generate a tree view of a conversation.

2.2.2.1.4DateReceived

The email:DateReceived element is an optional child element of the SMS class (represented by the airsync:ApplicationData element) in Sync command requests and responses. The DateReceived element specifies the date and time when the SMS message was either received by the device or sent by the device. If the SMS message is in the Sent Items folder, this element specifies the date and time when the SMS message was sent; otherwise, this element specifies the date and time when the SMS message was received.

The value of this element is a dateTime data type, as specified in [MS-ASDTYPE] section 2.3.

2.2.2.1.5Flag

The email:Flag element (as specified in [MS-ASEMAIL] section 2.2.2.34) is an optional child element of the SMS class (represented by the airsync:ApplicationData element). It specifies the flag that is associated with the SMS message, along with the current status of the SMS message.

2.2.2.1.6From

The email:From element is an optional child element of the SMS class (represented by the airsync:ApplicationData element) in Sync command requests and responses. It specifies the telephone number of the individual who sent the SMS message.

The value of this element is a string data type, as specified in [MS-ASDTYPE] section 2.7. The format of the string is as follows, including the quotes and square brackets:

"Sender's Name" [MOBILE:Sender's phone number]

Sender's Name specifies the name of the sender and is optional. Sender's phone number specifies the mobile telephone number of the sender.

2.2.2.1.7Importance

The email:Importance element (as specified in [MS-ASEMAIL] section 2.2.2.38) is an optional child element of the SMS class (represented by the airsync:ApplicationData element). It specifies the importance of the SMS message, as determined by the sender.

2.2.2.1.8InternetCPID

The email:InternetCPID element (as specified in [MS-ASEMAIL] section 2.2.2.40) is a required child element of the SMS class (represented by the airsync:ApplicationData element). It specifies the code page ID of the SMS message.

2.2.2.1.9Read

The email:Read element (as specified in [MS-ASEMAIL] section 2.2.2.58) is an optional child element of the SMS class (represented by the airsync:ApplicationData element). It specifies whether the SMS message has been viewed by the current recipient.

2.2.2.1.10To

The email:To element is an optional child element of the SMS class (represented by the airsync:ApplicationData element) in Sync command requests and responses. It specifies the list of primary recipients.