⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datadef.h

📁 短信网管的原代码。用于与sp通信
💻 H
📖 第 1 页 / 共 2 页
字号:
	BYTE	cTimeOut;					//超时时间间隔(以10秒为单位)
	BYTE	cCredibility_Transmit;		//可靠性传输标志
	BYTE	cSaveForTramSmit;			//存储转发标志
	BYTE	cProtocol_Type;				//数据包协议类型
	WORD	wProtocol_Length;			//数据包长度

	STRUCT_SUBMIT_HEADER()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT_HEADER));
	}
};

struct STRUCT_SUBMIT					//TRP_SUBMIT
{
	STRUCT_SUBMIT_HEADER	sSubmitHeader;	//应用向应用平台提交短消息包头
	STRUCT_CMPP12_SUBMIT	sCMPP12Submit;	//CMPP12包包体

	STRUCT_SUBMIT()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT));
	}
};

//应用平台向应用回应接收信息
struct STRUCT_SUBMIT_RSP				//TRP_SUBMIT_RSP
{
	STRUCT_TRP_MSG_HEADER	sHeader;	//消息头
	WORD	dwAppID;					//应用ID
	DWORD	dwPlat_MsgID;				//应用平台的MsgID

	STRUCT_SUBMIT_RSP()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT_RSP));
	}
};

//应用接收SUBMIT_RSP或MSG_REPORT后的回应信息
struct STRUCT_RECV_CONFIRM				//TRP_RECV_CONFIRM
{
	STRUCT_TRP_MSG_HEADER	sHeader;	//消息头
	BYTE	cConfirm_Flag;				//是收到SUBMIT_RSP还是MSG_REPORT的回应

	STRUCT_RECV_CONFIRM()
	{
		ZeroMemory(this,sizeof(STRUCT_RECV_CONFIRM));
	}
};

//通讯模块回应应用平台提交短信消息
typedef struct STRUCT_UNIDATA_ACK				//TRP_UNIDATA_ACK
{
	STRUCT_TRP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;						//应用ID
	BYTE	cTNO;						//电信网络运营商
	BYTE	cChannel_Protocol;			//通道协议类型
	BYTE	cService_ChannelID;			//服务通道ID
	char	szService_Number[6];		//服务通道的特服号
	BYTE	cService_Plat;				//服务平台ID
	BYTE	cRequest_Plat;				//请求平台ID

	STRUCT_MSGID			sMsgID;		//MsgID结构

	STRUCT_UNIDATA_ACK()
	{
		ZeroMemory(this,sizeof(STRUCT_UNIDATA_ACK));
	}
}STRUCT_UNIDATA_ACK,*PSTRUCT_UNIDATA_ACK;

//源应用向目的应用发送消息
struct STRUCT_TOAPP_IND					//TRP_TOAPP_IND
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	WORD	wSrc_AppID;					//发送方的应用ID
	WORD	wDest_AppID;				//接收方的应用ID
	WORD	wData_Coding;				//数据编码方案0-英文 1-PDU编码 2-Unicode
	WORD	wMsg_Length;				//信息长度
	char Message[320];					//消息内容

	STRUCT_TOAPP_IND()
	{
		ZeroMemory(this,sizeof(STRUCT_TOAPP_IND));
	}
};

//目的应用回应源应用的消息
struct STRUCT_TOAPP_RSP					//TRP_TOAPP_RSP
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	WORD	wRsp_AppID;					//回应方的应用ID
	WORD	wInd_AppID;					//发送方的应用ID

	STRUCT_TOAPP_RSP()
	{
		ZeroMemory(this,sizeof(STRUCT_TOAPP_RSP));
	}
};

//平台向网关查询一条消息的状态
struct STRUCT_QUERY						//TRP_QUERY
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	BYTE    cService_Plat;				//服务平台ID号
	BYTE    cRequest_Plat;              //请求平台ID号
	BYTE    cTno;                       //电信运营商
    BYTE    cChannelID;					//通道ID
	char    szAddress[21];              //电话号码21位定长
	STRUCT_MSGID			sMsgID;		//MsgID结构

	STRUCT_QUERY()
	{
		ZeroMemory(this,sizeof(STRUCT_QUERY));
	}
};

//应用平台回应应用一条消息的状态
struct STRUCT_QUERY_RSP					//TRP_QUERY_RSP
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	BYTE    cService_Plat;				//服务平台ID号
	BYTE    cRequest_Plat;              //请求平台ID号
};

//连接测试消息
struct STRUCT_LINKTEST					//TRP_LINKTEST
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//连接测试应答消息
struct STRUCT_LINKTEST_RSP				//TRP_LINKTEST_RSP
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//断开请求消息
struct STRUCT_DISC						//TRP_DISC
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//断开请求应答消息
struct STRUCT_DISC_RSP					//TRP_DISC_RSP
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//应用平台向应用发送错误描述信息
struct STRUCT_ERROR_REPORT				//TRP_ERROR_REPORT
{
	STRUCT_TRP_MSG_HEADER sHeader;		//消息头
	WORD    wAppID;                     //应用ID
	char	szError_Msg[40];			//错误描述信息

	STRUCT_ERROR_REPORT()
	{
		ZeroMemory(this,sizeof(STRUCT_ERROR_REPORT));
	}
};


////////////////////////////////////////////////////////////////////////////////////
//SMPP 数据结构定义

//SMPP 的主要结构,其他结构可以根据实际情况添加,一些比较简单的数据命令数据结构直接在代码中实现
//因为和CMPP协议不一样(非定长),所以其处理方法不一样

//SMPP 消息头结构
typedef struct tagMESSAGE_HEADER
{
	DWORD command_length;
	DWORD command_id;
	DWORD command_status;
	DWORD sequence_no; 
}MESSAGE_HEADER;

//短消息提交,字符串为变长
typedef struct tagSTRUCT_SMPP_SUBMIT
{
	MESSAGE_HEADER   sHeader;  
	char			 szSerice_type[6];
	unsigned char    cSource_addr_ton;
	unsigned char    cSource_addr_npi;
	char             szSource_addr[21];
	unsigned char    cDest_addr_ton;
	unsigned char    cDest_addr_npi;
	char             szDest_addr[21];
	unsigned char    cEsm_class;
	unsigned char    cProtocol_id;
	unsigned char    cPriority_flag;
	char			 szSchedule_delivery_time[21];
	char             szValidity_period[21];
	unsigned char    cRegistered_deliver_flag;
	unsigned char    cReplace_if_present_flag;
	unsigned char    cData_coding;
	unsigned char    csm_Default_msg_id;
	unsigned char    csm_Length;
	char             szShort_message[160];
}STRUCT_SMPP_SUBMIT;

//短消息下发
typedef STRUCT_SMPP_SUBMIT  STRUCT_SMPP_DELIVER;

//查询短消息
typedef struct tagSTRUCT_SMPP_QUERY
{
	MESSAGE_HEADER   sHeader;
	char             szMsgID[9];//短消息ID
	unsigned char    cAddr_ton;//地址编码类型
	unsigned char    cAddr_npi;//地址编码方案
	char             szAddress[21];//地址
}STRUCT_SMPP_QUERY;

//查询短消息响应
typedef struct tagSTRUCT_SMPP_QUERY_RESP
{
	MESSAGE_HEADER   sHeader;
	char             szMsgID[9];//短消息ID
	char             szFinal_date[17];//短消息生命周期终止时间
	unsigned char    cMsg_status;//段消息当前的状态
	unsigned char    cGSM_code;//GSM错误码
}STRUCT_SMPP_QUERY_RESP;

#define SM_MESSAGE_HEAD_SIZE     sizeof(MESSAGE_HEADER)

////////////////////////////////////////////////////////////////////////////////////
//其他结构定义
//系统模块提交的流水号的对应结构信息
typedef struct tagSTRUCT_SEQID_INFO
{
	UINT			  nSource_SeqID;   //从系统模块提交的消息流水号
	UINT			  nDest_SeqID;     //生成的消息流水号,此消息号能和Rep消息对应起来,用于发送到短信中心或网关
	signed char       cCount;          //计数,用于计算已经等了第几个回应消息。如果五个回应消息均没有此消息的
	signed char       cState;          //状态,为0表示数据无效,为1表示数据有效
}STRUCT_SEQID_INFO;

//内存共享的数据结构
typedef struct tagSTRUCT_MEMDATA_INFO
{
   int                memNo;           //内存序号
   UINT               memLength;       //内存长度
   char               memData[1024];   //内存体
}STRUCT_MEMDATA_INFO;

//内存文件标识
enum MEMFILEFLAG {SMTFLAG,SMOFLAG,OTSFLAG,SYSFLAG};
//enum MEMFILEFLAG {SMTFLAG,SMOFLAG,SYSFLAG};

//监控模块的命令结构
typedef struct tagSTRUCT_WATCHCOMMAN
{
	BOOL bCommand1203;//控制上下行数据开关
	BOOL bCommand1204;//控制上行数据开关  手机--》应用
	BOOL bCommand1205;//控制上行数据开关	
}STRUCT_WATCHCOMMAN;

//added by zuming yang on 2001-10-23
//通道属性
typedef struct tagSTRUCT_CHANNEL_INFO
{
	char szChannelName[16];				//通道名称
	char szPwd[16];						//密码
	BYTE ChannelProtocol;               //短信中心使用的协议
	BYTE ChannelType;					//通道类型(电信运营商)
	int              nSpFlag;           //通道标志 0 非专业 1 MO专用
	unsigned short   nPacket;           //MO专用包头 如果是MO专用通道,则为MO包头
}STRUCT_CHANNEL_INFO;

struct tagSTRUCT_PACKET_ITEM
{
	char             szPacket[3];
	char             szCommand[10];
};

typedef struct tagSTRUCT_PACKET_LIST
{
	int              Count;
	tagSTRUCT_PACKET_ITEM  packet[1024];
}STRUCT_PACKET_LIST;

typedef struct STRUCT_SEQNOTag
{
	unsigned long srcseq;  //原节点编号
	unsigned long systime; //时间
	unsigned long seq;     //序号
}STRUCT_SEQNO;
//CMPP命令数据结构定义
//消息头
typedef struct SGIP_MSGHEADTag
{
	unsigned long			Total_Length;		//4消息总长度
	unsigned long			Command_ID;			//4命令或响应类型
	STRUCT_SEQNO			Sequence_ID;		//12字节整型消息流水号			
}SGIP_MSGHEAD;
typedef struct STRUCT_SGIP_CONNECTTag
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	unsigned char			longin_type;
	char					Source_Addr[16];		 //ICP_ID;
	char					AuthenticatorICP[16];//ICP 认证码;
	char					Resverse[8];		 //保留项
}STRUCT_SGIP_CONNECT;
typedef struct STRUCT_SGIP_TERMINALTag
{
	SGIP_MSGHEAD          sHeader;             //数据包头
}STRUCT_SGIP_TERMINAL;

typedef struct DELIVERTag
{
	SGIP_MSGHEAD sHeader;
	char UserNumber[21];
	char SPNumber[21];
	char TP_pid;
	char TP_udhi;
	char MessageCoding;
	long MessageLength;
	char MessageContent[160];
	char Reserve[8];
}DELIVER;

typedef struct SUBMITTag
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	unsigned char			SPNumber[21];				  
	unsigned char			ChargeNumber[21];			  
	unsigned char			UserCount;			  
	unsigned char			UserNumber[21]; 
	unsigned char			CorpId[5];
	unsigned char			ServiceType[10];
	unsigned char			FeeType;
	unsigned char			FeeValel[6];
	unsigned char			GivenValue[6];
	unsigned char			AgentFlag;
	unsigned char			MorelatetoMTflag;
	unsigned char			Priority;
	unsigned char			ExpireTime[16];
	unsigned char			ScheduleTime[16];
	unsigned char			ReportFlag;
	unsigned char			TP_pid;
	unsigned char			TP_udhi;
	unsigned char			MessageCoding;
	unsigned char			MessageType;
	unsigned long			MessageLength;
	unsigned char			MessageContent[160];
	unsigned char			Reserve[8];
}SUBMIT,*PSUBMIT;

struct STRUCT_SGIP_CONNECT_REP
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	BYTE			 btResult;
	char			 szReserve[8];
};

struct STRUCT_SGIP_SUBMIT_REP
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	BYTE			 btResult;
	char			 szReserve[8];
};
struct STRUCT_SGIP_DELIVERY_REP
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	BYTE			 btResult;
	char			 szReserve[8];
};
struct STRUCT_SGIP_REPORT_REP
{
	SGIP_MSGHEAD          sHeader;             //数据包头
	BYTE			 btResult;
	char			 szReserve[8];
};

struct STRUCT_SGIP_REPORT
{
	SGIP_MSGHEAD		sHeader;
	STRUCT_SEQNO		sSeqNo;
	unsigned char		cReportType;
	char				szUserNumber[21];
	unsigned char		cState;
	unsigned char		cErrorCode;
	char				szReserve[8];
};

#endif//_DATA_DEF_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -