Пример #1
0
        /// <summary>
        /// Send state to callback
        /// </summary>
        private void SendState()
        {
            if (callback == null)
            {
                return;
            }

            if (!sendEvent)
            {
                return;
            }


            if (lyncClient == null)
            {
                callback.WriteState("not-running", "");
                return;
            }

            if (lyncClient.State != ClientState.SignedIn)
            {
                callback.WriteState("signed-out", "");
                return;
            }

            foreach (var conv in lyncClient.ConversationManager.Conversations)
            {
                ModalityState state = conv.Modalities[ModalityTypes.AudioVideo].State;

                if (state == ModalityState.Notified)
                {
                    callback.WriteState("call-calling", "");
                    return;
                }
                if (state == ModalityState.Connecting ||
                    state == ModalityState.Connected ||
                    state == ModalityState.Joining ||
                    state == ModalityState.ConnectingToCaller)
                {
                    callback.WriteState("call-connected", "");
                    return;
                }
            }

            ContactAvailability currentAvailability = (ContactAvailability)lyncClient.Self.Contact.GetContactInformation(ContactInformationType.Availability);

            // Busy, BusyIdle, Free, FreeIdle, Away, TemporarilyAway, DoNotDisturb, Offline
            callback.WriteState(currentAvailability.ToString(), "");
        }