www.pudn.com > smpplib.zip > smpp.h


#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
//special command_id (defined ourself in SMSC Vendor range) 
 
	#define SMPP_SPECIAL_LINKCLOSE					0x000101A5 
 
//command_id 
 
	#define SMPP_GENERIC_NACK						0x80000000 
 
	#define SMPP_BIND_RECEIVER						0x00000001 
	#define SMPP_BIND_RECEIVER_RESP	 				0x80000001 
 
	#define SMPP_BIND_TRANSMITTER					0x00000002 
	#define SMPP_BIND_TRANSMITTER_RESP				0x80000002 
 
	#define SMPP_QUERY_SM							0x00000003 
	#define SMPP_QUERY_SM_RESP						0x80000003 
 
	#define SMPP_SUBMIT_SM							0x00000004 
	#define SMPP_SUBMIT_SM_RESP						0x80000004 
 
	#define SMPP_DELIVER_SM							0x00000005 
	#define SMPP_DELIVER_SM_RESP					0x80000005 
 
	#define SMPP_UNBIND								0x00000006 
	#define SMPP_UNBIND_RESP						0x80000006 
 
	#define SMPP_REPLACE_SM							0x00000007 
    #define SMPP_REPLACE_SM_RESP					0x80000007 
 
    #define SMPP_CANCEL_SM							0x00000008 
    #define SMPP_CANCEL_SM_RESP						0x80000008 
 
	#define SMPP_BIND_TRANSCEIVER					0x00000009 
	#define SMPP_BIND_TRANSCEIVER_RESP				0x80000009 
 
	#define SMPP_OUTBIND							0x0000000B 
 
    #define SMPP_ENQUIRE_LINK						0x00000015 
    #define SMPP_ENQUIRE_LINK_RESP					0x80000015 
 
	#define SMPP_SUBMIT_MULTI						0x00000021 
	#define SMPP_SUBMIT_MULTI_RESP					0x80000021 
 
	#define SMPP_ALERT_NOTIFICATION					0x00000102 
 
	#define SMPP_DATA_SM							0x00000103 
	#define SMPP_DATA_SM_RESP						0x80000103 
 
 
//data_coding 
 
typedef enum 
{ 
	CODING_DEFAULT				= 0x00,	// Default Alphabet 
	CODING_ANSI_X3_4			= 0x01,	// IA5 (CCITT T.50)/ASCII (ANSI X3.4) 
	CODING_OCTET1				= 0x02,	// Octet unspecified (8-bit binary) 
	CODING_ISO8859_1			= 0x03,	// Latin 1 (ISO-8859-1) 
	CODING_OCTET2				= 0x04,	// Octet unspecified (8-bit binary) 
	CODING_JIS					= 0x05, //JIS (X 0208-1990) 
	CODING_CYRLLIC				= 0x06,	//Cyrllic (ISO-8859-5) 
	CODING_LATIN				= 0x07, //Latin/Hebrew (ISO-8859-8) 
	CODING_UCS2					= 0x08, //UCS2 (ISO/IEC-10646) 
	CODING_PICTOGRAM			= 0x09, //Pictogram Encoding 
	CODING_ISO_2200_JP			= 0x0A	//ISO-2200-JP 
 
} DATA_CODING; 
 
 
//command_status 
 
typedef enum 
{ 
	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 destination address 
	ESME_RINVMSGID				= 0x0000000C,	// Invalid message id 
	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_RINVSCHED				= 0x00000061,	// Invalid Scheduled Delivery Time 
	ESME_RINVEXPIRY				= 0x00000062,	// Invalid Message Validity Period (Expiry time) 
	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 Body 
	ESME_RINVPARLEN				= 0x000000C2,	// Invalid Parameter Length 
	ESME_RMISSINGOPTPARAM		= 0x000000C3,	// Expected Optional Parameter missing 
	ESME_ROPTPARNOTALLWD		= 0x000000C4,	// Invalid Optional Parameter Value 
	ESME_RDELIVERYFAILURE		= 0x000000FE,	// Delivery Failure (used for 'data_sm_resp') 
	ESME_RUNKNOWNERR			= 0x000000FF,	// Unknown Error 
 
	ESME_RTRANSPORTERR			= 0x00000400,	// Transport Error 
	ESME_RGATEWAYFAILURE		= 0x00000401,	// Gateway Failure (Unable to reach internal gateway) 
	ESME_RPERMANENTFAILURE		= 0x00000402,	// Permanent Network Failure (To external gateway) 
	ESME_RTEMPORARYFAILURE		= 0x00000403,	// Temporary Network Failure (To external gateway) 
	ESME_RINVSUBSCRIBER			= 0x00000404,	// Invalid Subscriber 
	ESME_RINVMSG				= 0x00000405,	// Invalid Message 
	ESME_RPROTOCOLERR			= 0x00000406,	// Gateway Protocol Error 
	ESME_RDUPLICATEDMSG			= 0x00000407,	// Duplicated Messages 
	ESME_RBARREDBYUSER			= 0x00000408,	// Barred by User 
	ESME_RCANCELLEDBYSYS		= 0x00000409,	// Cancelled by System 
	ESME_REXPIRED				= 0x0000040A	// Message Expired 
 
} CMD_STATUS_CODE; 
 
typedef enum 
{ 
	dest_addr_submit				= 0x0005, 
	dest_network_type				= 0x0006, 
	dest_bearer_type				= 0x0007, 
	dest_telematics_id				= 0x0008, 
 
	source_addr_submit				= 0x000D, 
	source_network_type				= 0x000E, 
	source_bearer_type				= 0x000F, 
	source_telematics_id			= 0x0010, 
 
	qos_time_to_live				= 0x0017, 
	payload_type					= 0x0019, 
	additional_status_info_text		= 0x001D, 
	receipted_message_id			= 0x001E, 
	ms_msg_wait_facilities			= 0x0030, 
	privacy_indicator				= 0x0201, 
 
	source_subaddress				= 0x0202, 
	dest_subaddress					= 0x0203, 
 
	user_message_reference			= 0x0204, 
	user_response_code				= 0x0205, 
 
	source_port						= 0x020A, 
	destination_port				= 0x020B, 
 
	sar_msg_ref_num					= 0x020C, 
	language_indicator				= 0x020D, 
	sar_total_segments				= 0x020E, 
	sar_segment_seqnum				= 0x020F, 
 
	SC_interface_version			= 0x0210, 
 
	callback_num_pres_ind			= 0x0302, 
	callback_num_atag				= 0x0303, 
	number_of_messages				= 0x0304, 
	callback_num					= 0x0381, 
 
	dpf_result						= 0x0420, 
	set_dpf							= 0x0421, 
	ms_availability_status			= 0x0422, 
	network_error_code				= 0x0423, 
	message_payload					= 0x0424, 
 
	ussd_service_op					= 0x0501, 
	display_time					= 0x1201, 
	sms_signal						= 0x1203, 
	ms_validity						= 0x1204, 
 
	alert_on_message_delivery		= 0x130C, 
	its_reply_type					= 0x1380, 
	its_session_info				= 0x1383 
 
} OPTIONAL_PARAMETER;