www.pudn.com > SMS PLAN.rar > CMPPAPI.h


/*  -------------------------------------------------------------------------- 
    Name:       CMPPAPI.hpp 
    Title:      CMPP API of ISMG for CMPP 1.1 
    Package:    ISMG for CMPP 1.1 
 
    Written:    2001/01/01  Asiainfo 
    Revised:     
 
    Synopsis:   Provide CMPP 1.1 API to ICP. 
 -----------------------------------------------------------------------------*/ 
 
#ifndef _CMPP_API_HPP_ 
#define _CMPP_API_HPP_ 
 
#define MAX_SM_LEN		160 
 
/* nNeedReply macro */ 
#define NEED_REPLY_YES	1 
#define NEED_REPLY_NO	0 
 
/* nMsgFormat macro */ 
#define MSG_FORMAT_ASCII		0 
#define MSG_FORMAT_WRITE_CARD	3 
#define MSG_FORMAT_BINARY		4 
#define MSG_FORMAT_UCS2			8 
#define MSG_FORMAT_GB			15 
 
/* nErrorCode macro */ 
#define ERROR_CODE_OK						0 
#define ERROR_CODE_INVALID_LEN				4 
#define ERROR_CODE_INVALID_FEECODE			5 
#define ERROR_CODE_TOO_LONG					6 
#define ERROR_CODE_INVALID_SERVICEID		7 
#define ERROR_CODE_TOO_FAST					8 
#define ERROR_CODE_INVALID_ICP				10 
#define ERROR_CODE_INVALID_MSGFORMAT		11 
#define ERROR_CODE_INVALID_FEETYPE			12 
#define ERROR_CODE_INVALID_VALIDTIME		13 
#define ERROR_CODE_INVALID_ATTIME			14 
#define ERROR_CODE_INVALID_SRCTERMID		15 
#define ERROR_CODE_INVALID_DESTTERMID		16 
#define ERROR_CODE_INVALID_DESTTERMIDFILE	17 
#define ERROR_CODE_INVALID_MSGFILE			18 
#define ERROR_CODE_INVALID_MSG				19 
#define ERROR_CODE_CONNECT_FAIL				20 
#define ERROR_CODE_LOGIN_FAIL				21 
#define ERROR_CODE_GET_RESP_FAIL			22 
#define ERROR_CODE_QUEUE_FULL				23 
#define ERROR_CODE_SYSTEM_ERROR				99 
 
#define QUERY_TYPE_TOTAL		0 
#define QUERY_TYPE_SERVICEID	1 
 
#define SM_STATUS_IN_QUEUE			0 
#define SM_STATUS_SEND_SMC_OK		1 
#define SM_STATUS_SEND_SMC_FAIL		2 
#define SM_STATUS_USER_RECV_OK		3 
#define SM_STATUS_USER_NO_RECV		4 
 
typedef struct 
{ 
	char	sMsgID[10+1]; 
	int		nErrorCode; 
	char	sPhoneNo[21+1]; 
}	SendBatchResp; 
 
typedef struct 
{ 
	int		nMT_TLMsg; 
	int		nMT_TLusr; 
	int		nMT_Scs; 
	int		nMT_WT; 
	int		nMT_FL; 
	int		nMO_Scs; 
	int		nMO_WT; 
	int		nMO_FL; 
}	QueryResp; 
 
typedef struct 
{ 
	char	sMsgID[10+1]; 
	int		nMsgLevel; 
	char	sServiceID[10+1]; 
	int		nMsgFormat; 
	char	sSrcTermID[21+1]; 
	int		nIsReply;	/* 0/1 */ 
	int		nMsgLen; 
	char	sMsgContent[MAX_SM_LEN+1]; 
}	DeliverResp; 
 
/* Must call this initiate function before calling others CMPP API functions 
   return: 0=OK, 1=fail 
*/ 
 
int InitCMPPAPI(const char *sINIFile); 
 
/* send a short message to single user 
   return: 0=OK, 1=fail,  
   if succeed, message id is filled in sMsgID. 
   if fail, error code is filled in nErrorCode. 
*/ 
int CMPPSendSingle(const int nNeedReply, const int nMsgLevel, 
		const char *sServiceID, const int nMsgFormat, 
		const char *sFeeType, const char *sFeeCode, 
		const char *sValidTime, const char *sAtTime, 
		const char *sSrcTermID, const char *sDestTermID, 
		const int nMsgLen, const char *sMsgContent, 
		char *sMsgID, int *nErrorCode); 
 
/* send a short message to multiple users 
   return: 0=OK, 1=fail,  
   if succeed, all message ids are filled in sMsgIDFile. 
   if fail, error code is filled in nErrorCode. 
   the short message is passed by file. 
*/ 
int CMPPSendBatch(const int nNeedReply, const int nMsgLevel, 
		const char *sServiceID, const int nMsgFormat, 
		const char *sFeeType, const char *sFeeCode, 
		const char *sValidTime, const char *sAtTime, 
		const char *sSrcTermID, const char *sDestTermIDFile, 
		const char *sMsgFile, char *sMsgIDFile); 
 
/* send a short message to multiple users 
   return: 0=OK, 1=fail,  
   if succeed, all message ids are filled in sMsgIDFile. 
   if fail, error code is filled in nErrorCode. 
   the short message is passed by string. 
*/ 
int CMPPSendBatch1(const int nNeedReply, const int nMsgLevel, 
		const char *sServiceID, const int nMsgFormat, 
		const char *sFeeType, const char *sFeeCode, 
		const char *sValidTime, const char *sAtTime, 
		const char *sSrcTermID, const char *sDestTermIDFile, 
		const int nMsgLen, const char *sMsgContent, 
		char *sMsgIDFile); 
 
/* nPos start from 0 
   the message id and error code are filled in pSendBatchResp 
   return: 0=OK, 1=fail 
*/ 
int GetSendBatchResp(char *sMsgIDFile, int nPos, SendBatchResp *pSendBatchResp); 
 
/* sDate format: yyyymmdd 
   nQueryType: 0=total, 1=service id 
   return: 0=OK, 1=fail 
   if succeed, query result is filled in pQueryResp. 
*/ 
int CMPPQuery(const char *sDate, const int nQueryType, 
				const char *sServiceID, QueryResp *pQueryResp); 
 
/* nTimeout: how many seconds the function keep waiting short message, 0 means wait forever. 
   return: 0=OK, 1=fail 
   if succeed, the delivered short message is filled in pDeliverResp. 
*/ 
int CMPPDeliver(const int nTimeout, DeliverResp *pDeliverResp); 
 
/* return: 0=OK, 1=fail */ 
int CMPPCancel(const char *sMsgID); 
 
/* return: 0=OK, 1=fail */ 
int CMMPActiveTest(int *nErrorCode); 
 
/* the status of short message is stored in nStatus 
   return: 0=OK, 1=fail 
*/ 
int CMMPGetSMStatus(const char *sMsgID, int *nStatus); 
 
/* set ICP share key */ 
int CMPPSetKey(const char *sKey); 
 
#endif