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

📄 spsms.h

📁 使用标准C开发的同时支持CMPP3.0 和 CMPP2.0 的SP短信网关程序
💻 H
字号:
#ifndef SPSMS_H
#define SPSMS_H

#pragma pack(push, 1)

//		消息					Command_Id值	说明
#define CMPP_CONNECT			0x00000001		// 请求连接
#define CMPP_CONNECT_RESP		0x80000001		// 请求连接应答
#define CMPP_TERMINATE			0x00000002		// 终止连接
#define CMPP_TERMINATE_RESP		0x80000002		// 终止连接应答
#define CMPP_SUBMIT				0x00000004		// 提交短信
#define CMPP_SUBMIT_RESP		0x80000004		// 提交短信应答
#define CMPP_DELIVER			0x00000005		// 短信下发
#define CMPP_DELIVER_RESP		0x80000005		// 下发短信应答
#define CMPP_QUERY				0x00000006		// 发送短信状态查询
#define CMPP_QUERY_RESP			0x80000006		// 发送短信状态查询应答
#define CMPP_CANCEL				0x00000007		// 删除短信
#define CMPP_CANCEL_RESP		0x80000007		// 删除短信应答
#define CMPP_ACTIVE_TEST		0x00000008		// 激活测试
#define CMPP_ACTIVE_TEST_RESP	0x80000008		// 激活测试应答


#define MAX_SP_ID_LEN 6
#define MAX_MSG_ID_LEN 8
#define MAX_SERVICE_ID_LEN 10
#define MAX_FEE_TERMINALID_LEN 32
#define MAX_SRC_TERMINALID_LEN 21
#define MAX_DST_TERMINALID_LEN 32
#define MAX_VALID_TIME_LEN 17
#define MAX_FEE_CODE_LEN 6
#define MAX_FEE_TYPE_LEN 2
#define MAX_MSG_CONTENT_LEN 256
#define MAX_LINK_ID_LEN 20

#define	MAX_SET_PARAM_NUM 4
#define	MAX_STRING_LEN 16

#define		IPLEN				16
#define     SMCGWIP         	16
#define     SMCACCESSIDLEN  	10
#define     SMCACCESSPWD    	10 
#define     WARNLEN         	256
#define		WARNEXPIRETIME		5				//故障持续时间阀值

typedef struct  
{
	char 		sIP[IPLEN];
	char		sGWIP[SMCGWIP];					//网关IP
	char		sAccessID[SMCACCESSIDLEN];		//企业接入ID
}SMC_ATTR;

typedef struct  
{
	char 		sIP[IPLEN];						//SMC宿主IP
	char		sAccessPWD[SMCACCESSPWD];		//企业接入密码
}SMC_PWD;

typedef struct  
{
	int		cResult;					//返回操作结果时:0成功 -1失败										//返回状态时:0 ISMG连接正常 -1 ISMG连接异常
}RESULT, STATUS;

typedef struct
{
	int			nQueenNum;					//队列消息数
	int			nSysTimer;					//Sys定时器值
	int			nSysStatus;					//定时器状态0正常工作,-1不正常工作
// 	int			nIsmgTimer;					//Ismg定时器值
// 	char		nIsmgStatus;				//定时器状态0正常工作,-1不正常工作
}SMCSOURCE;

typedef struct
{
	int			nIsmgTimer;
	int			nIsmgStatus;
}ISMGSTATUS;

typedef struct
{
	char		nTimerFlag;					//定时器的种类
	/*
	SMC_SysTimer		8
	SMC_ISMGTimer		9
	*/
	int			nTimer;						//定时器值
	char		nStatus;					//定时器状态0正常工作,-1不正常工作
}TIMER;

typedef struct
{
	int			kind;
	//需要报警的种类
	/*
	(需根据需要修改)
	ASR
	系统队列消息告警					0x01
	?	系统定时器队列告警				0x02
	?	语音识别服务lisence告警			0x03
	?	TTS服务lisence告警				0x04
	?	语音识别服务连接告警			0x05
	?	TTS服务连接告警					0x06

	DB
	作业告警							0x07
	?	触发器告警						0x08
	?	存储过程告警					0x09
	?	函数告警						0x0a
	?	性能告警						0x0b
	?	控制文件告警					0x0c
	?	表空间告警						0x0d
	?	数据文件告警					0x0e
	?	日志文件告警					0x0f
	?	归档模式的切换告警				0x10
	?	已用转储告警					0x11
	?	活动的会话数告警				0x12
	?	例程吞吐量告警					0x13
	?	例程恢复告警					0x14

	SMC
	系统消息队列告警					0x15
	?	ISMG链接告警					0x16
	?	系统定时器队列告警				0x17

	WEB
	服务异常终止告警				0x18
	端口拥塞告警					0x19
	内存使用率						0x1a
	CPU使用率						0x1b
	*/
	char 			WarnInfo[WARNLEN];				//报警的信息
}ASRWARN, DBWARN, WEBWARN, SMCWARN;

typedef struct
{
    unsigned int    nTotalLen;
    unsigned int	nCommandId;
	unsigned int	nSeqId;
}  TCmppHead;

typedef struct
{
    char	sSpId[MAX_SP_ID_LEN];
	char	sAuthenticatorSource[16];
	unsigned char nVersion;
	unsigned int  nTimeStamp;
} TCmppConnectReq;

typedef struct
{
    unsigned int nStatus;
	char	sAuthenticatorSource[16];
	unsigned char nVersion;
} TCmppConnectRep;

#define TCmppTerminateReq TCmppHead
#define TCmppTerminateRep TCmppHead

#define TCmppActiveTestReq TCmppHead
#define TCmppActiveTestRep TCmppHead

typedef struct
{
	char sMsgId[MAX_MSG_ID_LEN];
	unsigned char nPkTotal;
	unsigned char nPkNumber;
	unsigned char nRegister;
	unsigned char nMsgLevel;
	char sServiceId[MAX_SERVICE_ID_LEN];
	unsigned char nFeeUserType;
	char sFeeTerminalId[MAX_FEE_TERMINALID_LEN];
	unsigned char nFeeTerminalType;
	unsigned char nTPPid;
	unsigned char nTPUdhi;
	unsigned char nMsgFmt;
	char sMsgSrc[MAX_SP_ID_LEN];
	char sFeeType[MAX_FEE_TYPE_LEN];
	char sFeeCode[MAX_FEE_CODE_LEN];
	char sValidTime[MAX_VALID_TIME_LEN];
	char sAtTime[MAX_VALID_TIME_LEN];
	char sSrcTerminalId[MAX_SRC_TERMINALID_LEN];
	unsigned char nDstTerminadNum;
	char sDstTerminalId[MAX_DST_TERMINALID_LEN];
	unsigned char nDstTerminalIdType;
	unsigned char nMsgLen;
	char sMsgContent[MAX_MSG_CONTENT_LEN];
	char sLinkId[MAX_LINK_ID_LEN];
} TCmppSubmitReq;

typedef struct
{
	char sMsgId[MAX_MSG_ID_LEN];
#ifndef CMPP_VERSION_20	
	unsigned int nResult;
#else
	unsigned char nResult;
#endif
} TCmppSubmitRep;

typedef struct
{
	char sTime[8];
	unsigned char nQueryType;
	char sQueryCode[MAX_SERVICE_ID_LEN];
	char nReserve[8];
} TCmppQueryReq;

typedef struct
{
	char sTime[8];
	unsigned char nQueryType;
	char sQueryCode[MAX_SERVICE_ID_LEN];
	unsigned int nMT_TLMsg;
	unsigned int nMT_Tlusr;
	unsigned int nMT_Scs;
	unsigned int nMT_WT;
	unsigned int nMT_FL;
	unsigned int nMO_Scs;
	unsigned int nMO_WT;
	unsigned int nMO_FL;
} TCmppQueryRep;

typedef struct
{
	char sMsgId[MAX_MSG_ID_LEN];
	char sDstTerminalId[MAX_SRC_TERMINALID_LEN];
	char sServiceId[MAX_SERVICE_ID_LEN];
	unsigned char nTPPid;
	unsigned char nTPUdhi;
	unsigned char nMsgFmt;
	char sSrcTerminalId[MAX_DST_TERMINALID_LEN];
	unsigned char nSrcTerminalType;
	unsigned char nRegistered;
	unsigned char nMsgLen;
	char sMsgContent[MAX_MSG_CONTENT_LEN];
	char sLinkID[MAX_LINK_ID_LEN];
} TCmppDeliverReq;

typedef struct
{
	char sMsgId[MAX_MSG_ID_LEN+MAX_MSG_ID_LEN+1];
	unsigned char nState;
	char sSubmitTime[MAX_VALID_TIME_LEN];
	char sDoneTime[MAX_VALID_TIME_LEN];
	char sDstTerminalId[MAX_DST_TERMINALID_LEN];
	unsigned int nSeqId;
} TCmppReportMsg;

#define TCmppDeliverRep TCmppSubmitRep

typedef struct
{
	char sMsgId[MAX_MSG_ID_LEN];
} TCmppCancelReq;

typedef struct
{
	unsigned int nResult;
} TCmppCancelRep;

typedef struct
{
	TCmppHead rMsgHead;
	union
	{
		TCmppConnectReq rConnectReq;
		TCmppConnectRep rConnectRep;
		TCmppDeliverReq rDeliverReq;
		TCmppDeliverRep rDeliverRep;
		TCmppSubmitReq  rSubmitReq;
		TCmppSubmitRep  rSubmitRep;
		TCmppQueryReq	rQueryReq;
		TCmppQueryRep	rQueryRep;
		TCmppCancelReq	rCancelReq;
		TCmppCancelRep  rCancelRep;
	} rMsgBody;
} TCmppPacket;

typedef struct
{
	unsigned char	localip[32];
	unsigned char	ismgip[32];
	unsigned char	spid[7];
	unsigned char	sppwd[8];
	unsigned char	spcode[8];
	char			sServiceId[MAX_SERVICE_ID_LEN];	
	int				sock;
	unsigned char	state;
	unsigned char	Tswitch;
	unsigned char	CheckN;
	
} SpNaiType;

typedef struct IsmgMsgLink
{	
	unsigned int	SeqId;
	unsigned char	P_S;
	unsigned char	P_R;
	unsigned char	LWE_S;
	unsigned char	LWE_R;
}IsmgMsgLinkType;

typedef struct IsmgMsgStr
{	
	unsigned short	len;
	unsigned char	md5[17];
	TCmppPacket		*buf;
}IsmgMsgType;

typedef struct LocalSPSTR {
	unsigned char	status;
	unsigned char	thisapp;
	
	unsigned char	Asr;
	unsigned char	DB;
	unsigned char	Sms;
	unsigned char	Man;
	
} LocalSP_T,*pLocalSPPTR;


//! 监控程序发送的消息体
typedef struct __WMSG 
{
	unsigned char nMsg;
	unsigned char nflag;
}WMSG;

//! 返回给监控程序的消息体
typedef struct __RESULT
{
	unsigned int  nAppNo;			///< 通过GetWhoAmI()得到的本节点号
	unsigned char nresult;
}WRESULT;

#pragma pack(pop)

#define MAXCHECK_N		(3)
#define ISMGMESWIDOW	(16)

SpNaiType			SpSmc;
IsmgMsgLinkType		SendMsgLink;

typedef enum
{
	SPSMC_IDLE,			//0
	SPSMC_ISMGOK,		//1
	SPSMC_ISMGNOOK,		//2
}RECTYPE;




extern void CMPP_GetClientEvent();
extern void StartClient();

#endif

⌨️ 快捷键说明

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