?? 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 + -