private void HandleDispatchStateMessageMakeCall(TalkControl.DispatchArgs e)
 {
     switch (e.DispatchStatus)
     {
         case TalkControl.EnumDispatchStatus.success:
             //bc_OnMsg(string.Format("{0}呼叫{1}成功", Pub.GetDispatchNameByNumber(e.FromNumber), e.ToNumber));
             DispatchLogBLL.UpdateLog(CommControl.PublicEnums.EnumNormalCmd.Call, e.FromNumber, e.ToNumber.ToString(), true);
             RegionManage.GetInstance().UpdateMemberStatus(e.FromNumber.ToString(), TalkControl.EnumUserLineStatus.Busy);
             break;
         case TalkControl.EnumDispatchStatus.released:
         case TalkControl.EnumDispatchStatus.failure:
             //查找FromNumber对应的对方号码
             DB_Talk.Model.Data_DispatchLog log = DispatchLogBLL.GetDispatchLog(PublicEnums.EnumNormalCmd.Call, e.FromNumber);
             if (log != null)
             {
                 RegionManage.GetInstance().UpdateMemberStatus(log.DispatchedNumbers.ToString(), TalkControl.EnumUserLineStatus.Idle);
             }
             break;
         case TalkControl.EnumDispatchStatus.userRinging:
             if (e.ToNumber != 0)
             {
                 //bc_OnMsg(string.Format("用户{0}振铃", e.ToNumber));
             }
             break;
         default:
             break;
     }
 }
 internal override Bitmap GetShowImageByState(TalkControl.EnumUserLineStatus status = TalkControl.EnumUserLineStatus.None)
 {
     if (status == TalkControl.EnumUserLineStatus.Offline)
     {
         return DispatchPlatform.Properties.Resources.n_OffLine;
     }
     else
     {
         return DispatchPlatform.Properties.Resources.n_OnLine;
     }
 }
Exemple #3
0
 void OnTriggerEnter(Collider col)
 {
     if (isRunning)
     {
         return;
     }
     if (col.tag != "Player")
     {
         return;
     }
     talkControl = col.GetComponent <TalkControl>();
     StartCoroutine(Talk());
 }
 private void _talkControl_OnDispatchStateChanged(object obj, TalkControl.DispatchArgs e)
 {
     switch (e.DispatchCmdSubType)
     {
         case TalkControl.EnumDispatchCmdType.makeCall:
             HandleDispatchStateMessageMakeCall(e);
             break;
         case TalkControl.EnumDispatchCmdType.discCall:
             HandleDispatchStateDiscCall(e);
             break;
         case TalkControl.EnumDispatchCmdType.selectAnswer:
             HandleDispatchStateSelectAnswer(e);
             break;
         case TalkControl.EnumDispatchCmdType.holdCall:
             HandleDispatchStateHoldCall(e);
             break;
         default:
             break;
     }
 }
        internal override Bitmap GetShowImageByState(TalkControl.EnumUserLineStatus status = TalkControl.EnumUserLineStatus.None)
        {
            Bitmap tempMap;
            if (status == TalkControl.EnumUserLineStatus.Idle ||
                status == TalkControl.EnumUserLineStatus.Paging ||
                 status == TalkControl.EnumUserLineStatus.Outcalling)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_OnLine;
            }
            else if (status == TalkControl.EnumUserLineStatus.Busy ||
                status == TalkControl.EnumUserLineStatus.HookOn)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Busy;
            }
            else if (status == TalkControl.EnumUserLineStatus.Offline)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_OffLine;
            }
            else if (status == TalkControl.EnumUserLineStatus.Holding)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Keep;
            }
            else if (status == TalkControl.EnumUserLineStatus.Ring)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Ring;
            }
            else if (status == TalkControl.EnumUserLineStatus.Listen)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Listen;
            }
            else if (status == TalkControl.EnumUserLineStatus.Record)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Record;
            }
            else if (status == TalkControl.EnumUserLineStatus.Insert)
            {
                tempMap = DispatchPlatform.Properties.Resources.n_Insert;
            }
            else if (status == TalkControl.EnumUserLineStatus.Isolate)
            {
                tempMap = DispatchPlatform.Properties.Resources.MeetingMemberIsolate;
            }
            else if (status == TalkControl.EnumUserLineStatus.Forbid)
            {
                tempMap = DispatchPlatform.Properties.Resources.MeetingMemberNoSpeek;
            }
            else
            {
                tempMap = DispatchPlatform.Properties.Resources.n_OffLine;
            }

            return tempMap;
        }
 private void _talkControl_OnMemberStateChanged(object obj, TalkControl.UserStateArgs e)
 {
     RegionManage.GetInstance().UpdateMemberStatus(e.UserNumber.ToString(), e.UserLineStatus);
     RegionManage.GetInstance().UpdateMemberDestNumber(e.UserNumber.ToString(), e.PeerPartNumber.ToString());
 }
        private void HandleDispatchStateHoldCall(TalkControl.DispatchArgs e)
        {
            switch (e.DispatchStatus)
            {
                case TalkControl.EnumDispatchStatus.success:
                    //bc_OnMsg(string.Format("{0}保持呼叫成功", e.ToNumber));
                    DispatchLogBLL.UpdateLog(CommControl.PublicEnums.EnumNormalCmd.Keep, e.FromNumber, e.ToNumber.ToString(), true);
                    RegionManage.GetInstance().UpdateMemberStatus(e.FromNumber.ToString(), TalkControl.EnumUserLineStatus.Holding);
                    break;
                case TalkControl.EnumDispatchStatus.released:
                    //   bc_OnMsg(string.Format("呼叫{0}释放", e.ToNumber));

                    break;
                case TalkControl.EnumDispatchStatus.failure:
                    //bc_OnMsg(string.Format("保持呼叫失败"));
                    break;
                case TalkControl.EnumDispatchStatus.userRinging:
                    //  bc_OnMsg(string.Format("用户{0}振铃", e.FromNumber));
                    break;
                default:
                    break;
            }
        }
 private void HandleDispatchStateSelectAnswer(TalkControl.DispatchArgs e)
 {
     switch (e.DispatchStatus)
     {
         case TalkControl.EnumDispatchStatus.success:
             break;
         case TalkControl.EnumDispatchStatus.released:
             //   bc_OnMsg(string.Format("呼叫{0}释放", e.ToNumber));
             break;
         case TalkControl.EnumDispatchStatus.failure:
             // bc_OnMsg(string.Format("呼叫{0}失败", e.ToNumber));
             break;
         case TalkControl.EnumDispatchStatus.userRinging:
             //  bc_OnMsg(string.Format("用户{0}振铃", e.FromNumber));
             break;
         default:
             break;
     }
 }
 private void HandleDispatchStateDiscCall(TalkControl.DispatchArgs e)
 {
     switch (e.DispatchStatus)
     {
         case TalkControl.EnumDispatchStatus.success:
             //bc_OnMsg(string.Format("挂断{0}成功", e.ToNumber));
             DispatchLogBLL.UpdateLog(CommControl.PublicEnums.EnumNormalCmd.Handup, e.FromNumber, e.ToNumber.ToString(), true);
             break;
         case TalkControl.EnumDispatchStatus.released:
             //   bc_OnMsg(string.Format("呼叫{0}释放", e.ToNumber));
             break;
         case TalkControl.EnumDispatchStatus.failure:
             // bc_OnMsg(string.Format("挂断失败", e.ToNumber));
             break;
         case TalkControl.EnumDispatchStatus.userRinging:
             //  bc_OnMsg(string.Format("用户{0}振铃", e.FromNumber));
             break;
         default:
             break;
     }
 }
Exemple #10
0
 void Start()
 {
     talkControl = GameObject.Find("Player").GetComponent <TalkControl>();
 }
        /// <summary>
        /// 更新成员显示状态
        /// </summary>
        /// <param name="primaryKey"></param>
        /// <param name="status"></param>
        public void UpdateMemberStatus(string primaryKey, TalkControl.EnumUserLineStatus status)
        {
            if (m_MemeberDataCache.ContainsKey(primaryKey))
            {
                (m_MemeberDataCache[primaryKey] as RegionCallInfo).UserLineStatus = status;
            }


            //RegionMemberControl control = FindControl(primaryKey);
            //if (control != null)
            //{
            //    (control.Tag as RegionCallInfo).UserLineStatus = status;
            //    control.UpdateControlFont();
            //}
        }
        private void UpdateUserLineStatue(TalkControl.EnumUserLineStatus status)
        {
            string numberState = "";
            switch (status)
            {
                #region None
                case TalkControl.EnumUserLineStatus.None:
                    numberState = "离线";
                    _stateFontColor = MemberAppearance.OffLineFontColor;
                    this.NameColor = Color.FromArgb(MemberAppearance.OffLineFontColor);
                    StopTimer();
                    break;
                #endregion

                #region Idel
                case TalkControl.EnumUserLineStatus.Idle:
                    this.IsCalling = false;
                    numberState = "空闲";
                    _stateFontColor = MemberAppearance.IdleFontColor;
                    this.NameColor = Color.FromArgb(MemberAppearance.NormalNameOnlineColor);
                    StopTimer();
                    break;
                #endregion

                #region Busy
                case TalkControl.EnumUserLineStatus.Busy:
                    numberState = "通话中";
                    _stateFontColor = MemberAppearance.BusyFontColor;
                    this.NameColor = Color.FromArgb(MemberAppearance.NormalNameOnlineColor);


                    StartTimer();
                    break;
                #endregion

                #region Ring
                case TalkControl.EnumUserLineStatus.Ring:
                    numberState = "振铃中";
                    _stateFontColor = MemberAppearance.RingFontColor;

                    break;
                #endregion

                #region Paging

                case TalkControl.EnumUserLineStatus.Paging:
                    numberState = "寻呼中";
                    _stateFontColor = MemberAppearance.PagingFontColor;

                    break;
                #endregion

                #region Outcalling
                case TalkControl.EnumUserLineStatus.Outcalling:
                    this.IsCalling = true;
                    numberState = "连接中";
                    _stateFontColor = MemberAppearance.OutCallingFontColor;
                    break;
                #endregion

                #region Holding
                case TalkControl.EnumUserLineStatus.Holding:
                    numberState = "保持中";
                    _stateFontColor = MemberAppearance.HoldingFontColor;

                    break;
                #endregion

                #region Offline
                case TalkControl.EnumUserLineStatus.Offline:
                    numberState = "离线";
                    _stateFontColor = MemberAppearance.OffLineFontColor;
                    this.NameColor = Color.FromArgb(MemberAppearance.OffLineFontColor);
                    StopTimer();
                    break;
                #endregion

                #region Listen

                case TalkControl.EnumUserLineStatus.Listen:
                    numberState = "监听中";
                    _stateFontColor = MemberAppearance.ListenFontColor;
                    break;
                #endregion

                #region Record

                case TalkControl.EnumUserLineStatus.Record:
                    numberState = "录音中";
                    _stateFontColor = MemberAppearance.RecordFontColor;
                    break;
                #endregion

                #region Insert
                case TalkControl.EnumUserLineStatus.Insert:
                    numberState = "强插中";
                    _stateFontColor = MemberAppearance.InsertFontColor;
                    break;
                #endregion

                #region Isolate
                case TalkControl.EnumUserLineStatus.Isolate:
                    numberState = "隔离中";
                    _stateFontColor = MemberAppearance.IsolateFontColor;

                    break;

                #endregion

                #region Forbid

                case TalkControl.EnumUserLineStatus.Forbid:
                    numberState = "禁言中";
                    _stateFontColor = MemberAppearance.ForbidFontColor;

                    break;
                #endregion

                #region HookOn
                case TalkControl.EnumUserLineStatus.HookOn:
                    if (lblState.Text != "通话中")
                    {
                        numberState = "摘机";
                    }
                    else
                    {
                        numberState = "通话中";
                    }
                    _stateFontColor = MemberAppearance.HookonFontColor;

                    StopTimer();
                    break;
                #endregion
                default:
                    break;
            }

            this.picTop.Image = Appearance.GetShowImageByState((Tag as RegionCallInfo).UserLineStatus);

            lblState.Visible = true;
            (this.Tag as RegionCallInfo).NumberStatus = numberState;
            lblState.ForeColor = Color.FromArgb(_stateFontColor);
            lblSelfNumber.Text = this.Tag.Number;
        }