3 -- Taken from Ecma International
4 -- Standard ECMA-325, (June 2001)
5 -- http://www.ecma-international.org/publications/standards/Ecma-325.htm
10 Short-Message-Service-Operations-asn1-97
11 {iso(1) identified-organization(3) icd-ecma(12) standard(0) qsig-short-message-service(325) short-message-service-operations-asn1-97(1)}
18 FROM Remote-Operations-Information-Objects
19 {joint-iso-itu-t (2) remote-operations(4) informationObjects(5) version1(0)}
20 EXTENSION, Extension{}
21 FROM Manufacturer-specific-service-extension-class-asn1-97
22 {iso(1) standard(0) pss1-generic-procedures(11582) msi-class-asn1-97(11)}
24 FROM Name-Operations-asn1-97
25 {iso(1) standard(0) pss1-name(13868) name-operations-asn1-97(1)}
26 supplementaryServiceInteractionNotAllowed
27 FROM General-Error-List
28 {ccitt recommendation q 950 general-error-list(1)}
30 FROM Addressing-Data-Elements-asn1-97
31 {iso(1) standard(0) pss1-generic-procedures(11582) addressing-data-elements-asn1-97(20)};
33 --TYPE DEFINITIONS FOR SMS OPERATIONS FOLLOW
35 Sms-Operations OPERATION ::={
37 smsSubmit | smsDeliver | smsStatusReport | smsCommand | scAlert}
39 smsSubmit OPERATION ::= {
40 -- sent from the Sending User PINX/ Sending User Message Centre to the Service Centre
43 ERRORS {smsSubmitError |
47 smsDeliver OPERATION ::= {
48 -- sent from the Service Centre to the Receiving User PINX or to the Receiving User Message Centre
49 ARGUMENT SmsDeliverArg
51 ERRORS {smsDeliverError |
55 smsStatusReport OPERATION ::= {
56 -- sent from the Service Centre to the Sending User PINX or to the Sending User Message Centre
57 ARGUMENT SmsStatusReportArg
58 RESULT SmsStatusReportRes
59 ERRORS {smsStatusReportError |
63 smsCommand OPERATION ::= {
64 -- sent from the Sending User PINX or the Sending User Message Centre to the Service Centre
65 ARGUMENT SmsCommandArg
67 ERRORS {smsCommandError |
71 scAlert OPERATION ::= {
72 -- sent from the Receiving User PINX or the Receiving User Message Centre to the Service Centre
78 --TYPE DEFINITIONS FOR SMS DATA TYPES FOLLOW
80 SmsSubmitArg ::= SEQUENCE {
81 destinationAddress PartyNumber,
82 originatingAddress PartyNumber,
83 messageReference MessageReference,
84 smSubmitParameter SmSubmitParameter,
86 smsExtension SmsExtension OPTIONAL}
88 SmsSubmitRes ::= SEQUENCE {
89 serviceCentreTimeStamp ServiceCentreTimeStamp,
90 protocolIdentifier [3] IMPLICIT ProtocolIdentifier OPTIONAL,
91 userData [4] IMPLICIT UserData OPTIONAL,
92 smsExtension SmsExtension OPTIONAL}
94 SmsDeliverArg ::= SEQUENCE {
95 originatingAddress PartyNumber,
96 destinationAddress PartyNumber,
97 originatingName Name OPTIONAL,
98 smDeliverParameter SmDeliverParameter,
100 smsExtension SmsExtension OPTIONAL}
102 SmsDeliverRes ::= SEQUENCE {
103 smsDeliverResponseChoice SmsDeliverResChoice,
104 smsExtension SmsExtension OPTIONAL}
106 SmsStatusReportArg ::= SEQUENCE {
107 messageReference MessageReference,
108 serviceCentreTimeStamp ServiceCentreTimeStamp,
109 dischargeTime DischargeTime,
110 recipientAddress PartyNumber,
111 recipientName [10] Name OPTIONAL,
112 destinationAddress PartyNumber,
114 priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
115 moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
116 statusReportQualifier [13] IMPLICIT BOOLEAN DEFAULT FALSE,
117 protocolIdentifier ProtocolIdentifier OPTIONAL,
118 userData UserData OPTIONAL,
119 smsExtension SmsExtension OPTIONAL}
121 SmsStatusReportRes ::= SEQUENCE {
122 smsStatusReportResponseChoice SmsStatusReportResponseChoice,
123 smsExtension SmsExtension OPTIONAL}
125 SmsCommandArg ::= SEQUENCE {
126 destinationAddress PartyNumber,
127 messageReference MessageReference,
128 messageNumber MessageReference,
129 protocolIdentifier ProtocolIdentifier,
130 commandType CommandType,
131 commandData CommandData OPTIONAL,
132 statusReportRequest BOOLEAN OPTIONAL,
133 smsExtension SmsExtension OPTIONAL}
135 SmsCommandRes ::= SEQUENCE {
136 serviceCentreTimeStamp ServiceCentreTimeStamp,
137 protocolIdentifier ProtocolIdentifier OPTIONAL,
138 userData UserData OPTIONAL,
139 smsExtension SmsExtension OPTIONAL}
141 ScAlertArg ::= SEQUENCE {
142 originatingAddress PartyNumber,
143 smsExtension SmsExtension OPTIONAL}
147 smsExtension SmsExtension}
149 SmSubmitParameter ::= SEQUENCE {
150 protocolIdentifier ProtocolIdentifier,
151 validityPeriod ValidityPeriod OPTIONAL,
152 statusReportRequest [11] IMPLICIT BOOLEAN DEFAULT FALSE,
153 replyPath [12] IMPLICIT BOOLEAN DEFAULT FALSE,
154 rejectDuplicates [13] IMPLICIT BOOLEAN DEFAULT FALSE}
156 SmDeliverParameter ::= SEQUENCE {
157 protocolIdentifier ProtocolIdentifier,
158 serviceCentreTimeStamp ServiceCentreTimeStamp,
159 priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
160 moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
161 statusReportIndication [13] IMPLICIT BOOLEAN DEFAULT FALSE,
162 replyPath [14] IMPLICIT BOOLEAN DEFAULT FALSE}
164 SmsDeliverResChoice ::= CHOICE {
166 protocolIdentifier ProtocolIdentifier,
167 userData [0] IMPLICIT UserData,
168 resChoiceSeq [1] IMPLICIT ResChoiceSeq}
170 ResChoiceSeq ::= SEQUENCE {
171 protocolIdentifier ProtocolIdentifier,
174 SmsStatusReportResponseChoice ::= CHOICE {
176 protocolIdentifier ProtocolIdentifier,
177 userData [0] IMPLICIT UserData,
178 resChoiceSeq [1] IMPLICIT ResChoiceSeq}
180 MessageReference ::= INTEGER(0..255)
182 SmsExtension ::= CHOICE{
183 single [1]IMPLICIT Extension{{SmsExtSet}},
184 multiple [2]IMPLICIT SEQUENCE OF
185 Extension{{SmsExtSet}}
188 SmsExtSet EXTENSION ::= {...}
190 ProtocolIdentifier ::= INTEGER (0..127)
191 -- definition of the ProtocolIdentifier values and default value can be found in annex E section
194 ServiceCentreTimeStamp ::= GeneralizedTime(SIZE(12..19))
195 -- this date and time representation follows ISO 8601
197 DischargeTime ::= GeneralizedTime(SIZE(12..19))
198 -- this date and time representation follows ISO 8601
200 ValidityPeriod ::= CHOICE{
201 validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
202 validityPeriodAbs [1] IMPLICIT ValidityPeriodAbs,
203 validityPeriodEnh [2] IMPLICIT ValidityPeriodEnh}
205 ValidityPeriodAbs ::= GeneralizedTime(SIZE(12..19))
206 -- this date and time representation follows ISO 8601
208 ValidityPeriodRel ::= INTEGER(0..255)
209 -- the rules for the encoding of ValidityPeriodRel are shown in annex E section E.1.2.2
211 ValidityPeriodEnh ::= SEQUENCE{
212 singleShotSM BOOLEAN DEFAULT FALSE,
213 enhancedVP EnhancedVP OPTIONAL}
215 EnhancedVP ::= CHOICE{
216 validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
217 validityPeriodSec [1] IMPLICIT INTEGER(0..255),
218 validityPeriodSemi [2] IMPLICIT ValidityPeriodSemi}
220 ValidityPeriodSemi ::= OCTET STRING (SIZE(3))
221 -- Validity Period is relative in semi-octet representation, see ETSI TS 100 901, section 9.1.2.3
222 -- and section 9.2.3.12.3
224 UserData ::= SEQUENCE{
225 userDataHeader [0] IMPLICIT UserDataHeader OPTIONAL,
226 class [1] IMPLICIT INTEGER (0..3) OPTIONAL,
227 compressed [2] IMPLICIT BOOLEAN DEFAULT FALSE,
228 shortMessageText ShortMessageText}
230 ShortMessageText ::= SEQUENCE{
231 shortMessageTextType ShortMessageTextType,
232 shortMessageTextData ShortMessageTextData}
234 ShortMessageTextType ::= INTEGER{
235 iA5Coded (0), -- ShortMessageTextData shall contain data according to
236 octetCoded (1), -- the type given in ShortMessageTextType, for further
237 uniCoded (2), -- details see annex E. 1.3.4.
238 compressedCoded (3)} (0..8)
240 ShortMessageTextData ::= OCTET STRING (SIZE(0..140))
242 Status ::= INTEGER (0..255)
243 -- definition of status values can be found in section E.7.6 in annex E
245 CommandType ::= INTEGER{
248 deletePreviouslySubmittedSM (2),
249 enableSRRrelatingToPreviouslySubmittedSM (3)} (0..255)
251 CommandData ::= OCTET STRING (SIZE(0..157))
253 FailureCause ::= INTEGER (0..255)
254 -- definition for failureCause values can be found in section E.3.1 in annex E
256 UserDataHeader ::= SEQUENCE OF UserDataHeaderChoice
258 UserDataHeaderChoice ::= CHOICE{
259 smscControlParameterHeader [0] IMPLICIT SmscControlParameterHeader,
260 concatenated8BitSMHeader [1] IMPLICIT Concatenated8BitSMHeader,
261 concatenated16BitSMHeader [2] IMPLICIT Concatenated16BitSMHeader,
262 applicationPort8BitHeader [3] IMPLICIT ApplicationPort8BitHeader,
263 applicationPort16BitHeader [4] IMPLICIT ApplicationPort16BitHeader,
264 dataHeaderSourceIndicator [5] IMPLICIT DataHeaderSourceIndicator,
265 wirelessControlHeader [6] IMPLICIT WirelessControlHeader,
266 genericUserValue [99] IMPLICIT GenericUserValue}
268 SmscControlParameterHeader ::= BIT STRING {
269 sRforTransactionCompleted (0),
270 sRforPermanentError (1),
271 sRforTempErrorSCnotTrying (2),
272 sRforTempErrorSCstillTrying (3),
273 cancelSRRforConcatenatedSM (6),
274 includeOrigUDHintoSR (7)} (SIZE(8))
276 Concatenated8BitSMHeader ::= SEQUENCE{
277 concatenated8BitSMReferenceNumber INTEGER(0..255),
278 maximumNumberOf8BitSMInConcatenatedSM INTEGER(0..255),
279 sequenceNumberOf8BitSM INTEGER(0..255)}
281 Concatenated16BitSMHeader ::= SEQUENCE{
282 concatenated16BitSMReferenceNumber INTEGER(0..65536),
283 maximumNumberOf16BitSMInConcatenatedSM INTEGER(0..255),
284 sequenceNumberOf16BitSM INTEGER(0..255)}
286 ApplicationPort8BitHeader ::= SEQUENCE{
287 destination8BitPort INTEGER(0..255),
288 originator8BitPort INTEGER(0..255)}
290 ApplicationPort16BitHeader ::= SEQUENCE{
291 destination16BitPort INTEGER(0..65536),
292 originator16BitPort INTEGER(0..65536)}
294 DataHeaderSourceIndicator ::= INTEGER{
295 originalSender (1), -- valid in case of Status Report
296 originalReceiver (2), -- valid in case of Status Report
297 sMSC (3)}(0..255) -- can occur in any message or report
299 WirelessControlHeader ::= OCTET STRING
301 GenericUserValue ::= SEQUENCE{
302 parameterValue INTEGER(0..255),
303 genericUserData OCTET STRING}
305 smsDeliverError ERROR ::= {
307 failureCause FailureCause,
308 protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
309 userData [1] IMPLICIT UserData OPTIONAL,
310 scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
313 smsSubmitError ERROR ::= {
315 failureCause FailureCause,
316 serviceCentreTimeStamp ServiceCentreTimeStamp,
317 protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
318 userData [1] IMPLICIT UserData OPTIONAL}
321 smsStatusReportError ERROR ::= {
323 failureCause FailureCause,
324 protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
325 userData [1] IMPLICIT UserData OPTIONAL,
326 scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
329 smsCommandError ERROR ::= {
331 failureCause FailureCause,
332 serviceCentreTimeStamp ServiceCentreTimeStamp,
333 protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
334 userData [1] IMPLICIT UserData OPTIONAL}
337 unspecified ERROR ::= {
338 PARAMETER SmsExtension
341 END -- of Short-Message-Service-Operations-asn1-97