/// 咨询接受时,客服和用户联通时触发 /// <summary> /// 咨询接受时,客服和用户联通时触发 /// </summary> /// <param name="callback"></param> private void AgentToCustomerCallBack(Action <object> callback) { //由PS10_咨询方通话_接受者变成【PS08_普通通话】【PS12_会议方通话_接受者】任意一种情况时,触发 AfterActionEventManage.RegisterOnceAfterActionEvent2(PhoneStatus.PS10_咨询方通话_接受者, new List <PhoneStatus>() { PhoneStatus.PS08_普通通话, PhoneStatus.PS12_会议方通话_接受者 }, callback, null, "咨询接受时,客服和用户联通时触发"); }
/// 置闲完成后触发事件 /// <summary> /// 置闲完成后触发事件 /// </summary> /// <param name="callback"></param> private void AfterToReadyCallBack(Action <object> callback, string name) { //当前状态 PhoneStatus cur = HollyContactHelper.ConvertPhoneStatus(HollyContactHelper.Instance.GetCurStatus()); //判断是异步触发还是同步触发 if (cur != PhoneStatus.PS03_置闲) { HollyContactHelper.Instance.ToReady(); //注册事件,当状态有cur变成【PS03_置闲】时触发 AfterActionEventManage.RegisterOnceAfterActionEvent1(cur, PhoneStatus.PS03_置闲, callback, null, "置闲完成后触发事件-" + name); } else { callback(null); } }
/// 状态变化事件 /// <summary> /// 状态变化事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AxUniSoftPhone_OnStatusChange(object sender, EventArgs e) { Loger.Log4Net.Info("[事件][AxUniSoftPhone_OnStatusChange] 状态变化事件"); PhoneStatus pre = HollyContactHelper.ConvertPhoneStatus(HollyContactHelper.Instance.GetPreStatus()); PhoneStatus cur = HollyContactHelper.ConvertPhoneStatus(HollyContactHelper.Instance.GetCurStatus()); //优先级从高到低 //更新客服状态表 UpdatAgentDBAsync(HollyContactHelper.ConvertAgentState(cur)); //操作完成事件触发 AfterActionEventManage.ActionEvent(pre, cur); //设置界面 SetMainStatus(cur); //设置状态条 ShowStatusTool(cur, HollyContactHelper.ConvertAgentState(cur)); }
/// 退出话后时执行 /// <summary> /// 退出话后时执行 /// </summary> /// <param name="callback"></param> private void ExitAfterCallCallBack(Action <object> callback) { //话后状态到其他状态时执行 AfterActionEventManage.RegisterOnceAfterActionEvent2(PhoneStatus.PS06_话后, null, callback, null, "退出话后时执行-更新话后信息"); }
/// 到达话后时触发 /// <summary> /// 到达话后时触发 /// </summary> /// <param name="callback"></param> private void ToAfterCallCallBack(Action <object> callback) { //从任意状态->话后 AfterActionEventManage.RegisterOnceAfterActionEvent1(null, PhoneStatus.PS06_话后, callback, null, "到达话后时触发-呼出结束话后"); }
/// 取消转接成功后触发事件 /// <summary> /// 取消转接成功后触发事件 /// </summary> /// <param name="callback"></param> private void EndConsultCallBack(Action <object> callback) { //从咨询发起状态->普通通话状态 AfterActionEventManage.RegisterOnceAfterActionEvent1(PhoneStatus.PS09_咨询通话_发起方, PhoneStatus.PS08_普通通话, callback, null, "取消转接成功后触发"); }
/// 开始转接成功后触发事件 /// <summary> /// 开始转接成功后触发事件 /// </summary> /// <param name="callback"></param> private void BeginConsultCallBack(Action <object> callback) { //从任意状态->咨询发起状态 AfterActionEventManage.RegisterOnceAfterActionEvent1(null, PhoneStatus.PS09_咨询通话_发起方, callback, null, "开始转接成功后触发"); }