Подписка на изменения присутствия в Skype для бизнеса Buisness Client - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу подписаться на изменения собственного присутствия в моем клиенте Skype для бизнеса и попробовал событие ContactInformationChanged из Lync Client SDK.В документации о подписке на присутствие ( doc ) написано, что также необходимо создать подписку, заполнить ее контактными типами, на которые я хочу подписаться, добавить контакт, на который я хочу подписаться, и позвонить * 1004.* на объекте подписки.Теперь, если я не понял документацию, вы все равно захотите подписаться на событие ContactInformationChanged, если вы это сделаете.Дело в том, что даже если я пропущу часть создания подписки и просто подпишусь на событие ContactInformationChanged, это не имеет значения.Например, если я делаю это:

        var selfContact = m_lyncClient.Self.Contact;
        selfContact.ContactInformationChanged += Contact_ContactInformationChanged;

        m_subscription = m_lyncClient.ContactManager.CreateSubscription();
        m_subscription.AddContact(selfContact);
        List<ContactInformationType> contactInformationList = new List<ContactInformationType>
        {
            ContactInformationType.Activity,
            ContactInformationType.Availability,
            ContactInformationType.ActivityId,
            ContactInformationType.CustomActivity,
        };
        m_subscription.Subscribe(ContactSubscriptionRefreshRate.High, contactInformationList);

Я получаю сообщения о событиях для ContactInformationChanged с ContactInformationType, который я не указал.

Мои вопросы:

  • Является ли часть создания подписки даже необходимой?
  • Есть ли способ просто получать уведомления о присутствии о конкретных изменениях ContactInformationType (например, о доступности)?

1 Ответ

0 голосов
/ 15 января 2019

Нужна ли часть создания подписки?

Для вашего собственного контакта нет необходимости создавать подписку.

Есть лиспособ просто получить Присутствие Уведомления об изменении конкретного ContactInformationType (например, «Доступен»)?

Нет.Вам просто нужно отфильтровать все другие обратные вызовы следующим образом:

private void Contact_ContactInformationChanged(object sender, ContactInformationChangedEventArgs e)
{
    if (e.ChangedContactInformation.Contains(ContactInformationType.Availability) ||
        e.ChangedContactInformation.Contains(ContactInformationType.ActivityId) ||
        e.ChangedContactInformation.Contains(ContactInformationType.CustomActivity))
    {
        OnLyncPresenceChanged();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...