public void SetCapabilities (ContactCapabilities caps) { ChannelMediaCapability media_caps = 0; bool has_media = false; if ((caps & ContactCapabilities.Audio) == ContactCapabilities.Audio) { media_caps = ChannelMediaCapability.Audio; has_media = true; } if ((caps & ContactCapabilities.Video) == ContactCapabilities.Video) { media_caps = media_caps | ChannelMediaCapability.Video; has_media = true; } LocalCapabilityInfo[] info = new LocalCapabilityInfo[(has_media?2:1)]; if ((caps & ContactCapabilities.Text) == ContactCapabilities.Text) { info[0].ChannelType = (string) org.freedesktop.Telepathy.ChannelType.Text; } if (has_media) { info[1].ChannelType = (string) org.freedesktop.Telepathy.ChannelType.StreamedMedia; info[1].TypeSpecificFlags = media_caps; } connection.TlpConnection.AdvertiseCapabilities (info, new string[0]); }