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

📄 const.h

📁 看到联通的接口协议的dll没
💻 H
📖 第 1 页 / 共 2 页
字号:
	e_IMPP_LOGIN					= 0x00000001,    //客户端登录请求	
	e_IMPP_SUBMIT					= 0x00000002,	//提交短消息
	e_IMPP_DELIVER					= 0x00000003,	  //下发短消息
	e_IMPP_ACTIVE_TEST				= 0x00000004,     //链路检测
	e_IMPP_EXIT						= 0x00000006,      //退出请求
	e_IMPP_LOGIN_RESP				= 0x80000001,	   //客户端登录应答
	e_IMPP_SUBMIT_RESP				= 0x80000002,	   //提交短消息应答
	e_IMPP_DELIVER_RESP				= 0x80000003,      //下发短消息应答	
	e_IMPP_ACTIVE_TEST_RESP			= 0x80000004,	   //链路检测应答
	e_IMPP_EXIT_RESP				= 0x80000006,      //	退出应答
};

/** MT消息来源
*/
enum FromID {
	e_FromID_DB, 
	e_FromID_SOCKET
};

/** 
Submit消息中由接口库自定义的非标准消息
*/
struct NonStandardInfo {
	/** Submit消息的来源(1 - socket接口,0 - DB)
	*/
	int				fromID;
	/**记录ID,唯一标识一条submit消息
	例如:一条MT消息的数据库记录ID
	*/
	unsigned	recid;				

	/**CMPP_HEAD中的消息流水号
	*/
	unsigned long seqid;	

	/**该消息被发送的时间
	*/
	unsigned	sendtime;

	/**该消息被回复的时间
	*/
	unsigned	resptime;

	/**该消息被发送的次数
	*/
	int				submittimes;

	/**短消息发送的结果
	如果成功收到SubmitResponse,此处为SubmitResponse的status字段值,
	如果没有发送到网关,此处为系统定义的错误
	*/
	int				IIResult;

	unsigned _int64 nMsgId;
};


/** smpp3.4命令字定义
命令码宏定义	数值	描述
ESME_BNDRCV	0X00000001	ESME要求连接到SMSC
ESME_BNDRCV	0X80000001	连接SMSC的响应
ESME_BNDTRN	0X00000002	ESME要求连接到SMSC
ESME_BNDTRN_RESP	0X80000002	连接SMSC的响应
ESME_UBD	0X00000006	ESME要求断开连接到SMSC
ESME_UBD_RESP	0X80000006	断开连接的响应
ESME_SUB_SM		0X00000004	ESME提交短消息到SMSC,以便SMSC下发此短消息到特定的用户。
ESME_SUB_SM_RESP	0X80000004	提交短消息的响应
ESME_DELIVER_SM	0X00000005	SMSC下发短消息到特定的ESME
ESME_DELIVER_SM_RESP	0X80000005	下发短消息的响应
ESME_QUERY_SM	0X00000003	ESME查询以前所提交的短消息的状态
ESME_QUERY_SM_RESP	0X80000003	查询短消息的响应
ESME_CANCEL_SM	0X00000008	ESME要求取消以前所提交的某条短消息
ESME_CANCEL_SM_RESP	0X80000008	ESME要求取消以前所提交的某条短消息的响应
ESME_REPLACE_SM	0X00000007	ESME要求替换以前所提交的某条短消息
ESME_REPLACE_SM_RESP	0X80000007	ESME要求替换以前所提交的某条短消息的响应
ESME_QRYLINK	0X00000015	询问扩展短消息实体与短消息中心的连接情况
ESME_QRYLINK_RESP	0X80000015	询问扩展短消息实体与短消息中心的连接情况的响应
ESME_NACK	0X80000000	接收消息头错误的响应
ESME_REPLACE_SM_EX	0X00000090	ESME要求替换以前所提交的某条短消息的扩展命令,它增加了数据编码格式字段
ESME_REPLACE_SM_EX_RESP	0X80000090	扩展替换短消息的的响应
ESME_ADD_SUB	0X000000A0	增加用户
ESME_ADD_SUB_RESP	0X800000A0	增加用户的响应
ESME_DEL_SUB	0X000000A1	删除用户
ESME_DEL_SUB_RESP	0X800000A1	删除用户的响应
ESME_MOD_SUB	0X000000A2	修改用户
ESME_MOD_SUB_RESP	0X800000A2	修改用户的响应
ESME_QRY_SUB	0X000000A3	查询用户的信息
ESME_QRY_SUB_RESP	0X800000A3	查询用户的信息的响应
*/
enum SMPP_COMMAND {
	e_ESME_BNDRCV					= 0X00000001, ///<	ESME要求连接到SMSC
	e_ESME_BNDRCV_RESP				= 0X80000001, ///<	连接SMSC的响应
	e_ESME_BNDTRN					= 0X00000002, ///<	ESME要求连接到SMSC
	e_ESME_BNDTRN_RESP				= 0X80000002, ///<	连接SMSC的响应
	e_ESME_UBD						= 0X00000006, ///<	ESME要求断开连接到SMSC
	e_ESME_UBD_RESP					= 0X80000006, ///<	断开连接的响应
	e_ESME_SUB_SM					= 0X00000004, ///<	ESME提交短消息到SMSC,以便SMSC下发此短消息到特定的用户。
	e_ESME_SUB_SM_RESP				= 0X80000004, ///<	提交短消息的响应
	e_ESME_DELIVER_SM				= 0X00000005, ///<	SMSC下发短消息到特定的ESME
	e_ESME_DELIVER_SM_RESP			= 0X80000005, ///<	下发短消息的响应
	e_ESME_QUERY_SM					= 0X00000003, ///<	ESME查询以前所提交的短消息的状态
	e_ESME_QUERY_SM_RESP			= 0X80000003, ///<	查询短消息的响应
	e_ESME_CANCEL_SM				= 0X00000008, ///<	ESME要求取消以前所提交的某条短消息
	e_ESME_CANCEL_SM_RESP			= 0X80000008, ///<	ESME要求取消以前所提交的某条短消息的响应
	e_ESME_REPLACE_SM				= 0X00000007, ///<	ESME要求替换以前所提交的某条短消息
	e_ESME_REPLACE_SM_RESP			= 0X80000007, ///<	ESME要求替换以前所提交的某条短消息的响应
	e_ESME_BNDTRANSEIVER			= 0X00000009, ///<	收发连接
	e_ESME_BNDTRANSEIVER_RESP		= 0X80000009, ///<	收发连接应答
	e_ESME_QRYLINK					= 0X00000015, ///<	询问扩展短消息实体与短消息中心的连接情况
	e_ESME_QRYLINK_RESP				= 0X80000015, ///<	询问扩展短消息实体与短消息中心的连接情况的响应
	e_ESME_NACK						= 0X80000000, ///<	接收消息头错误的响应
	e_ESME_REPLACE_SM_EX			= 0X00000090, ///<	ESME要求替换以前所提交的某条短消息的扩展命令,它增加了数据编码格式字段
	e_ESME_REPLACE_SM_EX_RESP		= 0X80000090, ///<	扩展替换短消息的的响应
	e_ESME_ADD_SUB					= 0X000000A0, ///<	增加用户
	e_ESME_ADD_SUB_RESP				= 0X800000A0, ///<	增加用户的响应
	e_ESME_DEL_SUB					= 0X000000A1, ///<	删除用户
	e_ESME_DEL_SUB_RESP				= 0X800000A1, ///<	删除用户的响应
	e_ESME_MOD_SUB					= 0X000000A2, ///<	修改用户
	e_ESME_MOD_SUB_RESP				= 0X800000A2, ///<	修改用户的响应
	e_ESME_QRY_SUB					= 0X000000A3, ///<	查询用户的信息
	e_ESME_QRY_SUB_RESP				= 0X800000A3, ///<	查询用户的信息的响应
	e_NUM_OF_SMPP					=	29	
};

/**
	SMPP3.4 command_status定义
	错误代码	描述
	E_SUCCESS(0X00000000)	成功
	E_OTHERERR(0X00000001)	其他错误
	0X00000002 – 0X0000000F	保留给SMSC厂商定义错误
	E_MSGLENERR(0X00000010)	消息长度错误
	E_CMDLENERR(0X00000011)	命令长度错误
	E_INVLDCMDID(0X00000012)	消息ID无效
	E_NORIGHT(0X00000013)	没有执行此命令的权限
	0X00000014 – 0X0000001F	保留
	E_INVLDSYSTEMID(0X00000020)	无效的SYSTEMID
	E_INVLDPASSWORD(0X00000021)	无效的密码
	E_INVLDSYSTEMTYPE(0X00000022)	无效的SYSTEMTYPE
	0X00000023 – 0X0000003F	保留
	E_ADDRERR(0X00000040)	地址错误
	E_MOEXCEED(0X00000041)	超过最大提交数
	E_MTEXCEED(0X00000042)	超过最大下发数
	E_INVLDUSER(0X00000043)	无效的用户
	E_INVLDDATAFMT(0X00000044)	无效的数据格式
	E_CREATEMSGFAILURE(0X00000045)	创建消息失败
	E_INVLDMSGID(0X00000046)	无效的短消息ID
	E_DATABASEFAILURE(0X00000047)	数据库失败
	E_CANCELMSGFAILURE(0X00000048)	取消消息失败
	E_MSGSTATEERR(0X00000049)	短消息状态错误
	E_REPLACEMSGFAILURE(0X0000004A)	替换消息失败
	E_INVLDRPLADDR(0X0000004B)	替换消息源地址错误
	0X0000004C – 0X0000005F	保留
	E_INVLDORGTON(0X00000060)	无效的源地址TON
	E_INVLDORGNPI(0X00000061)	无效的源地址NPI
	E_ORGADDRERR(0X00000062)	源地址错误
	E_INVLDDESTTON(0X00000063)	无效的目的地址TON
	E_INVLDDESTNPI(0X00000064)	无效的目的地址NPI
	E_DESTADDRERR(0X00000065)	目的地址错误
	E_INVLDSCHEDULE(0X00000066)	无效的定时时间
	E_INVLDEXPIRE(0X00000067)	无效的超时时间
	E_INVLDESM(0X00000068)	无效的ESM_CALSS
	E_INVLDUDLEN(0X00000069)	无效的UDLEN
	E_INVLDPRI(0X0000006A)	无效的PRI
	E_INVLDRDF(0X0000006B)	无效的Registered_delivery_flag
	E_INVLDRPF(0X0000006C)	无效的Replace_if_present_flag
	0X0000006D – 0X0000007F	保留
	用户管理部分(可选)	
	E_USERALREADYEXIST(0X00000080)	指定用户已经存在
	E_CREATEUSERERR(0X00000081)	创建用户失败
	E_USERIDERR(0X00000082)	用户ID错误
	E_USERNOTEXIST(0X00000083)	指定用户不存在
	0X00000084 – 0X0000008F	保留
	0X00000090 – 0X00000FFF	保留给SMSC厂商定义错误
	其他	保留
*/
enum SMPP_COMMAND_STATUS {
	E_SUCCESS				= 0X00000000, ///<	成功
	E_OTHERERR				= 0X00000001, ///< 	其他错误
	E_MSGLENERR				= 0X00000010, ///<	消息长度错误
	E_CMDLENERR				= 0X00000011, ///<	命令长度错误
	E_INVLDCMDID			= 0X00000012, ///<	消息ID无效
	E_NORIGHT				= 0X00000013, ///<	没有执行此命令的权限
	E_INVLDSYSTEMID			= 0X00000020, ///<	无效的SYSTEMID
	E_INVLDPASSWORD			= 0X00000021, ///<	无效的密码
	E_INVLDSYSTEMTYPE		= 0X00000022, ///<	无效的SYSTEMTYPE
	E_ADDRERR				= 0X00000040, ///<	地址错误
	E_MOEXCEED				= 0X00000041, ///<	超过最大提交数
	E_MTEXCEED				= 0X00000042, ///<	超过最大下发数
	E_INVLDUSER				= 0X00000043, ///<	无效的用户
	E_INVLDDATAFMT			= 0X00000044, ///<	无效的数据格式
	E_CREATEMSGFAILURE		= 0X00000045, ///<	创建消息失败
	E_INVLDMSGID			= 0X00000046, ///<	无效的短消息ID
	E_DATABASEFAILURE		= 0X00000047, ///<	数据库失败
	E_CANCELMSGFAILURE		= 0X00000048, ///<	取消消息失败
	E_MSGSTATEERR			= 0X00000049, ///<	短消息状态错误
	E_REPLACEMSGFAILURE		= 0X0000004A, ///<	替换消息失败
	E_INVLDRPLADDR			= 0X0000004B, ///<	替换消息源地址错误
	E_INVLDORGTON			= 0X00000060, ///<	无效的源地址TON
	E_INVLDORGNPI			= 0X00000061, ///<	无效的源地址NPI
	E_ORGADDRERR			= 0X00000062, ///<	源地址错误
	E_INVLDDESTTON			= 0X00000063, ///<	无效的目的地址TON
	E_INVLDDESTNPI			= 0X00000064, ///<	无效的目的地址NPI
	E_DESTADDRERR			= 0X00000065, ///<	目的地址错误
	E_INVLDSCHEDULE			= 0X00000066, ///<	无效的定时时间
	E_INVLDEXPIRE			= 0X00000067, ///<	无效的超时时间
	E_INVLDESM				= 0X00000068, ///<	无效的ESM_CALSS
	E_INVLDUDLEN			= 0X00000069, ///<	无效的UDLEN
	E_INVLDPRI				= 0X0000006A, ///<	无效的PRI
	E_INVLDRDF				= 0X0000006B, ///<	无效的Registered_delivery_flag
	E_INVLDRPF				= 0X0000006C, ///<	无效的Replace_if_present_flag
	E_USERALREADYEXIST		= 0X00000080, ///<	指定用户已经存在
	E_CREATEUSERERR			= 0X00000081, ///<	创建用户失败
	E_USERIDERR				= 0X00000082, ///<	用户ID错误
	E_USERNOTEXIST			= 0X00000083  ///<	指定用户不存在
};

static const unsigned long LENGTH_OF_SMPP_HEAD	=	16;			///< SMPP_HEAD长度
static const unsigned long LENGTH_OF_SMPP_BIND = 98;			///< SMPP_BIND消息长度(定长)
static const unsigned long LENGTH_OF_SMPP_BIND_RESP = 32;		///< SMPP_BIND_RESP消息长度
static const unsigned long LENGTH_OF_SMPP_SUBMIT = 127;			///< SMPP_SUBMIT_SM消息长度(不含短消息内容长度)
static const unsigned long LENGTH_OF_SMPP_DELIVER = 127;		///< SMPP_DELIVER_SM消息长度(不含短消息内容长度)
static const unsigned long LENGTH_OF_SMPP_SUBMIT_RESP = 25;		///< SMPP_SUBMIT_RESP消息长度
static const unsigned long LENGTH_OF_SMPP_DELIVER_RESP = 25;	///< SMPP_DELIVER_RESP消息长度

#endif

⌨️ 快捷键说明

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