public interface IClientOutter { #region 业务类 /// <summary> /// 示忙/示闲 /// 示忙功能:实现坐席向服务器请求示忙,成功后不再处理新的业务 /// 示闲功能:实现坐席向服务器请求示闲,成功后继续处理新业务 /// 坐席过在通话中,肯定是忙的状态。此函数是坐席没有通话时(电话通道未使用) /// 的时候, 可以报告自己的状态。如坐席人员可能暂时离开位置,这个时候不能接听电 /// 话,则可以使用此函数告诉服务器,自己忙碌。CTI 服务器则在该坐席重新设置状态为 /// 空闲之前,CTI 服务器不会将业务转接到该坐席 /// 事件响应 OnEventBusy 服务器告知坐席请求的示闲或者示忙状态的成功与否 /// </summary> /// <param name="user">当前用户</param> /// <param name="intType">1示忙,0示闲</param> /// <returns>1成功,0失败,-1已是忙线状态无需再示</returns> int RequestBusy(UserData user, int intType); /// <summary> /// 保持/取保持 /// 保持功能:实现坐席通话中让对方听取等待音乐而暂时中断通话。 /// 取保持功能:实现坐席恢复暂时中断的通话。 /// 事件响应 EventDelegate 服务器告知坐席请求的保持或取保状态的成功与否 /// </summary> /// <param name="strCurrUserID">当前用户</param> /// <param name="intType">1 保持;0 取保持</param> /// <returns>1 发送请求成功;0发送请求失败;</returns> int RequestKeepNo(UserData user, int intType); /// <summary> /// 向服务器请求其他坐席状态信息(如要进行内呼或者通话中转接给别的坐席) /// 只能在正常登录系统后(Initialize 返回LogonResult.Succeed)调用该函数。 /// 事件响应 OnAgentState 函数将得到反馈结果(服务器受理成功或失败, 结果等) /// </summary> /// <param name="user"></param> /// <param name="TargetUser"></param> /// <returns>1发送请求成功;0 发送请求失败</returns> int RequestAgentState(UserData user, UserData TargetUser); /// <summary> /// 内呼方法(坐席间呼叫) /// 事件响应 OnEventCallUser 函数将得到反馈结果(服务器受理成功或失败, 结果等) /// </summary> /// <param name="user">内呼用户</param> /// <param name="TargetUser">被内呼用户</param> /// <returns>1发送请求成功;0 发送请求失败</returns> int RequestCallUser(UserData user, UserData TargetUser); /// <summary> /// 外呼方法(坐席进行呼出) /// 事件响应 OnEventCallOut 函数将得到反馈结果(服务器受理成功或失败, 结果等) /// </summary> /// <param name="user">当前用户</param> /// <param name="strTelArray">外呼号码</param> /// <returns>1发送请求成功;0 发送请求失败</returns> int RequestCallOut(UserData user, string strTelArray); /// <summary> /// 转接 /// </summary> /// <param name="user">当前用户</param> /// <param name="TargetUser">转接对象用户</param> /// <returns>1发送请求成功;0 发送请求失败</returns> int RequestDivert(UserData user, UserData TargetUser); /// <summary> /// 切来电,将来电转接到自己的线路(来电排队到A坐席,A不在工位,可通过此方法将来电转接到自己的线路) /// 事件响应 OnEventCutCaller 函数将得到反馈结果(服务器受理成功或失败, 结果等)。 /// </summary> /// <param name="user">当前用户</param> /// <param name="TargetUser">目标用户,当此用户为NULL时;CTI将按队列进行切</param> /// <returns>1 发送请求成功;0发送请求失败</returns> int RequestCutCaller(UserData user, UserData TargetUser); /// <summary> /// 呼叫转移、取消呼叫转移;将来电转接到一个目标号码(坐席下班,或者去开会时;可将来电转接到自己的手机或者其它号码) /// 事件响应 OnEventCallTransfer 函数将得到反馈结果(服务器受理成功或失败, 结果等)。 /// </summary> /// <param name="user">当前用户</param> /// <param name="TargetTelNumber">目标号码(手机号、或者固话号码)</param> /// <param name="intType">1申请转移,0取消转移</param> /// <returns>1 发送请求成功;0发送请求失败</returns> int RequestCallTransfer(UserData user, string TargetTelNumber, int intType); #endregion #region 管理类 /// <summary> /// 监听 /// 事件响应 OnEventMonitor 函数将得到反馈结果(服务器受理成功或失败, 结果等)。 /// </summary> /// <param name="strCurrUserID">当前用户</param> /// <param name="strTargetUserID">被监听者用户ID</param> /// <returns>1 发送请求成功;0发送请求失败;</returns> int RequestMonitor(string strCurrUserID, string strTargetUserID); #endregion #region 通知事件 /// <summary> /// 服务器告知坐席请求的示闲或者示忙状态的成功与否 /// </summary> event EventDelegate<int, bool> OnEventBusy; /// <summary> /// 服务器告知坐席请求的保持或取保状态的成功与否 /// </summary> event EventDelegate<int, bool> OnEventKeepNo; /// <summary> /// 服务告知坐席请求的坐席状态 /// </summary> event EventDelegate<UserData> OnEventAgentState; /// <summary> /// 内呼返回结果事件;在发送内呼请求后,可通过此事件来获取内呼结果 /// </summary> event EventDelegate<Information> OnEventCallUser; /// <summary> /// 外呼返回结果事件;在发送外呼请求后,可通过此事件来获取外呼结果 /// </summary> event EventDelegate<Information> OnEventCallOut; /// <summary> /// 转接来电 /// </summary> event EventDelegate<Information> OnEventDivert; /// <summary> /// 切来电,将来电转接到自己的线路;在发送请求后,可通过此事件来获取结果 /// </summary> event EventDelegate<Information> OnEventCutCaller; /// <summary> /// 请求、取消呼叫转移事件(将来电转接到一个目标号码(坐席下班,或者去开会时;可将来电转接到自己的手机或者其它号码)) /// </summary> event EventDelegate<int, bool> OnEventCallTransfer; /// <summary> /// 监听返回结果事件;在发送监听请求后,可通过此事件来获取监听结果 /// </summary> event EventDelegate<CallStatusEnum> OnEventMonitor; /// <summary> /// 来电信息信息事件,通过此事件可以获取更多的来电信息 /// </summary> event EventDelegate<string, int> OnEventInComingTel; /// <summary> /// 摘机通知事件,坐席摘机后,进行通知 /// </summary> event EventDelegate<string,int> OnEventOffHook; /// <summary> /// 挂机通知事件,坐席挂机后,进行通知 /// </summary> event EventDelegate<string,int> OnEventHangUp; /// <summary> /// 来电振铃,坐席话机来电振铃,进行通知 /// </summary> event EventDelegate<string,int> OnEventRinging; /// <summary> /// 通话中,坐席通话中,进行通知 /// </summary> event EventDelegate<string,int> OnEventCalling; /// <summary> /// 该接口用户实现坐席CTI状态维护 /// </summary> IUserOutter userOutter { get; set; } #endregion /// <summary> /// /// </summary> Socket CurrSocket { get; set; } /// <summary> /// 收到服务器应答消息 /// </summary> /// <param name="data"></param> void SystemAnswerMessage(byte[] data); }