Я работаю в рамках интеграции нашего провайдера чата в Outlook, чтобы показать присутствие и совершать звонки из Outlook через наше приложение чата. Конечно, я много раз читал эту статью https://docs.microsoft.com/en-us/office/client-developer/shared/integrating-im-applications-with-office.
В основной интеграции работает хорошо. Но у меня есть проблема с кнопками чата / вызова / видеовызова: я не могу управлять их доступностью.
Я возвращаюсь из метода Contact.GetContactInformation.
public dynamic GetContactInformation(ContactInformationType _contactInformationType)
{
switch (_contactInformationType)
{
....
case ContactInformationType.ucPresenceCapabilities:
return this.capabilities;
case ContactInformationType.ucPresenceCapabilityDetails:
return this.capabilityDetails;
case ContactInformationType.ucPresenceCapabilityString:
return null;
default:
throw new NotImplementedException();
}
}
СвойствоabilityDetails, которое я построил следующим образом:
public MyOfficePresenceCapability[] BuildCapabilitiesDetails(bool canCall, bool canIM, bool canVideo)
{
var capabilityDetails = new MyOfficePresenceCapability[3] {
new OfficePresenceCapability((int)(canIM ? mAvailability : ContactAvailability.ucAvailabilityOffline), canIM, canIM, PresenceCapabilityType.ucPresenceCapabilityInstantMessaging),
new OfficePresenceCapability((int)(canCall ? mAvailability : ContactAvailability.ucAvailabilityOffline), canCall, canCall, PresenceCapabilityType.ucPresenceCapabilityAudio),
new OfficePresenceCapability((int)(canVideo ? mAvailability : ContactAvailability.ucAvailabilityOffline), canVideo, canVideo, PresenceCapabilityType.ucPresenceCapabilityVideo)
};
return capabilityDetails;
}
В результате я не могу отключить любые кнопки чата / звонка / видео звонка, когда мне это нужно. Возможно, это невозможно. Если у кого-то есть опыт с этим вопросом, я буду счастлив.