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