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,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