📄 sgip.h
字号:
/*************************************************************
function: 联通SGIP头结构
date: 2003/07/14
created: Liaomch
*************************************************************/
#ifndef _SGIP_H_
#define _SGIP_H_
#define UC unsigned char
#define MAX_SUBMIT 16 /*接收窗口大小 */
const int END_SUCCEED = 0;
const int END_FAILED = -1;
#define SGIP_BIND 0x00000001
#define SGIP_BIND_RESP 0x80000001
#define SGIP_UNBIND 0x00000002
#define SGIP_UNBIND_RESP 0x80000002
#define SGIP_SUBMIT 0x00000003
#define SGIP_SUBMIT_RESP 0x80000003
#define SGIP_DELIVER 0x00000004
#define SGIP_DELIVER_RESP 0x80000004
#define SGIP_REPORT 0x00000005
#define SGIP_REPORT_RESP 0x80000005
#define SGIP_ADDSP 0x00000006
#define SGIP_ADDSP_RESP 0x80000006
#define SGIP_MODIFYSP 0x00000007
#define SGIP_MODIFYSP_RESP 0x80000007
#define SGIP_DELETESP 0x00000008
#define SGIP_DELETESP_RESP 0x80000008
#define SGIP_QUERYROUTE 0x00000009
#define SGIP_QUERYROUTE_RESP 0x80000009
#define SGIP_ADDTELESEG 0x0000000a
#define SGIP_ADDTELESEG_RESP 0x8000000a
#define SGIP_MODIFYTELESEG 0x0000000b
#define SGIP_MODIFYTELESEG_RESP 0x8000000b
#define SGIP_DELETETELESEG 0x0000000c
#define SGIP_DELETETELESEG_RESP 0x8000000c
#define SGIP_ADDSMG 0x0000000d
#define SGIP_ADDSMG_RESP 0x8000000d
#define SGIP_MODIFYSMG 0x0000000e
#define SGIP_MODIFYSMG_RESP 0x8000000e
#define SGIP_DELETESMG 0x0000000f
#define SGIP_DELETESMG_RESP 0x8000000f
#define SGIP_CHECKUSER 0x00000010
#define SGIP_CHECKUSER_RESP 0x80000010
#define SGIP_USERRPT 0x00000011
#define SGIP_USERRPT_RESP 0x80000011
#define SGIP_TRACE 0x00001000
#define SGIP_TRACE_RESP 0x80001000
//消息ID定义
//错误码定义
//注:错误码1-20所指错误一般在各类命令的应答中用到,
//21-32所指错误一般在report命令中用到。
#define SGIP_SUCCEED 0 //无错误,命令正确接收
#define SGIP_LOGIN_INVALID 1 //非法登录,如登录名、口令出错、登录名与口令不符等。
#define SGIP_LOGIN_RE 2 //重复登录,如在同一TCP/IP连接中连续两次以上请求登录。
#define SGIP_CONNECT_TOMUCH 3 //连接过多,指单个节点要求同时建立的连接数过多。
#define SGIP_LOGIN_TYPE_ERR 4 //登录类型错,指bind命令中的logintype字段出错。
#define SGIP_PARA_FORMAT_ERR 5 //参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。
#define SGIP_PARA_SRCID_ERR 6 //非法手机号码,协议中所有手机号码字段出现非86130号码或手机号码前未加"86"时都应报错。
#define SGIP_PARA_MSGID_ERR 7 //消息ID错
#define SGIP_PARA_MSGLEN_ERR 8 //信息长度错
#define SGIP_PARA_SECNO_ERR 9 //非法序列号,包括序列号重复、序列号格式错误等
#define SGIP_PARA_GNS_ERR 10 //非法操作GNS
#define SGIP_NODE_BUSY 11 //节点忙,指本节点存储队列满或其他原因,暂时不能提供服务的情况
#define SGIP_OBJECT_UNREACH 21 //目的地址不可达,指路由表存在路由且消息路由正确但被路由的节点暂时不能提供服务的情况
#define SGIP_ROUTE_ERR 22 //路由错,指路由表存在路由但消息路由出错的情况,如转错SMG等
#define SGIP_ROUTE_UNEXIST 23 //路由不存在,指消息路由的节点在路由表中不存在
#define SGIP_ACCREDIT_ERR 24 //计费号码无效,鉴权不成功时反馈的错误信息
#define SGIP_USER_OUTSIDE 25 //用户不能通信(如不在服务区、未开机等情况)
#define SGIP_USER_OUTMEMERY 26 //手机内存不足
#define SGIP_USER_UPSUPPORT 27 //手机不支持短消息
#define SGIP_USER_ACCEPT_ERR 28 //手机接收短消息出现错误
#define SGIP_USER_UNKNOW 29 //不知道的用户
#define SGIP_SERVICE_UNSUPPORT 30 //不提供此功能
#define SGIP_DEVICE_INVALIDE 31 //非法设备
#define SGIP_SYSTEM_FAILED 32 //系统失败
#define SGIP_QUEUE_FULL 33 //短信中心队列满
//计费类别定义
#define SGIP_ACCOUNT_SEND 0 //"短消息类型"为"发送",对"计费用户号码"不计信息费,此类话单仅用于核减SP对称的信道费
#define SGIP_ACCOUNT_FREE 1 //对"计费用户号码"免费
#define SGIP_ACCOUNT_PIECE 2 //对"计费用户号码"按条计信息费
#define SGIP_ACCOUNT_MONTH 3 //对"计费用户号码"按包月收取信息费
#define SGIP_ACCOUNT_SP 4 //对"计费用户号码"的收费是由SP实现
//Report 状态与短消息状态的映射
#define SGIP_SEND_SUCCEED 0 //发送成功 DELIVERED
#define SGIP_SEND_WAIT 1 //等待发送 ENROUTE,ACCEPTED
#define SGIP_SEND_FAILED 2 //发送失败 EXPIRED,DELETED,UNDELIVERABLE,UNKNOWN,REJECTED
typedef struct
{
unsigned int iSrcID;
unsigned int iDate;
unsigned int iSeqno;
}SEQUENCE_NUM;
typedef struct
{
unsigned int iMsgLen;
unsigned int iCmdID;
SEQUENCE_NUM sSeqNo;
}SGIP_HEAD;
/*
typedef struct
{
unsigned int iMsgLen;
unsigned int iCmdID;
unsigned int iSrcID;
unsigned int iDate;
unsigned int iSeqno;
}SGIP_HEAD;
*/
typedef struct
{
UC cLoginType;
char cLoginName[16];
char cLoginPwd[16];
char cReserve[8];
}SGIP_BIND_BODY;
typedef struct
{
SGIP_HEAD Head;
SGIP_BIND_BODY Body;
}SGIP_BIND_MSG;
typedef struct
{
UC cResult;
char cReserve[8];
}SGIP_RESP_BODY, SGIP_BINDRESP_BODY, SGIP_SUBMITRESP_BODY,
SGIP_DELIVERRESP_BODY, SGIP_REPORTRESP_BODY;
typedef struct
{
SGIP_HEAD Head;
SGIP_BINDRESP_BODY Body;
}SGIP_BINDRESP_MSG;
typedef struct
{
SGIP_HEAD Head;
SGIP_SUBMITRESP_BODY Body;
}SGIP_SUBMITRESP_MSG;
typedef struct
{
SGIP_HEAD Head;
SGIP_DELIVERRESP_BODY Body;
}SGIP_DELIVERRESP_MSG;
typedef struct
{
SGIP_HEAD Head;
SGIP_REPORTRESP_BODY Body;
}SGIP_REPORTRESP_MSG;
typedef struct
{
SGIP_HEAD Head;
}SGIP_UNBIND_MSG, SGIP_UNBINDRESP_MSG;
typedef struct
{
SGIP_HEAD Head;
SGIP_RESP_BODY Body;
}SGIP_RESP_MSG;
#define MAX_CONTENT_LEN 160
typedef struct
{
char cSPNumber[21];
char cChargeNumber[21];
UC cUserCount;
char cUserNumber[21*100];
char cCorpId[5];
char cServiceType[10];
UC cFeeType;
char cFeeValue[6];
char cGivenValue[6];
UC cAgentFlag;
UC cMorelatetoMTFlag;
UC cPriority;
char cExpireTime[16];
char cScheduleTime[16];
UC cReportFlag;
UC cTP_pid;
UC cTP_udhi;
UC cMessageCoding;
UC cMessageType;
int iMessageLength;
char cMessageContent[MAX_CONTENT_LEN];//Message Length Text
char cReserve[8];
}SGIP_SUBMIT_BODY;
typedef struct
{
SGIP_HEAD Head;
SGIP_SUBMIT_BODY Body;
}SGIP_SUBMIT_MSG;
typedef struct
{
char cUserNumber[21];
char cSPNumber[21];
UC cTP_pid;
UC cTP_udhi;
UC cMessageCoding;
int iMessageLength;
char cMessageContent[MAX_CONTENT_LEN];
char cReserve[8];
}SGIP_DELIVER_BODY;
typedef struct
{
SGIP_HEAD Head;
SGIP_DELIVER_BODY Body;
}SGIP_DELIVER_MSG;
typedef struct
{
SEQUENCE_NUM sSubmitSeqNum;
UC cReportType;
char cUserNumber[21];
UC cState;
UC ErrorCode;
char cReserve[8];
}SGIP_REPORT_BODY;
typedef struct
{
SGIP_HEAD Head;
SGIP_REPORT_BODY Body;
}SGIP_REPORT_MSG;
typedef struct
{
SGIP_HEAD Head;
union
{
SGIP_BIND_BODY Bind;
SGIP_SUBMIT_BODY Submit;
SGIP_DELIVER_BODY Deliver;
SGIP_REPORT_BODY Report;
SGIP_RESP_BODY Resp;
}Body;
}SGIP_MSG;
typedef struct
{
union
{
SGIP_BIND_BODY Bind;
SGIP_SUBMIT_BODY Submit;
SGIP_DELIVER_BODY Deliver;
SGIP_REPORT_BODY Report;
SGIP_RESP_BODY Resp;
}Body;
}SGIP_MSG_BODY;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -