Rev

Rev 602 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | Bug Tracker

Rev 602 Rev 607
Line 11... Line 11...
11
    import from LibSip_SMSFunctions all;
11
    import from LibSip_SMSFunctions all;
12
12
13
    group SMS_Templates_Group {
13
    group SMS_Templates_Group {
14
14
15
        /* Non-SMS Type Constraints */
15
        /* Non-SMS Type Constraints */
16
        template(present) TypeOfNumberingPlan cr_TypeOfNumberingPlanAny := {
16
        template(present) TypeOfNumberingPlan mw_TypeOfNumberingPlanAny := {
17
            extBit := ?,
17
            extBit := ?,
18
            typeOfNumber := ?,
18
            typeOfNumber := ?,
19
            numberingPlanId := ?
19
            numberingPlanId := ?
20
        }
20
        }
21
21
22
        template(value) TypeOfNumberingPlan cs_TypeOfNumberingPlan := {
22
        template(value) TypeOfNumberingPlan m_TypeOfNumberingPlan := {
23
            extBit := '1'B,
23
            extBit := '1'B,
24
            typeOfNumber := '001'B,  // international number
24
            typeOfNumber := '001'B,  // international number
25
            numberingPlanId :=
25
            numberingPlanId :=
26
                '0001'B // ISDN/telephony numbering plan (Rec. E.164/E.163)
26
                '0001'B // ISDN/telephony numbering plan (Rec. E.164/E.163)
27
        }
27
        }
28
28
29
        template(present) TypeOfNumberingPlan cr_TypeOfNumberingPlan := cr_TypeOfNumberingPlanAny;
29
        template(present) TypeOfNumberingPlan mw_TypeOfNumberingPlan := mw_TypeOfNumberingPlanAny;
30
30
31
        /* End Non-SMS Type Constraints */
31
        /* End Non-SMS Type Constraints */
32
        template(value) RP_OriginatorAddress_dl cs_RP_OriginatorAddress_dl := {
32
        template(value) RP_OriginatorAddress_dl m_RP_OriginatorAddress_dl := {
33
            spare := omit,
33
            spare := omit,
34
            iei := omit,
34
            iei := omit,
35
            iel := '06'O,  // 6 semi-octets
35
            iel := '06'O,  // 6 semi-octets
36
            typeOfNumberingPlan := cs_TypeOfNumberingPlan,
36
            typeOfNumberingPlan := m_TypeOfNumberingPlan,
37
            digits := '001122'O
37
            digits := '001122'O
38
        }
38
        }
39
39
40
        template(present) RP_OriginatorAddress_ul cr_RP_OriginatorAddress_ul := {
40
        template(present) RP_OriginatorAddress_ul mw_RP_OriginatorAddress_ul := {
41
            spare := omit,
41
            spare := omit,
42
            iei := omit,
42
            iei := omit,
43
            iel := '00'O
43
            iel := '00'O
44
        }
44
        }
45
45
46
        template(present) RP_DestinationAddress_ul cr_RP_DestinationAddress_ul := {
46
        template(present) RP_DestinationAddress_ul mw_RP_DestinationAddress_ul := {
47
            spare := omit,
47
            spare := omit,
48
            iei := omit,
48
            iei := omit,
49
            iel := ?,
49
            iel := ?,
50
            typeOfNumberingPlan := cr_TypeOfNumberingPlan,
50
            typeOfNumberingPlan := mw_TypeOfNumberingPlan,
51
            digits := ?
51
            digits := ?
52
        }
52
        }
53
        template(omit) RP_DestinationAddress_dl cs_RP_DestinationAddress_dl := {
53
        template(omit) RP_DestinationAddress_dl m_RP_DestinationAddress_dl := {
54
            spare := omit,
54
            spare := omit,
55
            iei := omit,
55
            iei := omit,
56
            iel := '00'O
56
            iel := '00'O
57
        }
57
        }
58
58
59
        template(omit) RP_UserData cs_RP_UserData_DELIVER(
59
        template(omit) RP_UserData m_RP_UserData_DELIVER(
60
            octetstring p_Digits
60
            octetstring p_Digits
61
        ) := {
61
        ) := {
62
            spare := omit,
62
            spare := omit,
63
            iei := omit,
63
            iei := omit,
64
            iel := int2oct((153 + lengthof(p_Digits)), 1),
64
            iel := int2oct((153 + lengthof(p_Digits)), 1),
65
            tP_PDU := {SMS_DELIVER := cs_SMS_DELIVER(p_Digits)}
65
            tP_PDU := {SMS_DELIVER := m_SMS_DELIVER(p_Digits)}
66
        }
66
        }
67
67
68
        template(value) RP_UserData cs_RP_UserData_SUBMIT_REPORT := {
68
        template(value) RP_UserData m_RP_UserData_SUBMIT_REPORT := {
69
            spare := '0'B,
69
            spare := '0'B,
70
            iei := tsc_IEI_RP_UserData,
70
            iei := c_IEI_RP_UserData,
71
            iel := '0A'O,  // the TPDU data length is 10 octets
71
            iel := '0A'O,  // the TPDU data length is 10 octets
72
            tP_PDU := {SMS_SUBMIT_REPORT := cs_SMS_SUBMIT_REPORT}
72
            tP_PDU := {SMS_SUBMIT_REPORT := m_SMS_SUBMIT_REPORT}
73
        }
73
        }
74
        template(value) RP_UserData cs_RP_UserData_STATUS_REPORT(
74
        template(value) RP_UserData m_RP_UserData_STATUS_REPORT(
75
            template(value) TP_MessageReference_Type p_MessageRef,
75
            template(value) TP_MessageReference_Type p_MessageRef,
76
            template(value) TP_Address_Type p_RecipientAddress,
76
            template(value) TP_Address_Type p_RecipientAddress,
77
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
77
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
78
        ) modifies cs_RP_UserData_SUBMIT_REPORT := {
78
        ) modifies m_RP_UserData_SUBMIT_REPORT := {
79
            tP_PDU := {SMS_STATUS_REPORT := cs_SMS_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)}
79
            tP_PDU := {SMS_STATUS_REPORT := m_SMS_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)}
80
        }
80
        }
81
81
82
        template(present) RP_UserData cr_RP_UserData_SUBMIT := {
82
        template(present) RP_UserData mw_RP_UserData_SUBMIT := {
83
            spare := omit,
83
            spare := omit,
84
            iei := omit,
84
            iei := omit,
85
            iel := ?,
85
            iel := ?,
86
            tP_PDU := {SMS_SUBMIT := cr_SMS_SUBMIT_VPF_REF}
86
            tP_PDU := {SMS_SUBMIT := mw_SMS_SUBMIT_VPF_REF}
87
        }
87
        }
88
88
89
        template(present) RP_UserData cr_RP_UserData_DELIVER_REPORT := {
89
        template(present) RP_UserData mw_RP_UserData_DELIVER_REPORT := {
90
            spare := '0'B,
90
            spare := '0'B,
91
            iei := tsc_IEI_RP_UserData,
91
            iei := c_IEI_RP_UserData,
92
            iel := ?,
92
            iel := ?,
93
            tP_PDU := {SMS_DELIVER_REPORT := cr_SMS_DELIVER_REPORT}
93
            tP_PDU := {SMS_DELIVER_REPORT := mw_SMS_DELIVER_REPORT}
94
        }
94
        }
95
95
96
        /* End SM-RP Type Constraints */
96
        /* End SM-RP Type Constraints */
97
        /* SM-RP PDU Constraints */
97
        /* SM-RP PDU Constraints */
98
        template(value) RP_DATA_dl_Type cs_RP_DATA_dl_base := {
98
        template(value) RP_DATA_dl_Type m_RP_DATA_dl_base := {
99
            spare5 := '00000'B,
99
            spare5 := '00000'B,
100
            rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl,
100
            rP_MessageTypeIndicator := c_MT_RP_DATA_dl,
101
            rP_MessageReference := '00'O,
101
            rP_MessageReference := '00'O,
102
            rP_OriginatorAddress := cs_RP_OriginatorAddress_dl,
102
            rP_OriginatorAddress := m_RP_OriginatorAddress_dl,
103
            rP_DestinationAddress := cs_RP_DestinationAddress_dl,
103
            rP_DestinationAddress := m_RP_DestinationAddress_dl,
104
            rP_UserData := cs_RP_UserData_DELIVER('0000'O)
104
            rP_UserData := m_RP_UserData_DELIVER('0000'O)
105
        }
105
        }
106
106
107
        template(value) RP_DATA_dl_Type cs_RP_DATA_dl_DELIVER(
107
        template(value) RP_DATA_dl_Type m_RP_DATA_dl_DELIVER(
108
            octetstring p_Digits
108
            octetstring p_Digits
109
        ) modifies cs_RP_DATA_dl_base := {rP_UserData := cs_RP_UserData_DELIVER(p_Digits)}
109
        ) modifies m_RP_DATA_dl_base := {rP_UserData := m_RP_UserData_DELIVER(p_Digits)}
110
110
111
        template(value) RP_DATA_dl_Type cs_RP_DATA_dl_STATUS_REPORT(
111
        template(value) RP_DATA_dl_Type m_RP_DATA_dl_STATUS_REPORT(
112
            template(value) TP_MessageReference_Type p_MessageRef,
112
            template(value) TP_MessageReference_Type p_MessageRef,
113
            template(value) TP_Address_Type p_RecipientAddress,
113
            template(value) TP_Address_Type p_RecipientAddress,
114
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
114
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
115
        ) modifies cs_RP_DATA_dl_base := {
115
        ) modifies m_RP_DATA_dl_base := {
116
            rP_UserData := cs_RP_UserData_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)
116
            rP_UserData := m_RP_UserData_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)
117
        }
117
        }
118
118
119
119
120
        template(present) RP_DATA_ul_Type cr_RP_DATA_ul_SUBMIT := {
120
        template(present) RP_DATA_ul_Type mw_RP_DATA_ul_SUBMIT := {
121
            spare5 := '00000'B,
121
            spare5 := '00000'B,
122
            rP_MessageTypeIndicator := tsc_MT_RP_DATA_ul,
122
            rP_MessageTypeIndicator := c_MT_RP_DATA_ul,
123
            rP_MessageReference := ?,
123
            rP_MessageReference := ?,
124
            rP_OriginatorAddress := cr_RP_OriginatorAddress_ul,
124
            rP_OriginatorAddress := mw_RP_OriginatorAddress_ul,
125
            rP_DestinationAddress := cr_RP_DestinationAddress_ul,
125
            rP_DestinationAddress := mw_RP_DestinationAddress_ul,
126
            rP_UserData := cr_RP_UserData_SUBMIT
126
            rP_UserData := mw_RP_UserData_SUBMIT
127
        }
127
        }
128
128
129
        template(value) RP_ACK_Type cs_RP_ACK_SUBMIT_REPORT(
129
        template(value) RP_ACK_Type m_RP_ACK_SUBMIT_REPORT(
130
            template(value) Oct1 p_msgReference := '00'O
130
            template(value) Oct1 p_msgReference := '00'O
131
        ) := {
131
        ) := {
132
            spare5 := '00000'B,
132
            spare5 := '00000'B,
133
            rP_MessageTypeIndicator := tsc_MT_RP_ACK_dl,
133
            rP_MessageTypeIndicator := c_MT_RP_ACK_dl,
134
            rP_MessageReference := p_msgReference,
134
            rP_MessageReference := p_msgReference,
135
            rP_UserData := cs_RP_UserData_SUBMIT_REPORT
135
            rP_UserData := m_RP_UserData_SUBMIT_REPORT
136
        }
136
        }
137
137
138
        template(present) RP_ACK_Type cr_RP_ACK_DELIVER_REPORT := {
138
        template(present) RP_ACK_Type mw_RP_ACK_DELIVER_REPORT := {
139
            spare5 := '00000'B,
139
            spare5 := '00000'B,
140
            rP_MessageTypeIndicator := tsc_MT_RP_ACK_ul,
140
            rP_MessageTypeIndicator := c_MT_RP_ACK_ul,
141
            rP_MessageReference := ?,
141
            rP_MessageReference := ?,
142
            rP_UserData := cr_RP_UserData_DELIVER_REPORT
142
            rP_UserData := mw_RP_UserData_DELIVER_REPORT
143
        }
143
        }
144
144
145
        /* End SM-RP PDU Constraints */
145
        /* End SM-RP PDU Constraints */
146
        /* SM-TP Type Constraints */
146
        /* SM-TP Type Constraints */
147
        template(value) TP_ProtocolIdentifier_Type cr_TP_ProtocolIdentifier := {
147
        template(value) TP_ProtocolIdentifier_Type mw_TP_ProtocolIdentifier := {
148
            pidType := '01'B,
148
            pidType := '01'B,
149
            interworking := '0'B,
149
            interworking := '0'B,
150
            pidValue := '00000'B
150
            pidValue := '00000'B
151
        }
151
        }
152
152
153
        template(value) TP_ProtocolIdentifier_Type cs_TP_ProtocolIdentifier := {
153
        template(value) TP_ProtocolIdentifier_Type m_TP_ProtocolIdentifier := {
154
            pidType := '01'B,
154
            pidType := '01'B,
155
            interworking := '0'B,
155
            interworking := '0'B,
156
            pidValue := '00000'B
156
            pidValue := '00000'B
157
        }
157
        }
158
158
159
        template(value) TP_DataCodingScheme_Type cs_TP_DataCodingScheme := {
159
        template(value) TP_DataCodingScheme_Type m_TP_DataCodingScheme := {
160
            codingGroup := '0000'B,
160
            codingGroup := '0000'B,
161
            codeValue := '0000'B
161
            codeValue := '0000'B
162
        }
162
        }
163
163
164
        template(present) TP_Address_Type cr_TP_AddressAny := {
164
        template(present) TP_Address_Type mw_TP_AddressAny := {
165
            iel := ?,
165
            iel := ?,
166
            typeOfNumberingPlan := cr_TypeOfNumberingPlanAny,
166
            typeOfNumberingPlan := mw_TypeOfNumberingPlanAny,
167
            digits := *
167
            digits := *
168
        }
168
        }
169
169
170
        template(value) TP_Address_Type cs_TP_Address(
170
        template(value) TP_Address_Type m_TP_Address(
171
            octetstring p_Digits
171
            octetstring p_Digits
172
        ) := {
172
        ) := {
173
            iel := int2oct(2 * lengthof(p_Digits), 1),
173
            iel := int2oct(2 * lengthof(p_Digits), 1),
174
            // length is number of useful semi-octets
174
            // length is number of useful semi-octets
175
            // as p_digits is declared as octetstring the number must be even
175
            // as p_digits is declared as octetstring the number must be even
176
            typeOfNumberingPlan := cs_TypeOfNumberingPlan,
176
            typeOfNumberingPlan := m_TypeOfNumberingPlan,
177
            digits := p_Digits
177
            digits := p_Digits
178
        }
178
        }
179
179
180
        template(value) TP_ParameterIndicator_Type cs_TP_ParameterIndicator := {
180
        template(value) TP_ParameterIndicator_Type m_TP_ParameterIndicator := {
181
            extBit1 := '0'B,
181
            extBit1 := '0'B,
182
            spare4 := '0000'B,
182
            spare4 := '0000'B,
183
            tP_UDL := '0'B,
183
            tP_UDL := '0'B,
184
            tP_DCS := '0'B,
184
            tP_DCS := '0'B,
185
            tP_PID := '1'B
185
            tP_PID := '1'B
186
        }
186
        }
187
187
188
        /* End SM-TP Type Constraints */
188
        /* End SM-TP Type Constraints */
189
        /* SM-TP PDU Constraints */
189
        /* SM-TP PDU Constraints */
190
        template(value) SMS_DELIVER_Type cs_SMS_DELIVER(
190
        template(value) SMS_DELIVER_Type m_SMS_DELIVER(
191
            octetstring p_Digits
191
            octetstring p_Digits
192
        ) := {
192
        ) := {
193
            tP_ReplyPath := '0'B,
193
            tP_ReplyPath := '0'B,
194
            tP_UserDataHeaderIndicator := '0'B,
194
            tP_UserDataHeaderIndicator := '0'B,
195
            tP_StatusReportIndication := '1'B,
195
            tP_StatusReportIndication := '1'B,
196
            spare2 := '00'B,
196
            spare2 := '00'B,
197
            tP_MoreMessagesToSend := '0'B,
197
            tP_MoreMessagesToSend := '0'B,
198
            tP_MessageTypeIndicator := tsc_MT_SMS_DELIVER,
198
            tP_MessageTypeIndicator := c_MT_SMS_DELIVER,
199
            tP_OriginatingAddress := cs_TP_Address(p_Digits),
199
            tP_OriginatingAddress := m_TP_Address(p_Digits),
200
            tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
200
            tP_ProtocolIdentifier := m_TP_ProtocolIdentifier,
201
            tP_DataCodingScheme_Type := cs_TP_DataCodingScheme,
201
            tP_DataCodingScheme_Type := m_TP_DataCodingScheme,
202
            tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0),  // Time Zone 0 assumed
202
            tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0),  // Time Zone 0 assumed
203
            tP_UserDataLength := int2oct(160, 1),
203
            tP_UserDataLength := int2oct(160, 1),
204
            tP_UserData := f_IA5_2oct(tsc_Fox)
204
            tP_UserData := f_IA5_2oct(c_Fox)
205
        }
205
        }
206
206
207
        template(present) SMS_DELIVER_REPORT_Type cr_SMS_DELIVER_REPORT := {
207
        template(present) SMS_DELIVER_REPORT_Type mw_SMS_DELIVER_REPORT := {
208
            spare1 := '0'B,
208
            spare1 := '0'B,
209
            tP_UserDataHeaderIndicator := '0'B,
209
            tP_UserDataHeaderIndicator := '0'B,
210
            spare4 := '0000'B,
210
            spare4 := '0000'B,
211
            tP_MessageTypeIndicator := tsc_MT_SMS_DELIVER_REPORT,
211
            tP_MessageTypeIndicator := c_MT_SMS_DELIVER_REPORT,
212
            tP_FailureCause := omit,
212
            tP_FailureCause := omit,
213
            tP_ParameterIndicator := ?,
213
            tP_ParameterIndicator := ?,
214
            tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
214
            tP_ProtocolIdentifier := mw_TP_ProtocolIdentifier,
215
            tP_DataCodingScheme_Type := *,
215
            tP_DataCodingScheme_Type := *,
216
            tP_UserDataLength := *,
216
            tP_UserDataLength := *,
217
            tP_UserData := *
217
            tP_UserData := *
218
        }
218
        }
219
219
220
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT := {
220
        template(present) SMS_SUBMIT_Type mw_SMS_SUBMIT := {
221
            tP_ReplyPath := '0'B,
221
            tP_ReplyPath := '0'B,
222
            tP_UserDataHeaderIndicator := '0'B,
222
            tP_UserDataHeaderIndicator := '0'B,
223
            tP_StatusReportRequest := '1'B,
223
            tP_StatusReportRequest := '1'B,
224
            tP_ValidityPeriodFormat := '??'B,
224
            tP_ValidityPeriodFormat := '??'B,
225
            tP_RejectDuplicates := '0'B,
225
            tP_RejectDuplicates := '0'B,
226
            tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
226
            tP_MessageTypeIndicator := c_MT_SMS_SUBMIT,
227
            tP_MessageReference := ?,
227
            tP_MessageReference := ?,
228
            tP_DestinationAddress := cr_TP_AddressAny,
228
            tP_DestinationAddress := mw_TP_AddressAny,
229
            tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
229
            tP_ProtocolIdentifier := mw_TP_ProtocolIdentifier,
230
            tP_DataCodingScheme_Type := ?,
230
            tP_DataCodingScheme_Type := ?,
231
            tP_ValidityPeriod := *,
231
            tP_ValidityPeriod := *,
232
            tP_UserDataLength := int2oct(160, 1),
232
            tP_UserDataLength := int2oct(160, 1),
233
            tP_UserData :=
233
            tP_UserData :=
234
                ? // any data will do: 140 octets
234
                ? // any data will do: 140 octets
235
        }
235
        }
236
236
237
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_NP modifies cr_SMS_SUBMIT := {
237
        template(present) SMS_SUBMIT_Type mw_SMS_SUBMIT_VPF_NP modifies mw_SMS_SUBMIT := {
238
            tP_ValidityPeriodFormat := '00'B,
238
            tP_ValidityPeriodFormat := '00'B,
239
            tP_ValidityPeriod := omit
239
            tP_ValidityPeriod := omit
240
        }
240
        }
241
241
242
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_REF modifies cr_SMS_SUBMIT := {
242
        template(present) SMS_SUBMIT_Type mw_SMS_SUBMIT_VPF_REF modifies mw_SMS_SUBMIT := {
243
            tP_ValidityPeriodFormat := '10'B,
243
            tP_ValidityPeriodFormat := '10'B,
244
            tP_ValidityPeriod := ?
244
            tP_ValidityPeriod := ?
245
        }
245
        }
246
246
247
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ENH modifies cr_SMS_SUBMIT := {
247
        template(present) SMS_SUBMIT_Type mw_SMS_SUBMIT_VPF_ENH modifies mw_SMS_SUBMIT := {
248
            tP_ValidityPeriodFormat := '01'B,
248
            tP_ValidityPeriodFormat := '01'B,
249
            tP_ValidityPeriod := ?
249
            tP_ValidityPeriod := ?
250
        }
250
        }
251
251
252
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ABS modifies cr_SMS_SUBMIT := {
252
        template(present) SMS_SUBMIT_Type mw_SMS_SUBMIT_VPF_ABS modifies mw_SMS_SUBMIT := {
253
            tP_ValidityPeriodFormat := '11'B,
253
            tP_ValidityPeriodFormat := '11'B,
254
            tP_ValidityPeriod := ?
254
            tP_ValidityPeriod := ?
255
        }
255
        }
256
256
257
        template(value) SMS_SUBMIT_REPORT_Type cs_SMS_SUBMIT_REPORT := {
257
        template(value) SMS_SUBMIT_REPORT_Type m_SMS_SUBMIT_REPORT := {
258
            spare1 := '0'B,
258
            spare1 := '0'B,
259
            tP_UserDataHeaderIndicator := '0'B,
259
            tP_UserDataHeaderIndicator := '0'B,
260
            spare4 := '0000'B,
260
            spare4 := '0000'B,
261
            tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT_REPORT,
261
            tP_MessageTypeIndicator := c_MT_SMS_SUBMIT_REPORT,
262
            tP_FailureCause := omit,
262
            tP_FailureCause := omit,
263
            tP_ParameterIndicator := cs_TP_ParameterIndicator,
263
            tP_ParameterIndicator := m_TP_ParameterIndicator,
264
            tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0),  // Time Zone 0 assumed
264
            tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0),  // Time Zone 0 assumed
265
            tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
265
            tP_ProtocolIdentifier := m_TP_ProtocolIdentifier,
266
            tP_DataCodingScheme_Type := omit,
266
            tP_DataCodingScheme_Type := omit,
267
            tP_UserDataLength := omit,
267
            tP_UserDataLength := omit,
268
            tP_UserData := omit
268
            tP_UserData := omit
269
        }
269
        }
270
270
271
        template(value) SMS_STATUS_REPORT_Type cs_SMS_STATUS_REPORT(
271
        template(value) SMS_STATUS_REPORT_Type m_SMS_STATUS_REPORT(
272
            template(value) TP_MessageReference_Type p_MessageRef,
272
            template(value) TP_MessageReference_Type p_MessageRef,
273
            template(value) TP_Address_Type p_RA,
273
            template(value) TP_Address_Type p_RA,
274
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
274
            template(value) TP_ServiceCentreTimeStamp_Type p_SCTP
275
        ) := {
275
        ) := {
276
            // TS 34.229-1 clause A.7.5
276
            // TS 34.229-1 clause A.7.5
277
            spare1 := '0'B,
277
            spare1 := '0'B,
278
            tP_UserDataHeaderIndicator := '0'B,
278
            tP_UserDataHeaderIndicator := '0'B,
279
            tP_StatusReportQualifier := '0'B,
279
            tP_StatusReportQualifier := '0'B,
280
            spare2 := '00'B,
280
            spare2 := '00'B,
281
            tP_MoreMessagesToSend := '0'B,
281
            tP_MoreMessagesToSend := '0'B,
282
            tP_MessageTypeIndicator := tsc_MT_SMS_STATUS_REPORT,
282
            tP_MessageTypeIndicator := c_MT_SMS_STATUS_REPORT,
283
            tP_MessageReference := p_MessageRef,
283
            tP_MessageReference := p_MessageRef,
284
            tP_RecipientAddress := p_RA,
284
            tP_RecipientAddress := p_RA,
285
            tP_ServiceCentreTimeStamp := p_SCTP,
285
            tP_ServiceCentreTimeStamp := p_SCTP,
286
            tP_DischargeTime := '00000000000000'H,
286
            tP_DischargeTime := '00000000000000'H,
287
            tP_Status := {
287
            tP_Status := {
288
                reserved := '0'B,
288
                reserved := '0'B,
289
                status := '0000000'B
289
                status := '0000000'B
290
            },
290
            },
291
            tP_ParameterIndicator := cs_TP_ParameterIndicator,
291
            tP_ParameterIndicator := m_TP_ParameterIndicator,
292
            tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
292
            tP_ProtocolIdentifier := m_TP_ProtocolIdentifier,
293
            tP_DataCodingScheme_Type := omit,
293
            tP_DataCodingScheme_Type := omit,
294
            tP_UserDataLength := omit,
294
            tP_UserDataLength := omit,
295
            tP_UserData := omit
295
            tP_UserData := omit
296
        }
296
        }
297
297