This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.org
Review at https://gerrit.osmocom.org/7695
WIP: SMPP codec for TITAN
Change-Id: Ib1952ffa0cbc915ab4c088da03fec2da4258b47c
---
A library/SMPP_Types.ttcn
1 file changed, 520 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/95/7695/1
diff --git a/library/SMPP_Types.ttcn b/library/SMPP_Types.ttcn
new file mode 100644
index 0000000..45bca92
--- /dev/null
+++ b/library/SMPP_Types.ttcn
@@ -0,0 +1,520 @@
+module SMPP_Types {
+
+import from General_Types all;
+import from Osmocom_Types all;
+
+type record SMPP_PDU {
+ /* Header */
+ uint32_t cmd_len,
+ OCT4 cmd_id,
+ SMPP_CmdStatus cmd_status,
+ uint32_t seq_nr,
+ /* Mandatory part (non-TLV) */
+ SMPP_MandPars mand optional,
+ /* Optional part (TLV) */
+ SMPP_TLVs opt optional
+} with {
+ variant (cmd_len) "LENGTHTO(cmd_len,cmd_id,cmd_status,seq_nr,mand,opt)"
+ variant (mand) "CROSSTAG(
+ bind_transmitter, cmd_id = SMPP_CMD_BIND_TRANSMITTER;
+ bind_transmitter_resp, cmd_id = SMPP_CMD_BIND_TRANSMITTER_RESP;
+ bind_receiver, cmd_id = SMPP_CMD_BIND_RECEIVER;
+ bind_receiver_resp, cmd_id = SMPP_CMD_BIND_RECEIVER_RESP;
+ bind_transceiver, cmd_id = SMPP_CMD_BIND_TRANSCEIVER;
+ bind_transceiver_resp, cmd_id = SMPP_CMD_BIND_TRANSCEIVER_RESP;
+ outbind, cmd_id = SMPP_CMD_OUTBIND;
+ submit_sm, cmd_id = SMPP_CMD_SUBMIT_SM;
+ submit_sm_resp, cmd_id = SMPP_CMD_SUBMIT_SM_RESP;
+ deliver_sm, cmd_id = SMPP_CMD_DELIVER_SM;
+ deliver_sm_resp, cmd_id = SMPP_CMD_DELIVER_SM_RESP;
+ alert_notif, cmd_id = SMPP_CMD_ALERT_NOTIFICATION;
+ )"
+}
+
+
+type union SMPP_MandPars {
+ SMPP_Bind_MandPars bind_transmitter,
+ SMPP_BindResp_MandPars bind_transmitter_resp,
+ SMPP_Bind_MandPars bind_receiver,
+ SMPP_BindResp_MandPars bind_receiver_resp,
+ SMPP_Bind_MandPars bind_transceiver,
+ SMPP_BindResp_MandPars bind_transceiver_resp,
+ SMPP_Outbind_MandPars outbind,
+ SMPP_SubmitSM_MandPars submit_sm,
+ SMPP_SubmitSMResp_MandPars submit_sm_resp,
+ /* FIXME */
+ SMPP_DeliverSM_MandPars deliver_sm,
+ SMPP_DeliverSMResp_MandPars deliver_sm_resp,
+ /* FIXME */
+ SMPP_AlertNotif_MandPars alert_notif
+};
+
+/* 4.1.1, 4.1.3, 4.1.5 */
+type record SMPP_Bind_MandPars {
+ COctetString system_id,
+ COctetString password,
+ COctetString system_type,
+ OCT1 interface_version,
+ SMPP_TON addr_ton,
+ SMPP_NPI addr_npi,
+ COctetString addr_range
+}
+
+/* 4.1.2, 4.1.4, 4.1.6 */
+type record SMPP_BindResp_MandPars {
+ COctetString system_id
+}
+
+/* 4.1.7 */
+type record SMPP_Outbind_MandPars {
+ COctetString system_id,
+ COctetString password
+}
+
+/* 4.4.1 Submit SM */
+type record SMPP_SubmitSM_MandPars {
+ COctetString service_type,
+ SMPP_TON source_addr_ton,
+ SMPP_NPI source_addr_npi,
+ COctetString source_addr,
+ SMPP_TON dest_addr_ton,
+ SMPP_NPI dest_addr_npi,
+ COctetString dest_addr,
+ OCT1 esm_class,
+ OCT1 protocol_id,
+ OCT1 priority_flag,
+ COctetString schedule_delivery_time,
+ COctetString validity_period,
+ OCT1 registered_delivery,
+ SMPP_DCS data_coding,
+ OCT1 sm_default_msg_id,
+ uint8_t sm_length,
+ octetstring short_message
+} with { variant (sm_length) "LENGTHTO(short_message)" };
+
+/* 4.4.2 */
+type record SMPP_SubmitSMResp_MandPars {
+ COctetString message_id
+}
+
+/* 4.6.1 */
+type record SMPP_DeliverSM_MandPars {
+ COctetString service_type,
+ SMPP_TON source_addr_ton,
+ SMPP_NPI source_addr_npi,
+ COctetString source_addr,
+ SMPP_TON dest_addr_ton,
+ SMPP_NPI dest_addr_npi,
+ COctetString dest_addr,
+ OCT1 esm_class,
+ OCT1 protocol_id,
+ OCT1 priority_flag,
+ COctetString schedule_delivery_time,
+ COctetString validity_period,
+ OCT1 registered_delivery,
+ OCT1 replace_if_present_flag,
+ SMPP_DCS data_coding,
+ OCT1 sm_default_msg_id,
+ uint8_t sm_length,
+ octetstring short_message
+} with { variant (sm_length) "LENGTHTO(short_message)" };
+
+/* 4.6.2 */
+type record SMPP_DeliverSMResp_MandPars {
+ COctetString message_id
+}
+
+/* 4.12.1 */
+type record SMPP_AlertNotif_MandPars {
+ SMPP_TON source_addr_ton,
+ SMPP_NPI source_addr_npi,
+ COctetString source_addr,
+ SMPP_TON esme_addr_ton,
+ SMPP_NPI esme_addr_npi,
+ COctetString esme_addr
+}
+
+
+/* 5.1.2.1 */
+/*
+type enumerated SMPP_CmdId {
+ SMPP_CMD_GENERIC_NACK ('00000000'O),
+ SMPP_CMD_BIND_RECEIVER ('00000001'O),
+ SMPP_CMD_BIND_RECEIVER_RESP ('80000001'O),
+ SMPP_CMD_BIND_TRANSMITTER ('00000002'O),
+ SMPP_CMD_BIND_TRANSMITTER_RESP ('80000002'O),
+ SMPP_CMD_QUERY_SM ('00000003'O),
+ SMPP_CMD_QUERY_SM_RESP ('80000003'O),
+ SMPP_CMD_SUBMIT_SM ('00000004'O),
+ SMPP_CMD_SUBMIT_SM_RESP ('80000004'O),
+ SMPP_CMD_DELIVER_SM ('00000005'O),
+ SMPP_CMD_DELIVER_SM_RESP ('80000005'O),
+ SMPP_CMD_UNBIND ('00000006'O),
+ SMPP_CMD_UNBIND_RESP ('80000006'O),
+ SMPP_CMD_REPLACE_SM ('00000007'O),
+ SMPP_CMD_REPLACE_SM_RESP ('80000007'O),
+ SMPP_CMD_CANCEL_SM ('00000008'O),
+ SMPP_CMD_CANCEL_SM_RESP ('80000008'O),
+ SMPP_CMD_BIND_TRANSCEIVER ('00000009'O),
+ SMPP_CMD_BIND_TRANSCEIVER_RESP ('80000009'O),
+
+ SMPP_CMD_OUTBIND ('0000000B'O),
+
+ SMPP_CMD_BIND_ENQUIRE_LINK ('00000015'O),
+ SMPP_CMD_BIND_ENQUIRE_LINK_RESP ('80000015'O),
+
+ SMPP_CMD_SUBMIT_MULTI ('00000021'O),
+ SMPP_CMD_SUBMIT_MULTI_RESP ('80000021'O),
+
+ SMPP_CMD_ALERT_NOTIFICATION ('00000102'O),
+
+ SMPP_CMD_DATA_SM ('00000103'O),
+ SMPP_CMD_DATA_SM_RESP ('80000103'O)
+} with { variant "FIELDLENGTH(32)" };
+*/
+const OCT4 SMPP_CMD_GENERIC_NACK := '80000000'O;
+const OCT4 SMPP_CMD_BIND_RECEIVER := '00000001'O;
+const OCT4 SMPP_CMD_BIND_RECEIVER_RESP := '80000001'O;
+const OCT4 SMPP_CMD_BIND_TRANSMITTER := '00000002'O;
+const OCT4 SMPP_CMD_BIND_TRANSMITTER_RESP := '80000002'O;
+const OCT4 SMPP_CMD_QUERY_SM := '00000003'O;
+const OCT4 SMPP_CMD_QUERY_SM_RESP := '80000003'O;
+const OCT4 SMPP_CMD_SUBMIT_SM := '00000004'O;
+const OCT4 SMPP_CMD_SUBMIT_SM_RESP := '80000004'O;
+const OCT4 SMPP_CMD_DELIVER_SM := '00000005'O;
+const OCT4 SMPP_CMD_DELIVER_SM_RESP := '80000005'O;
+const OCT4 SMPP_CMD_UNBIND := '00000006'O;
+const OCT4 SMPP_CMD_UNBIND_RESP := '80000006'O;
+const OCT4 SMPP_CMD_REPLACE_SM := '00000007'O;
+const OCT4 SMPP_CMD_REPLACE_SM_RESP := '80000007'O;
+const OCT4 SMPP_CMD_CANCEL_SM := '00000008'O;
+const OCT4 SMPP_CMD_CANCEL_SM_RESP := '00000008'O;
+const OCT4 SMPP_CMD_BIND_TRANSCEIVER := '00000009'O;
+const OCT4 SMPP_CMD_BIND_TRANSCEIVER_RESP := '80000009'O;
+const OCT4 SMPP_CMD_OUTBIND := '0000000B'O;
+const OCT4 SMPP_CMD_ENQUIRE_LINK := '00000015'O;
+const OCT4 SMPP_CMD_ENQUIRE_LINK_RESP := '80000015'O;
+const OCT4 SMPP_CMD_SUBMIT_MULTI := '00000021'O;
+const OCT4 SMPP_CMD_SUBMIT_MULTI_RESP := '80000021'O;
+const OCT4 SMPP_CMD_ALERT_NOTIFICATION := '00000102'O;
+const OCT4 SMPP_CMD_DATA_SM := '00000103'O;
+const OCT4 SMPP_CMD_DATA_SM_RESP := '80000103'O;
+
+/* 5.1.3 */
+type enumerated SMPP_CmdStatus {
+ ESME_ROK ('00000000'O),
+ ESME_RINVMSGLEN ('00000001'O),
+ ESME_RINVCMDLEN ('00000002'O),
+ ESME_RINVCMDID ('00000003'O),
+ ESME_RINVBNDSTS ('00000004'O),
+ ESME_RALYBND ('00000005'O),
+ ESME_RINVPRTFLG ('00000006'O),
+ ESME_RINVREGDLVFLG ('00000007'O),
+ ESME_RSYSERR ('00000008'O),
+ ESME_RINVSRCADR ('0000000A'O),
+ ESME_RINVDSTADR ('0000000B'O),
+ ESME_RINVMSGID ('0000000C'O),
+ ESME_RBINDFAIL ('0000000D'O),
+ ESME_RINVPASWD ('0000000E'O),
+ ESME_RINVSYSID ('0000000F'O),
+ ESME_RCANCELFAIL ('00000011'O),
+ ESME_RREPLACEFAIL ('00000013'O),
+ ESME_RMSGQFUL ('00000014'O),
+ ESME_RINVSERTYP ('00000015'O),
+ ESME_RINVNUMDESTS ('00000033'O),
+ ESME_RINVDLNAME ('00000034'O),
+ ESME_RINVDESTFLAG ('00000040'O),
+ ESME_RINVSUBREP ('00000042'O),
+ ESME_RINVESMCLASS ('00000043'O),
+ ESME_RCNTSUBDL ('00000044'O),
+ ESME_RSUBMITFAIL ('00000045'O),
+ ESME_RINVSRCTON ('00000048'O),
+ ESME_RINVSRCNPI ('00000049'O),
+ ESME_RINVDSTTON ('00000050'O),
+ ESME_RINVDSTNPI ('00000051'O),
+ ESME_RINVSYSTYP ('00000053'O),
+ ESME_RINVREPFLAG ('00000054'O),
+ ESME_RINVNUMMSGS ('00000055'O),
+ ESME_RTHROTTLED ('00000058'O),
+ ESME_RINVSCHED ('00000061'O),
+ ESME_RINVEXPIRY ('00000062'O),
+ ESME_RINVDFTMSGID ('00000063'O),
+ ESME_RX_T_APPN ('00000064'O),
+ ESME_RX_P_APPN ('00000065'O),
+ ESME_RX_R_APPN ('00000066'O),
+ ESME_RQUERYFAIL ('00000067'O),
+ ESME_RINVOPTPARSTREAM ('000000C0'O),
+ ESME_ROPTPARNOTALLWD ('000000C1'O),
+ ESME_RINVPARLEN ('000000C2'O),
+ ESME_RMISSINGOPTPARAM ('000000C3'O),
+ ESME_RINVOPTPARAMVAL ('000000C4'O),
+ ESME_RDELIVERYFAILURE ('000000FE'O),
+ ESME_RUNKNOWNERR ('000000FF'O)
+
+} with { variant "FIELDLENGTH(32)" };
+
+/* 5.2.4 */
+const OCT1 SMPP_VERSION_34 := '34'O;
+
+/* 5.2.5 */
+type enumerated SMPP_TON {
+ SMPP_TON_UNKNOWN ('00000000'B),
+ SMPP_TON_INTERNATIONAL ('00000001'O),
+ SMPP_TON_NATIONAL ('00000010'O),
+ SMPP_TON_NETWORK_SPECIFIC ('00000011'O),
+ SMPP_TON_SUBSCRIBER_NUMBER ('00000100'O),
+ SMPP_TON_ABBREVIATED ('00000110'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/* 5.2.6 */
+type enumerated SMPP_NPI {
+ SMPP_NPI_UNKNOWN ('00000000'O),
+ SMPP_NPI_ISDN_E164 ('00000001'O),
+ SMPP_NPI_DATA_X121 ('00000011'O),
+ SMPP_NPI_TELEX_F69 ('00000100'O),
+ SMPP_NPI_MOBILE_E212 ('00000110'O),
+ SMPP_NPI_NATIONAL ('00001000'O),
+ SMPP_NPI_PRIVATE ('00001001'O),
+ SMPP_NPI_ERMES ('00001010'O),
+ SMPP_NPI_INTERNET ('00001110'O),
+ SMPP_NPI_WAP_CLIENT_ID ('00010010'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/* 5.2.19 */
+type enumerated SMPP_DCS {
+ SMPP_DCS_SMSC_DEFAULT ('00000000'O),
+ SMPP_DCS_IA5_ASCII ('00000001'O),
+ SMPP_DCS_OCTET_UNSPEC_2 ('00000010'O),
+ SMPP_DCS_LATIN1_8859_1 ('00000011'O),
+ SMPP_DCS_OCTET_UNSPEC_4 ('00000100'O),
+ SMPP_DCS_JIS_X0208 ('00000101'O),
+ SMPP_DCS_CYRILLIC_8859_5 ('00000110'O),
+ SMPP_DCS_HEBREW_8859_8 ('00000111'O),
+ SMPP_DCS_UCS2_IEC10646 ('00001000'O),
+ SMPP_DCS_PICTOGRAM ('00001001'O),
+ SMPP_DCS_ISO_2022_JP ('00001010'O),
+ SMPP_DCS_EXT_KANJI_JIS_X0212 ('00001101'O),
+ SMPP_DCS_KS_C_5601 ('00001110'O)
+ /* FIXME: GSM MWI / message class */
+} with { variant "FIELDLENGTH(8)" };
+
+
+/* 5.2.28 */
+type enumerated SMPP_MessageState {
+ SMPP_MSTATE_ENROUTE (1),
+ SMPP_MSTATE_DELIVERED (2),
+ SMPP_MSTATE_EXPIRED (3),
+ SMPP_MSTATE_DELETED (4),
+ SMPP_MSTATE_UNDELIVERABLE (5),
+ SMPP_MSTATE_ACCEPTED (6),
+ SMPP_MSTATE_UNKNOWN (7),
+ SMPP_MSTATE_REJECTED (8)
+} with { variant "FIELDLENGTH(8)" };
+
+/* 5.3.2 */
+type enumerated SMPP_IEI {
+ SMPP_IEI_dest_addr_subunit ('0005'O),
+ SMPP_IEI_dest_network_type ('0006'O),
+ SMPP_IEI_dest_bearer_type ('0007'O),
+ SMPP_IEI_dest_telematics_id ('0008'O),
+ SMPP_IEI_source_addr_subunit ('000D'O),
+ SMPP_IEI_source_network_type ('000E'O),
+ SMPP_IEI_source_bearer_type ('000F'O),
+ SMPP_IEI_source_telematics_id ('0010'O),
+ SMPP_IEI_qos_time_to_live ('0017'O),
+ SMPP_IEI_payload_type ('0019'O),
+ SMPP_IEI_additional_status_info_text ('001D'O),
+ SMPP_IEI_receipted_message_id ('001E'O),
+ SMPP_IEI_ms_msg_wait_facilities ('0030'O),
+ SMPP_IEI_privacy_indicator ('0201'O),
+ SMPP_IEI_source_subaddress ('0202'O),
+ SMPP_IEI_dest_subaddress ('0203'O),
+ SMPP_IEI_user_message_reference ('0204'O),
+ SMPP_IEI_user_response_code ('0205'O),
+ SMPP_IEI_source_port ('020A'O),
+ SMPP_IEI_destination_port ('020B'O),
+ SMPP_IEI_sar_msg_ref_num ('020C'O),
+ SMPP_IEI_language_indicator ('020D'O),
+ SMPP_IEI_sar_total_segments ('020E'O),
+ SMPP_IEI_sar_segment_seqnum ('020F'O),
+ SMPP_IEI_SC_interface_version ('0210'O),
+ SMPP_IEI_callback_num_pres_ind ('0302'O),
+ SMPP_IEI_callback_num_atag ('0303'O),
+ SMPP_IEI_number_of_messages ('0304'O),
+ SMPP_IEI_callback_num ('0381'O),
+ SMPP_IEI_dpf_result ('0420'O),
+ SMPP_IEI_set_dpf ('0421'O),
+ SMPP_IEI_ms_availability_status ('0422'O),
+ SMPP_IEI_network_error_code ('0423'O),
+ SMPP_IEI_message_payload ('0424'O),
+ SMPP_IEI_delivery_failure_reason ('0425'O),
+ SMPP_IEI_more_messages_to_send ('0426'O),
+ SMPP_IEI_message_state ('0427'O),
+ SMPP_IEI_ussd_service_op ('0501'O),
+ SMPP_IEI_display_time ('1201'O),
+ SMPP_IEI_sms_signal ('1203'O),
+ SMPP_IEI_ms_validity ('1204'O),
+ SMPP_IEI_alert_on_message_delivery ('130C'O),
+ SMPP_IEI_its_reply_type ('1380'O),
+ SMPP_IEI_its_session_info ('1383'O)
+} with { variant "FIELDLENGTH(16)" };
+
+type record of SMPP_TLV SMPP_TLVs;
+
+type record SMPP_TLV {
+ SMPP_IEI tag,
+ uint16_t len,
+ SMPP_IE_Body val
+} with {
+ variant (len) "LENGTHTO(val)"
+ variant (val) "CROSSTAG(
+ dest_addr_subunit, tag = SMPP_IEI_dest_addr_subunit;
+ source_addr_subunit, tag = SMPP_IEI_source_addr_subunit;
+ dest_network_type, tag = SMPP_IEI_dest_network_type;
+ source_network_type, tag = SMPP_IEI_source_network_type;
+ dest_bearer_type, tag = SMPP_IEI_dest_bearer_type;
+ source_bearer_type, tag = SMPP_IEI_source_bearer_type;
+ dest_telematics_id, tag = SMPP_IEI_dest_telematics_id;
+ source_telematics_id, tag = SMPP_IEI_source_telematics_id;
+ qos_time_to_live, tag = SMPP_IEI_qos_time_to_live;
+ payload_type, tag = SMPP_IEI_payload_type;
+ additional_status_info_text, tag = SMPP_IEI_additional_status_info_text;
+ receipted_message_id, tag = SMPP_IEI_receipted_message_id;
+ ms_msg_wait_facilities, tag = SMPP_IEI_ms_msg_wait_facilities;
+ privacy_indicator, tag = SMPP_IEI_privacy_indicator;
+ source_subaddress, tag = SMPP_IEI_source_subaddress;
+ dest_subaddress, tag = SMPP_IEI_dest_subaddress;
+ user_message_reference, tag = SMPP_IEI_user_message_reference;
+ user_response_code, tag = SMPP_IEI_user_response_code;
+ language_indicator, tag = SMPP_IEI_language_indicator;
+ source_port, tag = SMPP_IEI_source_port;
+ destination_port, tag = SMPP_IEI_destination_port;
+ sar_msg_ref_num, tag = SMPP_IEI_sar_msg_ref_num;
+ sar_total_segments, tag = SMPP_IEI_sar_total_segments;
+ sc_interface_version, tag = SMPP_IEI_SC_interface_version;
+ display_time, tag = SMPP_IEI_display_time;
+ ms_validity, tag = SMPP_IEI_ms_validity;
+ dpf_result, tag = SMPP_IEI_dpf_result;
+ set_dpf, tag = SMPP_IEI_set_dpf;
+ ms_availability_status, tag = SMPP_IEI_ms_availability_status;
+ message_payload, tag = SMPP_IEI_message_payload;
+ delivery_failure_reason , tag = SMPP_IEI_delivery_failure_reason;
+ more_messages_to_send, tag = SMPP_IEI_more_messages_to_send;
+ message_state, tag = SMPP_IEI_message_state;
+ callback_num, tag = SMPP_IEI_callback_num;
+ callback_num_pres_ind, tag = SMPP_IEI_callback_num_pres_ind;
+ callback_num_atag, tag = SMPP_IEI_callback_num_atag;
+ number_of_messages, tag = SMPP_IEI_number_of_messages;
+ sms_signal, tag = SMPP_IEI_sms_signal;
+ its_reply_type, tag = SMPP_IEI_its_reply_type;
+ its_session_info, tag = SMPP_IEI_its_session_info;
+ ussd_service_op, tag = SMPP_IEI_ussd_service_op;
+ other, OTHERWISE;
+ )"
+};
+
+type union SMPP_IE_Body {
+ SMPP_Subunit dest_addr_subunit,
+ SMPP_Subunit source_addr_subunit,
+ SMPP_NetworkType dest_network_type,
+ SMPP_NetworkType source_network_type,
+ SMPP_BearerType dest_bearer_type,
+ SMPP_BearerType source_bearer_type,
+ uint16_t dest_telematics_id,
+ uint16_t source_telematics_id,
+ uint32_t qos_time_to_live,
+ uint8_t payload_type,
+ COctetString additional_status_info_text,
+ COctetString receipted_message_id,
+ BIT8 ms_msg_wait_facilities,
+ uint8_t privacy_indicator,
+ octetstring source_subaddress,
+ octetstring dest_subaddress,
+ uint16_t user_message_reference,
+ uint8_t user_response_code,
+ uint8_t language_indicator,
+ uint16_t source_port,
+ uint16_t destination_port,
+ uint16_t sar_msg_ref_num,
+ uint8_t sar_total_segments,
+ OCT1 sc_interface_version,
+ uint8_t display_time,
+ uint8_t ms_validity,
+ uint8_t dpf_result,
+ uint8_t set_dpf,
+ SMPP_MsAvailStatus ms_availability_status,
+ octetstring message_payload,
+ uint8_t delivery_failure_reason,
+ uint8_t more_messages_to_send,
+ SMPP_MessageState message_state,
+ octetstring callback_num,
+ BIT8 callback_num_pres_ind,
+ octetstring callback_num_atag,
+ uint8_t number_of_messages,
+ uint16_t sms_signal,
+ uint8_t its_reply_type,
+ OCT2 its_session_info,
+ OCT1 ussd_service_op,
+ octetstring other
+}
+
+/* 5.3.2.1 */
+type enumerated SMPP_Subunit {
+ SMPP_SUBUNIT_UNKNOWN ('00'O),
+ SMPP_SUBUNIT_MS_DISPLAY ('01'O),
+ SMPP_SUBUNIT_MOBILE_EQUIPMENT ('02'O),
+ SMPP_SUBUNIT_SMART_CARD_1 ('03'O),
+ SMPP_SUBINIT_EXTERNAL_1 ('04'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/*5.3.2.3 */
+type enumerated SMPP_NetworkType {
+ SMPP_NETT_UNKNOWN ('00'O),
+ SMPP_NETT_GSM ('01'O),
+ SMPP_NETT_ANSI136_TDMA ('02'O),
+ SMPP_NETT_IS95_CDMA ('03'O),
+ SMPP_NETT_PDC ('04'O),
+ SMPP_NETT_PHS ('05'O),
+ SMPP_NETT_IDEN ('06'O),
+ SMPP_NETT_AMPS ('07'O),
+ SMPP_NETT_PAGING ('08'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/* 6.3.2.5 */
+type enumerated SMPP_BearerType {
+ SMPP_BEART_UNKNOWN ('00'O),
+ SMPP_BEART_SMS ('01'O),
+ SMPP_BEART_CSD ('02'O),
+ SMPP_BEART_PACKET_DATA ('03'O),
+ SMPP_BEART_USSD ('04'O),
+ SMPP_BEART_CDPD ('05'O),
+ SMPP_BEART_DATATAC ('06'O),
+ SMPP_BEART_FLEX ('07'O),
+ SMPP_BEART_CELL_BROADCAST ('08'O)
+} with { variant "FIELDLENGTH(8)" };
+
+
+/* 5.3.2.30 */
+type enumerated SMPP_MsAvailStatus {
+ SMPP_MS_AVAIL_AVAILABLE ('00'O),
+ SMPP_MS_AVAIL_DENIED ('01'O),
+ SMPP_MS_AVAIL_UNAVAILABLE ('02'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/* 5.3.2.31 */
+type record SMPP_NetErrCode {
+ SMPP_NetErrCodeType net_type,
+ uint16_t err_code
+} with { variant "" };
+type enumerated SMPP_NetErrCodeType {
+ SMPP_ERR_NETT_ANSI136 ('01'O),
+ SMPP_ERR_NETT_IS95 ('02'O),
+ SMPP_ERR_NETT_GSM ('03'O),
+ SMPP_ERR_NETT_RESERVED ('04'O)
+} with { variant "FIELDLENGTH(8)" };
+
+
+type octetstring COctetString; /* FIXME: How to express this in "RAW" syntax? */
+
+
+} with { encode "RAW" };
--
To view, visit https://gerrit.osmocom.org/7695
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib1952ffa0cbc915ab4c088da03fec2da4258b47c
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>