SMS 3gpp
SMS 3gpp
SMS 3gpp
The present document has been developed within the 3rd Generation Partnership Project (3GPP TM) and may be further elaborated for the purposes of 3GPP.
The present document has not been subject to any approval process by the 3GPP Organisational Partners and shall not be implemented.
This Specification is provided for future development work within 3GPP only. The Organisational Partners accept no liability for any use of this
Specification.
Specifications and reports for implementation of the 3GPP TM system should be obtained via the 3GPP Organisational Partners' Publications Offices.
3G TS 23.039 version 2.0.0 2 3G TS 23.039 V2.0.0 (1999-06)
Reference
DTS/TSG<name abbv>-0<WG no><spec no> U
Keywords
<keyword[, keyword]>
3GPP
Postal address
Internet
http://www.3gpp.org
ETSI
3G TS 23.039 version 2.0.0 3 3G TS 23.039 V2.0.0 (1999-06)
Contents
Intellectual Property Rights ............................................................................................................................... 9
Foreword .......................................................................................................... Error! Bookmark not defined.
1 Scope...................................................................................................................................................... 10
2 References ............................................................................................................................................. 10
3 Abbreviations and definitions................................................................................................................ 11
3.1 Abbreviations................................................................................................................................................... 11
3.2 Definitions ....................................................................................................................................................... 12
4 General................................................................................................................................................... 12
ETSI
3G TS 23.039 version 2.0.0 4 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 5 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 6 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 7 3G TS 23.039 V2.0.0 (1999-06)
Annex E: SMSC Computer Access Service and Protocol Manual ................................................. 115
E.1 Introduction.......................................................................................................................................... 115
E.2 Overview.............................................................................................................................................. 115
E.2.1 The Short Message Service............................................................................................................................ 115
E.2.1.1 Submission and delivery .......................................................................................................................... 116
E.2.1.2 Message buffering .................................................................................................................................... 116
E.2.1.3 Notifications............................................................................................................................................. 117
E.2.2 Software structure .......................................................................................................................................... 117
E.2.2.1 Computer Access Unit.............................................................................................................................. 118
E.3 Computer Access Protocol .................................................................................................................. 118
E.3.1 Connect and disconnect ................................................................................................................................. 119
E.3.1.1 Connect Initiated from SMS-C................................................................................................................. 119
E.3.1.2 Connect Initiated from the user system .................................................................................................... 119
E.3.1.3 Disconnect................................................................................................................................................ 119
E.3.2 Open procedure.............................................................................................................................................. 119
E.3.3 Submit Short Message ................................................................................................................................... 120
E.3.4 Retrieve Short Message or Message Notification .......................................................................................... 120
E.3.5 Delete Short Message .................................................................................................................................... 121
E.3.6 Close procedure ............................................................................................................................................. 121
ETSI
3G TS 23.039 version 2.0.0 8 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 9 3G TS 23.039 V2.0.0 (1999-06)
Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee
can be given as to the existence of other IPRs not referenced in SR 000 314 (or the updates on the ETSI Web server)
which are, or may be, or may become, essential to the present document.
Foreword
This Technical Specification has been produced by the 3GPP.
The contents of the present document are subject to continuing work within the TSG and may change following formal
TSG approval. Should the TSG modify the contents of this TS, it will be re-released by the TSG with an identifying
change of release date and an increase in version number as follows:
Version 1.y.z
where:
y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates,
etc.
z the third digit is incremented when editorial only changes have been incorporated in the specification;
ETSI
3G TS 23.039 version 2.0.0 10 3G TS 23.039 V2.0.0 (1999-06)
1 Scope
The present document describes a range of alternative interfaces which may be utilised by Short Message Service Centre
(SMSC), and Short Message Entity (SME), developers for the connection of SMEs to SMSCs.
The purpose of the present document is to provide a single document within which the various proprietary SMSC to
SME interface standards may be accommodated as optional implementations.
As stated in GSM 03.40 [1], the functionality of the SMSC is outside of the scope of the GSM Technical Specifications.
As a result, no standardised interfaces have been specified for the connection of SMEs to the SMSC. In the absence of a
prevailing standard, SC (Service Centre), developers have devised their own protocols which have not necessarily been
based on any existing standards and are therefore largely incompatible with one another. It has been recognised by TC-
SMG, that the development of a single European Telecommunication Standard (ETS) at this stage, would be of little
value as these proprietary standards are now in extensive use in many networks.
TC-SMG has concluded that the publication by ETSI of the various de facto protocols, will limit the further
proliferation of proprietary standards and will benefit new SC/SME developers who may then adopt one or more of the
existing protocols outlined in the present document.
2 References
The following documents contain provisions which, through reference in this text, constitute provisions of the present
document.
• References are either specific (identified by date of publication, edition number, version number, etc.) or
non-specific.
• A non-specific reference to an ETS shall also be taken to refer to later versions published as an EN with the same
number.
• For this Release 1997 document, references to GSM documents are for Release 1997 versions (version 6.x.y).
[1] GSM 03.40: "Digital cellular telecommunications system (Phase 2+); Technical realization of the
Short Message Service (SMS) Point-to-Point (PP)".
[2] GSM 01.04: "Digital cellular telecommunication system (Phase 2+); Abbreviations and acronyms".
[3] ETS 300 133-3: "Paging Systems (PS); European Radio Messaging System (ERMES) Part 3:
Network aspects ".
[4] GSM 09.02: "Digital cellular telecommunications system (Phase 2+); Mobile Application Part
(MAP) specification".
[5] CCITT Recommendation X.208, Specification of Abstract Syntax Notation One (ASN.1). Blue
book, Melbourne 1988.
[6] CCITT Recommendation X.209, Specification of Basic Encoding Rules (BER) for Abstract Syntax
Notation One. Blue book, Melbourne 1988.
ETSI
3G TS 23.039 version 2.0.0 11 3G TS 23.039 V2.0.0 (1999-06)
3.1 Abbreviations
For the purposes of the the present document, the following abbreviations apply:
SC Service Centre
SME Short Message Entity
SMPP Short Message Peer to Peer
SMSC Short Message Service Centre
ACK Acknowledgement
AIM Application Interface Module
API Application Programming Interface
CDR Call Detail Record
ESME External Short Message Entity. Refer to note[1]
MB Message Bureau - This is typically an operator message bureau.
MSC Mobile Switching Centre
MSISDN Mobile Station ISDN Number, i.e. a telephone number
MS Mobile Station
NAK Negative Acknowledgement
SME Short Message Entity
SMSC Short Message Service Centre
SMPP Short Message Peer to Peer
VC Virtual Connection. Refer to note [1]
VMA VoiceMail Alert or Message Waiting Indication (MWI)
VPS Voice Processing System
Additional abbreviations used within the present document may be found in GSM 01.04 [2].
ETSI
3G TS 23.039 version 2.0.0 12 3G TS 23.039 V2.0.0 (1999-06)
3.2 Definitions
For the purposes of annex D of the present document the following definitions apply.
High Availability SME: An SME directly connected to the SMSC which is available most of the time - for example a
voice mail system.
Low Availability SME: An SME which is only occasionally available - for example a MS.
SMSC Reference number: Reference number for an SM allocated by the SMSC. Not the same as an SME reference
number.
SME Reference number: Reference number for an SM allocated by the SME. Not the same as an SMSC reference
number.
For the purposes of annex A of this ETS the following definitions apply.
External Short Message Entity: This refers to such external sources and sinks of short messages as Voice Processing
or Message Handling computers. It specifically excludes SMEs which are part of the interface to the PLMN.
4 General
The individual specifications contained in the annexes to the present document outline the details of the various optional
SC to SME interface standards. The present document does not provide recommendations, as to the preferred
implementation as all are regarded as being of equal merit. SC/SME implementors should therefore adopt the protocol
most suited to their particular implementation, application or market.
The proprietary SC to SME interface protocols contained in the annexes are as follows:
Control (through TC-SMG), over the contents of the annexes remains with owners of the proprietary standards.
NOTE: ETSI take no responsibility for the viability of any of the optional SC to SME interface protocols
contained in the annexes. Enquires relating to their technical content should be made directly to the
editing authority for each specification.
ETSI
3G TS 23.039 version 2.0.0 13 3G TS 23.039 V2.0.0 (1999-06)
Annex A:
Short Message Peer to Peer (SMPP) Interface Specification
A.1 Introduction
A.1.1 Purpose
This annex specifies a generalized interface between an SMSC and non-PLMN SMEs. Typically it specifies the
interface used between the SMSC and Paging or VoiceMail systems. The command format defines a Short Message
Peer to Peer Protocol (hereafter referred to as SMPP). This protocol may be implemented over a variety of underlying
interfaces/communications protocols, namely X.25, or TCP/IP.
Using this interface, an external Short Message Entity such as a Paging or VoiceMail system may bind/ unbind to the
SMSC, submit, cancel, replace and query short messages. The SMSC forwards responses and short messages (e.g
delivery receipts, pager messages) to the external Short Message Entity.
A.1.2 Scope
This annex is intended for designers and implementers of the interface between an SMSC and SMEs (Short Message
Entities).
Figure A.1 illustrates these categories which are detailed in the following clauses.
ETSI
3G TS 23.039 version 2.0.0 14 3G TS 23.039 V2.0.0 (1999-06)
X.25 Network
- Calls directly dialled or diverted to a Message Bureau operator and forwarded to the SMSC.
- Voice-Mail Alerts originating for a VPS indicating voice messages at a customer’s mailbox.
Messages that are submitted to the SMSC by an ESME are immediately acknowledged. This acknowledgement informs
the ESME that the message submitted is a valid message (i.e. fields are set to valid values).
In addition to “Message Submission”, an ESME may “Query” the SMSC for the status of previously submitted
messages, or cancel delivery of previously submitted messages using the Message ID returned by the SMSC when the
particular message was originally submitted.
In addition the SMSC may use the “deliver short message” mechanism to generate a “Delivery Receipt”. (See SMPP
Applications guide [9] for details).
ETSI
3G TS 23.039 version 2.0.0 15 3G TS 23.039 V2.0.0 (1999-06)
The interface between the SMSC and the ESMEs regardless of the underlying network type will be a client -server
model, in which, the SMSC has the server role and the ESME the client role. In the remainder of the present document,
“client” is referred to the system that initiates a connection and “server” is referred to the system that services a
connection.
NOTE: This annex specifies the interface at the network layer. However, this interface may be implemented over
the transport layer. Figure A.2 provides a perspective on the scope of this annex:
Network User
Request/Response (i.e. SMSC, VPS, MB)
Primitives
Indication/Confirm
Primitives
Network Provider (e.g. X.25)
As previously mentioned, a message submitted from an ESME to SMSC can generate up to two responses. These are:
- Where the message was submitted to the SMSC with the registered delivery flag set, a status report generated
after the submitted short message reaches its final state.
Figure A.3 depicts a possible sequence of these messages (e.g for an X.25 or TCP/IP based implementation).
ETSI
3G TS 23.039 version 2.0.0 16 3G TS 23.039 V2.0.0 (1999-06)
ESME SMSC
submit_sm (1)
submit_sm_resp(1)
deliver_sm(1)
deliver_sm_resp (1)
submit_sm (2)
submit_sm_resp(2)
For details of ESME/SMSC protocol message sequences refer to the SMPP Applications Guide [9].
Two ‘virtual connections’ are required. One will be used for messages originating in the ESME system, and the response
messages for them. (e.g. submit_sm, query_sm, cancel_sm etc.), while the other will be used for messages originating in
the SMSC and their responses (e.g. deliver_sm).
Once a ‘virtual connection’ has been established, each of the two processes on the ESME should send either a Bind-
Transmitter request or a Bind-Receiver request. If a Bind Transmitter request is sent, the process on the SMSC that
receives it will receive messages originating in the ESME system. If a Bind Receiver request is sent, the process on the
SMSC that receives it will forward messages to the ESME. Responses will invariably be returned on the same ‘virtual
connection’ as the corresponding request messages.
ETSI
3G TS 23.039 version 2.0.0 17 3G TS 23.039 V2.0.0 (1999-06)
ESME
virtual connections
Communications
Provider
e.g. X.25, TCP/IP
SMSC Kernel
Should an error be generated by the underlying communication network or the application being used on the host
machine it is the responsibility of the sender of the message to retransmit to the destination. The originator should
maintain a retry count and when this limit has been reached on a single message attempt the circuit should be closed.
The ESME should attempt to re-connect. The re-connect method will be the same as the start-up protocol.
The Sequence number in the message header should be generated by the EM. This number should be incremented
monotonically with each new transaction. This field will be preserved by the receiving system and returned in the
acknowledgement message. This allows for transaction mapping and the detection of duplicate messages.
ETSI
3G TS 23.039 version 2.0.0 18 3G TS 23.039 V2.0.0 (1999-06)
Command ID Description
bind_receiver This command is issued by the ESME to inform the SMSC that this ESME
wishes to act as a Server
bind_transmitter This command is issued by the ESME to inform the SMSC that this ESME
wishes to act as a Client
unbind This command is issued by the ESME to Inform the SMSC that this ESME
wishes to terminate its activities.
submit_sm This command is issued by the ESME to submit a short message to the
SMSC for transmission to a specified subscriber.
deliver_sm_resp This command is issued by the ESME to acknowledge the receipt of a
deliver_sm.
query_sm This command is issued by the ESME to query the status of a previously
submitted Short Message.
cancel_sm This command is issued by the ESME to cancel one or more outstanding
short messages for a subscriber. The command may specify a particular
message or all messages for a particular source and destination.
replace_sm This command is issued by the ESME to replace an outstanding short
message for a subscriber.
enquire_link Enquires whether the ESME-SMSC session is functioning, and thereby
provides a link confidence-check.
generic_nak Generic response to a command for which the message header is invalid.
ETSI
3G TS 23.039 version 2.0.0 19 3G TS 23.039 V2.0.0 (1999-06)
Command ID Description
bind_transmitter_resp Response to “bind_transmitter”.
Messages submitted with this command id will contain a status indicating
success or failure of the corresponding “bind_transmitter”.
bind_receiver_resp Response to “bind_receiver”.
Messages submitted with this command id will include a status indicating
success or failure of the corresponding “bind_receiver”.
unbind_resp Response to “unbind”.
Messages submitted with this command id will include a status indicating
success or failure of the corresponding “unbind”.
submit_sm_resp Response indicating that a short message has been accepted successfully
or not. Messages submitted with this command id will include the status
indicating success or failure of the corresponding “submit_sm”.
deliver_sm This command is issued by the SMSC to submit a short message to the
ESME for delivery. It may also be used to return a delivery receipt for a
message which had been submitted with the delivery receipt flag set.
query_sm_resp Response to “query_sm”.
Messages submitted with this command id will include the status indicating
success or failure of the corresponding “query_sm” in addition to data
relating to the queried message.
cancel_sm_resp Response to “replace_sm”.
Messages submitted with this command id will include the status indicating
success or failure of the corresponding “replace_sm”.
replace_sm_resp Response to “replace_sm”.
Messages submitted with this command id will include the status indicating
success or failure of the corresponding “replace_sm”.
enquire_link_resp Response to “enquire_link”.
Messages submitted with this command id will include the status indicating
success or failure of the corresponding “enquire_link”.
generic_nak Generic response to a command for which the message header is invalid.
A.6.1 Definitions
In the following descriptions the following definitions will be used:
C-Octet String: a series of ASCII characters terminated with the NUL character.
C- Octet String (Decimal): a series of ASCII characters terminated with the NUL character.
C-Octet String (Hex): a series of ASCII characters terminated with the NUL character.
Where reference is made below to NULL settings of Octet-String fields this implies that the field consists of a single
NUL character, i.e. an Octet encoded with value zero.
Where reference is made to NULL settings of Integer fields this implies that the field is unused and can be set to 0.
ETSI
3G TS 23.039 version 2.0.0 20 3G TS 23.039 V2.0.0 (1999-06)
Command Status 4 Integer This field will indicate the success or failure of a request.
This field is only relevant in the response message, so in
the request message it should contain NULL.
A list of exception codes is given in clause A.7.1.
ETSI
3G TS 23.039 version 2.0.0 21 3G TS 23.039 V2.0.0 (1999-06)
The purpose of the Bind operation is to register an instance of an ESME with the SMSC system, and inform the SMSC
that the sending SME wishes to use this virtual circuit for commands initiated by the SMSC. To this end the Bind must
provide key information within the “message” field of the protocol message.
- The password must match the SMSC administration password for the instance of the ESME.
Associated with the interface is a unique default “callback address” which is configured via SMSC administration. The
“callback address” is employed as the default source address, in cases where the actual ESME address is not supplied.
The interface may act as either an ESME in it’s own right or as an agent for the transport of messages to or from other
ESME’s. (See figure 6-1).
In it’s role as agent, the range of ESME addresses served by the interface is specified via a “regular expression” (See
Note 2). This may be defined explicitly in the bind request or configured by SMSC administration.
NOTE 1: For the bind_transmitter the addr_ton, addr_npi and range of SME addresses (address_range) is not
relevant and should be set to NULL.
NOTE 2: The “regular expression” in this context is a text pattern representing a range of addresses or a specific
address. For further detail refer to the SMPP Application Guide[9].
ESME
ESME
SME Agent
ESME SMSC
ESME
ETSI
3G TS 23.039 version 2.0.0 22 3G TS 23.039 V2.0.0 (1999-06)
Size (bytes)
Field Name Type Description
system_id Var. C-Octet Identifies the system requesting a bind to the SMSC.
Max 16 String This variable length field may have leading spaces.
password Var. C-Octet The password is used for security purposes. This is a
Max 9 String configurable attribute within the SMSC.
system_type Var. C-Octet Identifies the type of system requesting the bind. This may
Max 13 String enable SMSC responses which are particular to a given
type of ESME
This variable length field may have leading spaces.
interface_version 1 Integer Identifies the version number (major) of the interface to be
implemented.
addr_ton 1 Integer Type of Number for use in routing Delivery Receipts.
(See GSM 03.40 [1] clause 9.1.2.5)
Where not required this should be NULL.
addr_npi 1 Integer Numbering Plan Identity for use in routing Delivery
Receipts.
(See GSM 03.40 [1] clause 9.1.2.5)
Where not required this should be NULL.
address_range Var. C-Octet Address range for use in routing short messages and
Max 41 String Delivery Receipts to an ESME.
This variable length field may have leading spaces.
Where not required this should be a single NULL byte.
The Message layout is identical to the “bind_receiver” Message Layout except that the addr_ton, addr_npi and the
range of SME addresses(address_range) are not relevant and should be set to NULL
ETSI
3G TS 23.039 version 2.0.0 23 3G TS 23.039 V2.0.0 (1999-06)
When a real source address is provided in a registered submit_sm request, the source address can be used as the
destination address for a delivery receipt. It can also be used in identifying the message source in a CDR. This source
address must fall in the range of addresses associated with the bind command.
Where the originator of messages from the ESME is the ESME itself, or where the ESME does not have a real source
address, the source address fields may be defaulted to NULL, and the source address will be taken from the SMSC
administration “callback address” for the particular ESME instance.
The submit_sm operation can also be used to replace a short message which has previously been submitted. This is
achieved by setting the replace_if_present_flag to 0x01 in the Interface. The first message found in the SMSC whose
source and destination match those given in the submit_sm will have it’s text replaced by the text in the short_message
field of the submit_sm.
ETSI
3G TS 23.039 version 2.0.0 24 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 25 3G TS 23.039 V2.0.0 (1999-06)
The values for destination address will depend on whether the ESME is the final destination of the short message, or
merely routes the message to its final recipient (e.g. paging messages).
One should note that delivery receipts are returned to the originating SME using this command. In this instance of a
deliver_sm command, the esm_class field will identify the message as a delivery receipt, and the required data relating
to the original short message will be given in the message text field. (See SMPP Applications Guide [9] - Delivery
Receipts).
Where a message to be replaced was originally submitted with an individually identified SME source address, the
originator address in the query_sm command must match. Where the original source address was defaulted to NULL,
(i.e. the originator of messages from the ESME is the ESME itself, or the ESME does not have a real source address)
then the originator address in the query_sm command should also be NULL, and the source address will be taken from
the SMSC administration “callback address” for the particular ESME instance.
ETSI
3G TS 23.039 version 2.0.0 26 3G TS 23.039 V2.0.0 (1999-06)
- If the message ID is set to the ID of a previously submitted message, then provided the source and destination
addresses supplied in the interface match, that message will be cancelled.
ETSI
3G TS 23.039 version 2.0.0 27 3G TS 23.039 V2.0.0 (1999-06)
- If the message ID is null all outstanding undelivered messages with the source and destination addresses given in
the interface will be cancelled for the particular interface of the AIM. If the source address is set to NULL in the
interface the source address will be taken from the SMSC administration “callback address” for the particular
ESME instance.
- A typical use of the command is to cancel outstanding undelivered VoiceMail Alert messages for a subscriber
whose mailbox has just been directly accessed by the subscriber. The response (cancel_sm_resp) will indicate
whether the message(s) had already been sent
ETSI
3G TS 23.039 version 2.0.0 28 3G TS 23.039 V2.0.0 (1999-06)
The message_id is set to the ID of a previously submitted message. Where a message to be replaced was originally
submitted with an individually identified SME source address, the originator address in the replace_sm command must
match. Where the original source address was defaulted to NULL, (i.e. the originator of messages from the ESME is the
ESME itself, or the ESME does not have a real source address) then the originator address in the replace_sm command
should also be NULL, and the source address will be taken from the SMSC administration “callback address” for the
particular ESME instance.
ETSI
3G TS 23.039 version 2.0.0 29 3G TS 23.039 V2.0.0 (1999-06)
NOTE: For ease of maintenance a ‘C’ include file is available which defines the actual values for these
definitions.
ETSI
3G TS 23.039 version 2.0.0 30 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 31 3G TS 23.039 V2.0.0 (1999-06)
NOTE: Where responses are reported by the SMSC the local time of the SMSC will be given, and the format will
be “YYMMDDhhmmss”, with the same definitions as above.
ETSI
3G TS 23.039 version 2.0.0 32 3G TS 23.039 V2.0.0 (1999-06)
Annex B:
Short Message Service Centre External Machine Interface
This annex describes the interface used between the SMSC System and other computer systems and applications. The
interface is based on the ERMES UCP (Universal Computer Protocol) with some SMSC-specific extensions.
Throughout this annex the interface is called 'EMI': External Machine Interface.
Annex structure
- Clause B.1 contains the introduction to the EMI. It describes the position of the EMI between the SMSC
components and the external machines.
- Clause B.2 shows the structure of EMI messages and provides examples of valid exchanges of commands
between the SMSC and the applications.
- Clause B.3 defines the EMI operations, and describes briefly the actions that are expected from the SMSC and
the Application upon reception of the commands (these are further detailed in the respective design documents).
- Clause B.5 shows the syntax of the 50-series of EMI command messages.
- Clause B.6 summarizes the error codes for the EMI operations.
B.1 Introduction
For submission and reception of Short Messages the Short Message Service Centre can interface with (among others):
- dedicated PC applications.
NOTE: Throughout this annex the External Machine will be referred to as 'SME' or 'PC'. For the latter, it can of
course be any application system.
In order to allow any service provider to develop dedicated applications, an interface was developed to access SMSC
functions. This manual describes that interface.
ETSI
3G TS 23.039 version 2.0.0 33 3G TS 23.039 V2.0.0 (1999-06)
EMI
PC SMSC PLMN
X.25
X.29
leased line
dial-up
When viewed from the PC side, the EMI provides access to the SMSC functions:
- Reception of Notifications
The SMSC can be viewed as a Black Box: Short Messages are directed to the GSM mobile telephone of the recipient.
The SMSC and the PLMN only function as relay mechanisms for those Messages. The only visible action of the SMSC
apart from this, is the provision of Notifications: upon request the SMSC will notify the originator of the SM regarding
the status of the SM.
- X.25
- X.29
- ISDN
- tcp/ip
- other on request
The set-up of the connection between the SMSC Platform and the PC depends on the carrier used. Once the connection
is established, the EMI operations can be used.
ETSI
3G TS 23.039 version 2.0.0 34 3G TS 23.039 V2.0.0 (1999-06)
In the SMSC the UCP protocol was chosen as the basis for the EMI because
1) the first operators that used the SMSC required to use the UCP protocol to interact with external machines.
2) it allows service providers to use a single mechanism to interface to both ERMES based paging systems and the
SMSC.
In order to provide access to the more extensive set of SMS commands, it was necessary to extend the UCP definition
with some additional, SMSC specific commands, such as 'SMS message transfer operation' and 'SMT alert operation'
- stx = 02(hex)
- etx = 03(hex)
NOTE that in the examples 'stx', 'etx' and '/' each represent only one character.
As separator between header and data, between data and checksum, as well as between parameters,
a '/' (2F(hex)) is used.
In parameters that contain a list, the items are separated by a ',' (2C(hex)). Numeric characters (0..F) are encoded as in
IA5. Alphanumeric characters are encoded as two numeric IA5 characters, the higher 3 bits (0..7) first, the lower 4 bits
(0..F) thereafter.
The <data> fields depend on the Operation Type. For each Operation Type they are listed in the next chapters.
The <checksum> is derived by the addition of all bytes of the header, data field separators and data fields (i.e. all
characters after the stx-character, up to and including the last '/' before the checksum field). The 8 Least Significant Bits
(LSB) of the result is then represented as two printable characters. The character containing 4 Most Significant Bits
(MSB) (of those 8 LSB) shall be transmitted first. For example, if the checksum is 3A(hex) the representation shall be
the characters '3' (33(hex)) and 'A' (41(hex)).
B.2.1 Examples
Below you will find examples of the SMS message transfer operation and responses. The message sent is "hello":
stx01/00045/O/30/66677789///1//////68656C6C6F/CEetx
stx01/00041/R/30/A//66677789:180594141236/F3etx
stx01/00052/O/30/66677789///1/558/0138////68656C6C6F/3Aetx
stx01/00041/R/30/A//66677789:180594141430/EFetx
ETSI
3G TS 23.039 version 2.0.0 35 3G TS 23.039 V2.0.0 (1999-06)
In the acknowledgement, the 'system message' parameter is used to indicate the recipient address and timestamp. Note
that the 'Authentication Code' parameter is not used. The Notification requested in the first example will be sent to the
originator of the short message, only as long as this session exists.
The definitions of operations '01', '02' and '03' are identical to the corresponding operations defined in GSM 03.40 [1].
The 'Call input operation' is the normal means of submitting a Short Message. The SMSC must, when it receives this
command, send the message to the recipient address that is specified in the command.
The 'Multiple address call input operation' is used to address a number of recipients in one operation. The command
contains a list of recipient addresses. The SMSC will send the same message to all addresses in this list.
The 'Call input with supplementary services operation' is used when a message is to be scheduled for deferred delivery.
The 'SMS message transfer operation' is used to submit a message when SMSC specific services are required, such as
notification request, deferred delivery, or validity period.
The 'SMT alert operation' can be used by the application to alert the SMSC to send messages and notifications to the
application. It can only be used when the application uses a connection that supports Calling Line Identification, such as
X.25.
ETSI
3G TS 23.039 version 2.0.0 36 3G TS 23.039 V2.0.0 (1999-06)
The SMSC uses the 'Call input operation' to transfer Notifications and Mobile Originated Short Messages to the PC
(Short Message Terminal). The initiative to do so lies either with the SMSC (Notifications on messages submitted in the
current session) or with the PC (the SMT has to issue an SMT alert command).
2) SMSC specific extensions, used to address SMS functions not foreseen in the UCP definition.
In the column marked 'Presence', 'M' indicates that the field is Mandatory, and 'O' indicates that it is Optional.
In the case the national prefix is used in the network the following syntax is seen as valid addresses:
<trunk-prefix><trunk-code><telephone-nr>
<int-prefix><country-code><trunk-code><telephone-nr>
In case the national prefix is not used in the network, the following syntax is seen as valid addresses (in these situations,
a valid telephone number will be recognized by its length):
<int-prefix><country-code><telephone-nr>
<telephone-nr>
ETSI
3G TS 23.039 version 2.0.0 37 3G TS 23.039 V2.0.0 (1999-06)
Table B.5:
Table B.6:
When the SMSC initiates this operation, the contents of the SM parameter will be discarded.
Table B.7:
The following error codes can be returned in the operation negative result:
01 Checksum error
02 Syntax error
ETSI
3G TS 23.039 version 2.0.0 38 3G TS 23.039 V2.0.0 (1999-06)
06 AdC invalid
07 Authentication failure
Table B.8:
- The NPL parameter must range from 1 to 20 thus limiting the length of the RAd:s list to 20. An IW also contains
the DEST_MAX parameter. The NPL must also have a value less than or equal to this parameter.
- The RAd:s is a list of NPL RAd fields. A RAd field contains an address and optionally a legitimisation code. If
the legitimisation code is present it is separated from the address by a comma ",". If the legitimisation code is not
present the comma may be omitted. If present the legitimisation code is discarded by the IW.
- Currently the PC interworking needs to support MT=2 and MT=3. The parameters for MT=5 are essential if the
Message Type (MT) defined is standard text.
ETSI
3G TS 23.039 version 2.0.0 39 3G TS 23.039 V2.0.0 (1999-06)
Table B.9:
Table B.10:
Since the operation allows for a maximum of 20 addresses to be provided the positive result may also contain a
maximum of 20 address:time-stamp combinations.
If some of the addresses are invalid, and some are valid, the invalid addresses can be recognized by the absence of the
timestamp field. If all addresses are invalid, a negative result is returned.
Table B.11:
The following error codes can be returned in the operation negative result:
01 Checksum error
02 Syntax error
06 AdC invalid
07 Authentication failure
ETSI
3G TS 23.039 version 2.0.0 40 3G TS 23.039 V2.0.0 (1999-06)
Table B.12:
- The NPL must be equal to zero. If the NPL contains anything else than zero a negative response with "GA not
valid" (09) must be sent to the message sender. Since NPL must be equal to zero the GA:s list must also be
empty.
- The RP parameter may not be set. If the RP parameter is set a negative response with "Repetition not allowed"
(10) must be sent to the message sender.
- The PR parameter may not be set. If the PR parameter is set a negative response with "Priority call not allowed"
(12) must be sent to the message sender.
- The LPR parameter may not be set. If the LPR parameter is set a negative response with "Priority call not
allowed" (12) must be sent to the message sender.
- The UR parameter may not be set. If the UR parameter is set a negative response with "Urgent message not
allowed" (14) must be sent to the message sender.
- The LUR parameter may not be set. If the LUR parameter is set a negative response with "Urgent message not
allowed" (14) must be sent to the message sender.
ETSI
3G TS 23.039 version 2.0.0 41 3G TS 23.039 V2.0.0 (1999-06)
- The RC parameter may not be set. If the RC parameter is set a negative response with "Reverse charging not
allowed" (16) must be sent to the message sender.
- The LRC parameter may not be set. If the LRC parameter is set a negative response with "Reverse charging not
allowed" (16) must be sent to the message sender.
- The parameters for MT=5 are essential if the Message Type (MT) defined is standard text.
Table B.13:
Table B.14:
Table B.15:
The following error codes can be returned in the operation negative result:
01 Checksum error
02 Syntax error
06 AdC invalid
07 Authentication failure
ETSI
3G TS 23.039 version 2.0.0 42 3G TS 23.039 V2.0.0 (1999-06)
Table B.16:
Table B.17:
ETSI
3G TS 23.039 version 2.0.0 43 3G TS 23.039 V2.0.0 (1999-06)
Table B.18:
Table B.19:
The following error codes can be returned in the operation negative result:
01 Checksum error
02 Syntax error
06 AdC invalid
07 Authentication failure
Table B.20:
ETSI
3G TS 23.039 version 2.0.0 44 3G TS 23.039 V2.0.0 (1999-06)
Table B.21:
The positive SMT alert operation result text SM parameter must contain the number of messages waiting in the SC
destined for the subscriber the alert was generated for. The number consists of four digits and contains leading zero's.
Table B.22:
The following error codes can be returned in the operation negative result:
01 Checksum error
02 Syntax error
06 AdC invalid
07 Authentication failure
Table B.23:
These new messages have been introduced in order to provide more facilities to the SMSC users. If a user has used one
of these new operations during a session, it is assumed that the other (output) operations are supported as well.
Otherwise, the operations defined in the previous chapters will be used, on order to maintain compatibility with earlier
implementations of EMI.
ETSI
3G TS 23.039 version 2.0.0 45 3G TS 23.039 V2.0.0 (1999-06)
The following is a description of this generic ADT (where 'Num string' indicates 'string of numeric char.'):
Table B.24:
(continued)
ETSI
3G TS 23.039 version 2.0.0 46 3G TS 23.039 V2.0.0 (1999-06)
Member Type
SM System Message
Member Type
SM System Message
ETSI
3G TS 23.039 version 2.0.0 47 3G TS 23.039 V2.0.0 (1999-06)
- stx = 02(hex)
- etx = 03(hex)
The data field shall always contain ALL fields listed in the 5x series generic ADT. These fields are separated by '/'. If a
member of the ADT is not used in a specific message type, its place in the data string is empty, but the field separators
will be present ('//').
For example the data block for INQM (OAdC and AdC fields only) will look like:
../55/O/012345/0324///////////......
This format provides a high degree of flexibility as well as upwards compatibility to future EMI specifications.
This does also apply for the responses. For example, the positive response message contains the MVP field. This field is
only used for the SUBS message positive response; in all other cases this field is left empty.
In the columns marked 'Presence' of the sections to follow, 'M' indicates that the field is Mandatory, 'O' indicates that the
parameter is Optional and '-' indicates that the parameter shall not be present.
ETSI
3G TS 23.039 version 2.0.0 48 3G TS 23.039 V2.0.0 (1999-06)
Table B.25:
Table B.26:
ETSI
3G TS 23.039 version 2.0.0 49 3G TS 23.039 V2.0.0 (1999-06)
Table B.27:
Table B.28:
ETSI
3G TS 23.039 version 2.0.0 50 3G TS 23.039 V2.0.0 (1999-06)
Table B.29:
Table B.30:
Table B.31:
ETSI
3G TS 23.039 version 2.0.0 51 3G TS 23.039 V2.0.0 (1999-06)
Table B.32:
Table B.33:
ETSI
3G TS 23.039 version 2.0.0 52 3G TS 23.039 V2.0.0 (1999-06)
Table B.34:
Table B.35:
ETSI
3G TS 23.039 version 2.0.0 53 3G TS 23.039 V2.0.0 (1999-06)
Table B.36:
Table B.37:
ETSI
3G TS 23.039 version 2.0.0 54 3G TS 23.039 V2.0.0 (1999-06)
Table B.38:
Table B.39:
ETSI
3G TS 23.039 version 2.0.0 55 3G TS 23.039 V2.0.0 (1999-06)
Table B.40:
Table B.41:
ETSI
3G TS 23.039 version 2.0.0 56 3G TS 23.039 V2.0.0 (1999-06)
Table B.42:
Table B.43:
ETSI
3G TS 23.039 version 2.0.0 57 3G TS 23.039 V2.0.0 (1999-06)
Table B.44:
Table B.45:
ETSI
3G TS 23.039 version 2.0.0 58 3G TS 23.039 V2.0.0 (1999-06)
Table B.46:
in the SMSC, EMI returns with error code 03 ("Operation not supported by system").
01 Checksum error
02 Syntax error
06 AdC invalid
07 Authentication failure
09 GA not valid
ETSI
3G TS 23.039 version 2.0.0 59 3G TS 23.039 V2.0.0 (1999-06)
30 Subscriber hang-up
Table B.47:
ETSI
3G TS 23.039 version 2.0.0 60 3G TS 23.039 V2.0.0 (1999-06)
Annex C:
SMSC to SME interface specification
C.1 Introduction
This clause introduces the Short Message Entity (SME) and the Short Message Service Centre (SMSC) architecturally,
and explains how the interface between these two systems will be specified in the rest of this annex.
The SME operations are specified in sections C.2 and C.3 of this annex.
Each SME operation carries a number of SME parameters with it, i.e. data items specifying the subscriber, some facts
about the operation itself, etc.
Clause C.5 introduces the question of how to communicate between the SME and the SMSC, i.e. the coding of
information related to operations and the SME link between the two systems, carrying the SME operations.
Clause C.6 introduces the service concept: assuming some SME operations (with the proper SME parameters) from the
SME and the SMSC, what kind of short messages the subscriber is going to receive?
ETSI
3G TS 23.039 version 2.0.0 61 3G TS 23.039 V2.0.0 (1999-06)
Because of what is said above it must be possible to state the information and the link between the two systems; such a
statement is called the interface profile of the SME-IF.
Profiling example is given in clause C.6 for the service specified there.
C.2 Operations
C.2.1 Introduction
This clause defines the operations between the SME and the SMSC; please refer to subclause C.1.2 for an introduction
to their role in this annex and the SME-SMSC architecture. Parameters related to each operation are specified in clause
C.3.
The operations are divided to operations originated by the SME, operations originated by the SMSC and operations that
can be originated by both the SME and the SMSC.
When defining the operations the different SMEs might use, two basic types of SMEs were considered:
- querying SMEs;
- listening SMEs.
Querying SMEs do not receive anything from the SMSC automatically, but they want to query if there is something to
be retrieved. The SME is typically connected to the SMSC every now and then to submit a message and may at the same
time also check if there is something to be received. An example of this kind of an SME is a PC-application with a
modem connection to the SMSC.
Listening SME type is always ready to receive if the SMSC has something to send to it. This type of SMEs are usually
always connected and perhaps the best example is a voice mail system sending notifications about new voice messages
to the MSs.
The type of the SME must be specified before the SME may start to operate. The type is stored in the SMSC as well as
some other information about the SME.
submit This operation is used by the SME for sending short messages from to an MS.
cancel This operation is used by the SME for cancelling short messages it has sent.
delivery request This operation is used by the SME for retrieving mobile originated short messages.
status report request This operation is used by the SME for requesting status reports of previously submitted
short messages.
disable status report req. This operation is used by the SME for disabling the status report request for a previously
submitted short message.
ETSI
3G TS 23.039 version 2.0.0 62 3G TS 23.039 V2.0.0 (1999-06)
enable status report req. This operation is used by the SME for enabling the status report request for a previously
submitted short message.
login This operation is used by the session based SMEs (SME is connected until its operations
are performed) before any other operations.
logout This operations is used by the session based SMEs (SME is connected until its
operations are performed) for indicate the end of the session.
change password This operation is used by the SME for changing password used in login operation.
change profile parameter This operation is used by the SME for changing values of those interface profile
parameters that it is allowed to change.
delivery This operation is used by the SMSC for delivering mobile originated short messages to
the SME.
status report This operation is used by the SMSC for sending a status reports describing the current
status of a short message sent by the SME.
reachability notification This operation is used by the SMSC for indicating to the SME that an MS to which the
SME has tried to sent a short message is now reachable.
delivery data notification This operation is used by the SMSC for indicating that there is new short message or a
status report waiting for retrieval.
alive This operation may be used by both the SME and the SMSC for checking whether the link between
the SME and the SMSC is still alive.
ack This operation is used by both the SME and the SMSC for indicating back the positive result to the
initiator of the operation.
nack This operation is used by both the SME and the SMSC for indicating the negative result to the
initiator of the operation.
ETSI
3G TS 23.039 version 2.0.0 63 3G TS 23.039 V2.0.0 (1999-06)
C.3.1 Submit
Submit in its simplest mode just passes the short message text to the SMSC which takes care of the delivery. There are,
however, also some special features that may be requested with the submit operation like reachability notification, first
delivery time, message to many recipients etc.
There are two ways for the SME to produce short messages:
- The SME builds the message text and places it into the parameter user data in submit operation. The text is sent
with other necessary parameters to the SMSC. The SMSC then sends the message as such to the MS.
- The SME does not build the message text, but places a code indicating some predefined message in the SMSC
into parameter standard message identifier in submit operation. The code is sent with other necessary
parameters to the SMSC. The SMSC then sends the predefined message corresponding to the value of standard
message identifier to the MS. Note that the predefined message may have places for parameter values coming
from the SME. An example of this is given in clause C.6.1.
The submitted short message can be identified afterwards in two ways: by using time stamp generated by the SMSC
(returned in acknowledgement) and the destination address or with short message identifier given by the SME in submit.
Note that if the identifier is used, it is up to the SME to guarantee that the identifier is unique.
Operation parameters:
- number of destinations
- destination address
- originating address
- protocol identifier
- reply path
- replace
- reachability notification
ETSI
3G TS 23.039 version 2.0.0 64 3G TS 23.039 V2.0.0 (1999-06)
- cancel enabled
NOTE 3: either user data or standard message identifier, user data length may be used together with user data and
language together with standard message identifier
Flow of operations:
SME SMSC
submit -->
<-- ack
........
NOTE: More than one ack in case more than one destination address was given
C.3.2 Cancel
NOTE: It is possible to cancel more than one message with one operation. If the short message is already sent to
GSM network, it cannot be cancelled anymore.
Cancelling may be disabled in submit operation. Disabling is useful e.g. in cases where there are such messages to a
certain MS that should not be cancelled, but the cancellation is done according to destination address.
Operation parameters:
- destination address
- originating address
- filter
Flow of operations:
SME SMSC
cancel -->
<-- ack
.......
NOTE: Status report(s) may follow in case status report was requested for the cancelled message(s) and SME is of
type listening.
ETSI
3G TS 23.039 version 2.0.0 65 3G TS 23.039 V2.0.0 (1999-06)
Operation parameters:
Acknowledgement contains parameter message count telling how many deliveries will follow.
Flow of operations:
SME SMSC
<-- ack
ack -->
NOTE: Deliveries will follow in case there are messages to be retrieved. The SME controls the delivery sequence
with a parameter get next in ack operation.
NOTE: It is possible to request a status report to more than one message with one operation.
To be able to get status reports, the status report request must be set in submit operation.
Operation parameters:
- destination address
- originating address
- filter
Acknowledgement contains parameter message count telling how many status reports will follow.
Flow of operations:
SME SMSC
<-- ack
ack -->
NOTE: Status reports will follow in case there are status reports to be retrieved. The SME controls the status
report sequence with a parameter get next in ack operation.
ETSI
3G TS 23.039 version 2.0.0 66 3G TS 23.039 V2.0.0 (1999-06)
NOTE: It is possible to affect to more than one message with one operation.
Operation parameters:
- destination address
- originating address
- filter
Flow of operations:
SME SMSC
<-- ack
NOTE: It is possible to affect to more than one message with one operation.
Operation parameters:
- destination address
- originating address
- filter
Flow of operations:
SME SMSC
<-- ack
ETSI
3G TS 23.039 version 2.0.0 67 3G TS 23.039 V2.0.0 (1999-06)
C.3.7 Login
If an SME is session based, i.e. SME is connected until its operations are performed, a login must be done first.
With the login, it is possible to define the version of interface software. The SMSC selects the interface profile to be
used based on user identity given in the login operation.
NOTE: That the information given in login may also be included in operations like submit in case the SME just
wants to perform one operation but does not want do anything else (no session needed).
Operation parameters:
- user identity
- password
- interface version
Acknowledgement contains parameter message count telling the number of new message waiting for retrieval in case
the SME is capable to receive mobile originated messages.
Flow of operations:
SME SMSC
login -->
<-- ack
C.3.8 Logout
If an SME is session based, i.e. it has done a login to perform some operations, it must do a logout when the session
should be closed.
Operation parameters:
Flow of operations:
SME SMSC
logout -->
<-- ack
Operation parameters:
- user identity
- old password
- new password
ETSI
3G TS 23.039 version 2.0.0 68 3G TS 23.039 V2.0.0 (1999-06)
Flow of operations:
SME SMSC
<-- ack
Operation parameters:
- parameter identification
Flow of operations:
SME SMSC
<-- ack
C.3.11 Delivery
This operation is used by the SMSC deliver mobile originated short messages to the SME.
After a successful delivery the message will be removed from the SMSC.
Operation parameters:
- destination address
- originating address
- protocol identifier
- reply path
- user data
Acknowledgement may contain parameter get next in case the delivery was requested by the SME with delivery request
operation.
ETSI
3G TS 23.039 version 2.0.0 69 3G TS 23.039 V2.0.0 (1999-06)
Flow of operations:
SME SMSC
<-- delivery
ack -->
After a successful delivery the status report will be removed from the SMSC if it describes the final status of the
message, i.e. no further delivery attempts will follow.
Operation parameters:
- destination address
- originating address
- discharge time
- status
Acknowledgement may contain parameter get next in case the delivery was requested by the SME with status report
request operation.
Flow of operations:
SME SMSC
ack -->
If the SME does not cancel the short message after receiving the reachability notification, the message will be delivered
after a while.
ETSI
3G TS 23.039 version 2.0.0 70 3G TS 23.039 V2.0.0 (1999-06)
Operation parameters:
- destination address
- originating address
- reachability type
Flow of operations:
SME SMSC
ack -->
Operation parameters:
- destination address
- originating address
- data type
Flow of operations:
SME SMSC
ack -->
C.3.15 Alive
This operation can be used by both the SMSC and the SME to check whether the link between the SME and the SMSC
is still alive. The recipient of the operation must send an acknowledgement back to the originator if the alive operation is
received correctly.
Operation parameters:
ETSI
3G TS 23.039 version 2.0.0 71 3G TS 23.039 V2.0.0 (1999-06)
Flow of operations:
SME SMSC
<-- alive
ack -->
.......
alive -->
<-- ack
C.3.16 Ack
This operation is used by both the SMSC and the SME to send back the positive result of the operation to its originator.
Operation parameters:
- initial operation
- (additional parameters)
Sequence number of the operation to which this is an acknowledgement is present only on binary coded SME link.
C.3.17 Nack
This operation is used by both the SMSC and the SME to send back the negative result of the operation to its originator.
Operation parameters:
- initial operation
- error code
- error text
Sequence number of the operation to which this is an acknowledgement is present only on binary coded SME link.
ETSI
3G TS 23.039 version 2.0.0 72 3G TS 23.039 V2.0.0 (1999-06)
BCD vector of BCD digits and two additional characters '+' and '-', each being represented with 4 bits
(0000 = '0', 0001 = '1', ... , 1001 = '9', 1010 = '+', 1011 = '-', 1100 - 1110 reserved, 1111 = last 4
bits of the vector, if they are not used), one byte of the vector may thus contain two digits or '+' or '-
' characters.
GSM7 character vector of GSM 03.38 characters (i.e. in the default 7-bit coded alphabet of the SMS), 7
bits per character, packed into octets according to GSM 03.38.
GSM8 character vector of GSM 03.38 characters (i.e. in the default 7-bit coded alphabet of the SMS), 8
bits per character with a zero bit as the most significant bit of each byte.
8BIT vector of 8 bit bytes which will be sent transparently through the SMSC.
Integer values are presented in two's complement notation, with the most significant byte in the former byte of parameter
value.
BCD digits are presented so that in each byte, the higher order digit is coded in lowest order bits 3, 2, 1 and 0. If the
number of BCD digits is odd, then bits 7, 6, 5 and 4 within the last byte should always be set to one.
Types GSM7 and 8BIT may be used only in cases where the entire short message text is supplied as one parameter
value.
Type GSM8 may be used only in character vectors to be copied into a short message without any other processing than
conversion to type GSM7 by the services.
Sequence Number
Id: 1
Type: integer
Explanation: Sequence number of this operation, numbers incremented cyclically from 0 through 9999 (modulo
10000).
ETSI
3G TS 23.039 version 2.0.0 73 3G TS 23.039 V2.0.0 (1999-06)
Operation
Id: 2
Type: integer
Id: 3
Type: Integer
Number Of Destinations
Id: 4
Type: integer
Explanation: Number of destination addresses to follow. May be used for sending the same short message to
many recipients. Maximum value is 20.
Id: 5
Type: integer
Explanation: As defined in GSM 03.40 [1]. (145 for an international address using ISDN/telephone numbering
plan.)
Destination Address
Id: 6
Type: IA5/BCD
Explanation: destination address in GSM network, values in range '0'...'9' or '-' or '+'. '-' and '+' may be used in
case there is no destination address type specified. '+' indicates destination address type 145. '-' is
ignored.
ETSI
3G TS 23.039 version 2.0.0 74 3G TS 23.039 V2.0.0 (1999-06)
Id: 7
Type: integer
Explanation: As defined in GSM 03.40 [1]. (145 for an international address using ISDN/telephone numbering
plan.)
Originating Address
Id: 8
Type: IA5/BCD
Explanation: Originating address, values in range '0'...'9' or '-' or '+'. '-' and '+' may be used in case there is no
originating address type specified. '+' indicates originating address type 145. '-' is ignored.
Protocol Identifier
Id: 9
Type: integer
Id: 10
Type: integer
Id: 11
Type: integer
Explanation: the length of the validity period of the short message counted from the time the message is received
by the SMSC, integer representation as defined in GSM 03.40 [1]. If this parameter and validity
period absolute are left out, SME specific default validity period is used.
Id: 12
Type: IA5/BCD
Explanation: The absolute time of the validity period termination of the short message, value consists of year,
month, day, hour, minute, second and time zone as defined in GSM 03.40 [1]. If this parameter and
validity period relative are left out, installation specific default validity period is used.
ETSI
3G TS 23.039 version 2.0.0 75 3G TS 23.039 V2.0.0 (1999-06)
Id: 13
Type: integer
Explanation: Time in seconds waited before the first delivery attempt of the short message will be made.
Id: 14
Type: IA5/BCD
Explanation: Time for the first delivery attempt of the short message. Absolute representation as defined in
GSM 03.40 [1] for the absolute validity period.
Reply Path
Id: 15
Type: integer
Replace
Id: 16
Type: integer
Explanation: If there is already a short message from the same originating address to the same destination
address it may be replaced.
Value as follows:
0 don't replace
1 replace
Id: 17
Type: integer
User Data
Id: 18
Type: IA5/GSM7/GSM8/8BIT
Explanation: The entire short message text which is sent as such to MS.
ETSI
3G TS 23.039 version 2.0.0 76 3G TS 23.039 V2.0.0 (1999-06)
Id: 19
Type: integer
Explanation: An alternative to user data: a code identifying the short message text stored in the SMSC.
Language
Id: 20
Type: integer
Explanation: Identifies the language of a standard message that should be sent. Used together with standard
message identifier.
Id: 21
Type: integer
Explanation: Defines in what cases the status report should be returned. Bit map representation. If bit set to 1, a
status report will be produced if such a situation occurs.
0 temporary error
1 validity period expired
2 delivery failed
3 delivery successful
4 message cancelled
5 message deleted by the operator
NOTE: The status report may be returned automatically or it may have to be requested by the SME with a status
report request operation.
Reachability Notification
Id: 22
Type: integer
NOTE: That the reachability notification may be requested only if the SME is of type listening.
Cancel Enabled
Id: 23
Type: integer
Value as follows:
0 cancelling is disabled
1 cancelling is enabled
ETSI
3G TS 23.039 version 2.0.0 77 3G TS 23.039 V2.0.0 (1999-06)
Id: 24
Type: IA5
Filter
Id: 25
Type: integer
Explanation: Defines how the messages should be identified in operations cancel, status report request, enable
status report request and disable status report request. Bit map representation. Note that all
combinations are not reasonable.
Meaning of bits:
0 service centre time stamp
1 destination address
2 short message identifier
3 originating address
4 time before service centre time stamp
5 time after service centre time stamp
User Identity
Id: 26
Type: IA5
Password (Old/New)
Id: 27
Type: IA5
Interface Version
Id: 28
Type: IA5
Parameter Identifier
Id: 29
Type: integer
Id: 30
Type: integer/IA5/BCD
ETSI
3G TS 23.039 version 2.0.0 78 3G TS 23.039 V2.0.0 (1999-06)
Status
Id: 32
Type: integer
Id: 33
Type: integer
Value as follows:
0 no error code
1 unknown subscriber
11 no SMS teleservice
13 call barred
19 MS does not support SMS
20 error in MS
21 facility not supported
29 absent subscriber
36 system failure
Id: 34
Type: integer
Data Type
Id: 35
Type: integer
Value as follows:
0 short message to be retrieved
1 status report to be retrieved
Id: 36
Type: integer
Explanation: Sequence number of the operation to which this an response, values from 0 to 9999.
ETSI
3G TS 23.039 version 2.0.0 79 3G TS 23.039 V2.0.0 (1999-06)
Initial Operation
Id: 37
Type: integer
Explanation: Value of the operation to which this a response. Value as specified for operation.
Get Next
Id: 38
Type: integer
Explanation: Parameter used in acknowledgement operation to delivery and status report operations indicating
whether the next short message or status report should delivered or not.
Value as follows:
0 don't deliver next message
1 deliver next message
Message Count
Id: 39
Type: integer
Explanation: Tells how many new mobile originated messages there are waiting for retrieval or how many status
reports or deliveries will follow after status report or delivery request.
Error Code
Id: 40
Type: integer
Value as follows:
0 unspecified error
1 protocol error
2 operation not allowed
3 checksum error
4 no SMSC response
5 system error
6 unexpected operation
7 message error
8 login failure
9 invalid address
10 invalid parameter value
11 invalid character
12 message too long
Error Text
Id: 41
Type: IA5
ETSI
3G TS 23.039 version 2.0.0 80 3G TS 23.039 V2.0.0 (1999-06)
C.5.1 Introduction
As specified in previous clauses, operations are basically nothing but a sequence of parameters.
- identifier
- type
- length of value
- value.
The SME link specification problem thus becomes the following: how to communicate a sequence of parameters
between the SME and the SMSC so that both ends would know what parameters are present, of what type they are, how
long they are and what is the actual value.
The identifier (id) field value for a parameter is taken from the parameter lists specified in clause C.3.2.
The type field values in binary coding and a guidance for counting the value of the corresponding length field are as
follows (types specified in clause C.3.1):
1000 through 1111 are reserved and must not be produced by SMEs.
ETSI
3G TS 23.039 version 2.0.0 81 3G TS 23.039 V2.0.0 (1999-06)
bit positions
7 4 3 0
byte 3
PARAMETER VALUE
(n bytes)
byte n + 2
The HEADER contains parameters sequence number and operation identifier. Both are represented with identifier, type,
length and value just like any other parameter.
The STOP is three bytes of all zero bits, i.e. a parameter where identifier, type and length are all zeroes.
There is no separators between the parameters because the length of each parameter is known.
Since X.25 or TCP/IP is used, the error correction mechanisms provided by the network layer are considered adequate:
no error checking is included.
ETSI
3G TS 23.039 version 2.0.0 82 3G TS 23.039 V2.0.0 (1999-06)
The HEADER consists of an operation identifier, and is ended with a TAB (09h) as any other parameter.
The DATA consists of parameters needed for the operation in question. On a text based link only the value of the
parameter is present, no type is defined. The parameter values are of type IA5; printing characters from 20h to 7Eh, CR
(0Dh) and LF (0Ah). Also those parameters that are of type integer in the list specified in clause C.3.2. are represented
as text. Parameters are ended with TAB characters.
sum += *b_ptr++;
All characters from very first start character to the last character before the CHECKSUM character are included into the
sum.
The CHECKSUM is represented as two printable characters. The character containing the 4 most significant bits shall
be transmitted first. For example, if the CHECKSUM is 3Ah the representation shall be the characters '3' (33h) and 'A'
(41h).
<STX>operation<TAB>parameter<TAB>[parameter<TAB>]checksum<ETX><LF>
Login -->
<STX>01<TAB>UserIdentity<TAB>Password<TAB>InterfaceVersion<TAB>Checksum<ETX><LF>
Ack <--
<STX>16<TAB>01<TAB>MessageCount<TAB>Checksum<ETX><LF>
Submit -->
<STX>03<TAB>DestinationAddress<TAB>ValidityPeriodRelative<TAB>UserData<TAB>Checksum<ETX><
LF>
Ack <--
<STX>16<TAB>03<TAB>ServiceCentreTimeStamp<TAB>Checksum<ETX><LF>
<STX>17<TAB>03<TAB>ErrorCode<TAB>ErrorText<TAB>Checksum<ETX><LF>
ETSI
3G TS 23.039 version 2.0.0 83 3G TS 23.039 V2.0.0 (1999-06)
Logout -->
<STX>08<TAB>Checksum<ETX><LF>
Ack <--
<STX>16<TAB>08<TAB>Checksum<ETX><LF>
The service includes the cancellation of undelivered short message, if the subscriber empties the mailbox before the
short message has been delivered to his/her MS.
The service also uses reachability notification so that the voice mail system may make a delivery call when it knows that
the MS is reachable and that there are voice messages to be listened. If the delivery call fails the voice mail system may
replace the short message stored in the SMSC with a new message telling the current status of the mailbox. If the
delivery call is successful the short message will be cancelled.
The short message texts are produced in the SMSC according to information received from the voice mail system.
Two different standard messages are defined for this service. One for the initial short message and another for the update
message.
The content of the first short message could the following, with places for parameter values indicated with ^ ^:
The actual short message, the content of which is shown above, would, for example, look like this:
"You have ^totnew^ new and ^toturg^ urgent messages in your mailbox."
The actual short message in this case could look like this:
ETSI
3G TS 23.039 version 2.0.0 84 3G TS 23.039 V2.0.0 (1999-06)
By defining more texts it is possible to extent the service to cover also standard message service offering possibility to
send messages like "Call home", "Call secretary", etc.
login
submit
cancel
logout
reachability notification
Common operations:
ack
nack
user identity
password
interface version
submit:
destination address
originating address
replace
language
reachability notification
cancel enabled
type (note)
totnew (note)
toturg (note)
caller (note)
ETSI
3G TS 23.039 version 2.0.0 85 3G TS 23.039 V2.0.0 (1999-06)
NOTE: These parameters are additional parameters submit operation and they are used
when building short message texts.
cancel:
destination address
logout:
(no parameters)
reachability notification:
destination address
reachability type
ETSI
3G TS 23.039 version 2.0.0 86 3G TS 23.039 V2.0.0 (1999-06)
Annex D:
SMSC Open Interface Specification
D.1 Introduction
The objective of this annex is to provide a sufficiently detailed description of the protocol to be used for exchanging
messages between an SMSC and an SME to allow a reader to implement that protocol.
D.1.1 Scope
The content of this annex is relevant to the implementers of any system which implements the functionality of an SME
by communicating with an SMSC.
D.2 Overview
This clause explains the purpose of the SMSC to SME protocol.
The SMEs which communicate directly with the SMSC are assumed to be trusted systems. Control of access to usage of
this protocol is outside the scope of this annex. Systems belonging to third parties should be connected via an SME
which controls who may access the SMSC and what facilities are available to them.
Delete SM Delete a previously submitted SM. This SM must have not yet been delivered.
Replace SM Replace a previous SM with a new SM to the same destination MSISDN. A new SMSC reference
number is allocated to the replacement SM.
Delete All SMs Delete all undelivered SMs previously submitted by the SME to a destination MSISDN.
Cancel SRR Cancel all Status Report requests made on a previously submitted SM. The SM must have not yet
been delivered.
ETSI
3G TS 23.039 version 2.0.0 87 3G TS 23.039 V2.0.0 (1999-06)
Alert SME Request Request an 'Alert SME' message when the specified MSISDN becomes registered.
Retrieve Request Request transmission by the SMSC of any queued Incoming SM, Status Report or Alert SME
messages, or request that none are transmitted.
Get Version Request the Open Interface version number supported by the SMSC.
SMEs may receive the following operations using the SMSC to SME protocol:
Alert SME An indication that an MSISDN has registered with the GSM network.
Status Report A report of the status of a previously submitted SM. This will indicate delivery or a reason for failure
to deliver the SM.
Incoming SM An SM from an MSISDN has been sent destined for the SME.
The SME may receive a request from the SMSC if it has previously submitted a request asking for a Status Report, if it
has requested an Alert SME or if it receives a mobile-originated SM. It sends a result to the SMSC for each request.
This annex imposes no defined recovery algorithm on the SME, it may repeat failed operations or abandon them.
Repetition of a failed invocation by the SME may lead to duplicated invocations. This is because the SMSC does not
detect the SME's non-receipt of an SMSC response, so it behaves as though its responses were always received by the
SME. The SMSC makes no provision for roll-back of any operation it has performed.
- Re-submission of an SM to which the SME has given an SME reference number of the KEY type (see clause
D.4.3.32 for a full explanation of SME reference number types). The re-submission of an already accepted SM
will fail with an "already in store" error.
- Re-submission of an SM to which the SME has not given an SME reference number of the KEY type (see clause
D.4.3.32 for a full explanation of SME reference number types). The SM will be accepted again on the re-
submission, which will result in it being delivered twice and, if a Status Report has been requested, in two Status
Reports being returned to the SME.
- Deletion of an already deleted SM. The second deletion will fail with a "no such SM" error.
ETSI
3G TS 23.039 version 2.0.0 88 3G TS 23.039 V2.0.0 (1999-06)
SMSC recovery only applies to SMSC-invoked operations. The SMSC does not retry its responses to SME-invoked
operations but behaves as though the responses were always received by the SME.
The SMSC makes a timed retry in both cases. Therefore the SME may receive a particular SMSC_Invoke message twice
if an error has occurred.
The procedure is shown in figure D.1. It is initiated by the SME to request the SMSC to deliver an SM to an MS. The
procedure consists of the following actions:
- A result is sent by the SMSC indicating that it has completed the submit SM operation and the SM has been
secured in the SMSC database.
- An invoke is sent by the SMSC passing a Status Report for the SM (if a Status Report has been requested).
- A result is sent by the SME indicating that it has accepted the Status Report.
An SM submission may request a Status Report for a particular set of circumstances. After a delivery attempt is made,
the SMSC checks whether one of the selected circumstances has occurred. If one has occurred, the SMSC sends a Status
Report to the SME. The Status Report identifies the SM to which it relates and describes the status of that SM. It also
carries the SME internal reference supplied by the SME when submitting the SM.
The SMSC does not monitor SM expiry dates in real-time so a Status Report informing the SME that an SM has expired
will be sent some time after the actual expiry time. If an SME needs to know whether or not an SM has expired it should
send an Enquire SM rather than rely on the receipt of a Status Report.
If a Status Report is not accepted by the SME, the SMSC timed retry algorithm is applied until the SMSC receives a
Status Report acceptance or the Status Report expires.
ETSI
3G TS 23.039 version 2.0.0 89 3G TS 23.039 V2.0.0 (1999-06)
It is possible, depending on the circumstances for which a Status Report is requested, that more than one Status Report
will follow the SM submission request; e.g. if Status Reports are requested for "Unable to deliver SM - retrying
delivery" a Status Report will be generated for each delivery attempt. However it is important to remember that the
SMSC queues messages for a destination internally. When it tries to deliver to a destination it attempts to deliver the
message at the head of the queue, if this delivery attempt results in "Unable to deliver SM - retrying delivery" a status
report will be generated for this first message (if requested) and the delivery attempt ends. No attempt was made to
deliver the other messages for this destination so no status reports will be generated for them.
The procedure is shown in figure D.2. It is initiated by the SME to request the SMSC to delete an SM previously
submitted for delivery to an MS. The procedure consists of the following actions:
- A result is sent by the SMSC indicating that it has completed the delete SM operation.
- An invoke is sent by the SMSC passing a Status Report for the SM (if a Status Report was requested when the
SM was submitted).
- A result is sent by the SME indicating that it has accepted the Status Report.
If a Status Report on "deletion by SME" was requested when the SM was originally submitted, the SMSC sends a Status
Report to the SME. The procedure is the same as for SM submission.
Note that because the generation of status reports and their subsequent delivery is an entirely separate process from the
return of the delete result it is possible (and quite likely) that the status report invoke will be sent by SMS2000 before
the result of the delete SM operation is returned.
The SMSC will only delete the SM if the originating address of the SM to be deleted matches the originating address
contained in the request. If there is no match the request will be rejected and a result returned indicating "SM not in
SMSC database" (as there is no SM with the specified reference belonging to the requester).
ETSI
3G TS 23.039 version 2.0.0 90 3G TS 23.039 V2.0.0 (1999-06)
SME S M SC
in v o ke (R e p la c e S M )
re s u lt
in v o ke (S ta tu s R ep o rt)
re s u lt
in v ok e (Status R ep ort)
re s u lt
The procedure is shown in figure D.3. It is initiated by the SME to request the SMSC to replace an SM previously
submitted for delivery to an MS with another SM to the same MS. This procedure provides a shorthand way to combine
the effects of the delete SM and submit SM procedures. The procedure consists of the following actions:
- A result is sent by the SMSC indicating that it has completed the replace SM operation.
- An invoke is sent by the SMSC passing a Status Report for the SM (if a Status Report was requested when the
SM was submitted).
- A result is sent by the SME indicating that it has accepted the Status Report.
- An invoke is sent by the SMSC passing a Status Report for the SM (if a Status Report has been requested).
- A result is sent by the SME indicating that it has accepted the Status Report.
Since this procedure combines the effects of the submit SM and delete SM procedures, two sets of Status Reports may
be generated: for the deletion of the original SM and for the status of the replacement SM. It is possible, depending on
the circumstances for which a Status Report is requested, that more than one Status Report will follow the submission of
the SM replacement; e.g. if Status Reports are requested for "Unable to deliver SM - retrying delivery" a Status Report
will be generated for each delivery attempt. The SMSC sends the Status Reports to the SME using the same procedure
as for SM submission.
The SMSC carries out the deletion of the SM to be replaced and the submission of the replacement SM as two
operations. It is therefore possible that the submission may succeed and the deletion fail (for example because the old
SM has already been delivered).
ETSI
3G TS 23.039 version 2.0.0 91 3G TS 23.039 V2.0.0 (1999-06)
Because status reports are routed and delivered by a separate mechanism to the replace result message it is not possible
to predict with certainty what order they will occur in. It is quite likely that the status report generated on deletion of the
original message will be sent to the SME by the SMSC before the replace result message is received. It is also possible
(but less likely) that the status report generated as a result of attempting to deliver the new short message will be
received before the replace result message is received. Finally it is possible (but very unlikely) that the status report
generated by the first delivery attempt for the new message will be sent by the SMSC before the status report generated
by deletion of the old message. So the following sequences are all possible (as are other variations) in addition to the
one shown above :
Sequence 1
- The SMSC sends a status report invoke (for the first delivery attempt of the new message);
Sequence 2
- The SMSC sends a status report invoke (for the first delivery attempt of the new message);
Sequence 3
- The SMSC sends a status report invoke (for another action totally unrelated to the replace. e.g. delivery of a
previously submitted SM);
- The SMSC sends a status report invoke (for the first delivery attempt of the new message);
The SMSC carries out the deletion of the SM to be replaced and the submission of the replacement SM as two
operations. It is therefore possible that the submission may succeed and the deletion fail (for example because the old
SM has already been delivered).
The SMSC will only delete the SM if the originating address of the SM to be deleted matches the originating address
contained in the request. If there is no match the delete request will be rejected and a result returned indicating "SM not
in SMSC database" (as there is no SM with the specified reference belonging to the requester). The submission of the
new SM will be carried out as usual.
ETSI
3G TS 23.039 version 2.0.0 92 3G TS 23.039 V2.0.0 (1999-06)
SME S M SC
in v o ke (D e le te A ll S M s)
re s u lt
in v o ke (S ta tu s R ep o rt)
re s u lt
in v ok e (Status R ep ort)
re s u lt
The procedure is shown in figure D.4. It is initiated by the SME to request the SMSC to delete all SMs remaining
undelivered which were previously submitted for delivery to an MS by the SME. The procedure consists of the
following actions:
- A result is sent by the SMSC indicating that it has completed the delete all SMs operation.
- A number of invokes may be sent by the SMSC each passing a Status Report for a deleted SM (if a Status Report
was requested when the SM was submitted).
- A result is sent by the SME in response to each Status Report indicating that the report has been accepted.
Since this procedure may delete many SMs, many Status Reports may be generated, one for each deleted SM. The
SMSC sends the Status Reports to the SME using the same procedure as for SM submission.
The SMSC will only delete those SMs where the originating address of the SM to be deleted matches the originating
address contained in the request.
ETSI
3G TS 23.039 version 2.0.0 93 3G TS 23.039 V2.0.0 (1999-06)
SME S M SC
API
in v o ke (E n qu ire S M )
re s u lt
The procedure is shown in figure D.5. It is initiated by the SME to request the SMSC to return information on an SM
previously submitted for delivery to an MS. The procedure consists of the following actions:
- A result is sent by the SMSC, indicating that the SMSC has completed the enquire SM operation.
An SM is only retained within the SMSC message store for a limited period after the SM has been delivered or delivery
attempts have been abandoned, or after its validity period has expired. Once the SM has been archived from the SMSC
message store any Enquire SM will get the result 'SM is not in SMSC database'. The SMSC retention period for SMs is
outside the scope of this annex.
Because the SMSC stores all SM messages internally in GSM format, the returned message information will be encoded
in GSM format, even if the message was originally submitted using IA5 encoding.
The SMSC will only return information about the SM if the originating address of the stored SM matches the originating
address contained in the request. If there is no match the request will be rejected and a result returned indicating "SM
not in SMSC database" (as there is no SM with the specified reference belonging to the requester).
SME S M SC
in v o ke (C a n c e l S M )
re s u lt
The procedure is shown in figure D.6. It is initiated by the SME to cancel any Status Report requests on an SM
previously submitted for delivery to an MS. The procedure consists of the following actions:
- A result is sent by the SMSC indicating that the SMSC has completed the cancel SRR operation.
The cancel will stop any Status Reports being generated after the cancel has been received. Any Status Reports that
have already been generated will still be passed to the SME.
ETSI
3G TS 23.039 version 2.0.0 94 3G TS 23.039 V2.0.0 (1999-06)
The SMSC will only cancel SR for the SM if the originating address of the stored SM matches the originating address
contained in the request. If there is no match the request will be rejected and a result returned indicating "SM not in
SMSC database" (as there is no SM with the specified reference belonging to the requester).
SME S M SC
in v o ke (A le rt S M E R e q )
re s u lt
in v o ke (A le rt S M E )
re s u lt
The procedure is shown in figure D.7. It is initiated by the SME to request the SMSC to notify the SME when an
MSISDN is registered. The procedure consists of the following actions:
- A result is sent by the SMSC indicating that the SMSC has completed the alert SME request operation and the
requirement to send an alert SME has been noted in the SMSC database.
- An invoke is sent by the SMSC containing an Alert SME for the requested MSISDN.
- A result is sent by the SME indicating that it has accepted the Alert SME.
The Alert SME Request will result in an Alert SME being generated when the requested MSISDN registers with the
GSM network.
It does not matter how many times a single SME requests an Alert SME on a single destination - it will only be notified
(by invoke Alert SME) once.
SME S M SC
in v o ke (D e liv e r S M )
re su lt
ETSI
3G TS 23.039 version 2.0.0 95 3G TS 23.039 V2.0.0 (1999-06)
The procedure is shown in figure D.8. It is initiated by the SMSC to deliver an SM to the SME. The procedure consists
of the following actions:
- A result is sent by the SME, indicating that it has accepted the Incoming SM.
This procedure is only used for SME's that can receive SM's from MSISDNs.
SME S M SC
in v o ke (R e triev e R e q )
re s u lt
in voke (S M , SR or A lert S M E)
re s u lt
The procedure is shown in figure D.9. It is initiated by the SME to request the SMSC to switch on or off the sending of
queued messages (Incoming SMs, Status Reports or Alert SMEs). The procedure consists of the following actions:
- An invoke is sent by the SME containing a retrieval request to initiate or inactivate the message transmissions.
- A result is sent by the SMSC indicating that the SMSC has noted the request.
- If there are queued messages and retrieval has been initiated then a number of invokes are sent by the SMSC
passing Incoming SM, Status Report or Alert SME.
- For each invoke received by the SME a result is sent by the SME indicating that it has accepted a message.
This procedure has a number of uses. It gives SMEs control over when they receive messages. It enables SMEs whose
communications link to the SMSC has been unavailable to request queued messages when it is ready for them. It gives
the SME the ability to apply flow control with the SMSC by switching on and off the flow of messages to the SME.
The SME has two choices on the retrieve order of the messages. These are a) high priority SMs, then normal priority
SMs and status reports interleaved, then alert SMEs, b) high priority SMs, then normal priority SMs, then status reports,
then alert SMEs.
The SMSC will only retrieve messages (SMs, SRs, and alerts) which have the supplied originating address as their
destination.
ETSI
3G TS 23.039 version 2.0.0 96 3G TS 23.039 V2.0.0 (1999-06)
SME S M SC
in v o ke (G e t V e rs io n )
re su lt
The procedure is shown in figure D.10. It is initiated by the SME to request the version number of the Open Interface
supported by the SMSC. The procedure consists of the following actions:
The encoding scheme and transmission mechanism used to transfer the messages defined by this protocol are outside the
scope of this annex.
Opref (4 octets)
Message type (1 octet)
Operation (1 octet)
2 octets - unused
Data size (2 octets)
Operation identifies the type of operation and takes one of the following values:
0 = Submit SM
1 = Delete SM
2 = Replace SM
4 = Status Report
ETSI
3G TS 23.039 version 2.0.0 97 3G TS 23.039 V2.0.0 (1999-06)
5 = Enquire
7 = Alert Request
8 = Alert SME
9 = Deliver
Data size gives the length of the data part of the message in octets.
Opref (4 octets)
Message type (1 octet)
Operation (1 octet)
2 octets - unused
Data size (2 octets)
Data size gives the length of the data part of the message in octets.
For transmission purposes, the data parameter is defined to be a contiguous block of bytes. Each field within the block
follows the previous without filler bytes, and the first field is defined to start in the least significant byte of the block (i.e.
the first field occurs at the lowest address in memory). The transmission of the whole data parameter is performed to
preserve this order, therefore for byte-oriented transmission mediums, the bytes are transmitted from low memory
addresses first. Clause D.4.3 describes how data is stored within fields.
ETSI
3G TS 23.039 version 2.0.0 98 3G TS 23.039 V2.0.0 (1999-06)
MSISDN length
MSISDN
SME reference type
SME reference number
priority
originating address length
originating address
validity period type
[validity period (absolute)]
[validity period (relative)]
data coding scheme
status report request
protocol id
reply path
SM text size (characters)
SM text size (bytes)
SM text
[Sub-Logical SME number]
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
When submitting a SM which you may subsequently wish to enquire on, replace or delete (other than by use of 'delete
all') you must either provide an SME Reference of type KEY or you must record the SMSC Reference returned in the
Submit SM Result. Using the SMSC Reference is more efficient. SME references of type NOT KEY may not be used to
access a SM in the SMSC.
result
[SMSC reference number]
[accept time]
If you need to access the SM to which this result applies on the SMSC you must either record the returned SMSC
reference number, or have supplied a SME reference of type KEY in the Submit SM Invoke.
ETSI
3G TS 23.039 version 2.0.0 99 3G TS 23.039 V2.0.0 (1999-06)
SM reference type
[SME reference number]
[SMSC reference number]
MSISDN length
MSISDN
originating address length
originating address
[Sub-Logical SME number]
"SME reference number" is omitted unless "SM reference type" is SME REFERENCE.
"SMSC reference number" is omitted unless "SM reference type" is SMSC REFERENCE.
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
To access an SM you must either supply a SMSC reference number or an SME Reference number. You may only use
the SME reference number if when you submitted the SM you provided an SME reference number of type KEY. If you
attempt to access a SM on a NOT KEY SME reference number the SMSC will fail to find the SM.
result
SM reference type
[SME reference number] Of the SM to be deleted
[SMSC reference number]
MSISDN length Of both the SM to be deleted
MSISDN and the replacement SM
SME reference number type
SME reference number
priority
originating address length
originating address
validity period type
[validity period (absolute)]
[validity period (relative)] Of the replacement SM
data coding scheme
status report request
protocol id
reply path
SM text size (characters)
SM text size (bytes)
SM text
[Sub-Logical SME number]
"SME reference number" for the SM to be replaced is omitted unless "SM reference type" is SME
REFERENCE.
ETSI
3G TS 23.039 version 2.0.0 100 3G TS 23.039 V2.0.0 (1999-06)
"SMSC reference number" for the SM to be replaced is omitted unless "SM reference type" is SMSC
REFERENCE.
"Validity period (relative)" for the replacement SM is omitted unless "validity period type" is RELATIVE.
"Validity period (absolute)" for the replacement SM is omitted unless "validity period type" is ABSOLUTE.
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
"SMSC reference number" is omitted unless "result" of the submission indicates success.
The following matrix shows how the different combinations of the two result fields should be interpreted.
Any other combination of result codes indicates a logic error in the SMSC.
ETSI
3G TS 23.039 version 2.0.0 101 3G TS 23.039 V2.0.0 (1999-06)
MSISDN length
MSISDN
originating address length
originating address
status report override
[Sub-Logical SME number]
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
result
MSISDN length
MSISDN
SME reference number type
SME reference number
SMSC reference number
accept time
SM status
[completion time]
[intermediate time]
[delivery failure reason]
originating address length
originating address
Invoke time
"Delivery failure reason" is omitted unless "SM status" is "Unable to deliver SM - delivery abandoned", or
"Unable to deliver SM - retrying delivery"
"Completion time" is omitted when "SM status" is "Unable to deliver SM - retrying delivery"
"intermediate time" is omitted when "SM status" is not "Unable to deliver SM - retrying delivery"
Status Report Invoke supplies the SMSC reference number originally returned in the SM Submit Result, and the SME
reference number sent in the original SM Submit Invoke. These numbers allow the SME to identify the SM to which the
status report relates. In addition the SME reference number type is returned. If this field indicates the SME reference is
of type KEY then this reference can be used to access the SM. If it indicates the SME reference is of type NOT KEY
then attempts to locate the SM on this reference will fail.
SME result
ETSI
3G TS 23.039 version 2.0.0 102 3G TS 23.039 V2.0.0 (1999-06)
SM reference type
[SME reference number]
[SMSC reference number]
MSISDN length
MSISDN
originating address length
originating address
enquiry type
[Sub-Logical SME number]
"SME reference number" is omitted unless "SM reference type" is SME REFERENCE.
"SMSC reference number" is omitted unless "SM reference type" is SMSC REFERENCE.
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
To access a SM you must either supply a SMSC reference number or an SME Reference number. You may only use the
SME reference number if when you submitted the SM you provided an SME reference number of type KEY. If you
attempt to access a SM on a NOT KEY SME reference number the SMSC will fail to find the SM.
result
enquiry type
SM status None of the fields after "result" are
[completion time] present unless "result" indicates success
[delivery failure reason]
priority
originating address length
originating address
accept time
expiry time
data coding scheme Present only if "result"
status report request indicates success and Enquire SM
protocol id Invoke requested SM attributes
reply path
SM text size (characters)
SM text size (bytes)
SM text
"Delivery failure reason" is omitted unless "SM status" is "Unable to deliver SM - delivery abandoned", or
"Unable to deliver SM - retrying delivery"
"Completion time" is omitted when "SM status" is "Unable to deliver SM - retrying delivery"
ETSI
3G TS 23.039 version 2.0.0 103 3G TS 23.039 V2.0.0 (1999-06)
SM reference type
SME reference number
[SMSC reference number
MSISDN length
MSISDN
originating address length
originating address
[Sub-Logical SME number]
"SME reference number" is omitted unless "SM reference type" is SME REFERENCE.
"SMSC reference number" is omitted unless "SM reference type" is SMSC REFERENCE.
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
To cancel status reports for a SM you must either supply a SMSC reference number or an SME Reference number. You
may only use the SME reference number if when you submitted the SM you provided an SME reference number of type
KEY. If you attempt to access a SM on a NOT KEY SME reference number the SMSC will fail to find the SM.
result
MSISDN length
MSISDN
ASR reference number
originating address length
originating address
[Sub-Logical SME number]
"Sub-Logical SME number" is omitted by SMEs using the general X.25 access method.
It is not possible to delete, enquire on, or replace Alert requests. Therefore it is not necessary to distinguish between
KEY and NOT KEY ASR reference numbers. All ASR reference numbers are of type NOT KEY.
result
[SMSC reference number]
[accept time]
ETSI
3G TS 23.039 version 2.0.0 104 3G TS 23.039 V2.0.0 (1999-06)
It is not possible to delete, enquire on or replace Alert requests. The SMSC reference number returned is only supplied
to provide a reference which may be compared with the one in the following Alert SME Invoke.
If an SME submits multiple Alert SME requests for the same destination (MSISDN) the reference returned for all such
Alert SME requests will be the same. Also only a single Alert SME invoke will be sent to that SME when the destination
becomes available.
MSISDN length
MSISDN
ASR reference number
SMSC reference number
originating address length
originating address
available flag
[delivery failure reason]
invoke time
The SMSC reference number supplied will be the same as that received in the Alert SME Request Result which was sent
when this alert was requested. The ASR reference number supplied will be the one which was contained in the Alert
SME Request which requested this Alert.
Irrespective of how many Alert SME requests an SME makes relating to a single destination (providing it makes at least
1) that SME will only receive a single Alert SME invoke when the destination becomes available. All the request
attempts will have returned the same SMSC reference number.
SME result
ETSI
3G TS 23.039 version 2.0.0 105 3G TS 23.039 V2.0.0 (1999-06)
It is theoretically possible (but unlikely in practice) for the data for a deliver SM invoke request to exceed the maximum
data part size of 215 bytes. In the unlikely event of this occurring the SMSC will truncate the SM text to reduce the data
part to 215 bytes, and change the SM text size (characters) and SM text size (bytes) accordingly.
SME result
result
ETSI
3G TS 23.039 version 2.0.0 106 3G TS 23.039 V2.0.0 (1999-06)
result
oi version number
- String. Array of char. The characters that may appear in the array depend on the field. Strings are not NULL
terminated. Strings are in ASCII unless otherwise stated.
- Integer. 1 byte, 2 byte or 4 byte. Integers larger than 1 byte are stored with the least significant byte first and the
most significant byte last. Integers are not aligned on word or longword boundaries. All integers are unsigned.
Your network operator will have configured the SMSC to recognise one value in the range 1 - 7 which is not already
used by GSM 03.38. This value will have the following meaning - coding is IA5. The short message text is coded by the
SME using the IA5 subset of ASCII characters. The text is automatically converted into GSM encoded format by the
SMSC before the SM is delivered to the MSISDN. the SMSC will change the value of Data Coding Scheme supplied to
0 (default GSM alphabet) before delivering the message.
The SMSC does not perform any validation or manipulation of Data Coding Scheme other than that described above.
ETSI
3G TS 23.039 version 2.0.0 107 3G TS 23.039 V2.0.0 (1999-06)
Value Reason
3 Unknown Subscriber
4 Teleservice Not Provisioned
6 Call Barred
7 Facility Not Supported
8 Absent Subscriber
9 SMS Not Provisioned
10 Error in MS
11 System Failure
12 CUG Reject
13 Memory Capacity Exceeded
99 No Delivery attempt yet completed for this SM
Refer to GSM 03.40 [1] for a full explanation of the above reasons.
The SMSC is usually configured to treat many of these reasons listed above as temporary. The failure of a delivery for a
temporary reason will not cause the SMSC to abandon attempts to deliver an SM. How the SMSC is configured will
determine which of these reasons it is possible to receive when a Status Report Invoke with an SM Status of "unable to
deliver SM - retrying delivery" (i.e. a temporary error) is received, and which it is possible to receive when a Status
Report Invoke with an SM Status of "Unable to deliver - delivery abandoned" (i.e. a permanent error) is received.
Note that when enquiring the delivery failure reasons for all undelivered messages for a single MSISDN will all be the
same at any given point in time. This is because delivery failure reason is the reason why the last delivery attempt to that
MSISDN failed. The SMSC queues messages for a destination and when it tries to deliver to a destination it starts at the
head of the queue and keeps delivering until an attempt fails or all messages for the destination have been delivered. The
SMSC does not generate delivery failure status reports for those messages it did not actually attempt to deliver.
Therefore the presence of a delivery failure reason in an enquire result does NOT necessarily mean that an attempt has
been made to deliver that particular message, merely that an attempt has been made to deliver a message to that
destination and the attempt failed with the returned delivery failure reason. Message delivery attempts are made in the
order in which the messages are secured by the SMSC (except for high priority messages for which an immediate
delivery attempt is made). Messages which have been abandoned will have an individual delivery failure reason
recorded against them.
ETSI
3G TS 23.039 version 2.0.0 108 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 109 3G TS 23.039 V2.0.0 (1999-06)
The hexadecimal fields contain ASCII characters in the ranges "0" to "9" and "A" to "F". The decimal fields contain
ASCII characters in the range "0" to "9".
Value Description
0 High priority.
1 Normal priority.
Value Description
0 Off - Not ready to receive invokes from the SMSC - the SMSC is instructed not to send them.
1 On - Ready to receive invokes from the SMSC - the SMSC is instructed to send them
ETSI
3G TS 23.039 version 2.0.0 110 3G TS 23.039 V2.0.0 (1999-06)
Value Description
0 Success
1 Operation rejected because argument value(s) were missing or invalid
2 Failed because SMSC database is full
3 Failed because SMSC is busy
4 Failed because specified SM is not in the SMSC database (in the case of the Delete SM, Enquire
SM and Replace SM operations) or because the SMSC database holds no SMs from the SME for
the specified destination MSISDN (in the case of the Delete All SMs operation)
5 Failed because SM was already in the SMSC database
Value Order
0 High Priority SMs first then, Normal Priority SMs and Status Reports interleaved, then Alert SMEs
1 High Priority SMs first, then Normal Priority SMs, then Status Reports, then Alert SMEs
Value Description
0 No messages (request being used to check API version number)
1 All messages
2 SMs only
If a value of 2 is supplied all queued status reports and alert SME notifications for the retrieving destination will be
discarded.
Value Description
0 SME REFERENCE. The SME reference number of the SM is quoted. This method can only be
used if the SME reference number type of the SM is KEY. See clause D.4.3.32 for more details of
SME reference number types. In "Delete SM Invoke" and "Replace SM Invoke", if the SME
reference type argument is SME REFERENCE then the following SME reference number
argument is assumed by the SMSC to be of type KEY.
1 SMSC REFERENCE. The MSISDN and SMSC reference number of the SM is quoted. This
method can be used for all SMs. Note: the SMSC reference for an SM is only unique when
combined with its MSISDN.
ETSI
3G TS 23.039 version 2.0.0 111 3G TS 23.039 V2.0.0 (1999-06)
Value Status
1 Unable to deliver SM - delivery abandoned
2 SM expired
3 SM delivered
4 SM deleted by SME
5 SM deleted by the SMSC operators
6 Unable to deliver SM - retrying delivery
D.4.3.27 SM Text - variable length string - length held in "SM Text Size
(Bytes)"
Text of the SM. Least significant byte first. Format of the text depends on the data coding scheme.
Value is the integer value which the SME returns in the Result field of Status report result, Deliver SM result or Alert
SME result.
Description is a short description of the meaning this value is intended to convey to the SMSC.
Meaning is a description of the circumstances in which it is intended that the value should be sent to the SMSC.
Meaning also describes the way in which the SMSC will respond on receipt of this value.
ETSI
3G TS 23.039 version 2.0.0 112 3G TS 23.039 V2.0.0 (1999-06)
- 20 - 119. Errors relating to the communications protocol used either to communicate with the SME, or by the
SME to communicate with the ultimate destination of the message.
- 120+. Errors relating to major communications failures which SMS2000 is required to report.
ETSI
3G TS 23.039 version 2.0.0 113 3G TS 23.039 V2.0.0 (1999-06)
Value Description
1 KEY
2 NOT KEY
a) When deleting, replacing or enquiring on an SM with a SME reference number of the KEY type, the SME
reference number can be used to identify the SM. If the SME reference number is of type 'NOT KEY' then the
SMSC reference number must be used.
b) The SMSC will not accept two SMs from a single originating address with the same SME reference number
destined for the same destination if the SME reference of both messages is of type KEY. SME references should
be unique for a given originating address. This can be useful in recovery situations where it is uncertain whether
an SM has been accepted by the SMSC.
If SME reference numbers are not required by the SME, then type NOT KEY should be used. All SMs can then be
given the same SME reference number.
Value Description
0 No override - status reports will be generated according to the current setting of the Status Report
Request field for each short message deleted.
1 Override - No status reports will be generated as a result of the deletion of the short messages
affected by this command.
Bit Status
1 SM expired
2 SM delivered
3 SM deleted by SME
ETSI
3G TS 23.039 version 2.0.0 114 3G TS 23.039 V2.0.0 (1999-06)
Any number and combination of bits may be set to request Status Reports for a variety of status.
A status of "Unable to deliver SM - delivery abandoned" means that a SM delivery attempt has failed and no further
delivery attempts will be made.
A Status Report indicating that an SM has expired will be generated some time after the SM expiry date, not necessarily
at the exact expiry time.
A status of "Unable to deliver SM - retrying delivery" means that a SM delivery attempt has failed but a further delivery
attempt will be made. Therefore, another Status Report may be generated. This may be on the next delivery attempt, or
depending on which other status bits have been set, on one of the other circumstances arising. Once a Status Report
indicating one of the other status has been received, no further delivery attempts will be made and no other Status
Report will be generated.
The validity period cannot be more than 16 weeks later than the time of submission to the SMSC.
Value Description
0 NONE. No validity period specified. A default SMSC value is used.
1 ABSOLUTE. The validity period is expressed as an absolute time.
2 RELATIVE. The validity period is expressed as a delta time relative to the time of the SM's
acceptance by the SMSC.
ETSI
3G TS 23.039 version 2.0.0 115 3G TS 23.039 V2.0.0 (1999-06)
Annex E:
SMSC Computer Access Service and Protocol Manual
E.1 Introduction
This annex describes the SMS-C Computer Access Protocol used between SMS-C and external computers.
This annex is intended for programmers responsible for the development of applications for communicating with SMS-
C, using the SMS-C Computer Access Protocol.
Overview of contents
Overview:
- gives an introduction to the Short Message Service and a description of the SMS-C software structure.
- describes the connect and disconnect procedures for the different types of lower protocol layers.
- Design Considerations
- defines the Computer Access Protocol Data Units using ASN.1 syntax.
E.2 Overview
ETSI
3G TS 23.039 version 2.0.0 116 3G TS 23.039 V2.0.0 (1999-06)
Submission Delivery
SMT MS
SMS-C
SMT MS
Delivery Submission
SMT MS
The Short Message Service provides the means for transferring of short messages between Short Message Terminals and
Mobile Stations via a Short Message Service Center.
SMS-C is an interworking unit between stationary networks and the GSM Network. It acts as a store and forward center
for short messages. Two different point-to-point services have been defined: Mobile Originated (MO) and Mobile
Terminated (MT).
Through notifications, the message originator may be informed about successful or unsuccessful delivery of the short
message.
- validity time, which specifies the latest time at which the message delivery should be attempted. If not specified
by the message originator, the default value specified through configuration parameters will be used;
- deferred delivery time which specifies at what time the message should be delivered;
- alternative notification address. This parameter can be used to change the address to where the notifications
should be sent. The default value is the message originator’s address.
A short message is deleted when the delivery succeeds or when the validity time expires. During buffering SMS-C is
responsible for the short message.
ETSI
3G TS 23.039 version 2.0.0 117 3G TS 23.039 V2.0.0 (1999-06)
E.2.1.3 Notifications
A notification is a short message created by SMS-C containing information about the delivery of a short message. The
following types of notifications exist:
- Buffered message notification, generated when the first attempt to deliver a short message was unsuccessful, due
to the recipient being temporarily inaccessible.
- Non-delivery notification, generated due to a permanent failure or when the validity time of the short message
expires.
The message originator can specify all notification types when submitting a short message. Any combination of the three
notification types above is valid.
The Message Kernel maintains a uniform interface to a set of Access Units (AU. There is one AU for each type of
connection:
SMS-C
Message
Kernel
The Message Kernel maintains a uniform interface to the different types of Access Units.
ETSI
3G TS 23.039 version 2.0.0 118 3G TS 23.039 V2.0.0 (1999-06)
Computer
External Computer SMS-C
Access
Protocol
User Computer Message
System Access Unit Kernel
The Computer Access Unit provides services for the External Computer.
- delete short messages that have been submitted but not yet delivered.
The implementation is a Client/Server approach, where the user system in the external computer makes the decisions to
submit, retrieve or delete messages and to disconnect. A connection can, however, be initiated from either side.
The Computer Access Protocol defines the following Protocol Data Units:
ETSI
3G TS 23.039 version 2.0.0 119 3G TS 23.039 V2.0.0 (1999-06)
If the user system tries to establish a connection when one already exists, the attempt will be rejected by SMS-C.
Before disconnecting, the user system should request messages from SMS-C. When the queue is empty the user system
is expected to disconnect.
E.3.1.3 Disconnect
The user system is expected to initiate the disconnect by sending a close request. SMS-C will disconnect when this
request is received.
SMS-C will also disconnect if the user system goes idle for more than a specified period of time.
Connect
OpenReqPDU
OpenRspPDU
The OpenReqPDU specifies the supported release levels of the Computer Access Protocol. The OpenRspPDU specifies
the release level to be used.
After the connect, SMS-C transmits an OpenReqPDU specifying the supported release levels of the Computer Access
Protocol.
The user system returns an OpenRspPDU that specifies the release level to be used.
ETSI
3G TS 23.039 version 2.0.0 120 3G TS 23.039 V2.0.0 (1999-06)
SubmitReqPDU
SubmitRspPDU
To submit a message the user system transmits a SubmitReqPDU. SMS-C responds with a SubmitRspPDU containing a
return code and a unique message identification.
To submit a short message the user system transmits a SubmitReqPDU to SMS-C. The PDU contains the message
priority, notification level, destination address and the short message text. Optional information is validity time,
alternative notification address and deferred delivery time.
SMS-C responds with a SubmitRspPDU which contains a return code and a unique message identification. A positive
return code indicates that the Message Kernel has taken over the responsibility of the message.
The actual delivery of the short message to the recipient is reported later by means of message notifications.
NOTE: The user system specifies, when submitting the short message, the type of notifications to be generated.
RetrieveReqPDU
RetrieveRspPDU
The user system transmits a RetrieveReqPDU to retrieve a message. SMS-C responds with a RetrieveRspPDU
containing a short message, a message notification or a “no message” indicator.
To retrieve a short message or message notification the user system transmits a RetrieveReqPDU. SMS-C responds with
a RetrieveRspPDU which contains either a short message, a message notification or a “no message” indicator.
When the user system has retrieved one message it must send another RetrieveReqPDU to find out whether there are
more messages waiting.
To make sure that all messages are retrieved, the user system must continue to transmit RetrieveReqPDU until a
RetrieveRspPDU with a “no message” indicator is received.
A short message or message notification, retrieved by the user system, is deleted from the database in SMS-C when a
subsequent RetrieveReqPDU, SubmitReqPDU, DeleteReqPDU or CloseReqPDU is received.
ETSI
3G TS 23.039 version 2.0.0 121 3G TS 23.039 V2.0.0 (1999-06)
DeleteReqPDU
DeleteRspPDU
The user system transmits a DeleteReqPDU to request deletion of a short message. SMS-C responds with a
DeleteRspPDU containing a return code.
A previously submitted short message that is not yet delivered can be deleted by the user system. Deletion of a short
message can be done either by specifying the message identification or the recipient. In the latter case, all short
messages from the user system to that recipient are deleted.
The user system transmits a DeleteReqPDU and SMS-C responds with a DeleteRspPDU which contains a return code.
A positive return code indicates that the specified short message/messages have been deleted.
CloseReqPDU
Disconnect
When finished, the user system sends a CloseReqPDU. SMS-C disconnects when this PDU is received.
When the user system is finished a CloseReqPDU should be sent. SMS-C disconnects when this PDU is received.
E.4.1 X.25
The Computer Access Interface handles multiple X.25 lines. Only SVCs, Switched Virtual Circuits are supported.
ETSI
3G TS 23.039 version 2.0.0 122 3G TS 23.039 V2.0.0 (1999-06)
- At connect from the user system, a specified number of digits can be given in the Call User Data field to form a
subaddress. This subaddress is appended to the DTE address to form the originator address, by which the
external computer is known to SMS-C.
- When SMS-C connects to the user system, in order to deliver a short message or a message notification, the
subaddress is removed from the originator address and inserted in the Call User Data field.
The number of digits used for the subaddress are specified through configuration parameters in SMS-C. If the user
system does not provide any subaddress or if the number of digits are less than specified in the configuration, zeroes are
appended. At connect from SMS-C, the appended zeroes are inserted in the Call User Data field.
NOTE: This feature is dependent on configuration parameters in SMS-C. Contact your SMS-C representative to
discuss the issue.
Calling DTE address This address is used as the sender address when submitting messages, and as receiver address
when receiving messages
Call user data Hex: ‘C0434150xxxxxx’ The first byte has the two leading bits set, indicating DTE-to-DTE use.
Then follows “CAP”. After “CAP”, one or more subaddress digits might follow. “CAP” and the
subaddress are coded in the IA5 character set.
Call user data Hex: ‘C0434150xxxxxx’ The first byte has the two leading bits set, indicating DTE-to-DTE use.
Then follows “CAP”. After “CAP”, one or more subaddress digits might follow. “CAP” and the
subaddress are coded in the IA5 character set.
Calling DTE address The DTE address of SMS-C. This address is not provided by SMS-C. It will be present only if
provided by the network.
E.4.1.4 Disconnect
The following diagnostic codes are given at disconnect:
0 Normal disconnect.
ETSI
3G TS 23.039 version 2.0.0 123 3G TS 23.039 V2.0.0 (1999-06)
E.5 Scenarios
Connect
OpenReqPDU
OpenRspPDU
SubmitReqPDU
SubmitRspPDU
RetrieveReqPDU
RetrieveRspPDU(No Msg)
CloseReqPDU
Disconnect
Since the user system is not currently connected, SMS-C connects. In order to retrieve any message or message
notification the user system sends a RetrieveReqPDU. SMS-C responds with a RetrieveRspPDU which contains either a
short message or message notification.
Before terminating the session, the user system checks if there are any more messages waiting by sending another
RetrieveReqPDU.
ETSI
3G TS 23.039 version 2.0.0 124 3G TS 23.039 V2.0.0 (1999-06)
Connect
OpenReqPDU
OpenRspPDU
RetrieveReqPDU
RetrieveRspPDU
RetrieveReqPDU
RetrieveRspPDU(No Msg)
CloseReqPDU
Disconnect
- X.25 multiport support – determines whether SMS-C supports this feature or not.
- user system idle time – if the user system is idle for more than this period of time, SMS-C will disconnect.
- default validity time – if the user system does not specify a validity time, in the SubmitReqPDU, this value will
be used.
- maximum validity time – determines the maximum validity time the user system can specify in the
SubmitReqPDU.
- maximum deferred delivery time – determines the maximum deferred delivery time the user system can specify in
the SubmitReqPDU.
E.6.2.1 Notifications
Use of notifications should be avoided. From SMS-C’s point of view the handling of a notification is equal to a short
message. This means that the capacity of SMS-C is decreased if notifications are used.
ETSI
3G TS 23.039 version 2.0.0 125 3G TS 23.039 V2.0.0 (1999-06)
- Connect several SVCs in parallel and use them to submit and retrieve messages.
- In a high volume environment, allocating one port to input only (for notifications) and several ports to output
might increase the throughput. Use the alternative notification address option to specify the address of the input
port.
Each PDU is serialised using the Basic Encoding Rules (BER), see CCITT Recommendation X.209 [6].
CAP DEFINITIONS ::= BEGIN
CAP-PDUs ::=
CHOICE
{ [0]openReq -- Open request from SMS-C (server)
OpenReqPDU,
ETSI
3G TS 23.039 version 2.0.0 126 3G TS 23.039 V2.0.0 (1999-06)
OpenReqPDU ::=
SEQUENCE OF -- List of supported release levels
RelLevel -- Each entry consists of at least 1 digit.
ETSI
3G TS 23.039 version 2.0.0 127 3G TS 23.039 V2.0.0 (1999-06)
ETSI
3G TS 23.039 version 2.0.0 128 3G TS 23.039 V2.0.0 (1999-06)
NotificationLevel ::=
BITSTRING -- True when bit is set
{ DeliveredNotification(0),
NonDeliveredNotification(1),
BufferedNotification(2)
}
MessageText ::=
SEQUENCE
{ msgTxtCoding -- Alphabet used
MsgTxtCoding,
text -- coded according to msgTxtCoding
Text
}
MsgTxtCoding ::=
ENUMERATED
{ osi8859_1(0) -- OSI 8859-1
Text ::=
OCTET STRING (SIZE 1..160)
Address ::=
SEQUENCE
{ Pid -- Type of address
Pid,
addr -- Address
PackedBCDString
}
Pid ::=
ENUMERATED
{ gsm(0), -- GSM telephone number
it(56), -- Interactive terminal PSTN number (hex 38)
ca(57) -- Computer Access X.25 DTE number (hex 39)
}
Notification ::=
SEQUENCE
{ MessageId,
ENUMERATED
{ messageDelivered(0),
messageBuffered(1),
messageNotDelivered(2)
},
msgCreationTime
UTCTime,
destAddress
Address,
ReasonCode OPTIONAL -- used with messageNotDelivered
}
ReasonCode
ENUMERATED
{
unknownRecipient(1),
messageTimedOut(2),
functionNotSupported(3),
otherError(4)
}
MessageId ::=
OCTET STRING
PackedBCDString ::=
OCTET STRING -- The digits 0 through 9, two digits
-- per octet.
-- each digit encoded as 0000 to 1001.
-- 1111 used for padding at the end, if
-- needed.
-- The leftmost digit is the most
-- signigicant.
ReturnCode ::=
SEQUENCE
{
ENUMERATED
ETSI
3G TS 23.039 version 2.0.0 129 3G TS 23.039 V2.0.0 (1999-06)
ErrorCode
ENUMERATED
{
illegalPriority(2), -- Illegal priority
illegalPid(3), -- Illegal recipient Pid
illegalAddr(4), -- Illegal recipient address
illegalTxtCoding(5), -- Illegal message text coding
illegalValTime(6), -- Illegal validity time
illegalNotAddr(7), -- Illegal notification address
illegalDelTime(8), -- Illegal deferred delivery time
messageTooLong(9), -- Message size is too long
unexpectedTag(11), -- Unexpected tag encountered
expectedSequence(12), -- “Sequence” tag was expected
expectedInteger(13), -- “Integer” tag was expected
expectedBitstring(14), -- “Bit string” tag was expected
expectedOctstring(15), -- “Octet string” tag was expected
expectedEnumerated(16) -- “Enumerated” tag was expected }
ETSI
3G TS 23.039 version 2.0.0 130 3G TS 23.039 V2.0.0 (1999-06)
Annex F (informative):
Change Request History
Change history
TSG-T TDoc. CR. No. Section New Subject/Comments
No. No. affected version
T#3 New 1.0.0 Creation of 3GPP 23.039 v1.0.0 out of GSM 03.39 v6.0.0
ETSI
3G TS 23.039 version 2.0.0 131 3G TS 23.039 V2.0.0 (1999-06)
History
Document history
V1.0.0 May 1999 Not for publication
ISBN 2-7437-3012-9
Dépôt légal : Avril 1999
ETSI