⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apiuse.h

📁 基于dialogic语音卡的IVR系统源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
    USHORT                usEventType;	//事件类型。enum CCC_EVENT
    USHORT				  usSize;		//与事件相关的数据长度
}DBCCC_EVENT_HEAD, *LPDBCCC_EVENT_HEAD;	//事件头

typedef struct tagE_CALL_INFO
{
	CALLID		CallID;
	UCHAR		ucDirect;					//呼入/呼出标志, enum CallFlag
	UCHAR		ucModuleNo;					//
	USHORT		usTrunkNo;					//呼叫中继号
	char		Caller[ MAXLEN_EXTEN + 1 ]; //主叫号码
	char		Called[ MAXLEN_EXTEN + 1 ]; //被叫号码
	DEVICE_ID	DeviceID;					//与呼叫相关的设备的标识
	USHORT		CallPartyNum;				//该结构后面跟的CALL_PARTY_INFO结构个数
}E_CALL_INFO;

typedef struct tagE_DEVICE_INFO
{
	DEVICE_ID	SrcDeviceID;			//产生事件的设备ID
	DEVICE_ID	DestDeviceID;			//与此相关的设备ID
	USHORT		CallPartyNum;			//该结构后面跟的CALL_PARTY_INFO结构个数。
}E_DEVICE_INFO;

typedef struct
{
	MESSAGE_HEAD		MsgHead;
	DBCCC_EVENT_HEAD	Event;
	E_CALL_INFO			CallInfo;
}EVENT_CALL_INFO_MSG;

typedef struct
{
	MESSAGE_HEAD		MsgHead;
	DBCCC_EVENT_HEAD	Event;
	E_DEVICE_INFO		DeviceInfo;
}EVENT_DEVICE_INFO_MSG;

typedef struct
{
	MESSAGE_HEAD		MsgHead;
	DBCCC_EVENT_HEAD	Event;
	ULONG				ulTaskID;
	USHORT				usResult;		//结果
	UCHAR				ucCause;		//原因
}EVENT_SPY_RESULT_MSG;


typedef	struct	tagSKILL_ID
{
	USHORT	usSkillID;			//技能的ID编号
	UCHAR	ucSkillLevel;		//对应的技能的水平需求
}SKILL_ID, *LPSKILL_ID;			//技能ID

typedef struct	tagSKILL_STRUCT
{
	USHORT	usID;								//技能ID
	CHAR	cName[MAX_SKILL_NAME_LENGTH + 1];	//具体技能表示
}SKILL_STRUCT, *LPSKILL_STRUCT;					//每一个技能的描述结构
//说明: 存放每一个技能的名称及其内部编号

typedef	struct	tagNODE_STRUCT
{
	USHORT	usParentNo;							//父节点编号
	USHORT	usChildNo;							//本节点编号
	USHORT	usSkillID;							//技能标识
	USHORT	usServiceNo;						//业务类型号
}NODE_STRUCT, *LPNODE_STRUCT;
//说明: 技能树结构每个节点结构, 用于存储技能树

typedef	struct	tagCLASS_STRUCT
{
	USHORT	usID;								//级别标识
	CHAR	cName[MAX_CLASS_NAME_LENGTH + 1];	//级别名称
}CLASS_STRUCT, LPCLASS_STRUCT;					//用户级别
//系统定义了的用户级别名称

typedef struct	tagAGENT_STRUCT
{
	USHORT	usNo;								//代理人工号
	CHAR	cName[AGENT_NAME_LENGTH + 1];		//代理人姓名
	ULONG   ulRights;							//权限
	USHORT	usSkillGroupID;						//技能组ID
	USHORT	usWorkGroupID;						//所属班组号
}AGENT_STRUCT, *LPAGENT_STRUCT;					//描述每一个代理人的结构
//说明:存放每个座席的基本情况的一个结构

typedef	struct	tagWORKGROUP_INFO
{
	USHORT	usID;									//班组号
	USHORT	usMonitorNo;							//班长工号
	CHAR	cMonitorName[AGENT_NAME_LENGTH + 1];	//班长姓名
	CHAR	cGroupName[MAX_WORKGROUP_NAME_LENGTH + 1];	//班组名称
}WORKGROUP_INFO, *LPWORKGROUP_INFO;


//*****************************************************************
//用户信息结构
//*****************************************************************
typedef	struct tagCUSTOMER_INFO_STRUCT
{
	CHAR	cKeyID[MAXLEN_EXTEN + 1];				//用户唯一标识
	CHAR	cClass[MAX_CLASS_NAME_LENGTH + 1];		//用户级别(重要客户/...)
	CHAR	cName[MAX_PEOPLE_NAME_LENGTH + 1];		//用户姓名
	CHAR	cLanguage[MAX_LANGUAGE_LENGTH + 1];		//语言
	CHAR	cCompany[MAX_COMPANY_LENGTH + 1];		//公司名称
	CHAR	cAddress[MAX_ADDRESS_LENGTH + 1];		//地址
	CHAR	cArea[MAX_AREA_LENGTH + 1];				//专业
	CHAR	cDescription[MAX_DESCRIPTION_LENGTH + 1];//用户简要介绍
	CHAR	cSerialNo[MAX_SERIALNO_LENGTH + 1];		//处理流水号
	CHAR	cSkills[MAX_DESCRIPTION_LENGTH + 1];	//呼叫技能需求描述
	USHORT	usWorkNo;								//处理座席工号
}CUSTOMER_INFO_STRUCT, *LPCUSTOMER_INFO_STRUCT;		//一个特殊用户的信息结构


//此结构暂时不支持
typedef	struct	tagCUSTOMER_SKILL_STRUCT
{
	CHAR	cANI[MAX_ANI_LENGTH + 1];				//主叫号码
	CHAR	cSkillName1[MAX_SKILL_NAME_LENGTH +1];	//具体技能需求1
	CHAR	cSkillName2[MAX_SKILL_NAME_LENGTH +1];	//具体技能需求2
	CHAR	cSkillName3[MAX_SKILL_NAME_LENGTH + 1];	//具体技能需求3
	CHAR	cSkillName4[MAX_SKILL_NAME_LENGTH + 1];	//具体技能需求4
	CHAR	cSkillName5[MAX_SKILL_NAME_LENGTH + 1];	//具体技能需求5
	USHORT	usAgentNo1;							//具体座席工号1
	USHORT	usAgentNo2;							//具体座席工号2
	USHORT	usAgentNo3;							//具体座席工号3
	USHORT	usAgentNo4;							//具体座席工号4
}CUSTOMER_SKILL_STRUCT, *LPCUSTOMER_SKILL_STRUCT;	//一个特殊用户的技能需求结构

typedef struct tagDBCCC_SERVICE_STRUCT
{
	USHORT	usNo;											//业务类型号
	CHAR	strDescription[MAX_SERVICE_DESCRIPTION_LEN + 1];//业务描述
}DBCCC_SERVICE_STRUCT, *LPDBCCC_SERVICE_STRUCT;	//业务类型结构

typedef	struct	tagDBCCC_HISTORY_ITEM
{
	USHORT	usID;							//业务标识
	CHAR	pcData[MAX_HISTORY_LENGTH + 1];	//访问数据
}DBCCC_HISTORY_ITEM, *LPDBCCC_HISTORY_ITEM;	//一项历史记录结构

typedef struct tagDBCCC_CONFERENCE_INFO
{
	USHORT     usConferenceNum;		//会场号
	UCHAR      ucMaxJionNum;		//允许参加会议的最大加入数目
	UCHAR      ucMaxAuditNum;		//允许的最大旁听人数目
	UCHAR      ucVmsNum;			//放音数目
	UCHAR      ucJionCallNum;		//加入的呼叫数目
	UCHAR      ucAuditCallNum;		//旁听呼叫数目
	UCHAR      ucJionAgentNum;		//参加的代理数目
	UCHAR      ucAuditAgentNum;		//旁听的代理数目
} DBCCC_CONFERENCE_INFO, *LPDBCCC_CONFERENCE_INFO;
/**************************************************************
此结构后依次为加入的CALLID组,旁听的CALLID组,加入的Agent设备号组,
旁听的Agent设备号组
***************************************************************/


typedef struct tagDBCCC_CALL_STATIC_INFO
{
	ULONG   ulCallNumsInHour[24];                  //统计在每小时中的呼叫数目     
	ULONG   ulCallAbandonNumsInHour[24];           //统计在每小时中的呼损数目 
} DBCCC_CALL_STATIC_INFO, *LPDBCCC_CALL_STATIC_INFO; //呼叫在一天24小时内的话务统计数据


typedef struct tagDBCCC_BUSY_CONFERENCE_INFO
{
	USHORT usConferenceNums;						//占用会场数
	USHORT pusConferenceNo[1];						//会场号
} DBCCC_BUSY_CONFERENCE_INFO, *LPDBCCC_BUSY_CONFERENCE_INFO;//占用会场情况

//********************************************************
typedef struct tagPRE_OUTBOUND_STRUCT
{
	CHAR		cANI[MAX_ANI_LENGTH + 1];	//主叫号码
	ULONG		ulTime;						//用户访问时间
	DEVICE_ID	Device;						//待呼出呼叫产生呼损的目的设备
	CHAR		cUserInfo[MAX_DESCRIPTION_LENGTH + 1];//用户简要信息
}PRE_OUTBOUND_STRUCT, *LPPRE_OUTBOUND_STRUCT;	//一个待呼出呼叫的信息结构

/******************************* OUTBOUND CALL	******************************/		
typedef struct
{
    UCHAR  ucYear;		//年,Current Year minus 1900, 2155 roll over
    UCHAR  ucMonth;		//月 1-12
    UCHAR  ucDay;		//日 1-31
    UCHAR  ucHour;		//时 0-23
    UCHAR  ucMinute;	//分 0-59
    UCHAR  ucSecond;	//秒 0-59
}CCS_TIMESTRUCT;


typedef struct tagPOWER_OUTBOUND_STRUCT
{
	CHAR			cCli[MAXLEN_EXTEN + 1]; //呼出主叫
	CHAR			cANI[MAX_ANI_LENGTH + 1];	//客户主叫号码
	CHAR			cCustomerName[MAX_PEOPLE_NAME_LENGTH + 1];	//用户姓名,可无
	CHAR			cDescription[MAX_DESCRIPTION_LENGTH + 1];	//简要描述,可无
	UCHAR			ucDeviceType;			//待呼出呼叫的目的设备类型 enum	ICD_DEVICETYPE
	CHAR			cSkills[MAX_SKILL_STRING_LENGTH + 1];	
	//如果ucDeviceType为QueueType, 则是技能组合; 技能用,隔开, 如"180,Chinese"
	//如果ucDeviceType为IvrType, 则为接入码; 如"1681234"
	//如果ucDeviceType为AgentType, 则为座席工号;工号用,隔开, 如"2,4:2"。其中, 前面的2,4表示预约的
	// 坐席工号, :后面的2为业务类型。
	//重要说明:使用AgentType类型时,呼叫被分配给座席后,如果座席是多技能的,则他不知道该呼叫
	//是希望得到什么服务, 因此需要指定业务类型。
	CCS_TIMESTRUCT	BookTime;				//预约时间
	CCS_TIMESTRUCT	ReCallTime;				//期望回呼时间
	CCS_TIMESTRUCT	EndTime;				//期望回呼结束时间
}POWER_OUTBOUND_STRUCT, *LPPOWER_OUTBOUND_STRUCT;	//一个预约呼出呼叫的信息结构


typedef struct	tagDBCCC_SYSTEM_INFO
{
	CHAR		VersionInfo[ MAX_VERSION_LEN + 1];		//当前CCS版本信息字符串
	USHORT		usCallNum;							//当前系统中呼叫数目
	USHORT		usCallInQueueNum;					//当前系统中排队呼叫数目
	USHORT		usTalkingNum;						//当前系统中通话人数
	USHORT		usTotalLoginAgent;					//当前系统中上班座席数目
	USHORT		usBusyAgent;						//当前系统中示忙座席数目
	USHORT		usIdleAgent;						//当前系统中空闲座席数目
	USHORT		usSkillNum;							//当前系统中配置的技能数目
	USHORT		usConnectNum;						//当前系统中连接数目
}DBCCC_SYSTEM_INFO, *LPDBCCC_SYSTEM_INFO;			//CCS系统信息结构

typedef struct tagAGENTSTATUS
{
	UCHAR   ucStatus : 5;	// enum AGENT_OP_STATUS 5 bits
	UCHAR   ucRecord : 1;	// 1:被录音 , 0:	1 bit
	UCHAR   ucSuper  : 1;	// 1:被监听 , 0:  1 bit
	UCHAR   ucMonitor: 1;	// 1:被监视 , 0:	1 bit
} AGENTSTATUS, *LPAGENTSTATUS;

typedef  struct tagDBCCC_AGENT_ABSTRACT
{
	USHORT		usAgentDSN;				//座席电路号
	UCHAR		ucAgentType;			//座席类型 enum AGENT_TYPE
	USHORT		usAgentWorkNo;			//座席工号
	USHORT      usWorkGroupID;			//座席所在工作组标识
	AGENTSTATUS	ucAgentStatus;			//对应AGENT_OP_STATUS结构
}DBCCC_AGENT_ABSTRACT, *LPDBCCC_AGENT_ABSTRACT;	//关于AGENT的摘要信息

//****************************************************************************
//ICD网络中一个节点的信息
//****************************************************************************
typedef  struct tagDBCCC_NET_INFO
{
	USHORT		usConnectID;			//节点的网络连接号
	UCHAR		ucType;					//节点的类型 0 为主CCS,1为副CCS,2为代理,3为IVR,4为Fep
	ULONG		MsgIPAddr;				//该节点的接收消息的IP地址,对于CCC该值往往为代理的IP地址,其它均与ActualIPAddr相等.
	ULONG		MsgProcID;				//该节点的接收消息的进程号,对于CCC该值往为代理的进程号,其它均与ActualProcID相等.
	ULONG		ActualIPAddr;			//该节点真正的IP地址
	ULONG		ActualProcID;			//该节点真正的进程ID
}DBCCC_NET_INFO, *LPDBCCC_NET_INFO;

//********************************************************************
//用于CccQuerySkillsBaseGroupID的返回消息
//********************************************************************
typedef	struct tagDBCCC_SKILL_GROUP_STRUCT
{
	USHORT		usID;						//内部标识
	USHORT		usSkillNum;					//总的技能数目
	USHORT		usDescriptionSize;			//随后跟的描述信息的长度
}DBCCC_SKILL_GROUP_STRUCT, *LPDBCCC_SKILL_GROUP_STRUCT;
//此结构后面跟着一系列SKILL_ID结构共usSkillNum个;随后是共usDescriptionSize字节个描述信息
//	SKILL_ID	Skill[];					//具体技能标识
//  UCHAR		Description[];				//技能描述


typedef struct tagDBCCC_ACD_INFO
{
       ULONG        cb;								  //结构长度	
       UCHAR        szPilotNbr[MAXLEN_PILOTNBR + 1];  //ACD组的pilot number
	   USHORT       usDeviceNo;                       //ACD组的设备序号
       USHORT       usQueueSize;                      //当前等待在队列中的呼叫数目
       ULONG        ulQueueTime;                      //队列中等待最久的呼叫的等待时间(秒数)
       USHORT       usLoadFactor;                     //队列的负载因子,保留未用
       ULONG        ulEstWaitTime;                    //Agent应答一个主叫之前的估计等待时间
       USHORT       usLoggedOnAgents;                 //当前注册到该ACD组的Agent数目
       USHORT       usAvailAgents;                    //该ACD组中当前可用的Agent数目
	   UCHAR        ucTransferFlg;                    //转移标志	enum TIMEOUT_PROCESS_STYLE
	   DEVICE_ID    TransferDevice;                   //转移设备
	   CHAR         pSkillDescrip[ MAX_SKILL_STRING_LENGTH + 1];//技能描述, 类似“180,Chinese”
} DBCCC_ACD_INFO, *LPDBCCC_ACD_INFO;


typedef struct tagACD_SKILL_DESCRIPTION
{
	   USHORT		usAcdID;		//队列标识
	   CString      strDescription;//技能描述, 类似“180,Chinese”
} ACD_SKILL_DESCRIPTION, *LPACD_SKILL_DESCRIPTION;


typedef struct tagDBCCC_AGENT_INFO
{
       ULONG        cb;
	   AGENT_STRUCT	Agent;							//座席结构	
       USHORT       szDeviceNo;                     //Agent的设备号
       UCHAR        szPilotNbr[MAXLEN_PILOTNBR + 1];//Agent的引导号
       USHORT       usPrevState;                    //前一个状态 enum AGENT_STATE
       ULONG        ulPrevStateTime;                //前一个状态的时间
       USHORT       usCurrentState;                 //当前状态 enum AGENT_STATE
       ULONG        ulCurrentStateTime;             //当前状态的时间
       ULONG        ulLogonTime;                    //注册的时间
	   USHORT       usKeepNums;                     //保持的次数
	   USHORT       usAnswerNums;                   //应答的次数
	   USHORT       usConferenceNums;				//发起会议电话的次数,三方通话  
	   USHORT       usCallOutNums;					//呼出的次数
	   USHORT       usTransferNums;					//转接的次数,内部转移
	   USHORT       usTransferOutNums;				//转出的次数
	   USHORT       usRedirectNums;					//重定向的次数
	   USHORT       usInterCallNums;				//内部呼叫
	   USHORT       usNoAnswerNums;					//久不应答次数
	   USHORT       usBusyNums;						//示忙次数
	   USHORT       usIdleTime;						//示闲次数
	   USHORT       usRestNums;                     //请假次数
	   USHORT       usRestOutNums;                  //超假次数
       ULONG        ulRestTime;                     //请假时长
	   ULONG        ulRestOutTime;                  //超假时长
   	   USHORT       usAgentRelease;                 //话务员主动收线次数

	   ULONG     	ulTotalTalkIngTimes;			//总的通话时长
       CALLID       CallID[2];						//当前处理的呼叫标识
	   UCHAR        ucTransferFlg;                  //转移标志	//enum	TIMEOUT_PROCESS_STYLE
	   DEVICE_ID    TransferDevice;                 //转移设备	
} DBCCC_AGENT_INFO, *LPDBCCC_AGENT_INFO;		//座席信息


typedef struct tagDBCCC_CALL_INFO
{
	  ULONG               cb;		
	  CALLID	          CallID;								//呼叫标识
	  CHAR				  cKeyID[ MAXLEN_EXTEN + 1];			//呼叫的唯一标识
	  CHAR                cANI[ MAXLEN_EXTEN + 1];				//主叫
	  CHAR                cDialedNumber[ MAXLEN_EXTEN + 1 ];	//被叫
	  CHAR                ucMid;                                //模块号
	  USHORT              usTrunkNo;                            //中继号
	  UCHAR               ucPriority;                           //用户级别
	  DEVICE_ID           CurrentDevice ;                       //正在处理的设备信息

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -