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

📄 sgip.h

📁 联通的短信网关平台。 sp 使用。 如果想自己用vc 开发短信业务
💻 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 + -