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

📄 sgippacket.h

📁 一个SGIP网关的程序源码.vc代码
💻 H
📖 第 1 页 / 共 2 页
字号:
// SGIPPacket.h: interface for the CSGIPPacket class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SGIPPACKET_H__82355391_3A47_4A46_A460_86BDCE61FBE6__INCLUDED_)
#define AFX_SGIPPACKET_H__82355391_3A47_4A46_A460_86BDCE61FBE6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#pragma pack(1)
// Event value
#define EVT_CONSUCCESS		0x0000	// Connection established
#define EVT_CONFAILURE		0x0001	// General failure - Wait Connection failed
#define EVT_CONDROP			0x0002	// Connection dropped
#define EVT_ZEROLENGTH		0x0003	// Zero length message

//消息ID定义
//消息ID名称	消息ID取值
#define SGIP_BIND	0x1                //客户端首先发送Bind命令
#define SGIP_BIND_RESP	0x80000001     //server 对Bind命令的应答
#define SGIP_UNBIND	0x2                 //客户端如果要停止通信,需要发送Unbind命令
#define SGIP_UNBIND_RESP	0x80000002  //服务器端收到Unbind命令后,向客户端发送Unbind_Resp相应,然后双方断开连接
#define SGIP_SUBMIT	0x3                 //在SP和SMG的通信中,SP用Submit命令向SMG提交MT短消息,发送到用户的手机中
//在SMG和SMG的通信中,Submit命令用于SMG客户端向服务器端路由从SP收到的MT短消息
#define SGIP_SUBMIT_RESP	0x80000003  //SMG接收到Submit命令,会返回Submit_Resp应答
#define SGIP_DELIVER	0x4             //在SP和SMG的通信中,SMG用Deliver命令向SP发送一条MO短消息。
//在SMG和SMG的通信中,Deliver命令用于SMG客户端向服务器端路由MO短消息
#define SGIP_DELIVER_RESP	0x80000004  //SP接收到Deliver命令,会返回Deliver_Resp应答
//
#define SGIP_REPORT	0x5                //用于向SP发送一条先前的Submit命令的当前状态,
//或者用于向前转SMG发送一条先前的Deliver命令的当前状态
#define SGIP_REPORT_RESP	0x80000005 //Report命令的接收方需要向发送方返回Report_Resp命令
#define SGIP_ADDSP	0x6                //AddSP操作用于在SMG和GNS之间通知添加了一个SP
#define SGIP_ADDSP_RESP	0x80000006
#define SGIP_MODIFYSP	0x7            //ModifySP操作用于在SMG和GNS之间通知修改了一个SP的接入号码。
#define SGIP_MODIFYSP_RESP	0x80000007
#define SGIP_DELETESP	0x8            //DeleteSP操作用于在SMG和GNS之间通知删除了一个SP的接入号码
#define SGIP_DELETESP_RESP	0x80000008
#define SGIP_QUERYROUTE	0x9             //QueryRoute操作用于在SMG向GNS请求一条或全部路由信息
#define SGIP_QUERYROUTE_RESP	0x80000009
#define SGIP_ADDTELESEG	0xa             //AddTeleSeg操作用于在GNS向SMG通知添加了一个号码段。
#define SGIP_ADDTELESEG_RESP	0x8000000a
#define SGIP_MODIFYTELESEG	0xb         //ModifyTeleSeg操作用于在GNS向SMG通知修改了一个号码段
#define SGIP_MODIFYTELESEG_RESP	0x8000000b
#define SGIP_DELETETELESEG	0xc         //DeleteTeleSeg操作用于在GNS通知SMG删除了一个号码段。
#define SGIP_DELETETELESEG_RESP	0x8000000c
#define SGIP_ADDSMG	0xd                 //
#define SGIP_ADDSMG_RESP	0x8000000d
#define SGIP_MODIFYSMG	0xe
#define SGIP_MODIFYSMG_RESP	0x0000000e
#define SGIP_DELETESMG	0xf
#define SGIP_DELETESMG_RESP	0x8000000f
#define SGIP_CHECKUSER	0x10            //鉴权消息用于SMG向计费中心请求对一个手机用户进行鉴权
#define SGIP_CHECKUSER_RESP	0x80000010
#define SGIP_USERRPT	0x11            //用于完成对用户鉴权后,由SMG向手机用户所注册的SP发送命令,
//对手机用户进行状态配置。
#define SGIP_USERRPT_RESP	0x80000011
#define SGIP_TRACE	0x1000            //测试消息用于向SMG请求跟踪查询某一条MT短消息的状态
#define SGIP_TRACE_RESP	0x80001000

 
#define BUFFER_SIZE		MAX_PATH
#define HOSTNAME_SIZE	MAX_PATH
#define STRING_LENGTH	40
struct SBIND  
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节
	BYTE    Login_Type;      // 登录类型。1:SP向SMG建立的连接,用于发送命令
	//2:SMG向SP建立的连接,用于发送命令
	//3:SMG之间建立的连接,用于转发命令
	//4:SMG向GNS建立的连接,用于路由表的检索和维护
	//5:GNS向SMG建立的连接,用于路由表的更新
	//6:主备GNS之间建立的连接,用于主备路由表的一致性
	//11:SP与SMG以及SMG之间建立的测试连接,用于跟踪测试
	//其它:保留
	
	     char   Login_Name[16];   //服务器端给客户端分配的登录名
         char   Login_Passowrd[16];  //服务器端和Login Name对应的密码
         char   Reserve[8];          //保留,扩展用
	   
} ;

struct SBIND_RESP
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节

	BYTE       Result;     //0:执行成功;其它:错误码
	char      Reserve[8];
    
} ;
struct SSUBMIT
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节


    char SPNumber[21];       //SP的接入号码
    char ChargeNumber[21];   //付费号码,手机号码前加"86"国别标志;当且仅当群发且对用户收费时为空;
	//如果为空,则该条短消息产生的费用由UserNumber代表的用户支付;
	//如果为全零字符串"000000000000000000000",表示该条短消息产生的费用由SP支付
	BYTE   UserCount;     //接收短消息的手机数量,取值范围1至100
    char UserNumber[21];   //接收该短消息的手机号,该字段重复UserCount指定的次数,
	//手机号码前加"86"国别标志
	char CorpId[5];   //企业代码,取值范围0-99999
    char ServiceType[10];  //业务代码,由SP定义
    BYTE   FeeType;         //计费类型
    char FeeValue[6]  ;    //取值范围0-99999,该条短消息的收费值,单位为分,
	//由SP定义对于包月制收费的用户,该值为月租费的值
	char GivenValue[6];  //取值范围0-99999,赠送用户的话费,单位为分,
	//由SP定义,特指由SP向用户发送广告时的赠送话费
	BYTE   AgentFlag;       //代收费标志,0:应收;1:实收
    BYTE   MorelatetoMTFlag;  //引起MT消息的原因:
	//0-MO点播引起的第一条MT消息;1-MO点播引起的非第一条MT消息;
	//2-非MO点播引起的MT消息;3-系统反馈引起的MT消息。
    BYTE   Priority;   //优先级0-9从低到高,默认为0
    char ExpireTime[16];  //短消息寿命的终止时间,如果为空,表示使用短消息中心的缺省值。时间内容为16个字符,
	//格式为"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默认系统为北京时间
	char ScheduleTime[16]; //短消息定时发送的时间,如果为空,表示立刻发送该短消息。时间内容为16个字符,
	//格式为"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默认系统为北京时间
    BYTE   ReportFlag;   //状态报告标记
	//0-该条消息只有最后出错时要返回状态报告
	//1-该条消息无论最后是否成功都要返回状态报告
	//2-该条消息不需要返回状态报告    
	//3-该条消息仅携带包月计费信息,不下发给用户,要返回状态报告
	//其它-保留   
	//缺省设置为0
    BYTE   TP_pid;      //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
    BYTE   TP_udhi;     //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
    BYTE   MessageCoding; //短消息的编码格式。0:纯ASCII字符串3:写卡操作
	//4:二进制编码8:UCS2编码15: GBK编码
	//其它参见GSM3.38第4节:SMS Data Coding Scheme
	BYTE   MessageType;   //0-短消息信息其它:待定
    long   MessageLength;   //短消息的长度
    char MessageContent[160];  //短消息的内容
    char Reserve[8];           //保留,扩展用
    
} ;
struct SSUBMIT_RESP
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节

	BYTE       Result;
	char      Reserve[8];
    
} ;
struct SDELIVER
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节


	char UserNumber[21];	 //发送短消息的用户手机号,手机号码前加"86"国别标志
	char SPNumber[21];	      //SP的接入号码
	BYTE     TP_pid;          //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
	BYTE     TP_udhi;	      //GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
	BYTE      MessageCoding;  //短消息的编码格式。0:纯ASCII字符串3:写卡操作
	//4:二进制编码8:UCS2编码15: GBK编码
	//其它参见GSM3.38第4节:SMS Data Coding Scheme
	int  MessageLength;	 //短消息的长度
	char  MessageContent[160];	  //短消息的内容
	char  Reserve[8]; 
} ;
struct SDELIVER_RESP
{
	unsigned long  Msglen;//消息的总长度(字节)
    unsigned long  Cmd_id;//命令ID
    unsigned long  Seq_Number1;//序列号,只记录后四个字节
    unsigned long  Seq_Number2;//序列号,只记录后四个字节
    unsigned long  Seq_Number3;//序列号,只记录后四个字节
	BYTE       Result;
	char      Reserve[8];

⌨️ 快捷键说明

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