summaryrefslogtreecommitdiffstats
path: root/codec
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-07-19 19:27:14 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-07-19 19:27:14 +0200
commitd22a3e248aa105a8a26d13266d8494be2f331778 (patch)
treeb2c5829638cb803a6df4780120a73ded44963e8f /codec
parent2359ee54499a93d41d185a8e4ce8693349395394 (diff)
smpp: Begin with DeliverSM codec handling
DeliverSM is very similar to SubmitSM but some of the optional items are missing.
Diffstat (limited to 'codec')
-rw-r--r--codec/SMPPDeliverSM.st98
1 files changed, 98 insertions, 0 deletions
diff --git a/codec/SMPPDeliverSM.st b/codec/SMPPDeliverSM.st
new file mode 100644
index 0000000..51edf25
--- /dev/null
+++ b/codec/SMPPDeliverSM.st
@@ -0,0 +1,98 @@
+"
+ (C) 2014 by Holger Hans Peter Freyther
+ All Rights Reserved
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+"
+
+SMPPBodyBase subclass: SMPPDeliverSM [
+ | service_type source_addr_ton source_addr_npi source_addr
+ dest_addr_ton dest_addr_npi destination_addr esm_class
+ protocol_id priority_flag schedule_delivery_time
+ validity_period registered_delivery replace_if_present_flag
+ data_coding sm_default_msg_id short_message
+
+ user_message_reference source_port destination_port
+ sar_msg_ref_num sar_total_segments sar_segment_seqnum
+ user_response_code privacy_indicator payload_type
+ message_payload callback_num source_subaddress
+ dest_subaddress language_indicator its_session_info
+ network_error_code message_state receipted_message_id |
+ <category: 'SMPP-Codec'>
+
+ SMPPDeliverSM class >> messageType [
+ ^self deliverSM
+ ]
+
+ SMPPDeliverSM class >> tlvDescription [
+ ^OrderedCollection new
+ add: SMPPServiceType tlvDescription;
+ add: (SMPPAddressTypeOfNumber tlvDescription
+ instVarName: #source_addr_ton; yourself);
+ add: (SMPPAddressNumberingPlanIndicator tlvDescription
+ instVarName: #source_addr_npi; yourself);
+ add: (SMPPAddress tlvDescription
+ instVarName: #source_addr; yourself);
+ add: (SMPPAddressTypeOfNumber tlvDescription
+ instVarName: #dest_addr_ton; yourself);
+ add: (SMPPAddressNumberingPlanIndicator tlvDescription
+ instVarName: #dest_addr_npi; yourself);
+ add: (SMPPAddress tlvDescription
+ instVarName: #destination_addr; yourself);
+ add: SMPPESMClass tlvDescription;
+ add: SMPPProtocolId tlvDescription;
+ add: SMPPPriorityFlag tlvDescription;
+ add: SMPPScheduleDeliveryTime tlvDescription;
+ add: SMPPValidityPeriod tlvDescription;
+ add: SMPPRegisteredDelivery tlvDescription;
+ add: SMPPReplaceIfPresentFlag tlvDescription;
+ add: SMPPDataCoding tlvDescription;
+ add: SMPPDefaultMessageId tlvDescription;
+ add: SMPPShortMessage tlvDescription;
+ add: (SMPPValueHolder for: #user_message_reference tag: 16r0204);
+ add: (SMPPValueHolder for: #source_port tag: 16r020A);
+ add: (SMPPValueHolder for: #destination_port tag: 16r020B);
+ add: (SMPPValueHolder for: #sar_msg_ref_num tag: 16r020C);
+ add: (SMPPValueHolder for: #sar_total_segments tag: 16r020E);
+ add: (SMPPValueHolder for: #sar_segment_seqnum tag: 16r020F);
+ add: (SMPPValueHolder for: #user_response_code tag: 16r0205);
+ add: (SMPPValueHolder for: #privacy_indicator tag: 16r0201);
+ add: (SMPPValueHolder for: #payload_type tag: 16r0019);
+ add: (SMPPValueHolder for: #message_payload tag: 16r0424);
+ add: (SMPPValueHolder for: #callback_num tag: 16r0381);
+ add: (SMPPValueHolder for: #source_subaddress tag: 16r0202);
+ add: (SMPPValueHolder for: #dest_subaddress tag: 16r0203);
+ add: (SMPPValueHolder for: #language_indicator tag: 16r020D);
+ add: (SMPPValueHolder for: #its_session_info tag: 16r1383);
+ add: (SMPPValueHolder for: #network_error_code tag: 16r0423);
+ add: (SMPPValueHolder for: #message_state tag: 16r0427);
+ add: (SMPPValueHolder for: #receipted_message_id tag: 16r001E);
+ yourself
+ ]
+
+ sourceAddress [
+ <category: 'accessing'>
+ ^source_addr
+ ]
+
+ destinationAddress [
+ <category: 'accessing'>
+ ^destination_addr
+ ]
+
+ shortMessage [
+ <category: 'accessing'>
+ ^short_message
+ ]
+]