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

📄 apiuse.h

📁 基于dialogic语音卡的IVR系统源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
	  UCHAR               pucCallData[ MAX_CALLDATA_LEN ];		//呼叫数据
	  USHORT              CallDataLen;                          //呼叫数据的有效长度
	  CHAR                pcCallSkill[ MAX_SKILL_STRING_LENGTH ];//呼叫技能描述,类似“180,Chinese”
	  USHORT              usPartyNum;                           //呼叫轨迹经过的设备数目
	  UCHAR				  ucCallFeature;						//呼叫特征, enum Call_Feature_Type
	  CHAR                cOrgCalledNo[ MAXLEN_EXTEN + 1 ];	    //原始被叫
} DBCCC_CALL_INFO, *LPDBCCC_CALL_INFO;					//呼叫信息
/*****************************************************
此结构后是呼叫轨迹,用多个DBCCC_DEVICE_STRUCT表示
*****************************************************/


typedef struct 
{
    ULONG       cb;								//结构字节数目
	UCHAR       ucDeviceType;					//设备类型	enum ICD_DEVICETYPE
	USHORT      usDeviceNo;						//设备编号
	CHAR        ucPilotNo[ MAXLEN_PILOTNBR + 1];//设备引导号
    UCHAR       ucTransferType;                //转移标志	enum TIMEOUT_PROCESS_STYLE
    DEVICE_ID   TransferDevice;                //转移设备
	USHORT      usCallNum;              //后面跟随的CALLID的数目(该设备) 
} CALL_PARTY_INFO;
//呼叫一方信息(设备)


typedef	struct tagDBCCC_DEVICE_STRUCT 
{
	ULONG   ulWaitBeginTime;	//等待开始时间
	ULONG   ulWaitEndTime;		//等待结束时间
	ULONG   ulAnswerBeginTime;	//应答开始时间
	ULONG   ulAnswerEndTime;	//应答结束时间
	ULONG   ulTalkBeginTime;	//谈话开始时间
	ULONG   ulTalkEndTime;		//谈话结束时间
	USHORT  usDeviceNo;			//设备编号
	UCHAR   ucDeviceType;		//设备类型	enum ICD_DEVICETYPE
	UCHAR   ucDoFuction;        //此设备的处理方式,enum CALL_DIRECT_MODE
	UCHAR   ucLeaveReason;		//离开此设备原因, enum CALL_DIRECT_MODE
}DBCCC_DEVICE_STRUCT, *LPDBCCC_DEVICE_STRUCT;	

#define RESERVED_SIZE   9
typedef struct tagDBCCC_USER_RECORD
{
	USHORT		usWorkNo;								//用户工号
	CHAR		szUserName[ DBCCC_MAXLEN_USERNAME + 1 ];//用户姓名
	CHAR		szPassword[ DBCCC_MAXLEN_PASSWORD + 1 ];//用户口令
	ULONG		ulSecurity;								//用户权限
	UCHAR		ucReserved[RESERVED_SIZE];	//保留未用的区域
}DBCCC_USER_RECORD, *LPDBCCC_USER_RECORD;	//用户描述结构

/*
typedef struct tagDBCCC_CALL_STATUS
{
  	DBCCC_CALLID    CallID;							//呼叫标识
	CHAR			CallerNo[ MAXLEN_EXTEN + 1 ];	//主叫号码
	CHAR			CalledNo[ MAXLEN_EXTEN + 1 ];	//被叫号码
	UCHAR			ucCallType;						//呼叫类型	//enum CallFlag
	USHORT			usTrunkNo;						//中继号码
	USHORT			usDid;							//交换设备号
} DBCCC_CALL_STATUS, *LPDBCCC_CALL_STATUS;
*/

typedef	struct tagDBCCC_AGENT_WORKGROUP_INFO
{
	USHORT	usAgentNo;								//座席工号
	USHORT	usAgentDsn;								//座席电路号
	UCHAR	ucAgentStatus;							//座席状态	//struct AGENTSTATUS
}DBCCC_AGENT_WORKGROUP_INFO, *LPDBCCC_AGENT_WORKGROUP_INFO;

typedef struct	tagDBCCC_INNO_STRUCT
{
	USHORT	usID;								//接入码标识(内部编号)
	USHORT  usServiceNo;	                    //业务类型
	BOOL	bHelpFlag;							//求助标志
	CHAR	pcInNo[ MAX_IVR_INNO_LENGTH + 1];	//接入码
	CHAR	pcDescription[MAX_INNO_INFO_LEN + 1];//对此接入码的功能性描述
}DBCCC_INNO_STRUCT, *LPDBCCC_INNO_STRUCT;		//说明: IVR接入码结构

typedef struct tagDBCCC_ALARM_DATA
{
	CHAR			pcDeviceType[10];			//设备类型名称
	CHAR			pcDeviceNo[10];				//设备标识号
	USHORT			usAlarmType;				//告警类型	// enum ALARM_TYPE
	USHORT			usAlarmLevel;				//告警级别	// enum ALARM_LEVEL
	CHAR			pcAlarmInfo[200];			//告警信息
	UCHAR			ucAlarmFlag;				//告警标志 1:Alarm, 0: NoAlarm
}DBCCC_ALARM_DATA, *LPDBCCC_ALARM_DATA;


enum PACKET_STATUS
{
	PACKET_DATA,
	PACKET_END
};

typedef struct tagSFTP_PACKET
{
	UCHAR  SerialNo;				//文件块包的序号
	UCHAR  EndFlag;					//是否文件结束标志
	USHORT PacketLen;				//数据区数据的长度
	CHAR  Packet[ MAX_PACKET_LEN ];	//数据区
}SFTP_PACKET, *LPSFTP_PACKET;

typedef struct tagCONN_OBJ_INFO
{
	UCHAR	ConnNodeNum;	//包含连接数目
	UCHAR	byConf;			//是否通过会议电话enum CONNECT_BY_TYPE
}CONN_OBJ_INFO, *LPCONN_OBJ_INFO;

typedef struct tagCONN_NODE_INFO
{
	USHORT		source_dsn;		//发起方
	UCHAR		source_type;	//发起方类型
	UCHAR		source_mid;		//发起方模块号
	USHORT		dest_dsn;		//目标方
	UCHAR		dest_type;		//目标方类型
	UCHAR		dest_mid;		//目标方模块号
	UCHAR		mode;			//
	UCHAR		byConf;			//enum CONNECT_BY_TYPE
}CONN_NODE_INFO, *LPCONN_NODE_INFO;

typedef struct
{
    USHORT   usFirstAgentNo;	//排名第一工号
	double   fFirstAgentScore;	//排名第一分数
    USHORT   usSecondAgentNo;	//排名第二工号
	double   fSecondAgentScore;	//排名第二分数
    USHORT   usThirdAgentNo;	//排名第三工号
	double   fThirdAgentScore;	//排名第三分数
	USHORT   usSelfIndex;		//自己排名
	double   fSelfScore;		//自己分数
} AGENT_ANALY_INFO;		//座席考评排行榜结构


typedef	struct	tagDBCCC_TRUNK_STRUCT
{
	UCHAR		ucModuleNo;		//该中继所属模块号, 用于区分排队机模块
	UCHAR		ucGroupNo;		//该中继所属中继群号,用于区分该模块下的中继群
	UCHAR		ucDirection;	//该中继的群向,是入中继还是出中继,enum	ACD_TRUNK_TYPE
	USHORT		usTrunkNo;		//该中继编号,在该模块中的编号
	UCHAR		ucStatus;		//是可用中继还是不可用中继, 1: 可用,0:不可用
}DBCCC_TRUNK_STRUCT, *LPDBCCC_TRUNK_STRUCT;	//每个中继续

typedef struct tagVMS_SPT_PLAY
{
	UCHAR		voice_resource;			// 放音资源类型 enum  voice_resource
	UCHAR		play_type;				// 放音类型, enum Play_Type
	UCHAR		filename[MAX_FILENAME_LEN];
}VMS_SPT_PLAY;

typedef struct tagDRV_RESULT_STRUCT
{
	UCHAR		user_info[DRV_MAX_GET_NUM];		//收号结果
}DRV_RESULT_STRU;

typedef union tagPLAY_DRV
{
	VMS_SPT_PLAY		vp_spt_play;		// VP , SPT放音
	DRV_RESULT_STRU		drv_result;			// 收号结果
}PLAY_DRV;

typedef struct tagPLAY_DRV_STRUCT
{
	CHAR		IvrNo[ MAXLEN_EXTEN + 1 ];	//相应的流程接入码
	UCHAR		flag;						//放音还是收号 enum PLAY_COLLECT
	PLAY_DRV	play_drv;
}PLAY_DRV_STRUCT;

typedef struct
{
	CALLID	CallId;
	ULONG   Index;
} KEEPINDEX;

typedef struct tagEVENT_RESPONSE_ID
{
	UCHAR	       ucReceiveTaskCount;
	USHORT	       usReceiveTaskDsn;
}EVENT_RESPONSE_ID;

#define	TRACE_DESCRIPTION_LEN	50

typedef struct tagFLOWTRACE_ITEM
{
	CHAR	cCallerNo[MAXLEN_EXTEN + 1];	//主叫号码
	CALLID	CallID;			//呼叫标识
	CHAR	cTraceDes[TRACE_DESCRIPTION_LEN + 1];//轨迹分支描述
}FLOWTRACE_ITEM, *LPFLOWTRACE_ITEM;

typedef struct 
{
	USHORT      usLoginNums;	    //上班次数
	ULONG        ulWorkTime;	    //工作时长
	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;         //请假时长
	USHORT      usAgentRelease;     //话务员主动收线次数
	ULONG        ulRestOutTime;      //超假时长
	ULONG        ulTotalTalkIngTimes;//总的通话时长
	ULONG		ulBusyTime;		//示忙时长
	USHORT		usSuperInsertNums;	//监听次数
	ULONG		ulSuperInsertTime;	//监听时长
	USHORT		usSwitchInsertNums; //
	USHORT		usInterceptNums;	//拦截次数
	USHORT		usTransIVRNums;	//人工转移自动次数
	USHORT		usSuperTrunkNums;	//监听中继次数
	ULONG		ulSuperTrunkTime;	//监听中继时长
	USHORT		usInterHelpNums;	//内部求助次数
	USHORT		usForceOutNums;		//强制签出别人次数
	USHORT		usForceIdleNums;	//强制示闲别人次数
	USHORT		usForceBusyNums;	//强制示忙别人次数
	ULONG		ulWorkStatusTime;		//工作状态时长
}STATISTICS_INFO;

typedef	struct  tagAGENT_STATISTICS_INFO
{
	AGENT_STRUCT	Agent;		//座席结构	
	STATISTICS_INFO StatInfo;	//统计信息
}AGENT_STATISTICS_INFO, *LPAGENT_STATISTICS_INFO;


typedef struct tag_CMessageHead
{
	UCHAR sender_node; //发送方节点号
	UCHAR sender_port; //发送方端口号
	UCHAR receiver_node; //接收方节点号
	UCHAR receiver_port; //接收方端口号如IVR的PORT号为4等
     UCHAR msg_type;//消息类型
     //一个字节句柄以及两个字节的dsn唯一标识一个呼叫控制块 
     UCHAR sender_handle;// 发送方句柄
     USHORT sender_dsn;// 发送方Dsn
     UCHAR receiver_handle; // 接收方方句柄
     USHORT receiver_dsn; // 接收方Dsn
}CMessageHead, *LPCMessageHead;

//呼入请求(排队机呼叫进入IVR的启动数据包)
typedef struct  tag_SP_Setup_Msg:public CMessageHead
{
	UCHAR call_feature;//呼叫特征,分为普通呼叫、特殊呼叫、
                    //设置摘机通知、取消摘机通知、自动寻呼机通知。枚举值分别为0,1,2,3,4
    UCHAR CLI_BCD[13];//主叫的BCD码
    UCHAR CLD_BCD[13];//被叫的BCD码
	UCHAR DID;//
    USHORT trunk_dsn;//中继号
	UCHAR Ext_Data[25];//呼叫附加信息
}SP_Setup_Msg, *LPSP_Setup_Msg;

//IVR发给排队机的呼入请求应答包
typedef struct tag_SP_SetupAck_Msg:public CMessageHead
{
    UC noteno;//IVR业务流程的节点号
} SP_SetupAck_Msg, *LPSP_SetupAck_Msg;

//IVR发振铃消息
typedef  struct tag_SP_Alerting_Msg:public CMessageHead
{
	UC audio; //一般填255
} SP_Alerting_Msg, *LPSP_Alerting_Msg;
//ivr应答
typedef struct tag_SP_Answer_Msg:public CMessageHead
{
	UC audio;//一般填255
} SP_Answer_Msg , *LPSP_Answer_Msg;

//定时握手消息
typedef struct  tag_SP_ResetTimer_Msg:public CMessageHead
{
    UC timer_id; //一般填255
} SP_ResetTimer_Msg, *LPSP_ResetTimer_Msg;	

//服务器发的CALLID
typedef struct  tag_IVR_CallID_Msg:public CMessageHead 
{
	CALLID callID; //呼叫标识结构
} IVR_CallID_Msg, *LPIVR_CallID_Msg;

//IVR主动拆线
typedef struct  tag_SP_Disconnect_Msg:public CMessageHead
{
    UC discon_cause;	//拆线原因,分为:正常拆线、无资源拆线、超时拆线、呼出失败、挂机、空号、邮箱已满。枚举值分别为0,1,2,3,4,5,6。
} SP_Disconnect_Msg, *LPSP_Disconnect_Msg;

//BCD码转换为字符串
void decodeBCD(const char* pSource, int len, char* str);
//INT 向BCD转换
int int2bcd(int i);


//IVR发给ACD的呼叫释放消息

typedef struct  tag_SP_Release_Msg:public CMessageHead
{
	UC release_cause; //拆线原因,分为:正常拆线、无资源拆线、超时拆线、呼出失败、挂机、
	                   //空号、邮箱已满,一般为挂机。枚举值分别为0,1,2,3,4,5,6。	
	UC ext_data[100];//呼叫附加信息
} SP_Release_Msg, *LPSP_Release_Msg;

//IVR发给排队机的呼叫重定向消息
typedef struct  tag_SP_Redirect_Msg:public CMessageHead    // SSP <===  SCP,重定向
{
	UC CLD[MAXLEN_EXTEN]	; //重定向的目标号码
	UC ext_data[100]; //呼叫附加信息
}SP_Redirect_Msg, *LPSP_Redirect_Msg;

//二次收号结果消息
typedef struct tag_SP_DRV_RESULT_Msg:public CMessageHead
{
	UCHAR		user_info[24];		//收号结果
}SP_DRV_RESULT_Msg, *LPSP_DRV_RESULT_Msg;
//IVR发给排队机的资源连接消息
typedef struct  tag_SP_ResourceConnect_Msg:public CMessageHead
{
    UC connect_party_type;    //  连接方类型,分为: 呼叫方、连net板的VP台、用户电路、会议电话、连中继的VP台、人工台。枚举值分别为0,1,2,3,4,7。
	US connect_party_dsn;     /*  连接方Dsn。对于连接方为:
	                              呼叫方:Dsn填排队机的控制块的Dsn;
	                              会议电话:Dsn填申请到的会场号;
	                              连中继的VP台:排队机配置的中继电路号+模块号*2048。*/
   	UC dest_party_type;       //目标方类型,分为: 呼叫方、连net板的VP台、用户电路、会议电话、连中继的VP台、人工台。
   	US dest_party_dsn; 	      //目标方Dsn
    UC connect_mode; 	  //连接类型,分为:只听、只说、双向。枚举值分别为1,2,3。

} SP_ResourceConnect_Msg, *LPSP_ResourceConnect_Msg;	
#pragma pack(pop)

#endif

⌨️ 快捷键说明

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