www.pudn.com > jni_sms.zip > VASPClient.h
/* This file defined the export function */ #ifndef VASPCLIENT #define VASPCLIENT #include "Afxsock.h" #include#include #include #include #include #include //#include "StdAfx.h" //#include //#include "Afxsock.h" //#include //#include //#include //#include //#include //#include //#include //#include //#include #include //#include "VASP_Message.h" //Variables Definition #define MAXDATASIZE 2000 #define BACKLOG 5 #define MAXMSGLEN 160 //the max size of a message content #define HEADLEN 20 int MO_Sock; // 上行连接的Socket号 int MT_Sock; // 下行连接的Socket号 char ICP_id[8]; //ICP代码 struct sockaddr_in Server_addr; int Client_Sock; int Send_state = 0; int Receive_state = 0; HINSTANCE pLib; unsigned long i_seq = 0; //the sequence no of every packet unsigned long m_seq = 0; //the id of every message unsigned long addseq(unsigned long * p_seq){ (*p_seq)++; if((*p_seq) ==0) *p_seq = 1; //from 1 to ffffffff return *p_seq; } //Function Definition void printtime(); extern "C" int __stdcall vasp_Initialize(char* Server_IP, int Port, char* ICP_id); extern "C" char* __stdcall getErrorInfor(); //int ConnectServer(); extern "C" int __stdcall SendSubmit ( unsigned int *SequenceNumber, char *SPNumber, char *chargenumber, unsigned char usercount, char *usernumber[10], char *msg_src, char *service_id, char *feetype, char *feecode, char *givenvalue, unsigned char agentflag, unsigned char morelatetomtflag, unsigned char msg_level, char *valid_time, char *at_time, unsigned char reportflag, unsigned char TP_pid, unsigned char TP_udhi, unsigned char msg_fmt, unsigned char msg_type, unsigned int msg_length, char *msg_content); int MT_Connect(); int MO_Connect(); int SendTerminate_MO(); int SendTerminate_MT(); extern "C" int __stdcall GetINTTime(); int Send_Resp(int SGIP_kind,int errorcode,int *ssn); extern "C" int __stdcall SendTerminate(); extern "C" int __stdcall SendSingleSubmit( unsigned int *SequenceNumber, char *chargenumber, unsigned char usercount, char *usernumber[10], char *msg_src, char *service_id, char *feetype, char *feecode, char *givenvalue, unsigned char morelatetomtflag, unsigned char reportflag, unsigned char msg_fmt, unsigned char msg_type, unsigned int msg_length, char *msg_content); extern "C" int __stdcall ReceiveNewDeliverOrReport( int TimeWait, char *isdeliver, int *SequenceNumber, char *ServiceID, char *SPNumber, char *Usernumber, unsigned char *Msg_Fmt, unsigned char *TP_pid, unsigned char *TP_udhi, unsigned char *Msg_Type, unsigned int *Msg_Length, char *Msg_Content, unsigned int *SubmitSequenceNumber, unsigned char *ReportType, unsigned char *State, unsigned char *ErrorCode); int MT_ReceiveResp(unsigned long code); ////////////////////////////////////////////// /* This head file defines all the struct of VASP message */ /* The VASP Command_ID */ #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_ADDTELTSEG 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 VASP_SERVICEID_NUM 0x00000012 #define VASP_SERVICEID_REP_NUM 0x80000012 #define SGIP_TRACE 0x00001000 #define SGIP_TRACE_RESP 0x80001000 #define HEADLEN 20 #define MAXMSGLEN 160 //Message format #define FMT_ASCII 0//ASCII串 #define FMT_BIN 4//二进制信息 #define FMT_UCS 8//unicode 编码 #define FMT_GB 15//含GB汉字 。 /*0:正确 1:消息结构错 2:命令字错 3:消息序号重复 4:消息长度错 5:资费代码错 6:超过最大信息长 7:业务代码错 8: 流量控制错 9 :其他错误 10:参数错误 11:服务器忙 12:icp 认证错误 */ #define REP_SUCCESS 0 #define REP_ERR_STRUCT 1 #define SGIP_TRACE_RESP 0x80001000 #define HEADLEN 20 #define MAXMSGLEN 160 //Message format #define FMT_ASCII 0//ASCII串 #define FMT_BIN 4//二进制信息 #define FMT_UCS 8//unicode 编码 #define FMT_GB 15//含GB汉字 。 /*0:正确 1:消息结构错 2:命令字错 3:消息序号重复 4:消息长度错 5:资费代码错 6:超过最大信息长 7:业务代码错 8: 流量控制错 9 :其他错误 10:参数错误 11:服务器忙 12:icp 认证错误 */ #define REP_SUCCESS 0 #define REP_ERR_LOGIN 1 #define REP_ERR_RELOGIN 2 #define REP_ERR_LINKFULL 3 #define REP_ERR_LOGTYPE 4 #define REP_ERR_PARAFMT 5 #define REP_ERR_PHONE 6 #define REP_ERR_ID 7 #define REP_ERR_LENGTH 8 #define REP_ERR_SEQUENCE 9 #define REP_ERR_GNS 10 #define REP_ERR_BUSY 11 #define REP_ERR_ROUTEAR 21 #define REP_ERR_ROUTE 22 #define REP_ERR_NOROUTE 23 #define REP_ERR_SRCPHONE 24 #define REP_ERR_PHONEAR 25 #define REP_ERR_PHONESTORE 26 #define REP_ERR_PHONENOSM 27 #define REP_ERR_RECVSM 28 #define REP_ERR_UNKOWNPHONE 29 #define REP_ERR_NOSERV 30 #define REP_ERR_SERVICE 31 #define REP_ERR_SYSTEM 32 //subscribe packet type #define USER_CNANCEL 0 #define USER_ADD 1 #define USER_MODIFY 2 #define USER_QUERY 4 /* VASP message head */ struct VASP_Head { /* Message head */ unsigned int Total_Length; unsigned int Command_ID; unsigned int Sequence_ID[3]; }; /* Struct of PointToReport */ struct PointToReport { unsigned int ssn[3]; unsigned int SubmitSequenceNumber[3]; unsigned char ReportType; char UserNumber[21]; unsigned char State; unsigned char ErrorCode; }; /* Struct of PointToDeliver */ struct PointToDeliver { unsigned int ssn[3]; char Usernumber[21]; unsigned char Msg_Fmt; unsigned int Msg_Length; char *Msg_Content; }; /* VASP connect response */ struct VASP_Connect_REP { /* Message body */ unsigned char Status; char AuthenticatorISMG[16]; unsigned char Tls_available; }; /* VASP connect */ struct VASP_Connect { /* Message body */ char Source_Addr[6]; char AuthenticatorICP[16]; char Reserve[8]; }; /* VASP deliver response */ struct VASP_Deliver_Rep { unsigned int Msg_Id; unsigned char Tls_available; unsigned char Result; }; /* VASP Submit */ struct VASP_Submit { char Chargenumber[21]; unsigned char Usercount; char Usernumber[210]; char Msg_src[6]; char Service_id[10]; char Feetype[2]; char Feecode[6]; char Givenvalue[6]; unsigned char Agentflag; unsigned char Morelatetomtflag; unsigned char Msg_level; char Valid_time[16]; char At_time[16]; unsigned char Reportflag; unsigned char Msg_fmt; unsigned char Msg_type; unsigned int Msg_length; char Msg_content[700]; }; /* VASP Submit Response */ struct VASP_Submit_Rep { unsigned char Result; char Reserve[8]; /*0:正确 1:消息结构错 2:命令字错 3:消息序号重复 4:消息长度错 5:资费代码错 6:超过最大信息长 7:业务代码错 8: 流量控制错 9~ :其他错误 */ }; /* SGIP Report */ /* VASP report response */ struct VASP_Report_Rep { unsigned char Result; char Reserve[8]; /* 0:接收成功 其他: 错误码 */ }; ////////////////////////////////////////////// #endif