Kannel: Open Source WAP and SMS gateway  svn-r5335
smpp_pdu.def
Go to the documentation of this file.
1 /* ====================================================================
2  * The Kannel Software License, Version 1.0
3  *
4  * Copyright (c) 2001-2018 Kannel Group
5  * Copyright (c) 1998-2001 WapIT Ltd.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Kannel Group (http://www.kannel.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Kannel" and "Kannel Group" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please
30  * contact org@kannel.org.
31  *
32  * 5. Products derived from this software may not be called "Kannel",
33  * nor may "Kannel" appear in their name, without prior written
34  * permission of the Kannel Group.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Kannel Group. For more information on
51  * the Kannel Group, please see <http://www.kannel.org/>.
52  *
53  * Portions of this software are based upon software originally written at
54  * WapIT Ltd., Helsinki, Finland for the Kannel project.
55  */
56 
57 /*
58  * smpp_pdu.def - definitions of SMPP PDU structure
59  *
60  * Lars Wirzenius
61  * Daniel Lukic <lukic@vivatech.de>:
62  * Initial optional parameters implementation.
63  * Alexander Malysh <a.malysh@centrium.de>:
64  * Extended optional parameters implementation.
65  * Stipe Tolj <stolj at kannel.org>:
66  * Adding SMPP v5.0 PDUs
67  */
68 
69 
70 #include "smpp_pdu_opt.def"
71 
72 
73 #ifndef PDU
74 #error Macro PDU not defined.
75 #endif
76 
77 #ifndef INTEGER
78 #error Macro INTEGER not defined.
79 #endif
80 
81 #ifndef NULTERMINATED
82 #error Macro NULTERMINATED not defined.
83 #endif
84 
85 #ifndef OCTETS
86 #error Macro OCTETS not defined.
87 #endif
88 
89 #ifndef OPTIONAL_BEGIN
90 #error Macro OPTIONAL_BEGIN not defined.
91 #endif
92 
93 #ifndef TLV_INTEGER
94 #error Macro TLV_INTEGER not defined.
95 #endif
96 
97 #ifndef TLV_NULTERMINATED
98 #error Macro TLV_NULTERMINATED not defined.
99 #endif
100 
101 #ifndef TLV_OCTETS
102 #error Macro TLV_OCTETS not defined.
103 #endif
104 
105 #ifndef OPTIONAL_END
106 #error Macro OPTIONAL_END not defined.
107 #endif
108 
109 /*
110  * All SMPP PDUs have a common header consisting of four integers.
111  * The first integer, command_length, is dealt with implicitly by
112  * the I/O stuff, so we don't store it in the PDU data structure.
113  * The other three are defined in the HEADER macro.
114  */
115 #ifdef HEADER
116 #error Macro HEADER was already defined.
117 #endif
118 #define HEADER \
119  INTEGER(command_id, 4) \
120  INTEGER(command_status, 4) \
121  INTEGER(sequence_number, 4)
122 
123 /*
124  * PDUs defined in SMPP v3.4
125  */
126 PDU(bind_transmitter,
127  0x00000002,
128  HEADER
129  NULTERMINATED(system_id, 16)
130  NULTERMINATED(password, 9)
131  NULTERMINATED(system_type, 13)
132  INTEGER(interface_version, 1)
133  INTEGER(addr_ton, 1)
134  INTEGER(addr_npi, 1)
135  NULTERMINATED(address_range, 41)
136 )
137 
138 PDU(bind_transmitter_resp,
139  0x80000002,
140  HEADER
141  NULTERMINATED(system_id, 16)
142  OPTIONAL_BEGIN
143  TLV_INTEGER(sc_interface_version, 1)
144  OPTIONAL_END
145 )
146 
147 PDU(bind_receiver,
148  0x00000001,
149  HEADER
150  NULTERMINATED(system_id, 16)
151  NULTERMINATED(password, 9)
152  NULTERMINATED(system_type, 13)
153  INTEGER(interface_version, 1)
154  INTEGER(addr_ton, 1)
155  INTEGER(addr_npi, 1)
156  NULTERMINATED(address_range, 41)
157 )
158 
159 PDU(bind_receiver_resp,
160  0x80000001,
161  HEADER
162  NULTERMINATED(system_id, 16)
163  OPTIONAL_BEGIN
164  TLV_INTEGER(sc_interface_version, 1)
165  OPTIONAL_END
166 )
167 
168 PDU(bind_transceiver,
169  0x00000009,
170  HEADER
171  NULTERMINATED(system_id, 16)
172  NULTERMINATED(password, 9)
173  NULTERMINATED(system_type, 13)
174  INTEGER(interface_version, 1)
175  INTEGER(addr_ton, 1)
176  INTEGER(addr_npi, 1)
177  NULTERMINATED(address_range, 41)
178 )
179 
180 PDU(bind_transceiver_resp,
181  0x80000009,
182  HEADER
183  NULTERMINATED(system_id, 16)
184  OPTIONAL_BEGIN
185  TLV_INTEGER(sc_interface_version, 1)
186  OPTIONAL_END
187 )
188 
189 PDU(outbind,
190  0x0000000B,
191  HEADER
192  NULTERMINATED(system_id, 16)
193  NULTERMINATED(password, 9)
194 )
195 
196 PDU(unbind,
197  0x00000006,
198  HEADER
199 )
200 
201 PDU(unbind_resp,
202  0x80000006,
203  HEADER
204 )
205 
206 PDU(generic_nack,
207  0x80000000,
208  HEADER
209 )
210 
211 PDU(submit_sm,
212  0x00000004,
213  HEADER
214  NULTERMINATED(service_type, 6)
215  INTEGER(source_addr_ton, 1)
216  INTEGER(source_addr_npi, 1)
217  NULTERMINATED(source_addr, 21)
218  INTEGER(dest_addr_ton, 1)
219  INTEGER(dest_addr_npi, 1)
220  NULTERMINATED(destination_addr, 21)
221  INTEGER(esm_class, 1)
222  INTEGER(protocol_id, 1)
223  INTEGER(priority_flag, 1)
224  NULTERMINATED(schedule_delivery_time, 17)
225  NULTERMINATED(validity_period, 17)
226  INTEGER(registered_delivery, 1)
227  INTEGER(replace_if_present_flag, 1)
228  INTEGER(data_coding, 1)
229  INTEGER(sm_default_msg_id, 1)
230  INTEGER(sm_length, 1)
231  OCTETS(short_message, sm_length)
232  OPTIONAL_BEGIN
233  /* defined in SMPP v3.4 */
234  TLV_INTEGER(user_message_reference, 2)
235  TLV_INTEGER(source_port, 2)
236  TLV_INTEGER(source_addr_subunit, 1)
237  TLV_INTEGER(destination_port, 2) /* renamed to 'dest_port' in SMPP v5.0 ?? */
238  TLV_INTEGER(dest_addr_subunit, 1)
239  TLV_INTEGER(sar_msg_ref_num, 2)
240  TLV_INTEGER(sar_total_segments, 1)
241  TLV_INTEGER(sar_segment_seqnum, 1)
242  TLV_INTEGER(more_messages_to_send, 1)
243  TLV_INTEGER(payload_type, 1)
244  TLV_OCTETS(message_payload, 0, 65536)
245  TLV_INTEGER(privacy_indicator, 1)
246  TLV_OCTETS(callback_num, 4, 19)
247  TLV_INTEGER(callback_num_pres_ind, 1)
248  TLV_OCTETS(callback_num_atag, 0, 65)
249  TLV_OCTETS(source_subaddress, 2, 23)
250  TLV_OCTETS(dest_subaddress, 2, 23)
251  TLV_INTEGER(user_response_code, 1)
252  TLV_INTEGER(display_time, 1)
253  TLV_INTEGER(sms_signal, 2)
254  TLV_INTEGER(ms_validity, 1)
255  TLV_INTEGER(ms_msg_wait_facilities, 1)
256  TLV_INTEGER(number_of_messages, 1)
257  TLV_INTEGER(alert_on_message_delivery, 0)
258  TLV_INTEGER(language_indicator, 1)
259  TLV_INTEGER(its_reply_type, 1)
260  TLV_OCTETS(its_session_info, 2, 2)
261  TLV_OCTETS(ussd_service_op, 1, 1)
262  /* added in SMPP v5.0 */
263  TLV_OCTETS(billing_identification, 1, 1024)
264  TLV_INTEGER(dest_addr_np_country, 5)
265  TLV_OCTETS(dest_addr_np_information, 10, 10)
266  TLV_INTEGER(dest_addr_np_resolution, 1)
267  TLV_INTEGER(dest_bearer_type, 1)
268  TLV_NULTERMINATED(dest_network_id, 65)
269  TLV_INTEGER(dest_network_type, 1)
270  TLV_OCTETS(dest_node_id, 6, 6)
271  TLV_INTEGER(dest_telematics_id, 2)
272  TLV_INTEGER(qos_time_to_live, 4)
273  TLV_INTEGER(set_dpf, 1)
274  TLV_INTEGER(source_bearer_type, 1)
275  TLV_NULTERMINATED(source_network_id, 65)
276  TLV_INTEGER(source_network_type, 1)
277  TLV_OCTETS(source_node_id, 6, 6)
278  TLV_INTEGER(source_telematics_id, 1)
279  OPTIONAL_END
280 )
281 
282 PDU(submit_sm_resp,
283  0x80000004,
284  HEADER
285  NULTERMINATED(message_id, 65)
286  OPTIONAL_BEGIN
287  /* added in SMPP v5.0 */
288  TLV_NULTERMINATED(additional_status_info_text, 256)
289  TLV_INTEGER(delivery_failure_reason, 1)
290  TLV_INTEGER(dpf_result, 1)
291  TLV_OCTETS(network_error_code, 3, 3)
292  OPTIONAL_END
293 )
294 
295 PDU(submit_multi,
296  0x00000021,
297  HEADER
298  NULTERMINATED(service_type, 6)
299  INTEGER(source_addr_ton, 1)
300  INTEGER(source_addr_npi, 1)
301  NULTERMINATED(source_addr, 21)
302  INTEGER(number_of_dests, 1)
303  NULTERMINATED(dest_address_es, 254 * 24)
304  INTEGER(esm_class, 1)
305  INTEGER(protocol_id, 1)
306  INTEGER(priority_flag, 1)
307  NULTERMINATED(schedule_delivery_time, 17)
308  NULTERMINATED(validity_period, 17)
309  INTEGER(registered_delivery, 1)
310  INTEGER(replace_if_present_flag, 1)
311  INTEGER(data_coding, 1)
312  INTEGER(sm_default_msg_id, 1)
313  INTEGER(sm_length, 1)
314  OCTETS(short_message, sm_length)
315  OPTIONAL_BEGIN
316  /* defined in SMPP v3.4 */
317  TLV_INTEGER(user_message_reference, 2)
318  TLV_INTEGER(source_port, 2)
319  TLV_INTEGER(source_addr_subunit, 1)
320  TLV_INTEGER(destination_port, 2)
321  TLV_INTEGER(dest_addr_subunit, 1)
322  TLV_INTEGER(sar_msg_ref_num, 2)
323  TLV_INTEGER(sar_total_segments, 1)
324  TLV_INTEGER(sar_segment_seqnum, 1)
325  TLV_INTEGER(payload_type, 1)
326  TLV_OCTETS(message_payload, 0, 65536)
327  TLV_INTEGER(privacy_indicator, 1)
328  TLV_OCTETS(callback_num, 4, 19)
329  TLV_INTEGER(callback_num_pres_ind, 1)
330  TLV_OCTETS(callback_num_atag, 0, 65)
331  TLV_OCTETS(source_subaddress, 2, 23)
332  TLV_OCTETS(dest_subaddress, 2, 23)
333  TLV_INTEGER(display_time, 1)
334  TLV_INTEGER(sms_signal, 2)
335  TLV_INTEGER(ms_validity, 1)
336  TLV_INTEGER(ms_msg_wait_facilities, 1)
337  TLV_INTEGER(alert_on_message_delivery, 0)
338  TLV_INTEGER(language_indicator, 1)
339  /* added in SMPP v5.0 */
340  TLV_OCTETS(billing_identification, 1, 1024)
341  TLV_INTEGER(dest_addr_np_country, 5)
342  TLV_OCTETS(dest_addr_np_information, 10, 10)
343  TLV_INTEGER(dest_addr_np_resolution, 1)
344  TLV_INTEGER(dest_bearer_type, 1)
345  TLV_NULTERMINATED(dest_network_id, 65)
346  TLV_INTEGER(dest_network_type, 1)
347  TLV_OCTETS(dest_node_id, 6, 6)
348  TLV_INTEGER(dest_telematics_id, 2)
349  TLV_INTEGER(its_reply_type, 1)
350  TLV_OCTETS(its_session_info, 2, 2)
351  TLV_INTEGER(more_messages_to_send, 1)
352  TLV_INTEGER(number_of_messages, 1)
353  TLV_INTEGER(qos_time_to_live, 4)
354  TLV_INTEGER(set_dpf, 1)
355  TLV_INTEGER(source_bearer_type, 1)
356  TLV_NULTERMINATED(source_network_id, 65)
357  TLV_INTEGER(source_network_type, 1)
358  TLV_OCTETS(source_node_id, 6, 6)
359  TLV_INTEGER(source_telematics_id, 1)
360  TLV_INTEGER(user_response_code, 1)
361  OPTIONAL_END
362 )
363 
364 PDU(submit_multi_resp,
365  0x80000021,
366  HEADER
367  NULTERMINATED(message_id, 65)
368  INTEGER(no_unsuccess, 1)
369  //VAR_OCTETS(unsuccess_sme, 6, 27)
370  //OCTETS(unsuccess_sme, 27)
371  OPTIONAL_BEGIN
372  /* added in SMPP v5.0 */
373  TLV_NULTERMINATED(additional_status_info_text, 256)
374  TLV_INTEGER(delivery_failure_reason, 1)
375  TLV_INTEGER(dpf_result, 1)
376  TLV_OCTETS(network_error_code, 3, 3)
377  OPTIONAL_END
378 )
379 
380 PDU(deliver_sm,
381  0x00000005,
382  HEADER
383  NULTERMINATED(service_type, 6)
384  INTEGER(source_addr_ton, 1)
385  INTEGER(source_addr_npi, 1)
386  NULTERMINATED(source_addr, 21)
387  INTEGER(dest_addr_ton, 1)
388  INTEGER(dest_addr_npi, 1)
389  NULTERMINATED(destination_addr, 21)
390  INTEGER(esm_class, 1)
391  INTEGER(protocol_id, 1)
392  INTEGER(priority_flag, 1)
393  NULTERMINATED(schedule_delivery_time, 17)
394  NULTERMINATED(validity_period, 17)
395  INTEGER(registered_delivery, 1)
396  INTEGER(replace_if_present_flag, 1)
397  INTEGER(data_coding, 1)
398  INTEGER(sm_default_msg_id, 1)
399  INTEGER(sm_length, 1)
400  OCTETS(short_message, sm_length)
401  OPTIONAL_BEGIN
402  /* defined in SMPP v3.4 */
403  TLV_INTEGER(user_message_reference, 2)
404  TLV_INTEGER(source_port, 2)
405  TLV_INTEGER(destination_port, 2) /* renamed to 'dest_port' in SMPP v5.0 ?? */
406  TLV_INTEGER(sar_msg_ref_num, 2)
407  TLV_INTEGER(sar_total_segments, 1)
408  TLV_INTEGER(sar_segment_seqnum, 1)
409  TLV_INTEGER(user_response_code, 1)
410  TLV_INTEGER(privacy_indicator, 1)
411  TLV_INTEGER(payload_type, 1)
412  TLV_OCTETS(message_payload, 0, 65536)
413  TLV_OCTETS(callback_num, 4, 19)
414  TLV_OCTETS(source_subaddress, 2, 23)
415  TLV_OCTETS(dest_subaddress, 2, 23)
416  TLV_INTEGER(language_indicator, 1)
417  TLV_OCTETS(its_session_info, 2, 2)
418  TLV_OCTETS(network_error_code, 3, 3)
419  TLV_INTEGER(message_state, 1)
420  TLV_NULTERMINATED(receipted_message_id, 65)
421  /* added in SMPP v5.0 */
422  TLV_OCTETS(callback_num_atag, 0, 65)
423  TLV_INTEGER(callback_num_pres_ind, 1)
424  TLV_INTEGER(dest_addr_np_country, 5)
425  TLV_OCTETS(dest_addr_np_information, 10, 10)
426  TLV_INTEGER(dest_addr_np_resolution, 1)
427  TLV_INTEGER(dest_addr_subunit, 1)
428  TLV_NULTERMINATED(dest_network_id, 65)
429  TLV_INTEGER(dpf_result, 1)
430  TLV_INTEGER(its_reply_type, 1)
431  TLV_INTEGER(source_addr_subunit, 1)
432  TLV_NULTERMINATED(source_network_id, 65)
433  TLV_OCTETS(source_node_id, 6, 6)
434  TLV_OCTETS(ussd_service_op, 1, 1)
435  OPTIONAL_END
436 )
437 
438 PDU(deliver_sm_resp,
439  0x80000005,
440  HEADER
441  NULTERMINATED(message_id, 1)
442  OPTIONAL_BEGIN
443  /* added in SMPP v5.0 */
444  TLV_NULTERMINATED(additional_status_info_text, 256)
445  TLV_INTEGER(delivery_failure_reason, 1)
446  TLV_OCTETS(network_error_code, 3, 3)
447  OPTIONAL_END
448 )
449 
450 PDU(data_sm,
451  0x00000103,
452  HEADER
453  NULTERMINATED(service_type, 6)
454  INTEGER(source_addr_ton, 1)
455  INTEGER(source_addr_npi, 1)
456  NULTERMINATED(source_addr, 65)
457  INTEGER(dest_addr_ton, 1)
458  INTEGER(dest_addr_npi, 1)
459  NULTERMINATED(destination_addr, 65)
460  INTEGER(esm_class, 1)
461  INTEGER(registered_delivery, 1)
462  INTEGER(data_coding, 1)
463  OPTIONAL_BEGIN
464  /* defined in SMPP v3.4 */
465  TLV_INTEGER(source_port, 2)
466  TLV_INTEGER(source_addr_subunit, 1)
467  TLV_INTEGER(source_network_type, 1)
468  TLV_INTEGER(source_bearer_type, 1)
469  TLV_INTEGER(source_telematics_id, 1)
470  TLV_INTEGER(destination_port, 2)
471  TLV_INTEGER(dest_addr_subunit, 1)
472  TLV_INTEGER(dest_network_type, 1)
473  TLV_INTEGER(dest_bearer_type, 1)
474  TLV_INTEGER(dest_telematics_id, 2)
475  TLV_INTEGER(sar_msg_ref_num, 2)
476  TLV_INTEGER(sar_total_segments, 1)
477  TLV_INTEGER(sar_segment_seqnum, 1)
478  TLV_INTEGER(more_messages_to_send, 1)
479  TLV_INTEGER(qos_time_to_live, 4)
480  TLV_INTEGER(payload_type, 1)
481  TLV_OCTETS(message_payload, 0, 65536)
482  TLV_INTEGER(set_dpf, 1)
483  TLV_NULTERMINATED(receipted_message_id, 65)
484  TLV_INTEGER(message_state, 1)
485  TLV_OCTETS(network_error_code, 3, 3)
486  TLV_INTEGER(user_message_reference, 2)
487  TLV_INTEGER(privacy_indicator, 1)
488  TLV_OCTETS(callback_num, 4, 19)
489  TLV_INTEGER(callback_num_pres_ind, 1)
490  TLV_OCTETS(callback_num_atag, 0, 65)
491  TLV_OCTETS(source_subaddress, 2, 23)
492  TLV_OCTETS(dest_subaddress, 2, 23)
493  TLV_INTEGER(user_response_code, 1)
494  TLV_INTEGER(display_time, 1)
495  TLV_INTEGER(sms_signal, 2)
496  TLV_INTEGER(ms_validity, 1)
497  TLV_INTEGER(ms_msg_wait_facilities, 1)
498  TLV_INTEGER(number_of_messages, 1)
499  TLV_INTEGER(alert_on_message_delivery, 0)
500  TLV_INTEGER(language_indicator, 1)
501  TLV_INTEGER(its_reply_type, 1)
502  TLV_OCTETS(its_session_info, 2, 2)
503  /* added in SMPP v5.0 */
504  TLV_OCTETS(billing_identification, 1, 1024)
505  TLV_INTEGER(dest_addr_np_country, 5)
506  TLV_OCTETS(dest_addr_np_information, 10, 10)
507  TLV_INTEGER(dest_addr_np_resolution, 1)
508  TLV_NULTERMINATED(dest_network_id, 65)
509  TLV_OCTETS(dest_node_id, 6, 6)
510  TLV_NULTERMINATED(source_network_id, 65)
511  TLV_OCTETS(source_node_id, 6, 6)
512  TLV_OCTETS(ussd_service_op, 1, 1)
513  OPTIONAL_END
514 )
515 
516 PDU(data_sm_resp,
517  0x80000103,
518  HEADER
519  NULTERMINATED(message_id, 65)
520  OPTIONAL_BEGIN
521  /* defined in SMPP v3.4 */
522  TLV_NULTERMINATED(additional_status_info_text, 256)
523  TLV_INTEGER(delivery_failure_reason, 1)
524  TLV_INTEGER(dpf_result, 1)
525  TLV_OCTETS(network_error_code, 3, 3)
526  OPTIONAL_END
527 )
528 
529 PDU(query_sm,
530  0x00000003,
531  HEADER
532  NULTERMINATED(message_id, 65)
533  INTEGER(source_addr_ton, 1)
534  INTEGER(source_addr_npi, 1)
535  NULTERMINATED(source_addr, 21)
536 )
537 
538 PDU(query_sm_resp,
539  0x80000003,
540  HEADER
541  NULTERMINATED(message_id, 65)
542  NULTERMINATED(final_date, 17)
543  INTEGER(message_state, 1)
544  INTEGER(error_code, 1)
545 )
546 
547 PDU(cancel_sm,
548  0x00000008,
549  HEADER
550  NULTERMINATED(service_type, 6)
551  NULTERMINATED(message_id, 65)
552  INTEGER(source_addr_ton, 1)
553  INTEGER(source_addr_npi, 1)
554  NULTERMINATED(source_addr, 21)
555  INTEGER(dest_addr_ton, 1)
556  INTEGER(dest_addr_npi, 1)
557  NULTERMINATED(destination_addr, 65)
558 )
559 
560 PDU(cancel_sm_resp,
561  0x80000008,
562  HEADER
563 )
564 
565 PDU(replace_sm,
566  0x00000007,
567  HEADER
568  NULTERMINATED(service_type, 6)
569  NULTERMINATED(message_id, 65)
570  INTEGER(source_addr_ton, 1)
571  INTEGER(source_addr_npi, 1)
572  NULTERMINATED(source_addr, 21)
573  NULTERMINATED(schedule_delivery_time, 17)
574  NULTERMINATED(validity_period, 17)
575  INTEGER(registered_delivery, 1)
576  INTEGER(sm_default_msg_id, 1)
577  INTEGER(sm_length, 1)
578  OCTETS(short_message, sm_length)
579  OPTIONAL_BEGIN
580  /* added in SMPP v5.0 */
581  TLV_OCTETS(message_payload, 0, 65536)
582  OPTIONAL_END
583 )
584 
585 PDU(replace_sm_resp,
586  0x80000007,
587  HEADER
588 )
589 
590 PDU(enquire_link,
591  0x00000015,
592  HEADER
593 )
594 
595 PDU(enquire_link_resp,
596  0x80000015,
597  HEADER
598 )
599 
600 PDU(alert_notification,
601  0x00000102,
602  HEADER
603  INTEGER(source_addr_ton, 1)
604  INTEGER(source_addr_npi, 1)
605  NULTERMINATED(source_addr, 21)
606  INTEGER(esme_addr_ton, 1)
607  INTEGER(esme_addr_npi, 1)
608  NULTERMINATED(esme_addr, 65)
609  OPTIONAL_BEGIN
610  /* defined in SMPP v3.4 */
611  TLV_INTEGER(ms_availability_status, 1)
612  OPTIONAL_END
613 )
614 
615 /*
616  * PDUs defined in SMPP v5.0
617  */
618 PDU(broadcast_sm,
619  0x00000111,
620  HEADER
621  NULTERMINATED(service_type, 6)
622  INTEGER(source_addr_ton, 1)
623  INTEGER(source_addr_npi, 1)
624  NULTERMINATED(source_addr, 21)
625  NULTERMINATED(message_id, 65)
626  INTEGER(priority_flag, 1)
627  NULTERMINATED(schedule_delivery_time, 17)
628  NULTERMINATED(validity_period, 17)
629  INTEGER(registered_delivery, 1)
630  INTEGER(replace_if_present_flag, 1)
631  INTEGER(data_coding, 1)
632  INTEGER(sm_default_msg_id, 1)
633  OPTIONAL_BEGIN
634  TLV_OCTETS(broadcast_area_identifier, 1, 101)
635  TLV_OCTETS(broadcast_content_type, 3, 3)
636  TLV_OCTETS(broadcast_rep_num, 3, 3)
637  TLV_OCTETS(broadcast_frequency_interval, 3, 3)
638  //OPTIONAL_BEGIN
639  TLV_INTEGER(alert_on_message_delivery, 0)
640  TLV_INTEGER(broadcast_channel_indicator, 1)
641  TLV_OCTETS(broadcast_content_type_info, 1, 254)
642  TLV_INTEGER(broadcast_message_class, 1)
643  TLV_OCTETS(broadcast_service_group, 1, 254)
644  TLV_OCTETS(callback_num, 4, 19)
645  TLV_OCTETS(callback_num_atag, 0, 65)
646  TLV_INTEGER(callback_num_pres_ind, 1)
647  TLV_INTEGER(dest_addr_subunit, 1)
648  TLV_OCTETS(dest_subaddress, 2, 23)
649  TLV_INTEGER(destination_port, 2) /* called 'dest_port' in SMPP v5.0 spec?? */
650  TLV_INTEGER(display_time, 1)
651  TLV_INTEGER(language_indicator, 1)
652  TLV_OCTETS(message_payload, 0, 65536)
653  TLV_INTEGER(ms_validity, 1)
654  TLV_INTEGER(payload_type, 1)
655  TLV_INTEGER(privacy_indicator, 1)
656  TLV_INTEGER(sms_signal, 2)
657  TLV_INTEGER(source_addr_subunit, 1)
658  TLV_INTEGER(source_port, 2)
659  TLV_OCTETS(source_subaddress, 2, 23)
660  TLV_INTEGER(user_message_reference, 2)
661  OPTIONAL_END
662 )
663 
664 PDU(broadcast_sm_resp,
665  0x80000111,
666  HEADER
667  NULTERMINATED(message_id, 65)
668  OPTIONAL_BEGIN
669  TLV_INTEGER(broadcast_error_status, 4)
670  TLV_OCTETS(failed_broadcast_area_identifier, 1, 101)
671  OPTIONAL_END
672 )
673 
674 PDU(query_broadcast_sm,
675  0x00000112,
676  HEADER
677  NULTERMINATED(message_id, 65)
678  INTEGER(source_addr_ton, 1)
679  INTEGER(source_addr_npi, 1)
680  NULTERMINATED(source_addr, 21)
681  OPTIONAL_BEGIN
682  TLV_INTEGER(user_message_reference, 2)
683  OPTIONAL_END
684 )
685 
686 PDU(query_broadcast_sm_resp,
687  0x80000112,
688  HEADER
689  NULTERMINATED(message_id, 65)
690  OPTIONAL_BEGIN
691  TLV_INTEGER(message_state, 1)
692  TLV_OCTETS(broadcast_area_identifier, 1, 101)
693  TLV_INTEGER(broadcast_area_success, 1)
694  //OPTIONAL_BEGIN
695  TLV_NULTERMINATED(broadcast_end_time, 16)
696  TLV_INTEGER(user_message_reference, 2)
697  OPTIONAL_END
698 )
699 
700 PDU(cancel_broadcast_sm,
701  0x00000113,
702  HEADER
703  NULTERMINATED(service_type, 6)
704  NULTERMINATED(message_id, 65)
705  INTEGER(source_addr_ton, 1)
706  INTEGER(source_addr_npi, 1)
707  NULTERMINATED(source_addr, 21)
708  OPTIONAL_BEGIN
709  TLV_OCTETS(broadcast_content_type, 3, 3)
710  TLV_INTEGER(user_message_reference, 2)
711  OPTIONAL_END
712 )
713 
714 PDU(cancel_broadcast_sm_resp,
715  0x80000113,
716  HEADER
717 )
718 
719 #undef PDU
720 #undef INTEGER
721 #undef NULTERMINATED
722 #undef OCTETS
723 #undef HEADER
724 #undef OPTIONAL_BEGIN
725 #undef TLV_INTEGER
726 #undef TLV_NULTERMINATED
727 #undef TLV_OCTETS
728 #undef OPTIONAL_END
729 
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.