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

📄 smgapi.h

📁 中国移动的短信网关程序
💻 H
字号:
#ifndef _SMGAPI_H_
#define _SMGAPI_H_

#ifndef u_char
#define u_char unsigned char
#endif 

#pragma pack(push, 1)

#define SMG_DeliverReq 0x8001
#define SMG_DeliverRep 0x9001
#define SMG_SubmitReq 0x8002
#define SMG_SubmitRep 0x9002
#define SMG_CancelReq  0x8003
#define SMG_CancelRep  0x9003
#define SMG_RegisterReq 0x8004
#define SMG_RegisterRep 0x9004
#define SMG_UnRegisterReq 0x8005
#define SMG_UnRegisterRep 0x9005
#define SMG_LinkDown	0x0001
#define SMG_LinkUp		0x0002
#define SMG_Monitor		0x0003
#define SMG_ReloadConfig 0x0004  // 命令业务程序重新读取配置文件
#define SMG_ReloadData	0x0005	// 命令业务程序重新读取数据库配置
#define SMG_ServiceExit	0x0006  // 命令业务程序自动退出

// 定义监控子命令
#define MONI_CONNECT_SET    0x1000  // 和运营商的连接告警
#define MONI_CONNECT_CANCEL 0x1001  // 取消和运营商的连接告警
#define MONI_SERVICE_FLOW_SET 0x1003 // 业务流量告警
#define MONI_SERVICE_FLOW_CANCEL 0x1004
#define MONI_SERVICE_QUIT_SET 0x1005  // 业务退出告警
#define MONI_SERVICE_QUIT_CANCEL 0x1006 // 取消业务退出告警
#define MONI_OPNE_SERVICE_INFO 0x1007 // 开通业务通知
#define MONI_CDR_INFO 0x1008	//话单监控信息
#define MONI_SERVICE_NO_FIND  0x1009 // 业务已开通,但没有相应的业务处理程序登录到网关
#define MONI_SERVICE_LOGON 0x100a // 业务注册
#define MONI_SERVICE_LOGOUT 0x100b // 业务注销
#define MONI_CDR_ERR_INFO 0x100c //网关自动回复用户拨错号码的话单日志

#define MONI_SET	0x100d // 对网关设置监控
#define MONI_CANCEL 0x100e // 对网关取消监控

#define MONI_SMG_MOMT_QUERY 0x100f // 查询短信网关当天MOMT的数量
#define MONI_SERV_MOMT_QUERY 0x1010 // 查询单项业务当天的MOMT数量

#define MONI_SMG_QUIT	0x1011	// 通知网关退出
#define MONI_SERV_RELOAD_CONFIG 0x1012 //通知业务程序重新加载配置文件
#define MONI_SERV_RELOAD_DATA 0x1013 //通知业务程序重新加载数据库配置
#define MONI_SERV_QUIT 0x1014 //通知业务程序退出


#define MO_ACTION 0x00
#define MT_ACTION 0x02

typedef struct TMsgHead
{
    int    nCmdId;
    int    nChannelId;
	int    nLinkId;
	char   sLinkIp[16];
	int	   nPort;
} TMsgHead;

typedef struct TSmgRegisterReq
{
    char	sServiceNumber[8];
} TSmgRegisterReq;

typedef struct TSmgRegisterRep
{
    char	sServiceNumber[8];
    u_char	ucResult;
} TSmgRegisterRep;

typedef struct TSmgUnRegisterReq
{
    char	sServiceNumber[8];
} TSmgUnRegisterReq;

typedef struct TSmgUnRegisterRep
{
    char	sServiceNumber[8];
    u_char	ucResult;
} TSmgUnRegisterRep;

typedef struct TSmgDeliverReq
{
	u_char  ucSmgNodeId;
	char	sMsgId[16];
	char	sLinkId[20];
    char	sDstAddr[24];
    char	sSrcAddr[24];
    char	sServiceId[12];
    u_char	ucMsgFmt;
    u_char	ucRegister;
    u_char	ucMsgLen;
    u_char	usMsgContent[256];
} TSmgDeliverReq;

typedef struct TSmgDeliverRep
{
    u_char	ucResult;
} TSmgDeliverRep;


typedef struct TSmgSubmitReq
{
	char	sMsgId[16];
	char	sLinkId[20];
    u_char	ucActionType;
    int		nClientSeqId;
    int		nMsgCounts;
    int 	nMsgNumber;
    u_char	ucRegister;
    char	sServiceId[12];
    u_char	ucFeeUserType;
    char	sFeeAddr[24];
    u_char	ucMsgFmt;
    char	sFeeType[4];
    char	sFeeCode[8];
    char	sSrcAddr[24];
    char	sDstAddr[24];
    int		ucMsgLen;
    char	sMsgContext[1024];
} TSmgSubmitReq;

typedef struct TSmgSubmitRep
{
	char	sMsgId[16];
    int		nClientSeqId;
    u_char	ucActionType;
    u_char	ucResult;
} TSmgSubmitRep;

typedef struct TSmgCancelReq
{
	char sDstAddr[24];
} TSmgCancelReq;

typedef struct TSmgCancelRep
{
    u_char	ucSuccId;
} TSmgCancelRep;

typedef struct TSmgDeliverRcpt
{
    char	sStat[8];
    char	sSubmitTime[12];
    char	sDoneTime[12];
    char	sDstAddr[24];
    int 	nSmscSeqId;
} TSmgDeliverRcpt;

typedef struct TSmgLinkDown
{
	TMsgHead rMsgHead;
} TSmgLinkDown;

typedef struct TMsgLinkUp
{
	TMsgHead rMsgHead;
} TSmgLinkUp;

typedef struct
{
	int nMoniType;
	char sMoniMsg[1024];
} TMonitorMesg;

typedef struct TSmgPacket
{
	TMsgHead rMsgHead;
	union
	{
		TSmgRegisterReq rSmgRegisterReq;
		TSmgRegisterRep rSmgRegisterRep;
		TSmgUnRegisterReq rSmgUnRegisterReq;
		TSmgUnRegisterRep rSmgUnRegisterRep;
		TSmgDeliverReq	rSmgDeliverReq;
		TSmgDeliverRep	rSmgDeliverRep;
		TSmgSubmitReq	rSmgSubmitReq;
		TSmgSubmitRep	rSmgSubmitRep;
		TSmgCancelReq	rSmgCancelReq;
		TSmgCancelRep	rSmgCancelRep;
		TSmgDeliverRcpt	rSmgDeliverRcpt;
		TSmgLinkUp		rSmgLinkUp;
		TSmgLinkDown	rSmgLinkDown;
		TMonitorMesg	rMonitorMesg;
	} rMsgBody;
} TSmgPacket;




// begin delcare function for SMG client
int SMG_InitClient(char *sSmgServerIp, int nPort);
int SMG_GetClientEvent(TSmgPacket *prSmgPacket);
void SMG_CloseClient();

int SMG_SendRegisterReq(TMsgHead rMsgHead, TSmgRegisterReq rSmgRegisterReq);
int SMG_SendUnRegisterReq(TMsgHead rMsgHead, TSmgUnRegisterReq rSmgRegisterReq);
int SMG_SendDeliverRep(TMsgHead rMsgHead, TSmgDeliverRep rSmgDeliverRep);
int SMG_SendSubmitReq(TMsgHead rMsgHead, TSmgSubmitReq rSmgSubmitReq);
int SMG_SendCancleReq(TMsgHead rMsgHead, TSmgCancelReq rSmgCancleReq);
int SMG_SendMonitorAction(int nLinkId, int nActType, char *sMsg);
// end delcare function for SMG client

// begin delcare function for SMG server
int SMG_InitServer(int nPort);
int SMG_GetServerEvent(TSmgPacket *prSmgPacket);
void SMG_CloseServer();

int SMG_SendRegisterRep(TMsgHead rMsgHead, TSmgRegisterRep rSmgRegisterRep);
int SMG_SendUnRegisterRep(TMsgHead rMsgHead, TSmgUnRegisterRep rSmgRegisterRep);
int SMG_SendDeliverReq(TMsgHead rMsgHead, TSmgDeliverReq rSmgDeliverReq);
int SMG_SendSubmitRep(TMsgHead rMsgHead, TSmgSubmitRep rSmgSubmitRep);
int SMG_SendCancleRep(TMsgHead rMsgHead, TSmgCancelRep rSmgCancleRep);
int SMG_SendMonitorMsg(int nLinkId, char *sMonMsg, unsigned short nLen);
int SMG_SendReloadConfig(int nLinkId);
int SMG_SendReloadData(int nLinkId);
int SMG_SendServiceExit(int nLinkId);
// end delcare function for SMG server

#pragma pack(pop)


#endif

⌨️ 快捷键说明

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