Example #1
0
        void _IUccMediaEndpointEvents.OnFindMediaConnectivityServers(IUccMediaEndpointSettings eventSource, IUccFindMediaConnectivityServersEvent eventData)
        {
            if (Helpers.IsOperationCompleteOk(eventData))
            {
                IUccCollection mediaServerConfigs = eventData.MediaConnectivityServerConfigurations;

                foreach (IUccMediaConnectivityServerConfiguration serverConfig in mediaServerConfigs)
                {
                    this.mediaEndpointSettings.AddMediaConnectivityServerWithCredential(serverConfig);
                }
            }
        }
Example #2
0
        private void InitializeEndpoint(EndpointConfiguration configuration, AuthenticationMode authMode)
        {
            this.CleanupEndpoint();


            // set vars
            if (Helpers.TryParseUri(Helpers.CorrectUri(configuration.Uri), out this.uri) == false)
            {
                throw new Exception("Sign-in address is not valid Uri");
            }
            this.selfPresentity.SetUri(this.uri.Value);
            this.selfPresentityMonitor.SetUri(this.uri);
            this.disableImSessions = configuration.DisableImSessions;

            // platform events
            ComEvents.Advise <_IUccPlatformEvents>(this.platform, this);


            // create endpoint
            this.endpoint = this.platform.CreateEndpoint(UCC_ENDPOINT_TYPE.UCCET_PRINCIPAL_SERVER_BASED, this.uri, configuration.EndpoindIdString, null);
            ComEvents.Advise <_IUccEndpointEvents>(this.endpoint, this);
            ComEvents.Advise <_IUccSessionManagerEvents>(this.endpoint, this);



            // server signaling settings
            this.signalingSettings = (IUccServerSignalingSettings)this.endpoint;
            ComEvents.Advise <_IUccServerSignalingSettingsEvents>(this.signalingSettings, this);

            this.signalingSettings.AllowedAuthenticationModes = (int)authMode.ToUccAuthenticationMode();

            UccCredential credential = authMode.IsDefaultCreditals() ?
                                       this.signalingSettings.CredentialCache.DefaultCredential :
                                       this.signalingSettings.CredentialCache.CreateCredential(configuration.Username, configuration.Password, null);

            this.signalingSettings.CredentialCache.SetCredential(configuration.Realm, credential);


            // media endpoint settings
            this.mediaEndpointSettings = (IUccMediaEndpointSettings)this.endpoint;
            ComEvents.Advise <_IUccMediaEndpointEvents>(this.endpoint, this);


            // create session manager
            this.sessionManager = (IUccSessionManager)this.endpoint;
            ComEvents.Advise <_IUccSessionManagerEvents>(this.sessionManager, this);

            // create user search manager
            this.userSearchManager = (IUccUserSearchManager)this.endpoint;
        }
Example #3
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;
        }