Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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;
        }