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; } }
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; } }
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; }