private void InitializeSupervisorControlChannel() { _supervisorControlChannel = new SupervisorContextChannel(_frontEndConversation, _initialSupervisorCall.RemoteEndpoint); _supervisorControlChannel.RequestReceived += ProcessSupervisorControlChannelRequestReceived; _supervisorControlChannel.StateChanged += ProcessSupervisorStateChanged; try { _supervisorControlChannel.BeginEstablish(_matchMaker.Configuration.SupervisorDashboardGuid, est => { try { _supervisorControlChannel.EndEstablish(est); this.UpdateState(SupervisorSessionState.GeneralAgentActivityTracking); this.InitializeAgentTracking(); } catch (RealTimeException rtex) { _logger.Log("AcdSupervisorSession fails to end establish a supervisor session", rtex); this.BeginShutDown(sd => { this.EndShutDown(sd); }, null); return; } }, null); } catch (InvalidOperationException ivoex) { _logger.Log("AcdSupervisorSession fails to begin establish a supervisor session", ivoex); this.BeginShutDown(sd => { this.EndShutDown(sd); }, null); return; } }
public MonitoringChannel(string id, Uri uri, SupervisorContextChannel supervisorChannel) { m_id = id; m_uri = uri; m_supervisorChannel = supervisorChannel; }