Example #1
0
        public void SetPresence(User user, PreferredUserStatus status)
        {
            if (!LyncCollaboration.HasStarted)
            {
                LyncCollaboration.Start();
            }

            var state = PresenceState.UserAway;

            switch (status)
            {
            case PreferredUserStatus.BeRightBack:
                state = PresenceState.UserBeRightBack;
                break;

            case PreferredUserStatus.Busy:
                state = PresenceState.UserBusy;
                break;

            case PreferredUserStatus.DoNotDisturb:
                state = PresenceState.UserDoNotDisturb;
                break;

            case PreferredUserStatus.Offwork:
                state = PresenceState.UserOffWork;
                break;

            case PreferredUserStatus.Online:
                state = PresenceState.UserAvailable;
                break;
            }

            user.ClearPresence();

            var host     = Plugin.LyncPlugin.Configuration.GetString("host");
            var appPort  = Plugin.LyncPlugin.Configuration.GetInt("appPort");
            var sip      = "sip:" + user.SipUri();
            var endpoint = new UserEndpoint(LyncCollaboration.Platform, new UserEndpointSettings(sip, host, appPort));

            endpoint.EndEstablish(endpoint.BeginEstablish(null, null));
            endpoint.LocalOwnerPresence.EndSubscribe(endpoint.LocalOwnerPresence.BeginSubscribe(null, null));
            endpoint.LocalOwnerPresence.EndPublishPresence(endpoint.LocalOwnerPresence.BeginPublishPresence(new PresenceCategory[] { state }, null, null));
            endpoint.EndTerminate(endpoint.BeginTerminate(null, null));
        }
Example #2
0
        public void SetCurrentUserStatus(PreferredUserStatus status)
        {
            var user = PublicApi.Users.AccessingUser;

            LyncContext.Instance().SetPresence(user, status);
        }