海军资料

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
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);
    }

 

posted on 2012-12-17 15:44  周海军  阅读(422)  评论(0编辑  收藏  举报