示例#1
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;
        }
示例#2
0
        /// <summary>
        /// Create Session with appropriate session type
        /// </summary>
        /// <param name="sessionType"></param>
        public void CreateSession(UCC_SESSION_TYPE sessionType)
        {
            // Create Session
            IUccSessionManager sessionManager = this.endpoint as IUccSessionManager;
            IUccSession        session        = sessionManager.CreateSession(sessionType, null);

            // Register to receive events
            if (sessionType == UCC_SESSION_TYPE.UCCST_INSTANT_MESSAGING)
            {
                this.imSession = session;
                // Advise for InstantMessagingSession Events
                Advise <_IUccInstantMessagingSessionEvents>(session, this);
            }
            else if (sessionType == UCC_SESSION_TYPE.UCCST_AUDIO_VIDEO)
            {
                this.avSession = session;
            }

            // Advise for SessionParticipantCollectionEvents & SessionEvents
            Advise <_IUccSessionParticipantCollectionEvents>(session, this);
            Advise <_IUccSessionEvents>(session, this);
        }