www.pudn.com > dialogic_IVR.rar > ctiapi.h


#ifndef CTIAPI 
#define CTIAPI 
 
#pragma pack(push,1) 
#include"apiuse.h" 
 
//=================================================================================== 
//使用注意: 
//1. 本API支持多线程,但同时调用API的线程数有限,通常为50,超过返回CCC_TOO_MUCH_THREAD. 
//2. 以pdb开始的参数指针所指向的缓冲区一般将接收返回数据,该缓冲区很可能要求大于 
//	指针所指向的类型,请注意给出足够大的缓冲区。 
//3. pcSize传入时为缓冲区大小,返回时更新为实际的大小。 
//4. 对于每一次API调用,如果该API没有指明等待时间,都将等待缺省等待时间, 
//	这段时间内入收到CCS应答将立即返回,未收到应答将返回相应错误代码CCC_TIMED_OUT。 
//===================================================================================== 
 
const SHORT MAX_AGENT_NUM  = 1024; 
 
typedef void  ( __stdcall * EVENTPROC )( SHORT EventType , void* pEventData , USHORT usDataSize ); 
void __stdcall WriteLog(UCHAR *str,SHORT len); 
void __stdcall WriteLogFile(UCHAR *str,SHORT len); 
 
SHORT __stdcall CtiApiInit( 
	ULONG MyId, 
	int  (__stdcall * tcprecv) ( unsigned long SrcIP, unsigned long SrcID, char * data, unsigned long datalen)); 
 
SHORT __stdcall CccApiInit(ULONG MyId, 
	int  (__stdcall * tcprev) ( unsigned long SrcIP, unsigned long SrcID, char * data, unsigned long datalen)); 
 
CHAR __stdcall CccApcInit(CHAR whoinit, SHORT cardver); 
void __stdcall CtiApiExit(); 
 
void __stdcall CccApcExit(); 
//GENERAL  
SHORT __stdcall CccConnectToServer (USHORT * phCcc, CHAR *ipstr[2] ,ULONG module); 
SHORT __stdcall CccDisconnectFromServer (USHORT  hCcc ); 
SHORT __stdcall CccGetEvent ( USHORT  hCcc ,PUCHAR pdbEvent,PUSHORT pcSize, PSHORT pusEventType,LONG lTimeout); 
 
SHORT __stdcall CccQueryServerList (PUCHAR pszServerList, PUSHORT pcSize ); 
SHORT __stdcall  CccQuerySysStatus ( USHORT hCcc,  DBCCC_SYSTEM_INFO* pdbSystemInfo ); 
 
SHORT __stdcall CccSetEventMonitor ( USHORT hCcc,USHORT usEventType,DEVICE_ID *pDeviceID,  CHAR lStart); 
SHORT __stdcall CccSetSysMonitor (USHORT hCcc, UCHAR fStart); 
 
SHORT __stdcall CccQueryResourceConnectInfo(USHORT hCcc,char * buffer,USHORT* pSize); 
SHORT __stdcall CccSetCallTrunkMonitor ( USHORT hCcc, LONG TraceNo ,CHAR *CallNo ,UCHAR ucType ,USHORT* pusID ); 
SHORT __stdcall CccStopCallTrunkMonitor ( USHORT hCcc, SHORT usID ); 
SHORT __stdcall CccNotifyConfigChanged ( USHORT hCcc,UCHAR ucType ); 
SHORT __stdcall CccQueryNetInfo ( USHORT hCcc , DBCCC_NET_INFO* pBuffer , USHORT *usNum ); 
SHORT __stdcall CccStopServer( USHORT hCcc); 
 
 
//INI  MANAGER 
SHORT __stdcall CccAddINIItem (USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PCSTR pszValue ); 
SHORT __stdcall  CccDelINIItem (USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PCSTR pszValue ); 
SHORT __stdcall CccModifyINIItem (USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PCSTR pszValue); 
SHORT __stdcall CccQueryINIItem (USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PSTR pszValue ); 
SHORT __stdcall CccCancelINI ( USHORT hCcc); 
 
SHORT __stdcall CccReLoadBaseINI ( USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PSTR pszValue); 
SHORT __stdcall CccReLoadSkillQueueINI  ( USHORT hCcc,PCSTR pszSection,PCSTR pszKey,PSTR pszValue); 
 
SHORT  __stdcall CccQuerySkillGroupIDINI(USHORT hCcc,USHORT *pusNum,USHORT *pSkillGroupID); 
 
SHORT __stdcall CccQuerySkillGroupStructINI(USHORT hCcc,  
											 USHORT uslSkillGroupID,  
											 DBCCC_SKILL_GROUP_STRUCT  *lpSkill); 
 
 
//USER MANAGER 
SHORT __stdcall CccAddUser (USHORT hCcc,DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccDelUser (USHORT hCcc,USHORT usWorkNo ); 
SHORT __stdcall CccLogoff  (USHORT hCcc ); 
SHORT __stdcall CccLogon   (USHORT hCcc, DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccModifyUser (USHORT hCcc,DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccQueryCurrentUser ( USHORT hCcc,DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccQueryUser (USHORT hCcc,DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccQueryBackupUser (USHORT hCcc,DBCCC_USER_RECORD * pdbUserRecord ); 
SHORT __stdcall CccQueryTotalUser ( USHORT hCcc,USHORT *pUserNum ,USHORT *pWorkNo); 
SHORT __stdcall CccQueryBackupTotalUser ( USHORT hCcc,USHORT *pUserNum ,USHORT *pWorkNo); 
 
 
//CALL CONTROL AND MONITOR 
SHORT __stdcall CccQueryDeviceStatus(USHORT  hCcc,DEVICE_ID * pDeviceID,UCHAR *pStatus, PUSHORT pcSize); 
SHORT __stdcall CccQueryCallIDOnAgent (USHORT hCcc,USHORT AgnetNo,DBCCC_CALLID * pCallID); 
 
SHORT __stdcall CccGetCallSkillDescription (USHORT hCcc,DBCCC_CALLID * pCallID,CHAR* pSkillDescription,USHORT* psize ); 
SHORT __stdcall CccQueryCallInfo (USHORT hCcc,DBCCC_CALLID * pCallID,DBCCC_CALL_INFO * pdbCallApp); 
SHORT __stdcall CccQueryCallStatisticsInfo (USHORT hCcc,DBCCC_CALL_STATIC_INFO * pdbCallInfo); 
SHORT __stdcall CccRequestSetTransfer (USHORT hCcc, DEVICE_ID * pSrcDeviceID, DEVICE_ID * pDestDeviceID,UCHAR  ucMode); 
 
SHORT  __stdcall  CccAgentLogin (USHORT hCcc,USHORT usworkno,SHORT anstype, SHORT deskno); 
SHORT  __stdcall  CccAgentLogout (USHORT hCcc ); 
 
SHORT __stdcall CccRequestDoNotDisturb (USHORT hCcc); 
SHORT __stdcall CccRequestIdle (USHORT hCcc); 
SHORT __stdcall CccRequestMuteOn (USHORT hCcc); 
SHORT __stdcall CccRequestMuteOff(USHORT hCcc); 
SHORT __stdcall CccRequestAnswer (USHORT hCcc); 
SHORT __stdcall CccRequestRelease(USHORT hCcc); 
SHORT __stdcall CccRequestHold (USHORT hCcc,CHAR * pcIndex,UCHAR ucFlag); 
SHORT __stdcall CccRequestFetchHold(USHORT hCcc,CHAR * pcIndex,UCHAR ucFlag); 
SHORT __stdcall CccRequestConnectHold(USHORT hCcc,CHAR *pcIndex,UCHAR ucFlag); 
SHORT __stdcall CccRequestReport(USHORT hCcc,UCHAR ucType,UCHAR ucCode,CHAR *pTelNum); 
SHORT __stdcall CccRequestCallOut(USHORT hCcc,PSTR pCLD); 
SHORT __stdcall CccRequestInternalCall(USHORT hCcc,DEVICE_ID *pDestID, SHORT deskno); 
SHORT __stdcall CccRequestInternaltransfer(USHORT hCcc,DEVICE_ID *pDestID ,USHORT DeskNo); 
SHORT __stdcall CccRequestTransferOut (USHORT hCcc,CHAR * pCLD,CHAR ucFlag); 
SHORT __stdcall CccRequestRedirect (USHORT hCcc,CHAR * pCLD); 
SHORT __stdcall CccRequestSuperviseInsert(USHORT hCcc,USHORT deskno, USHORT workno, UCHAR type); 
SHORT __stdcall CccRequestSwitchInsert(USHORT hCcc); 
SHORT __stdcall CccRequestTriConf (USHORT hCcc,CHAR * pcIndex,CHAR ucFlag); 
SHORT __stdcall CccRequestIntercept (USHORT hCcc,DEVICE_ID * pDeviceID ,USHORT deskno); 
SHORT __stdcall CccRequestTransIvr(USHORT hCcc, CHAR * pcIvrNo); 
SHORT __stdcall CccRequestInternalCall( USHORT hCcc, USHORT deskno,  
									    USHORT workno, UCHAR mode ); 
 
SHORT  __stdcall CccAgentForceOut (USHORT hCcc ,USHORT WorkNo ,USHORT usDeskno); 
SHORT  __stdcall CccAgentForceBusy (USHORT hCcc ,USHORT WorkNo ,USHORT usDeskno); 
SHORT  __stdcall CccAgentForceIdle (USHORT hCcc ,USHORT WorkNo ,USHORT usDeskno); 
 
 
 
SHORT __stdcall CccRequestRerouting  
	(USHORT hCcc,DBCCC_CALLID * pCallID, 
	DEVICE_ID *pDestDeviceID,UCHAR ucMode,ULONG ulRqstTag); 
 
SHORT  __stdcall CccAgentStopRecord (USHORT hCcc , ULONG Task ); 
SHORT  __stdcall CccAgentRequireRecord (USHORT hCcc ,UCHAR ucRecordMode, char FileName[MAX_FILENAME_LEN] , ULONG *pTask ); 
 
SHORT  __stdcall CccAgentStartPlayFile (USHORT hCcc , USHORT usRecordFileWorkNo , char *FileName ,ULONG Position , UCHAR mode, ULONG* pTask ); 
SHORT  __stdcall CccAgentStopPlayFile (USHORT  hCcc ,  ULONG Task ); 
 
SHORT  __stdcall CccAgentForeFastPlay (USHORT  hCcc , ULONG Task, USHORT fore_len); 
SHORT  __stdcall CccAgentBackFastPlay (USHORT  hCcc , ULONG Task , USHORT back_len ); 
SHORT  __stdcall CccAgentPausePlay (USHORT  hCcc ,  ULONG Task ); 
SHORT  __stdcall CccAgentContinuePlay (USHORT  hCcc ,  ULONG Task ); 
SHORT  __stdcall CccAgentPlayRelocation (USHORT  hCcc , ULONG Task ,UCHAR seek_direction, 
											USHORT seek_seconds,UCHAR seek_position); 
 
 
//ACD QUEUE 
SHORT  __stdcall CccQuerySkillGroupID (USHORT hCcc,USHORT *pusNum,USHORT *pSkillGroupID); 
SHORT  __stdcall CccQueryACDID(USHORT hCcc, USHORT	* pusNum, USHORT  * pAcdID); 
 
SHORT  __stdcall CccQueryACDSkillDescription (USHORT hCcc,USHORT	usACDID, USHORT *pusLength,  CHAR *pAcdSkillDescription); 
 
SHORT __stdcall CccQueryACDStatus (USHORT hCcc,  
									USHORT usACDID, 
									LPVOID lpACDStatus,  
									PUSHORT pcSize ); 
 
SHORT __stdcall CccQueryTotalAgentAbstract(USHORT hCcc,USHORT *AgentNum,DBCCC_AGENT_ABSTRACT*  lpAgentInfo ); 
 
SHORT __stdcall CccQueryAgentStatus(USHORT hCcc, USHORT  usAgentID, DBCCC_AGENT_INFO  * lpAgentData ); 
 
SHORT __stdcall CccQueryAgentSkills (USHORT  hCcc,   
									  USHORT  usAgentID,   
									  PUSHORT	pusSkillNum, 
									  SKILL_STRUCT * lpSkill); 
 
SHORT __stdcall CccQueryTotalSkills (USHORT hCcc,  
									  PUSHORT pusotalSkillNum,  
									  SKILL_STRUCT *lpSkill); 
 
SHORT __stdcall CccQuerySkillsBaseGroupID ( USHORT hCcc,  
											USHORT uslSkillGroupID,  
											DBCCC_SKILL_GROUP_STRUCT *lpSkill); 
 
SHORT __stdcall CccRequestCloseSomeAgentSkills (USHORT  hCcc,   
												USHORT usAgentNo,   
												CHAR	 *pcSkills); 
 
SHORT __stdcall CccQueryWorkGroupStatus (USHORT  hCcc,  
										 USHORT usMonitorNo,   
										 USHORT	*usAgentNum, 
										 DBCCC_AGENT_WORKGROUP_INFO	 *pcInfo); 
 
SHORT __stdcall CccQueryTotalWorkGroup (USHORT  hCcc,   
										USHORT	*usWorkGroupNum, 
										WORKGROUP_INFO	pcInfo[]); 
 
SHORT __stdcall CccQueryWorkGroupName (USHORT  hCcc,   
									   USHORT	usWorkGroupID, 
									   WORKGROUP_INFO	 *pcInfo); 
 
SHORT __stdcall CccRequestRouting (USHORT hCcc,  
									DBCCC_CALLID CallID,  
									LPCTSTR lpDn,  
									DEVICE_ID *DestTDevice); 
 
SHORT __stdcall CccRequestRoutingByNode ( USHORT hCcc, 
										DBCCC_CALLID *pCallID,  
										 USHORT NodeNo, 
										 DEVICE_ID* pDeviceID ); 
 
SHORT __stdcall CccRequestHelpRouting (USHORT hCcc,DBCCC_CALLID *pCallID,LPCTSTR lpInNo,DEVICE_ID *DestTDevice); 
SHORT __stdcall CccRequestRoutingByAccessCode ( USHORT hCcc,CALLID* pCallID,LPCTSTR	lpAccessCode,DEVICE_ID * pDeviceID ); 
 
 
SHORT __stdcall CccQuerySkillTree (USHORT hCcc,USHORT * pNodeNum,NODE_STRUCT *Node); 
SHORT __stdcall CccQueryIVRID (USHORT hCcc, USHORT * pusNum,DEVICE_ID  *pIvrID); 
SHORT __stdcall CccQueryIVRDescriptionByID ( USHORT hCcc,  
											DEVICE_ID IvrID,  
											DBCCC_INNO_STRUCT *lpInNo); 
 
SHORT __stdcall CccQueryServiceType ( USHORT hCcc,USHORT* pServiceNum,DBCCC_SERVICE_STRUCT  *Service); 
 
SHORT __stdcall CccRequestEnqueue ( USHORT hCcc, 
									DBCCC_CALLID CallID,  
									DEVICE_ID	Device); 
//CALL DATA FUNCTION 
SHORT __stdcall CccQueryCallData (USHORT  hCcc,  
								   DBCCC_CALLID CallID,  
								   LPVOID  lpData,  
								   PUSHORT pcSize); 
 
SHORT __stdcall CccSetCallData ( USHORT hCcc,  
								 DBCCC_CALLID CallID,   
								 LPVOID lpData, 
								 USHORT usSize); 
 
SHORT __stdcall CccSetCallKeyID ( USHORT hCcc,DBCCC_CALLID CallID,CHAR	*pKey); 
SHORT __stdcall CccSetUserHistoryData (USHORT  hCcc,CHAR *pKey, DBCCC_HISTORY_ITEM * pHistory ); 
SHORT __stdcall CccQueryUserHistoryData (USHORT  hCcc, CHAR	 *pKey,  
										USHORT	 usID,	USHORT* pusNum, 
										DBCCC_HISTORY_ITEM* pHistory ); 
 
 
								    
/* 
SHORT __stdcall CccQueryExtensionData (USHORT hCcc,  
										USHORT lpExtension, 
										LPVOID  lpData,  
										PUSHORT pcSize); 
 
SHORT __stdcall CccSetExtensionData (USHORT hCcc,  
									  USHORT lpExtension, 
									  LPVOID lpData,  
									  PUSHORT pcSize); 
 
 
SHORT __stdcall CccQueryCustomerInfo (USHORT hCcc,  
									   DBCCC_CALLID CallID,   
									   LPVOID  lpData,  
									   PUSHORT pcSize); 
 
SHORT __stdcall CccSetCustomerInfo (USHORT hCcc,  
									 DBCCC_CALLID CallID, 
									 LPVOID lpData,  
									 PUSHORT pcSize); 
*/ 
 
SHORT __stdcall CccQueryUserInfo(USHORT  hCcc,  
								CHAR	*cANI, 
								CUSTOMER_INFO_STRUCT*  pInfo); 
 
SHORT __stdcall CccModifyUserInfo (USHORT  hCcc,CUSTOMER_INFO_STRUCT*  pInfo); 
SHORT __stdcall CccWriteUserInfo (USHORT  hCcc,CUSTOMER_INFO_STRUCT*  pInfo); 
SHORT __stdcall CccDeleteUserInfo (USHORT  hCcc,CHAR * pcANI); 
 
SHORT __stdcall CccWriteUserSkill(USHORT  hCcc,CUSTOMER_SKILL_STRUCT * pInfo); 
SHORT __stdcall CccQueryUserSkill(USHORT  hCcc,CHAR * pcANI ,CUSTOMER_SKILL_STRUCT * pInfo); 
SHORT __stdcall CccDeleteUserSkill(USHORT  hCcc,CHAR * pcANI ); 
 
SHORT __stdcall CccQueryBusyConferenceInfo (USHORT  hCcc,DBCCC_BUSY_CONFERENCE_INFO *  pInfo); 
SHORT __stdcall CccQueryConferenceInfo(USHORT  hCcc, USHORT usConferenceNo,DBCCC_CONFERENCE_INFO *  pInfo); 
 
SHORT __stdcall CccQueryAbandonedCall(USHORT hCcc,USHORT AgnetNo ,PRE_OUTBOUND_STRUCT *Outbound); 
 
SHORT __stdcall CccSendQCProtocol(USHORT  hCcc,USHORT   usLength,LPVOID lpQcMessage); 
/* 
SHORT __stdcall CccRequestOutbound ( SHORT hCcc,  
									CHAR	*lpANI, 
									DEVICE_ID	Device); 
*/ 
SHORT __stdcall CccSendSPPProtocol( USHORT hCcc, 
									USHORT usLength, 
									LPVOID lpSPPMessage); 
 
SHORT __stdcall CccLoginIVRType( 
					USHORT  hCcc,UCHAR IVRType,UCHAR ucPort,UCHAR ucNode ,ULONG ulWaitTime); 
 
SHORT __stdcall CccLogoutIVRType( USHORT  hCcc); 
 
int __stdcall tcpsend(unsigned long TargetIP, unsigned long TargetprocID, char * data, unsigned long datalen, unsigned long timeout); 
 
//struct tm { 
//      int tm_sec;     /* seconds after the minute - [0,59] */ 
//        int tm_min;     /* minutes after the hour - [0,59] */ 
//        int tm_hour;    /* hours since midnight - [0,23] */ 
//        int tm_mday;    /* day of the month - [1,31] */ 
//        int tm_mon;     /* months since January - [0,11] */ 
//        int tm_year;    /* years since 1900 */ 
//        int tm_wday;    /* days since Sunday - [0,6] */ 
//        int tm_yday;    /* days since January 1 - [0,365] */ 
//        int tm_isdst;   /* daylight savings time flag */ 
//       }; 
 
void __stdcall SetWaitTime(long time ); 
void __stdcall LongToTime(long time ,EVENT_TIME * tmvalue); 
SHORT __stdcall CccQueryCcsCPUUseRate(USHORT hCcc,  UCHAR *ucUseRate,  
										UCHAR *ucMemRate); 
 
 
void __stdcall  CharToInt(const UCHAR *Str, ULONG *Num, UCHAR StrSize);  /****** Op2_Str ==> Op1_Num ****/ 
void __stdcall  BCDToInt(const UCHAR *BCD_Str, ULONG *Num, UCHAR BCDSize);  /***** Op2_Str ==> Op1_Num ******/ 
void __stdcall  IntToChar(ULONG Num, UCHAR *Str, UCHAR StrSize);  /**** Op2_Num ==> Op1_Str *****/ 
void __stdcall  BCDToChar(const UCHAR *BCD_Str, UCHAR *Str, UCHAR BCDSize, UCHAR StrSize);    /**** Op2_Str ==> Op1_Str ***/ 
void __stdcall  IntToBCD(ULONG Num, UCHAR *BCD_Str, UCHAR BCDSize);   /**** Op2_Num ==> Op1_Str *****/ 
void  __stdcall CharToBCD(const UCHAR *Str, UCHAR *BCD_Str, UCHAR StrSize, UCHAR BCDSize);    /*** Op2_Str ==> Op1_Str ***/ 
UCHAR  __stdcall GetBCDLength(  UCHAR *BCD_Str ); 
 
SHORT __stdcall CccPutINI(USHORT hCcc,  CHAR *INIFileName); 
SHORT __stdcall CccGetINI(USHORT hCcc,  CHAR *INIFile); 
SHORT __stdcall CccQueryCCSName (CHAR *ipstr ,ULONG ccsid ,char *Masterflag ,char *Name); 
 
SHORT __stdcall CccGetAgentScore(USHORT hCcc,USHORT WorkNo ,AGENT_ANALY_INFO *Score); 
/* not include in apc function*/ 
SHORT __stdcall CccNotifyBulletin(USHORT hCcc, UCHAR ucType,ULONG ulParam, CHAR  * szParam ); 
SHORT __stdcall CccSendMessage (USHORT    hCcc, USHORT	usWorkNo, USHORT   usSize,CHAR *MsgBuff ); 
SHORT __stdcall CccIVRSetINNO( USHORT hCcc , USHORT usSize , CHAR* szInno ); 
SHORT __stdcall CccQueryServerTime( USHORT hCcc , EVENT_TIME* pTime ); 
SHORT __stdcall CccQueryUserClassName( USHORT hCcc, USHORT* pClassNum, CLASS_STRUCT  Class[] ); 
SHORT __stdcall CccIVRSetupCall( USHORT hCcc, const CHAR pCode[MAXLEN_EXTEN+1] , USHORT dataLen , const CHAR* pdata ); 
 
SHORT __stdcall CccSetUserClass (USHORT hCcc, CALLID CallId, CHAR *pcKey, UCHAR ucClass); 
SHORT __stdcall CccRegisterOutbound (USHORT hCcc, POWER_OUTBOUND_STRUCT *Outbound); 
SHORT __stdcall CccRequestPowerOutbound (USHORT hCcc, ULONG ulTaskID, POWER_OUTBOUND_STRUCT *Outbound); 
 
SHORT __stdcall CccCancelRest(USHORT hCcc); 
SHORT __stdcall CccRequestRest(USHORT hCcc, ULONG Time); 
SHORT __stdcall CccQueryIVRStepInfo(USHORT hCcc,CALLID* pCallID, 
									USHORT* pStepNum , PLAY_DRV_STRUCT* pInfo ); 
SHORT __stdcall CccQueryTrunkTable(USHORT hCcc, USHORT* pusTrunkNum , DBCCC_TRUNK_STRUCT* pTrunkTable ); 
SHORT __stdcall CccRequestSuperviseTrunk(USHORT hCcc, UCHAR ucMid , USHORT usTrunkNo ); 
 
SHORT __stdcall CccModifyUserExtendInfo (USHORT hCcc, USHORT WorkNo, UCHAR Info[RESERVED_SIZE]); 
SHORT __stdcall CccQueryUserExtendInfo (USHORT hCcc, USHORT WorkNo, UCHAR Info[RESERVED_SIZE]); 
 
SHORT __stdcall CccQueryIsMonitor( USHORT hCcc, USHORT WorkNo, USHORT *pusIsMonitor ); 
SHORT __stdcall CccQueryAgentInfoByACDID ( USHORT hCcc ,  
										   USHORT AcdID, 
										   USHORT *pusAgentNum, 
										   USHORT *pAgentInfo ); 
SHORT __stdcall CccQueryPrivateKeepedCall( USHORT hCcc ,  
										   USHORT usWorkNo, 
										   USHORT *pusCallNum, 
										   KEEPINDEX *pIndexCall ); 
 
SHORT __stdcall  CccRequestInternalHelp (USHORT hCcc, USHORT deskno, 
										 USHORT workno, UCHAR mode ); 
 
SHORT __stdcall CccSendEventResponse( USHORT hCcc, EVENT_RESPONSE_ID* pID, 
									  USHORT usEventType, USHORT usParamSize, 
									  char*  pParamData ); 
 
SHORT __stdcall CccSetMonitorCall( USHORT hCcc, CALLID* pCallID,  
								   USHORT usWorkNo, USHORT usFlag ); 
 
SHORT __stdcall CccMonitorCall( USHORT hCcc, CALLID* pCallID ,  
							    USHORT usWorkNo , USHORT usFlag ); 
 
SHORT __stdcall CccModifyCallTrace( USHORT hCcc, CALLID* pCallID ,  
								    USHORT usIndex, 
                                    DBCCC_DEVICE_STRUCT* pNewTraceInfo ); 
 
SHORT __stdcall CccQueryLoginAgentInSkillQueue( USHORT hCcc,  
											    USHORT usQueueID,  
												USHORT* pLoginAgentNum ); 
 
SHORT __stdcall CccSetMaxRestAgentInSkillQueue( USHORT hCcc,  
											    USHORT usQueueID,  
												USHORT usMaxNum); 
 
SHORT __stdcall CccQueryIdleAgentInSkillQueue( USHORT hCcc,  
											   char	*cSkills,  
											   SHORT sLength, 
											   USHORT *pusIdleAgentNum ); 
 
SHORT __stdcall CccQueryCallTime ( USHORT hCcc,  
								   CALLID* pCallID,  
								   char*   pCallBeginTime,  
								   char*   pCallEndTime ); 
SHORT __stdcall CccDisconnectCall( USHORT hCcc ,  
								   CALLID *pCallID); 
 
SHORT __stdcall CccAgentSendDTMF( USHORT hCcc , char DTMFDigits[MAXLEN_EXTEN+1] ); 
 
//查询指定的设备是否可用,即当前设备是否空闲。 
SHORT __stdcall CccIsDeviceAvailable(USHORT hCcc, DEVICE_ID *pDeviceID, WORD* bAvailable); 
 
//根据用户提供的技能描述返回符合该技能的设备的标识。 
SHORT __stdcall CccGetDeviceBySkills(USHORT hCcc,  
	CHAR szSkills[MAX_DESCRIPTION_LENGTH + 1], DEVICE_ID* pDeviceID); 
 
//设置最大的话务员休息人数。 
SHORT __stdcall CccSetMaxRestAgentNum( USHORT hCcc, USHORT usMaxRestAgentNum); 
 
//得到最大的话务员休息人数。 
SHORT __stdcall CccQueryMaxRestAgentNum( USHORT hCcc, USHORT * pusMaxRestAgentNum); 
 
//得到正在休息的话务员人数。 
SHORT __stdcall CccQueryOnRestAgentNum( USHORT hCcc, USHORT * pusOnRestAgentNum); 
 
//得到等待休息的话务员人数。 
SHORT __stdcall CccQueryWaitRestAgentNum( USHORT hCcc, USHORT * pusWaitRestAgentNum); 
 
//得到已经批准休息,但是还未开始休息的人数 
SHORT __stdcall CccQueryAllowRestAgentNum( USHORT hCcc, USHORT * pusWaitRestAgentNum); 
 
SHORT __stdcall CccRequestWriteFlowTrace(USHORT hCcc, LPFLOWTRACE_ITEM pItem); 
 
//座席调用该函数设置是否自动进入空闲状态状态标志。 
SHORT __stdcall CccSetAgentAutoEnterIdle( USHORT hCcc, USHORT bFlag ); 
 
//座席调用该函数从工作状态进入空闲态,进入空闲态才给座席分配来话 
SHORT __stdcall CccAgentEnterIdle( USHORT hCcc ); 
 
//座席调用该函数保持指定的呼叫 
SHORT __stdcall CccAgentHoldCall( USHORT hCcc , CALLID* pCallID ); 
 
//座席调用该函数取被保持的呼叫 
SHORT __stdcall CccAgentFetchHoldCall( USHORT hCcc , CALLID* pCallID ); 
 
//如果座席当前在监听呼叫则座席调用该函数将监听呼叫转换为插入通话。 
SHORT __stdcall CccAgentSwitchInsert( USHORT hCcc , CALLID * pCallID ); 
 
//座席调用该函数连接正在通话的呼叫和被保持的呼叫 
SHORT __stdcall CccAgentConnectHoldCall( USHORT hCcc , CALLID* pCallID ); 
 
//座席调用该函数从空闲状态进入工作态 
SHORT __stdcall CccAgentEnterWork( USHORT hCcc ); 
 
EVENTPROC __stdcall InstallEventCallBackProc( EVENTPROC evProc ); 
EVENTPROC __stdcall UninstallEventCallBackProc(); 
 
// 增加:参数为结构类型的改为指针类型 
SHORT __stdcall CccRequestRoutingEx (USHORT hCcc,  
									DBCCC_CALLID* pCallID,  
									LPCTSTR lpDn,  
									DEVICE_ID *DestTDevice); 
 
SHORT __stdcall CccRequestEnqueueEx ( USHORT hCcc, 
									DBCCC_CALLID* pCallID,  
									DEVICE_ID*	pDevice); 
 
SHORT __stdcall CccQueryCallDataEx (USHORT  hCcc,  
								   DBCCC_CALLID* pCallID,  
								   LPVOID  lpData,  
								   PUSHORT pcSize); 
 
SHORT __stdcall CccSetCallDataEx ( USHORT hCcc,  
								 DBCCC_CALLID* pCallID,   
								 LPVOID lpData, 
								 USHORT usSize); 
 
SHORT __stdcall CccSetCallKeyIDEx ( USHORT hCcc,DBCCC_CALLID* pCallID, 
								  CHAR	*pKey); 
 
SHORT __stdcall CccSetUserClassEx (USHORT hCcc, CALLID* pCallId,  
								 CHAR *pcKey, UCHAR ucClass); 
 
SHORT __stdcall CccQueryIVRDescriptionByIDEx ( USHORT hCcc,  
											DEVICE_ID* pIvrID,  
											DBCCC_INNO_STRUCT *lpInNo); 
 
SHORT __stdcall CccDirectToIdleAgent( USHORT hCcc, CALLID *pCallID, DEVICE_ID *pDevice, UCHAR mode ); 
 
SHORT __stdcall CccQueryAgentStatisticsInfo(USHORT hCcc, USHORT usWorkNO, EVENT_TIME *pInfoDate, LPAGENT_STATISTICS_INFO pStatInfo); 
 
SHORT __stdcall CccQueryAcdIDByAgentID(USHORT hCcc, USHORT usWorkNo, USHORT *pusAcdNum, USHORT *pusAcdID); 
 
SHORT __stdcall CccRequestCallOutEx( USHORT hCcc, char *pANI, char *pDNIS, UCHAR mode, char *pPilot ); 
 
SHORT __stdcall CccRequestReportEx(USHORT hCcc, UCHAR ucReportType,  
								   UCHAR ucVoicetype, UCHAR *ucParam, USHORT usSize); 
 
 
#pragma pack(pop) 
#endif