protected virtual void DetachUccSession(bool terminate) { if (this.uccSession != null) { ComEvents.UnadviseAll(this); if (terminate) { this.uccSession.Terminate(UCC_REJECT_OR_TERMINATE_REASON.UCCROTR_DECLINE, null); } this.uccSession = null; foreach (ParticipantLog log in this.PartipantLogs) { log.State = PartipantLogState.SessionTerminated; } } }
public void CleanupEndpoint() { foreach (var invite in this.AvInvites) { invite.Decline(); } foreach (Session session in this.Sessions) { session.UccSession = null; } this.IsDisabled = true; this.SelfPresentity.SetAvailability(AvailabilityValues.Unknown); ComEvents.UnadviseAll(this); this.selfPresentityMonitor.DestroyUccPresentity(); if (this.selfSubscription != null && this.selfSubscription.Presentities.Count > 0) { this.selfSubscription.Unsubscribe(null); } this.selfSubscription = null; foreach (Presentity presentity in this.Presentities) { presentity.DestroyUccPresentity(); } if (this.subscription != null && this.subscription.Presentities.Count > 0) { this.subscription.Unsubscribe(null); } this.subscription = null; this.signalingSettings = null; this.mediaEndpointSettings = null; this.userSearchManager = null; this.endpoint = null; }