anthill_smpp_ruby 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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