📄 const.h
字号:
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 + -