Обнаружение, какие MCU подключаться на входящей конференции

ТАК. Я работаю с OCS UCCAPI, разрабатываю собственный клиент OCS.

В настоящее время мне трудно определить, на какую "конференцию" приглашается мой клиент. С помощью клиента Office Communicator я могу запустить "IM-конференции" (пригласив более 1 человека и выбрав "Начать IM-разговор") или "Видеоконференции" (выбрав более 1 человека и выбрав "Начать видеозвонок"), Клиент Office Communicator со стороны приглашенных правильно запускает соответствующий сеанс (только IM, только Video или IM+Video).

Тем не менее, при получении приглашения на конференцию на моем клиенте нет данных о том, какой сеанс я приглашаю. Мне нужна эта информация для того, чтобы принять решение, подключаться ли к AV MCU или нет, захватывать / показывать видео.

Я уже пробовал:

  • При обращении _IUccSessionManagerEvents.OnIncomingSessionразбери RemoteSessionDescription собственность на UccIncomingInvitationEvent объект: не повезло, единственными данными о модальности конференции является элемент в XML о том, включен ли IM или нет (<im available="true"> или же <im available="false">), но ничего о сеансе, имеющем видео или нет.

  • При обращении _IUccConferenceSessionEvents.OnEnter, проверить Media собственность на UccConferenceSession, Не работают, присутствуют все типы медиа (СООБЩЕНИЕ, АУДИО, ВИДЕО, ДАННЫЕ и ТЕЛЕФОНИЯ), независимо от типа конференции, которую я приглашаю.

  • Также при обработке _IUccConferenceSessionEvents.OnEnter, проверить Entities Коллекция на UccConferenceView объект, чтобы проверить, какие MCU включены для этой конференции. Также не работают, все MCU перечислены как доступные (IM, AV, DATA и CONTROL), независимо от типа конференции, которую я приглашаю.

У меня заканчиваются идеи.

Некоторые ссылки, которые я использую:

Большое спасибо.

1 ответ

Решение

Ну, в моем клиенте я получил что-то вроде этого:

void _IUccSessionManagerEvents.OnIncomingSession(IUccEndpoint eventSource, UccIncomingSessionEvent eventData)
{
  // Handle incoming IM session
  if (eventData.Session.Type == UCC_SESSION_TYPE.UCCST_INSTANT_MESSAGING)
  {
    // ...
  }
  else if (eventData.Session.Type == UCC_SESSION_TYPE.UCCST_AUDIO_VIDEO)
  {
    // ... check here first if it's audio only or av...
  }
  // ...
}
Другие вопросы по тегам