Add basic pdu definitions

This commit is contained in:
PhatPhuckDave
2024-07-22 20:29:03 +02:00
parent d572ee1434
commit 3d977b5657

View File

@@ -1 +1,312 @@
package pdu
package pdu
var COMMAND_ID = struct {
GENERIC_NACK_ID uint32
BIND_RECEIVER_ID uint32
BIND_RECEIVER_RESP_ID uint32
BIND_TRANSMITTER_ID uint32
BIND_TRANSMITTER_RESP_ID uint32
QUERY_SM_ID uint32
QUERY_SM_RESP_ID uint32
SUBMIT_SM_ID uint32
SUBMIT_SM_RESP_ID uint32
DELIVER_SM_ID uint32
DELIVER_SM_RESP_ID uint32
UNBIND_ID uint32
UNBIND_RESP_ID uint32
REPLACE_SM_ID uint32
REPLACE_SM_RESP_ID uint32
CANCEL_SM_ID uint32
CANCEL_SM_RESP_ID uint32
BIND_TRANSCIEVER_ID uint32
BIND_TRANSCIEVER_RESP_ID uint32
OUTBIND_ID uint32
ENQUIRE_LINK_ID uint32
ENQUIRE_LINK_RESP_ID uint32
SUBMIT_MULTI_ID uint32
SUBMIT_MULTI_RESP_ID uint32
ALERT_NOTIFICATION_ID uint32
DATA_SM_ID uint32
DATA_SM_RESP_ID uint32
}{
GENERIC_NACK_ID: 0x80000000,
BIND_RECEIVER_ID: 0x00000001,
BIND_RECEIVER_RESP_ID: 0x80000001,
BIND_TRANSMITTER_ID: 0x00000002,
BIND_TRANSMITTER_RESP_ID: 0x80000002,
QUERY_SM_ID: 0x00000003,
QUERY_SM_RESP_ID: 0x80000003,
SUBMIT_SM_ID: 0x00000004,
SUBMIT_SM_RESP_ID: 0x80000004,
DELIVER_SM_ID: 0x00000005,
DELIVER_SM_RESP_ID: 0x80000005,
UNBIND_ID: 0x00000006,
UNBIND_RESP_ID: 0x80000006,
REPLACE_SM_ID: 0x00000007,
REPLACE_SM_RESP_ID: 0x80000007,
CANCEL_SM_ID: 0x00000008,
CANCEL_SM_RESP_ID: 0x80000008,
BIND_TRANSCIEVER_ID: 0x00000009,
BIND_TRANSCIEVER_RESP_ID: 0x80000009,
OUTBIND_ID: 0x0000000B,
ENQUIRE_LINK_ID: 0x00000015,
ENQUIRE_LINK_RESP_ID: 0x80000015,
SUBMIT_MULTI_ID: 0x00000021,
SUBMIT_MULTI_RESP_ID: 0x80000021,
ALERT_NOTIFICATION_ID: 0x00000102,
DATA_SM_ID: 0x00000103,
DATA_SM_RESP_ID: 0x80000103,
}
var COMMAND_STATUS = struct {
ESME_ROK uint32
ESME_RINVMSGLEN uint32
ESME_RINVCMDLEN uint32
ESME_RINVCMDID uint32
ESME_RINVBNDSTS uint32
ESME_RALYBND uint32
ESME_RINVPRTFLG uint32
ESME_RINVREGDLVFLG uint32
ESME_RSYSERR uint32
ESME_RINVSRCADR uint32
ESME_RINVDSTADR uint32
ESME_RINVMSGID uint32
ESME_RBINDFAIL uint32
ESME_RINVPASWD uint32
ESME_RINVSYSID uint32
ESME_RCANCELFAIL uint32
ESME_RREPLACEFAIL uint32
ESME_RMSGQFUL uint32
ESME_RINVSERTYP uint32
ESME_RINVNUMDESTS uint32
ESME_RINVDLNAME uint32
ESME_RINVDESTFLAG uint32
ESME_RINVSUBREP uint32
ESME_RINVESMCLASS uint32
ESME_RCNTSUBDL uint32
ESME_RSUBMITFAIL uint32
ESME_RINVSRCTON uint32
ESME_RINVSRCNPI uint32
ESME_RINVDSTTON uint32
ESME_RINVDSTNPI uint32
ESME_RINVSYSTYP uint32
ESME_RINVREPFLAG uint32
ESME_RINVNUMMSGS uint32
ESME_RTHROTTLED uint32
ESME_RINVSCHED uint32
ESME_RINVEXPIRY uint32
ESME_RINVDFTMSGID uint32
ESME_RX_T_APPN uint32
ESME_RX_P_APPN uint32
ESME_RX_R_APPN uint32
ESME_RQUERYFAIL uint32
ESME_RINVOPTPARSTREAM uint32
ESME_ROPTPARNOTALLWD uint32
ESME_RINVPARLEN uint32
ESME_RMISSINGOPTPARAM uint32
ESME_RINVOPTPARAMVAL uint32
ESME_RDELIVERYFAILURE uint32
ESME_RUNKNOWNERR uint32
}{
ESME_ROK: 0x00000000, // No Error
ESME_RINVMSGLEN: 0x00000001, // Message Length is invalid
ESME_RINVCMDLEN: 0x00000002, // Command Length is invalid
ESME_RINVCMDID: 0x00000003, // Invalid Command ID
ESME_RINVBNDSTS: 0x00000004, // Incorrect BIND Status for given command
ESME_RALYBND: 0x00000005, // ESME Already in Bound State
ESME_RINVPRTFLG: 0x00000006, // Invalid Priority Flag
ESME_RINVREGDLVFLG: 0x00000007, // Invalid Registered Delivery Flag
ESME_RSYSERR: 0x00000008, // System Error
ESME_RINVSRCADR: 0x0000000A, // Invalid Source Address
ESME_RINVDSTADR: 0x0000000B, // Invalid Dest Addr
ESME_RINVMSGID: 0x0000000C, // Message ID is invalid
ESME_RBINDFAIL: 0x0000000D, // Bind Failed
ESME_RINVPASWD: 0x0000000E, // Invalid Password
ESME_RINVSYSID: 0x0000000F, // Invalid System ID
ESME_RCANCELFAIL: 0x00000011, // Cancel SM Failed
ESME_RREPLACEFAIL: 0x00000013, // Replace SM Failed
ESME_RMSGQFUL: 0x00000014, // Message Queue Full
ESME_RINVSERTYP: 0x00000015, // Invalid Service Type
ESME_RINVNUMDESTS: 0x00000033, // Invalid number of destinations
ESME_RINVDLNAME: 0x00000034, // Invalid Distribution List name
ESME_RINVDESTFLAG: 0x00000040, // Destination flag is invalid
ESME_RINVSUBREP: 0x00000042, // Invalid submit with replace request
ESME_RINVESMCLASS: 0x00000043, // Invalid esm_class field data
ESME_RCNTSUBDL: 0x00000044, // Cannot Submit to Distribution List
ESME_RSUBMITFAIL: 0x00000045, // submit_sm or submit_multi failed
ESME_RINVSRCTON: 0x00000048, // Invalid Source address TON
ESME_RINVSRCNPI: 0x00000049, // Invalid Source address NPI
ESME_RINVDSTTON: 0x00000050, // Invalid Destination address TON
ESME_RINVDSTNPI: 0x00000051, // Invalid Destination address NPI
ESME_RINVSYSTYP: 0x00000053, // Invalid system_type field
ESME_RINVREPFLAG: 0x00000054, // Invalid replace_if_present flag
ESME_RINVNUMMSGS: 0x00000055, // Invalid number of messages
ESME_RTHROTTLED: 0x00000058, // Throttling error (ESME has exceeded allowed message limits)
ESME_RINVSCHED: 0x00000061, // Invalid Scheduled Delivery Time
ESME_RINVEXPIRY: 0x00000062, // Invalid message validity period
ESME_RINVDFTMSGID: 0x00000063, // Predefined Message Invalid or Not Found
ESME_RX_T_APPN: 0x00000064, // ESME Receiver Temporary App Error Code
ESME_RX_P_APPN: 0x00000065, // ESME Receiver Permanent App Error Code
ESME_RX_R_APPN: 0x00000066, // ESME Receiver Reject Message Error Code
ESME_RQUERYFAIL: 0x00000067, // query_sm request failed
ESME_RINVOPTPARSTREAM: 0x000000C0, // Error in the optional part of the PDU
ESME_ROPTPARNOTALLWD: 0x000000C1, // Optional Parameter not allowed
ESME_RINVPARLEN: 0x000000C2, // Invalid Parameter Length.
ESME_RMISSINGOPTPARAM: 0x000000C3, // Expected Optional Parameter missing
ESME_RINVOPTPARAMVAL: 0x000000C4, // Invalid Optional Parameter Value
ESME_RDELIVERYFAILURE: 0x000000FE, // Delivery Failure (used for
ESME_RUNKNOWNERR: 0x000000FF, // Unknown Error
}
type (
PDU_HEADER struct {
command_length uint32
command_id uint32
command_status uint32
sequence_number uint32
}
BIND struct {
PDU_HEADER
system_id string
password string
system_type string
interface_version uint8
addr_ton uint8
addr_npi uint8
address_range string
}
BIND_RESP struct {
PDU_HEADER
system_id string
sc_interface_version uint8
}
BIND_RECVEIVER struct {
BIND
}
BIND_RECEIVER_RESP struct {
BIND_RESP
}
BIND_TRANSMITTER struct {
BIND
}
BIND_TRANSMITTER_RESP struct {
BIND_RESP
}
BIND_TRANSCIEVER struct {
BIND
}
BIND_TRANSCIEVER_RESP struct {
BIND_RESP
}
UNBIND struct {
PDU_HEADER
}
UNBIND_RESP struct {
PDU_HEADER
}
GENERIC_NACK struct {
PDU_HEADER
}
SUBMIT_SM struct {
PDU_HEADER
service_type string
source_addr_ton uint8
source_addr_npi uint8
source_addr string
dest_addr_ton uint8
dest_addr_npi uint8
destination_addr string
esm_class uint8
protocol_id uint8
priority_flag uint8
schedule_delivery_time string
validity_period string
registered_delivery uint8
replace_if_present uint8
data_coding uint8
sm_default_msg_id uint8
sm_length uint8
short_message string
// user_message_reference uint16
// source_port uint16
// source_addr_subunit uint8
// destination_port uint16
// dest_addr_subunit uint8
// sar_msg_ref_num uint16
// sar_total_segments uint8
// sar_segment_seqnum uint8
// more_messages_to_send uint8
// payload_type uint8
// message_payload string
// privacy_indicator uint8
// callback_num string
// callback_num_pres uint8
// callback_num_atag string
// source_subaddress string
// dest_subaddress string
// user_response_code uint8
// display_time uint8
// sms_signal uint8
// ms_validity uint8
// ms_msg_wait_facilities uint8
// number_of_messages uint8
// alert_on_message_delivery uint8
// language_indicator uint8
// its_reply_type uint8
// its_session_info uint8
// ussd_service_op uint8
}
SUBMIT_SM_RESP struct {
PDU_HEADER
message_id string
}
SUBMIT_MULTI struct{}
SUBMIT_MULTI_RESP struct{}
DELIVER_SM struct {
PDU_HEADER
SUBMIT_SM
}
DELIVER_SM_RESP struct {
PDU_HEADER
SUBMIT_SM_RESP
}
DATA_SM struct{}
DATA_SM_RESP struct{}
QUERY_SM struct{}
QUERY_SM_RESP struct{}
CANCEL_SM struct {
PDU_HEADER
service_type string
message_id string
source_addr_ton uint8
source_addr_npi uint8
source_addr string
dest_addr_ton uint8
dest_addr_npi uint8
destination_addr string
}
CANCEL_SM_RESP struct {
PDU_HEADER
}
REPLACE_SM struct{}
REPLACE_SM_RESP struct{}
ENQUIRE_LINK struct {
PDU_HEADER
}
ENQUIRE_LINK_RESP struct {
PDU_HEADER
}
ALERT_NOTIFICATION struct{}
ALERT_NOTIFICATION_RESP struct{}
)