anthill_smpp_ruby 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. data/MIT-LICENSE +21 -0
  2. data/README +30 -0
  3. data/anthill_smpp_ruby.gemspec +18 -0
  4. data/changelog +43 -0
  5. data/data/dumps/random_command.dump +1 -0
  6. data/data/dumps/smpp_alert_notification.dump +1 -0
  7. data/data/dumps/smpp_bind_receiver.dump +1 -0
  8. data/data/dumps/smpp_bind_receiver_resp.dump +1 -0
  9. data/data/dumps/smpp_bind_transceiver.dump +1 -0
  10. data/data/dumps/smpp_bind_transceiver_1.dump +2 -0
  11. data/data/dumps/smpp_bind_transceiver_resp.dump +1 -0
  12. data/data/dumps/smpp_bind_transmitter.dump +1 -0
  13. data/data/dumps/smpp_bind_transmitter_resp.dump +1 -0
  14. data/data/dumps/smpp_broadcast_sm.dump +1 -0
  15. data/data/dumps/smpp_broadcast_sm_resp.dump +1 -0
  16. data/data/dumps/smpp_cancel_broadcast_sm.dump +1 -0
  17. data/data/dumps/smpp_cancel_broadcast_sm_resp.dump +1 -0
  18. data/data/dumps/smpp_cancel_sm.dump +1 -0
  19. data/data/dumps/smpp_cancel_sm_resp.dump +1 -0
  20. data/data/dumps/smpp_data_sm.dump +1 -0
  21. data/data/dumps/smpp_data_sm_resp.dump +1 -0
  22. data/data/dumps/smpp_deliver_sm.dump +1 -0
  23. data/data/dumps/smpp_deliver_sm_resp.dump +1 -0
  24. data/data/dumps/smpp_enquire_link.dump +1 -0
  25. data/data/dumps/smpp_enquire_link_resp.dump +1 -0
  26. data/data/dumps/smpp_generic_nack.dump +1 -0
  27. data/data/dumps/smpp_outbind.dump +1 -0
  28. data/data/dumps/smpp_query_broadcast_sm.dump +1 -0
  29. data/data/dumps/smpp_query_broadcast_sm_resp.dump +1 -0
  30. data/data/dumps/smpp_query_broadcast_sm_resp_1.dump +1 -0
  31. data/data/dumps/smpp_query_sm.dump +1 -0
  32. data/data/dumps/smpp_query_sm_resp.dump +1 -0
  33. data/data/dumps/smpp_replace_sm.dump +1 -0
  34. data/data/dumps/smpp_replace_sm_resp.dump +1 -0
  35. data/data/dumps/smpp_submit_multi.dump +1 -0
  36. data/data/dumps/smpp_submit_multi_resp.dump +1 -0
  37. data/data/dumps/smpp_submit_sm.dump +1 -0
  38. data/data/dumps/smpp_submit_sm_resp.dump +1 -0
  39. data/data/dumps/smpp_unbind.dump +1 -0
  40. data/data/dumps/smpp_unbind_resp.dump +1 -0
  41. data/data/pdus/random_command.xml +35 -0
  42. data/data/pdus/smpp_alert_notification.xml +14 -0
  43. data/data/pdus/smpp_alert_notification_no_optional.xml +13 -0
  44. data/data/pdus/smpp_bind_receiver.xml +17 -0
  45. data/data/pdus/smpp_bind_receiver_resp.xml +12 -0
  46. data/data/pdus/smpp_bind_receiver_resp_no_optional.xml +11 -0
  47. data/data/pdus/smpp_bind_transceiver.xml +17 -0
  48. data/data/pdus/smpp_bind_transceiver_resp.xml +12 -0
  49. data/data/pdus/smpp_bind_transceiver_resp_no_optional.xml +11 -0
  50. data/data/pdus/smpp_bind_transmitter.xml +17 -0
  51. data/data/pdus/smpp_bind_transmitter_resp.xml +12 -0
  52. data/data/pdus/smpp_bind_transmitter_resp_no_optional.xml +11 -0
  53. data/data/pdus/smpp_broadcast_sm.xml +47 -0
  54. data/data/pdus/smpp_broadcast_sm_no_optional.xml +26 -0
  55. data/data/pdus/smpp_broadcast_sm_resp.xml +14 -0
  56. data/data/pdus/smpp_broadcast_sm_resp_no_optional.xml +8 -0
  57. data/data/pdus/smpp_cancel_broadcast_sm.xml +17 -0
  58. data/data/pdus/smpp_cancel_broadcast_sm_no_optional.xml +15 -0
  59. data/data/pdus/smpp_cancel_broadcast_sm_resp.xml +7 -0
  60. data/data/pdus/smpp_cancel_sm.xml +18 -0
  61. data/data/pdus/smpp_cancel_sm_resp.xml +10 -0
  62. data/data/pdus/smpp_commands.xsd +914 -0
  63. data/data/pdus/smpp_data_sm.xml +58 -0
  64. data/data/pdus/smpp_data_sm_no_optional.xml +17 -0
  65. data/data/pdus/smpp_data_sm_resp.xml +15 -0
  66. data/data/pdus/smpp_data_sm_resp_no_optional.xml +8 -0
  67. data/data/pdus/smpp_deliver_sm.xml +46 -0
  68. data/data/pdus/smpp_deliver_sm_no_optional.xml +25 -0
  69. data/data/pdus/smpp_deliver_sm_resp.xml +14 -0
  70. data/data/pdus/smpp_deliver_sm_resp_no_optional.xml +8 -0
  71. data/data/pdus/smpp_enquire_link.xml +10 -0
  72. data/data/pdus/smpp_enquire_link_resp.xml +10 -0
  73. data/data/pdus/smpp_generic_nack.xml +10 -0
  74. data/data/pdus/smpp_outbind.xml +12 -0
  75. data/data/pdus/smpp_query_broadcast_sm.xml +12 -0
  76. data/data/pdus/smpp_query_broadcast_sm_no_optional.xml +11 -0
  77. data/data/pdus/smpp_query_broadcast_sm_resp.xml +17 -0
  78. data/data/pdus/smpp_query_broadcast_sm_resp_no_optional.xml +15 -0
  79. data/data/pdus/smpp_query_sm.xml +11 -0
  80. data/data/pdus/smpp_query_sm_resp.xml +11 -0
  81. data/data/pdus/smpp_replace_sm.xml +18 -0
  82. data/data/pdus/smpp_replace_sm_no_optional.xml +17 -0
  83. data/data/pdus/smpp_replace_sm_resp.xml +7 -0
  84. data/data/pdus/smpp_submit_multi.xml +73 -0
  85. data/data/pdus/smpp_submit_multi_no_optional.xml +51 -0
  86. data/data/pdus/smpp_submit_multi_resp.xml +35 -0
  87. data/data/pdus/smpp_submit_sm.xml +57 -0
  88. data/data/pdus/smpp_submit_sm_no_optional.xml +28 -0
  89. data/data/pdus/smpp_submit_sm_resp.xml +8 -0
  90. data/data/pdus/smpp_unbind.xml +10 -0
  91. data/data/pdus/smpp_unbind_resp.xml +10 -0
  92. data/examples/dump_viewer.rb +298 -0
  93. data/examples/pdu_composer.rb +1331 -0
  94. data/knownbugs +24 -0
  95. data/lib/anthill_smpp_ruby.rb +83 -0
  96. data/lib/i_smpp_outputter.rb +425 -0
  97. data/lib/pdu/smpp_alert_notification.rb +132 -0
  98. data/lib/pdu/smpp_bind.rb +102 -0
  99. data/lib/pdu/smpp_bind_receiver.rb +29 -0
  100. data/lib/pdu/smpp_bind_receiver_resp.rb +30 -0
  101. data/lib/pdu/smpp_bind_resp.rb +100 -0
  102. data/lib/pdu/smpp_bind_transceiver.rb +29 -0
  103. data/lib/pdu/smpp_bind_transceiver_resp.rb +31 -0
  104. data/lib/pdu/smpp_bind_transmitter.rb +29 -0
  105. data/lib/pdu/smpp_bind_transmitter_resp.rb +30 -0
  106. data/lib/pdu/smpp_broadcast_sm.rb +566 -0
  107. data/lib/pdu/smpp_broadcast_sm_resp.rb +130 -0
  108. data/lib/pdu/smpp_cancel_broadcast_sm.rb +143 -0
  109. data/lib/pdu/smpp_cancel_broadcast_sm_resp.rb +60 -0
  110. data/lib/pdu/smpp_cancel_sm.rb +110 -0
  111. data/lib/pdu/smpp_cancel_sm_resp.rb +60 -0
  112. data/lib/pdu/smpp_data_sm.rb +679 -0
  113. data/lib/pdu/smpp_data_sm_resp.rb +148 -0
  114. data/lib/pdu/smpp_deliver_sm.rb +458 -0
  115. data/lib/pdu/smpp_deliver_sm_resp.rb +137 -0
  116. data/lib/pdu/smpp_enquire_link.rb +59 -0
  117. data/lib/pdu/smpp_enquire_link_resp.rb +61 -0
  118. data/lib/pdu/smpp_generic_nack.rb +61 -0
  119. data/lib/pdu/smpp_outbind.rb +71 -0
  120. data/lib/pdu/smpp_pdu.rb +90 -0
  121. data/lib/pdu/smpp_query_broadcast_sm.rb +120 -0
  122. data/lib/pdu/smpp_query_broadcast_sm_resp.rb +192 -0
  123. data/lib/pdu/smpp_query_sm.rb +92 -0
  124. data/lib/pdu/smpp_query_sm_resp.rb +92 -0
  125. data/lib/pdu/smpp_replace_sm.rb +172 -0
  126. data/lib/pdu/smpp_replace_sm_resp.rb +61 -0
  127. data/lib/pdu/smpp_resp.rb +40 -0
  128. data/lib/pdu/smpp_submit_multi.rb +517 -0
  129. data/lib/pdu/smpp_submit_multi_resp.rb +90 -0
  130. data/lib/pdu/smpp_submit_sm.rb +591 -0
  131. data/lib/pdu/smpp_submit_sm_resp.rb +72 -0
  132. data/lib/pdu/smpp_unbind.rb +60 -0
  133. data/lib/pdu/smpp_unbind_resp.rb +61 -0
  134. data/lib/smpp_constants.rb +917 -0
  135. data/lib/smpp_csv_outputter.rb +1601 -0
  136. data/lib/smpp_datatypes.rb +89 -0
  137. data/lib/smpp_decoder.rb +627 -0
  138. data/lib/smpp_encoder.rb +495 -0
  139. data/lib/smpp_hex_outputter.rb +36 -0
  140. data/lib/smpp_outputter_base.rb +315 -0
  141. data/lib/smpp_structures.rb +98 -0
  142. data/lib/smpp_txt_outputter.rb +1895 -0
  143. data/lib/smpp_validator.rb +373 -0
  144. data/lib/smpp_xml_outputter.rb +34 -0
  145. data/roadmap +18 -0
  146. data/setup.rb +1585 -0
  147. data/test/anthill_smpp_test.rb +29 -0
  148. data/test/smpp_codec_test.rb +30 -0
  149. data/test/smpp_datatypes_test.rb +69 -0
  150. data/test/smpp_outputter_test.rb +1261 -0
  151. data/test/smpp_parsing_test.rb +1758 -0
  152. data/test/smpp_rawdump_test.rb +2095 -0
  153. data/test/smpp_validator_test.rb +441 -0
  154. metadata +206 -0
@@ -0,0 +1,72 @@
1
+ #
2
+ # Copyright 2007 Majoron.com (developers@majoron.com)
3
+ # Original sources are available at www.majoron.com
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+
19
+ module Majoron
20
+
21
+ module AntHill
22
+ module SMPP
23
+ class SMPPSubmitSMResp < SMPPResp
24
+ # Constructor.
25
+ def initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil)
26
+ super(CommandId::CM_SUBMIT_SM_RESP, command_status, sequence_number)
27
+
28
+ # Mandatory fields
29
+ @message_id = ""
30
+
31
+ end
32
+
33
+ # Interface to encode SMPP packet
34
+ def encode_packet(encoder)
35
+ # Encode header and mandatory fields
36
+ encoder.encode_header(@header)
37
+ encoder.encode_message_id(@message_id)
38
+ end
39
+
40
+ # Interface to decode SMPP packet
41
+ def decode_packet(decoder)
42
+ # Decode header and mandatory fields
43
+ @header = decoder.decode_header()
44
+ @message_id = decoder.decode_message_id(command_length())
45
+ end
46
+
47
+ # Interface to validate SMPP packet
48
+ def validate_packet(validator)
49
+ # Validate header and mandatory fields
50
+ validator.validate_header(@header)
51
+ validator.validate_message_id(@message_id)
52
+ end
53
+
54
+ # Interface to output SMPP packet
55
+ def output_packet(outputter)
56
+ # Output header and mandatory fields
57
+ outputter.output_header(@header)
58
+ outputter.output_message_id(@message_id)
59
+ end
60
+
61
+ public
62
+ # Mandatory fields
63
+ attr_accessor :message_id
64
+
65
+ # Optional fields
66
+
67
+ # Optional fields length
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,60 @@
1
+ #
2
+ # Copyright 2007 Majoron.com (developers@majoron.com)
3
+ # Original sources are available at www.majoron.com
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+
19
+ module Majoron
20
+ module AntHill
21
+ module SMPP
22
+ class SMPPUnbind < SMPPPDU
23
+ def initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil)
24
+ super(CommandId::CM_UNBIND, command_status, sequence_number)
25
+ end
26
+
27
+ # Interface to encode SMPP packet
28
+ def encode_packet(encoder)
29
+ # Encode header and mandatory fields
30
+ encoder.encode_header(@header)
31
+ end
32
+
33
+ # Interface to decode SMPP packet
34
+ def decode_packet(decoder)
35
+ # Decode header and mandatory fields
36
+ @header = decoder.decode_header()
37
+ end
38
+
39
+ # Interface to validate SMPP packet
40
+ def validate_packet(validator)
41
+ # Validate header and mandatory fields
42
+ validator.validate_header(@header)
43
+ end
44
+
45
+ # Interface to output SMPP packet
46
+ def output_packet(outputter)
47
+ # Output header and mandatory fields
48
+ outputter.output_header(@header)
49
+ end
50
+
51
+ public
52
+ # Mandatory fields
53
+
54
+ # Optional fields
55
+
56
+ # Optional fields length
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,61 @@
1
+ #
2
+ # Copyright 2007 Majoron.com (developers@majoron.com)
3
+ # Original sources are available at www.majoron.com
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+
19
+ module Majoron
20
+ module AntHill
21
+ module SMPP
22
+ class SMPPUnbindResp < SMPPResp
23
+ # Constructor.
24
+ def initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil)
25
+ super(CommandId::CM_UNBIND_RESP, command_status, sequence_number)
26
+ end
27
+
28
+ # Interface to encode SMPP packet
29
+ def encode_packet(encoder)
30
+ # Encode header and mandatory fields
31
+ encoder.encode_header(@header)
32
+ end
33
+
34
+ # Interface to decode SMPP packet
35
+ def decode_packet(decoder)
36
+ # Decode header and mandatory fields
37
+ @header = decoder.decode_header()
38
+ end
39
+
40
+ # Interface to validate SMPP packet
41
+ def validate_packet(validator)
42
+ # Validate header and mandatory fields
43
+ validator.validate_header(@header)
44
+ end
45
+
46
+ # Interface to output SMPP packet
47
+ def output_packet(outputter)
48
+ # Output header and mandatory fields
49
+ outputter.output_header(@header)
50
+ end
51
+
52
+ public
53
+ # Mandatory fields
54
+
55
+ # Optional fields
56
+
57
+ # Optional fields length
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,917 @@
1
+ #
2
+ # Copyright 2007 Majoron.com (developers@majoron.com)
3
+ # Original sources are available at www.majoron.com
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+
19
+ module Majoron
20
+ module AntHill
21
+ module SMPP
22
+ # SMPP commands indentifier
23
+ module CommandId
24
+ CM_GENERIC_NACK = 0x80000000
25
+ CM_BIND_RECEIVER = 0x00000001
26
+ CM_BIND_RECEIVER_RESP = 0x80000001
27
+ CM_BIND_TRANSMITTER = 0x00000002
28
+ CM_BIND_TRANSMITTER_RESP = 0x80000002
29
+ CM_QUERY_SM = 0x00000003
30
+ CM_QUERY_SM_RESP = 0x80000003
31
+ CM_SUBMIT_SM = 0x00000004
32
+ CM_SUBMIT_SM_RESP = 0x80000004
33
+ CM_DELIVER_SM = 0x00000005
34
+ CM_DELIVER_SM_RESP = 0x80000005
35
+ CM_UNBIND = 0x00000006
36
+ CM_UNBIND_RESP = 0x80000006
37
+ CM_REPLACE_SM = 0x00000007
38
+ CM_REPLACE_SM_RESP = 0x80000007
39
+ CM_CANCEL_SM = 0x00000008
40
+ CM_CANCEL_SM_RESP = 0x80000008
41
+ CM_BIND_TRANSCEIVER = 0x00000009
42
+ CM_BIND_TRANSCEIVER_RESP = 0x80000009
43
+ CM_OUTBIND = 0x0000000B
44
+ CM_ENQUIRE_LINK = 0x00000015
45
+ CM_ENQUIRE_LINK_RESP = 0x80000015
46
+ CM_SUBMIT_MULTI = 0x00000021
47
+ CM_SUBMIT_MULTI_RESP = 0x80000021
48
+ CM_ALERT_NOTIFICATION = 0x00000102
49
+ CM_DATA_SM = 0x00000103
50
+ CM_DATA_SM_RESP = 0x80000103
51
+ CM_BROADCAST_SM = 0x00000111
52
+ CM_BROADCAST_SM_RESP = 0x80000111
53
+ CM_QUERY_BROADCAST_SM = 0x00000112
54
+ CM_QUERY_BROADCAST_SM_RESP = 0x80000112
55
+ CM_CANCEL_BROADCAST_SM = 0x00000113
56
+ CM_CANCEL_BROADCAST_SM_RESP = 0x80000113
57
+ end
58
+
59
+ # SMPP commands name
60
+ module CommandName
61
+ CM_GENERIC_NACK = "CM_GENERIC_NACK"
62
+ CM_BIND_RECEIVER = "CM_BIND_RECEIVER"
63
+ CM_BIND_RECEIVER_RESP = "CM_BIND_RECEIVER_RESP"
64
+ CM_BIND_TRANSMITTER = "CM_BIND_TRANSMITTER"
65
+ CM_BIND_TRANSMITTER_RESP = "CM_BIND_TRANSMITTER_RESP"
66
+ CM_QUERY_SM = "CM_QUERY_SM"
67
+ CM_QUERY_SM_RESP = "CM_QUERY_SM_RESP"
68
+ CM_SUBMIT_SM = "CM_SUBMIT_SM"
69
+ CM_SUBMIT_SM_RESP = "CM_SUBMIT_SM_RESP"
70
+ CM_DELIVER_SM = "CM_DELIVER_SM"
71
+ CM_DELIVER_SM_RESP = "CM_DELIVER_SM_RESP"
72
+ CM_UNBIND = "CM_UNBIND"
73
+ CM_UNBIND_RESP = "CM_UNBIND_RESP"
74
+ CM_REPLACE_SM = "CM_REPLACE_SM"
75
+ CM_REPLACE_SM_RESP = "CM_REPLACE_SM_RESP"
76
+ CM_CANCEL_SM = "CM_CANCEL_SM"
77
+ CM_CANCEL_SM_RESP = "CM_CANCEL_SM_RESP"
78
+ CM_BIND_TRANSCEIVER = "CM_BIND_TRANSCEIVER"
79
+ CM_BIND_TRANSCEIVER_RESP = "CM_BIND_TRANSCEIVER_RESP"
80
+ CM_OUTBIND = "CM_OUTBIND"
81
+ CM_ENQUIRE_LINK = "CM_ENQUIRE_LINK"
82
+ CM_ENQUIRE_LINK_RESP = "CM_ENQUIRE_LINK_RESP"
83
+ CM_SUBMIT_MULTI = "CM_SUBMIT_MULTI"
84
+ CM_SUBMIT_MULTI_RESP = "CM_SUBMIT_MULTI_RESP"
85
+ CM_ALERT_NOTIFICATION = "CM_ALERT_NOTIFICATION"
86
+ CM_DATA_SM = "CM_DATA_SM"
87
+ CM_DATA_SM_RESP = "CM_DATA_SM_RESP"
88
+ CM_BROADCAST_SM = "CM_BROADCAST_SM"
89
+ CM_BROADCAST_SM_RESP = "CM_BROADCAST_SM_RESP"
90
+ CM_QUERY_BROADCAST_SM = "CM_QUERY_BROADCAST_SM"
91
+ CM_QUERY_BROADCAST_SM_RESP = "CM_QUERY_BROADCAST_SM_RESP"
92
+ CM_CANCEL_BROADCAST_SM = "CM_CANCEL_BROADCAST_SM"
93
+ CM_CANCEL_BROADCAST_SM_RESP = "CM_CANCEL_BROADCAST_SM_RESP"
94
+ end
95
+
96
+ # SMPP errors code
97
+ module ErrorCode
98
+ ESME_ROK = 0x00000000
99
+ ESME_RINVMSGLEN = 0x00000001
100
+ ESME_RINVCMDLEN = 0x00000002
101
+ ESME_RINVCMDID = 0x00000003
102
+ ESME_RINVBNDSTS = 0x00000004
103
+ ESME_RALYBND = 0x00000005
104
+ ESME_RINVPRTFLG = 0x00000006
105
+ ESME_RINVREGDLVFLG = 0x00000007
106
+ ESME_RSYSERR = 0x00000008
107
+ ESME_RINVSRCADR = 0x0000000A
108
+ ESME_RINVDSTADR = 0x0000000B
109
+ ESME_RINVMSGID = 0x0000000C
110
+ ESME_RBINDFAIL = 0x0000000D
111
+ ESME_RINVPASWD = 0x0000000E
112
+ ESME_RINVSYSID = 0x0000000F
113
+ ESME_RCANCELFAIL = 0x00000011
114
+ ESME_RREPLACEFAIL = 0x00000013
115
+ ESME_RMSGQFUL = 0x00000014
116
+ ESME_RINVSERTYP = 0x00000015
117
+ ESME_RINVNUMDESTS = 0x00000033
118
+ ESME_RINVDLNAME = 0x00000034
119
+ ESME_RINVDESTFLAG = 0x00000040
120
+ ESME_RINVSUBREP = 0x00000042
121
+ ESME_RINVESMCLASS = 0x00000043
122
+ ESME_RCNTSUBDL = 0x00000044
123
+ ESME_RSUBMITFAIL = 0x00000045
124
+ ESME_RINVSRCTON = 0x00000048
125
+ ESME_RINVSRCNPI = 0x00000049
126
+ ESME_RINVDSTTON = 0x00000050
127
+ ESME_RINVDSTNPI = 0x00000051
128
+ ESME_RINVSYSTYP = 0x00000053
129
+ ESME_RINVREPFLAG = 0x00000054
130
+ ESME_RINVNUMMSGS = 0x00000055
131
+ ESME_RTHROTTLED = 0x00000058
132
+ ESME_RINVSCHED = 0x00000061
133
+ ESME_RINVEXPIRY = 0x00000062
134
+ ESME_RINVDFTMSGID = 0x00000063
135
+ ESME_RX_T_APPN = 0x00000064
136
+ ESME_RX_P_APPN = 0x00000065
137
+ ESME_RX_R_APPN = 0x00000066
138
+ ESME_RQUERYFAIL = 0x00000067
139
+ ESME_RINVOPTPARSTREAM = 0x000000C0
140
+ ESME_ROPTPARNOTALLWD = 0x000000C1
141
+ ESME_RINVPARLEN = 0x000000C2
142
+ ESME_RMISSINGOPTPARAM = 0x000000C3
143
+ ESME_RINVOPTPARAMVAL = 0x000000C4
144
+ ESME_RDELIVERYFAILURE = 0x000000FE
145
+ ESME_RUNKNOWNERR = 0x000000FF
146
+ ESME_RSERTYPUNAUTH = 0x00000100
147
+ ESME_RPROHIBITED = 0x00000101
148
+ ESME_RSERTYPUNAVAIL = 0x00000102
149
+ ESME_RSERTYPDENIED = 0x00000103
150
+ ESME_RINVDCS = 0x00000104
151
+ ESME_RINVSRCADDRSUBUNIT = 0x00000105
152
+ ESME_RINVDSTADDRSUBUNIT = 0x00000106
153
+ ESME_RINVBCASTFREQINT = 0x00000107
154
+ ESME_RINVBCASTALIAS_NAME = 0x00000108
155
+ ESME_RINVBCASTAREAFMT = 0x00000109
156
+ ESME_RINVNUMBCAST_AREAS = 0x0000010A
157
+ ESME_RINVBCASTCNTTYPE = 0x0000010B
158
+ ESME_RINVBCASTMSGCLASS = 0x0000010C
159
+ ESME_RBCASTFAIL = 0x0000010D
160
+ ESME_RBCASTQUERYFAIL = 0x0000010E
161
+ ESME_RBCASTCANCELFAIL = 0x0000010F
162
+ ESME_RINVBCAST_REP = 0x00000110
163
+ ESME_RINVBCASTSRVGRP = 0x00000111
164
+ ESME_RINVBCASTCHANIND = 0x00000112
165
+ end
166
+
167
+ # SMPP errors name
168
+ module ErrorName
169
+ ESME_ROK = "ESME_ROK"
170
+ ESME_RINVMSGLEN = "ESME_RINVMSGLEN"
171
+ ESME_RINVCMDLEN = "ESME_RINVCMDLEN"
172
+ ESME_RINVCMDID = "ESME_RINVCMDID"
173
+ ESME_RINVBNDSTS = "ESME_RINVBNDSTS"
174
+ ESME_RALYBND = "ESME_RALYBND"
175
+ ESME_RINVPRTFLG = "ESME_RINVPRTFLG"
176
+ ESME_RINVREGDLVFLG = "ESME_RINVREGDLVFLG"
177
+ ESME_RSYSERR = "ESME_RSYSERR"
178
+ ESME_RINVSRCADR = "ESME_RINVSRCADR"
179
+ ESME_RINVDSTADR = "ESME_RINVDSTADR"
180
+ ESME_RINVMSGID = "ESME_RINVMSGID"
181
+ ESME_RBINDFAIL = "ESME_RBINDFAIL"
182
+ ESME_RINVPASWD = "ESME_RINVPASWD"
183
+ ESME_RINVSYSID = "ESME_RINVSYSID"
184
+ ESME_RCANCELFAIL = "ESME_RCANCELFAIL"
185
+ ESME_RREPLACEFAIL = "ESME_RREPLACEFAIL"
186
+ ESME_RMSGQFUL = "ESME_RMSGQFUL"
187
+ ESME_RINVSERTYP = "ESME_RINVSERTYP"
188
+ ESME_RINVNUMDESTS = "ESME_RINVNUMDESTS"
189
+ ESME_RINVDLNAME = "ESME_RINVDLNAME"
190
+ ESME_RINVDESTFLAG = "ESME_RINVDESTFLAG"
191
+ ESME_RINVSUBREP = "ESME_RINVSUBREP"
192
+ ESME_RINVESMCLASS = "ESME_RINVESMCLASS"
193
+ ESME_RCNTSUBDL = "ESME_RCNTSUBDL"
194
+ ESME_RSUBMITFAIL = "ESME_RSUBMITFAIL"
195
+ ESME_RINVSRCTON = "ESME_RINVSRCTON"
196
+ ESME_RINVSRCNPI = "ESME_RINVSRCNPI"
197
+ ESME_RINVDSTTON = "ESME_RINVDSTTON"
198
+ ESME_RINVDSTNPI = "ESME_RINVDSTNPI"
199
+ ESME_RINVSYSTYP = "ESME_RINVSYSTYP"
200
+ ESME_RINVREPFLAG = "ESME_RINVREPFLAG"
201
+ ESME_RINVNUMMSGS = "ESME_RINVNUMMSGS"
202
+ ESME_RTHROTTLED = "ESME_RTHROTTLED"
203
+ ESME_RINVSCHED = "ESME_RINVSCHED"
204
+ ESME_RINVEXPIRY = "ESME_RINVEXPIRY"
205
+ ESME_RINVDFTMSGID = "ESME_RINVDFTMSGID"
206
+ ESME_RX_T_APPN = "ESME_RX_T_APPN"
207
+ ESME_RX_P_APPN = "ESME_RX_P_APPN"
208
+ ESME_RX_R_APPN = "ESME_RX_R_APPN"
209
+ ESME_RQUERYFAIL = "ESME_RQUERYFAIL"
210
+ ESME_RINVOPTPARSTREAM = "ESME_RINVOPTPARSTREAM"
211
+ ESME_ROPTPARNOTALLWD = "ESME_ROPTPARNOTALLWD"
212
+ ESME_RINVPARLEN = "ESME_RINVPARLEN"
213
+ ESME_RMISSINGOPTPARAM = "ESME_RMISSINGOPTPARAM"
214
+ ESME_RINVOPTPARAMVAL = "ESME_RINVOPTPARAMVAL"
215
+ ESME_RDELIVERYFAILURE = "ESME_RDELIVERYFAILURE"
216
+ ESME_RUNKNOWNERR = "ESME_RUNKNOWNERR"
217
+ ESME_RSERTYPUNAUTH = "ESME_RSERTYPUNAUTH"
218
+ ESME_RPROHIBITED = "ESME_RPROHIBITED"
219
+ ESME_RSERTYPUNAVAIL = "ESME_RSERTYPUNAVAIL"
220
+ ESME_RSERTYPDENIED = "ESME_RSERTYPDENIED"
221
+ ESME_RINVDCS = "ESME_RINVDCS"
222
+ ESME_RINVSRCADDRSUBUNIT = "ESME_RINVSRCADDRSUBUNIT"
223
+ ESME_RINVDSTADDRSUBUNIT = "ESME_RINVDSTADDRSUBUNIT"
224
+ ESME_RINVBCASTFREQINT = "ESME_RINVBCASTFREQINT"
225
+ ESME_RINVBCASTALIAS_NAME = "ESME_RINVBCASTALIAS_NAME"
226
+ ESME_RINVBCASTAREAFMT = "ESME_RINVBCASTAREAFMT"
227
+ ESME_RINVNUMBCAST_AREAS = "ESME_RINVNUMBCAST_AREAS"
228
+ ESME_RINVBCASTCNTTYPE = "ESME_RINVBCASTCNTTYPE"
229
+ ESME_RINVBCASTMSGCLASS = "ESME_RINVBCASTMSGCLASS"
230
+ ESME_RBCASTFAIL = "ESME_RBCASTFAIL"
231
+ ESME_RBCASTQUERYFAIL = "ESME_RBCASTQUERYFAIL"
232
+ ESME_RBCASTCANCELFAIL = "ESME_RBCASTCANCELFAIL"
233
+ ESME_RINVBCAST_REP = "ESME_RINVBCAST_REP"
234
+ ESME_RINVBCASTSRVGRP = "ESME_RINVBCASTSRVGRP"
235
+ ESME_RINVBCASTCHANIND = "ESME_RINVBCASTCHANIND"
236
+ end
237
+
238
+ # SMPP optional tags identifier
239
+ module OptTags
240
+ TAG_DEST_ADDR_SUBUNIT = 0x0005 # GSM
241
+ TAG_DEST_NETWORK_TYPE = 0x0006 # Generic
242
+ TAG_DEST_BEARER_TYPE = 0x0007 # Generic
243
+ TAG_DEST_TELEMATICS_ID = 0x0008 # GSM
244
+ TAG_SOURCE_ADDR_SUBUNIT = 0x000D # GSM
245
+ TAG_SOURCE_NETWORK_TYPE = 0x000E # Generic
246
+ TAG_SOURCE_BEARER_TYPE = 0x000F # Generic
247
+ TAG_SOURCE_TELEMATICS_ID = 0x0010 # GSM
248
+ TAG_QOS_TIME_TO_LIVE = 0x0017 # Generic
249
+ TAG_PAYLOAD_TYPE = 0x0019 # Generic
250
+ TAG_ADDITIONAL_STATUS_INFO_TEXT = 0x001D # Generic
251
+ TAG_RECEIPTED_MESSAGE_ID = 0x001E # Generic
252
+ TAG_MS_MSG_WAIT_FACILITIES = 0x0030 # GSM
253
+ TAG_PRIVACY_INDICATOR = 0x0201 # CDMA, TDMA
254
+ TAG_SOURCE_SUBADDRESS = 0x0202 # CDMA, TDMA
255
+ TAG_DEST_SUBADDRESS = 0x0203 # CDMA, TDMA
256
+ TAG_USER_MESSAGE_REFERENCE = 0x0204 # Generic
257
+ TAG_USER_RESPONSE_CODE = 0x0205 # CDMA, TDMA
258
+ TAG_SOURCE_PORT = 0x020A # Generic
259
+ TAG_DESTINATION_PORT = 0x020B # Generic
260
+ TAG_SAR_MSG_REF_NUM = 0x020C # Generic
261
+ TAG_LANGUAGE_INDICATOR = 0x020D # CDMA, TDMA
262
+ TAG_SAR_TOTAL_SEGMENTS = 0x020E # Generic
263
+ TAG_SAR_SEGMENT_SEQNUM = 0x020F # Generic
264
+ TAG_SC_INTERFACE_VERSION = 0x0210 # Generic
265
+ TAG_CALLBACK_NUM_PRES_IND = 0x0302 # TDMA
266
+ TAG_CALLBACK_NUM_ATAG = 0x0303 # TDMA
267
+ TAG_NUMBER_OF_MESSAGES = 0x0304 # CDMA
268
+ TAG_CALLBACK_NUM = 0x0381 # CDMA, TDMA, GSM, iDEN
269
+ TAG_DPF_RESULT = 0x0420 # Generic
270
+ TAG_SET_DPF = 0x0421 # Generic
271
+ TAG_MS_AVAILABILITY_STATUS = 0x0422 # Generic
272
+ TAG_NETWORK_ERROR_CODE = 0x0423 # Generic
273
+ TAG_MESSAGE_PAYLOAD = 0x0424 # Generic
274
+ TAG_DELIVERY_FAILURE_REASON = 0x0425 # Generic
275
+ TAG_MORE_MESSAGES_TO_SEND = 0x0426 # GSM
276
+ TAG_MESSAGE_STATE = 0x0427 # Generic
277
+ TAG_USSD_SERVICE_OP = 0x0501 # GSM (USSD)
278
+ TAG_DISPLAY_TIME = 0x1201 # CDMA, TDMA
279
+ TAG_SMS_SIGNAL = 0x1203 # TDMA
280
+ TAG_MS_VALIDITY = 0x1204 # CDMA, TDMA
281
+ TAG_ALERT_ON_MESSAGE_DELIVERY = 0x130C # CDMA
282
+ TAG_ITS_REPLY_TYPE = 0x1380 # CDMA
283
+ TAG_ITS_SESSION_INFO = 0x1383 # CDMA
284
+ TAG_BROADCAST_CHANNEL_INDICATOR = 0x0600 # GSM
285
+ TAG_BROADCAST_CONTENT_TYPE = 0x0601 # CDMA, TDMA, GSM
286
+ TAG_BROADCAST_CONTENT_TYPE_INFO = 0x0602 # CDMA, TDMA
287
+ TAG_BROADCAST_MESSAGE_CLASS = 0x0603 # GSM
288
+ TAG_BROADCAST_REP_NUM = 0x0604 # GSM
289
+ TAG_BROADCAST_FREQUENCY_INTERVAL = 0x0605 # CDMA, TDMA, GSM
290
+ TAG_BROADCAST_AREA_IDENTIFIER = 0x0606 # CDMA, TDMA, GSM
291
+ TAG_BROADCAST_ERROR_STATUS = 0x0607 # CDMA, TDMA, GSM
292
+ TAG_BROADCAST_AREA_SUCCESS = 0x0608 # GSM
293
+ TAG_BROADCAST_END_TIME = 0x0609 # CDMA, TDMA, GSM
294
+ TAG_BROADCAST_SERVICE_GROUP = 0x060A # CDMA, TDMA
295
+ TAG_BILLING_IDENTIFICATION = 0x060B # Generic
296
+ TAG_SOURCE_NETWORK_ID = 0x060D # Generic
297
+ TAG_DEST_NETWORK_ID = 0x060E # Generic
298
+ TAG_SOURCE_NODE_ID = 0x060F # Generic
299
+ TAG_DEST_NODE_ID = 0x0610 # Generic
300
+ TAG_DEST_ADDR_NP_RESOLUTION = 0x0611 # CDMA, TDMA (US Only)
301
+ TAG_DEST_ADDR_NP_INFORMATION = 0x0612 # CDMA, TDMA (US Only)
302
+ TAG_DEST_ADDR_NP_COUNTRY = 0x0613 # CDMA, TDMA (US Only)
303
+ end
304
+
305
+ # Destination flags values
306
+ module DestFlag
307
+ UNKNOWN = 0
308
+ SME_ADDRESS = 1
309
+ DISTR_LIST_NAME = 2
310
+ end
311
+
312
+ # Broacast area format values
313
+ module BroadcastAreaFormat
314
+ ALIAS = 0x00;
315
+ ELLIPSOID = 0x01
316
+ POLYGON = 0x02
317
+ UNKNOWN = 0xFF
318
+ end
319
+
320
+ # Broadcast area format names
321
+ module BroadcastAreaFormatName
322
+ ALIAS = "ALIAS"
323
+ ELLIPSOID = "ELLIPSOID"
324
+ POLYGON = "POLYGON"
325
+ UNKNOWN = "UNKNOWN"
326
+ end
327
+
328
+ # The following is a list of allowable states for a short message.
329
+ # The message_state value is returned by the SMSC to the ESME as
330
+ # part of the query_sm_resp PDU.
331
+ module MessageState
332
+ # The message is in enroute state.
333
+ ENROUTE = 0x01
334
+
335
+ # Message is delivered todestination.
336
+ DELIVERED = 0x02
337
+
338
+ # Message validity period hasexpired.
339
+ EXPIRED = 0x03
340
+
341
+ # Message has been deleted.
342
+ DELETED = 0x04
343
+
344
+ # Message is undeliverable.
345
+ UNDELIVERABLE = 0x05
346
+
347
+ # Message is in accepted state (i.e. has been manually read
348
+ # on behalf of the subscriber by customer service).
349
+ ACCEPTED = 0x06
350
+
351
+ # Message is in invalid state.
352
+ UNKNOWN = 0x07
353
+
354
+ # Message is in a rejected state.
355
+ REJECTED = 0x08
356
+
357
+ # The message was accepted but not transmitted or
358
+ # broadcast on the network.
359
+ SKIPPED = 0x09
360
+ end
361
+
362
+ # The following is a list of allowable states for a short message.
363
+ # The message_state value is returned by the SMSC to the ESME as
364
+ # part of the query_sm_resp PDU.
365
+ module MessageStateName
366
+ # Message is delivered todestination.
367
+ ENROUTE = "ENROUTE"
368
+
369
+ # Message is delivered todestination.
370
+ DELIVERED = "DELIVRD"
371
+
372
+ # Message validity period hasexpired.
373
+ EXPIRED = "EXPIRED"
374
+
375
+ # Message has been deleted.
376
+ DELETED = "DELETED"
377
+
378
+ # Message is undeliverable.
379
+ UNDELIVERABLE = "UNDELIV"
380
+
381
+ # Message is in accepted state (i.e. has been manually read
382
+ # on behalf of the subscriber by customer service).
383
+ ACCEPTED = "ACCEPTD"
384
+
385
+ # Message is in invalid state.
386
+ UNKNOWN = "UNKNOWN"
387
+
388
+ # Message is in a rejected state.
389
+ REJECTED = "REJECTD"
390
+
391
+ # The message was accepted but not transmitted or
392
+ # broadcast on the network.
393
+ SKIPPED = "SKIPPED"
394
+ end
395
+
396
+
397
+ # The network_error_code parameter is used to indicate the actual network
398
+ # error code for a delivery failure.
399
+ module NetworkTypeErrorCode
400
+ ANSI_136_ACCESS_DENIED_REASON = 0x01
401
+ IS_95_ACCESS_DENIED_REASON = 0x02
402
+ GSM = 0x03
403
+ ANSI_136_CAUSE_CODE = 0x04
404
+ IS_95_CAUSE_CODE = 0x05
405
+ ANSI_41_ERROR = 0x06
406
+ SMPP_ERROR = 0x07
407
+ MESSAGE_CENTER_SPECIFIC = 0x08
408
+ end
409
+
410
+ # The network_error_code parameter is used to indicate the actual network
411
+ # error code for a delivery failure.
412
+ module NetworkTypeErrorName
413
+ ANSI_136_ACCESS_DENIED_REASON = "ANSI 136 Access Denied Reason"
414
+ IS_95_ACCESS_DENIED_REASON = "IS 95 Access Denied Reason"
415
+ GSM = "GSM"
416
+ ANSI_136_CAUSE_CODE = "ANSI 136 Cause Code"
417
+ IS_95_CAUSE_CODE = "IS 95 Cause Code"
418
+ ANSI_41_ERROR = "ANSI-41 Error"
419
+ SMPP_ERROR = "SMPP Error"
420
+ MESSAGE_CENTER_SPECIFIC = "Message Center Specific"
421
+ end
422
+
423
+ # This parameter is used to indicate the version of the SMPP protocol.
424
+ module InterfaceVersion
425
+ # Indicates that the ESME supports version 3.3 or earlier of
426
+ # the SMPPprotocol.
427
+ SMPP_VER_0_0 = 0x00
428
+
429
+ # Indicates that the ESME supports version 3.3 or earlier of
430
+ # the SMPPprotocol.
431
+ SMPP_VER_3_3 = 0x33
432
+
433
+ # Indicates that the ESME is supporting SMPP version 3.4.
434
+ SMPP_VER_3_4 = 0x34
435
+
436
+ # Indicates that the ESME is supporting SMPP version 5.0.
437
+ SMPP_VER_5_0 = 0x50
438
+ end
439
+
440
+ # These fields define the Type of Number (TON) to be used in the SME address parameters.
441
+ module TON
442
+ UNKNOWN = 0x00
443
+ INTERNATIONAL = 0x01
444
+ NATIONAL = 0x02
445
+ NETWORK_SPECIFIC = 0x03
446
+ SUBSCRIBER_NUMBER = 0x04
447
+ ALPHANUMERIC = 0x05
448
+ ABBREVIATED = 0x06
449
+ end
450
+
451
+ # These fields define the Numeric Plan Indicator (NPI) to be used in the SME address parameters.
452
+ module NPI
453
+ UNKNOWN = 0x00
454
+ ISDN = 0x01
455
+ DATA = 0x02
456
+ TELEX = 0x03
457
+ LAND_MOBILE = 0x04
458
+ NATIONAL = 0x05
459
+ PRIVATE = 0x06
460
+ ERMES = 0x07
461
+ INTERNET = 0x08
462
+ WAP_CLIENT_ID = 0x09
463
+ end
464
+
465
+ # The service_type parameter can be used to indicate the SMS Application
466
+ # service associated with the message.
467
+ module ServiceType
468
+ NULL_ = "NULL"
469
+ CMT = "CMT"
470
+ CPT = "CPT"
471
+ VMN = "VMN"
472
+ VMA = "VMA"
473
+ WAP = "WAP"
474
+ USSD = "USSD"
475
+ end
476
+
477
+ # The priority_flag parameter allows the originating SME to assign a
478
+ # priority level to the short message.
479
+ module PriorityFlag
480
+ LOWEST = 0x00
481
+ LEVEL1 = 0x01
482
+ LEVEL2 = 0x02
483
+ HIGHEST = 0x03
484
+ end
485
+
486
+ # The replace_if_present_flag parameter is used to request the SMSC
487
+ # to replace a previously submitted message, that is still pending delivery.
488
+ module ReplaceIfPresentFlag
489
+ DONT_REPLACE = 0x00
490
+ REPLACE = 0x01
491
+ end
492
+
493
+ # The network type is used to indicate a network type
494
+ # associated with the destination address of a message.
495
+ module NetworkType
496
+ UNKNOWN = 0x00
497
+ GSM = 0x01
498
+ TDMA = 0x02
499
+ CDMA = 0x03
500
+ PDC = 0x04
501
+ PHS = 0x05
502
+ IDEN = 0x06
503
+ AMPS = 0x07
504
+ PAGING = 0x08
505
+ end
506
+
507
+ # The bearer type parameter is used to request the desired
508
+ # bearer for delivery of the message to the destination address.
509
+ module BearerType
510
+ UNKNOWN = 0x00
511
+ SMS = 0x01
512
+ CSD = 0x02
513
+ PACKET_DATA = 0x03
514
+ USSD = 0x04
515
+ CDPD = 0x05
516
+ DATATAC = 0x06
517
+ FLEX = 0x07
518
+ CELLCAST = 0x08
519
+ end
520
+
521
+ # The privacy indicator indicates the privacy level of the message.
522
+ module PrivacyIndicator
523
+ NOT_RESTRICTED = 0x00
524
+ RESTRICTED = 0x01
525
+ CONFIDENTIAL = 0x02
526
+ SECRET = 0x03
527
+ end
528
+
529
+ # The display time parameter is used to associate a display time of
530
+ # the short message on the MS.
531
+ module DisplayTime
532
+ TEMPORARY = 0x00
533
+ DEFAULT = 0x01
534
+ INVOKE = 0x02
535
+ end
536
+
537
+ # The ms validity parameter is used to provide an MS with validity
538
+ # information associated with the received short message.
539
+ module MsValidity
540
+ Store_Indefinitely = 0x00
541
+ POWER_DOWN = 0x01
542
+ SID_BASED_RA = 0x02
543
+ DISPLAY_ONLY = 0x03
544
+ end
545
+
546
+ # The dpf result parameter is used in the data_sm_resp PDU to indicate
547
+ # if delivery pending flag (DPF) was set for a delivery failure of
548
+ # the short message.
549
+ module DpfResult
550
+ DPF_NOT_SET = 0x00
551
+ DPF_SET = 0x01
552
+ end
553
+
554
+ #
555
+ module SetDpf
556
+ NOT_REQUESTED = 0x00
557
+ REQUESTED = 0x01
558
+ end
559
+
560
+ # The ms_availability_status parameter is used in the alert_notification
561
+ # operation to indicate the availability state of the MS to the ESME.
562
+ module MsAvailabilityStatus
563
+ AVAILABLE = 0x00
564
+ DENIED = 0x01
565
+ UNAVAILABLE = 0x02
566
+ end
567
+
568
+ # The delivery failure_reason parameter is used in the data_sm_resp operation to
569
+ # indicate the outcome of the message delivery attempt (only applicable for
570
+ # transaction message mode).
571
+ module DeliveryFailureReason
572
+ DESTINATION_UNAVAILABLE = 0x00
573
+ DESTINATION_ADDRESS_INVALID = 0x01
574
+ PERMANENT_NETWORK_ERROR = 0x02
575
+ TEMPORARY_NETWORK_ERROR = 0x03
576
+ end
577
+
578
+ # The more messages to send parameter is used by the ESME in the submit_sm and
579
+ # data_sm operations to indicate to the SMSC that there are further messages
580
+ # for the same destination SME.
581
+ module MoreMessagesToSend
582
+ NO_MORE_MESSAGES = 0x00
583
+ MORE_MESSAGES = 0x01
584
+ end
585
+
586
+ # The its reply type parameter is a required parameter for the CDMA
587
+ # Interactive Teleservice as defined by the Korean PCS carriers [KORITS].
588
+ # It indicates and controls the MS user's reply method to an SMS delivery
589
+ # message received from the ESME.
590
+ module ItsReplyType
591
+ DIGIT = 0x00
592
+ NUMBER = 0x01
593
+ TELEPHONE_NO = 0x02
594
+ PASSWORD = 0x03
595
+ CHARACTER_LINE = 0x04
596
+ MENU = 0x05
597
+ DATE = 0x06
598
+ TIME = 0x07
599
+ CONTINUE = 0x07
600
+ end
601
+
602
+ # The ussd service op parameter is required to define the USSD service
603
+ # operation when SMPP is being used as an interface to a (GSM) USSD system.
604
+ module UssdServiceOp
605
+ PSSD_INDICATION = 0x00
606
+ PSSR_INDICATION = 0x01
607
+ USSR_REQUEST = 0x02
608
+ USSN_REQUEST = 0x03
609
+ PSSD_RESPONSE = 0x10
610
+ PSSR_RESPONSE = 0x11
611
+ USSR_CONFIRM = 0x12
612
+ USSN_CONFIRM = 0x13
613
+ end
614
+
615
+ # Limitation for SMPP fields.
616
+ module SMPPMaxLen
617
+ # A max len for field.
618
+ SYSTEM_ID_MAX_LEN = 16
619
+
620
+ # A max len for field.
621
+ PASSWORD_MAX_LEN = 9
622
+
623
+ # A max len for field.
624
+ SYSTEM_TYPE_MAX_LEN = 13
625
+
626
+ # A max len for field.
627
+ ADDRESS_RANGE_MAX_LEN = 41
628
+
629
+ # A max len for field.
630
+ SERVICE_TYPE_MAX_LEN = 6
631
+
632
+ # A max len for field.
633
+ SOURCE_ADDR_MAX_LEN_21 = 21
634
+
635
+ # A max len for field.
636
+ DESTINATION_ADDR_MAX_LEN_21 = 21
637
+
638
+ # A max len for field.
639
+ SOURCE_ADDR_MAX_LEN_65 = 65
640
+
641
+ # A max len for field.
642
+ DESTINATION_ADDR_MAX_LEN_65 = 65
643
+
644
+ # A max len for field.
645
+ SMPP_DATETIME_MAX_LEN = 17
646
+
647
+ # A max len for field.
648
+ MESSAGE_ID_MAX_LEN = 65
649
+
650
+ # A max len for field.
651
+ ESME_ADDR_MAX_LEN = 65
652
+
653
+ # A max len for field.
654
+ DL_NAME_MAX_LEN = 21
655
+
656
+ # A max len for field.
657
+ SCHEDULE_DELIVERY_TIME_MAX_LEN = 17
658
+
659
+ # A max len for field.
660
+ VALIDITY_PERIOD_MAX_LEN = 17
661
+
662
+ # A max len for field.
663
+ BROADCAST_END_TIME_MAX_LEN = 17
664
+ end
665
+
666
+ # TLV len
667
+ module SMPPTLVLen
668
+ # Byte len at TLV field
669
+ ZERO_LEN = 0
670
+
671
+ # Byte len at TLV field
672
+ BYTE_LEN = 1
673
+
674
+ # Word len at TLV field
675
+ WORD_LEN = 2
676
+
677
+ # Three bytes len at TLV field
678
+ THREE_BYTE_LEN = 3
679
+
680
+ # Dword len at TLV field
681
+ DWORD_LEN = 4
682
+ end
683
+
684
+ # Errors code for reporting.
685
+ module FieldsName
686
+ COMMAND_LENGTH = "Command length"
687
+ COMMAND_ID = "Command id"
688
+ COMMAND_STATUS = "Command status"
689
+ SEQUENCE_NUMBER = "Sequence number"
690
+ SYSTEM_ID = "System id"
691
+ PASSWORD = "Password"
692
+ SYSTEM_TYPE = "System type"
693
+ INTERFACE_VERSION = "Interface version"
694
+ ADDR_TON = "Addr TON"
695
+ ADDR_NPI = "Addr NPI"
696
+ ADDRESS_RANGE = "Address range"
697
+ SERVICE_TYPE = "Service type"
698
+ SOURCE_ADDR_TON = "Source addr TON"
699
+ SOURCE_ADDR_NPI = "Source addr NPI"
700
+ SOURCE_ADDR = "Source addr"
701
+ DEST_ADDR_TON = "Dest addr TON"
702
+ DEST_ADDR_NPI = "Dest addr NPI"
703
+ DEST_ADDR = "Dest addr"
704
+ ESM_CLASS = "ESM class"
705
+ PROTOCOLID = "ProtocolId"
706
+ PRIORITY_FLAG = "Priority flag"
707
+ SCHEDULE_DELIVERY_TIME = "Schedule delivery time"
708
+ VALIDITY_PERIOD = "Validity period"
709
+ REGISTERED_DELIVERY = "Registered delivery"
710
+ REPLACE_IF_PRESENT = "Replace if present"
711
+ DATA_CODING = "Data coding"
712
+ SM_DEFAULT_MSG_ID = "SM default msg id"
713
+ SM_LENGTH = "SM length"
714
+ SHORT_MESSAGE = "Short message"
715
+ MESSAGE_ID = "Message id"
716
+ ESME_ADDR_TON = "ESME addr TON"
717
+ ESME_ADDR_NPI = "ESME addr NPI"
718
+ ESME_ADDR = "ESME addr"
719
+ NUMBER_OF_DEST = "Number of dest"
720
+ DEST_ADDRESSES = "Dest addresses"
721
+ DESTFLAG = "DestFlag"
722
+ TON = "TON"
723
+ NPI = "NPI"
724
+ ADDRESS = "Address"
725
+ DISTR_LIST_NAME = "Distr List Name"
726
+ NO_UNSUCCESS = "No unsuccess"
727
+ UNSUCCESS_SMES = "Unsuccess SMEs"
728
+ FINAL_DATE = "Final date"
729
+ MESSAGE_STATE = "Message state"
730
+ ERROR_CODE = "Error code"
731
+ BROADCAST_AREA_SUCCESS = "Broadcast area success"
732
+ BROADCAST_AREA_IDENTIFIER = "Broadcast area identifier"
733
+ BROADCAST_REP_NUM = "Broadcast rep num"
734
+ BROADCAST_FREQUENCY_INTERVAL = "Broadcast frequency interval"
735
+ BROADCAST_CONTENT_TYPE = "Broadcast content type"
736
+ SC_INTERFACE_VERSION = "Sc interface version"
737
+ MS_AVAILABILITY_STATUS = "MS availability status"
738
+ ALERT_ON_MSG_DELIVERY = "Alert on msg delivery"
739
+ BROADCAST_CHANNEL_INDICATOR = "Broadcast channel indicator"
740
+ BROADCAST_CONTENT_TYPE_INFO = "Broadcast content type info"
741
+ BROADCAST_MESSAGE_CLASS = "Broadcast message class"
742
+ BROADCAST_SERVICE_GROUP = "Broadcast service group"
743
+ CALLBACK_NUM = "Callback num"
744
+ CALLBACK_NUM_ATAG = "Callback num atag"
745
+ CALLBACK_NUM_PRES_IND = "Callback num pres ind"
746
+ DEST_ADDR_SUBUNIT = "Dest addr subunit"
747
+ DEST_SUBADDRESS = "Dest subaddress"
748
+ DISPLAY_TIME = "Display time"
749
+ LANGUAGE_INDICATOR = "Language indicator"
750
+ MESSAGE_PAYLOAD = "Message payload"
751
+ MS_VALIDITY = "Ms validity"
752
+ PAYLOAD_TYPE = "Payload type"
753
+ PRIVACY_INDICATOR = "Privacy indicator"
754
+ SMS_SIGNAL = "Sms signal"
755
+ SOURCE_ADDR_SUBUNIT = "Source addr subunit"
756
+ SOURCE_PORT = "Source port"
757
+ SOURCE_SUBADDRESS = "Source subaddress"
758
+ USER_MESSAGE_REFERENCE = "User message reference"
759
+ BROADCAST_ERROR_STATUS = "Broadcast error status"
760
+ FAILED_BROADCAST_AREA_IDENTIFIER = "Failed broadcast area identifier"
761
+ SOURCE_NETWORK_TYPE = "Source network type"
762
+ SOURCE_BEARER_TYPE = "Source bearer type"
763
+ SOURCE_TELEMATICS_ID = "Source telematics id"
764
+ DESTINATION_PORT = "Destination port"
765
+ DEST_NETWORK_TYPE = "Dest network type"
766
+ DEST_BEARER_TYPE = "Dest bearer type"
767
+ DEST_TELEMATICS_ID = "Dest telematics id"
768
+ SAR_MSG_REF_NUM = "Sar msg ref num"
769
+ SAR_TOTAL_SEGMENTS = "Sar total segments"
770
+ SAR_SEGMENT_SEQNUM = "Sar segment seqnum"
771
+ MORE_MESSAGES_TO_SEND = "More messages to send"
772
+ QOS_TIME_TO_LIVE = "Qos time to live"
773
+ SET_DPF = "Set dpf"
774
+ RECEIPTED_MESSAGE_ID = "Receipted message id"
775
+ NETWORK_ERROR_CODE = "Network error code"
776
+ MS_MSG_WAIT_FACILITIES = "Ms msg wait facilities"
777
+ NUMBER_OF_MESSAGES = "Number of messages"
778
+ ITS_REPLY_TYPE = "Its reply type"
779
+ ITS_SESSION_INFO = "Its session info"
780
+ USER_RESPONSE_CODE = "User response code"
781
+ DELIVERY_FAILURE_REASON = "Delivery failure reason"
782
+ ADDITIONAL_STATUS_INFO_TEXT = "Additional status info text"
783
+ DPF_RESULT = "Dpf result"
784
+ BROADCAST_END_TIME = "Broadcast end time"
785
+ USSD_SERVICE_OP = "Ussd service op"
786
+ ERROR_STATUS_CODE = "Error status code"
787
+
788
+ INV_DEST_FLAG = "Inv dest flag"
789
+
790
+ end
791
+
792
+ # Outputter symbols
793
+ module Outputter
794
+ WIDTH_HEADER = 3
795
+ WIDTH_LENGTH = 7
796
+ WIDTH_FLDNAME = 40
797
+ HEADER = "H"
798
+ MANDATORY = "M"
799
+ OPTIONAL_ = "O"
800
+ COMMA = ","
801
+ LBRACKET = "["
802
+ RBRACKET = "]"
803
+ LCURLYBRACE = "{"
804
+ RCURLYBRACE = "}"
805
+ SEPARATOR = "|"
806
+ COLON = ":"
807
+ SEMICOLON = ";"
808
+ SPACE = " "
809
+ EQUAL = "="
810
+ HEX = "HEX"
811
+ HEXSIGN = "0x"
812
+ ZEROSIGN = "0"
813
+ EMPTY = ""
814
+ end
815
+
816
+ # Constants about esm class.
817
+ module EsmClass
818
+ MESSAGING_MODE = "Messaging mode"
819
+ MESSAGE_TYPE = "Message type"
820
+ MESSAGE_FEATURES = "Message features"
821
+
822
+ # Available messing mode.
823
+ MODE_UNKNOWN = "Unknown"
824
+ MODE_DEFAULT = "Default SMSC Mode"
825
+ MODE_DATAGRAM = "Datagram mode"
826
+ MODE_TRANSACTION = "Forward (i.e. Transaction) mode"
827
+ MODE_STORE = "Store and Forward mode"
828
+
829
+ # Available message type.
830
+ TYPE_UNKNOWN = "Unknown"
831
+ TYPE_DEFAULT = "Default message Type (i.e. normal message)"
832
+ TYPE_DELIVERY_RECEIPT = "Short Message contains SMSC Delivery Receipt"
833
+ TYPE_DELIVERY_ACKNOWLEDGEMENT = "Short Message contains SMSC Delivery Acknowledgment"
834
+ TYPE_USER_ACKNOWLEDGEMENT = "Short Message contains SME Manual/User Acknowledgment"
835
+ TYPE_ABORT = "Short Message contains Conversation Abort (Korean CDMA)"
836
+ TYPE_INTERMEDIATE_NOTIFICATION = "Short Message contains Intermediate Delivery Notification"
837
+
838
+ # Available message features.
839
+ FEATURES_UNKNOWN = "Unknown"
840
+ FEATURES_NO_SELECTED = "No specific features selected"
841
+ FEATURES_UDHI = "UDHI Indicator set"
842
+ FEATURES_REPLY_PATH = "Reply Path"
843
+ FEATURES_UDHI_REPLY_PATH = "UDHI and Reply Path"
844
+ end
845
+
846
+
847
+ # SMPP fields offsets inside command header
848
+ module SMPPOffset
849
+ # SMPP's header size in the bytes.
850
+ SMPP_HEADER_SIZE = 16
851
+
852
+ # Offset or shift for message lenght field at header.
853
+ COMMAND_LENGTH_POS = 0
854
+
855
+ # Offset or shift for command code field at header.
856
+ COMMAND_ID_POS = 4
857
+
858
+ # Offset or shift for command code field at header.
859
+ TLV_CODE_POS = 0
860
+
861
+ # SMPP tag size at TLV structure.
862
+ TLV_TAG_LENGHT = 2
863
+
864
+ # SMPP length size at TLV structure..
865
+ TLV_LENGTH_LENGHT = 2
866
+ end
867
+
868
+ # SMPP packet validation errors
869
+ module CodecErrors
870
+ ENCODER_INV_DSTFLAG = "Unable to encode dest addresses due to invalid dest flag. Offset is: %d. Dest flag is: %d"
871
+
872
+ DECODER_INV_DSTFLAG = "Unable to decode dest addresses due to invalid dest flag. Offset is: %d. Dest flag is: %d"
873
+
874
+ VALIDATE_PASSWORD_MAX_LEN = "Password is greater than max size according to spec."
875
+ VALIDATE_SYSTEM_TYPE_MAX_LEN = "System type is greater than max size according to spec."
876
+ VALIDATE_ADDRESS_RANGE_MAX_LEN = "Address range is greater than max size according to spec.";
877
+ VALIDATE_SCHEDULE_DELIVERY_TIME_MAX_LEN = "Schedule delivery time is greater than max size according to spec."
878
+ VALIDATE_SCHEDULE_DELIVERY_TIME_RANGE_LEN = "Schedule delivery time size is not according to spec."
879
+ VALIDATE_VALIDITY_PERIOD_MAX_LEN = "Validity period is greater than max size according to spec."
880
+ VALIDATE_VALIDITY_PERIOD_RANGE_LEN = "Validity period size is not according to spec."
881
+ VALIDATE_DEST_ADDRESSES_LEN = "Dest addresses len should be equal to number of dests."
882
+ VALIDATE_UNSUCCESS_SMES_LEN = "Unsuccess SMEs len should be equal to no unsuccess."
883
+ VALIDATE_TLV_BYTE_LEN = "Len value for TLV is not according to spec. It should be equal to 1. Len is: %1% Tag is: %2%"
884
+ VALIDATE_TLV_WORD_LEN = "Len value for TLV is not according to spec. It should be equal to 2. Len is: %2% Tag is: %2%"
885
+ VALIDATE_TLV_THREE_BYTE_LEN = "Len value for TLV is not according to spec. It should be equal to 3. Len is: %2% Tag is: %2%"
886
+ VALIDATE_TLV_DWORD_LEN = "Len value for TLV is not according to spec. It should be equal to 4. Len is: %2% Tag is: %2%"
887
+ VALIDATE_BROADCAST_END_TIME_MAX_LEN = "Broadcast end time is greater than max size according to spec."
888
+ VALIDATE_BROADCAST_END_TIME_RANGE_LEN = "Broadcast end time size is not according to spec."
889
+ VALIDATE_BROADCAST_AREA_IDENTIFIER_MIN_LEN = "Broadcast area identifier is mandatory fields. It should present"
890
+ VALIDATE_BROADCAST_AREA_IDENTIFIER_LEN = "Broadcast area identifier and broadcast area identifier len should be the same size."
891
+ VALIDATE_FAILED_BROADCAST_AREA_IDENTIFIER_LEN = "Failed broadcast area identifier and failed broadcast area identifier len should be the same size."
892
+
893
+ VALIDATE_INTERFACE_VERSION_VALUE = "Interface version or sc interface version is not according to spec. Allowed values between 0x00 and 0x34 or 0x50. Version is: %d"
894
+ VALIDATE_MESSAGE_STATE_VALUE = "Message State is not according to spec. Allowed values between 1 and 9. Message state is: %d"
895
+
896
+ VALIDATE_MESSAGE_ID_NULL_LEN = "Message id should be NULL."
897
+ VALIDATE_SHORT_MESSAGE_PAYLOAD_LEN = "Short message and message payload shoult not be used simultaneously."
898
+ end
899
+
900
+ # SMPP errors
901
+ module Errors
902
+ # Interface is not implemented
903
+ INTERFACE_NOT_IMPLEMENTED = "Interface is not impelemented"
904
+
905
+ #
906
+ DECODE_FAILURE_MSG = "Error: unable to decode packet. "
907
+
908
+ #
909
+ UNKNOWN_TAG_MSG = "Error: unable to decode TLV due to unknown tag. "
910
+
911
+ end
912
+
913
+
914
+
915
+ end
916
+ end
917
+ end