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,36 @@
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 SMPPHexOutputter < AntHill::TxtOutputter
24
+ include SMPPOutputterBase
25
+
26
+ def initialize(ostream)
27
+ super(ostream)
28
+ initialize_smpp_outputter_base()
29
+ raise Errors::INTERFACE_NOT_IMPLEMENTED
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,315 @@
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
+ module SMPPOutputterBase
23
+ include ISMPPOutputter
24
+
25
+ def initialize_smpp_outputter_base()
26
+ initialize_i_smpp_outputter()
27
+ @encoder = SMPPEncoder.new()
28
+ end
29
+
30
+
31
+ # Get command name based on comamnd id
32
+ def get_command_name(command_id)
33
+ case command_id
34
+ when CommandId::CM_GENERIC_NACK
35
+ return CommandName::CM_GENERIC_NACK
36
+ when CommandId::CM_BIND_RECEIVER
37
+ return CommandName::CM_BIND_RECEIVER
38
+ when CommandId::CM_BIND_RECEIVER_RESP
39
+ return CommandName::CM_BIND_RECEIVER_RESP
40
+ when CommandId::CM_BIND_TRANSMITTER
41
+ return CommandName::CM_BIND_TRANSMITTER
42
+ when CommandId::CM_BIND_TRANSMITTER_RESP
43
+ return CommandName::CM_BIND_TRANSMITTER_RESP
44
+ when CommandId::CM_QUERY_SM
45
+ return CommandName::CM_QUERY_SM
46
+ when CommandId::CM_QUERY_SM_RESP
47
+ return CommandName::CM_QUERY_SM_RESP
48
+ when CommandId::CM_SUBMIT_SM
49
+ return CommandName::CM_SUBMIT_SM
50
+ when CommandId::CM_SUBMIT_SM_RESP
51
+ return CommandName::CM_SUBMIT_SM_RESP
52
+ when CommandId::CM_DELIVER_SM
53
+ return CommandName::CM_DELIVER_SM
54
+ when CommandId::CM_DELIVER_SM_RESP
55
+ return CommandName::CM_DELIVER_SM_RESP
56
+ when CommandId::CM_UNBIND
57
+ return CommandName::CM_UNBIND
58
+ when CommandId::CM_UNBIND_RESP
59
+ return CommandName::CM_UNBIND_RESP
60
+ when CommandId::CM_REPLACE_SM
61
+ return CommandName::CM_REPLACE_SM
62
+ when CommandId::CM_REPLACE_SM_RESP
63
+ return CommandName::CM_REPLACE_SM_RESP
64
+ when CommandId::CM_CANCEL_SM
65
+ return CommandName::CM_CANCEL_SM
66
+ when CommandId::CM_CANCEL_SM_RESP
67
+ return CommandName::CM_CANCEL_SM_RESP
68
+ when CommandId::CM_BIND_TRANSCEIVER
69
+ return CommandName::CM_BIND_TRANSCEIVER
70
+ when CommandId::CM_BIND_TRANSCEIVER_RESP
71
+ return CommandName::CM_BIND_TRANSCEIVER_RESP
72
+ when CommandId::CM_OUTBIND
73
+ return CommandName::CM_OUTBIND
74
+ when CommandId::CM_ENQUIRE_LINK
75
+ return CommandName::CM_ENQUIRE_LINK
76
+ when CommandId::CM_ENQUIRE_LINK_RESP
77
+ return CommandName::CM_ENQUIRE_LINK_RESP
78
+ when CommandId::CM_SUBMIT_MULTI
79
+ return CommandName::CM_SUBMIT_MULTI
80
+ when CommandId::CM_SUBMIT_MULTI_RESP
81
+ return CommandName::CM_SUBMIT_MULTI_RESP
82
+ when CommandId::CM_ALERT_NOTIFICATION
83
+ return CommandName::CM_ALERT_NOTIFICATION
84
+ when CommandId::CM_DATA_SM
85
+ return CommandName::CM_DATA_SM
86
+ when CommandId::CM_DATA_SM_RESP
87
+ return CommandName::CM_DATA_SM_RESP
88
+ when CommandId::CM_BROADCAST_SM
89
+ return CommandName::CM_BROADCAST_SM
90
+ when CommandId::CM_BROADCAST_SM_RESP
91
+ return CommandName::CM_BROADCAST_SM_RESP
92
+ when CommandId::CM_QUERY_BROADCAST_SM
93
+ return CommandName::CM_QUERY_BROADCAST_SM
94
+ when CommandId::CM_QUERY_BROADCAST_SM_RESP
95
+ return CommandName::CM_QUERY_BROADCAST_SM_RESP
96
+ when CommandId::CM_CANCEL_BROADCAST_SM
97
+ return CommandName::CM_CANCEL_BROADCAST_SM
98
+ when CommandId::CM_CANCEL_BROADCAST_SM_RESP
99
+ return CommandName::CM_CANCEL_BROADCAST_SM_RESP
100
+ else
101
+ return "Unknown command id"
102
+ end
103
+
104
+ end
105
+
106
+ # Get error name based on error code
107
+ def get_error_name(error_code)
108
+ case error_code
109
+ when ErrorCode::ESME_ROK
110
+ return ErrorName::ESME_ROK
111
+ when ErrorCode::ESME_RINVMSGLEN
112
+ return ErrorName::ESME_RINVMSGLEN
113
+ when ErrorCode::ESME_RINVCMDLEN
114
+ return ErrorName::ESME_RINVCMDLEN
115
+ when ErrorCode::ESME_RINVCMDID
116
+ return ErrorName::ESME_RINVCMDID
117
+ when ErrorCode::ESME_RINVBNDSTS
118
+ return ErrorName::ESME_RINVBNDSTS
119
+ when ErrorCode::ESME_RALYBND
120
+ return ErrorName::ESME_RALYBND
121
+ when ErrorCode::ESME_RINVPRTFLG
122
+ return ErrorName::ESME_RINVPRTFLG
123
+ when ErrorCode::ESME_RINVREGDLVFLG
124
+ return ErrorName::ESME_RINVREGDLVFLG
125
+ when ErrorCode::ESME_RSYSERR
126
+ return ErrorName::ESME_RSYSERR
127
+ when ErrorCode::ESME_RINVSRCADR
128
+ return ErrorName::ESME_RINVSRCADR
129
+ when ErrorCode::ESME_RINVDSTADR
130
+ return ErrorName::ESME_RINVDSTADR
131
+ when ErrorCode::ESME_RINVMSGID
132
+ return ErrorName::ESME_RINVMSGID
133
+ when ErrorCode::ESME_RBINDFAIL
134
+ return ErrorName::ESME_RBINDFAIL
135
+ when ErrorCode::ESME_RINVPASWD
136
+ return ErrorName::ESME_RINVPASWD
137
+ when ErrorCode::ESME_RINVSYSID
138
+ return ErrorName::ESME_RINVSYSID
139
+ when ErrorCode::ESME_RREPLACEFAIL
140
+ return ErrorName::ESME_RREPLACEFAIL
141
+ when ErrorCode::ESME_RMSGQFUL
142
+ return ErrorName::ESME_RMSGQFUL
143
+ when ErrorCode::ESME_RINVSERTYP
144
+ return ErrorName::ESME_RINVSERTYP
145
+ when ErrorCode::ESME_RINVNUMDESTS
146
+ return ErrorName::ESME_RINVNUMDESTS
147
+ when ErrorCode::ESME_RINVDLNAME
148
+ return ErrorName::ESME_RINVDLNAME
149
+ when ErrorCode::ESME_RINVDESTFLAG
150
+ return ErrorName::ESME_RINVDESTFLAG
151
+ when ErrorCode::ESME_RINVSUBREP
152
+ return ErrorName::ESME_RINVSUBREP
153
+ when ErrorCode::ESME_RINVESMCLASS
154
+ return ErrorName::ESME_RINVESMCLASS
155
+ when ErrorCode::ESME_RCNTSUBDL
156
+ return ErrorName::ESME_RCNTSUBDL
157
+ when ErrorCode::ESME_RSUBMITFAIL
158
+ return ErrorName::ESME_RSUBMITFAIL
159
+ when ErrorCode::ESME_RINVSRCTON
160
+ return ErrorName::ESME_RINVSRCTON
161
+ when ErrorCode::ESME_RINVSRCNPI
162
+ return ErrorName::ESME_RINVSRCNPI
163
+ when ErrorCode::ESME_RINVDSTTON
164
+ return ErrorName::ESME_RINVDSTTON
165
+ when ErrorCode::ESME_RINVDSTNPI
166
+ return ErrorName::ESME_RINVDSTNPI
167
+ when ErrorCode::ESME_RINVSYSTYP
168
+ return ErrorName::ESME_RINVSYSTYP
169
+ when ErrorCode::ESME_RINVREPFLAG
170
+ return ErrorName::ESME_RINVREPFLAG
171
+ when ErrorCode::ESME_RINVNUMMSGS
172
+ return ErrorName::ESME_RINVNUMMSGS
173
+ when ErrorCode::ESME_RTHROTTLED
174
+ return ErrorName::ESME_RTHROTTLED
175
+ when ErrorCode::ESME_RINVSCHED
176
+ return ErrorName::ESME_RINVSCHED
177
+ when ErrorCode::ESME_RINVEXPIRY
178
+ return ErrorName::ESME_RINVEXPIRY
179
+ when ErrorCode::ESME_RINVDFTMSGID
180
+ return ErrorName::ESME_RINVDFTMSGID
181
+ when ErrorCode::ESME_RX_T_APPN
182
+ return ErrorName::ESME_RX_T_APPN
183
+ when ErrorCode::ESME_RX_P_APPN
184
+ return ErrorName::ESME_RX_P_APPN
185
+ when ErrorCode::ESME_RX_R_APPN
186
+ return ErrorName::ESME_RX_R_APPN
187
+ when ErrorCode::ESME_RQUERYFAIL
188
+ return ErrorName::ESME_RQUERYFAIL
189
+ when ErrorCode::ESME_RINVOPTPARSTREAM
190
+ return ErrorName::ESME_RINVOPTPARSTREAM
191
+ when ErrorCode::ESME_ROPTPARNOTALLWD
192
+ return ErrorName::ESME_ROPTPARNOTALLWD
193
+ when ErrorCode::ESME_RINVPARLEN
194
+ return ErrorName::ESME_RINVPARLEN
195
+ when ErrorCode::ESME_RMISSINGOPTPARAM
196
+ return ErrorName::ESME_RMISSINGOPTPARAM
197
+ when ErrorCode::ESME_RINVOPTPARAMVAL
198
+ return ErrorName::ESME_RINVOPTPARAMVAL
199
+ when ErrorCode::ESME_RDELIVERYFAILURE
200
+ return ErrorName::ESME_RDELIVERYFAILURE
201
+ when ErrorCode::ESME_RUNKNOWNERR
202
+ return ErrorName::ESME_RUNKNOWNERR
203
+ when ErrorCode::ESME_RSERTYPUNAUTH
204
+ return ErrorName::ESME_RSERTYPUNAUTH
205
+ when ErrorCode::ESME_RPROHIBITED
206
+ return ErrorName::ESME_RPROHIBITED
207
+ when ErrorCode::ESME_RSERTYPUNAVAIL
208
+ return ErrorName::ESME_RSERTYPUNAVAIL
209
+ when ErrorCode::ESME_RSERTYPDENIED
210
+ return ErrorName::ESME_RSERTYPDENIED
211
+ when ErrorCode::ESME_RINVDCS
212
+ return ErrorName::ESME_RINVDCS
213
+ when ErrorCode::ESME_RINVSRCADDRSUBUNIT
214
+ return ErrorName::ESME_RINVSRCADDRSUBUNIT
215
+ when ErrorCode::ESME_RINVDSTADDRSUBUNIT
216
+ return ErrorName::ESME_RINVDSTADDRSUBUNIT
217
+ when ErrorCode::ESME_RINVBCASTFREQINT
218
+ return ErrorName::ESME_RINVBCASTFREQINT
219
+ when ErrorCode::ESME_RINVBCASTALIAS_NAME
220
+ return ErrorName::ESME_RINVBCASTALIAS_NAME
221
+ when ErrorCode::ESME_RINVBCASTAREAFMT
222
+ return ErrorName::ESME_RINVBCASTAREAFMT
223
+ when ErrorCode::ESME_RINVNUMBCAST_AREAS
224
+ return ErrorName::ESME_RINVNUMBCAST_AREAS
225
+ when ErrorCode::ESME_RINVBCASTCNTTYPE
226
+ return ErrorName::ESME_RINVBCASTCNTTYPE
227
+ when ErrorCode::ESME_RINVBCASTMSGCLASS
228
+ return ErrorName::ESME_RINVBCASTMSGCLASS
229
+ when ErrorCode::ESME_RBCASTFAIL
230
+ return ErrorName::ESME_RBCASTFAIL
231
+ when ErrorCode::ESME_RBCASTQUERYFAIL
232
+ return ErrorName::ESME_RBCASTQUERYFAIL
233
+ when ErrorCode::ESME_RBCASTCANCELFAIL
234
+ return ErrorName::ESME_RBCASTCANCELFAIL
235
+ when ErrorCode::ESME_RINVBCAST_REP
236
+ return ErrorName::ESME_RINVBCAST_REP
237
+ when ErrorCode::ESME_RINVBCASTSRVGRP
238
+ return ErrorName::ESME_RINVBCASTSRVGRP
239
+ when ErrorCode::ESME_RINVBCASTCHANIND
240
+ return ErrorName::ESME_RINVBCASTCHANIND
241
+ else
242
+ return "Unknown error code (vendor?)"
243
+ end
244
+ end
245
+
246
+ # Get message state name based on message state code
247
+ def get_message_state_name(message_state_code)
248
+ case message_state_code
249
+ when MessageState::ENROUTE
250
+ return MessageStateName::ENROUTE
251
+ when MessageState::DELIVERED
252
+ return MessageStateName::DELIVERED
253
+ when MessageState::EXPIRED
254
+ return MessageStateName::EXPIRED
255
+ when MessageState::DELETED
256
+ return MessageStateName::DELETED
257
+ when MessageState::UNDELIVERABLE
258
+ return MessageStateName::UNDELIVERABLE
259
+ when MessageState::ACCEPTED
260
+ return MessageStateName::ACCEPTED
261
+ when MessageState::UNKNOWN
262
+ return MessageStateName::UNKNOWN
263
+ when MessageState::REJECTED
264
+ return MessageStateName::REJECTED
265
+ when MessageState::SKIPPED
266
+ return MessageStateName::SKIPPED
267
+ else
268
+ return "Unknown message state code"
269
+ end
270
+ end
271
+
272
+ # Get netwok name based on network code
273
+ def get_network_error_name(network_error_code)
274
+ case network_error_code
275
+ when NetworkTypeErrorCode::ANSI_136_ACCESS_DENIED_REASON
276
+ return NetworkTypeErrorName::ANSI_136_ACCESS_DENIED_REASON
277
+ when NetworkTypeErrorCode::IS_95_ACCESS_DENIED_REASON
278
+ return NetworkTypeErrorName::IS_95_ACCESS_DENIED_REASON
279
+ when NetworkTypeErrorCode::GSM
280
+ return NetworkTypeErrorName::GSM
281
+ when NetworkTypeErrorCode::ANSI_136_CAUSE_CODE
282
+ return NetworkTypeErrorName::ANSI_136_CAUSE_CODE
283
+ when NetworkTypeErrorCode::IS_95_CAUSE_CODE
284
+ return NetworkTypeErrorName::IS_95_CAUSE_CODE
285
+ when NetworkTypeErrorCode::ANSI_41_ERROR
286
+ return NetworkTypeErrorName::ANSI_41_ERROR
287
+ when NetworkTypeErrorCode::SMPP_ERROR
288
+ return NetworkTypeErrorName::SMPP_ERROR
289
+ when NetworkTypeErrorCode::MESSAGE_CENTER_SPECIFIC
290
+ return NetworkTypeErrorName::MESSAGE_CENTER_SPECIFIC
291
+ else
292
+ return "Unknown network error code"
293
+ end
294
+ end
295
+
296
+ # Get netwok name based on network code
297
+ def get_area_format_name(area_format_code)
298
+ case area_format_code
299
+ when BroadcastAreaFormat::ALIAS
300
+ return BroadcastAreaFormatName::ALIAS
301
+ when BroadcastAreaFormat::ELLIPSOID
302
+ return BroadcastAreaFormatName::ELLIPSOID
303
+ when BroadcastAreaFormat::POLYGON
304
+ return BroadcastAreaFormatName::POLYGON
305
+ else
306
+ return "Unknown area format code"
307
+ end
308
+ end
309
+ protected
310
+ attr_accessor :encoder
311
+
312
+ end
313
+ end
314
+ end
315
+ end
@@ -0,0 +1,98 @@
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 describe SMPP header
23
+ class Header
24
+ # Constructor.
25
+ def initialize()
26
+ @command_length = 0
27
+ @command_id = 0
28
+ @command_status = 0
29
+ @sequence_number = 0
30
+ end
31
+
32
+ # Public accessors
33
+ attr_accessor :command_length
34
+ attr_accessor :command_id
35
+ attr_accessor :command_status
36
+ attr_accessor :sequence_number
37
+ end
38
+
39
+ # Class describe SME address
40
+ class SMEAddress
41
+ # Constructor.
42
+ def initialize(ton = TON::UNKNOWN, npi = NPI::UNKNOWN, address = "")
43
+ @ton = ton
44
+ @npi = npi
45
+ @address = address
46
+ end
47
+
48
+ # Public accessors
49
+ attr_accessor :ton
50
+ attr_accessor :npi
51
+ attr_accessor :address
52
+ end
53
+
54
+
55
+ # Class describe destination adress at SUBMIT_MULTI command
56
+ class DestAddress
57
+ # Constructor.
58
+ def initialize(dest_flag = DestFlag::UNKNOWN)
59
+ @dest_flag = dest_flag
60
+ @address = nil
61
+ @distr_list_name = nil
62
+ end
63
+
64
+ public
65
+ attr_accessor :dest_flag
66
+ attr_accessor :address
67
+ attr_accessor :distr_list_name
68
+ end
69
+
70
+ # Class describe unsuccessSME at SUBMIT_MULTI_RESP
71
+ class UnsuccessSME
72
+ # Constructor.
73
+ def initialize(sme_address = nil, error_status_code = nil)
74
+ @sme_address = sme_address
75
+ @error_status_code = error_status_code
76
+ end
77
+
78
+ public
79
+ attr_accessor :sme_address
80
+ attr_accessor :error_status_code
81
+ end
82
+
83
+ # Class describe SMPP network error code
84
+ class NetworkErrorCode
85
+ # Constructor.
86
+ def initialize(network_code, error_code)
87
+ @network_code = network_code
88
+ @error_code = error_code
89
+ end
90
+
91
+ # Public accessors
92
+ attr_accessor :network_code
93
+ attr_accessor :error_code
94
+ end
95
+
96
+ end
97
+ end
98
+ end