Detecting which MCUs to connect on an incoming conference
SO. I'm working with the OCS UCCAPI, developing a custom OCS client.
I'm currently having a hard time detecting what "kind" of Conference my client is being invited to. Using the Office Communicator client, I can start "IM conferences" (by inviting more than 1 person and selecting "start a IM conversation") or "video conferences" (by selecting more than 1 person and selecting "start a video call"). The Office Communicator client, on the invitees' end, starts correctly the appropriate session (just IM, just Video or IM+Video).
However, when receiving the conference invite on my custom client, there's no data about the kind of session I'm being invited. I need this information, in order to make a decision whether or not to connect to the AV MCU and capture/show video.
I've tried already:
When handling
_IUccSessionManagerEvents.OnIncomingSession
, parse theRemoteSessionDescription
property on theUccIncomingInvitationEvent
object: no luck, the only data about the conference modality is an element on the XML about the IM being enabled or not (<im available="true">
or<im available="false">
), but nothing about the session having video available or not.When handling
_IUccConferenceSessionEvents.OnEnter
, check theMedia
property on theUccConferenceSession
. Don't work, all media types are present (MESSAGE, AUDIO, VIDEO, DATA e TELEPHONY), regardless of the type of conference I'm being invited.Also when handling
_IUccConferenceSessionEvents.OnEnter
, check theEntities
collection on theUccConferenceView
object, to check which MCUs are enabled for this conference. Don't work either, all MCUs are listed as available (IM, AV, DATA and CONTROL), regardless of the type of conference I'm being invited.
I'm running out of ideas.
Some references I'm using:
- http://msdn.microsoft.com/en-us/library/bb664307.aspx
- http://msdn.microsoft.com/en-us/library/dd170830.aspx
Thanks a lot.
Well, in my custom client I got something like this:
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...
}
// ...
}
精彩评论