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
}
