?? smpp_s.h
字號:
//---------------------------------------------------------------------------
#ifndef Smpp_SH
#define Smpp_SH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ScktComp.hpp>
//---------------------------------------------------------------------------
#define cmd_generic_nack 0x80000000
#define cmd_bind_receiver 0x00000001
#define cmd_bind_receiver_resp 0x80000001
#define cmd_bind_transmitter 0x00000002
#define cmd_bind_transmitter_resp 0x80000002
#define cmd_query_sm 0x00000003
#define cmd_query_sm_resp 0x80000003
#define cmd_submit_sm 0x00000004
#define cmd_submit_sm_resp 0x80000004
#define cmd_deliver_sm 0x00000005
#define cmd_deliver_sm_resp 0x80000005
#define cmd_unbind 0x00000006
#define cmd_unbind_resp 0x80000006
#define cmd_replace_sm 0x00000007
#define cmd_replace_sm_resp 0x80000007
#define cmd_cancel_sm 0x00000008
#define cmd_cancel_sm_resp 0x80000008
#define cmd_bind_transceiver 0x00000009
#define cmd_bind_transceiver_resp 0x80000009
#define cmd_outbind 0x0000000B
#define cmd_enquire_link 0x00000015
#define cmd_enquire_link_resp 0x80000015
#define cmd_submit_multi 0x00000021
#define cmd_submit_multi_resp 0x80000021
#define cmd_alert_notification 0x00000102
#define cmd_data_sm 0x00000103
#define cmd_data_sm_resp 0x80000103
#define ESME_ROK 0x00000000 // No Error
#define ESME_RINVMSGLEN 0x00000001 // Message Length is invalid
#define ESME_RINVCMDLEN 0x00000002 // Command Length is invalid
#define ESME_RINVCMDID 0x00000003 // Invalid Command ID
#define ESME_RINVBNDSTS 0x00000004 // Incorrect BIND Status for given command
#define ESME_RALYBND 0x00000005 // ESME Already in Bound State
#define ESME_RINVPRTFLG 0x00000006 // Invalid Priority Flag
#define ESME_RINVREGDLVFLG 0x00000007 // Invalid Registered Delivery Flag
#define ESME_RSYSERR 0x00000008 // System Error
#define ESME_RINVSRCADR 0x0000000A // Invalid Source Address
#define ESME_RINVDSTADR 0x0000000B // Invalid Dest Addr
#define ESME_RINVMSGID 0x0000000C // Message ID is invalid
#define ESME_RBINDFAIL 0x0000000D // Bind Failed
#define ESME_RINVPASWD 0x0000000E // Invalid Password
#define ESME_RINVSYSID 0x0000000F // Invalid System ID
#define ESME_RCANCELFAIL 0x00000011 // Cancel SM Failed
#define ESME_RREPLACEFAIL 0x00000013 // Replace SM Failed
#define ESME_RMSGQFUL 0x00000014 // Message Queue Full
#define ESME_RINVSERTYP 0x00000015 // Invalid Service Type
#define ESME_RINVNUMDESTS 0x00000033 // Invalid number of destinations
#define ESME_RINVDLNAME 0x00000034 // Invalid Distribution List name
#define ESME_RINVDESTFLAG 0x00000040 // Destination flag is invalid (submit_multi)
#define ESME_RINVSUBREP 0x00000042 // Invalid 'submit with replace' request (i.e. submit_sm with replace_if_present_flag set)
#define ESME_RINVESMCLASS 0x00000043 // Invalid esm_class field data
#define ESME_RCNTSUBDL 0x00000044 // Cannot Submit to Distribution List
#define ESME_RSUBMITFAIL 0x00000045 // submit_sm or submit_multi failed
#define ESME_RINVSRCTON 0x00000048 // Invalid Source address TON
#define ESME_RINVSRCNPI 0x00000049 // Invalid Source address NPI
#define ESME_RINVDSTTON 0x00000050 // Invalid Destination address TON
#define ESME_RINVDSTNPI 0x00000051 // Invalid Destination address NPI
#define ESME_RINVSYSTYP 0x00000053 // Invalid system_type field
#define ESME_RINVREPFLAG 0x00000054 // Invalid replace_if_present flag
#define ESME_RINVNUMMSGS 0x00000055 // Invalid number of messages
#define ESME_RTHROTTLED 0x00000058 // Throttling error (ESME has exceeded allowed message limits)
#define ESME_RINVSCHED 0x00000061 // Invalid Scheduled Delivery Time
#define ESME_RINVEXPIRY 0x00000062 // Invalid message validity period (Expiry time)
#define ESME_RINVDFTMSGID 0x00000063 // Predefined Message Invalid or Not Found
#define ESME_RX_T_APPN 0x00000064 // ESME Receiver Temporary App Error Code
#define ESME_RX_P_APPN 0x00000065 // ESME Receiver Permanent App Error Code
#define ESME_RX_R_APPN 0x00000066 // ESME Receiver Reject Message Error Code
#define ESME_RQUERYFAIL 0x00000067 // query_sm request failed
#define ESME_RINVOPTPARSTREAM 0x000000C0 // Error in the optional part of the PDU Body.
#define ESME_ROPTPARNOTALLWD 0x000000C1 // Optional Parameter not allowed
#define ESME_RINVPARLEN 0x000000C2 // Invalid Parameter Length.
#define ESME_RMISSINGOPTPARAM 0x000000C3 // Expected Optional Parameter missing
#define ESME_RINVOPTPARAMVAL 0x000000C4 // Invalid Optional Parameter Value
#define ESME_RDELIVERYFAILURE 0x000000FE // Delivery Failure (used for data_sm_resp)
#define ESME_RUNKNOWNERR 0x000000FF // Unknown Error
class TSmpp : public TForm
{
__published: // IDE-managed Components
TServerSocket *ServerSocket1;
TButton *Button1;
TListBox *ListBox1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall ServerSocket1ClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent,
int &ErrorCode);
void __fastcall ServerSocket1ClientDisconnect(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
typedef struct
{
int Command_Length; //消息包的長度,包括此字段
int Command_ID; //消息類型
int Command_status; //成功與否
int Sequence_No; //消息的序列號
}SMPP_Header;
typedef struct
{
char service_type[6]; //最大6 C_OctetString 保留,必須設(shè)為0
BYTE source_address_ton; // 1 Integer 源地址編碼類型
BYTE source_address_npi; // 1 Integer 源地址編碼方案
char source_address[21]; // 最大21 C_DecString 源地址
BYTE dest_address_ton; // 1 Integer 目的地址編碼類型
BYTE dest_address_npi; // 1 Integer 目的地址編碼方案
char destination_address[21]; // 最大21 C_DecString 目的地址
BYTE esm_class; // 1 Integer 短消息類型
BYTE protocol_ID; // 1 integer GSM協(xié)議類型
BYTE priority_flag; // 1 integer 優(yōu)先級
char schedule_delivery_time[17]; // 最大17 C_StringTime 計劃下發(fā)短消息的時間
char validity_peroid[17]; // 最大17 C_StringTime 短消息的最后有效期限
BYTE registered_delivery_flag; // 1 integer 注冊短消息標(biāo)志
BYTE replace_if_present_flag; // 1 integer 替換短消息標(biāo)志。
BYTE data_coding; // 1 integer 數(shù)據(jù)編碼方案
BYTE sm_default_msg_id; // 1 integer 預(yù)定義短消息ID
BYTE sm_length; // 1 integer 短消息的長度
char short_message_text[161]; // 最大161 可變 短消息數(shù)據(jù)內(nèi)容
} SMPP_SUBMIT_DEF, SMPP_DELIVER_DEF;
typedef struct
{
char service_type; //最大6 C_OctetString 保留,必須設(shè)為0
BYTE source_address_ton; // 1 Integer 源地址編碼類型
BYTE source_address_npi; // 1 Integer 源地址編碼方案
char source_address[6]; // 最大21 C_DecString 源地址
BYTE dest_address_ton; // 1 Integer 目的地址編碼類型
BYTE dest_address_npi; // 1 Integer 目的地址編碼方案
char destination_address[12]; // 最大21 C_DecString 目的地址
BYTE esm_class; // 1 Integer 短消息類型
BYTE protocol_ID; // 1 integer GSM協(xié)議類型
BYTE priority_flag; // 1 integer 優(yōu)先級
char schedule_delivery_time; // 最大17 C_StringTime 計劃下發(fā)短消息的時間
char validity_peroid; // 最大17 C_StringTime 短消息的最后有效期限
BYTE registered_delivery_flag; // 1 integer 注冊短消息標(biāo)志
BYTE replace_if_present_flag; // 1 integer 替換短消息標(biāo)志。
BYTE data_coding; // 1 integer 數(shù)據(jù)編碼方案
BYTE sm_default_msg_id; // 1 integer 預(yù)定義短消息ID
BYTE sm_length; // 1 integer 短消息的長度
char short_message_text[161]; // 最大161 可變 短消息數(shù)據(jù)內(nèi)容
} SMPP_GDUNICOM_SUBMIT_DEF;
/*
typedef struct STATUS {
char id[10];
char sub[3];
char dlvrd[3];
char submitdate[10];
char donedate[10];
char stat[7];
char err[3];
char text[20];
} SMPP_STATUS_REPORT_DEF;
*/
void ConnGUIP();
void loadConf();
void SendBuff(SMPP_Header *head,char* buff,int len);
char* submit_sm_resp(char *buff);
public: // User declarations
__fastcall TSmpp(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TSmpp *Smpp;
//---------------------------------------------------------------------------
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -