diff --git a/.gitignore b/.gitignore index 0e23cadd..97c76a31 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +*.ignore.* + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. @@ -266,3 +268,4 @@ _site/ # local-only setting files appsettings.development.json *.development.pubxml +*.original diff --git a/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/Bot/Bot.cs b/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/Bot/Bot.cs index 287df4ea..93a1e434 100644 --- a/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/Bot/Bot.cs +++ b/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/Bot/Bot.cs @@ -73,12 +73,18 @@ public Bot(BotOptions options, IGraphLogger graphLogger) var instanceNotificationUri = CallAffinityMiddleware.GetWebInstanceCallbackUri(new Uri(options.BotBaseUrl, HttpRouteConstants.OnIncomingRequestRoute)); this.graphLogger = graphLogger; + var name = this.GetType().Assembly.GetName().Name; + var builder = new CommunicationsClientBuilder( + name, + options.AppId, + this.graphLogger); + var authProvider = new AuthenticationProvider( + name, options.AppId, options.AppSecret, this.graphLogger); - var builder = new CommunicationsClientBuilder("IcmBot", options.AppId, this.graphLogger); builder.SetAuthenticationProvider(authProvider); builder.SetNotificationUrl(instanceNotificationUri); builder.SetServiceBaseUrl(options.PlaceCallEndpointUrl); diff --git a/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/README.md b/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/README.md index f303fc3d..b84d3508 100644 --- a/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/README.md +++ b/Samples/BetaSamples/RemoteMediaSamples/IncidentBot/README.md @@ -24,6 +24,16 @@ The sample demostrate an incident process workflow. When a incident raised (thro - Write down the application ID \{ApplicationId} and \{ApplicationSecret} for next steps. - Click "IncidentBot" in "Bot Services" resource type page, Click "Channels", Then select "Microsoft Teams" and "Skype" channels and enable both of them. - Click "edit" button of "Skype" channel, click "Calling" tab, select "Enable calling" radio button, then select "IVR - 1:1 IVR audio calls", and fill the Webhook (for calling) edit box with value "\{BotBaseUrl}/callback/calling". + * Configure permissions for the Bot. + - Go to Application Registration Portal (https://apps.dev.microsoft.com/). + - Select your registered bot application. + - Click "Add" under Microsoft Graph Permissions --> Application Permissions. + - Select all permissions starting with "Calls.", i.e. "Calls.AccessMedia.All", "Calls.Initiate.All", etc. + - Click "Ok" and then "Save" + * Consent the permissions + - Go to "https://login.microsoftonline.com/common/adminconsent?client_id=&state=&redirect_uri=" + - Sign in with a tenant admin + - Consent for the whole tenant. * Update the following elements in appsettings.json file in project IncidentBot. - Bot/AppId: "\{ApplicationId}" - Bot/AppSecret: "\{ApplicationSecret}" diff --git a/Samples/BetaSamples/RemoteMediaSamples/README.md b/Samples/BetaSamples/RemoteMediaSamples/README.md index 19b440c9..2768676a 100644 --- a/Samples/BetaSamples/RemoteMediaSamples/README.md +++ b/Samples/BetaSamples/RemoteMediaSamples/README.md @@ -35,9 +35,9 @@ The Incident Bot sample is a Remote Media sample demonstrating a simple incident 1. Add the following Application Permissions to the bot: * Calls.AccessMedia.All - * Calls.Initiate + * Calls.Initiate.All * Calls.JoinGroupCall.All - * Calls.JoinGroupAsGuestCall.All + * Calls.JoinGroupCallAsGuest.All 1. The permissions need to be consented by tenant admin. Go to "https://login.microsoftonline.com/common/adminconsent?client_id=&state=&redirect_uri=" using tenant admin to sign-in, then consent for the whole tenant. diff --git a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/IRequestAuthenticationProvider.cs b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/IRequestAuthenticationProvider.cs deleted file mode 100644 index d4459634..00000000 --- a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/IRequestAuthenticationProvider.cs +++ /dev/null @@ -1,32 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. -// -// -// The authentication provider interface. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace Sample.OnlineMeeting -{ - using System.Net.Http; - using System.Threading.Tasks; - - /// - /// The authentication provider interface. - /// - public interface IRequestAuthenticationProvider - { - /// - /// Authenticates the specified request message. - /// This method will be called any time there is an outbound request. - /// - /// The request. - /// The tenant. - /// - /// The . - /// - Task AuthenticateOutboundRequestAsync(HttpRequestMessage request, string tenant); - } -} \ No newline at end of file diff --git a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.cs b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.cs index 6e15bbfa..8d816489 100644 --- a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.cs +++ b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.cs @@ -8,6 +8,7 @@ namespace Sample.OnlineMeeting using System; using System.Threading.Tasks; using Microsoft.Graph; + using Microsoft.Graph.Communications.Client.Authentication; using Microsoft.Graph.Communications.Core; /// diff --git a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.csproj b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.csproj index 7d4478f8..39e412c1 100644 --- a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.csproj +++ b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/OnlineMeeting.csproj @@ -9,8 +9,12 @@ + - + + + + diff --git a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/Program.cs b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/Program.cs index 4c3f023d..0b648c8c 100644 --- a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/Program.cs +++ b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/Program.cs @@ -7,6 +7,8 @@ namespace Sample.OnlineMeeting { using System; using System.Threading.Tasks; + using Microsoft.Graph.Communications.Common.Telemetry; + using Sample.Common.Authentication; /// /// Default program class. @@ -30,8 +32,10 @@ public class Program /// The onlinemeeting details. public static async Task GetOnlineMeetingAsync(string tenantId, string meetingId) { + var name = typeof(Program).Assembly.GetName().Name; + var logger = new GraphLogger(name); var onlineMeeting = new OnlineMeeting( - new RequestAuthenticationProvider(appId, appSecret), + new AuthenticationProvider(name, appId, appSecret, logger), graphUri); var meetingDetails = await onlineMeeting.GetOnlineMeetingAsync(tenantId, meetingId, default(Guid)).ConfigureAwait(false); @@ -50,8 +54,10 @@ public class Program /// The newly created onlinemeeting. public static async Task CreateOnlineMeetingAsync(string tenantId, string organizerId) { + var name = typeof(Program).Assembly.GetName().Name; + var logger = new GraphLogger(name); var onlineMeeting = new OnlineMeeting( - new RequestAuthenticationProvider(appId, appSecret), + new AuthenticationProvider(name, appId, appSecret, logger), graphUri); var meetingDetails = await onlineMeeting.CreateOnlineMeetingAsync(tenantId, organizerId, default(Guid)).ConfigureAwait(false); diff --git a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/RequestAuthenticationProvider.cs b/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/RequestAuthenticationProvider.cs deleted file mode 100644 index 7667593c..00000000 --- a/Samples/BetaSamples/StatelessSamples/OnlineMeetingSamples/RequestAuthenticationProvider.cs +++ /dev/null @@ -1,81 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. -// - -namespace Sample.OnlineMeeting -{ - using System; - using System.Diagnostics; - using System.Net.Http; - using System.Net.Http.Headers; - using System.Threading.Tasks; - using Microsoft.IdentityModel.Clients.ActiveDirectory; - - /// - /// The authentication provider. - /// - /// - public class RequestAuthenticationProvider : IRequestAuthenticationProvider - { - /// - /// Initializes a new instance of the class. - /// - /// The application identifier. - /// The application secret. - public RequestAuthenticationProvider(string appId, string appSecret) - { - Debug.Assert(!string.IsNullOrWhiteSpace(appId), $"Invalid {nameof(appId)}."); - Debug.Assert(!string.IsNullOrWhiteSpace(appSecret), $"Invalid {nameof(appSecret)}."); - - this.AppId = appId; - this.AppSecret = appSecret; - } - - /// - /// Gets the application identifier. - /// - /// - /// The application identifier. - /// - private string AppId { get; } - - /// - /// Gets the application secret. - /// - /// - /// The application secret. - /// - private string AppSecret { get; } - - /// - public async Task AuthenticateOutboundRequestAsync(HttpRequestMessage request, string tenantId) - { - Debug.Assert(!string.IsNullOrWhiteSpace(tenantId), $"Invalid {nameof(tenantId)}."); - - const string BearerPrefix = "Bearer"; - const string ReplaceString = "{tenant}"; - const string TokenAuthorityMicrosoft = "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token"; - const string Resource = @"https://graph.microsoft.com"; - - var tokenLink = TokenAuthorityMicrosoft.Replace(ReplaceString, tenantId); - - var context = new AuthenticationContext(tokenLink); - var creds = new ClientCredential(this.AppId, this.AppSecret); - - AuthenticationResult result; - try - { - result = await context.AcquireTokenAsync(Resource, creds).ConfigureAwait(false); - } - catch (Exception ex) - { - Debug.Write($"Acquire token failed {ex.Message}"); - - throw; - } - - request.Headers.Authorization = new AuthenticationHeaderValue(BearerPrefix, result.AccessToken); - } - } -} \ No newline at end of file diff --git a/Samples/Common/Sample.Common/Authentication/AuthenticationProvider.cs b/Samples/Common/Sample.Common/Authentication/AuthenticationProvider.cs index 0478d404..173b2c4d 100644 --- a/Samples/Common/Sample.Common/Authentication/AuthenticationProvider.cs +++ b/Samples/Common/Sample.Common/Authentication/AuthenticationProvider.cs @@ -6,16 +6,18 @@ namespace Sample.Common.Authentication { using System; + using System.Diagnostics; using System.IdentityModel.Tokens.Jwt; using System.Net.Http; using System.Net.Http.Headers; using System.Security.Claims; + using System.Security.Cryptography.X509Certificates; using System.Threading; using System.Threading.Tasks; using Microsoft.Graph.Communications.Client.Authentication; using Microsoft.Graph.Communications.Common; using Microsoft.Graph.Communications.Common.Telemetry; - using Microsoft.IdentityModel.Clients.ActiveDirectory; + using Microsoft.Identity.Client; using Microsoft.IdentityModel.Protocols; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using Microsoft.IdentityModel.Tokens; @@ -24,8 +26,17 @@ namespace Sample.Common.Authentication /// The authentication provider for this bot instance. /// /// - public class AuthenticationProvider : IRequestAuthenticationProvider + public class AuthenticationProvider : ObjectRoot, IRequestAuthenticationProvider { + private const string Resource = "https://graph.microsoft.com"; + private const string DefaultScope = Resource + "/.default"; + private static readonly string[] Scopes = new[] { DefaultScope }; + + /// + /// The application name. + /// + private readonly string appName; + /// /// The application identifier. /// @@ -37,9 +48,9 @@ public class AuthenticationProvider : IRequestAuthenticationProvider private readonly string appSecret; /// - /// The graph logger. + /// The application certificate. /// - private readonly IGraphLogger graphLogger; + private readonly X509Certificate2 appCert; /// /// The open ID configuration refresh interval. @@ -59,14 +70,31 @@ public class AuthenticationProvider : IRequestAuthenticationProvider /// /// Initializes a new instance of the class. /// + /// The application name. /// The application identifier. /// The application secret. /// The logger. - public AuthenticationProvider(string appId, string appSecret, IGraphLogger logger) + public AuthenticationProvider(string appName, string appId, string appSecret, IGraphLogger logger) + : base(logger.NotNull(nameof(logger)).CreateShim(nameof(AuthenticationProvider))) { + this.appName = appName.NotNullOrWhitespace(nameof(appName)); this.appId = appId.NotNullOrWhitespace(nameof(appId)); this.appSecret = appSecret.NotNullOrWhitespace(nameof(appSecret)); - this.graphLogger = logger.NotNull(nameof(logger)).CreateShim(nameof(AuthenticationProvider)); + } + + /// + /// Initializes a new instance of the class. + /// + /// The application name. + /// The application identifier. + /// The application certificate. + /// The logger. + public AuthenticationProvider(string appName, string appId, X509Certificate2 appCert, IGraphLogger logger) + : base(logger.NotNull(nameof(logger)).CreateShim(nameof(AuthenticationProvider))) + { + this.appName = appName.NotNullOrWhitespace(nameof(appName)); + this.appId = appId.NotNullOrWhitespace(nameof(appId)); + this.appCert = appCert.NotNull(nameof(appCert)); } /// @@ -83,34 +111,31 @@ public AuthenticationProvider(string appId, string appSecret, IGraphLogger logge /// public async Task AuthenticateOutboundRequestAsync(HttpRequestMessage request, string tenant) { - const string schema = "Bearer"; - const string replaceString = "{tenant}"; - const string oauthV2TokenLink = "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token"; - const string resource = "https://graph.microsoft.com"; + const string Schema = "Bearer"; - // If no tenant was specified, we craft the token link using the common tenant. - // https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols#endpoints tenant = string.IsNullOrWhiteSpace(tenant) ? "common" : tenant; - var tokenLink = oauthV2TokenLink.Replace(replaceString, tenant); - - this.graphLogger.Info("AuthenticationProvider: Refreshing OAuth token."); - var context = new AuthenticationContext(tokenLink); - var creds = new ClientCredential(this.appId, this.appSecret); - - AuthenticationResult result; - try + var options = new ConfidentialClientApplicationOptions { - result = await context.AcquireTokenAsync(resource, creds).ConfigureAwait(false); - } - catch (Exception ex) - { - this.graphLogger.Error(ex, $"Failed to generate token for client: {this.appId}"); - throw; - } + ClientName = this.appName, + ClientId = this.appId, + ClientVersion = this.GetType().Assembly.GetName().Version.ToString(), + TenantId = tenant, + LogLevel = LogLevel.Info, + EnablePiiLogging = false, + IsDefaultPlatformLoggingEnabled = false, + AzureCloudInstance = AzureCloudInstance.AzurePublic, + }; - this.graphLogger.Info($"AuthenticationProvider: OAuth token cached. Expires in {result.ExpiresOn.Subtract(DateTimeOffset.UtcNow).TotalMinutes} minutes."); + ConfidentialClientApplicationBuilder builder = ConfidentialClientApplicationBuilder + .CreateWithApplicationOptions(options) + .WithLogging(this.LogCallback); + IConfidentialClientApplication app = string.IsNullOrEmpty(this.appSecret) + ? builder.WithCertificate(this.appCert).Build() + : builder.WithClientSecret(this.appSecret).Build(); - request.Headers.Authorization = new AuthenticationHeaderValue(schema, result.AccessToken); + AuthenticationResult result = await this.AcquireTokenWithRetryAsync(app, 3).ConfigureAwait(false); + + request.Headers.Authorization = new AuthenticationHeaderValue(Schema, result.AccessToken); } /// @@ -136,7 +161,7 @@ public async Task ValidateInboundRequestAsync(HttpReque const string authDomain = "https://api.aps.skype.com/v1/.well-known/OpenIdConfiguration"; if (this.openIdConfiguration == null || DateTime.Now > this.prevOpenIdConfigUpdateTimestamp.Add(this.openIdConfigRefreshInterval)) { - this.graphLogger.Info("Updating OpenID configuration"); + this.GraphLogger.Info("Updating OpenID configuration"); // Download the OIDC configuration which contains the JWKS IConfigurationManager configurationManager = @@ -182,7 +207,7 @@ public async Task ValidateInboundRequestAsync(HttpReque catch (Exception ex) { // Some other error - this.graphLogger.Error(ex, $"Failed to validate token for client: {this.appId}."); + this.GraphLogger.Error(ex, $"Failed to validate token for client: {this.appId}."); return new RequestValidationResult() { IsValid = false }; } @@ -197,5 +222,77 @@ public async Task ValidateInboundRequestAsync(HttpReque return new RequestValidationResult { IsValid = true, TenantId = tenantClaim.Value }; } + + /// + /// Callback delegate that allows application developers to consume logs, and handle them in a custom manner. This + /// callback is set using Microsoft.Identity.Client.AbstractApplicationBuilder`1.WithLogging(Microsoft.Identity.Client.LogCallback,System.Nullable{Microsoft.Identity.Client.LogLevel},System.Nullable{System.Boolean},System.Nullable{System.Boolean}). + /// If PiiLoggingEnabled is set to true, when registering the callback this method will receive the messages twice: + /// once with the containsPii parameter equals false and the message without PII, + /// and a second time with the containsPii parameter equals to true and the message might contain PII. + /// In some cases (when the message does not contain PII), the message will be the same. + /// For details see https://aka.ms/msal-net-logging. + /// + /// Log level of the log message to process. + /// Pre-formatted log message. + /// + /// Indicates if the log message contains Organizational Identifiable Information (OII) + /// or Personally Identifiable Information (PII) nor not. + /// If Microsoft.Identity.Client.Logger.PiiLoggingEnabled is set to false then this value is always false. + /// Otherwise it will be true when the message contains PII. + /// + private void LogCallback(LogLevel logLevel, string message, bool containsPii) + { + TraceLevel level; + switch (logLevel) + { + case LogLevel.Error: + level = TraceLevel.Error; + break; + case LogLevel.Warning: + level = TraceLevel.Warning; + break; + case LogLevel.Info: + level = TraceLevel.Info; + break; + default: + level = TraceLevel.Verbose; + break; + } + + this.GraphLogger.Log(level, message, nameof(IConfidentialClientApplication)); + } + + /// + /// Acquires the token and retries if failure occurs. + /// + /// The confidential application. + /// The attempts. + /// + /// The . + /// + private async Task AcquireTokenWithRetryAsync(IConfidentialClientApplication app, int attempts) + { + while (true) + { + attempts--; + + try + { + return await app + .AcquireTokenForClient(Scopes) + .ExecuteAsync() + .ConfigureAwait(false); + } + catch (Exception) + { + if (attempts < 1) + { + throw; + } + } + + await Task.Delay(1000).ConfigureAwait(false); + } + } } } \ No newline at end of file diff --git a/Samples/Common/Sample.Common/CommonUtilities.cs b/Samples/Common/Sample.Common/CommonUtilities.cs new file mode 100644 index 00000000..cb9cebcd --- /dev/null +++ b/Samples/Common/Sample.Common/CommonUtilities.cs @@ -0,0 +1,59 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +// + +namespace Sample.Common +{ + using System; + using System.Runtime.CompilerServices; + using System.Threading.Tasks; + using Microsoft.Graph.Communications.Common.Telemetry; + + /// + /// The utility class. + /// + public static class CommonUtilities + { + /// + /// Extension for Task to execute the task in background and log any exception. + /// + /// Task to execute and capture any exceptions. + /// Graph logger. + /// Friendly description of the task for debugging purposes. + /// Calling function. + /// File name where code is located. + /// Line number where code is located. + /// + /// A representing the asynchronous operation. + /// + public static async Task ForgetAndLogExceptionAsync( + this Task task, + IGraphLogger logger, + string description = null, + [CallerMemberName] string memberName = null, + [CallerFilePath] string filePath = null, + [CallerLineNumber] int lineNumber = 0) + { + try + { + await task.ConfigureAwait(false); + logger?.Verbose( + $"Completed running task successfully: {description ?? string.Empty}", + memberName: memberName, + filePath: filePath, + lineNumber: lineNumber); + } + catch (Exception e) + { + // Log and absorb all exceptions here. + logger.Error( + e, + $"Caught an Exception running the task: {description ?? string.Empty} {e.Message}\n StackTrace: {e.StackTrace}", + memberName: memberName, + filePath: filePath, + lineNumber: lineNumber); + } + } + } +} diff --git a/Samples/Common/Sample.Common/Sample.Common.csproj b/Samples/Common/Sample.Common/Sample.Common.csproj index 2f605864..ad09bb80 100644 --- a/Samples/Common/Sample.Common/Sample.Common.csproj +++ b/Samples/Common/Sample.Common/Sample.Common.csproj @@ -1,7 +1,7 @@  - net461 + netstandard2.0;net461 Sample.Common Sample.Common AnyCPU @@ -10,12 +10,20 @@ - - - - + + + + + + + + + + + + diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/Bot.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/Bot.cs index 529ca7c7..d572a024 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/Bot.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/Bot.cs @@ -20,6 +20,7 @@ namespace Sample.AudioVideoPlaybackBot.FrontEnd.Bot using Microsoft.Skype.Bots.Media; using Sample.AudioVideoPlaybackBot.FrontEnd; using Sample.AudioVideoPlaybackBot.FrontEnd.Http; + using Sample.Common; using Sample.Common.Authentication; using Sample.Common.Logging; using Sample.Common.Meetings; @@ -159,11 +160,17 @@ internal void Initialize(Service service, IGraphLogger logger) this.Logger = logger; this.Observer = new SampleObserver(logger); - var builder = new CommunicationsClientBuilder("AudioVideoPlaybackBot", service.Configuration.AadAppId, this.Logger); + var name = this.GetType().Assembly.GetName().Name; + var builder = new CommunicationsClientBuilder( + name, + service.Configuration.AadAppId, + this.Logger); + var authProvider = new AuthenticationProvider( - service.Configuration.AadAppId, - service.Configuration.AadAppSecret, - this.Logger); + name, + service.Configuration.AadAppId, + service.Configuration.AadAppSecret, + this.Logger); builder.SetAuthenticationProvider(authProvider); builder.SetNotificationUrl(service.Configuration.CallControlBaseUrl); diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/BotMediaStream.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/BotMediaStream.cs index c6030d1d..47f8ca8d 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/BotMediaStream.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/BotMediaStream.cs @@ -19,6 +19,7 @@ namespace Sample.AudioVideoPlaybackBot.FrontEnd.Bot using Microsoft.Graph.Communications.Common.Telemetry; using Microsoft.Skype.Bots.Media; using Microsoft.Skype.Internal.Media.Services.Common; + using Sample.Common; /// /// Class responsible for streaming audio and video. diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/CallHandler.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/CallHandler.cs index e4b922ca..0017cec8 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/CallHandler.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/CallHandler.cs @@ -15,6 +15,7 @@ namespace Sample.AudioVideoPlaybackBot.FrontEnd.Bot using Microsoft.Graph.Communications.Common.Telemetry; using Microsoft.Graph.Communications.Resources; using Microsoft.Skype.Bots.Media; + using Sample.Common; /// /// Call Handler Logic. @@ -50,6 +51,8 @@ public CallHandler(ICall statefulCall) this.Call = statefulCall; this.logger = statefulCall.GraphLogger; + this.Call.OnUpdated += this.CallOnUpdated; + // subscribe to dominant speaker event on the audioSocket this.Call.GetLocalMediaSession().AudioSocket.DominantSpeakerChanged += this.OnDominantSpeakerChanged; @@ -84,6 +87,7 @@ public void Dispose() this.Call.GetLocalMediaSession().AudioSocket.DominantSpeakerChanged -= this.OnDominantSpeakerChanged; this.Call.GetLocalMediaSession().VideoSockets.FirstOrDefault().VideoMediaReceived -= this.OnVideoMediaReceived; + this.Call.OnUpdated -= this.CallOnUpdated; this.Call.Participants.OnUpdated -= this.ParticipantsOnUpdated; foreach (var participant in this.Call.Participants) @@ -94,6 +98,19 @@ public void Dispose() this.BotMediaStream?.ShutdownAsync().ForgetAndLogExceptionAsync(this.logger); } + /// + /// Event fired when the call has been updated. + /// + /// The call. + /// The event args containing call changes. + private void CallOnUpdated(ICall sender, ResourceEventArgs e) + { + if (e.OldResource.State != e.NewResource.State && e.NewResource.State == CallState.Established) + { + // Call is established... do some work. + } + } + /// /// Event fired when the participants collection has been updated. /// diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/FrontEnd.csproj b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/FrontEnd.csproj index d1cc6c31..ec5c402c 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/FrontEnd.csproj +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/FrontEnd.csproj @@ -37,6 +37,7 @@ + @@ -54,7 +55,7 @@ False - ..\..\..\packages\Microsoft.Skype.Bots.Media\1.12.1.6-alpha\src\skype_media_lib\Microsoft.Skype.Internal.Media.H264.dll + ..\..\..\packages\Microsoft.Skype.Bots.Media\1.13.1.98-alpha\src\skype_media_lib\Microsoft.Skype.Internal.Media.H264.dll @@ -62,9 +63,9 @@ - - - + + + @@ -72,7 +73,7 @@ - + diff --git a/Samples/Common/Sample.Common/Logging/ExceptionLogger.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/ExceptionLogger.cs similarity index 96% rename from Samples/Common/Sample.Common/Logging/ExceptionLogger.cs rename to Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/ExceptionLogger.cs index 055d748f..5c0708aa 100644 --- a/Samples/Common/Sample.Common/Logging/ExceptionLogger.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/ExceptionLogger.cs @@ -8,7 +8,7 @@ // // -------------------------------------------------------------------------------------------------------------------- -namespace Sample.Common.Logging +namespace Sample.AudioVideoPlaybackBot.FrontEnd.Http { using System.Threading; using System.Threading.Tasks; diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/HttpConfigurationInitializer.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/HttpConfigurationInitializer.cs index 584c6cf9..dea86325 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/HttpConfigurationInitializer.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Http/HttpConfigurationInitializer.cs @@ -31,7 +31,7 @@ public void ConfigureSettings(IAppBuilder app, IGraphLogger logger) httpConfig.MapHttpAttributeRoutes(); httpConfig.MessageHandlers.Add(new LoggingMessageHandler(isIncomingMessageHandler: true, logger: logger, urlIgnorers: new[] { "/logs" })); - httpConfig.Services.Add(typeof(IExceptionLogger), new Common.Logging.ExceptionLogger(logger)); + httpConfig.Services.Add(typeof(IExceptionLogger), new ExceptionLogger(logger)); // TODO: Provide serializer settings hooks // httpConfig.Formatters.JsonFormatter.SerializerSettings = RealTimeMediaSerializer.GetSerializerSettings(); diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Utilities.cs b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Utilities.cs index f14792ee..ba0a8e76 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Utilities.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Utilities.cs @@ -16,7 +16,6 @@ namespace Sample.AudioVideoPlaybackBot.FrontEnd using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; - using System.Threading.Tasks; using Microsoft.Graph.Communications.Calls.Media; using Microsoft.Graph.Communications.Common.Telemetry; using Microsoft.Skype.Bots.Media; @@ -62,26 +61,6 @@ static Utilities() } } - /// - /// Extension for Task to execute the task in background and log any exception. - /// - /// Task to execute and capture any exceptions. - /// Graph logger. - /// Friendly description of the task for debugging purposes. - /// A representing the asynchronous operation. - public static async Task ForgetAndLogExceptionAsync(this Task task, IGraphLogger logger, string description = null) - { - try - { - await task.ConfigureAwait(false); - } - catch (Exception e) - { - // ignore - logger.Error(e, $"Caught an Exception running the task: {description ?? string.Empty} {e.Message}\n StackTrace: {e.StackTrace}"); - } - } - /// /// Creates the video buffers from the provided h264 files. /// diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README Release Notes.md b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README Release Notes.md deleted file mode 100644 index 4e533ab2..00000000 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README Release Notes.md +++ /dev/null @@ -1,145 +0,0 @@ -# Release dates and notes: - -09/23/2018 - -1. Updated to https://graph.microsoft.com/beta endpoint for Microsoft Ignite 2018 release. -2. Updated to public nuget version of Graph Comms SDK. Note new version scheme: 1.0.0-prerelease.48 - -08/21/2018 - -1. Updated to /TeamsBeta for prod supported endpoint from Graph. -2. Updated to latest version of SDK, which brings in latest protocol changes. -3. Added `MeetingId` parameter for meeting join. When `MeetingId` is specified, the bot will get the meeting coordinates prior to joining. -4. Added support for joining as anonymous when specifying the `DisplayName` parameter. - -07/26/2018 - -1. Updated to latest version of SDK, which has a couple fixes in regards to how operations are processed. This removes the `400 Bad Request` after some operations, and fixes issues with Mute/Unmute. -2. Switched to the `Subscribe` and `Unsubscribe` on the video sockets, instead of using the `IParticipant.SubscribeAsync`. - -``` csharp -/// -/// Interface to a VideoSocket. -/// -public interface IVideoSocket : IDisposable - -/// -/// Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, -/// it is possible to call this api to subscribe to a specific video using the media source id. -/// -/// The requested video resolution, -/// The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied -void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId); - -/// -/// Subscribe API for the 1:1 case. No need to specify the media source id -/// -void Subscribe(VideoResolution preferredVideoResolution); - -void Unsubscribe(); -``` - -Note: The VideoSocket.Subscribe method will throw an InvalidOperationException if it is called too early, before the media session is established/active. The bot can monitor the (also new) VideoSocket.VideoReceiveStatusChanged event to see when the VideoSocket reports MediaReceiveStatus.Active, to know when it can start making video subscription requests. - -05/15/2018 - -1. Updated to latest SDK version. This includes minor bug fixes and contract changes. - 1. The `OrganizerMeetingInfo.OrganizerId` and `OrganizerMeetingInfo.TenantId` parameters have been replaced with `IdentitySet Organizer`. - 2. The transfer `IdenitySet Target` and `string ReplacesCallId` parameters have been replaced with `InvitationParticipantInfo TransferTarget`. -2. Added logic to handle failed call deletion, or any time a stale call needs to be removed from SDK memory. -``` csharp -// Manually remove the call from SDK state. -// This will trigger the ICallCollection.OnUpdated event with the removed resource. -this.Client.Calls().TryForceRemove(callLegId, out ICall call); -``` - -05/10/2018 - -1. Updated AuthenticationProvider to support multiple issuers for inbound request. -2. Consolidated Vbss functionality with BotMediaStream. -3. Changed place call endpoint to talk to graph endpoint and auth token resource to graph - -05/03/2018 - -1. Synced with latest signed binaries. -2. Updated media library -3. Added vbss controller for the bot to switch between vbss sharer and viewer. When bot is the sharer, it streams H264 video file through the vbss socket. - -03/26/2018 - -Synced with latest signed binaries. - -03/22/2018 - -1. CorrelationId is now a Guid. -2. Added auto expiry of certificates in authentication provider. -3. Added support for `IGraphLogger` as part of `ICommunicationsClient`. - -03/10/2018 - -1. Set `AllowConversationWithoutHost = true;` for joined meetings. This will ensure that any participants joining the meeting after the bot will not get kicked out of the meeting once bot leaves. -2. Added better tracking of calls by setting the `correlationId` for new calls and media sessions. - -03/07/2018 - -New SDK drop. -1. Added `ICommunicationsClient.TerminateAsync(bool onlyMedia, TimeSpan timeout);` SDK supports couple flavors of cleanup: - 1. **Recommended:** `TerminateAsync(false, timeout)` will terminate all existing calls, terminate the media platform, shut down background threads, and dispose internal objects. Setting `timeout` will still terminate the media platform, shut down background threads, and dispose internal objects, but it will limit the time spent waiting for calls to be terminated. - 2. `ICommunicationsClient.TermianteAsync(true, timeout)` will only terminate the media platform. In this instance the `timeout` parameter is ignored. - 3. `ICommunicationsClient.TerminateAsync(timeout)` is used for media hosted on MSFT cloud, and not relevant in this drop. -2. The termination state now also bubbles up in the call.OnUpdated notification. - -If bots wish to shut down cleanly, we recommend the following: -``` csharp -try -{ - // Terminate all existing calls and wait for confirmation. - // Terminate media platform, terminate background threads, dispose objects. - await this.Client - .TerminateAsync(false, new TimeSpan(hours: 0, minutes: 1, seconds: 0)) - .ConfigureAwait(false); -} -catch (Exception) -{ - // Terminate with error. -} - -// Perform graceful termination logic. -``` - -02/26/2018 - -1. Added setting of tenant in `JoinMeetingParameters`. The tenant is forwared to the `IRequestAuthenticationProvider` so that tenantized tokens can be created. -2. Fixed extraction and validation of tenant for incoming requests. - -02/16/2018 - -1. Updated to latest version of calling SDK. - 1. Added support for joining the meeting multiple times. - 2. Specifying the `User` property in the `call.Source` `IdentitySet` when making an outbound call will allow impersonation of a guest user. -2. Added IRequestAuthenticationProvider to create outbound tokens and validate incoming requests. - -02/07/2018 - -1. Added support for reading incoming video streams from multiple video sources. An LRU cache keeps track of the dominant speaker msi to socket id mapping, and with every roster update it chooses the appropriate socket from the cache. -2. Added support for reading incoming VBSS (screen sharing) if available. - -01/10/2018 - -1. Enabled StyleCop Analyzer on Sample code. Fixed build warnings generated by build pipeline - -01/09/2018 - -1. Updated sample to use the latest media nuget and Graph.Calls nuget packages - -2. Fixed out-of-sync issue when playing back audio video files - -3. Fixed the video startup glitch - -4. More comments of using the media player were added - -19/12/2017 - -1. Initial release of the audio video player bot sample - - diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README.md b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README.md index e284601c..a0e646ef 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README.md +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/README.md @@ -15,9 +15,9 @@ This section walks you through the process of deploying and testing the sample b 1. Add the following Application Permissions to the bot: * Calls.AccessMedia.All - * Calls.Initiate + * Calls.Initiate.All * Calls.JoinGroupCall.All - * Calls.JoinGroupAsGuestCall.All + * Calls.JoinGroupCallAsGuest.All 1. The permission needs to be consented by tenant admin. Go to "https://login.microsoftonline.com/common/adminconsent?client_id=&state=&redirect_uri=" using tenant admin to sign-in, then consent for the whole tenant. diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/WorkerRole.csproj b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/WorkerRole.csproj index 985e9216..8ee481f7 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/WorkerRole.csproj +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/WorkerRole.csproj @@ -36,8 +36,8 @@ - - + + diff --git a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/app.config b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/app.config index 8965276b..068f7b01 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/app.config +++ b/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/WorkerRole/app.config @@ -64,7 +64,7 @@ - + diff --git a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Bot/Bot.cs b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Bot/Bot.cs index 45bcb748..22e13a11 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Bot/Bot.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Bot/Bot.cs @@ -20,10 +20,10 @@ namespace Sample.HueBot.Bot using Microsoft.Graph.Communications.Common.Telemetry; using Microsoft.Graph.Communications.Resources; using Microsoft.Skype.Bots.Media; + using Sample.Common; using Sample.Common.Authentication; using Sample.Common.Meetings; using Sample.Common.OnlineMeetings; - using Sample.HueBot; using Sample.HueBot.Controllers; using Sample.HueBot.Extensions; @@ -48,11 +48,17 @@ public Bot(BotOptions options, IGraphLogger graphLogger, StatefulServiceContext this.Options = options; this.logger = graphLogger; + var name = this.GetType().Assembly.GetName().Name; + var builder = new CommunicationsClientBuilder( + name, + options.AppId, + this.logger); + var authProvider = new AuthenticationProvider( - options.AppId, - options.AppSecret, - this.logger); - var builder = new CommunicationsClientBuilder("HueBot", options.AppId, this.logger); + name, + options.AppId, + options.AppSecret, + this.logger); builder.SetAuthenticationProvider(authProvider); builder.SetNotificationUrl(options.BotBaseUrl.ReplacePort(options.BotBaseUrl.Port + serviceContext.NodeInstance())); diff --git a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/HueBot.csproj b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/HueBot.csproj index e78f3108..bee1e656 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/HueBot.csproj +++ b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/HueBot.csproj @@ -19,7 +19,7 @@ - + diff --git a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Utilities.cs b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Utilities.cs index c2de6ffc..fef5e569 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Utilities.cs +++ b/Samples/V1.0Samples/LocalMediaSamples/HueBot/HueBot/Utilities.cs @@ -10,10 +10,7 @@ namespace Sample.HueBot { - using System; using System.Runtime.InteropServices; - using System.Threading.Tasks; - using Microsoft.Graph.Communications.Common.Telemetry; using Microsoft.Skype.Bots.Media; using Sample.HueBot.Bot; @@ -22,26 +19,6 @@ namespace Sample.HueBot /// internal static class Utilities { - /// - /// Extension for Task to execute the task in background and log any exception. - /// - /// Task to execute and capture any exceptions. - /// Graph logger. - /// Friendly description of the task for debugging purposes. - /// A representing the asynchronous operation. - public static async Task ForgetAndLogExceptionAsync(this Task task, IGraphLogger logger, string description = null) - { - try - { - await task.ConfigureAwait(false); - } - catch (Exception e) - { - // ignore - logger.Error(e, $"Caught an Exception running the task: {description ?? string.Empty} {e.Message}\n StackTrace: {e.StackTrace}"); - } - } - /// /// The get sending video format. /// diff --git a/Samples/V1.0Samples/LocalMediaSamples/HueBot/README.md b/Samples/V1.0Samples/LocalMediaSamples/HueBot/README.md index 272c62d0..d8fc30a8 100644 --- a/Samples/V1.0Samples/LocalMediaSamples/HueBot/README.md +++ b/Samples/V1.0Samples/LocalMediaSamples/HueBot/README.md @@ -17,9 +17,9 @@ For running locally, we need to use a tunneling mechanism to route traffic to yo 1. Add the following Application Permissions to the bot: * Calls.AccessMedia.All - * Calls.Initiate + * Calls.Initiate.All * Calls.JoinGroupCall.All - * Calls.JoinGroupAsGuestCall.All + * Calls.JoinGroupCallAsGuest.All 1. The permissions need to be consented by tenant admin. Go to "https://login.microsoftonline.com/common/adminconsent?client_id=&state=&redirect_uri=" using tenant admin to sign-in, then consent for the whole tenant. diff --git a/changelog.md b/changelog.md index 91721543..6fabacf2 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,13 @@ This changelog covers what's changed in Microsoft Graph Communications SDK and its associated samples. +## June 2019 + +- Migrated AuthenticationProvider from ADAL to MSAL AAD libraries. +- Removed OnlineMeeting sample IRequestAuthenticationProvider and leveraged the one defined in Sample.Common. +- Updated all samples to latest media binaries: Microsoft.Skype.Bots.Media 1.13.1.98-alpha +- Changed Samples.Common so that it supports dual targets (net461 and netstandard2.0) + ## May 2019 - Updated Media library 1.12.1.6-alpha @@ -9,7 +16,7 @@ This changelog covers what's changed in Microsoft Graph Communications SDK and i ### Communications 1.1.0-prerelease.581 Changes -The Communications SDKs are now decoupled the `Microsoft.Graph` SDK.  New nugets have been released to as version `1.1.0-prerelease.*` to signal breaking changes due to objects being moved to Microsoft.Graph.  +The Communications SDKs are now decoupled from the `Microsoft.Graph` SDK.  New nugets have been released to as version `1.1.0-prerelease.*` to signal breaking changes due to objects being moved to Microsoft.Graph.  #### Microsoft.Graph.Communications.Core: @@ -111,6 +118,11 @@ This release cleans up interfaces where some members have been renamed or remove | OnlineMeeting.StartTime | OnlineMeeting.StartDateTime | | Participant.SubscribeVideoAsync | Call.GetLocalMediaSession().VideoSocket.Subscribe | +## September 2018 + +1. Updated to https://graph.microsoft.com/beta endpoint for Microsoft Ignite 2018 release. +2. Updated to public nuget version of Graph Comms SDK. Note new version scheme: 1.0.0-prerelease.48 + ## August 2018 ### Core SDK @@ -164,4 +176,83 @@ No changes Added proper handling of the operation response. - If operation is `null`, `Idle` or `Running` the action is treated as asynchronous and SDK will wait for subsequent `Running` `Failed` or `Completed` operation notifications. - If operation is `Failed` SDK will throw a `ServiceException` with the error details. -- If operation is `Completed` the action is treated as synchronous and SDK will return from the calling method. \ No newline at end of file +- If operation is `Completed` the action is treated as synchronous and SDK will return from the calling method. +- Updated to latest version of SDK, which has a couple fixes in regards to how operations are processed. This removes the `400 Bad Request` after some operations, and fixes issues with Mute/Unmute. +- Switched to the `Subscribe` and `Unsubscribe` on the video sockets, instead of using the `IParticipant.SubscribeAsync`. + +``` csharp +/// +/// Interface to a VideoSocket. +/// +public interface IVideoSocket : IDisposable + +/// +/// Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, +/// it is possible to call this api to subscribe to a specific video using the media source id. +/// +/// The requested video resolution, +/// The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied +void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId); + +/// +/// Subscribe API for the 1:1 case. No need to specify the media source id +/// +void Subscribe(VideoResolution preferredVideoResolution); + +void Unsubscribe(); +``` + +Note: The VideoSocket.Subscribe method will throw an InvalidOperationException if it is called too early, before the media session is established/active. The bot can monitor the (also new) VideoSocket.VideoReceiveStatusChanged event to see when the VideoSocket reports MediaReceiveStatus.Active, to know when it can start making video subscription requests. + +# Release dates and notes: + +## May 2018 + +### Core SDK +Updated to latest SDK version. This includes minor bug fixes and contract changes. +- The `OrganizerMeetingInfo.OrganizerId` and `OrganizerMeetingInfo.TenantId` parameters have been replaced with `IdentitySet Organizer`. +- The transfer `IdenitySet Target` and `string ReplacesCallId` parameters have been replaced with `InvitationParticipantInfo TransferTarget`. + +### Stateful SDK +Added logic to handle failed call deletion, or any time a stale call needs to be removed from SDK memory. + +``` csharp +// Manually remove the call from SDK state. +// This will trigger the ICallCollection.OnUpdated event with the removed resource. +this.Client.Calls().TryForceRemove(callLegId, out ICall call); +``` + +## March 2018 + +### Core SDK +No changes + +### Stateful SDK +- CorrelationId is now a Guid. +- Added auto expiry of certificates in authentication provider. +- Added support for `IGraphLogger` as part of `ICommunicationsClient`. +- Set `AllowConversationWithoutHost = true;` for joined meetings. This will ensure that any participants joining the meeting after the bot will not get kicked out of the meeting once bot leaves. +- Added better tracking of calls by setting the `correlationId` for new calls and media sessions. +- Added `ICommunicationsClient.TerminateAsync(bool onlyMedia, TimeSpan timeout);` SDK supports couple flavors of cleanup: + - **Recommended:** `TerminateAsync(false, timeout)` will terminate all existing calls, terminate the media platform, shut down background threads, and dispose internal objects. Setting `timeout` will still terminate the media platform, shut down background threads, and dispose internal objects, but it will limit the time spent waiting for calls to be terminated. + - `ICommunicationsClient.TermianteAsync(true, timeout)` will only terminate the media platform. In this instance the `timeout` parameter is ignored. + - `ICommunicationsClient.TerminateAsync(timeout)` is used for media hosted on MSFT cloud, and not relevant in this drop. +- The termination state now also bubbles up in the call.OnUpdated notification. + +If bots wish to shut down cleanly, we recommend the following: +``` csharp +try +{ + // Terminate all existing calls and wait for confirmation. + // Terminate media platform, terminate background threads, dispose objects. + await this.Client + .TerminateAsync(false, new TimeSpan(hours: 0, minutes: 1, seconds: 0)) + .ConfigureAwait(false); +} +catch (Exception) +{ + // Terminate with error. +} + +// Perform graceful termination logic. +``` diff --git a/docs/client/Microsoft.Graph.Communications.Client.Cache.CacheContext-1.html b/docs/client/Microsoft.Graph.Communications.Client.Cache.CacheContext-1.html index d752bda2..c46a1311 100644 --- a/docs/client/Microsoft.Graph.Communications.Client.Cache.CacheContext-1.html +++ b/docs/client/Microsoft.Graph.Communications.Client.Cache.CacheContext-1.html @@ -112,6 +112,7 @@
Assembly: Microsoft.Graph.Communications.Client.dll
Syntax
public struct CacheContext<TEntity>
+
     where TEntity : Entity
Type Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Client.Cache.ICache.html b/docs/client/Microsoft.Graph.Communications.Client.Cache.ICache.html index 3115a792..4a677044 100644 --- a/docs/client/Microsoft.Graph.Communications.Client.Cache.ICache.html +++ b/docs/client/Microsoft.Graph.Communications.Client.Cache.ICache.html @@ -104,6 +104,7 @@

Declaration

Task<string> GetDataAsync<T>(IEnumerable<IGraphProperty> properties, string resourcePath, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : Entity
Parameters
@@ -178,6 +179,7 @@

Declaration

Task<IEnumerable<string>> GetDataCollectionAsync<T>(IEnumerable<IGraphProperty> properties, string resourcePath, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : Entity
Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Client.Cache.ServiceCache.html b/docs/client/Microsoft.Graph.Communications.Client.Cache.ServiceCache.html index dc5b1d41..9af784ed 100644 --- a/docs/client/Microsoft.Graph.Communications.Client.Cache.ServiceCache.html +++ b/docs/client/Microsoft.Graph.Communications.Client.Cache.ServiceCache.html @@ -161,6 +161,7 @@

Declaration

public Task<string> GetDataAsync<T>(IEnumerable<IGraphProperty> properties, string resourcePath, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : Entity
Parameters
@@ -235,6 +236,7 @@

Declaration

public Task<IEnumerable<string>> GetDataCollectionAsync<T>(IEnumerable<IGraphProperty> properties, string resourcePath, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : Entity
Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphAuthClient.html b/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphAuthClient.html index cc580de1..bdd18a97 100644 --- a/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphAuthClient.html +++ b/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphAuthClient.html @@ -181,6 +181,7 @@

Declaration

protected override Task<IGraphResponse<T2>> SendHttpRequestAsync<T1, T2>(IGraphRequest<T1> graphRequest, CancellationToken cancellationToken)
+
     where T1 : class where T2 : class
Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html b/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html index 3448454a..1e2fb00f 100644 --- a/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html +++ b/docs/client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html @@ -218,6 +218,7 @@

Declaration

public Task<IGraphResponse> SendAsync<T>(IGraphRequest<T> request, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : class
Parameters
@@ -279,6 +280,7 @@

Declaration

public Task<IGraphResponse<T2>> SendAsync<T1, T2>(IGraphRequest<T1> request, CancellationToken cancellationToken = default(CancellationToken))
+
     where T1 : class where T2 : class
Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventArgs-1.html b/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventArgs-1.html index ed41bc72..e771ffa8 100644 --- a/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventArgs-1.html +++ b/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventArgs-1.html @@ -120,6 +120,7 @@
Assembly: Microsoft.Graph.Communications.Client.dll
Syntax
public class ResourceEventArgs<TEntity>
+
     where TEntity : Entity
Type Parameters
diff --git a/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html b/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html index 39cee709..3784b6a8 100644 --- a/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html +++ b/docs/client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html @@ -91,6 +91,7 @@
Assembly: Microsoft.Graph.Communications.Client.dll
Syntax
public delegate void ResourceEventHandler<in TSender, TEntity>(TSender sender, ResourceEventArgs<TEntity> e)
+
     where TEntity : Entity;
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.CollectionUtils.html b/docs/common/Microsoft.Graph.Communications.Common.CollectionUtils.html index 9ae363c0..c426487f 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.CollectionUtils.html +++ b/docs/common/Microsoft.Graph.Communications.Common.CollectionUtils.html @@ -516,6 +516,7 @@

Declaration

public static void TryRemoveAndDispose<TKey, TValue>(this ConcurrentDictionary<TKey, TValue> dictionary, TKey key)
+
     where TValue : IDisposable
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.EnumUtils.html b/docs/common/Microsoft.Graph.Communications.Common.EnumUtils.html index d868da8b..e1de7654 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.EnumUtils.html +++ b/docs/common/Microsoft.Graph.Communications.Common.EnumUtils.html @@ -174,6 +174,7 @@

Declaration

public static TEnum Parse<TEnum>(string value)
+
     where TEnum : struct, IComparable, IFormattable, IConvertible
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.StateMachine-1.html b/docs/common/Microsoft.Graph.Communications.Common.StateMachine-1.html index 70eeaf67..82fde236 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.StateMachine-1.html +++ b/docs/common/Microsoft.Graph.Communications.Common.StateMachine-1.html @@ -118,6 +118,7 @@
Assembly: Microsoft.Graph.Communications.Common.dll
Syntax
public sealed class StateMachine<TStateEnum>
+
     where TStateEnum : struct, IComparable, IFormattable, IConvertible
Type Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Telemetry.LoggingExtensions.html b/docs/common/Microsoft.Graph.Communications.Common.Telemetry.LoggingExtensions.html index bd025b91..edeace42 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Telemetry.LoggingExtensions.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Telemetry.LoggingExtensions.html @@ -759,6 +759,7 @@

Declaration

public static T GetTypedProperty<T>(this LogEvent logEvent)
+
     where T : class
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Transport.GraphHttpClient.html b/docs/common/Microsoft.Graph.Communications.Common.Transport.GraphHttpClient.html index 1dc12fad..440d4875 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Transport.GraphHttpClient.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Transport.GraphHttpClient.html @@ -492,6 +492,7 @@

Declaration

public Task<IGraphResponse> SendAsync<T>(IGraphRequest<T> graphRequest, CancellationToken cancellationToken = default(CancellationToken))
+
     where T : class
Parameters
@@ -553,6 +554,7 @@

Declaration

public Task<IGraphResponse<T2>> SendAsync<T1, T2>(IGraphRequest<T1> graphRequest, CancellationToken cancellationToken = default(CancellationToken))
+
     where T1 : class where T2 : class
Parameters
@@ -621,6 +623,7 @@

Declaration

protected virtual Task<IGraphResponse<T2>> SendHttpRequestAsync<T1, T2>(IGraphRequest<T1> graphRequest, CancellationToken cancellationToken)
+
     where T1 : class where T2 : class
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Transport.HttpResponseMessageExtensions.html b/docs/common/Microsoft.Graph.Communications.Common.Transport.HttpResponseMessageExtensions.html index 3fbf2e85..437979d0 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Transport.HttpResponseMessageExtensions.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Transport.HttpResponseMessageExtensions.html @@ -266,6 +266,7 @@

Declaration

public static Task<IGraphResponse<T>> ToGraphResponseAsync<T>(this HttpResponseMessage httpResponse, JsonSerializerSettings serializerSettings = null)
+
     where T : class
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Transport.IGraphClient.html b/docs/common/Microsoft.Graph.Communications.Common.Transport.IGraphClient.html index af198c0e..453dab45 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Transport.IGraphClient.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Transport.IGraphClient.html @@ -155,6 +155,7 @@

Declaration

Task<IGraphResponse> SendAsync<TRequest>(IGraphRequest<TRequest> request, CancellationToken cancellationToken = default(CancellationToken))
+
     where TRequest : class
Parameters
@@ -221,6 +222,7 @@

Declaration

Task<IGraphResponse<TResponse>> SendAsync<TRequest, TResponse>(IGraphRequest<TRequest> request, CancellationToken cancellationToken = default(CancellationToken))
+
     where TRequest : class where TResponse : class
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Utilities.html b/docs/common/Microsoft.Graph.Communications.Common.Utilities.html index 5eb49f08..d0a28a05 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Utilities.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Utilities.html @@ -276,6 +276,7 @@

Declaration

public static void SafeDispose<T>(ref T t, IGraphLogger logger = null)
+
     where T : class, IDisposable
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.Validator.html b/docs/common/Microsoft.Graph.Communications.Common.Validator.html index 6e9692ae..e5e2a53e 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.Validator.html +++ b/docs/common/Microsoft.Graph.Communications.Common.Validator.html @@ -366,6 +366,7 @@

Declaration

public static T Equals<T, TE>(this T value, T expected, string message = null)
+
     where TE : Exception
Parameters
@@ -536,6 +537,7 @@

Declaration

public static void InRange<T>(this T value, T minValue, T maxValue, string paramName = null)
+
     where T : IComparable<T>
Parameters
@@ -680,6 +682,7 @@

Declaration

public static void IsFalse<T>(this bool condition, string message = null)
+
     where T : Exception
Parameters
@@ -808,6 +811,7 @@

Declaration

public static void IsTrue<T>(this bool condition, string message = null)
+
     where T : Exception
Parameters
@@ -858,6 +862,7 @@

Declaration

public static T NotEmpty<T>(this T obj, string paramName = null, string message = null)
+
     where T : IEnumerable
Parameters
diff --git a/docs/common/Microsoft.Graph.Communications.Common.WeakKey-1.html b/docs/common/Microsoft.Graph.Communications.Common.WeakKey-1.html index 3222ed17..64f48868 100644 --- a/docs/common/Microsoft.Graph.Communications.Common.WeakKey-1.html +++ b/docs/common/Microsoft.Graph.Communications.Common.WeakKey-1.html @@ -117,6 +117,7 @@
Assembly: Microsoft.Graph.Communications.Common.dll
Syntax
public class WeakKey<T>
+
     where T : class
Type Parameters
diff --git a/docs/index.json b/docs/index.json index c50cc993..d281b11b 100644 --- a/docs/index.json +++ b/docs/index.json @@ -1,903 +1,983 @@ { - "calls/index.html": { - "href": "calls/index.html", - "title": "Graph Calling SDK", - "keywords": "Graph Calling SDK The Calling components can be found in the Microsoft.Graph.Communications.Calls namespace. State Management The Graph Calling SDK exposes a different set of APIs to manage states of resources in memory. Bots built using this SDK need to register event handlers for each newly created resource in order to be informed of any changes happening on that resource. The strengths and limitations of each are further explained in the State Management article. Media Session For calls with locally hosted media the ICallCollection has an extended AddAsync method which expects an IMediaSession object. This object contains the IAudioSocket and IVideoSocket composition. The IMediaSession also knows how to construct the MediaConfiguration required by the back end services to enable the AV stream to flow through the call instance. A Media Extension SDK has been added on top of this SDK to support locally hosted media scenarios. To use this extension the ICommunicationsClient must be built with MediaCommunicationsClientBuilderExtensions.SetMediaPlatformSettings . The MediaCommunicationsClientExtensions.CreateMediaSession extension method facilitates the creation of IMediaSession objects. Please see the calls with locally hosted media article for more information on the IMediaSession object. Select a class on the left to dive into the reference docs" + "calls/Microsoft.Graph.Communications.Calls.ParticipantExtensions.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.ParticipantExtensions.html", + "title": "Class ParticipantExtensions", + "keywords": "Class ParticipantExtensions Extensions for the stateful participant resource. Inheritance Object ParticipantExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public static class ParticipantExtensions Methods InviteAsync(IParticipantCollection, IdentitySet, String, String, CancellationToken) Invite a participant into the existing call. Declaration public static Task InviteAsync(this IParticipantCollection participantCollection, IdentitySet identitySet, string replacesCallId = null, string languageId = null, CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description IParticipantCollection participantCollection The participant collection into which a new participant is being invited. Microsoft.Graph.IdentitySet identitySet The identity set of the invited participant. String replacesCallId The replaces call identifier. This is an optional field used for consultative transfer. This is used to bring a participant from an existing call. String languageId The participant preferred language id CancellationToken cancellationToken The cancellation token. Returns Type Description Task The Task that completes after the request has been sent. This does not guarantee that the participant has joined. Any updates on the participant collection will be delivered via notification and can be observed using IParticipantCollection.OnUpdated Exceptions Type Condition ArgumentNullException If Microsoft.Graph.IdentitySet is null." }, - "core/index.html": { - "href": "core/index.html", - "title": "Graph Communications Core SDK", - "keywords": "Graph Communications Core SDK This library contains the common contracts and helpers not present in Microsoft.Graph SDK . The Core components can be found in the Microsoft.Graph namespace. Select a class on the left to dive into the reference docs" + "core_calls/Microsoft.Graph.ParticipantMuteAllRequestBody.html": { + "href": "core_calls/Microsoft.Graph.ParticipantMuteAllRequestBody.html", + "title": "Class ParticipantMuteAllRequestBody", + "keywords": "Class ParticipantMuteAllRequestBody The type ParticipantMuteAllRequestBody. Inheritance Object ParticipantMuteAllRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class ParticipantMuteAllRequestBody Constructors ParticipantMuteAllRequestBody() Declaration public ParticipantMuteAllRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String Participants Gets or sets Participants. Declaration public IEnumerable Participants { get; set; } Property Value Type Description IEnumerable < String >" }, - "calls_media/Microsoft.Graph.Communications.Calls.Media.VideoSendBuffer.html": { - "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.VideoSendBuffer.html", - "title": "Class VideoSendBuffer", - "keywords": "Class VideoSendBuffer Creates a Video Buffer for Send and also implements Dispose Inheritance Object VideoSendBuffer Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public class VideoSendBuffer : VideoMediaBuffer Constructors VideoSendBuffer(Byte[], UInt32, VideoFormat, Int64) Initializes a new instance of the VideoSendBuffer class. Declaration public VideoSendBuffer(byte[] buffer, uint length, VideoFormat format, long timeStamp = 0L) Parameters Type Name Description Byte [] buffer The buffer. UInt32 length The length. VideoFormat format The format. Int64 timeStamp The time stamp. VideoSendBuffer(IntPtr, Int64, VideoFormat, Int64) Initializes a new instance of the VideoSendBuffer class. Declaration public VideoSendBuffer(IntPtr data, long length, VideoFormat videoFormat, long timeStamp = 0L) Parameters Type Name Description IntPtr data The data. Int64 length The length. VideoFormat videoFormat The video format. Int64 timeStamp The time stamp. Methods Dispose(Boolean) Declaration protected override void Dispose(bool disposing) Parameters Type Name Description Boolean disposing" + "core_calls/Microsoft.Graph.ParticipantInviteRequestBody.html": { + "href": "core_calls/Microsoft.Graph.ParticipantInviteRequestBody.html", + "title": "Class ParticipantInviteRequestBody", + "keywords": "Class ParticipantInviteRequestBody The type ParticipantInviteRequestBody. Inheritance Object ParticipantInviteRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class ParticipantInviteRequestBody Constructors ParticipantInviteRequestBody() Declaration public ParticipantInviteRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String Participants Gets or sets Participants. Declaration public IEnumerable Participants { get; set; } Property Value Type Description IEnumerable < InvitationParticipantInfo >" }, - "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.CallData.html": { - "href": "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.CallData.html", - "title": "Class LogProperties.CallData", - "keywords": "Class LogProperties.CallData Call data. Inheritance Object LogProperties.CallData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Client.dll Syntax public class CallData Constructors CallData() Declaration public CallData() Properties CallId Gets or sets the call identifier. Declaration public string CallId { get; set; } Property Value Type Description String TenantId Gets or sets the tenant identifier. Declaration public string TenantId { get; set; } Property Value Type Description String" + "core_calls/Microsoft.Graph.MeetingCapability.html": { + "href": "core_calls/Microsoft.Graph.MeetingCapability.html", + "title": "Class MeetingCapability", + "keywords": "Class MeetingCapability The type MeetingCapability. Inheritance Object MeetingCapability Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class MeetingCapability Constructors MeetingCapability() Declaration public MeetingCapability() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > AllowAnonymousUsersToDialOut Gets or sets allowAnonymousUsersToDialOut. Declaration public bool? AllowAnonymousUsersToDialOut { get; set; } Property Value Type Description Nullable < Boolean > AllowAnonymousUsersToStartMeeting Gets or sets allowAnonymousUsersToStartMeeting. Declaration public bool? AllowAnonymousUsersToStartMeeting { get; set; } Property Value Type Description Nullable < Boolean > AutoAdmittedUsers Gets or sets autoAdmittedUsers. Declaration public AutoAdmittedUsersType? AutoAdmittedUsers { get; set; } Property Value Type Description Nullable < AutoAdmittedUsersType > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String" }, - "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.ChatData.html": { - "href": "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.ChatData.html", - "title": "Class LogProperties.ChatData", - "keywords": "Class LogProperties.ChatData Chat data. Inheritance Object LogProperties.ChatData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Client.dll Syntax public class ChatData Constructors ChatData() Declaration public ChatData() Properties ChatId Gets or sets the chat identifier. Declaration public string ChatId { get; set; } Property Value Type Description String TenantId Gets or sets the tenant identifier. Declaration public string TenantId { get; set; } Property Value Type Description String" + "core_calls/Microsoft.Graph.MediaStream.html": { + "href": "core_calls/Microsoft.Graph.MediaStream.html", + "title": "Class MediaStream", + "keywords": "Class MediaStream The type MediaStream. Inheritance Object MediaStream Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class MediaStream Constructors MediaStream() Declaration public MediaStream() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Direction Gets or sets direction. Declaration public MediaDirection? Direction { get; set; } Property Value Type Description Nullable < MediaDirection > Label Gets or sets label. Declaration public string Label { get; set; } Property Value Type Description String MediaType Gets or sets mediaType. Declaration public Modality? MediaType { get; set; } Property Value Type Description Nullable < Modality > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String ServerMuted Gets or sets serverMuted. Declaration public bool? ServerMuted { get; set; } Property Value Type Description Nullable < Boolean > SourceId Gets or sets sourceId. Declaration public string SourceId { get; set; } Property Value Type Description String" }, - "articles/calls/calling-notifications.html": { - "href": "articles/calls/calling-notifications.html", - "title": "Notifications in Calling", - "keywords": "Notifications in Calling Important: APIs for Calling in Microsoft Graph are in preview and are subject to change. Use of these APIs in production applications is not supported. Refer to Registering a Calling Bot on how to register the callback URL. This callback is used for all incoming calls to the application. Protocol determination The incoming notification is provided in legacy format for compatibility with the previous protocol . In order to convert the call to the Microsoft Graph protocol, the bot must determine the notification is in legacy format and reply with: HTTP/1.1 204 No Content The application will again receive the notification but this time it will be in the Microsoft Graph protocol. You may configure the protocol your application supports and avoid receiving the initial callback in legacy format. The setting is available as a configuration option in the Skype Channel. Redirects for region affinity We will invoke your callback from the data-center hosting the call. The call may start in any data-center and does not take into account region affinities. The notification will be sent to your deployment depending on the GeoDNS resolution. If your application determines, by inspecting the initial notification payload or otherwise, that it needs to run in a different deployment, the application may reply with: HTTP/1.1 302 Found Location: your-new-location You may decide to pickup the call and answer . You can specify the callback URL to handle this particular call. This is useful for stateful instances where your call is handled by a particular partition and you want to embed this information on the callback URL for routing to the right instance. Authenticating the callback Application should inspect the token passed by on the notification to validate the request. Whenever the API raises a web hook event, the API gets an OAUTH token from us, with audience as the application's App ID and adds it in the Authorization header as a Bearer token. The application is expected to validate this token before accepting the callback request. POST https://bot.contoso.com/api/calls Content-Type: application/json Authentication: Bearer \"value\": [ \"subscriptionId\": \"2887CEE8344B47C291F1AF628599A93C\", \"subscriptionExpirationDateTime\": \"2016-11-20T18:23:45.9356913Z\", \"changeType\": \"updated\", \"resource\": \"/app/calls/8A934F51F25B4EE19613D4049491857B\", \"resourceData\": { \"@odata.type\": \"#microsoft.graph.call\", \"state\": \"Established\" } ] The OAUTH token would have values like the following, and will be signed by us. The openid configuration published at https://api.aps.skype.com/v1/.well-known/OpenIdConfiguration can be used to verify the token. { \"aud\": \"0efc74f7-41c3-47a4-8775-7259bfef4241\", \"iss\": \"https://api.botframework.com\", \"iat\": 1466741440, \"nbf\": 1466741440, \"exp\": 1466745340, \"tid\": \"1fdd12d0-4620-44ed-baec-459b611f84b2\" } aud audience is the App ID URI specified for the application. tid is the tenant id for contoso iss is the token issuer, https://api.botframework.com The listener interface on the web hook URL can validate the token, ensure it has not expired, checking whether it has been signed by our published openid configuration. You must also check whether audience matches your App ID before accepting the callback request. Sample shows how to validate inbound requests. Important upcoming changes: In future, we are migrating to sending you OAUTH tokens issued by AAD. Hence, you should be ready for the migration and code up to accept both kinds of tokens. The new token would look like following. { \"aud\": \"8A34A46B-3D17-4ADC-8DCE-DC4E7D572698\", \"iss\": \"https://login.microsoftonline.com/b9419818-09af-49c2-b0c3-653adc1f376e/v2.0\", \"iat\": 1466741440, \"nbf\": 1466741440, \"exp\": 1466745340, \"appid\": \"26a18ebc-cdf7-4a6a-91cb-beb352805e81\", \"appidacr\": \"2\", \"oid\": \"2d452913-80c9-4b56-8419-43a7da179822\", \"sub\": \"MF4f-ggWMEji12KynJUNQZphaUTvLcQug5jdF2nl01Q\", \"tid\": \"b9419818-09af-49c2-b0c3-653adc1f376e\", \"ver\": \"2.0\" } aud audience is the App ID specified for the application. tid is the tenant id for contoso iss is the token issuer, https://login.microsoftonline.com/{tenantId}/v2.0 appid is the appid of our service The listener interface on the web hook URL can validate the OAUTH token, ensure it has not expired, checking whether AAD issued and signed the token. You must also check whether audience matches your App ID before accepting the callback request. Additional information You can read more about AAD tokens and Validation" + "core_calls/Microsoft.Graph.MediaInfo.html": { + "href": "core_calls/Microsoft.Graph.MediaInfo.html", + "title": "Class MediaInfo", + "keywords": "Class MediaInfo The type MediaInfo. Inheritance Object MediaInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class MediaInfo Constructors MediaInfo() Declaration public MediaInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String ResourceId Gets or sets resourceId. Declaration public string ResourceId { get; set; } Property Value Type Description String Uri Gets or sets uri. Declaration public string Uri { get; set; } Property Value Type Description String" }, - "articles/calls/IVR.html": { - "href": "articles/calls/IVR.html", - "title": "Interactive Voice Response (IVR)", - "keywords": "Interactive Voice Response (IVR) Graph Calling SDK and Core SDK can be used to make and manage IVR calls. Features Join exiting calls Answer incoming calls Subscribe to tones Transfer call Play media Record Cancel media operations Calling SDK Snippets Join Existing Call and Answer Incoming Call Please refer to the concept articles Redirect and Transfer In order to do a redirect or transfer, you need to create an invitation object. This invitation target is the transferee in blind transfer and the original caller in consultative transfer. var target = new InvitationParticipantInfo { Identity = new IdentitySet { User = new Identity { Id = \"**The Target's AAD ID**\", DisplayName = \"**(optional) The Target's Display Name**\", } } }; ICall call = this.GetIncomingCall(); await call.RedirectAsync(new[] { target }).ConfigureAwait(false); Blind transfer To make a blind transfer, only the target needs to be specified. ICall oritinalCall = this.Client.Calls[\"*call id to transfer*\"]; await oritinalCall.TransferAsync(target).ConfigureAwait(false); Consultative transfer ICall newCall = this.Client.Calls[\"*call id of second call*\"]; await newCall.TransferAsync(target, \"*id of the original call*\").ConfigureAwait(false); Subscribe to tones ICall call = this.Client.Calls[\"*id of the call*\"]; await call.SubscribeToToneAsync().ConfigureAwait(false); Any tones that are received are sent as part of a call update in ToneInfo property of the call resource. Play media prompts ICall call = this.Client.Calls[\"*id of the call*\"]; await call.PlayPromptAsync(*A list of media prompts to play*).ConfigureAwait(false); Record ICall call = this.Client.Calls[\"*id of the call*\"]; HttpClient httpClient = this.HttpClient; RecordOperationResult result = await call.RecordAsync(*record options*).ConfigureAwait(false); string location = result.RecordResourceLocation; string token = result.RecordResourceAccessToken; // Stream the content of the recording somewhere. using (var outputStream = new MemoryStream()) using (var request = new HttpRequestMessage(HttpMethod.Get, new Uri(location))) { // Set the authorization header. request.Headers.Authorization = new AuthenticationHeaderValue(\"Bearer\", token); using(var response = await httpClient.SendAsync(request).ConfigureAwait(false)) using(var content = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) { await content.CopyToAsync(outputStream); outputStream?.Seek(0, SeekOrigin.Begin); // Do something with stream. } } Cancel media processing This API will cancel all prompts that are queued to be played. ICall call = this.Client.Calls[\"*id of the call*\"]; await call.CancelMediaProcessingAsync().ConfigureAwait(false);" + "core_calls/Microsoft.Graph.MediaDirection.html": { + "href": "core_calls/Microsoft.Graph.MediaDirection.html", + "title": "Enum MediaDirection", + "keywords": "Enum MediaDirection The enum MediaDirection. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum MediaDirection Fields Name Description Inactive Inactive ReceiveOnly Receive Only SendOnly Send Only SendReceive Send Receive" }, - "articles/calls/MultipleAppSupport.html": { - "href": "articles/calls/MultipleAppSupport.html", - "title": "Supporting Multiple Applications Within Single Code Base", - "keywords": "Supporting Multiple Applications Within Single Code Base Some developers may wish to support multiple applications from within the same application code. With very little effort, this can be done using multiple instances of ICommunicationsClient . There are some steps that should be taken to ensure that we make outbound requests with the right application, and we forward incoming notifications to the right application. This writeup will demonstrate how to alter the existing samples to add multiple application support. We have not created a sample of this scenario explicitly given that it is not a standard way to use the Graph SDK. Create multiple communications clients First, each application instance requires it's own ICommunicationsClient instance, given that it supports a single IRequestAuthenticationProvider Let's change the Bot ICommunicationsClient Client to an IDictionary Clients and create our clients. /// /// Prevents a default instance of the class from being created. /// private Bot() { this.AddClient( Service.Instance.Configuration.MicrosoftAppId, Service.Instance.Configuration.MicrosoftAppPassword); this.AddClient( Service.Instance.Configuration.MicrosoftApp2Id, Service.Instance.Configuration.MicrosoftApp2Password); } private void AddClient(string appId, string appSecret) { // Create a unique notification uri for first app instance // This appends the app id to the callback uri so we get // https://base.uri/callbacks/{appId} var notificationUri = new Uri( Service.Instance.Configuration.CallControlBaseUrl, appId); var builder = new CommunicationsClientBuilder(\"AudioVideoPlaybackBot\", appId); builder .SetAuthenticationProvider( new AuthenticationProvider( appId, appSecret, Service.Instance.Configuration.TokenAudienceResourceLink)) .SetNotificationUrl(notificationUri) .SetMediaPlatformSettings(Service.Instance.Configuration.MediaPlatformSettings) .SetServiceBaseUrl(Service.Instance.Configuration.PlaceCallEndpointUrl); var client = builder.Build(); this.Clients.Add(appId, client); client.Calls().OnIncoming += this.CallsOnIncoming; client.Calls().OnUpdated += this.CallsOnUpdated; } /// /// Gets the contained app clients /// public IDictionary Clients { get; } Let's also add a reference to the ICallCollection to the call handler for ease of access. This will allow us to reference the correct collection/client from any given call id. /// /// Initializes a new instance of the class. /// /// The call collection. /// The call. public CallHandler(ICallCollection callCollection, ICall call); /// /// Gets the call collection /// public ICallCollection CallCollection { get; } /// /// Gets the call /// public ICall Call { get; } Handle notifications Next we need to adjust the incoming call controller to forward the notifications to the right client. If there is no need to handle incoming call, then the above configuration will automatically route the the correct apps endpoint. If we need to handle incoming call, we can either have a default app process all those scenarios, or the callback URI of each app can contain the app id. For example, if our service URI is https://base.uri/callback , we can set all our bots to use this URI directly, but then we lose knowledge of which app is receiving the incoming call. If we change each app's callback URI to https://base.uri/callback/{appId} (example: https://base.uri/callback/9ecd52e5-6592-42b7-b562-093f37f13bde , where the appId is 9ecd52e5-6592-42b7-b562-093f37f13bde) then we have the app context when an incoming call occurs. Of course there are other ways to get the app ID, like from the auth token or the payload, but this is one simple option. To handle the app id in the URI the controllers for callbacks need to be changed to the following: /// /// Gets a reference to singleton sample bot/client instance /// private IDictionary Clients => Bot.Instance.Clients; /// /// Handle a callback for an incoming call. /// Here we don't know what application is receiving the callback. /// /// /// The . /// [HttpPost] [Route(\"\")] public Task OnIncomingRequestAsync() { // Pick some app id to handle this call. var appId = this.Clients.Keys.First(); return this.OnIncomingRequestAsync(appId); } /// /// Handle a callback for an incoming call or notification. /// Here we've added the application id to the callback URI. /// /// /// The . /// [HttpPost] [Route(\"{appId}\")] public async Task OnIncomingRequestAsync(string appId) { Log.Info(new CallerInfo(), LogContext.FrontEnd, $\"Received HTTP {this.Request.Method}, {this.Request.RequestUri}\"); // Pass the incoming message to the sdk. The sdk takes care of what to do with it. var client = this.Clients[appId]; var response = await client.ProcessNotificationAsync(this.Request).ConfigureAwait(false); // Enforce the connection close to ensure that requests are evenly load balanced so // calls do no stick to one instance of the worker role. response.Headers.ConnectionClose = true; return response; } Additional notes There are a few items not addressed here. For instance, when a VTC joins a meeting, which app should it use? This has been purposefuly excluded from this guide given that it is unique business logic. Some may want a different bot configuration for each client, others may associate unique permissions to each bot and use depending on action being performed." + "core_calls/Microsoft.Graph.CallUpdateMetadataRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallUpdateMetadataRequestBody.html", + "title": "Class CallUpdateMetadataRequestBody", + "keywords": "Class CallUpdateMetadataRequestBody The type CallUpdateMetadataRequestBody. Inheritance Object CallUpdateMetadataRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallUpdateMetadataRequestBody Constructors CallUpdateMetadataRequestBody() Declaration public CallUpdateMetadataRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String Metadata Gets or sets Metadata. Declaration public string Metadata { get; set; } Property Value Type Description String" }, - "articles/calls/register-calling-bot.html": { - "href": "articles/calls/register-calling-bot.html", - "title": "Registering a calling bot", - "keywords": "Registering a calling bot Important: APIs for Calling in Microsoft Graph are in preview and are subject to change. Use of these APIs in production applications is not supported. In this topic you will learn how to register a new Calling Bot. Register your bot in the Azure Bot Service Complete the following steps: Register a bot through Azure Bot Channel Registration . Once you complete the registration, take a note of the registered config values (Bot Name, Application Id, and Application Secret). You will need these values later in the code samples. Enable the Microsoft Teams channel and enable calling on the Calling tab. Fill in the Webhook (for calling) where you will receive incoming notifications. E.g. https://{your domain}/api/calls . Refer to Connect a bot to channels for more information on how to configure channels. Permissions Add Microsoft Graph permissions for calling to your bot Microsoft Graph exposes granular permissions controlling the access apps have to resources. As a developer, you decide which permissions for Microsoft Graph your app requests. The Microsoft Graph Calling APIs support Application permissions, which are used by apps that run without a signed-in user present; for example, apps that run as background services or bots. Application permissions can only be consented by a tenant administrator. Calling bots and applications have some capabilties that will need tenant administrator consent. Below is a list of those permissions: Permission Display String Description Admin Consent Required Calls.Initiate.All Initiate outgoing 1:1 calls from the app (preview) Allows the app to place outbound calls to a single user and transfer calls to users in your organization's directory, without a signed-in user. Yes Calls.InitiateGroupCall.All Initiate outgoing group calls from the app (preview) Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user. Yes Calls.JoinGroupCall.All Join Group Calls and Meetings as an app (preview) Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined with the privileges of a directory user to meetings in your tenant. Yes Calls.JoinGroupCallasGuest.All Join Group Calls and Meetings as a guest (preview) Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined as a guest to meetings in your tenant. Yes Calls.AccessMedia.All *see below* Access media streams in a call as an app (preview) Allows the app to get direct access to participant media streams in a call, without a signed-in user. Yes Important: You may not use the Microsoft.Graph.Calls.Media API to record or otherwise persist media content from calls or meetings that your bot accesses. Assigning permissions You pre-configure the application permissions your app needs when you register your app. To add permissions from the Azure Bot Registration Portal: From the Settings blade, click Manage . This is the link appearing by the Microsoft App ID . This link will open a window where you can scroll down to add Microsoft Graph Permissions: under Microsoft Graph , choose Add next to Application Permissions and then select the permissions your app requires in the Select Permissions dialog. You can also add permissions by accessing your app through the Microsoft App Registration Portal . Getting administrator consent An administrator can either consent to these permissions using the Azure portal when your app is installed in their organization, or you can provide a sign-up experience in your app through which administrators can consent to the permissions you configured. Once administrator consent is recorded by Azure AD, your app can request tokens without having to request consent again. You can rely on an administrator to grant the permissions your app needs at the Azure portal , but often a better option is to provide a sign-up experience for administrators by using the Azure AD v2.0 /adminconsent endpoint. Please refer to the instructions on constructing an Admin Consent URL for more detail. Note : Constructing the Tenant Admin Consent URL requires a configured Redirect URI/Reply URL in the App Registration Portal . To add reply URLs for your bot, access your bot registration, choose Advanced Options > Edit Application Manifest. Add your Redirect URI to the field replyURLs. Important : Any time you make a change to the configured permissions, you must also repeat the Admin Consent process. Changes made in the app registration portal will not be reflected until consent has been reapplied by the tenant's administrator. Register bot in Microsoft Teams The code samples can be used in combination with a Microsoft Teams App Manifest settings to add the Calling and Video buttons for a 1:1 bot interaction. To develop calling bot, add 'supportsCalling' and 'supportsVideo' boolean properties to the bots section in the app manifest and the bot is all set to receive calls once installed (either to a personal context or a team). App Manifests can be uploaded through the App Studio in the Microsoft Teams client. { \"$schema\": \"https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json\", \"manifestVersion\": \"1.3\", \"version\": \"1.0.0\", \"id\": \"%MICROSOFT-APP-ID%\", \"packageName\": \"com.example.myapp\", \"developer\": { \"name\": \"Publisher Name\", \"websiteUrl\": \"https://website.com/\", \"privacyUrl\": \"https://website.com/privacy\", \"termsOfUseUrl\": \"https://website.com/app-tos\" }, \"name\": { \"short\": \"Name of your app (<=30 chars)\", \"full\": \"Full name of app, if longer than 30 characters\" }, \"description\": { \"short\": \"Short description of your app\", \"full\": \"Full description of your app\" }, \"icons\": { \"outline\": \"%FILENAME-32x32px%\", \"color\": \"%FILENAME-192x192px\" }, \"accentColor\": \"%HEX-COLOR%\", \"bots\": [ { \"botId\": \"%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%\", \"needsChannelSelector\": false, \"isNotificationOnly\": false, \"scopes\": [ \"team\", \"personal\", \"groupchat\" ], \"supportsCalling\": true, \"supportsVideo\": true } ] }" + "calls_media/Microsoft.Graph.Communications.Calls.Media.MediaCallExtensions.html": { + "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.MediaCallExtensions.html", + "title": "Class MediaCallExtensions", + "keywords": "Class MediaCallExtensions Stateful call media extensions Inheritance Object MediaCallExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public static class MediaCallExtensions Methods GetLocalMediaSession(ICall) Gets the local media session for this call object. Declaration public static ILocalMediaSession GetLocalMediaSession(this ICall call) Parameters Type Name Description ICall call The call. Returns Type Description ILocalMediaSession Local media session object Exceptions Type Condition InvalidCastException This call does not have a valid ILocalMediaSession object." }, - "articles/calls/StateManagement.html": { - "href": "articles/calls/StateManagement.html", - "title": "State Management", - "keywords": "State Management All states of resources associated with a Call in the Graph Calling SDK are handled internally in the SDK itself. The notifications and events for a particular ICall or a particular resource contained in ICall are always received on a single application instance. This means that the instance should be maintaining the state of a call in memory and a single ICall object exists throughout the duration of the call. These are called Stateful calls and the bots are called Stateful bots. The notification or events for any call can hit any instance of the application. This means that everytime a notification comes to an instance, a new Call object is created by the Graph Calling Core SDK and is destroyed once the notification/event has been handled. Any state required for the call should be maintained by the bot logic. These type of bots are called Stateless bots signifying that the Graph Calling Core SDK itself does not maintain any state for the bot. Differences Between Stateless and Stateful Bots The major difference between Stateless and Stateful bots is that maintaining Stateful bots requires that the bot instance would not go down when a call is in progress. If the instance goes down, the call object is lost and no notifications or events are received by the Graph Calling SDK and the calls gets dropped by the server. On the contrast, in Stateless bots, even if the bot instance goes down, the events and notifications go to the other instances of the bot and the bot can continue its logic. Important In Application Hosted Media Calls , the media is handled by a single instance of the bot. Therefore, all the notifications should reach the same instance of the bot for signaling of the media to be properly handled. Thus stateless scenarios for Application Hosted Media bots are not supported." + "core_calls/Microsoft.Graph.MeetingType.html": { + "href": "core_calls/Microsoft.Graph.MeetingType.html", + "title": "Enum MeetingType", + "keywords": "Enum MeetingType The enum MeetingType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum MeetingType Fields Name Description MeetNow Meet Now Recurring Recurring Scheduled Scheduled" }, - "bot_media/index.html": { - "href": "bot_media/index.html", - "title": "Graph Communications Bot Media SDK", - "keywords": "Graph Communications Bot Media SDK The Real-time Media Platform enables bots to interact with Microsoft Teams calls and meetings using real-time voice, video and screen sharing. This is an advanced capability which allows the bot to send and receive voice and video content frame by frame. The bot has \"raw\" access to the voice, video and screen sharing media streams. (Bots which process media themselves are called application-hosted media bots, as opposed to simpler service-hosted media bots that rely on the Real-time Media platform for all media processing.) For example, in a 1:1 call with a bot, as the user speaks, the bot will receive 50 audio frames per second, with each frame containing 20 milliseconds (ms) of audio. An application-hosted media bot can perform real-time speech recognition as the audio frames are received, rather than having to wait for a recording after the user has stopped speaking. The bot can also send and receive high-definition-resolution video, including video-based screen sharing content. The platform provides a simple \"socket\"-like API for the bot to send and receive media, and handles the real-time encoding and decoding of audio/video packets, using codecs such as SILK and G.722 for audio and H.264 for video. The platform also handles all media packet encryption/decryption and packet network transmission automatically, so the bot just needs to concern itself with the actual audio/video content. A real-time media bot may participate in 1:1 calls as well as meetings with multiple participants. Select a class on the left to dive into the reference docs" + "core_calls/Microsoft.Graph.MeetingParticipants.html": { + "href": "core_calls/Microsoft.Graph.MeetingParticipants.html", + "title": "Class MeetingParticipants", + "keywords": "Class MeetingParticipants The type MeetingParticipants. Inheritance Object MeetingParticipants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class MeetingParticipants Constructors MeetingParticipants() Declaration public MeetingParticipants() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Attendees Gets or sets attendees. Declaration public IEnumerable Attendees { get; set; } Property Value Type Description IEnumerable < MeetingParticipantInfo > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Organizer Gets or sets organizer. Declaration public MeetingParticipantInfo Organizer { get; set; } Property Value Type Description MeetingParticipantInfo" }, - "common/index.html": { - "href": "common/index.html", - "title": "Graph Common Utilities Documentation", - "keywords": "Graph Common Utilities Documentation This is the documentation for Microsoft.Graph.Communications.Common nuget package. This is the nuget containing all the utilities used throughout the Communications SDK. It contains telemetry, http, obfuscation support along with helper methods. For more information on logging please see the graph logger guide Select a class on the left to dive into the reference docs" + "core_calls/Microsoft.Graph.MeetingParticipantInfo.html": { + "href": "core_calls/Microsoft.Graph.MeetingParticipantInfo.html", + "title": "Class MeetingParticipantInfo", + "keywords": "Class MeetingParticipantInfo The type MeetingParticipantInfo. Inheritance Object MeetingParticipantInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class MeetingParticipantInfo Constructors MeetingParticipantInfo() Declaration public MeetingParticipantInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Identity Gets or sets identity. Declaration public IdentitySet Identity { get; set; } Property Value Type Description Microsoft.Graph.IdentitySet ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Upn Gets or sets upn. Declaration public string Upn { get; set; } Property Value Type Description String" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.HttpTraceType.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpTraceType.html", - "title": "Enum HttpTraceType", - "keywords": "Enum HttpTraceType Trace used for HTTP traces. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum HttpTraceType Fields Name Description HttpRequest The HTTP request type HttpResponse The HTTP response type. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(HttpTraceType, String, String) Validator.Equals(HttpTraceType, String) Validator.NotEquals(HttpTraceType, String, String)" + "core_calls/Microsoft.Graph.EndpointType.html": { + "href": "core_calls/Microsoft.Graph.EndpointType.html", + "title": "Enum EndpointType", + "keywords": "Enum EndpointType The enum EndpointType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum EndpointType Fields Name Description Default Default Voicemail Voicemail" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSocket.html", - "title": "Class AudioSocket", - "keywords": "Class AudioSocket Provides Send and Receive I/O access to an audio stream. Inheritance Object AudioSocket Implements IAudioSocket IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public sealed class AudioSocket : IAudioSocket, IDisposable, IInternalAudioSocket, IInternalSocket Constructors AudioSocket(AudioSocketSettings) Allows the application to send a packet of audio media if the application has configured the AudioSocket to send media. The application should be sending about 50 packets of audio media per second; each buffer containing 20 milliseconds worth of audio content. The application must create a concrete class which derives from the AudioMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration public AudioSocket(AudioSocketSettings settings) Parameters Type Name Description AudioSocketSettings settings Socket settings Methods Dispose() Disposes the object Declaration public void Dispose() Send(AudioMediaBuffer) Allows the application to send a packet of audio media if the application has configured the AudioSocket to send media. Declaration public void Send(AudioMediaBuffer buffer) Parameters Type Name Description AudioMediaBuffer buffer AudioMediaBuffer to send. Events AudioMediaReceived If the application has configured the AudioSocket to receive media, this event is raised each time a packet of audio media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. Declaration public event EventHandler AudioMediaReceived Event Type Type Description EventHandler < AudioMediaReceivedEventArgs > Remarks The application must be able to handle at least 50 incoming audio buffers per second. Events are serialized, so only one event at a time is raised to the app. AudioSendStatusChanged If the application has configured the AudioSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a MediaSendStatusChanged event indicating the SendStatus is Active, such media will be discarded. Declaration public event EventHandler AudioSendStatusChanged Event Type Type Description EventHandler < AudioSendStatusChangedEventArgs > DominantSpeakerChanged This event is raised when there is a change in the dominant speaker in the conference. If there is no dominant speaker in the conference the CurrentDominantSpeaker argument in the event will have the value None (0xFFFFFFFF). Declaration public event EventHandler DominantSpeakerChanged Event Type Type Description EventHandler < DominantSpeakerChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration public event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > ToneReceived This event is raised when the DTMF tone is received. ToneId enum indicates the tone value. Declaration public event EventHandler ToneReceived Event Type Type Description EventHandler < ToneReceivedEventArgs > Implements IAudioSocket System.IDisposable" + "core_calls/Microsoft.Graph.ToneInfo.html": { + "href": "core_calls/Microsoft.Graph.ToneInfo.html", + "title": "Class ToneInfo", + "keywords": "Class ToneInfo The type ToneInfo. Inheritance Object ToneInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class ToneInfo Constructors ToneInfo() Declaration public ToneInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String SequenceId Gets or sets sequenceId. Declaration public long? SequenceId { get; set; } Property Value Type Description Nullable < Int64 > Tone Gets or sets tone. Declaration public Tone? Tone { get; set; } Property Value Type Description Nullable < Tone >" }, - "bot_media/Microsoft.Skype.Bots.Media.DataSendStatusChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataSendStatusChangedEventArgs.html", - "title": "Class DataSendStatusChangedEventArgs", - "keywords": "Class DataSendStatusChangedEventArgs Reserved for the internal use. Inheritance Object EventArgs DataSendStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DataSendStatusChangedEventArgs : EventArgs Constructors DataSendStatusChangedEventArgs() Declaration public DataSendStatusChangedEventArgs() Properties MediaSendStatus Reserved for the internal use. Declaration public MediaSendStatus MediaSendStatus { get; set; } Property Value Type Description MediaSendStatus" + "core_calls/Microsoft.Graph.Tone.html": { + "href": "core_calls/Microsoft.Graph.Tone.html", + "title": "Enum Tone", + "keywords": "Enum Tone The enum Tone. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum Tone Fields Name Description A A B B C C D D Flash Flash Pound Pound Star Star Tone0 Tone0 Tone1 Tone1 Tone2 Tone2 Tone3 Tone3 Tone4 Tone4 Tone5 Tone5 Tone6 Tone6 Tone7 Tone7 Tone8 Tone8 Tone9 Tone9" }, - "bot_media/Microsoft.Skype.Bots.Media.HostingEnvironmentConfiguration.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.HostingEnvironmentConfiguration.html", - "title": "Enum HostingEnvironmentConfiguration", - "keywords": "Enum HostingEnvironmentConfiguration HostingEnvironmentConfiguration to use for the MediaPlatform. In most cases, the default value is correct. Only in Azure Government clouds do different settings need to be applied. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum HostingEnvironmentConfiguration Fields Name Description AzureGovernment Configuration specifically for hosting the platform in the Azure Government Cloud. AzureGovernmentDoD Configuration specificially for hosting the platform in the Azure Government DoD cloud. Default The default HostingEnvironmentConfiguration for the platform." + "core_calls/Microsoft.Graph.PlayPromptCompletionReason.html": { + "href": "core_calls/Microsoft.Graph.PlayPromptCompletionReason.html", + "title": "Enum PlayPromptCompletionReason", + "keywords": "Enum PlayPromptCompletionReason The enum PlayPromptCompletionReason. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum PlayPromptCompletionReason Fields Name Description CompletedSuccessfully Completed Successfully MediaOperationCanceled Media Operation Canceled Unknown Unknown" }, - "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatform.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatform.html", - "title": "Interface IMediaPlatform", - "keywords": "Interface IMediaPlatform Interface to the MediaPlatform. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IMediaPlatform : IDisposable Properties CurrentHealth The current health status of the media platform. Declaration MediaPlatformHealthStatus CurrentHealth { get; } Property Value Type Description MediaPlatformHealthStatus Methods CreateMediaConfiguration(IAudioSocket) Returns a serialized MediaConfiguration object representing the socket so that the Skype calling cloud can establish an audio/video call to the bot. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IDataSocket) Reserved for the internal use. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket, IDataSocket dataSocket) Parameters Type Name Description IAudioSocket audioSocket IDataSocket dataSocket Returns Type Description Newtonsoft.Json.Linq.JObject CreateMediaConfiguration(IAudioSocket, IVideoSocket) Returns a serialized MediaConfiguration object representing the sockets so that the Skype calling cloud can establish an audio/video call to the bot. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket, IVideoSocket videoSocket) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. IVideoSocket videoSocket Socket that handles video. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList) Returns a serialized MediaConfiguration object representing the sockets so that the Skype calling cloud can establish an audio/video call to the bot. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. IList < IVideoSocket > videoSockets Ordered list of video sockets. If multiview sockets are provided, only the first one can have a send direction (ie. send only or send receive) and all the sockets should have a receive direction. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList, IVideoSocket) Returns a serialized MediaConfiguration object representing the sockets so that the Skype calling cloud can establish an audio/video/video-based screen sharing call to the bot. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets, IVideoSocket vbssSocket) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. IList < IVideoSocket > videoSockets Ordered list of video sockets. If multiview sockets are provided, only the first one can have a send direction (ie. send only or send receive) and all the sockets should have a receive direction. IVideoSocket vbssSocket Video socket for the video-based screen sharing (VBSS) modality. Socket must be configured as RecvOnly. Returns Type Description Newtonsoft.Json.Linq.JObject Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized, or a vbssSocket is configured to be sendonly or sendrecv. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList, IVideoSocket, IDataSocket) Reserved for the internal use. Declaration JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets, IVideoSocket vbssSocket, IDataSocket dataSocket) Parameters Type Name Description IAudioSocket audioSocket IList < IVideoSocket > videoSockets IVideoSocket vbssSocket IDataSocket dataSocket Returns Type Description Newtonsoft.Json.Linq.JObject CreateMediaConfiguration(IVideoSocket) Returns a serialized mediaConfiguration object representing the socket so that the Skype calling cloud can establish a video-based screen sharing call to the bot. Declaration JObject CreateMediaConfiguration(IVideoSocket vbssSocket) Parameters Type Name Description IVideoSocket vbssSocket Video socket for the video-based screen sharing (VBSS) modality. Socket must be configured as RecvOnly. Returns Type Description Newtonsoft.Json.Linq.JObject Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized, or a vbssSocket is configured to be sendonly or sendrecv. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. GetCurrentTimestamp() Get a current timestamp, in 100-ns units. To be used when sourcing media buffers. Declaration long GetCurrentTimestamp() Returns Type Description Int64 Initialize(MediaPlatformSettings) Initializes the Media Platform for Bot. Declaration void Initialize(MediaPlatformSettings settings) Parameters Type Name Description MediaPlatformSettings settings Settings to initialize the Bot Media Platform. Events MediaPlatformHealthChanged Raised when there is a change in the media platform's health status. The event arguments report the current and previous platform health conditions. Declaration event EventHandler MediaPlatformHealthChanged Event Type Type Description EventHandler < MediaPlatformHealthChangedEventArgs > Remarks A bot application which may handle very high call volumes or perform complex real-time media processing should monitor this event for changes in the media platform health status. When the event reports the platform health status has become HeavilyLoaded, the application should avoid starting new bot calls on the machine instance until the health status returns back to Normal." + "core_calls/Microsoft.Graph.CallMuteRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallMuteRequestBody.html", + "title": "Class CallMuteRequestBody", + "keywords": "Class CallMuteRequestBody The type CallMuteRequestBody. Inheritance Object CallMuteRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallMuteRequestBody Constructors CallMuteRequestBody() Declaration public CallMuteRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatform.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatform.html", - "title": "Class MediaPlatform", - "keywords": "Class MediaPlatform This class represents the Skype Bots Media Platform. Inheritance Object MediaPlatform Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public static class MediaPlatform Fields DefaultMaxMediaPort The default minimum media port. Declaration public const uint DefaultMaxMediaPort = 65535U Field Value Type Description UInt32 DefaultMinMediaPort The default minimum media port. Declaration public const uint DefaultMinMediaPort = 49152U Field Value Type Description UInt32 MaxNumberOfVideoSocketsPerCall The max number of video sockets that can be passed to the CreateMediaConfiguration API. Declaration public const int MaxNumberOfVideoSocketsPerCall = 10 Field Value Type Description Int32 MinNumberOfCoresRequired The minimum number of cores that the Media Platform requires. Declaration public const int MinNumberOfCoresRequired = 2 Field Value Type Description Int32 Name Name of the Bots Media Platform Declaration public const string Name = \"SkypeBotsMediaPlatform\" Field Value Type Description String Properties CurrentHealth The current health status of the media platform. Declaration public static MediaPlatformHealthStatus CurrentHealth { get; } Property Value Type Description MediaPlatformHealthStatus Methods CreateMediaConfiguration(IAudioSocket) Returns a serialized mediaConfiguration object, containing MP URI and render/source contexts for the audio modality. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IDataSocket) Reserved for the internal use. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket, IDataSocket dataSocket) Parameters Type Name Description IAudioSocket audioSocket IDataSocket dataSocket Returns Type Description Newtonsoft.Json.Linq.JObject CreateMediaConfiguration(IAudioSocket, IVideoSocket) Returns a serialized mediaConfiguration object, containing MP URI and render/source contexts for each modality. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket, IVideoSocket videoSocket) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. IVideoSocket videoSocket Socket that handles video. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList) Returns a serialized mediaConfiguration object, containing MP URI and render/source contexts for each modality. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets) Parameters Type Name Description IAudioSocket audioSocket Socket that handles audio. IList < IVideoSocket > videoSockets Ordered list of video sockets. The order in which the sockets are provided maps to the order of the streams exposed by MediaPaaS (eg. the first video socket in the list will correspond to the first video stream exposed in the list of MediaStreams in MediaPaaS' MediaFlow resource). If multiview sockets are provided, only the first one can have a send direction (ie. send only or send receive) and all the sockets should have a receive direction. Returns Type Description Newtonsoft.Json.Linq.JObject Serialized MediaConfiguration object. Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList, IVideoSocket) Returns a serialized mediaConfiguration object, containing MP URI and render/source contexts for each modality. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets, IVideoSocket vbssSocket) Parameters Type Name Description IAudioSocket audioSocket IList < IVideoSocket > videoSockets Ordered list of video sockets. The order in which the sockets are provided maps to the order of the streams exposed by MediaPaaS (eg. the first video socket in the list will correspond to the first video stream exposed in the list of MediaStreams in MediaPaaS' MediaFlow resource). If multiview sockets are provided, only the first one can have a send direction (ie. send only or send receive) and all the sockets should have a receive direction. IVideoSocket vbssSocket Video socket for the video-based screen sharing (VBSS) modality. Socket must be configured as RecvOnly. Returns Type Description Newtonsoft.Json.Linq.JObject Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized, or a vbssSocket is configured to be sendonly or sendrecv. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. CreateMediaConfiguration(IAudioSocket, IList, IVideoSocket, IDataSocket) Reserved for the internal use. Declaration public static JObject CreateMediaConfiguration(IAudioSocket audioSocket, IList videoSockets, IVideoSocket vbssSocket, IDataSocket dataSocket) Parameters Type Name Description IAudioSocket audioSocket IList < IVideoSocket > videoSockets IVideoSocket vbssSocket IDataSocket dataSocket Returns Type Description Newtonsoft.Json.Linq.JObject CreateMediaConfiguration(IVideoSocket) Returns a serialized mediaConfiguration object, containing MP URI and render/source contexts for each modality. Declaration public static JObject CreateMediaConfiguration(IVideoSocket vbssSocket) Parameters Type Name Description IVideoSocket vbssSocket Video socket for the video-based screen sharing (VBSS) modality. Socket must be configured as RecvOnly. Returns Type Description Newtonsoft.Json.Linq.JObject Exceptions Type Condition ArgumentException A VideoSocket is not configured correctly. InvalidOperationException MediaPlatform is not initialized, or a vbssSocket is configured to be sendonly or sendrecv. SkypeMediaException The media platform is currently overloaded and cannot handle new calls. GetCurrentTimestamp() Get a current timestamp, in 100-ns units. To be used when sourcing media buffers. Declaration public static long GetCurrentTimestamp() Returns Type Description Int64 Initialize(MediaPlatformSettings) Initializes the Media Platform for Bot. Declaration public static void Initialize(MediaPlatformSettings settings) Parameters Type Name Description MediaPlatformSettings settings Settings to initialize the Bot Media Platform. Shutdown() Shuts down the Bot Media Platform. Declaration public static void Shutdown() Events MediaPlatformHealthChanged Raised when there is a change in the media platform's health status. The event arguments report the current and previous platform health conditions. Declaration public static event EventHandler MediaPlatformHealthChanged Event Type Type Description EventHandler < MediaPlatformHealthChangedEventArgs > Remarks A bot application which may handle very high call volumes or perform complex real-time media processing should monitor this event for changes in the media platform health status. When the event reports the platform health status has become HeavilyLoaded, the application should avoid starting new bot calls on the machine instance until the health status returns back to Normal." + "core_calls/Microsoft.Graph.CallDisposition.html": { + "href": "core_calls/Microsoft.Graph.CallDisposition.html", + "title": "Enum CallDisposition", + "keywords": "Enum CallDisposition The enum CallDisposition. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum CallDisposition Fields Name Description Default Default Forward Forward SimultaneousRing Simultaneous Ring" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformInstanceSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformInstanceSettings.html", - "title": "Class MediaPlatformInstanceSettings", - "keywords": "Class MediaPlatformInstanceSettings Class that stores the settings of the Azure instance hosting the Bot Media Platform. Inheritance Object MediaPlatformInstanceSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaPlatformInstanceSettings Constructors MediaPlatformInstanceSettings() Declaration public MediaPlatformInstanceSettings() Properties CertificateThumbprint Thumbprint of a local server certificate to support MTLS authentication of the Media Platform's WCF service endpoint. Declaration public string CertificateThumbprint { get; set; } Property Value Type Description String HostingEnvironmentConfiguration Specifies the HostingEnvironmentConfiguration to use for the MediaPlatform. In most cases, the default value is sufficient. Only in Azure Government clouds do different settings need to be applied. Declaration public HostingEnvironmentConfiguration HostingEnvironmentConfiguration { get; set; } Property Value Type Description HostingEnvironmentConfiguration InstanceInternalPort Provides Instance InputEndpoint internal port. Declaration public int InstanceInternalPort { get; set; } Property Value Type Description Int32 InstancePublicIPAddress Provides Instance-Level Public IP address. Declaration public IPAddress InstancePublicIPAddress { get; set; } Property Value Type Description IPAddress InstancePublicPort Provides Instance InputEndpoint public port. Declaration public int InstancePublicPort { get; set; } Property Value Type Description Int32 MediaPortRange The media port range to be allocated for bot calls. Specifying media ports is optional. Declaration public PortRange MediaPortRange { get; set; } Property Value Type Description PortRange ServiceFqdn The FQDN of the Azure service hosting the Media Platform. Declaration public string ServiceFqdn { get; set; } Property Value Type Description String" + "core_calls/Microsoft.Graph.CallDirection.html": { + "href": "core_calls/Microsoft.Graph.CallDirection.html", + "title": "Enum CallDirection", + "keywords": "Enum CallDirection The enum CallDirection. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum CallDirection Fields Name Description Incoming Incoming Outgoing Outgoing" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioMediaReceivedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioMediaReceivedEventArgs.html", - "title": "Class AudioMediaReceivedEventArgs", - "keywords": "Class AudioMediaReceivedEventArgs Event arguments of an AudioMediaReceived event. Inheritance Object EventArgs AudioMediaReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioMediaReceivedEventArgs : EventArgs Constructors AudioMediaReceivedEventArgs() Declaration public AudioMediaReceivedEventArgs() Properties Buffer The received audio media buffer. Declaration public AudioMediaBuffer Buffer { get; set; } Property Value Type Description AudioMediaBuffer" + "core_calls/Microsoft.Graph.AudioConferencing.html": { + "href": "core_calls/Microsoft.Graph.AudioConferencing.html", + "title": "Class AudioConferencing", + "keywords": "Class AudioConferencing The type AudioConferencing. Inheritance Object AudioConferencing Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class AudioConferencing Constructors AudioConferencing() Declaration public AudioConferencing() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ConferenceId Gets or sets conferenceId. Declaration public string ConferenceId { get; set; } Property Value Type Description String DialinUrl Gets or sets dialinUrl. Declaration public string DialinUrl { get; set; } Property Value Type Description String ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String TollFreeNumber Gets or sets tollFreeNumber. Declaration public string TollFreeNumber { get; set; } Property Value Type Description String TollNumber Gets or sets tollNumber. Declaration public string TollNumber { get; set; } Property Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.DataSocketSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataSocketSettings.html", - "title": "Class DataSocketSettings", - "keywords": "Class DataSocketSettings Reserved for the internal use. Inheritance Object DataSocketSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DataSocketSettings Constructors DataSocketSettings() Reserved for the internal use. Declaration public DataSocketSettings() Properties CallId Reserved for the internal use. Declaration public string CallId { get; set; } Property Value Type Description String ReceiveDataType Reserved for the internal use. Declaration public DataType ReceiveDataType { get; set; } Property Value Type Description DataType SendDataType Reserved for the internal use. Declaration public DataType SendDataType { get; set; } Property Value Type Description DataType StreamDirections Reserved for the internal use. Declaration public StreamDirection StreamDirections { get; set; } Property Value Type Description StreamDirection" + "common/Microsoft.Graph.Communications.Common.HttpConstants.HeaderNames.html": { + "href": "common/Microsoft.Graph.Communications.Common.HttpConstants.HeaderNames.html", + "title": "Class HttpConstants.HeaderNames", + "keywords": "Class HttpConstants.HeaderNames The header names. Inheritance Object HttpConstants.HeaderNames Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HeaderNames Fields Accept The accept header. Declaration public const string Accept = \"Accept\" Field Value Type Description String Authorization The authorization header. Declaration public const string Authorization = \"Authorization\" Field Value Type Description String CacheControl The cache control header. Declaration public const string CacheControl = \"Cache-Control\" Field Value Type Description String CalleeRegion The callee region header. Declaration public const string CalleeRegion = \"X-Microsoft-Skype-Callee-Region\" Field Value Type Description String CallerRegion The caller region header. Declaration public const string CallerRegion = \"X-Microsoft-Skype-Caller-Region\" Field Value Type Description String ChainId The chain identifier header. This header is used to correlate requests to each other within the NGC stack. Declaration public const string ChainId = \"X-Microsoft-Skype-Chain-ID\" Field Value Type Description String ClientRequestId The client request identifier header. This header is used to track individual requests between the client and SF services. Declaration public const string ClientRequestId = \"Client-Request-Id\" Field Value Type Description String Connection The connection header. Declaration public const string Connection = \"Connection\" Field Value Type Description String ContentType The content type header. Declaration public const string ContentType = \"Content-Type\" Field Value Type Description String ContextId The context identifier header. Declaration public const string ContextId = \"ContextId\" Field Value Type Description String Date The date header. Declaration public const string Date = \"Date\" Field Value Type Description String Duration The duration header. Declaration public const string Duration = \"Duration\" Field Value Type Description String GatewayServiceRootHeader the header that graph adds to the proxied request to PMA Declaration public const string GatewayServiceRootHeader = \"x-ms-gateway-serviceRoot\" Field Value Type Description String Host The host header. Declaration public const string Host = \"Host\" Field Value Type Description String Location The location header. Declaration public const string Location = \"Location\" Field Value Type Description String MessageId The message identifier header. This header is used to track individual requests within the NGC stack. Declaration public const string MessageId = \"X-Microsoft-Skype-Message-ID\" Field Value Type Description String MsDiagnostics The microsoft graph diagnostics header. Declaration public const string MsDiagnostics = \"x-ms-ags-diagnostic\" Field Value Type Description String ODataVersion The odata version header. Declaration public const string ODataVersion = \"OData-Version\" Field Value Type Description String OriginalMessageId The original message identifier header. Declaration public const string OriginalMessageId = \"X-Microsoft-Skype-Original-Message-ID\" Field Value Type Description String PmaInstanceUrl The pma instance URL. Used to retarget PSA to a particular PMA instance. Declaration public const string PmaInstanceUrl = \"X-Microsoft-Pma-Instance\" Field Value Type Description String RedirectDu The redirect du. Declaration public const string RedirectDu = \"X-Plat-Redirect-Du\" Field Value Type Description String RedirectRegion The redirect region. Declaration public const string RedirectRegion = \"X-Plat-Redirect-Region\" Field Value Type Description String RequestId The request identifier header. This header is returned by graph to identify the specific request. Declaration public const string RequestId = \"Request-Id\" Field Value Type Description String RoutingTargetRegion The Routing-Target-Region header. Declaration public const string RoutingTargetRegion = \"Routing-Target-Region\" Field Value Type Description String ScenarioId The scenario identifier header. This header is used to correlate requests to each other between client and SF services. Declaration public const string ScenarioId = \"Scenario-Id\" Field Value Type Description String SchedulingServiceTelemetryId Scheduling service telemetry header. This header is used to correlate requests with SS service. Declaration public const string SchedulingServiceTelemetryId = \"X-MS-Skype-MLC-Telemetry-Id\" Field Value Type Description String StrictTransportSecurity The strict transport security header. Declaration public const string StrictTransportSecurity = \"Strict-Transport-Security\" Field Value Type Description String TenantRegion The tenant regoin header. Declaration public const string TenantRegion = \"Tenant-Region\" Field Value Type Description String TransferEncoding The transfer encoding header. Declaration public const string TransferEncoding = \"Transfer-Encoding\" Field Value Type Description String UserAgent The user agent header. Declaration public const string UserAgent = \"User-Agent\" Field Value Type Description String XMsClientUserAgent Client User Agent. This header has the user agent in requests. Used in requests to presence service at the moment. Declaration public const string XMsClientUserAgent = \"X-Ms-Client-User-Agent\" Field Value Type Description String XMsClientVersion Client Version. This header has the client version in requests. Used in requests to presence service at the moment. Declaration public const string XMsClientVersion = \"X-Ms-Client-Version\" Field Value Type Description String XMsCorrelationId CorrelationId. This header is used to correlate requests with presence service at the moment. Declaration public const string XMsCorrelationId = \"X-Ms-Correlation-Id\" Field Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.IDataSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IDataSocket.html", - "title": "Interface IDataSocket", - "keywords": "Interface IDataSocket Reserved for the internal use. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IDataSocket : IDisposable Methods Send(DataMediaBuffer, UInt32[]) Reserved for the internal use. Declaration void Send(DataMediaBuffer buffer, uint[] recipientIds) Parameters Type Name Description DataMediaBuffer buffer UInt32 [] recipientIds Events DataMediaReceived Reserved for the internal use. Declaration event EventHandler DataMediaReceived Event Type Type Description EventHandler < DataMediaReceivedEventArgs > DataSendStatusChanged Reserved for the internal use. Declaration event EventHandler DataSendStatusChanged Event Type Type Description EventHandler < DataSendStatusChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs >" + "core_calls/index.html": { + "href": "core_calls/index.html", + "title": "Graph Communications Core Calls SDK", + "keywords": "Graph Communications Core Calls SDK This library contains the calling contracts not present in Microsoft.Graph SDK but only with Communication APIs. The Core components can be found in the Microsoft.Graph namespace. Select a class on the left to dive into the reference docs" }, - "bot_media/Microsoft.Skype.Bots.Media.LowOnFramesEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.LowOnFramesEventArgs.html", - "title": "Class LowOnFramesEventArgs", - "keywords": "Class LowOnFramesEventArgs LowOnFrames event arguments Inheritance Object EventArgs LowOnFramesEventArgs AudioLowOnFramesEventArgs VideoLowOnFramesEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class LowOnFramesEventArgs : EventArgs Constructors LowOnFramesEventArgs() Declaration public LowOnFramesEventArgs() Properties MediaType MediaType of the low on frame event Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType RemainingMediaLengthInMS Remaining enqueued media length in MS Declaration public int RemainingMediaLengthInMS { get; set; } Property Value Type Description Int32" + "calls_media/index.html": { + "href": "calls_media/index.html", + "title": "Graph Communications Media SDK", + "keywords": "Graph Communications Media SDK The Media components can be found in the Microsoft.Graph.Communications.Calls.Media namespace. More information of utilizing Real-time Media Calling functionality in bots can be found here This is presented as an extension on top of the Graph Calling SDK to provide extra functionalities with Microsoft.Skype.Bots.Media library. IMediaSession The Media SDK provides very light integration with the Microsoft.Skype.Bots.Media library. There are only a few pieces of data that the signaling SDK requires to integrate with the media libraries. As a convenience the Media SDK provides an IMediaSession generator . For greater customization of media libraries developers are welcome to exclude this package and implement their own IMediaSession . Media Requirements The Communications SDK is quite flexible, however, the media library has it's own set of Requirements . Local Testing Local testing of Application Hosted Media scenarios is possible in some environments. Please refer to the testing guide to enable local testing. Select a class on the left to dive into the reference docs" }, - "bot_media/Microsoft.Skype.Bots.Media.ToneReceivedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.ToneReceivedEventArgs.html", - "title": "Class ToneReceivedEventArgs", - "keywords": "Class ToneReceivedEventArgs Event arguments of the ToneReceived event. Inheritance Object EventArgs ToneReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class ToneReceivedEventArgs : EventArgs Constructors ToneReceivedEventArgs() Declaration public ToneReceivedEventArgs() Properties Tone Tone id Declaration public ToneId Tone { get; set; } Property Value Type Description ToneId" + "articles/Testing.html": { + "href": "articles/Testing.html", + "title": "Testing of Bots", + "keywords": "Testing of Bots This document describes how to setup the Graph Calling SDK to run on your localhost, run tests against it against the Graph Platform. Caution Do not use this testing setup for production traffic. Please limit it to debugging your bot locally with test traffic because of security concerns. Prerequisites The testing setup requires ngrok to create tunnels to localhost. Go to ngrok and sign up for a free account. Once you signed up, go to the dashboard and get your authtoken. Create an ngrok configuration file ngrok.yml with the following data authtoken: Tip Free ngrok account does not provide static tunnels. Tunnels change everytime a tunnel is created. So, if using free account, it is recommended to not close ngrok until it's use is completed. Tip Ngrok does not require sign up if you do not use TCP tunnels. Setting up Signaling In order for the platform to talk to your bot, the bot needs to be reached over the internet. So, an ngrok tunnel is created in http mode with an address pointing to a port on your localhost. Add the following lines to your ngrok config tunnels: signaling: addr: proto: http Setting up Application Hosted Media Note This section is only required for Application Hosted Media bots and can be skipped if you do not host media yourself. Application Hosted Media uses certificates and TCP tunnels to properly work. The following steps are required in order for proper media establishment. Ngrok's public TCP endpoints have fixed urls. They are 0.tcp.ngrok.io , 1.tcp.ngrok.io , etc. You should have a dns CNAME entry for your service that points to these urls. In this example, let's say 0.bot.contoso.com is pointing to 0.tcp.ngrok.io , and similarly for other urls. Now you require an SSL certificate for the url you own. To make it easy, use an SSL certificate issued to a wild card domain. In this case, it would be *.bot.contoso.com . This ssl certificate is validated by Media flow so should match your media flow's public url. Note down the thumbprint and install the certificate in your machine certificates. Now, we setup a TCP tunnel to forward the traffic to localhost. Write the following lines into your ngrok config. media: addr: proto: tcp Important Because ngrok's tcp urls can be same for multiple users (just differing in ports), it is possible for a third party to look like your service. This is a security issue. Therefore this document should be followed only for testing and also using a separate domain that is not linked to your production services. Start Ngok Now that ngrok configuration is ready, start it up. Download the ngrok executable and run the following command ngrok.exe start -all -config This would start ngrok and provide you the public urls which provide the tunnels to your localhost. The output looks like the following Forwarding http://signal.ngrok.io -> localhost:12345 Forwarding https://signal.ngrok.io -> localhost:12345 Forwarding tcp://1.tcp.ngrok.io:12332 -> localhost:8445 Here, 12345 is my signaling port, 8445 is the local media port and 12332 is the remote media port exposed by ngrok. Note that we have a forwarding from 1.bot.contoso.com to 1.tcp.ngrok.io . This will be used as the media url for bot. Update Code Once ngrok is up and running, we update the code to use the config we just setup. Update Signaling In the builder, change the NotficationUrl to the signaling url provided by ngrok. clientBuilder.SetNotificationUrl( new Uri(\"https://signal.ngrok.io/notificationEndpoint\")) Important Replace signal with the one provided by ngrok and the NotificationEndpoint with the controller path that receives notification. Important The url in SetNotificationUrl must be HTTPS. Important Your local instance must be listening to http traffic on the signaling port. The requests made by Graph Platform will reach the bot as localhost http traffic when End to End encryption is not setup. Update Media Update your MediaPlatformSettings to the following. var mediaPlatform = new MediaPlatformSettings { ApplicationId = MediaPlatformInstanceSettings = new MediaPlatformInstanceSettings { CertificateThumbprint = , InstanceInternalPort = , InstancePublicPort = , InstancePublicIPAddress = new IPAddress(0x0), ServiceFqdn = , }, } Caution The Certificate Thumbprint provided above should match the Service FQDN. That is why the DNS entries are required. Caveats The free accounts of ngrok do NOT provide End to End encryption. The HTTPS data ends at the ngrok url and the data flows unencrypted from ngrok to localhost. You require paid ngrok account and configuration update to use End to End encryption. See ngrok docs for steps on setting up secure E2E tunnels. Because the bot callback url is dynamic, incoming call scenarios won't work as they are part of bot registration and they are static. One way to fix this is to use a paid ngrok account which provides fixed subdomains to which you can point your bot and the platform." }, - "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters.GraphUriFilters.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters.GraphUriFilters.html", - "title": "Class GraphUriFilters", - "keywords": "Class GraphUriFilters Uri filters to filter PII in graph urls. Inheritance Object GraphUriFilters Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class GraphUriFilters Constructors GraphUriFilters() Declaration public GraphUriFilters() Properties ChatUriFilters Gets the chat URI filters. Declaration public static List ChatUriFilters { get; } Property Value Type Description List < UriFilter > Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "common/Microsoft.Graph.Communications.Common.OData.ODataConfiguration.html": { + "href": "common/Microsoft.Graph.Communications.Common.OData.ODataConfiguration.html", + "title": "Class ODataConfiguration", + "keywords": "Class ODataConfiguration OData Configuration object to be used for different classes. Inheritance Object ODataConfiguration Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.OData Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class ODataConfiguration Constructors ODataConfiguration(Boolean, Assembly[]) Initializes a new instance of the ODataConfiguration class. Declaration public ODataConfiguration(bool addOdataType, params Assembly[] odataAssemblies) Parameters Type Name Description Boolean addOdataType If true, attach the @odata.type property, otherwise only attach this property if it's already present as a first class property. Assembly [] odataAssemblies The OData assemblies. Properties JsonSerializerSettingsForOData Gets json serializer settings for OData. Declaration public JsonSerializerSettings JsonSerializerSettingsForOData { get; } Property Value Type Description Newtonsoft.Json.JsonSerializerSettings Newtonsoft.Json.JsonSerializerSettings for serializing/deserializing OData objects. Methods FillODataJsonSerializerSettings(Boolean, JsonSerializerSettings) Fills the json serializer settings. Declaration public JsonSerializerSettings FillODataJsonSerializerSettings(bool addOdataType, JsonSerializerSettings settings) Parameters Type Name Description Boolean addOdataType If true, attach the @odata.type property to each object, otherwise only attach this property if it's already present. Newtonsoft.Json.JsonSerializerSettings settings The settings. Returns Type Description Newtonsoft.Json.JsonSerializerSettings Serialization settings. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "core/Microsoft.Graph.Communications.Core.Transport.IGraphRequest.html": { - "href": "core/Microsoft.Graph.Communications.Core.Transport.IGraphRequest.html", - "title": "Interface IGraphRequest", - "keywords": "Interface IGraphRequest The request object used by the graph SDK. Namespace : Microsoft.Graph.Communications.Core.Transport Assembly : Microsoft.Graph.Communications.Core.dll Syntax public interface IGraphRequest Properties AdditionalData Gets the additional data. Declaration IDictionary AdditionalData { get; } Property Value Type Description IDictionary < String , Object > Content Gets the content of the request. Declaration string Content { get; } Property Value Type Description String RequestId Gets the request identifier. Declaration Guid RequestId { get; } Property Value Type Description Guid ScenarioId Gets the scenario identitifer. Declaration Guid ScenarioId { get; } Property Value Type Description Guid TenantId Gets the tenant identifier. Declaration string TenantId { get; } Property Value Type Description String Uri Gets the URI location for the request. Declaration Uri Uri { get; } Property Value Type Description Uri" + "core/Microsoft.Graph.Communications.Core.Transport.HttpMessageExtensions.html": { + "href": "core/Microsoft.Graph.Communications.Core.Transport.HttpMessageExtensions.html", + "title": "Class HttpMessageExtensions", + "keywords": "Class HttpMessageExtensions Extensions for http request messages Inheritance Object HttpMessageExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Transport Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class HttpMessageExtensions Methods ConvertToGraphRequestAsync(HttpRequestMessage) Converts to callback request. Declaration public static Task ConvertToGraphRequestAsync(this HttpRequestMessage request) Parameters Type Name Description HttpRequestMessage request The request. Returns Type Description Task < IGraphRequest > The callback request object ConvertToHttpResponseMessage(IGraphResponse) Converts to HTTP response message. Declaration public static HttpResponseMessage ConvertToHttpResponseMessage(this IGraphResponse response) Parameters Type Name Description IGraphResponse response The response. Returns Type Description HttpResponseMessage The http response message TryGetGuid(HttpHeaders, String, out Guid) Tries to get the GUID value for the specifed header. Declaration public static bool TryGetGuid(this HttpHeaders headers, string header, out Guid guid) Parameters Type Name Description HttpHeaders headers The headers collection. String header The header to look at. Guid guid The found guid Returns Type Description Boolean True if the specified header is a valid guid, false otherwise." }, - "core/Microsoft.Graph.Communications.Core.Transport.IGraphResponse.html": { - "href": "core/Microsoft.Graph.Communications.Core.Transport.IGraphResponse.html", - "title": "Interface IGraphResponse", - "keywords": "Interface IGraphResponse The response the SDK returns after processing the request. Namespace : Microsoft.Graph.Communications.Core.Transport Assembly : Microsoft.Graph.Communications.Core.dll Syntax public interface IGraphResponse Properties AdditionalData Gets the additional data. Declaration IDictionary AdditionalData { get; } Property Value Type Description IDictionary < String , Object > Content Gets the content of the response. Declaration string Content { get; } Property Value Type Description String RequestId Gets the request identifier. Declaration Guid RequestId { get; } Property Value Type Description Guid ScenarioId Gets the scenario identifier. Declaration Guid ScenarioId { get; } Property Value Type Description Guid Type Gets the type of the response. Declaration CallbackResponseType Type { get; } Property Value Type Description CallbackResponseType Extension Methods HttpMessageExtensions.ConvertToHttpResponseMessage(IGraphResponse)" + "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.IObfuscationEngine.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.IObfuscationEngine.html", + "title": "Interface IObfuscationEngine", + "keywords": "Interface IObfuscationEngine Obfuscation engine that can obfuscate data. Namespace : Microsoft.Graph.Communications.Common.Telemetry.Obfuscation Assembly : Microsoft.Graph.Communications.Common.dll Syntax public interface IObfuscationEngine Properties Enabled Gets a value indicating whether obfuscation is enabled. Declaration bool Enabled { get; } Property Value Type Description Boolean ObfuscationConfiguration Gets or sets the obfuscation configuration. This is also set when configuration is linked to an obfuscation engine. Declaration ObfuscationConfiguration ObfuscationConfiguration { get; set; } Property Value Type Description ObfuscationConfiguration Methods Obfuscate(Object, ObfuscationTag) Obfuscates the specified payload. Declaration string Obfuscate(object payload, ObfuscationTag obfuscationTag) Parameters Type Name Description Object payload The payload. ObfuscationTag obfuscationTag The obfuscation tag. Returns Type Description String Obfuscated data. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "client/Microsoft.Graph.Communications.Client.GraphModelExtensions.html": { - "href": "client/Microsoft.Graph.Communications.Client.GraphModelExtensions.html", - "title": "Class GraphModelExtensions", - "keywords": "Class GraphModelExtensions Generic graph model extensions. Inheritance Object GraphModelExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Client Assembly : Microsoft.Graph.Communications.Client.dll Syntax public static class GraphModelExtensions Methods FixModel(Object) Fixes the model to match latest protocol. Declaration public static void FixModel(object object) Parameters Type Name Description Object object The object." + "core_calls/Microsoft.Graph.ParticipantMuteRequestBody.html": { + "href": "core_calls/Microsoft.Graph.ParticipantMuteRequestBody.html", + "title": "Class ParticipantMuteRequestBody", + "keywords": "Class ParticipantMuteRequestBody The type ParticipantMuteRequestBody. Inheritance Object ParticipantMuteRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class ParticipantMuteRequestBody Constructors ParticipantMuteRequestBody() Declaration public ParticipantMuteRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String" }, - "client/Microsoft.Graph.Communications.Client.Authentication.RequestValidationResult.html": { - "href": "client/Microsoft.Graph.Communications.Client.Authentication.RequestValidationResult.html", - "title": "Struct RequestValidationResult", - "keywords": "Struct RequestValidationResult The result of the request validation. Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : Microsoft.Graph.Communications.Client.Authentication Assembly : Microsoft.Graph.Communications.Client.dll Syntax public struct RequestValidationResult Fields IsValid Indicates whether the request is valid. Declaration public bool IsValid Field Value Type Description Boolean TenantId The tenant id for the incoming request. Declaration public string TenantId Field Value Type Description String" + "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.html", + "title": "Namespace Microsoft.Graph.Communications.Common.Telemetry.HttpLogging", + "keywords": "Namespace Microsoft.Graph.Communications.Common.Telemetry.HttpLogging Classes HttpLogData The log data for http trace. HttpObfuscationHelpers Static class that provides helper functions for HTTP Logging." }, - "common/Microsoft.Graph.Communications.Common.StateMachine-1.Transition.html": { - "href": "common/Microsoft.Graph.Communications.Common.StateMachine-1.Transition.html", - "title": "Class StateMachine.Transition", - "keywords": "Class StateMachine.Transition Single transition from Source to Targets Inheritance Object StateMachine.Transition Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public sealed class Transition Constructors Transition(TStateEnum, TStateEnum[]) Initializes a new instance of the StateMachine.Transition class. Declaration public Transition(TStateEnum source, params TStateEnum[] targets) Parameters Type Name Description TStateEnum source The source. TStateEnum[] targets The targets. Properties Source Gets the source state. Declaration public TStateEnum Source { get; } Property Value Type Description TStateEnum The source. Targets Gets the target states. Declaration public TStateEnum[] Targets { get; } Property Value Type Description TStateEnum[] The targets. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpObfuscationHelpers.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpObfuscationHelpers.html", + "title": "Class HttpObfuscationHelpers", + "keywords": "Class HttpObfuscationHelpers Static class that provides helper functions for HTTP Logging. Inheritance Object HttpObfuscationHelpers Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.HttpLogging Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HttpObfuscationHelpers Methods GetUrlText(Uri, Boolean, IEnumerable, IObfuscationEngine) Converts the URL to its representation depending on the filters. Declaration public static string GetUrlText(Uri url, bool obfuscationEnabled, IEnumerable uriFilters = null, IObfuscationEngine engine = null) Parameters Type Name Description Uri url The URL. Boolean obfuscationEnabled if set to true [filter pii]. IEnumerable < UriFilter > uriFilters The URI filters. IObfuscationEngine engine Custom obfuscation engine. If null, use (redacted) Returns Type Description String String representation LogHeaderText(ObfuscationConfiguration, IEnumerable>>) Logs the header text. Declaration public static IEnumerable LogHeaderText(this ObfuscationConfiguration configuration, IEnumerable>> headers) Parameters Type Name Description ObfuscationConfiguration configuration The configuration. IEnumerable < KeyValuePair < String , IEnumerable < String >>> headers The headers. Returns Type Description IEnumerable < String > The obfuscated header and value pairs. LogHeaderText(ObfuscationConfiguration, String, IEnumerable) Logs the header text. Declaration public static string LogHeaderText(this ObfuscationConfiguration configuration, string headerName, IEnumerable headerValues) Parameters Type Name Description ObfuscationConfiguration configuration The configuration. String headerName Name of the header. IEnumerable < String > headerValues The header values. Returns Type Description String The obfuscated header and value pair." }, - "common/Microsoft.Graph.Communications.Common.Telemetry.ClientLogEventId.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.ClientLogEventId.html", - "title": "Enum ClientLogEventId", - "keywords": "Enum ClientLogEventId Event ids for client logs Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum ClientLogEventId Fields Name Description ClientHttpTrace The event id for client HTTP trace. ClientTrace The event id for client trace Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(ClientLogEventId, String, String) Validator.Equals(ClientLogEventId, String) Validator.NotEquals(ClientLogEventId, String, String)" + "core_calls/Microsoft.Graph.ScreenSharingRole.html": { + "href": "core_calls/Microsoft.Graph.ScreenSharingRole.html", + "title": "Enum ScreenSharingRole", + "keywords": "Enum ScreenSharingRole The enum ScreenSharingRole. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum ScreenSharingRole Fields Name Description Sharer Sharer Viewer Viewer" + }, + "core_calls/Microsoft.Graph.RoutingType.html": { + "href": "core_calls/Microsoft.Graph.RoutingType.html", + "title": "Enum RoutingType", + "keywords": "Enum RoutingType The enum RoutingType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RoutingType Fields Name Description Forwarded Forwarded Lookup Lookup SelfFork Self Fork" + }, + "core_calls/Microsoft.Graph.RoutingPolicy.html": { + "href": "core_calls/Microsoft.Graph.RoutingPolicy.html", + "title": "Enum RoutingPolicy", + "keywords": "Enum RoutingPolicy The enum RoutingPolicy. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RoutingPolicy Fields Name Description DisableForwarding Disable Forwarding DisableForwardingExceptPhone Disable Forwarding Except Phone NoMissedCall No Missed Call None None PreferSfb Prefer Sfb" + }, + "core_calls/Microsoft.Graph.RoutingMode.html": { + "href": "core_calls/Microsoft.Graph.RoutingMode.html", + "title": "Enum RoutingMode", + "keywords": "Enum RoutingMode The enum RoutingMode. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RoutingMode Fields Name Description Multicast Multicast OneToOne One To One" + }, + "core_calls/Microsoft.Graph.CallUnmuteRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallUnmuteRequestBody.html", + "title": "Class CallUnmuteRequestBody", + "keywords": "Class CallUnmuteRequestBody The type CallUnmuteRequestBody. Inheritance Object CallUnmuteRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallUnmuteRequestBody Constructors CallUnmuteRequestBody() Declaration public CallUnmuteRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String" + }, + "core_calls/Microsoft.Graph.CallSubscribeToToneRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallSubscribeToToneRequestBody.html", + "title": "Class CallSubscribeToToneRequestBody", + "keywords": "Class CallSubscribeToToneRequestBody The type CallSubscribeToToneRequestBody. Inheritance Object CallSubscribeToToneRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallSubscribeToToneRequestBody Constructors CallSubscribeToToneRequestBody() Declaration public CallSubscribeToToneRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String" + }, + "core_calls/Microsoft.Graph.CallRecordRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallRecordRequestBody.html", + "title": "Class CallRecordRequestBody", + "keywords": "Class CallRecordRequestBody The type CallRecordRequestBody. Inheritance Object CallRecordRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallRecordRequestBody Constructors CallRecordRequestBody() Declaration public CallRecordRequestBody() Properties BargeInAllowed Gets or sets BargeInAllowed. Declaration public bool? BargeInAllowed { get; set; } Property Value Type Description Nullable < Boolean > ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String InitialSilenceTimeoutInSeconds Gets or sets InitialSilenceTimeoutInSeconds. Declaration public int? InitialSilenceTimeoutInSeconds { get; set; } Property Value Type Description Nullable < Int32 > MaxRecordDurationInSeconds Gets or sets MaxRecordDurationInSeconds. Declaration public int? MaxRecordDurationInSeconds { get; set; } Property Value Type Description Nullable < Int32 > MaxSilenceTimeoutInSeconds Gets or sets MaxSilenceTimeoutInSeconds. Declaration public int? MaxSilenceTimeoutInSeconds { get; set; } Property Value Type Description Nullable < Int32 > PlayBeep Gets or sets PlayBeep. Declaration public bool? PlayBeep { get; set; } Property Value Type Description Nullable < Boolean > Prompts Gets or sets Prompts. Declaration public IEnumerable Prompts { get; set; } Property Value Type Description IEnumerable < Prompt > StopTones Gets or sets StopTones. Declaration public IEnumerable StopTones { get; set; } Property Value Type Description IEnumerable < String > StreamWhileRecording Gets or sets StreamWhileRecording. Declaration public bool? StreamWhileRecording { get; set; } Property Value Type Description Nullable < Boolean >" + }, + "core_calls/Microsoft.Graph.CallPlayPromptRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallPlayPromptRequestBody.html", + "title": "Class CallPlayPromptRequestBody", + "keywords": "Class CallPlayPromptRequestBody The type CallPlayPromptRequestBody. Inheritance Object CallPlayPromptRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallPlayPromptRequestBody Constructors CallPlayPromptRequestBody() Declaration public CallPlayPromptRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String Prompts Gets or sets Prompts. Declaration public IEnumerable Prompts { get; set; } Property Value Type Description IEnumerable < Prompt >" + }, + "core_calls/Microsoft.Graph.AccessLevel.html": { + "href": "core_calls/Microsoft.Graph.AccessLevel.html", + "title": "Enum AccessLevel", + "keywords": "Enum AccessLevel The enum AccessLevel. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum AccessLevel Fields Name Description Everyone Everyone Invited Invited Locked Locked SameEnterprise Same Enterprise" + }, + "core_calls/Microsoft.Graph.RejectReason.html": { + "href": "core_calls/Microsoft.Graph.RejectReason.html", + "title": "Enum RejectReason", + "keywords": "Enum RejectReason The enum RejectReason. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RejectReason Fields Name Description Busy Busy Forbidden Forbidden None None" + }, + "core_calls/Microsoft.Graph.RecordingStatus.html": { + "href": "core_calls/Microsoft.Graph.RecordingStatus.html", + "title": "Enum RecordingStatus", + "keywords": "Enum RecordingStatus The enum RecordingStatus. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RecordingStatus Fields Name Description NotRecording Not Recording RecordingCapable Recording Capable StartedRecording Started Recording" + }, + "core_calls/Microsoft.Graph.RecordingInfo.html": { + "href": "core_calls/Microsoft.Graph.RecordingInfo.html", + "title": "Class RecordingInfo", + "keywords": "Class RecordingInfo The type RecordingInfo. Inheritance Object RecordingInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class RecordingInfo Constructors RecordingInfo() Declaration public RecordingInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > InitiatedBy Gets or sets initiatedBy. Declaration public ParticipantInfo InitiatedBy { get; set; } Property Value Type Description ParticipantInfo ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Status Gets or sets status. Declaration public RecordingStatus? Status { get; set; } Property Value Type Description Nullable < RecordingStatus >" + }, + "core_calls/Microsoft.Graph.RecordCompletionReason.html": { + "href": "core_calls/Microsoft.Graph.RecordCompletionReason.html", + "title": "Enum RecordCompletionReason", + "keywords": "Enum RecordCompletionReason The enum RecordCompletionReason. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum RecordCompletionReason Fields Name Description InitialSilenceTimeout Initial Silence Timeout MaxRecordDurationReached Max Record Duration Reached MaxSilenceTimeout Max Silence Timeout MediaReceiveTimeout Media Receive Timeout OperationCanceled Operation Canceled PlayBeepFailed Play Beep Failed PlayPromptFailed Play Prompt Failed StopToneDetected Stop Tone Detected UnspecifiedError Unspecified Error" + }, + "core_calls/Microsoft.Graph.CallRejectRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallRejectRequestBody.html", + "title": "Class CallRejectRequestBody", + "keywords": "Class CallRejectRequestBody The type CallRejectRequestBody. Inheritance Object CallRejectRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallRejectRequestBody Constructors CallRejectRequestBody() Declaration public CallRejectRequestBody() Properties Reason Gets or sets Reason. Declaration public RejectReason? Reason { get; set; } Property Value Type Description Nullable < RejectReason >" + }, + "core_calls/Microsoft.Graph.CallRedirectRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallRedirectRequestBody.html", + "title": "Class CallRedirectRequestBody", + "keywords": "Class CallRedirectRequestBody The type CallRedirectRequestBody. Inheritance Object CallRedirectRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallRedirectRequestBody Constructors CallRedirectRequestBody() Declaration public CallRedirectRequestBody() Properties MaskCallee Gets or sets MaskCallee. Declaration public bool? MaskCallee { get; set; } Property Value Type Description Nullable < Boolean > MaskCaller Gets or sets MaskCaller. Declaration public bool? MaskCaller { get; set; } Property Value Type Description Nullable < Boolean > TargetDisposition Gets or sets TargetDisposition. Declaration public CallDisposition? TargetDisposition { get; set; } Property Value Type Description Nullable < CallDisposition > Targets Gets or sets Targets. Declaration public IEnumerable Targets { get; set; } Property Value Type Description IEnumerable < InvitationParticipantInfo > Timeout Gets or sets Timeout. Declaration public int? Timeout { get; set; } Property Value Type Description Nullable < Int32 >" + }, + "core/Microsoft.Graph.Communications.Core.Transport.html": { + "href": "core/Microsoft.Graph.Communications.Core.Transport.html", + "title": "Namespace Microsoft.Graph.Communications.Core.Transport", + "keywords": "Namespace Microsoft.Graph.Communications.Core.Transport Classes HttpMessageExtensions Extensions for http request messages Interfaces IGraphRequest The request object used by the graph SDK. IGraphResponse The response the SDK returns after processing the request. Enums CallbackResponseType Type of responses returned to the bot" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthStatus.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthStatus.html", - "title": "Enum MediaPlatformHealthStatus", - "keywords": "Enum MediaPlatformHealthStatus Health status of the media platform Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaPlatformHealthStatus Fields Name Description HeavilyLoaded The media platform is under heavy load and the application should avoid allowing the current call volume to increase Normal The media platform is operating normally Overloaded The media platform is overloaded and new calls may be rejected" + "core_calls/Microsoft.Graph.AutoAdmittedUsersType.html": { + "href": "core_calls/Microsoft.Graph.AutoAdmittedUsersType.html", + "title": "Enum AutoAdmittedUsersType", + "keywords": "Enum AutoAdmittedUsersType The enum AutoAdmittedUsersType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum AutoAdmittedUsersType Fields Name Description Everyone Everyone EveryoneInCompany Everyone In Company" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaReceiveStatus.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaReceiveStatus.html", - "title": "Enum MediaReceiveStatus", - "keywords": "Enum MediaReceiveStatus Indicates if the VideoSocket is capable of receiving media. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaReceiveStatus Fields Name Description Active Media can be received, video subscription is allowed Inactive Media cannot be received. Video subscription is not allowed" + "core_calls/Microsoft.Graph.Modality.html": { + "href": "core_calls/Microsoft.Graph.Modality.html", + "title": "Enum Modality", + "keywords": "Enum Modality The enum Modality. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum Modality Fields Name Description Audio Audio Data Data Unknown Unknown Video Video VideoBasedScreenSharing Video Based Screen Sharing" }, - "bot_media/Microsoft.Skype.Bots.Media.SkypeMediaException.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.SkypeMediaException.html", - "title": "Class SkypeMediaException", - "keywords": "Class SkypeMediaException Root class for the exceptions that are specific to the Skype Media Bots SDK, ie. exceptions other than the standard .NET Framework exceptions. Inheritance Object Exception SkypeMediaException Implements ISerializable _Exception Inherited Members Exception.GetBaseException() Exception.ToString() Exception.GetObjectData(SerializationInfo, StreamingContext) Exception.GetType() Exception.Message Exception.Data Exception.InnerException Exception.TargetSite Exception.StackTrace Exception.HelpLink Exception.Source Exception.HResult Exception.SerializeObjectState Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class SkypeMediaException : Exception, ISerializable, _Exception Implements System.Runtime.Serialization.ISerializable System.Runtime.InteropServices._Exception" + "core_calls/Microsoft.Graph.ChatInfo.html": { + "href": "core_calls/Microsoft.Graph.ChatInfo.html", + "title": "Class ChatInfo", + "keywords": "Class ChatInfo The type ChatInfo. Inheritance Object ChatInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class ChatInfo Constructors ChatInfo() Declaration public ChatInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > MessageId Gets or sets messageId. Declaration public string MessageId { get; set; } Property Value Type Description String ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String ReplyChainMessageId Gets or sets replyChainMessageId. Declaration public string ReplyChainMessageId { get; set; } Property Value Type Description String ThreadId Gets or sets threadId. Declaration public string ThreadId { get; set; } Property Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoFormat.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoFormat.html", - "title": "Class VideoFormat", - "keywords": "Class VideoFormat VideoFormat Inheritance Object VideoFormat Implements IEquatable < VideoFormat > Inherited Members Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoFormat : IEquatable Fields H264_1280x720_1_875Fps H264 1280x720 1.875fps video format Declaration public static readonly VideoFormat H264_1280x720_1_875Fps Field Value Type Description VideoFormat H264_1280x720_15Fps H264 1280x720 15fps video format Declaration public static readonly VideoFormat H264_1280x720_15Fps Field Value Type Description VideoFormat H264_1280x720_3_75Fps H264 1280x720 3.75fps video format Declaration public static readonly VideoFormat H264_1280x720_3_75Fps Field Value Type Description VideoFormat H264_1280x720_30Fps H264 1280x720 30fps video format Declaration public static readonly VideoFormat H264_1280x720_30Fps Field Value Type Description VideoFormat H264_1280x720_7_5Fps H264 1280x720 7.5fps video format Declaration public static readonly VideoFormat H264_1280x720_7_5Fps Field Value Type Description VideoFormat H264_1920x1080_1_875Fps H264 1920x1080 1.875fps video format Declaration public static readonly VideoFormat H264_1920x1080_1_875Fps Field Value Type Description VideoFormat H264_1920x1080_15Fps H264 1920x1080 15fps video format Declaration public static readonly VideoFormat H264_1920x1080_15Fps Field Value Type Description VideoFormat H264_1920x1080_3_75Fps H264 1920x1080 3.75fps video format Declaration public static readonly VideoFormat H264_1920x1080_3_75Fps Field Value Type Description VideoFormat H264_1920x1080_30Fps H264 1920x1080 30fps video format Declaration public static readonly VideoFormat H264_1920x1080_30Fps Field Value Type Description VideoFormat H264_1920x1080_7_5Fps H264 1920x1080 7.5fps video format Declaration public static readonly VideoFormat H264_1920x1080_7_5Fps Field Value Type Description VideoFormat H264_320x180_1_875Fps H264 320x180 1.875fps video format Declaration public static readonly VideoFormat H264_320x180_1_875Fps Field Value Type Description VideoFormat H264_320x180_15Fps H264 320x180 15fps video format Declaration public static readonly VideoFormat H264_320x180_15Fps Field Value Type Description VideoFormat H264_320x180_3_75Fps H264 320x180 3.75fps video format Declaration public static readonly VideoFormat H264_320x180_3_75Fps Field Value Type Description VideoFormat H264_320x180_7_5Fps H264 320x180 7.5fps video format Declaration public static readonly VideoFormat H264_320x180_7_5Fps Field Value Type Description VideoFormat H264_424x240_15Fps H264 424x240 15fps video format Declaration public static readonly VideoFormat H264_424x240_15Fps Field Value Type Description VideoFormat H264_640x360_15Fps H264 640x360 15fps video format Declaration public static readonly VideoFormat H264_640x360_15Fps Field Value Type Description VideoFormat H264_640x360_30Fps H264 640x360 30fps video format Declaration public static readonly VideoFormat H264_640x360_30Fps Field Value Type Description VideoFormat H264_960x540_30Fps H264 960x540 30fps video format Declaration public static readonly VideoFormat H264_960x540_30Fps Field Value Type Description VideoFormat NV12_1080x1920_30Fps NV12 1080x1920 30fps video format Declaration public static readonly VideoFormat NV12_1080x1920_30Fps Field Value Type Description VideoFormat NV12_1280x720_1_875Fps NV12 1280x720 1.875fps video format Declaration public static readonly VideoFormat NV12_1280x720_1_875Fps Field Value Type Description VideoFormat NV12_1280x720_15Fps NV12 1280x720 15fps video format Declaration public static readonly VideoFormat NV12_1280x720_15Fps Field Value Type Description VideoFormat NV12_1280x720_3_75Fps NV12 1280x720 3.75fps video format Declaration public static readonly VideoFormat NV12_1280x720_3_75Fps Field Value Type Description VideoFormat NV12_1280x720_30Fps NV12 1280x720 30fps video format Declaration public static readonly VideoFormat NV12_1280x720_30Fps Field Value Type Description VideoFormat NV12_1280x720_7_5Fps NV12 1280x720 7.5fps video format Declaration public static readonly VideoFormat NV12_1280x720_7_5Fps Field Value Type Description VideoFormat NV12_180x320_30Fps NV12 180x320 15fps video format Declaration public static readonly VideoFormat NV12_180x320_30Fps Field Value Type Description VideoFormat NV12_1920x1080_1_875Fps NV12 1920x1080 1.875fps video format Declaration public static readonly VideoFormat NV12_1920x1080_1_875Fps Field Value Type Description VideoFormat NV12_1920x1080_15Fps NV12 1920x1080 15fps video format Declaration public static readonly VideoFormat NV12_1920x1080_15Fps Field Value Type Description VideoFormat NV12_1920x1080_3_75Fps NV12 1920x1080 3.75fps video format Declaration public static readonly VideoFormat NV12_1920x1080_3_75Fps Field Value Type Description VideoFormat NV12_1920x1080_30Fps NV12 1920x1080 30fps video format Declaration public static readonly VideoFormat NV12_1920x1080_30Fps Field Value Type Description VideoFormat NV12_1920x1080_7_5Fps NV12 1920x1080 7.5fps video format Declaration public static readonly VideoFormat NV12_1920x1080_7_5Fps Field Value Type Description VideoFormat NV12_240x424_15Fps NV12 240x424 15fps video format Declaration public static readonly VideoFormat NV12_240x424_15Fps Field Value Type Description VideoFormat NV12_270x480_15Fps NV12 270x480 15fps video format Declaration public static readonly VideoFormat NV12_270x480_15Fps Field Value Type Description VideoFormat NV12_320x180_15Fps NV12 320x180 15fps video format Declaration public static readonly VideoFormat NV12_320x180_15Fps Field Value Type Description VideoFormat NV12_360x640_15Fps NV12 360x640 15fps video format Declaration public static readonly VideoFormat NV12_360x640_15Fps Field Value Type Description VideoFormat NV12_360x640_30Fps NV12 360x640 30fps video format Declaration public static readonly VideoFormat NV12_360x640_30Fps Field Value Type Description VideoFormat NV12_424x240_15Fps NV12 424x240 15fps video format Declaration public static readonly VideoFormat NV12_424x240_15Fps Field Value Type Description VideoFormat NV12_480x270_15Fps NV12 480x270 15fps video format Declaration public static readonly VideoFormat NV12_480x270_15Fps Field Value Type Description VideoFormat NV12_480x848_30Fps NV12 480x848 30fps video format Declaration public static readonly VideoFormat NV12_480x848_30Fps Field Value Type Description VideoFormat NV12_540x960_30Fps NV12 540x960 30fps video format Declaration public static readonly VideoFormat NV12_540x960_30Fps Field Value Type Description VideoFormat NV12_640x360_15Fps NV12 640x360 15fps video format Declaration public static readonly VideoFormat NV12_640x360_15Fps Field Value Type Description VideoFormat NV12_640x360_30Fps NV12 640x360 30fps video format Declaration public static readonly VideoFormat NV12_640x360_30Fps Field Value Type Description VideoFormat NV12_720x1280_30Fps NV12 720x1280 30fps video format Declaration public static readonly VideoFormat NV12_720x1280_30Fps Field Value Type Description VideoFormat NV12_848x480_30Fps NV12 848x480 30fps video format Declaration public static readonly VideoFormat NV12_848x480_30Fps Field Value Type Description VideoFormat NV12_960x540_30Fps NV12 960x540 30fps video format Declaration public static readonly VideoFormat NV12_960x540_30Fps Field Value Type Description VideoFormat Rgb24_1080x1920_30Fps Rgb24 1080x1920 30fps video format Declaration public static readonly VideoFormat Rgb24_1080x1920_30Fps Field Value Type Description VideoFormat Rgb24_1280x720_1_875Fps Rgb24 1280x720 1.875fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_1_875Fps Field Value Type Description VideoFormat Rgb24_1280x720_15Fps Rgb24 1280x720 15fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_15Fps Field Value Type Description VideoFormat Rgb24_1280x720_3_75Fps Rgb24 1280x720 3.75fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_3_75Fps Field Value Type Description VideoFormat Rgb24_1280x720_30Fps Rgb24 1280x720 30fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_30Fps Field Value Type Description VideoFormat Rgb24_1280x720_7_5Fps Rgb24 1280x720 7.5fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_7_5Fps Field Value Type Description VideoFormat Rgb24_180x320_30Fps Rgb24 180x320 15fps video format Declaration public static readonly VideoFormat Rgb24_180x320_30Fps Field Value Type Description VideoFormat Rgb24_1920x1080_1_875Fps Rgb24 1920x1080 1.875fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_1_875Fps Field Value Type Description VideoFormat Rgb24_1920x1080_15Fps Rgb24 1920x1080 15fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_15Fps Field Value Type Description VideoFormat Rgb24_1920x1080_3_75Fps Rgb24 1920x1080 3.75fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_3_75Fps Field Value Type Description VideoFormat Rgb24_1920x1080_30Fps Rgb24 1920x1080 30fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_30Fps Field Value Type Description VideoFormat Rgb24_1920x1080_7_5Fps Rgb24 1920x1080 7.5fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_7_5Fps Field Value Type Description VideoFormat Rgb24_240x424_15Fps Rgb24 240x424 15fps video format Declaration public static readonly VideoFormat Rgb24_240x424_15Fps Field Value Type Description VideoFormat Rgb24_270x480_15Fps Rgb24 270x480 15fps video format Declaration public static readonly VideoFormat Rgb24_270x480_15Fps Field Value Type Description VideoFormat Rgb24_320x180_15Fps Rgb24 320x180 15fps video format Declaration public static readonly VideoFormat Rgb24_320x180_15Fps Field Value Type Description VideoFormat Rgb24_360x640_15Fps Rgb24 360x640 15fps video format Declaration public static readonly VideoFormat Rgb24_360x640_15Fps Field Value Type Description VideoFormat Rgb24_360x640_30Fps Rgb24 360x640 30fps video format Declaration public static readonly VideoFormat Rgb24_360x640_30Fps Field Value Type Description VideoFormat Rgb24_424x240_15Fps Rgb24 424x240 15fps video format Declaration public static readonly VideoFormat Rgb24_424x240_15Fps Field Value Type Description VideoFormat Rgb24_480x270_15Fps Rgb24 480x270 15fps video format Declaration public static readonly VideoFormat Rgb24_480x270_15Fps Field Value Type Description VideoFormat Rgb24_480x848_30Fps Rgb24 480x848 30fps video format Declaration public static readonly VideoFormat Rgb24_480x848_30Fps Field Value Type Description VideoFormat Rgb24_540x960_30Fps Rgb24 540x960 30fps video format Declaration public static readonly VideoFormat Rgb24_540x960_30Fps Field Value Type Description VideoFormat Rgb24_640x360_15Fps Rgb24 640x360 15fps video format Declaration public static readonly VideoFormat Rgb24_640x360_15Fps Field Value Type Description VideoFormat Rgb24_640x360_30Fps Rgb24 640x360 30fps video format Declaration public static readonly VideoFormat Rgb24_640x360_30Fps Field Value Type Description VideoFormat Rgb24_720x1280_30Fps Rgb24 720x1280 30fps video format Declaration public static readonly VideoFormat Rgb24_720x1280_30Fps Field Value Type Description VideoFormat Rgb24_848x480_30Fps Rgb24 848x480 30fps video format Declaration public static readonly VideoFormat Rgb24_848x480_30Fps Field Value Type Description VideoFormat Rgb24_960x540_30Fps Rgb24 960x540 30fps video format Declaration public static readonly VideoFormat Rgb24_960x540_30Fps Field Value Type Description VideoFormat Yuy2_1080x1920_30Fps YUY2 1080x1920 30fps video format Declaration public static readonly VideoFormat Yuy2_1080x1920_30Fps Field Value Type Description VideoFormat Yuy2_1280x720_1_875Fps YUY2 1280x720 1.875fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_1_875Fps Field Value Type Description VideoFormat Yuy2_1280x720_15Fps YUY2 1280x720 15fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_15Fps Field Value Type Description VideoFormat Yuy2_1280x720_3_75Fps YUY2 1280x720 3.75fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_3_75Fps Field Value Type Description VideoFormat Yuy2_1280x720_30Fps YUY2 1280x720 30fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_30Fps Field Value Type Description VideoFormat Yuy2_1280x720_7_5Fps YUY2 1280x720 7.5fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_7_5Fps Field Value Type Description VideoFormat Yuy2_180x320_30Fps YUY2 180x320 15fps video format Declaration public static readonly VideoFormat Yuy2_180x320_30Fps Field Value Type Description VideoFormat Yuy2_1920x1080_1_875Fps YUY2 1920x1080 1.875fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_1_875Fps Field Value Type Description VideoFormat Yuy2_1920x1080_15Fps YUY2 1920x1080 15fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_15Fps Field Value Type Description VideoFormat Yuy2_1920x1080_3_75Fps YUY2 1920x1080 3.75fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_3_75Fps Field Value Type Description VideoFormat Yuy2_1920x1080_30Fps YUY2 1920x1080 30fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_30Fps Field Value Type Description VideoFormat Yuy2_1920x1080_7_5Fps YUY2 1920x1080 7.5fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_7_5Fps Field Value Type Description VideoFormat Yuy2_240x424_15Fps YUY2 240x424 15fps video format Declaration public static readonly VideoFormat Yuy2_240x424_15Fps Field Value Type Description VideoFormat Yuy2_270x480_15Fps YUY2 270x480 15fps video format Declaration public static readonly VideoFormat Yuy2_270x480_15Fps Field Value Type Description VideoFormat Yuy2_320x180_15Fps YUY2 320x180 15fps video format Declaration public static readonly VideoFormat Yuy2_320x180_15Fps Field Value Type Description VideoFormat Yuy2_360x640_15Fps YUY2 360x640 15fps video format Declaration public static readonly VideoFormat Yuy2_360x640_15Fps Field Value Type Description VideoFormat Yuy2_360x640_30Fps YUY2 360x640 30fps video format Declaration public static readonly VideoFormat Yuy2_360x640_30Fps Field Value Type Description VideoFormat Yuy2_424x240_15Fps YUY2 424x240 15fps video format Declaration public static readonly VideoFormat Yuy2_424x240_15Fps Field Value Type Description VideoFormat Yuy2_480x270_15Fps YUY2 480x270 15fps video format Declaration public static readonly VideoFormat Yuy2_480x270_15Fps Field Value Type Description VideoFormat Yuy2_480x848_30Fps YUY2 480x848 30fps video format Declaration public static readonly VideoFormat Yuy2_480x848_30Fps Field Value Type Description VideoFormat Yuy2_540x960_30Fps YUY2 540x960 30fps video format Declaration public static readonly VideoFormat Yuy2_540x960_30Fps Field Value Type Description VideoFormat Yuy2_640x360_15Fps YUY2 640x360 15fps video format Declaration public static readonly VideoFormat Yuy2_640x360_15Fps Field Value Type Description VideoFormat Yuy2_640x360_30Fps YUY2 640x360 30fps video format Declaration public static readonly VideoFormat Yuy2_640x360_30Fps Field Value Type Description VideoFormat Yuy2_720x1280_30Fps YUY2 720x1280 30fps video format Declaration public static readonly VideoFormat Yuy2_720x1280_30Fps Field Value Type Description VideoFormat Yuy2_848x480_30Fps YUY2 848x480 30fps video format Declaration public static readonly VideoFormat Yuy2_848x480_30Fps Field Value Type Description VideoFormat Yuy2_960x540_30Fps YUY2 960x540 30fps video format Declaration public static readonly VideoFormat Yuy2_960x540_30Fps Field Value Type Description VideoFormat Properties BitRate Bit rate Declaration public uint BitRate { get; } Property Value Type Description UInt32 FrameRate Frame rate Declaration public float FrameRate { get; } Property Value Type Description Single Height Height Declaration public int Height { get; } Property Value Type Description Int32 VideoColorFormat VideoColorFormat Declaration public VideoColorFormat VideoColorFormat { get; } Property Value Type Description VideoColorFormat Width Width Declaration public int Width { get; } Property Value Type Description Int32 Methods Equals(VideoFormat) Equals to compare videoformat objects Declaration public bool Equals(VideoFormat videoFormat) Parameters Type Name Description VideoFormat videoFormat Returns Type Description Boolean Equals(Object) Overrides base Equals to compare objects Declaration public override bool Equals(object obj) Parameters Type Name Description Object obj Returns Type Description Boolean Overrides Object.Equals(Object) GetHashCode() Custom GetHashCode implementation Declaration public override int GetHashCode() Returns Type Description Int32 Overrides Object.GetHashCode() ToString() Provides video format details by overriding the default ToString(). Declaration public override string ToString() Returns Type Description String Details of VideoFormat. Overrides Object.ToString() Operators Equality(VideoFormat, VideoFormat) Overload == operator to do VideoFormat comparison Declaration public static bool operator ==(VideoFormat a, VideoFormat b) Parameters Type Name Description VideoFormat a VideoFormat b Returns Type Description Boolean Inequality(VideoFormat, VideoFormat) Overload != operator to do VideoFormat comparison Declaration public static bool operator !=(VideoFormat a, VideoFormat b) Parameters Type Name Description VideoFormat a VideoFormat b Returns Type Description Boolean Implements System.IEquatable" + "core_calls/Microsoft.Graph.CallState.html": { + "href": "core_calls/Microsoft.Graph.CallState.html", + "title": "Enum CallState", + "keywords": "Enum CallState The enum CallState. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public enum CallState Fields Name Description Established Established Establishing Establishing Hold Hold Incoming Incoming Redirecting Redirecting Ringing Ringing Terminated Terminated Terminating Terminating TransferAccepted Transfer Accepted Transferring Transferring" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoResolution.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoResolution.html", - "title": "Enum VideoResolution", - "keywords": "Enum VideoResolution Video resolution for vbss and video Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoResolution Fields Name Description HD1080p 1920 X 1080 HD720p 1280 X 720 SD180p 320 X 180 SD240p 424 X 240 SD360p 640 X 360 SD540p 960 X 540" + "core_calls/Microsoft.Graph.CallRoute.html": { + "href": "core_calls/Microsoft.Graph.CallRoute.html", + "title": "Class CallRoute", + "keywords": "Class CallRoute The type CallRoute. Inheritance Object CallRoute Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallRoute Constructors CallRoute() Declaration public CallRoute() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Final Gets or sets final. Declaration public IdentitySet Final { get; set; } Property Value Type Description Microsoft.Graph.IdentitySet ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Original Gets or sets original. Declaration public IdentitySet Original { get; set; } Property Value Type Description Microsoft.Graph.IdentitySet RoutingType Gets or sets routingType. Declaration public RoutingType? RoutingType { get; set; } Property Value Type Description Nullable < RoutingType >" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSendCapability.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSendCapability.html", - "title": "Class VideoSendCapability", - "keywords": "Class VideoSendCapability The Video Send Capability Inheritance Object VideoSendCapability Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSendCapability Constructors VideoSendCapability() Declaration public VideoSendCapability() Properties MaxConcurrentSendStreams Maximum number of concurrent streams that can be sent. Declaration public uint MaxConcurrentSendStreams { get; set; } Property Value Type Description UInt32 SupportedSendVideoFormats The list of video formats the bot supports sending. Declaration public IList SupportedSendVideoFormats { get; set; } Property Value Type Description IList < VideoFormat > Methods ToString() String representation of VideoSendCapability Declaration public override string ToString() Returns Type Description String Overrides Object.ToString()" + "core_calls/Microsoft.Graph.CallChangeScreenSharingRoleRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallChangeScreenSharingRoleRequestBody.html", + "title": "Class CallChangeScreenSharingRoleRequestBody", + "keywords": "Class CallChangeScreenSharingRoleRequestBody The type CallChangeScreenSharingRoleRequestBody. Inheritance Object CallChangeScreenSharingRoleRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallChangeScreenSharingRoleRequestBody Constructors CallChangeScreenSharingRoleRequestBody() Declaration public CallChangeScreenSharingRoleRequestBody() Properties Role Gets or sets Role. Declaration public ScreenSharingRole Role { get; set; } Property Value Type Description ScreenSharingRole" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformSettings.html", - "title": "Class MediaPlatformSettings", - "keywords": "Class MediaPlatformSettings Class that stores settings needed to initialize Bot Media Platform. Inheritance Object MediaPlatformSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaPlatformSettings Constructors MediaPlatformSettings() Declaration public MediaPlatformSettings() Properties ApplicationId String that uniquely identifies the application that initializes the platform. Declaration public string ApplicationId { get; set; } Property Value Type Description String MediaPlatformInstanceSettings The media platform instance settings. Declaration public MediaPlatformInstanceSettings MediaPlatformInstanceSettings { get; set; } Property Value Type Description MediaPlatformInstanceSettings MediaPlatformLogger Optional logger object to receive MediaPlatform traces. Declaration public IMediaPlatformLogger MediaPlatformLogger { get; set; } Property Value Type Description IMediaPlatformLogger RegionAffinity Reserved for the internal use. Declaration public string RegionAffinity { get; set; } Property Value Type Description String" + "core_calls/Microsoft.Graph.CallAnswerRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallAnswerRequestBody.html", + "title": "Class CallAnswerRequestBody", + "keywords": "Class CallAnswerRequestBody The type CallAnswerRequestBody. Inheritance Object CallAnswerRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallAnswerRequestBody Constructors CallAnswerRequestBody() Declaration public CallAnswerRequestBody() Properties AcceptedModalities Gets or sets AcceptedModalities. Declaration public IEnumerable AcceptedModalities { get; set; } Property Value Type Description IEnumerable < Modality > CallbackUri Gets or sets CallbackUri. Declaration public string CallbackUri { get; set; } Property Value Type Description String MediaConfig Gets or sets MediaConfig. Declaration public MediaConfig MediaConfig { get; set; } Property Value Type Description MediaConfig" }, - "bot_media/Microsoft.Skype.Bots.Media.PortRange.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.PortRange.html", - "title": "Class PortRange", - "keywords": "Class PortRange The Port range Inheritance Object PortRange Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class PortRange Constructors PortRange(UInt32, UInt32) The PortRange constructor Declaration public PortRange(uint minPort, uint maxPort) Parameters Type Name Description UInt32 minPort The minimum port. UInt32 maxPort The maximum port. Properties MaxPort The maximum port. Declaration public uint MaxPort { get; } Property Value Type Description UInt32 MinPort The minimum port. Declaration public uint MinPort { get; } Property Value Type Description UInt32" + "core_calls/Microsoft.Graph.CallCancelMediaProcessingRequestBody.html": { + "href": "core_calls/Microsoft.Graph.CallCancelMediaProcessingRequestBody.html", + "title": "Class CallCancelMediaProcessingRequestBody", + "keywords": "Class CallCancelMediaProcessingRequestBody The type CallCancelMediaProcessingRequestBody. Inheritance Object CallCancelMediaProcessingRequestBody Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class CallCancelMediaProcessingRequestBody Constructors CallCancelMediaProcessingRequestBody() Declaration public CallCancelMediaProcessingRequestBody() Properties ClientContext Gets or sets ClientContext. Declaration public string ClientContext { get; set; } Property Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoColorFormat.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoColorFormat.html", - "title": "Enum VideoColorFormat", - "keywords": "Enum VideoColorFormat VideoColorFormat Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoColorFormat Fields Name Description H264 H264 NV12 NV12 Rgb24 RGB24 Yuy2 YUY2" + "README.html": { + "href": "README.html", + "title": "Get started", + "keywords": "Get started Review the documentation to understand the concepts behind using our SDK (which is also used by the samples). Get started quickly with our samples ." }, - "bot_media/Microsoft.Skype.Bots.Media.VideoReceiveStatusChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoReceiveStatusChangedEventArgs.html", - "title": "Class VideoReceiveStatusChangedEventArgs", - "keywords": "Class VideoReceiveStatusChangedEventArgs Event arguments of a VideoReceiveStatusChanged event. Inheritance Object EventArgs VideoReceiveStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoReceiveStatusChangedEventArgs : EventArgs Constructors VideoReceiveStatusChangedEventArgs() Declaration public VideoReceiveStatusChangedEventArgs() Properties MediaReceiveStatus The media receive status. Declaration public MediaReceiveStatus MediaReceiveStatus { get; set; } Property Value Type Description MediaReceiveStatus MediaType MediaType of the video socket raising the event. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId Socket Id associated with the video receive event Declaration public int SocketId { get; set; } Property Value Type Description Int32" + "README.Internal.html": { + "href": "README.Internal.html", + "title": "How to generate docs", + "keywords": "How to generate docs Download and unzip docfx.zip from https://github.com/dotnet/docfx/releases , extract it to a local folder, and add it to PATH so you can run it anywhere. Install Visual STUDIO 2017 Developer tools v15.0 and later After installation, open a X64 Native Tools Command Prompt for VS 2017. Run docfx in the docs folder, this will generate a _site folder Pack the _site folder with the project level README.md that explains how to go through the docs. How to serve the docs Download and unzip docfx.zip from https://github.com/dotnet/docfx/releases , extract it to a local folder, and add it to PATH so you can run it anywhere. Open a console window and cd to the directory which contains the _site folder Serve the docs site using docfx serve .\\_site command Goto http://localhost:8080 in your browser to view the documentation." }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSocketSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSocketSettings.html", - "title": "Class VideoSocketSettings", - "keywords": "Class VideoSocketSettings The video socket settings. Inheritance Object VideoSocketSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSocketSettings Constructors VideoSocketSettings() Declaration public VideoSocketSettings() Properties CallId An alphanumeric string that uniquely identifies a call. Declaration public string CallId { get; set; } Property Value Type Description String MaxConcurrentSendStreams Maximum number of concurrent streams that can be sent Declaration public uint MaxConcurrentSendStreams { get; set; } Property Value Type Description UInt32 MediaType Specifies the media type of the VideoSocket. Valid types are: MediaType.Video and MediaType.Vbss Declaration public MediaType? MediaType { get; set; } Property Value Type Description Nullable < MediaType > ReceiveColorFormat What color format should received video be delivered in. Currently only NV12 is allowed. Declaration public VideoColorFormat ReceiveColorFormat { get; set; } Property Value Type Description VideoColorFormat StreamDirections The direction of the stream. Declaration public StreamDirection StreamDirections { get; set; } Property Value Type Description StreamDirection SupportedSendVideoFormats The supported video formats the Bot supports sending. Declaration public IList SupportedSendVideoFormats { get; set; } Property Value Type Description IList < VideoFormat >" + "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.html": { + "href": "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.html", + "title": "Class LogProperties", + "keywords": "Class LogProperties The log properties. Inheritance Object LogProperties Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Client.dll Syntax public static class LogProperties Remarks For better logging experience, all property names should be specific enough. Avoid using generic name such as Id, Name, etc." }, - "common/Microsoft.Graph.Communications.Common.Transport.RequestType.html": { - "href": "common/Microsoft.Graph.Communications.Common.Transport.RequestType.html", - "title": "Enum RequestType", - "keywords": "Enum RequestType Type of request that we want to issue on the transport Namespace : Microsoft.Graph.Communications.Common.Transport Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum RequestType Fields Name Description Create Request to create a resource Delete Request to delete a resource Get Request to get a resource Replace Request to replace a resource Update Request to update a resource Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(RequestType, String, String) Validator.Equals(RequestType, String) Validator.NotEquals(RequestType, String, String) GraphRequestExtensions.ToHttpMethod()" + "common/Microsoft.Graph.Communications.Common.JsonUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.JsonUtils.html", + "title": "Class JsonUtils", + "keywords": "Class JsonUtils Json Utils Inheritance Object JsonUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class JsonUtils Fields JsonContentType Json content type Declaration public const string JsonContentType = \"application/json\" Field Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSettings.html", - "title": "Class AudioSettings", - "keywords": "Class AudioSettings Audio frame player settings Inheritance Object AudioSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSettings Constructors AudioSettings(UInt32) Default constructor Declaration public AudioSettings(uint buffersizeInMs) Parameters Type Name Description UInt32 buffersizeInMs Properties BufferSizeInMs Audio buffer length in ms Declaration public uint BufferSizeInMs { get; set; } Property Value Type Description UInt32" + "common/Microsoft.Graph.Communications.Common.HttpConstants.html": { + "href": "common/Microsoft.Graph.Communications.Common.HttpConstants.html", + "title": "Class HttpConstants", + "keywords": "Class HttpConstants The constant values for http. Inheritance Object HttpConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HttpConstants Fields GraphV1Prefixes Expected values of x-ms-gateway-serviceRoot header in the requests coming in to PMA from GraphV1 endpoints Declaration public static readonly IEnumerable GraphV1Prefixes Field Value Type Description IEnumerable < String >" }, - "client/Microsoft.Graph.Communications.Client.Authentication.html": { - "href": "client/Microsoft.Graph.Communications.Client.Authentication.html", - "title": "Namespace Microsoft.Graph.Communications.Client.Authentication", - "keywords": "Namespace Microsoft.Graph.Communications.Client.Authentication Structs RequestValidationResult The result of the request validation. Interfaces IRequestAuthenticationProvider The authentication provider interface. This is used to authenticate Inbound requests from Microsoft Graph. It validates the request was issued by Microsoft Graph. Outbound requests to Microsoft Graph. Tenant token is acquired to provide Microsoft Graph the permissions the bot has been consented by the tenant admin" + "calls/Microsoft.Graph.Communications.Calls.CallCollectionExtensions.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.CallCollectionExtensions.html", + "title": "Class CallCollectionExtensions", + "keywords": "Class CallCollectionExtensions Extensions for call collections. Inheritance Object CallCollectionExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public static class CallCollectionExtensions Methods AddAsync(ICallCollection, JoinMeetingParameters, Guid, CancellationToken) Join a new meeting with the provided parameters Declaration public static Task AddAsync(this ICallCollection callCollection, JoinMeetingParameters parameters, Guid scenarioId = default(Guid), CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description ICallCollection callCollection The call collection. JoinMeetingParameters parameters The join meeting parameters. Guid scenarioId The scenario identitifer. This parameter should be used for tracking scenarios across multiple calls. Automatically generated by the SDK if not provided. CancellationToken cancellationToken The cancellation token. Returns Type Description Task < ICall > The stateful call object once the call is joined." }, - "common/Microsoft.Graph.Communications.Common.Telemetry.MetricLogData.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.MetricLogData.html", - "title": "Class MetricLogData", - "keywords": "Class MetricLogData The metric of Geneva Instrumentation Framework (Ifx). Inheritance Object MetricLogData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class MetricLogData Constructors MetricLogData() Declaration public MetricLogData() Properties AddDefaultDimension Gets or sets a value indicating whether the default dimensions are included. Declaration public bool AddDefaultDimension { get; set; } Property Value Type Description Boolean Dimensions Gets or sets the dimensions. Declaration public Dictionary Dimensions { get; set; } Property Value Type Description Dictionary < String , String > Name Gets or sets the name. Declaration public string Name { get; set; } Property Value Type Description String Namespace Gets or sets the namespace. Declaration public string Namespace { get; set; } Property Value Type Description String RawData Gets or sets the raw data. Declaration public long RawData { get; set; } Property Value Type Description Int64 Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.VideoQualityType.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoQualityType.html", + "title": "Enum VideoQualityType", + "keywords": "Enum VideoQualityType Type of the video media quality Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoQualityType Fields Name Description ReceiveFreeze Video freeze for the received stream" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSettings.html", - "title": "Class VideoSettings", - "keywords": "Class VideoSettings Video Frame player settings Inheritance Object VideoSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSettings Constructors VideoSettings() Declaration public VideoSettings()" + "bot_media/Microsoft.Skype.Bots.Media.VideoMediaStreamQualityChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaStreamQualityChangedEventArgs.html", + "title": "Class VideoMediaStreamQualityChangedEventArgs", + "keywords": "Class VideoMediaStreamQualityChangedEventArgs Event arguments of the video media stream quality event. Inheritance Object EventArgs VideoMediaStreamQualityChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoMediaStreamQualityChangedEventArgs : EventArgs Constructors VideoMediaStreamQualityChangedEventArgs() Declaration public VideoMediaStreamQualityChangedEventArgs() Properties MediaQualityState Indicates the media quality state of the mediaStream quality changed event Declaration public MediaQualityState MediaQualityState { get; set; } Property Value Type Description MediaQualityState SocketId Socket id associated with the event Declaration public int SocketId { get; set; } Property Value Type Description Int32 VideoQualityType Indicates the media quality type of the media stream quality changed event Declaration public VideoQualityType VideoQualityType { get; set; } Property Value Type Description VideoQualityType" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioSendStatusChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSendStatusChangedEventArgs.html", - "title": "Class AudioSendStatusChangedEventArgs", - "keywords": "Class AudioSendStatusChangedEventArgs Event arguments of an AudioSendStatusChanged event. Inheritance Object EventArgs AudioSendStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSendStatusChangedEventArgs : EventArgs Constructors AudioSendStatusChangedEventArgs() Declaration public AudioSendStatusChangedEventArgs() Properties MediaSendStatus Status if socket is ready to send media. Declaration public MediaSendStatus MediaSendStatus { get; set; } Property Value Type Description MediaSendStatus" + "bot_media/Microsoft.Skype.Bots.Media.UnmixedAudioBuffer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.UnmixedAudioBuffer.html", + "title": "Struct UnmixedAudioBuffer", + "keywords": "Struct UnmixedAudioBuffer Represents an unmanaged audio buffer that contains unmixed data corresponding to a specific speaker in a conference. This structure contains a pointer to the unmanaged audio buffer, the length of the buffer and the ID of the audio source of the active speaker. Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public struct UnmixedAudioBuffer Properties ActiveSpeakerId The ID of the audio source of the active speaker. Declaration public uint ActiveSpeakerId { get; } Property Value Type Description UInt32 Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; } Property Value Type Description IntPtr Length The length of data in the media buffer. Declaration public long Length { get; } Property Value Type Description Int64" }, - "bot_media/Microsoft.Skype.Bots.Media.DataSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataSocket.html", - "title": "Class DataSocket", - "keywords": "Class DataSocket Reserved for the internal use. Inheritance Object DataSocket Implements IDataSocket IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public sealed class DataSocket : IDataSocket, IDisposable, IInternalSocket Constructors DataSocket(DataSocketSettings) Reserverd for internal use. Declaration public DataSocket(DataSocketSettings settings) Parameters Type Name Description DataSocketSettings settings Methods Dispose() Reserved for the internal use. Declaration public void Dispose() Send(DataMediaBuffer, UInt32[]) Reserved for the internal use. Declaration public void Send(DataMediaBuffer buffer, uint[] recipientIds) Parameters Type Name Description DataMediaBuffer buffer UInt32 [] recipientIds Events DataMediaReceived Reserved for the internal use. Declaration public event EventHandler DataMediaReceived Event Type Type Description EventHandler < DataMediaReceivedEventArgs > DataSendStatusChanged Reserved for the internal use. Declaration public event EventHandler DataSendStatusChanged Event Type Type Description EventHandler < DataSendStatusChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration public event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Implements IDataSocket System.IDisposable" + "core/Microsoft.Graph.CommsNotifications.html": { + "href": "core/Microsoft.Graph.CommsNotifications.html", + "title": "Class CommsNotifications", + "keywords": "Class CommsNotifications The type CommsNotifications. Inheritance Object CommsNotifications Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class CommsNotifications Constructors CommsNotifications() Declaration public CommsNotifications() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Value Gets or sets value. Declaration public IEnumerable Value { get; set; } Property Value Type Description IEnumerable < CommsNotification >" }, - "calls/Microsoft.Graph.Communications.Calls.IMediaSession.html": { - "href": "calls/Microsoft.Graph.Communications.Calls.IMediaSession.html", - "title": "Interface IMediaSession", - "keywords": "Interface IMediaSession The IMediaSession interface. For local media scenarios, this session object represents the modalities and the media configuration. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public interface IMediaSession : IDisposable Properties MediaSessionId Gets the id of this media session. Declaration Guid MediaSessionId { get; } Property Value Type Description Guid Modalities Gets the supported modalities Declaration Modality[] Modalities { get; } Property Value Type Description Modality [] Methods GetMediaConfiguration() Get the media configuration Declaration JObject GetMediaConfiguration() Returns Type Description Newtonsoft.Json.Linq.JObject A Newtonsoft.Json.Linq.JObject produced by the Media library." + "common/Microsoft.Graph.Communications.Common.Transport.Http.HttpUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.Transport.Http.HttpUtils.html", + "title": "Class HttpUtils", + "keywords": "Class HttpUtils Utilities for Http transport Inheritance Object HttpUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Transport.Http Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HttpUtils Methods GetRequestTypeForHttpMethod(String) Gets the type of the request for the given http method. Declaration public static RequestType GetRequestTypeForHttpMethod(string httpMethod) Parameters Type Name Description String httpMethod The HTTP method. Returns Type Description RequestType RequestType corresponding to the httpMethod Exceptions Type Condition InvalidOperationException Thrown if httpMethod has no corresponding RequestType" }, - "calls/Microsoft.Graph.Communications.Calls.JoinMeetingParameters.html": { - "href": "calls/Microsoft.Graph.Communications.Calls.JoinMeetingParameters.html", - "title": "Class JoinMeetingParameters", - "keywords": "Class JoinMeetingParameters Class to define parameters required for joining a meeting. Inheritance Object JoinMeetingParameters Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class JoinMeetingParameters Constructors JoinMeetingParameters(ChatInfo, MeetingInfo, IMediaSession, Boolean) Initializes a new instance of the JoinMeetingParameters class. Use this constructor for app hosted media. Declaration public JoinMeetingParameters(ChatInfo chatInfo, MeetingInfo meetingInfo, IMediaSession mediaSession, bool removeFromDefaultAudioRoutingGroup = false) Parameters Type Name Description ChatInfo chatInfo The chat information. MeetingInfo meetingInfo The meeting information. IMediaSession mediaSession The media session. Boolean removeFromDefaultAudioRoutingGroup Whether to remove it from the default audio route. JoinMeetingParameters(ChatInfo, MeetingInfo, IEnumerable, IEnumerable, Boolean) Initializes a new instance of the JoinMeetingParameters class. Use this constructor for service hosted media. Declaration public JoinMeetingParameters(ChatInfo chatInfo, MeetingInfo meetingInfo, IEnumerable requestedModalities, IEnumerable prefetchPrompts = null, bool removeFromDefaultAudioRoutingGroup = false) Parameters Type Name Description ChatInfo chatInfo The chat information. MeetingInfo meetingInfo The meeting information. IEnumerable < Modality > requestedModalities The list of modalities for the call IEnumerable < MediaInfo > prefetchPrompts The list of media files to prefetch Boolean removeFromDefaultAudioRoutingGroup Whether to remove it from the default audio route. Properties AdditionalData Gets or sets the additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ChatInfo Gets the chat information. Declaration public ChatInfo ChatInfo { get; } Property Value Type Description ChatInfo CorrelationId Gets or sets the correlation identifier. Declaration [Obsolete(\"Please use AddAsync(JoinMeetingParameters parameters, Guid scenarioId).\")] public Guid CorrelationId { get; set; } Property Value Type Description Guid GuestIdentity Gets or sets the guest identity. Declaration public Identity GuestIdentity { get; set; } Property Value Type Description Microsoft.Graph.Identity MediaSession Gets the media session. Declaration public IMediaSession MediaSession { get; } Property Value Type Description IMediaSession MeetingInfo Gets the meeting information. Declaration public MeetingInfo MeetingInfo { get; } Property Value Type Description MeetingInfo PrefetchPrompts Gets the list of media files to prefetch. Declaration public IEnumerable PrefetchPrompts { get; } Property Value Type Description IEnumerable < MediaInfo > RemoveFromDefaultAudioRoutingGroup Gets or sets a value indicating whether to remove from default audio routing group. Declaration public bool RemoveFromDefaultAudioRoutingGroup { get; set; } Property Value Type Description Boolean RequestedModalities Gets the list of modalities to join the call with. Declaration public IEnumerable RequestedModalities { get; } Property Value Type Description IEnumerable < Modality > Subject Gets or sets the subject. Declaration public string Subject { get; set; } Property Value Type Description String TenantId Gets or sets the tenant id Declaration public string TenantId { get; set; } Property Value Type Description String" + "common/Microsoft.Graph.Communications.Common.TaskExtension.html": { + "href": "common/Microsoft.Graph.Communications.Common.TaskExtension.html", + "title": "Class TaskExtension", + "keywords": "Class TaskExtension Extensions for Task Inheritance Object TaskExtension Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class TaskExtension Methods ExpectExceptionAsync(Task, Type) Except an exception Declaration public static Task ExpectExceptionAsync(this Task task, Type expectedEx) Parameters Type Name Description Task task task Type expectedEx expected exception Returns Type Description Task Task representing completion ExpectExceptionAsync(Task, Type) Except an exception Declaration public static Task ExpectExceptionAsync(this Task task, Type expectedEx) Parameters Type Name Description Task task task Type expectedEx expected exception Returns Type Description Task Task representing completion Type Parameters Name Description T type IgnoreExceptionAsync(Task, Type) Ignore exception Declaration public static Task IgnoreExceptionAsync(this Task task, Type exceptionType) Parameters Type Name Description Task task task Type exceptionType exception type Returns Type Description Task Task representing completion IgnoreExceptionAsync(Task, Type) Ignore exception Declaration public static Task IgnoreExceptionAsync(this Task task, Type exceptionType) Parameters Type Name Description Task task task Type exceptionType exception type Returns Type Description Task Task representing completion Type Parameters Name Description T type" }, - "common/Microsoft.Graph.AdditionalDataExtensions.html": { - "href": "common/Microsoft.Graph.AdditionalDataExtensions.html", - "title": "Class AdditionalDataExtensions", - "keywords": "Class AdditionalDataExtensions The identity set extensions Inheritance Object AdditionalDataExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class AdditionalDataExtensions Methods GetValue(IDictionary, String, T) Gets the object using the key from additional data. Declaration public static T GetValue(this IDictionary additionalData, string key, T default = null) Parameters Type Name Description IDictionary < String , Object > additionalData The additional data. String key The key. T default The default value if value could not be parsed. Returns Type Description T /// The converted value. Type Parameters Name Description T The expected type for the specified key. SetInAdditionalData(Object, String, Object) Sets the object with given key in additional data. Declaration public static void SetInAdditionalData(this object obj, string key, object value) Parameters Type Name Description Object obj The identity. String key The key. Object value The value." + "common/Microsoft.Graph.Communications.Common.StringUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.StringUtils.html", + "title": "Class StringUtils", + "keywords": "Class StringUtils String Utils Inheritance Object StringUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class StringUtils Methods ConvertOrDefault(String, T) Convert string to type or return default Declaration public static T ConvertOrDefault(string value, T defaultValue = null) Parameters Type Name Description String value input value T defaultValue default value Returns Type Description T result of the conversion Type Parameters Name Description T Type of return value EqualsIgnoreCase(String, String) Case insensitive string comparison Declaration public static bool EqualsIgnoreCase(this string valueA, string valueB) Parameters Type Name Description String valueA Input string A String valueB Input string B Returns Type Description Boolean Value indicating whether strings are equal in a case insensitive comparision FromBase64(String) Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array. Declaration public static byte[] FromBase64(this string data) Parameters Type Name Description String data The string to convert. Returns Type Description Byte [] An array of 8-bit unsigned integers. FromBase64Url(String) Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array. Declaration public static byte[] FromBase64Url(this string data) Parameters Type Name Description String data The string to convert. Returns Type Description Byte [] An array of 8-bit unsigned integers. Join(IEnumerable, String) Concatenates the members of a constructed IEnumerable collection of type String , using the specified separator between each member. Declaration public static string Join(this IEnumerable values, string separator) Parameters Type Name Description IEnumerable < String > values A collection that contains the strings to concatenate. String separator The string to use as a separator. separator is included in the returned string only if values has more than one element. Returns Type Description String A string that consists of the members of values delimited by the separator string. If values has no members, the method returns Empty . NamespaceInCamelCase(String) Returns a namespace in camel case. Declaration public static string NamespaceInCamelCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String The namespace string in camel case. NamespaceInPascalCase(String) Returns a namespace in pascal case. Declaration public static string NamespaceInPascalCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String The namespace string in pascal case. SafeFormat(String, Object[]) Format a string with arguments. Declaration public static string SafeFormat(this string text, params object[] args) Parameters Type Name Description String text Format string. Object [] args Optional arguments. Returns Type Description String Formatted string. ToBase64(ArraySegment, Nullable, Nullable) Convert array segment to base 64 representation. Declaration public static string ToBase64(this ArraySegment data, int? offset = default(int? ), int? count = default(int? )) Parameters Type Name Description ArraySegment < Byte > data Data to convert. Nullable < Int32 > offset Optional override offset. Nullable < Int32 > count Optional override count. Returns Type Description String Base 64 encoded string. ToBase64(Byte[]) Convert byte array to base64. Declaration public static string ToBase64(this byte[] data) Parameters Type Name Description Byte [] data The data. Returns Type Description String Base64 representation. ToBase64Url(ArraySegment, Nullable, Nullable) Convert array segment to base 64 URL representation. Declaration public static string ToBase64Url(this ArraySegment data, int? offset = default(int? ), int? count = default(int? )) Parameters Type Name Description ArraySegment < Byte > data Data to convert. Nullable < Int32 > offset Optional override offset. Nullable < Int32 > count Optional override count. Returns Type Description String Base 64 encoded string. ToCamelCase(String) Converts value to camel casing. Declaration public static string ToCamelCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String Returns string in camel case. ToPascalCase(String) Converts value to pascal casing. Declaration public static string ToPascalCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String Returns string in pascal case. TrimEnd(String, String) Remove a substring from the end of a given string. This is called iteratively. Declaration public static string TrimEnd(this string target, string trimString) Parameters Type Name Description String target The target. String trimString The trim string. Returns Type Description String The string after being trimmed. TrimStart(String, String) Remove a substring from the beginning of a given string. This is called iteratively. Declaration public static string TrimStart(this string target, string trimString) Parameters Type Name Description String target The target. String trimString The trim string. Returns Type Description String The string after being trimmed." }, - "common/Microsoft.Graph.Communications.Common.ExceptionUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.ExceptionUtils.html", - "title": "Class ExceptionUtils", - "keywords": "Class ExceptionUtils Exception utilities Inheritance Object ExceptionUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ExceptionUtils Methods FindInnerException(Exception) Find the inner exception that caused the error. Declaration public static Exception FindInnerException(this Exception exception) Parameters Type Name Description Exception exception Top level exception. Returns Type Description Exception Inner exception causing the error. FormatException(Exception, Int32) Format the exception including up to depth inner exceptions. Includes stack trace of the last inner exception (up to depth ). Declaration public static string FormatException(this Exception exception, int depth = 4) Parameters Type Name Description Exception exception Top level exception. Int32 depth The depth of inner exceptions, valid range is [1..4]. 1 means that most top exception will be formatted. Returns Type Description String Formatted exception GetBaseException(Exception) Gets the base exception of an exception. If the exception is an AggregateException, then the inner exceptions are flattened before getting the base exception. Declaration public static Exception GetBaseException(Exception exception) Parameters Type Name Description Exception exception The exception Returns Type Description Exception Whether it's base exception" + "common/Microsoft.Graph.Communications.Common.HighResolutionDateTime.html": { + "href": "common/Microsoft.Graph.Communications.Common.HighResolutionDateTime.html", + "title": "Class HighResolutionDateTime", + "keywords": "Class HighResolutionDateTime High resolution datetime Inheritance Object HighResolutionDateTime Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HighResolutionDateTime Properties IsAvailable Gets a value indicating whether high resolution datetime is available Declaration public static bool IsAvailable { get; } Property Value Type Description Boolean UtcNow Gets UTC now Declaration public static DateTime UtcNow { get; } Property Value Type Description DateTime" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventType.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventType.html", - "title": "Enum LogEventType", - "keywords": "Enum LogEventType Log event type that describes what type of LogEvent this is. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum LogEventType Fields Name Description HttpTrace The event used to track HTTP Calls. Metric The event used to track metrics Trace The event used to track Traces. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(LogEventType, String, String) Validator.Equals(LogEventType, String) Validator.NotEquals(LogEventType, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.VideoMediaReceivedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaReceivedEventArgs.html", + "title": "Class VideoMediaReceivedEventArgs", + "keywords": "Class VideoMediaReceivedEventArgs Event arguments of a VideoMediaReceived event. Inheritance Object EventArgs VideoMediaReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoMediaReceivedEventArgs : EventArgs Constructors VideoMediaReceivedEventArgs() Declaration public VideoMediaReceivedEventArgs() Properties Buffer The received video media buffer. Declaration public VideoMediaBuffer Buffer { get; set; } Property Value Type Description VideoMediaBuffer MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API. It may also be set via the VideoSocketSettings during socket creation. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.LoggingConstants.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LoggingConstants.html", - "title": "Class LoggingConstants", - "keywords": "Class LoggingConstants Constants used for logging that are common between server and client. Inheritance Object LoggingConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class LoggingConstants Fields ActivityTrackingLatencySeconds The activity tracking latency in seconds Declaration public const string ActivityTrackingLatencySeconds = \"ActivityTrackingLatencySeconds\" Field Value Type Description String AppId AppId constant. Declaration public const string AppId = \"AppId\" Field Value Type Description String ChatId Chat Id. Declaration public const string ChatId = \"ChatId\" Field Value Type Description String ChatInactivityTrackingExceedingInterval The chat inactivity tracking that exceeds the expected interval Declaration public const string ChatInactivityTrackingExceedingInterval = \"ChatInactivityTrackingExceedingInterval\" Field Value Type Description String CosmosDBCollection The name of CosmosDB collection Declaration public const string CosmosDBCollection = \"CosmosDBCollection\" Field Value Type Description String CosmosDBRequestCharge The metric name of CosmosDB request charge Declaration public const string CosmosDBRequestCharge = \"CosmosDBRequestCharge\" Field Value Type Description String CosmosDBRequestLatency The metric name of CosmosDB request latency in milliseconds Declaration public const string CosmosDBRequestLatency = \"CosmosDBRequestLatency\" Field Value Type Description String CosmosDBRequestType The CosmosDB request type, read/create/update/upsert/delete/query Declaration public const string CosmosDBRequestType = \"CosmosDBRequestType\" Field Value Type Description String ErrorCode The error code. Declaration public const string ErrorCode = \"ErrorCode\" Field Value Type Description String FailedBridgedMessages Failed bridged messages constant. Declaration public const string FailedBridgedMessages = \"FailedBridgedMessages\" Field Value Type Description String FailedChatInactivityTracking The failed chat inactivity tracking Declaration public const string FailedChatInactivityTracking = \"FailedChatInactivityTracking\" Field Value Type Description String FailedChatInactivityTrackingSum The failed chat inactivity tracking sum Declaration public const string FailedChatInactivityTrackingSum = \"FailedChatInactivityTrackingSum\" Field Value Type Description String FailedChatNotifications The failed chat notifications Declaration public const string FailedChatNotifications = \"FailedChatNotifications\" Field Value Type Description String FailedRoutingCacheRequests The failed routing cache requests. Declaration public const string FailedRoutingCacheRequests = \"FailedRoutingCacheRequests\" Field Value Type Description String HTTPMetrics The namespace of HTTP metrics Declaration public const string HTTPMetrics = \"HTTPMetrics\" Field Value Type Description String InstanceId Instance ID. Declaration public const string InstanceId = \"InstanceId\" Field Value Type Description String JsonSerializationMaxDepth Max depth of json serializer in case the json serializer settings is configured as ReferenceLoopHandling.Serialize Declaration public const int JsonSerializationMaxDepth = 10 Field Value Type Description Int32 Method Method dimension name. Declaration public const string Method = \"Method\" Field Value Type Description String Operation Operation dimension name. Declaration public const string Operation = \"Operation\" Field Value Type Description String OutgoingChatMessageLatency The time taken to send outgoing message. Declaration public const string OutgoingChatMessageLatency = \"OutgoingChatMessageLatency\" Field Value Type Description String PartitionKey Partition Id. Declaration public const string PartitionKey = \"PartitionKey\" Field Value Type Description String Partner Partner dimension name. Declaration public const string Partner = \"Partner\" Field Value Type Description String PropertyDoesNotExist Property does not exist error message Declaration public const string PropertyDoesNotExist = \"Property doesn't exist in LogEvent Properties dictionary.\" Field Value Type Description String ReplaceId The constant pointing to the replace id to be used for Api Path. Declaration public const string ReplaceId = \"\" Field Value Type Description String RequestId The request ID (used to identify request-response pair) Declaration public const string RequestId = \"RequestId\" Field Value Type Description String RequestPath Request path dimension name. Declaration public const string RequestPath = \"RequestPath\" Field Value Type Description String ResponseTimeInMilliseconds The metric name of HTTP response time Declaration public const string ResponseTimeInMilliseconds = \"Response time in milli-seconds\" Field Value Type Description String Result The result. Declaration public const string Result = \"Result\" Field Value Type Description String RoutingCacheRequests The routing cache requests. Declaration public const string RoutingCacheRequests = \"RoutingCacheRequests\" Field Value Type Description String StatusCode StatusCode dimension name. Declaration public const string StatusCode = \"StatusCode\" Field Value Type Description String SuccessfulBridgedMessages Successful bridged messages constant. Declaration public const string SuccessfulBridgedMessages = \"SuccessfulBridgedMessages\" Field Value Type Description String SuccessfulChatInactivityTracking The successful chat inactivity tracking Declaration public const string SuccessfulChatInactivityTracking = \"SuccessfulChatInactivityTracking\" Field Value Type Description String SuccessfulChatInactivityTrackingSum The successful chat inactivity tracking sum. Declaration public const string SuccessfulChatInactivityTrackingSum = \"SuccessfulChatInactivityTrackingSum\" Field Value Type Description String SuccessfulChatNotifications The successful chat notifications Declaration public const string SuccessfulChatNotifications = \"SuccessfulChatNotifications\" Field Value Type Description String TenantId Tenant Id constant. Declaration public const string TenantId = \"TenantId\" Field Value Type Description String TotalChatInactivityTracking The total chat inactivity tracking Declaration public const string TotalChatInactivityTracking = \"TotalChatInactivityTracking\" Field Value Type Description String UserAgent UserAgent dimension name. Declaration public const string UserAgent = \"UserAgent\" Field Value Type Description String" + "bot_media/Microsoft.Skype.Bots.Media.VideoMediaBuffer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaBuffer.html", + "title": "Class VideoMediaBuffer", + "keywords": "Class VideoMediaBuffer Represents an unmanaged buffer containing video media data. Inheritance Object VideoMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class VideoMediaBuffer : IDisposable Constructors VideoMediaBuffer() Declaration protected VideoMediaBuffer() Properties Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; protected set; } Property Value Type Description IntPtr Length The length of data in the media buffer. Declaration public long Length { get; protected set; } Property Value Type Description Int64 MediaSourceId MediaSourceId (MSI) of the video buffer. Within group or conference video calls, the MSI value identifies the video media source. This property is populated by the Real-Time Media Platform for Bots on received video buffers. When sending buffers via the IVideoSocket.Send API, this property is unused. Declaration public uint MediaSourceId { get; protected set; } Property Value Type Description UInt32 OriginalVideoFormat Original VideoFormat of the buffer when it was sourced. It is only used when receiving video buffers via the IVideoSocket.VideoMediaReceived event handler, in which case the VideoMediaBuffer.VideoFormat property may have different Width and Height values than the OriginalVideoFormat property, which represents the original format of the buffer. The reason is that the buffer may have been resized before being transmitted, so the original Width and Height may have been resized. If the Width and Height properties of OriginalVideoFormat differ from the VideoFormat property, the consumer of the VideoMediaBuffer raised in the VideoMediaReceived event should resize the buffer to fit the OriginalVideoFormat size. When sending buffers via the IVideoSocket.Send API, this property should always be null. Declaration public VideoFormat OriginalVideoFormat { get; protected set; } Property Value Type Description VideoFormat Stride Stride of the video buffer. This property is optional when sourcing video buffers that are sent via the IVideoSocket.Send API. Stride (also called pitch) represents the number of bytes it takes to read one row of pixels in memory. It may differ from the width depending on the color format. Declaration public int Stride { get; protected set; } Property Value Type Description Int32 Timestamp Timestamp of when the media content was sourced, in 100-ns units. When sourcing media buffers, this property should be set using the value from the MediaPlatform.GetCurrentTimestamp() API. Declaration public long Timestamp { get; protected set; } Property Value Type Description Int64 VideoFormat VideoFormat of the video media buffer. Declaration public VideoFormat VideoFormat { get; protected set; } Property Value Type Description VideoFormat Methods Dispose() Disposes the object. Declaration public void Dispose() Dispose(Boolean) Releases unmanaged resources held by the buffer object. Must be implemented in the derived class. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing If true, both managed and unmanaged resources can be disposed. If false, only unmanaged resources can be disposed. Implements System.IDisposable" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationSerializer.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationSerializer.html", - "title": "Class ObfuscationSerializer", - "keywords": "Class ObfuscationSerializer The obfuscation serializer can be used to serialize and de-serialize an obfuscation schema, as well as generate a schema from specified assemblies. Inheritance Object ObfuscationSerializer Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.Obfuscation Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class ObfuscationSerializer Constructors ObfuscationSerializer() Declaration public ObfuscationSerializer() Properties Members Gets or sets the members belonging to the class. Declaration public ObfuscationMember[] Members { get; set; } Property Value Type Description ObfuscationMember [] Methods ExtractFromAssemblies(Assembly[]) Extracts the obfuscation members from the specified assemblies. Declaration public ObfuscationMember[] ExtractFromAssemblies(params Assembly[] assemblies) Parameters Type Name Description Assembly [] assemblies The assemblies. Returns Type Description ObfuscationMember [] The list of ObfuscationMember stucts extracted from the specified assemblies. GenerateSchema(ObfuscationMember[]) Generates the schema from the specified obfuscation members. Declaration public string GenerateSchema(params ObfuscationMember[] members) Parameters Type Name Description ObfuscationMember [] members The obfuscation classes. Returns Type Description String The schema associated with the specified classes. LoadFromSchema(String) Loads the obfuscations classes from the specified schema. Declaration public ObfuscationMember[] LoadFromSchema(string schema) Parameters Type Name Description String schema The schema. Returns Type Description ObfuscationMember [] The loaded obfuscation classes. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.VideoLowOnFramesEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoLowOnFramesEventArgs.html", + "title": "Class VideoLowOnFramesEventArgs", + "keywords": "Class VideoLowOnFramesEventArgs Video low on frame event args Inheritance Object EventArgs LowOnFramesEventArgs VideoLowOnFramesEventArgs Inherited Members LowOnFramesEventArgs.MediaType LowOnFramesEventArgs.RemainingMediaLengthInMS EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoLowOnFramesEventArgs : LowOnFramesEventArgs Constructors VideoLowOnFramesEventArgs() Declaration public VideoLowOnFramesEventArgs() Properties VideoFormat The video format for the low on frame event Declaration public VideoFormat VideoFormat { get; set; } Property Value Type Description VideoFormat" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationTag.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationTag.html", - "title": "Enum ObfuscationTag", - "keywords": "Enum ObfuscationTag Tag used to provide a hint for the type of obfuscation to perform. Namespace : Microsoft.Graph.Communications.Common.Telemetry.Obfuscation Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum ObfuscationTag Fields Name Description Fqdn FQDN that needs to be obfuscated. An example would be \"lyncfrontend.lync.com\" Generic A generic blob containing sensitive data that must be obfuscated completely. Guid A guid type that has to be obfuscated. Identity The subject of some information whose data needs to be obfuscated. An example would be \"The user {coolgal} is attempting to to perform some action\". MRIs are also considered identities. IpAddress IP address that needs to be obfuscated. An example would be \"187.23.33.1\" Pstn PSTN related information. An example would be a telephone number like \"+10005559999\". Uri Uri that needs to be obfuscated. This can have any scheme like http, https, etc. An example would be \" https://cheatdays.com/fitguy" ; This could be either absolute or relative uri. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(ObfuscationTag, String, String) Validator.Equals(ObfuscationTag, String) Validator.NotEquals(ObfuscationTag, String, String)" + "calls/Microsoft.Graph.Communications.Calls.RecordOperationResult.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.RecordOperationResult.html", + "title": "Class RecordOperationResult", + "keywords": "Class RecordOperationResult Class to define parameters required for joining a meeting. Inheritance Object RecordOperationResult Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class RecordOperationResult Constructors RecordOperationResult(String, String, Nullable, ResultInfo) Initializes a new instance of the RecordOperationResult class. Declaration public RecordOperationResult(string recordingLocation, string recordingAccessToken, RecordCompletionReason? completionReason, ResultInfo resultInfo) Parameters Type Name Description String recordingLocation The location of the recording. String recordingAccessToken Token to access the recording. Nullable < RecordCompletionReason > completionReason The completion reason. ResultInfo resultInfo The result information. Properties CompletionReason Gets completion reason. Declaration public RecordCompletionReason? CompletionReason { get; } Property Value Type Description Nullable < RecordCompletionReason > RecordingAccessToken Gets record resource location. The access token required to retrieve the recording. Declaration public string RecordingAccessToken { get; } Property Value Type Description String RecordingLocation Gets record resource location. Link to the \"live raw stream as it is being recorded\" or \"recorded stream after it’s recorded\". Client need to call GET request on this link passing RecordResourceAccessToken as bearer token in order to download the stream. Declaration public string RecordingLocation { get; } Property Value Type Description String RecordResourceAccessToken Gets record resource location. The access token required to retrieve the recording. Declaration [Obsolete(\"Please use RecordingAccessToken property instead.\")] public string RecordResourceAccessToken { get; } Property Value Type Description String RecordResourceLocation Gets record resource location. Link to the \"live raw stream as it is being recorded\" or \"recorded stream after it’s recorded\". Client need to call GET request on this link passing RecordResourceAccessToken as bearer token in order to download the stream. Declaration [Obsolete(\"Please use RecordingLocation property instead.\")] public string RecordResourceLocation { get; } Property Value Type Description String ResultInfo Gets the result information. Declaration public ResultInfo ResultInfo { get; } Property Value Type Description ResultInfo The result information." }, - "common/Microsoft.Graph.html": { - "href": "common/Microsoft.Graph.html", - "title": "Namespace Microsoft.Graph", - "keywords": "Namespace Microsoft.Graph Classes AdditionalDataExtensions The identity set extensions" + "bot_media/Microsoft.Skype.Bots.Media.VideoSocket.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSocket.html", + "title": "Class VideoSocket", + "keywords": "Class VideoSocket Provides Send and Receive I/O access to a video stream. Inheritance Object VideoSocket Implements IVideoSocket IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public sealed class VideoSocket : IVideoSocket, IDisposable, IInternalVideoSocket, IInternalSocket Constructors VideoSocket(VideoSocketSettings) Initializes a new instance of VideoSocket with VideoSocketSettings. Declaration public VideoSocket(VideoSocketSettings settings) Parameters Type Name Description VideoSocketSettings settings Settings for VideoSocket like Direction, ReceiveColorFormat, etc. Properties MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API. It may also be set via the VideoSocketSettings during socket creation. Declaration public MediaType MediaType { get; } Property Value Type Description MediaType ReceiveColorFormat VideoColorFormat to receive Declaration public VideoColorFormat ReceiveColorFormat { get; } Property Value Type Description VideoColorFormat SocketId The 0-based ID of the socket. This socket ID is useful to identify a socket in a multiview (ie. more than 1 video socket) call. The same ID is used in the event args of the VideoMediaReceived and VideoSendStatusChanged events that this class may raise. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the CreateMediaConfiguration API. Eg., if the collection of IVideoSocket objects in the CreateMediaConfiguration API contains {socketA, socketB, socketC}, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Before the call to CreateMediaConfiguration, the SocketId has a value of -1. Declaration public int SocketId { get; } Property Value Type Description Int32 Methods Dispose() Disposes the object. Declaration public void Dispose() RequestKeyFrame() Allows the application to request for key frame. Only valid for sockets with the ReceiveColorFormat as H264 Declaration public void RequestKeyFrame() Send(VideoMediaBuffer) Allows the application to send a packet of video media if the application has configured the VideoSocket to send media. The application should be sending about 30 video frame buffers/second. The application must create a concrete class which derives from the VideoMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration public void Send(VideoMediaBuffer buffer) Parameters Type Name Description VideoMediaBuffer buffer VideoMediaBuffer to send. SetReceiveBandwidthLimit(UInt32) Sets the bandwidth limit on the receive stream of the VideoSocket. This is only supported if the socket supports receiving H264 video format. It is recommended to wait for the VideoReceiveStatusChanged event with MediaReceiveStatus Active state during the initial call setup before applying the receive bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration public void SetReceiveBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The receive bitrate SetSendBandwidthLimit(UInt32) Sets the bandwidth limit on the send stream of the VideoSocket. This is only supported if the socket supports sending H264 video formats. It is recommended to wait for the VideoSendStatusChanged event with MediaSendStatus Active state during the initial call setup before applying the send bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration public void SetSendBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The send bitrate Subscribe(VideoResolution) Subscribe API for the 1:1 case. No need to specify the media source id Declaration public void Subscribe(VideoResolution preferredVideoResolution) Parameters Type Name Description VideoResolution preferredVideoResolution Subscribe(VideoResolution, UInt32) Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, it is possible to call this api to subscribe to a specific video using the media source id. Declaration public void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId) Parameters Type Name Description VideoResolution preferredVideoResolution The requested video resolution, The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied UInt32 MediaSourceId Media source identifier of the video source to be received Unsubscribe() Unsubscribe to video, the VideMediaReceived events will stop raising video buffers Declaration public void Unsubscribe() UpdateVideoSendCapability(VideoSendCapability) Allows the application to update dynamically the send capability (such as SupportedSendVideoFormats or MaxConcurrentSendStreams) of the video socket. The purpose of this API is to allow the application to communicate changes in VideoSocket's send capability to the platform during the call. Declaration public void UpdateVideoSendCapability(VideoSendCapability capability) Parameters Type Name Description VideoSendCapability capability Events MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration public event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Remarks Note: this event can be raised even if there is no active video subscription; i.e., the VideoSocket is \"idle\" and not receiving media. MediaStreamQualityChanged The event is raised if a media stream quality change was detected Declaration public event EventHandler MediaStreamQualityChanged Event Type Type Description EventHandler < VideoMediaStreamQualityChangedEventArgs > VideoKeyFrameNeeded If the application has configured the VideoSocket to receive encoded media, this event is raised each time a key frame is needed. Events are serialized, so only one event at a time is raised to the app. Declaration public event EventHandler VideoKeyFrameNeeded Event Type Type Description EventHandler < VideoKeyFrameNeededEventArgs > VideoMediaReceived If the application has configured the VideoSocket to receive media, this event is raised each time a packet of video media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application should be prepared to handle approximately 30 incoming video buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration public event EventHandler VideoMediaReceived Event Type Type Description EventHandler < VideoMediaReceivedEventArgs > VideoReceiveStatusChanged If the application has configured the VideoSocket to receive media, this event is raised to inform the application when it is ready to receive media. When the status is active the application can subscribe to a video source, when inactive video subscription won't be allowed Declaration public event EventHandler VideoReceiveStatusChanged Event Type Type Description EventHandler < VideoReceiveStatusChangedEventArgs > VideoSendStatusChanged If the application has configured the VideoSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a VideoMediaSendStatusChanged event indicating the SendStatus is Active, such media will be discarded. Declaration public event EventHandler VideoSendStatusChanged Event Type Type Description EventHandler < VideoSendStatusChangedEventArgs > Implements IVideoSocket System.IDisposable" }, - "client/Microsoft.Graph.Communications.Resources.CollectionEventHandler-2.html": { - "href": "client/Microsoft.Graph.Communications.Resources.CollectionEventHandler-2.html", - "title": "Delegate CollectionEventHandler", - "keywords": "Delegate CollectionEventHandler The call collection event handler delegate. Namespace : Microsoft.Graph.Communications.Resources Assembly : Microsoft.Graph.Communications.Client.dll Syntax public delegate void CollectionEventHandler(TSender sender, CollectionEventArgs e); Parameters Type Name Description TSender sender The sender. CollectionEventArgs e The event arguments. Type Parameters Name Description TSender The type of the sender. TEntity The type of the arguments. Constructors CollectionEventHandler(Object, IntPtr) Declaration public CollectionEventHandler(object object, IntPtr method) Parameters Type Name Description Object object IntPtr method Methods BeginInvoke(TSender, CollectionEventArgs, AsyncCallback, Object) Declaration public virtual IAsyncResult BeginInvoke(TSender sender, CollectionEventArgs e, AsyncCallback callback, object object) Parameters Type Name Description TSender sender CollectionEventArgs e AsyncCallback callback Object object Returns Type Description IAsyncResult EndInvoke(IAsyncResult) Declaration public virtual void EndInvoke(IAsyncResult result) Parameters Type Name Description IAsyncResult result Invoke(TSender, CollectionEventArgs) Declaration public virtual void Invoke(TSender sender, CollectionEventArgs e) Parameters Type Name Description TSender sender CollectionEventArgs e" + "bot_media/Microsoft.Skype.Bots.Media.DataMediaBuffer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.DataMediaBuffer.html", + "title": "Class DataMediaBuffer", + "keywords": "Class DataMediaBuffer Reserved for the internal use. Inheritance Object DataMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class DataMediaBuffer : IDisposable Constructors DataMediaBuffer() Declaration protected DataMediaBuffer() Properties Data Reserved for the internal use. Declaration public byte[] Data { get; protected set; } Property Value Type Description Byte [] MediaSourceId Reserved for the internal use. Declaration public uint MediaSourceId { get; protected set; } Property Value Type Description UInt32 Methods Dispose() Reserved for the internal use. Declaration public void Dispose() Dispose(Boolean) Reserved for the internal use. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing Implements System.IDisposable" }, - "common/Microsoft.Graph.Communications.Common.GuidUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.GuidUtils.html", - "title": "Class GuidUtils", - "keywords": "Class GuidUtils Guid Utils Inheritance Object GuidUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class GuidUtils Methods EnsureNotEmpty(Guid) Ensures Guid is not empty by generating a random guid if it is empty Declaration public static Guid EnsureNotEmpty(this Guid guid) Parameters Type Name Description Guid guid input guid Returns Type Description Guid A guaranteed guid that is not empty EnsureNotEmpty(Nullable) Ensures Guid is not empty by generating a random guid if it is empty Declaration public static Guid EnsureNotEmpty(this Guid? guid) Parameters Type Name Description Nullable < Guid > guid input guid Returns Type Description Guid A guaranteed guid that is not empty ParseOrNew(String) Parse and return the guid if valid else return new guid Declaration public static Guid ParseOrNew(string input) Parameters Type Name Description String input input Returns Type Description Guid Guid of input or new guid" + "bot_media/Microsoft.Skype.Bots.Media.AudioMediaBuffer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioMediaBuffer.html", + "title": "Class AudioMediaBuffer", + "keywords": "Class AudioMediaBuffer Represents an unmanaged buffer containing audio media data. Inheritance Object AudioMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class AudioMediaBuffer : IDisposable Constructors AudioMediaBuffer() Declaration protected AudioMediaBuffer() Properties ActiveSpeakers Current active speakers in the conference. The value is the IDs (MediaSourceIds) of the audio source of the active speakers in the conference and does not include bot's own MediaSourceId. If there is no active speaker, or there is just silence in the conference, the value is an empty array. Declaration public uint[] ActiveSpeakers { get; protected set; } Property Value Type Description UInt32 [] AudioFormat The audio format. Declaration public AudioFormat AudioFormat { get; protected set; } Property Value Type Description AudioFormat Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; protected set; } Property Value Type Description IntPtr IsSilence Indicates if the received audio media buffer is a silence packet. This property is populated by the Real-Time Media Platform for Bots on received audio buffers. When sending buffers via the IAudioSocket.Send API, this property is unused. Declaration public bool IsSilence { get; protected set; } Property Value Type Description Boolean Length The length of data in the media buffer. Declaration public long Length { get; protected set; } Property Value Type Description Int64 Timestamp Timestamp of when the media content was sourced, in 100-ns units. When sourcing media buffers, this property should be set using the value from the MediaPlatform.GetCurrentTimestamp() API. Declaration public long Timestamp { get; protected set; } Property Value Type Description Int64 UnmixedAudioBuffers Contains the list of received unmixed audio buffers (up to four at a time). This is useful for advanced meeting scenarios, such as being able to receive separate audio buffers for individual speakers. This value is set only on the receive side when the AudioSocketSetting.ReceiveUnmixedMeetingAudio property is set to true. Creating unmixed audio buffers and sending it on the AudioSocket is not supported. This property is null when unmixed buffers are not requested Declaration public UnmixedAudioBuffer[] UnmixedAudioBuffers { get; protected set; } Property Value Type Description UnmixedAudioBuffer [] Methods Dispose() Disposes the object. Declaration public void Dispose() Dispose(Boolean) Releases unmanaged resources held by the buffer object. Must be implemented in the derived class. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing If true, both managed and unmanaged resources can be disposed. If false, only unmanaged resources can be disposed. Implements System.IDisposable" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSinkEncodingFormat.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSinkEncodingFormat.html", - "title": "Enum VideoSinkEncodingFormat", - "keywords": "Enum VideoSinkEncodingFormat VideoSinkEncodingFormats Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoSinkEncodingFormat Fields Name Description H264 H264 Yuv Yuv" + "common/Microsoft.Graph.Communications.Common.Transport.Http.html": { + "href": "common/Microsoft.Graph.Communications.Common.Transport.Http.html", + "title": "Namespace Microsoft.Graph.Communications.Common.Transport.Http", + "keywords": "Namespace Microsoft.Graph.Communications.Common.Transport.Http Classes HttpUtils Utilities for Http transport" }, - "calls_media/Microsoft.Graph.Communications.Calls.Media.ILocalMediaSession.html": { - "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.ILocalMediaSession.html", - "title": "Interface ILocalMediaSession", - "keywords": "Interface ILocalMediaSession Inherited Members IDisposable.Dispose() Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public interface ILocalMediaSession : IMediaSession, IDisposable Properties AudioSocket Gets the audio socket associated with this media session. Declaration IAudioSocket AudioSocket { get; } Property Value Type Description IAudioSocket DataSocket Gets the data socket associated with this media session. Declaration IDataSocket DataSocket { get; } Property Value Type Description IDataSocket VbssSocket Gets the VBSS socket associated with this media session. Declaration IVideoSocket VbssSocket { get; } Property Value Type Description IVideoSocket VideoSocket Gets the video socket associated with this media session. If current media session contains multiple sockets, this will return the first one in the list. Declaration IVideoSocket VideoSocket { get; } Property Value Type Description IVideoSocket VideoSockets Gets the list of video socket associated with this media session. Declaration IReadOnlyList VideoSockets { get; } Property Value Type Description IReadOnlyList < IVideoSocket >" + "common/Microsoft.Graph.Communications.Common.Telemetry.CallerInfo.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.CallerInfo.html", + "title": "Class CallerInfo", + "keywords": "Class CallerInfo Class that encapsulates the caller's (creator's) information Inheritance Object CallerInfo Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class CallerInfo Constructors CallerInfo(String, String, Int32) Initializes a new instance of the CallerInfo class. Declaration public CallerInfo(string memberName = \"\", string filePath = \"\", int lineNumber = 0) Parameters Type Name Description String memberName Name of the member. String filePath The file path. Int32 lineNumber The line number. Methods GetHashCode() Returns a hash code for this instance. Declaration public override int GetHashCode() Returns Type Description Int32 A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Overrides Object.GetHashCode() ToString() Returns a String that represents the caller info. Declaration public override string ToString() Returns Type Description String A String that represents the caller info. Overrides Object.ToString() Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "common/Microsoft.Graph.Communications.Common.OData.ODataConstants.html": { - "href": "common/Microsoft.Graph.Communications.Common.OData.ODataConstants.html", - "title": "Class ODataConstants", - "keywords": "Class ODataConstants The OData constants. Inheritance Object ODataConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.OData Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ODataConstants Fields ODataType The OData type. Declaration public const string ODataType = \"@odata.type\" Field Value Type Description String" + "common/Microsoft.Graph.Communications.Common.ReflectionUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.ReflectionUtils.html", + "title": "Class ReflectionUtils", + "keywords": "Class ReflectionUtils Reflection utilities Inheritance Object ReflectionUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ReflectionUtils Methods DerivesFrom(Type, Type) Check if the type derives from the base type Declaration public static bool DerivesFrom(this Type type, Type baseType) Parameters Type Name Description Type type Type to check Type baseType Base type Returns Type Description Boolean True if it is or derives from the base type Implements(Type, Type) Check if type is subclass of a generic type. Declaration public static bool Implements(this Type type, Type checkType) Parameters Type Name Description Type type Type to check. Type checkType Generic type. Returns Type Description Boolean True if it is a subclass." }, - "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Codes.html": { - "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Codes.html", - "title": "Class ErrorConstants.Codes", - "keywords": "Class ErrorConstants.Codes Error Codes Inheritance Object ErrorConstants.Codes Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Codes Fields BridgeGone Error code indicating the bridge is gone/deleted from the server. Declaration public const string BridgeGone = \"BridgeGone\" Field Value Type Description String ChatGone Error code indicating the chat is gone/deleted from the server. Declaration public const string ChatGone = \"ChatGone\" Field Value Type Description String ClientCallbackError The client callback error code. Declaration public const string ClientCallbackError = \"clientCallbackError\" Field Value Type Description String ClientContextMissing The client context missing error code. Declaration public const string ClientContextMissing = \"clientContextIsMissing\" Field Value Type Description String GeneralException The general exception error code. Declaration public const string GeneralException = \"generalException\" Field Value Type Description String InvalidRequest The invalid request error code. Declaration public const string InvalidRequest = \"invalidRequest\" Field Value Type Description String ItemNotFound The item not found error code. Declaration public const string ItemNotFound = \"itemNotFound\" Field Value Type Description String MismatchedCompletedOperation The mismatched completed operation error code. Declaration public const string MismatchedCompletedOperation = \"mismatchedCompletedOperation\" Field Value Type Description String NotAllowed The not allowed error code. Declaration public const string NotAllowed = \"notAllowed\" Field Value Type Description String OperationFailed The operation failed error code. Declaration public const string OperationFailed = \"operationFailed\" Field Value Type Description String RehydrationFailedWithEmptyResource The re-hydration failed with empty resource error code. Declaration public const string RehydrationFailedWithEmptyResource = \"rehydrationFailedWithEmptyResource\" Field Value Type Description String RehydrationFailedWithNotFound The re-hydration failed with not found error code. Declaration public const string RehydrationFailedWithNotFound = \"rehydrationFailedWithNotFound\" Field Value Type Description String Timeout The timeout error code. Declaration public const string Timeout = \"timeout\" Field Value Type Description String TooManyRedirects The too many redirects error code. Declaration public const string TooManyRedirects = \"tooManyRedirects\" Field Value Type Description String" + "client/Microsoft.Graph.Communications.Client.Transport.GraphClientContext.html": { + "href": "client/Microsoft.Graph.Communications.Client.Transport.GraphClientContext.html", + "title": "Class GraphClientContext", + "keywords": "Class GraphClientContext The context for the graph client wrapper. Inheritance Object GraphClientContext Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Client.Transport Assembly : Microsoft.Graph.Communications.Client.dll Syntax public class GraphClientContext Constructors GraphClientContext() Declaration public GraphClientContext() Properties ScenarioId Gets or sets the scenario identifier. Declaration public Guid ScenarioId { get; set; } Property Value Type Description Guid TenantId Gets or sets the tenant. Declaration public string TenantId { get; set; } Property Value Type Description String" }, - "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Messages.html": { - "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Messages.html", - "title": "Class ErrorConstants.Messages", - "keywords": "Class ErrorConstants.Messages Error Messages Inheritance Object ErrorConstants.Messages Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Messages Fields AuthenticationProviderMissing The authentication provider missing Declaration public const string AuthenticationProviderMissing = \"Authentication provider is required before sending a request.\" Field Value Type Description String BaseUrlMissing The base URL missing Declaration public const string BaseUrlMissing = \"Base URL cannot be null or empty.\" Field Value Type Description String ClientErrorAuthenticatingRequest The client error processing notifications Declaration public const string ClientErrorAuthenticatingRequest = \"Unexpected exception happened on client when authenticating request.\" Field Value Type Description String ClientErrorProcessingNotifications The client error processing notifications Declaration public const string ClientErrorProcessingNotifications = \"Unexpected exception happened on client when processing notification.\" Field Value Type Description String InvalidTypeForDateConverter The invalid type for date converter Declaration public const string InvalidTypeForDateConverter = \"DateConverter can only serialize objects of type Date.\" Field Value Type Description String LocationHeaderNotSetOnRedirect The location header not set on redirect Declaration public const string LocationHeaderNotSetOnRedirect = \"Location header not present in redirection response.\" Field Value Type Description String MessageContentIsEmpty The message content is empty Declaration public const string MessageContentIsEmpty = \"Unexpected empty message content.\" Field Value Type Description String NotificationChangeTypeIsEmpty The notification change type is empty Declaration public const string NotificationChangeTypeIsEmpty = \"No change type specified for the incoming notification.\" Field Value Type Description String NotificationResourceDataIsEmpty The notification resource data is empty Declaration public const string NotificationResourceDataIsEmpty = \"No resource data specified for the incoming notification.\" Field Value Type Description String NotificationResourceNotRecognized The notification resource is not recognized Declaration public const string NotificationResourceNotRecognized = \"Resource in notification is not recognized.\" Field Value Type Description String NotificationResourcePathIsEmpty The notification resource path is empty Declaration public const string NotificationResourcePathIsEmpty = \"No resource path specified for the incoming notification.\" Field Value Type Description String NotificationsAreEmpty The notifications are empty Declaration public const string NotificationsAreEmpty = \"Notifications received from server are empty.\" Field Value Type Description String NotificationUriNotSet The notification URI not set Declaration public const string NotificationUriNotSet = \"Notification URI is not set for the resource.\" Field Value Type Description String OverallTimeoutCannotBeSet The overall timeout cannot be set Declaration public const string OverallTimeoutCannotBeSet = \"Overall timeout cannot be set after the first request is sent.\" Field Value Type Description String RehydrationFailedNotFound The re-hydration failed not found Declaration public const string RehydrationFailedNotFound = \"Rehydration is performed on a resource that doesn't exist.\" Field Value Type Description String RehydrationFailedWithEmptyResource The re-hydration failed with empty resource Declaration public const string RehydrationFailedWithEmptyResource = \"Rehydration failed since service returned an empty resource.\" Field Value Type Description String RequestTimedOut The request timed out Declaration public const string RequestTimedOut = \"The request timed out.\" Field Value Type Description String RequestUrlMissing The request URL missing Declaration public const string RequestUrlMissing = \"Request URL is required to send a request.\" Field Value Type Description String TooManyRedirectsFormatString The too many redirects format string Declaration public const string TooManyRedirectsFormatString = \"More than {0} redirects encountered while sending the request.\" Field Value Type Description String UnableToCreateInstanceOfTypeFormatString The unable to create instance of type format string Declaration public const string UnableToCreateInstanceOfTypeFormatString = \"Unable to create an instance of type {0}.\" Field Value Type Description String UnableToDeserializeNotification The unable to deserialize notification Declaration public const string UnableToDeserializeNotification = \"Unable to deserialize the notification.\" Field Value Type Description String UnexpectedExceptionOnSend The unexpected exception on send Declaration public const string UnexpectedExceptionOnSend = \"An error occurred sending the request.\" Field Value Type Description String UnexpectedExceptionResponse The unexpected exception response Declaration public const string UnexpectedExceptionResponse = \"Unexpected exception returned from the service.\" Field Value Type Description String" + "bot_media/Microsoft.Skype.Bots.Media.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.html", + "title": "Namespace Microsoft.Skype.Bots.Media", + "keywords": "Namespace Microsoft.Skype.Bots.Media Classes AudioLowOnFramesEventArgs Audio low on frame event args AudioMediaBuffer Represents an unmanaged buffer containing audio media data. AudioMediaReceivedEventArgs Event arguments of an AudioMediaReceived event. AudioSendStatusChangedEventArgs Event arguments of an AudioSendStatusChanged event. AudioSettings Audio frame player settings AudioSocket Provides Send and Receive I/O access to an audio stream. AudioSocketSettings The settings to initialize the AudioSocket. AudioVideoFramePlayer AudioVideoFramePlayer is responsible for streaming real time audio and video buffers. This frame player will handle audio and video sync from the audio and video buffer's timestamps AudioVideoFramePlayerSettings AudioVideoFramePlayer settings. This will help configure the player settings. DataMediaBuffer Reserved for the internal use. DataMediaReceivedEventArgs Reserved for the internal use. DataSendStatusChangedEventArgs Reserved for the internal use. DataSocket Reserved for the internal use. DataSocketSettings Reserved for the internal use. DominantSpeakerChangedEventArgs Event arguments of the DominantSpeakerChanged event. LowOnFramesEventArgs LowOnFrames event arguments MediaPlatform This class represents the Skype Bots Media Platform. MediaPlatformFactory MediaPlatformFactory that is used to create IMediaPlatform. MediaPlatformHealthChangedEventArgs Event arguments of the MediaPlatformHealthChangedEvent providing the current and previous health status of the media platform. MediaPlatformInstanceSettings Class that stores the settings of the Azure instance hosting the Bot Media Platform. MediaPlatformSettings Class that stores settings needed to initialize Bot Media Platform. MediaStreamFailureEventArgs Event arguments of the MediaStreamFailure event. PerfCounterConfiguration Perf counter configuration PortRange The Port range SkypeMediaException Root class for the exceptions that are specific to the Skype Media Bots SDK, ie. exceptions other than the standard .NET Framework exceptions. ToneReceivedEventArgs Event arguments of the ToneReceived event. VideoFormat VideoFormat VideoKeyFrameNeededEventArgs Event arguments of a VideoKeyFrameNeeded event. VideoLowOnFramesEventArgs Video low on frame event args VideoMediaBuffer Represents an unmanaged buffer containing video media data. VideoMediaReceivedEventArgs Event arguments of a VideoMediaReceived event. VideoMediaStreamQualityChangedEventArgs Event arguments of the video media stream quality event. VideoReceiveStatusChangedEventArgs Event arguments of a VideoReceiveStatusChanged event. VideoSendCapability The Video Send Capability VideoSendStatusChangedEventArgs Event arguments of a VideoSendStatusChanged event. VideoSettings Video Frame player settings VideoSocket Provides Send and Receive I/O access to a video stream. VideoSocketSettings The video socket settings. Structs UnmixedAudioBuffer Represents an unmanaged audio buffer that contains unmixed data corresponding to a specific speaker in a conference. This structure contains a pointer to the unmanaged audio buffer, the length of the buffer and the ID of the audio source of the active speaker. Interfaces IAudioSocket Interface to an AudioSocket. IAudioVideoFramePlayer Interface for the AudioVideoFramePlayer responsible for streaming real time audio video IDataSocket Reserved for the internal use. IMediaPlatform Interface to the MediaPlatform. IMediaPlatformLogger Interface for collecting MediaPlatform logs from the Bots.Media library. IVideoSocket Interface to a VideoSocket. Enums AudioFormat The audio format. DataType Reserved for the internal use. HostingEnvironmentConfiguration HostingEnvironmentConfiguration to use for the MediaPlatform. In most cases, the default value is correct. Only in Azure Government clouds do different settings need to be applied. LogLevel Specifies a current logging level for a log line. MediaPlatformHealthStatus Health status of the media platform MediaQualityState Indicates the media quality state MediaReceiveStatus Indicates if the VideoSocket is capable of receiving media. MediaSendStatus Indicates whether an AudioSocket or VideoSocket is capable of sending media. MediaType Indicates the media type of the socket. StreamDirection Stream directionality, from the point-of-view of the local media endpoint. ToneId DTMF Tone Id enum. VideoColorFormat VideoColorFormat VideoQualityType Type of the video media quality VideoResolution Video resolution for vbss and video VideoSinkEncodingFormat VideoSinkEncodingFormats" }, - "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.html": { - "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.html", - "title": "Class ErrorConstants", - "keywords": "Class ErrorConstants Error Constants Inheritance Object ErrorConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class ErrorConstants" + "common/Microsoft.Graph.Communications.Common.Telemetry.LogEvent.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEvent.html", + "title": "Class LogEvent", + "keywords": "Class LogEvent Log data Inheritance Object LogEvent Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class LogEvent Constructors LogEvent() Declaration public LogEvent() Properties CallerInfo Gets or sets the caller information Declaration public CallerInfo CallerInfo { get; set; } Property Value Type Description CallerInfo CallerInfoString Gets the caller information string. Declaration public string CallerInfoString { get; } Property Value Type Description String Component Gets or sets the component in which the log is created. Declaration public string Component { get; set; } Property Value Type Description String CorrelationId Gets or sets the correlation id Declaration public Guid CorrelationId { get; set; } Property Value Type Description Guid EventType Gets or sets the type of the event. Declaration public LogEventType EventType { get; set; } Property Value Type Description LogEventType Level Gets or sets the trace level of the event. Declaration public TraceLevel Level { get; set; } Property Value Type Description TraceLevel LogicalThreadId Gets or sets the logical thread identifier. Declaration public uint LogicalThreadId { get; set; } Property Value Type Description UInt32 ManagedThreadId Gets or sets the thread ID. Declaration public int ManagedThreadId { get; set; } Property Value Type Description Int32 Message Gets or sets the Description of the event. Declaration public string Message { get; set; } Property Value Type Description String ProcessId Gets or sets the process ID. Declaration public int ProcessId { get; set; } Property Value Type Description Int32 Properties Gets or sets the Custom properties for the event. Declaration public IReadOnlyDictionary Properties { get; set; } Property Value Type Description IReadOnlyDictionary < Type , Object > PropertiesString Gets the custom properties in string format. Declaration public string PropertiesString { get; } Property Value Type Description String RequestId Gets or sets the request identifier. Declaration public Guid RequestId { get; set; } Property Value Type Description Guid Timestamp Gets or sets the Timestamp of the event. Declaration public DateTime Timestamp { get; set; } Property Value Type Description DateTime Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String) LoggingExtensions.GetTypedProperties(LogEvent, Type) LoggingExtensions.GetTypedProperty(LogEvent)" }, - "core/Microsoft.Graph.ResultInfo.html": { - "href": "core/Microsoft.Graph.ResultInfo.html", - "title": "Class ResultInfo", - "keywords": "Class ResultInfo The type ResultInfo. Inheritance Object ResultInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class ResultInfo Constructors ResultInfo() Declaration public ResultInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Code Gets or sets code. Declaration public int? Code { get; set; } Property Value Type Description Nullable < Int32 > Message Gets or sets message. Declaration public string Message { get; set; } Property Value Type Description String ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String SubCode Gets or sets subCode. Declaration public int? SubCode { get; set; } Property Value Type Description Nullable < Int32 >" + "common/Microsoft.Graph.Communications.Common.Telemetry.JsonConverters.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.JsonConverters.html", + "title": "Class JsonConverters", + "keywords": "Class JsonConverters Json converters. Inheritance Object JsonConverters Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class JsonConverters" }, - "common/Microsoft.Graph.Communications.Common.MathUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.MathUtils.html", - "title": "Class MathUtils", - "keywords": "Class MathUtils Various math utilities Inheritance Object MathUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class MathUtils Methods CeilingRound(Int32, Int32) Gets the ceiling value after rounding. Declaration public static int CeilingRound(this int n, int round) Parameters Type Name Description Int32 n Value to round up. Int32 round Rounding increment. Returns Type Description Int32 Ceiling value." + "common/Microsoft.Graph.Communications.Common.Telemetry.ILogEventFormatter.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.ILogEventFormatter.html", + "title": "Interface ILogEventFormatter", + "keywords": "Interface ILogEventFormatter Interface to format log event. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public interface ILogEventFormatter Methods Format(LogEvent) Format the log event. Declaration string Format(LogEvent logEvent) Parameters Type Name Description LogEvent logEvent The log event Returns Type Description String The formatted text. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "common/Microsoft.Graph.Communications.Common.MetricUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.MetricUtils.html", - "title": "Class MetricUtils", - "keywords": "Class MetricUtils The metric utils class Inheritance Object MetricUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class MetricUtils Methods MeasureDurationAsync(Func, Action) Mesure the duration of task. Declaration public static Task MeasureDurationAsync(Func task, Action setMetricTask) Parameters Type Name Description Func < Task > task The task to measure Action < Int64 > setMetricTask The task to set metric Returns Type Description Task The task for wait" + "bot_media/Microsoft.Skype.Bots.Media.VideoSendStatusChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSendStatusChangedEventArgs.html", + "title": "Class VideoSendStatusChangedEventArgs", + "keywords": "Class VideoSendStatusChangedEventArgs Event arguments of a VideoSendStatusChanged event. Inheritance Object EventArgs VideoSendStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSendStatusChangedEventArgs : EventArgs Constructors VideoSendStatusChangedEventArgs() Declaration public VideoSendStatusChangedEventArgs() Properties MediaSendStatus The media send status. Declaration public MediaSendStatus MediaSendStatus { get; set; } Property Value Type Description MediaSendStatus MediaType MediaType of the video socket raising the event. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType PreferredEncodedVideoSourceFormats The encoded video source formats needed. Declaration public VideoFormat[] PreferredEncodedVideoSourceFormats { get; set; } Property Value Type Description VideoFormat [] PreferredVideoSourceFormat The preferred video source format if raw video was sent. Declaration public VideoFormat PreferredVideoSourceFormat { get; set; } Property Value Type Description VideoFormat SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32" }, - "common/Microsoft.Graph.Communications.Common.SafeNativeMethods.html": { - "href": "common/Microsoft.Graph.Communications.Common.SafeNativeMethods.html", - "title": "Class SafeNativeMethods", - "keywords": "Class SafeNativeMethods Contains p/invokes and associated wrappers for the Native methods Inheritance Object SafeNativeMethods Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class SafeNativeMethods Methods GetPreciseSystemTime() Gets precise system time Declaration public static DateTime GetPreciseSystemTime() Returns Type Description DateTime Precise system time" + "bot_media/Microsoft.Skype.Bots.Media.VideoKeyFrameNeededEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoKeyFrameNeededEventArgs.html", + "title": "Class VideoKeyFrameNeededEventArgs", + "keywords": "Class VideoKeyFrameNeededEventArgs Event arguments of a VideoKeyFrameNeeded event. Inheritance Object EventArgs VideoKeyFrameNeededEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoKeyFrameNeededEventArgs : EventArgs Constructors VideoKeyFrameNeededEventArgs() Declaration public VideoKeyFrameNeededEventArgs() Properties MediaType MediaType of the video buffer. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32 VideoFormats VideoFormats for which keyframe is needed Declaration public VideoFormat[] VideoFormats { get; set; } Property Value Type Description VideoFormat []" }, - "common/Microsoft.Graph.Communications.Common.SecureStringUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.SecureStringUtils.html", - "title": "Class SecureStringUtils", - "keywords": "Class SecureStringUtils SecureString Utilities Inheritance Object SecureStringUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class SecureStringUtils Methods ConvertToUnsecureString(SecureString) Converts a SecureString into a managed string for consumption Declaration public static string ConvertToUnsecureString(this SecureString secureString) Parameters Type Name Description SecureString secureString The SecureString to convert into a managed string Returns Type Description String String representation of the SecureString" + "bot_media/Microsoft.Skype.Bots.Media.StreamDirection.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.StreamDirection.html", + "title": "Enum StreamDirection", + "keywords": "Enum StreamDirection Stream directionality, from the point-of-view of the local media endpoint. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum StreamDirection Fields Name Description Inactive Media cannot be sent nor received Recvonly Media can be received but not sent Sendonly Media can be sent but not received Sendrecv Media can be sent and received" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpLogData.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpLogData.html", - "title": "Class HttpLogData", - "keywords": "Class HttpLogData The log data for http trace. Inheritance Object HttpLogData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.HttpLogging Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class HttpLogData Constructors HttpLogData() Declaration public HttpLogData() Properties Content Gets or sets the content. Declaration public string Content { get; set; } Property Value Type Description String Headers Gets or sets the headers. Declaration public IEnumerable Headers { get; set; } Property Value Type Description IEnumerable < String > HeadersString Gets the headers string. Declaration public string HeadersString { get; } Property Value Type Description String Method Gets or sets the method. Declaration public string Method { get; set; } Property Value Type Description String ResponseStatusCode Gets or sets the response status code. Declaration public int? ResponseStatusCode { get; set; } Property Value Type Description Nullable < Int32 > ResponseTime Gets or sets the response time in milliseconds. Declaration public long? ResponseTime { get; set; } Property Value Type Description Nullable < Int64 > TraceType Gets or sets the trace type. Declaration public HttpTraceType TraceType { get; set; } Property Value Type Description HttpTraceType TransactionDirection Gets or sets the transaction direction. Declaration public TransactionDirection TransactionDirection { get; set; } Property Value Type Description TransactionDirection Url Gets or sets the url. Declaration public string Url { get; set; } Property Value Type Description String Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.MediaSendStatus.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaSendStatus.html", + "title": "Enum MediaSendStatus", + "keywords": "Enum MediaSendStatus Indicates whether an AudioSocket or VideoSocket is capable of sending media. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaSendStatus Fields Name Description Active Media can be sent Inactive Media cannot be sent" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventFormatterFlags.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventFormatterFlags.html", - "title": "Enum LogEventFormatterFlags", - "keywords": "Enum LogEventFormatterFlags The log event formatter enums Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum LogEventFormatterFlags Fields Name Description ForDefault For default case, which includes all fields. ForILoggerFactory For ILoggerFactory binding format, which doesn't include component and level, as these fields are set in ILogger outside of message. IncludeManagedThreadId Managed thread ID IncludeProcessId Process ID IncludesCallInfo Call info IncludesComponent Component IncludesCorrelationId Correlation ID IncludesLevel Level IncludesProperties Properties IncludesTimestamp Timestamp Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(LogEventFormatterFlags, String, String) Validator.Equals(LogEventFormatterFlags, String) Validator.NotEquals(LogEventFormatterFlags, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformFactory.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformFactory.html", + "title": "Class MediaPlatformFactory", + "keywords": "Class MediaPlatformFactory MediaPlatformFactory that is used to create IMediaPlatform. Inheritance Object MediaPlatformFactory Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public static class MediaPlatformFactory Methods CreateMediaPlatform() Creates the Media Platform for bots. The platform has to be initialized before it is used. Declaration public static IMediaPlatform CreateMediaPlatform() Returns Type Description IMediaPlatform The interface to the Media Platform." }, - "bot_media/Microsoft.Skype.Bots.Media.MediaStreamFailureEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaStreamFailureEventArgs.html", - "title": "Class MediaStreamFailureEventArgs", - "keywords": "Class MediaStreamFailureEventArgs Event arguments of the MediaStreamFailure event. Inheritance Object EventArgs MediaStreamFailureEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaStreamFailureEventArgs : EventArgs Constructors MediaStreamFailureEventArgs() Declaration public MediaStreamFailureEventArgs()" + "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatformLogger.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatformLogger.html", + "title": "Interface IMediaPlatformLogger", + "keywords": "Interface IMediaPlatformLogger Interface for collecting MediaPlatform logs from the Bots.Media library. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IMediaPlatformLogger Methods WriteLog(LogLevel, String) Log a trace statement Declaration void WriteLog(LogLevel level, string logStatement) Parameters Type Name Description LogLevel level Level of log String logStatement The log itself." }, - "bot_media/Microsoft.Skype.Bots.Media.ToneId.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.ToneId.html", - "title": "Enum ToneId", - "keywords": "Enum ToneId DTMF Tone Id enum. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum ToneId Fields Name Description A Tone A B Tone B C Tone C D Tone D Flash Tone flash Pound Pound tone Star Star tone Tone0 Tone 0 Tone1 Tone 1 Tone2 Tone 2 Tone3 Tone 3 Tone4 Tone 4 Tone5 Tone 5 Tone6 Tone 6 Tone7 Tone 7 Tone8 Tone 8 Tone9 Tone 9" + "bot_media/Microsoft.Skype.Bots.Media.DominantSpeakerChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.DominantSpeakerChangedEventArgs.html", + "title": "Class DominantSpeakerChangedEventArgs", + "keywords": "Class DominantSpeakerChangedEventArgs Event arguments of the DominantSpeakerChanged event. Inheritance Object EventArgs DominantSpeakerChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DominantSpeakerChangedEventArgs : EventArgs Constructors DominantSpeakerChangedEventArgs() Declaration public DominantSpeakerChangedEventArgs() Fields None Constant value which indicates there is no dominant speaker in the conference. Declaration public const uint None = 4294967295U Field Value Type Description UInt32 Properties CurrentDominantSpeaker Current dominant speaker in the conference. The value is the MediaSourceId (MSI) of the dominant speaker in the conference. If there is no dominant speaker in the conference this value will be None (0xFFFFFFFF). Declaration public uint CurrentDominantSpeaker { get; set; } Property Value Type Description UInt32 DominantSpeakerHistory History of the dominant speakers. However, DominantSpeakerHistory won't contain any element to indicate the absence of dominant speaker in the conference. Declaration public uint[] DominantSpeakerHistory { get; set; } Property Value Type Description UInt32 []" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayer.html", - "title": "Class AudioVideoFramePlayer", - "keywords": "Class AudioVideoFramePlayer AudioVideoFramePlayer is responsible for streaming real time audio and video buffers. This frame player will handle audio and video sync from the audio and video buffer's timestamps Inheritance Object AudioVideoFramePlayer Implements IAudioVideoFramePlayer Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioVideoFramePlayer : IAudioVideoFramePlayer Constructors AudioVideoFramePlayer(AudioSocket, VideoSocket, AudioVideoFramePlayerSettings) Constructor for the audio video frame player. Declaration public AudioVideoFramePlayer(AudioSocket audioSocket, VideoSocket videoSocket, AudioVideoFramePlayerSettings audioVideoFramePlayerSettings) Parameters Type Name Description AudioSocket audioSocket VideoSocket videoSocket AudioVideoFramePlayerSettings audioVideoFramePlayerSettings Methods ClearAsync(Boolean, List) Clear the enqueued buffers. This will also invoke Dispose() on the buffers still in the queue. Declaration public Task ClearAsync(bool clearAudio = true, List videoFormats = null) Parameters Type Name Description Boolean clearAudio true will clear the audio buffers, Default value is set to true List < VideoFormat > videoFormats list of video formats to clear, default is null Returns Type Description Task EnqueueBuffersAsync(IList, IList) Enqueue the audio and video media buffers. Usage should be to enqueue the same audio and video length, if audio and video sockets are active. Declaration public Task EnqueueBuffersAsync(IList audioMediaBuffers, IList videoMediaBuffers) Parameters Type Name Description IList < AudioMediaBuffer > audioMediaBuffers IList < VideoMediaBuffer > videoMediaBuffers Returns Type Description Task ShutdownAsync() Shuts down the player and releases allocated resources Declaration public Task ShutdownAsync() Returns Type Description Task Events LowOnFrames Event to signal the player is low on frames Declaration public event EventHandler LowOnFrames Event Type Type Description EventHandler < LowOnFramesEventArgs > Implements IAudioVideoFramePlayer" + "bot_media/Microsoft.Skype.Bots.Media.DataMediaReceivedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.DataMediaReceivedEventArgs.html", + "title": "Class DataMediaReceivedEventArgs", + "keywords": "Class DataMediaReceivedEventArgs Reserved for the internal use. Inheritance Object EventArgs DataMediaReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DataMediaReceivedEventArgs : EventArgs Constructors DataMediaReceivedEventArgs() Declaration public DataMediaReceivedEventArgs() Properties Buffer Reserved for the internal use. Declaration public DataMediaBuffer Buffer { get; } Property Value Type Description DataMediaBuffer" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioLowOnFramesEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioLowOnFramesEventArgs.html", - "title": "Class AudioLowOnFramesEventArgs", - "keywords": "Class AudioLowOnFramesEventArgs Audio low on frame event args Inheritance Object EventArgs LowOnFramesEventArgs AudioLowOnFramesEventArgs Inherited Members LowOnFramesEventArgs.MediaType LowOnFramesEventArgs.RemainingMediaLengthInMS EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioLowOnFramesEventArgs : LowOnFramesEventArgs Constructors AudioLowOnFramesEventArgs() Declaration public AudioLowOnFramesEventArgs()" + "bot_media/Microsoft.Skype.Bots.Media.IAudioSocket.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.IAudioSocket.html", + "title": "Interface IAudioSocket", + "keywords": "Interface IAudioSocket Interface to an AudioSocket. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IAudioSocket : IDisposable Methods Send(AudioMediaBuffer) Allows the application to send a packet of audio media if the application has configured the AudioSocket to send media. The application should be sending about 50 packets of audio media per second; each buffer containing 20 milliseconds worth of audio content. The application must create a concrete class which derives from the AudioMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration void Send(AudioMediaBuffer buffer) Parameters Type Name Description AudioMediaBuffer buffer AudioMediaBuffer to send. Events AudioMediaReceived If the application has configured the AudioSocket to receive media, this event is raised each time a packet of audio media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application must be able to handle at least 50 incoming audio buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler AudioMediaReceived Event Type Type Description EventHandler < AudioMediaReceivedEventArgs > AudioSendStatusChanged If the application has configured the AudioSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a MediaSendStatusChanged event indicating the SendStatus is Started. Declaration event EventHandler AudioSendStatusChanged Event Type Type Description EventHandler < AudioSendStatusChangedEventArgs > DominantSpeakerChanged This event is raised when there is a change in the dominant speaker in the conference. If there is no dominant speaker in the conference, the CurrentDominantSpeaker argument in the event will have the value None (0xFFFFFFFF). Declaration event EventHandler DominantSpeakerChanged Event Type Type Description EventHandler < DominantSpeakerChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > ToneReceived This event is raised when the DTMF tone is received. ToneId enum in the event arguments indicates the tone value. Declaration event EventHandler ToneReceived Event Type Type Description EventHandler < ToneReceivedEventArgs >" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.TransactionDirection.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.TransactionDirection.html", - "title": "Enum TransactionDirection", - "keywords": "Enum TransactionDirection Direction for request message. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum TransactionDirection Fields Name Description Incoming The incoming request message. Outgoing The outgoing request message. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(TransactionDirection, String, String) Validator.Equals(TransactionDirection, String) Validator.NotEquals(TransactionDirection, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.DataType.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.DataType.html", + "title": "Enum DataType", + "keywords": "Enum DataType Reserved for the internal use. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum DataType Fields Name Description Transcript Reserved for the internal use." }, - "core/Microsoft.Graph.Communications.Core.CommsConstants.Headers.html": { - "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.Headers.html", - "title": "Class CommsConstants.Headers", - "keywords": "Class CommsConstants.Headers The headers. Inheritance Object CommsConstants.Headers Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Headers Fields ChainId The chain identifier header. Declaration public const string ChainId = \"X-Microsoft-Skype-Chain-ID\" Field Value Type Description String ClientRequestId The client request identifier header. Declaration public const string ClientRequestId = \"client-request-id\" Field Value Type Description String MessageId The message identifier header. Declaration public const string MessageId = \"X-Microsoft-Skype-Message-ID\" Field Value Type Description String ScenarioId The scenario identifier header. Declaration public const string ScenarioId = \"scenario-id\" Field Value Type Description String Tenant The tenant Declaration public const string Tenant = \"X-Microsoft-Tenant\" Field Value Type Description String ThrowSiteHeaderName The throw site header name. Declaration public const string ThrowSiteHeaderName = \"X-ThrowSite\" Field Value Type Description String" + "bot_media/Microsoft.Skype.Bots.Media.AudioFormat.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioFormat.html", + "title": "Enum AudioFormat", + "keywords": "Enum AudioFormat The audio format. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum AudioFormat Fields Name Description Pcm16K PCM 16K Pcm44KStereo PCM 44.1K Stereo" }, - "core/Microsoft.Graph.Communications.Core.CommsConstants.Serialization.html": { - "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.Serialization.html", - "title": "Class CommsConstants.Serialization", - "keywords": "Class CommsConstants.Serialization The serialization. Inheritance Object CommsConstants.Serialization Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Serialization Fields ODataType The OData type. Declaration public const string ODataType = \"@odata.type\" Field Value Type Description String" + "core/Microsoft.Graph.CommsNotification.html": { + "href": "core/Microsoft.Graph.CommsNotification.html", + "title": "Class CommsNotification", + "keywords": "Class CommsNotification The type CommsNotification. Inheritance Object CommsNotification Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class CommsNotification Constructors CommsNotification() Declaration public CommsNotification() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ChangeType Gets or sets changeType. Declaration public ChangeType? ChangeType { get; set; } Property Value Type Description Nullable < ChangeType > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Resource Gets or sets resource. Declaration public string Resource { get; set; } Property Value Type Description String Extension Methods NotificationsExtensions.SetResourceData(CommsNotification, Object) NotificationsExtensions.GetResourceData(CommsNotification) NotificationsExtensions.GetResourceData(CommsNotification) NotificationProcessorExtensions.ExtractResouceData(CommsNotification)" }, - "core/Microsoft.Graph.Communications.Core.CommsConstants.html": { - "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.html", - "title": "Class CommsConstants", - "keywords": "Class CommsConstants The communications constants. Inheritance Object CommsConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class CommsConstants Fields ResourceData The resource data. Declaration public const string ResourceData = \"resourceData\" Field Value Type Description String VisibleToCastle Visible to property added to InternalsVisibleTo Castle signed builds. Declaration public const string VisibleToCastle = \", PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7\" Field Value Type Description String VisibleToMicrosoft Visible to property added to InternalsVisibleTo Microsoft signed builds. Declaration public const string VisibleToMicrosoft = \", PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9\" Field Value Type Description String" + "core/Microsoft.Graph.ChangeType.html": { + "href": "core/Microsoft.Graph.ChangeType.html", + "title": "Enum ChangeType", + "keywords": "Enum ChangeType The enum ChangeType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum ChangeType Fields Name Description Created Created Deleted Deleted Updated Updated" }, - "core/Microsoft.Graph.Communications.Core.html": { - "href": "core/Microsoft.Graph.Communications.Core.html", - "title": "Namespace Microsoft.Graph.Communications.Core", - "keywords": "Namespace Microsoft.Graph.Communications.Core Classes CommsConstants The communications constants. CommsConstants.Headers The headers. CommsConstants.Serialization The serialization." + "common/Microsoft.Graph.Communications.Common.Telemetry.AadApplicationIdentity.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.AadApplicationIdentity.html", + "title": "Class AadApplicationIdentity", + "keywords": "Class AadApplicationIdentity The application identity in Azure AD. Inheritance Object AadApplicationIdentity Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class AadApplicationIdentity Remarks For better logging experience, all property names should be specific enough. Avoid using generic name such as Id, Name, etc. Constructors AadApplicationIdentity() Declaration public AadApplicationIdentity() Properties AppId Gets or sets the id of application. Declaration public string AppId { get; set; } Property Value Type Description String AppName Gets or sets the name of application. Declaration public string AppName { get; set; } Property Value Type Description String Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "core/Microsoft.Graph.Culture.html": { - "href": "core/Microsoft.Graph.Culture.html", - "title": "Enum Culture", - "keywords": "Enum Culture The enum Culture. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum Culture Fields Name Description EnUs En Us" + "core/Microsoft.Graph.Communications.Core.Transport.CallbackResponseType.html": { + "href": "core/Microsoft.Graph.Communications.Core.Transport.CallbackResponseType.html", + "title": "Enum CallbackResponseType", + "keywords": "Enum CallbackResponseType Type of responses returned to the bot Namespace : Microsoft.Graph.Communications.Core.Transport Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum CallbackResponseType Fields Name Description Accepted The request was accepted or processed. BadRequest The request was semantically/syntactically invalid. InternalServerError The request resulted in an internal server error. NoContent The request was accepted or processed and returns no content. NotFound The call for the incoming callback or notification is no longer active. Unauthorized The request was not authorized by the callee." }, - "core/Microsoft.Graph.IdentitySetExtensions.html": { - "href": "core/Microsoft.Graph.IdentitySetExtensions.html", - "title": "Class IdentitySetExtensions", - "keywords": "Class IdentitySetExtensions Extensions for graph api contracts Inheritance Object IdentitySetExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class IdentitySetExtensions Methods GetApplicationInstance(IdentitySet) Gets the application instance identity from identity set. This is part of additional data. Declaration public static Identity GetApplicationInstance(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetEncrypted(IdentitySet) Get the encrypted identity part of the additional data This identity must be retrieved when other identities are not listed Declaration public static Identity GetEncrypted(this IdentitySet identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identity The identity Returns Type Description Microsoft.Graph.Identity The encrypted identity GetEnumerator(IdentitySet) Gets the enumerator for the Microsoft.Graph.IdentitySet . Declaration public static IEnumerable GetEnumerator(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description IEnumerable < Microsoft.Graph.Identity > The IEnumerable for the Microsoft.Graph.IdentitySet . GetGuest(IdentitySet) Gets the guest identity from identity set. This is part of additional data. Declaration public static Identity GetGuest(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetPhone(IdentitySet) Gets the application instance identity from identity set. This is part of additional data. Declaration public static Identity GetPhone(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetPrimaryIdentity(IdentitySet) Gets the primary identity from the specified Microsoft.Graph.IdentitySet . The priority order is: User, Guest, Encrypted, Application Instance, Application, Phone Declaration public static Identity GetPrimaryIdentity(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Primary Identity GetTenantId(Identity) Gets the tenant identifier. Declaration public static string GetTenantId(this Identity identity) Parameters Type Name Description Microsoft.Graph.Identity identity The identity. Returns Type Description String The tenant identifier string. SetApplicationInstance(IdentitySet, Identity) Sets the application instance identity in identity set. This is part of additional data. Declaration public static void SetApplicationInstance(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetEncrypted(IdentitySet, Identity) Sets the encrypted identity to the additional data This identity must be retrieved when other identities are not listed Declaration public static void SetEncrypted(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity SetGuest(IdentitySet, Identity) Sets the guest identity in identity set. This is part of additional data. Declaration public static void SetGuest(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetPhone(IdentitySet, Identity) Sets the application instance identity in identity set. This is part of additional data. Declaration public static void SetPhone(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetTenantId(Identity, String) Sets the tenant identifier. Declaration public static void SetTenantId(this Identity identity, string tenantId) Parameters Type Name Description Microsoft.Graph.Identity identity The identity. String tenantId The tenant identifier." + "client/Microsoft.Graph.Communications.Client.Authentication.IRequestAuthenticationProvider.html": { + "href": "client/Microsoft.Graph.Communications.Client.Authentication.IRequestAuthenticationProvider.html", + "title": "Interface IRequestAuthenticationProvider", + "keywords": "Interface IRequestAuthenticationProvider The authentication provider interface. This is used to authenticate Inbound requests from Microsoft Graph. It validates the request was issued by Microsoft Graph. Outbound requests to Microsoft Graph. Tenant token is acquired to provide Microsoft Graph the permissions the bot has been consented by the tenant admin Namespace : Microsoft.Graph.Communications.Client.Authentication Assembly : Microsoft.Graph.Communications.Client.dll Syntax public interface IRequestAuthenticationProvider Methods AuthenticateOutboundRequestAsync(HttpRequestMessage, String) Authenticates the specified request message. This method will be called any time there is an outbound request. This method should add any required headers for authentication (eg: Authorization). Declaration Task AuthenticateOutboundRequestAsync(HttpRequestMessage request, string tenant) Parameters Type Name Description HttpRequestMessage request The outbound http request object. String tenant The tenant for which this request belongs to. Returns Type Description Task The Task . SDK awaits on this task to make sure the bot has included the required headers. ValidateInboundRequestAsync(HttpRequestMessage) Validates the inbound request. This method will be called any time we have an incoming request. Returning IsValid false will result in a Forbidden response being created. SDK waits until a successful validation is returned along with tenant data in RequestValidationResult to fire any events. Declaration Task ValidateInboundRequestAsync(HttpRequestMessage request) Parameters Type Name Description HttpRequestMessage request The incoming request. Returns Type Description Task < RequestValidationResult > The RequestValidationResult structure." }, - "core/Microsoft.Graph.NotificationsExtensions.html": { - "href": "core/Microsoft.Graph.NotificationsExtensions.html", - "title": "Class NotificationsExtensions", - "keywords": "Class NotificationsExtensions Communications notifications extensions. Inheritance Object NotificationsExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class NotificationsExtensions Methods GetResourceData(CommsNotification) Gets the resource data. Declaration public static object GetResourceData(this CommsNotification notification) Parameters Type Name Description CommsNotification notification The notification. Returns Type Description Object The resource data object for the specified notification. GetResourceData(CommsNotification) Gets the resource data. Declaration public static T GetResourceData(this CommsNotification notification) Parameters Type Name Description CommsNotification notification The notification. Returns Type Description T The resource data T object for the specified notification. Type Parameters Name Description T The expected resource data type. SetResourceData(CommsNotification, Object) Sets the resource data. Declaration public static void SetResourceData(this CommsNotification notification, object data) Parameters Type Name Description CommsNotification notification The notification. Object data The data." + "calls/Microsoft.Graph.Communications.Calls.PlayOperationResult.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.PlayOperationResult.html", + "title": "Class PlayOperationResult", + "keywords": "Class PlayOperationResult Class to define parameters required for joining a meeting. Inheritance Object PlayOperationResult Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class PlayOperationResult Constructors PlayOperationResult(PlayPromptCompletionReason, ResultInfo) Initializes a new instance of the PlayOperationResult class. Declaration public PlayOperationResult(PlayPromptCompletionReason completionReason, ResultInfo resultInfo) Parameters Type Name Description PlayPromptCompletionReason completionReason The completion reason. ResultInfo resultInfo The result information. Properties CompletionReason Gets completion reason. Declaration public PlayPromptCompletionReason CompletionReason { get; } Property Value Type Description PlayPromptCompletionReason ResultInfo Gets the result information. Declaration public ResultInfo ResultInfo { get; } Property Value Type Description ResultInfo The result information." }, - "bot_media/Microsoft.Skype.Bots.Media.AudioSocketSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSocketSettings.html", - "title": "Class AudioSocketSettings", - "keywords": "Class AudioSocketSettings The settings to initialize the AudioSocket. Inheritance Object AudioSocketSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSocketSettings Constructors AudioSocketSettings() Declaration public AudioSocketSettings() Properties CallId An alphanumeric string that uniquely identifies a call Declaration public string CallId { get; set; } Property Value Type Description String ReceiveUnmixedMeetingAudio Allows the bot to receive separate unmixed audio buffers for individual speakers in a meeting. When set to true, up to four audio buffers, each corresponding to the top four active speakers, will be received at a time. Note: This feature is not yet available and setting this property to true will not have any effect for now. Declaration public bool ReceiveUnmixedMeetingAudio { get; set; } Property Value Type Description Boolean Remarks Unmixed audio is optimized for machine cognition (e.g., speech recognition) rather than for human perception (such as call recording and playback). StreamDirections The direction of the stream Declaration public StreamDirection StreamDirections { get; set; } Property Value Type Description StreamDirection SupportedAudioFormat The supported send/receive audio format. Declaration public AudioFormat SupportedAudioFormat { get; set; } Property Value Type Description AudioFormat" + "bot_media/Microsoft.Skype.Bots.Media.PerfCounterConfiguration.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.PerfCounterConfiguration.html", + "title": "Class PerfCounterConfiguration", + "keywords": "Class PerfCounterConfiguration Perf counter configuration Inheritance Object PerfCounterConfiguration Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class PerfCounterConfiguration Constructors PerfCounterConfiguration() Constructor Declaration public PerfCounterConfiguration() Properties UseMPAzureAppHostPerfCounterProvider If set to true, will use MPAzureAppHost's default perf counter provider which uses the registered win32 perf counters Otherwise, will use the in-memory MPPerfCounterProvider that doesn't load win32 perf counters Declaration public bool UseMPAzureAppHostPerfCounterProvider { get; set; } Property Value Type Description Boolean VerifyPerfCounterConfiguration Default is true If set to false, will not verify the perf counter configuration of the bot (MediaPerf.dll and/or MP perf counters) Declaration public bool VerifyPerfCounterConfiguration { get; set; } Property Value Type Description Boolean Methods IsValidConfiguration(PerfCounterConfiguration) Checks if the config is valid Declaration public static bool IsValidConfiguration(PerfCounterConfiguration perfConfig) Parameters Type Name Description PerfCounterConfiguration perfConfig Returns Type Description Boolean ToString() ToString override Declaration public override string ToString() Returns Type Description String Overrides Object.ToString()" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayerSettings.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayerSettings.html", - "title": "Class AudioVideoFramePlayerSettings", - "keywords": "Class AudioVideoFramePlayerSettings AudioVideoFramePlayer settings. This will help configure the player settings. Inheritance Object AudioVideoFramePlayerSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioVideoFramePlayerSettings Constructors AudioVideoFramePlayerSettings(AudioSettings, VideoSettings, UInt32) Constructor Declaration public AudioVideoFramePlayerSettings(AudioSettings audioSettings, VideoSettings videoSettings, uint minEnqueuedMediaLengthInMs) Parameters Type Name Description AudioSettings audioSettings BufferSize needs to be set to the size of AudioMediaBuffer to be sent VideoSettings videoSettings UInt32 minEnqueuedMediaLengthInMs Properties AudioSettings Audio settings Declaration public AudioSettings AudioSettings { get; set; } Property Value Type Description AudioSettings MinEnqueuedMediaLengthInMs The minimum length after which the player will raise the LowOnFrames event Declaration public uint MinEnqueuedMediaLengthInMs { get; set; } Property Value Type Description UInt32 VideoSettings Video Settings Declaration public VideoSettings VideoSettings { get; set; } Property Value Type Description VideoSettings" + "bot_media/Microsoft.Skype.Bots.Media.MediaQualityState.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaQualityState.html", + "title": "Enum MediaQualityState", + "keywords": "Enum MediaQualityState Indicates the media quality state Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaQualityState Fields Name Description Detected Detected Recovered Recovered" }, - "bot_media/Microsoft.Skype.Bots.Media.IAudioVideoFramePlayer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IAudioVideoFramePlayer.html", - "title": "Interface IAudioVideoFramePlayer", - "keywords": "Interface IAudioVideoFramePlayer Interface for the AudioVideoFramePlayer responsible for streaming real time audio video Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IAudioVideoFramePlayer Methods ClearAsync(Boolean, List) Clears media buffers from the param settings, if nothing is specified it will clear all the audio and video buffers that are in the queue Declaration Task ClearAsync(bool clearAudio = true, List videoFormats = null) Parameters Type Name Description Boolean clearAudio true will clear the audio buffers, default value is set to true List < VideoFormat > videoFormats list of video formats to clear, default value is null Returns Type Description Task EnqueueBuffersAsync(IList, IList) Enqueue the audio and video media buffers. Usage should be to enqueue the same audio and video length, if audio and video socket are active. Declaration Task EnqueueBuffersAsync(IList audioMediaBuffers, IList videoMediaBuffers) Parameters Type Name Description IList < AudioMediaBuffer > audioMediaBuffers IList < VideoMediaBuffer > videoMediaBuffers Returns Type Description Task ShutdownAsync() This will shutdown the player and clean the associated resources Declaration Task ShutdownAsync() Returns Type Description Task Events LowOnFrames This event will be raised if the player is low on frames Declaration event EventHandler LowOnFrames Event Type Type Description EventHandler < LowOnFramesEventArgs >" + "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthChangedEventArgs.html", + "title": "Class MediaPlatformHealthChangedEventArgs", + "keywords": "Class MediaPlatformHealthChangedEventArgs Event arguments of the MediaPlatformHealthChangedEvent providing the current and previous health status of the media platform. Inheritance Object EventArgs MediaPlatformHealthChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaPlatformHealthChangedEventArgs : EventArgs Constructors MediaPlatformHealthChangedEventArgs() Declaration public MediaPlatformHealthChangedEventArgs() Properties CurrentHealth The current health status. Declaration public MediaPlatformHealthStatus CurrentHealth { get; set; } Property Value Type Description MediaPlatformHealthStatus PreviousHealth The previous health status. Declaration public MediaPlatformHealthStatus PreviousHealth { get; set; } Property Value Type Description MediaPlatformHealthStatus" }, - "bot_media/Microsoft.Skype.Bots.Media.LogLevel.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.LogLevel.html", - "title": "Enum LogLevel", - "keywords": "Enum LogLevel Specifies a current logging level for a log line. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum LogLevel Fields Name Description Error Error Log Level Information Information Log Level Verbose Verbose Log Level Warning Warning Log Level" + "bot_media/Microsoft.Skype.Bots.Media.IVideoSocket.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.IVideoSocket.html", + "title": "Interface IVideoSocket", + "keywords": "Interface IVideoSocket Interface to a VideoSocket. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IVideoSocket : IDisposable Properties MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API Declaration MediaType MediaType { get; } Property Value Type Description MediaType SocketId The 0-based ID of the socket. This socket ID is useful to identify a socket in a multiview (ie. more than 1 video socket) call. The same ID is used in the event args of the VideoMediaReceived and VideoSendStatusChanged events that this class may raise. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the CreateMediaConfiguration API. Eg., if the collection of IVideoSocket objects in the CreateMediaConfiguration API contains {socketA, socketB, socketC}, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Before the call to CreateMediaConfiguration, the SocketId has a value of -1. Declaration int SocketId { get; } Property Value Type Description Int32 Methods RequestKeyFrame() Allows the application to request for key frame. Only valid for sockets with the ReceiveColorFormat as H264 Declaration void RequestKeyFrame() Send(VideoMediaBuffer) Allows the application to send a packet of video media if the application has configured the VideoSocket to send media. The application should be sending about 30 video frame buffers/second. The application must create a concrete class which derives from the VideoMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration void Send(VideoMediaBuffer buffer) Parameters Type Name Description VideoMediaBuffer buffer VideoMediaBuffer to send. SetReceiveBandwidthLimit(UInt32) Sets the bandwidth limit on the receive stream of the VideoSocket. This is only supported if the socket supports receiving H264 video format. It is recommended to wait for the VideoReceiveStatusChanged event with MediaReceiveStatus Active state during the initial call setup before applying the receive bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration void SetReceiveBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The receive bitrate SetSendBandwidthLimit(UInt32) Sets the bandwidth limit on the send stream of the VideoSocket. This is only supported if the socket supports sending H264 video formats. It is recommended to wait for the VideoSendStatusChanged event with MediaSendStatus Active state during the initial call setup before applying the send bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration void SetSendBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The send bitrate Subscribe(VideoResolution) Subscribe API for the 1:1 case. No need to specify the media source id. Declaration void Subscribe(VideoResolution preferredVideoResolution) Parameters Type Name Description VideoResolution preferredVideoResolution The preferred video resolution Subscribe(VideoResolution, UInt32) Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, it is possible to call this api to subscribe to a specific video using the media source id. Declaration void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId) Parameters Type Name Description VideoResolution preferredVideoResolution The requested video resolution, The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied UInt32 MediaSourceId Media source identifier of the video source to be received Unsubscribe() Unsubscribe to video, the VideMediaReceived events will stop raising video buffers. Declaration void Unsubscribe() UpdateVideoSendCapability(VideoSendCapability) Updates the send capabilities (such as SupportedSendVideoFormats or MaxConcurrentSendStreams) of the video socket, allowing the bot to add and remove video formats mid-call. Declaration void UpdateVideoSendCapability(VideoSendCapability capability) Parameters Type Name Description VideoSendCapability capability Events MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Remarks Note: this event can be raised even if there is no active video subscription; i.e., the VideoSocket is \"idle\" and not receiving media. MediaStreamQualityChanged The event is raised if a media stream quality change was detected Declaration event EventHandler MediaStreamQualityChanged Event Type Type Description EventHandler < VideoMediaStreamQualityChangedEventArgs > VideoKeyFrameNeeded If the application has configured the VideoSocket to receive encoded media, this event is raised each time a key frame is needed. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler VideoKeyFrameNeeded Event Type Type Description EventHandler < VideoKeyFrameNeededEventArgs > VideoMediaReceived If the application has configured the VideoSocket to receive media, this event is raised each time a packet of video media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application should be prepared to handle approximately 30 incoming video buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler VideoMediaReceived Event Type Type Description EventHandler < VideoMediaReceivedEventArgs > VideoReceiveStatusChanged If the application has configured the VideoSocket to receive media, this event is raised to inform the application when it is ready to receive media. When the status is active the application can subscribe to a video source, when inactive video subscription won't be allowed Declaration event EventHandler VideoReceiveStatusChanged Event Type Type Description EventHandler < VideoReceiveStatusChangedEventArgs > VideoSendStatusChanged If the application has configured the VideoSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a VideoMediaSendStatusChanged event indicating the SendStatus is Active, such media will be discarded. Declaration event EventHandler VideoSendStatusChanged Event Type Type Description EventHandler < VideoSendStatusChangedEventArgs >" }, - "core/Microsoft.Graph.Communications.Core.Notifications.FailedNotificationEventArgs.html": { - "href": "core/Microsoft.Graph.Communications.Core.Notifications.FailedNotificationEventArgs.html", - "title": "Class FailedNotificationEventArgs", - "keywords": "Class FailedNotificationEventArgs Event arguments used when exceptions are raised in callbacks. Inheritance Object FailedNotificationEventArgs Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Notifications Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class FailedNotificationEventArgs Constructors FailedNotificationEventArgs(NotificationEventArgs, Exception) Initializes a new instance of the FailedNotificationEventArgs class. Declaration public FailedNotificationEventArgs(NotificationEventArgs notification, Exception exception) Parameters Type Name Description NotificationEventArgs notification The NotificationEventArgs instance containing the event data. Exception exception The exception. Properties Exception Gets the exception being raised. Declaration public Exception Exception { get; } Property Value Type Description Exception Notification Gets the notification that was being processed while this callback failed. Declaration public NotificationEventArgs Notification { get; } Property Value Type Description NotificationEventArgs" + "calls_media/Microsoft.Graph.Communications.Calls.Media.AudioSendBuffer.html": { + "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.AudioSendBuffer.html", + "title": "Class AudioSendBuffer", + "keywords": "Class AudioSendBuffer Creates an Audio Buffer for Send and also implements Dispose Inheritance Object AudioSendBuffer Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public class AudioSendBuffer : AudioMediaBuffer Constructors AudioSendBuffer(IntPtr, Int64, AudioFormat, Int64) Initializes a new instance of the AudioSendBuffer class. Declaration public AudioSendBuffer(IntPtr data, long length, AudioFormat audioFormat, long timeStamp = 0L) Parameters Type Name Description IntPtr data The buffer data. Int64 length The length of the buffer. AudioFormat audioFormat The audio format. Int64 timeStamp The time stamp. Methods Dispose(Boolean) Declaration protected override void Dispose(bool disposing) Parameters Type Name Description Boolean disposing" }, "bot_media/Microsoft.Skype.Bots.Media.MediaType.html": { "href": "bot_media/Microsoft.Skype.Bots.Media.MediaType.html", "title": "Enum MediaType", "keywords": "Enum MediaType Indicates the media type of the socket. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaType Fields Name Description Audio Audio Data Reserved for the internal use. Vbss Video-based screen sharing (VBSS) Video Video" }, - "calls_media/Microsoft.Graph.Communications.Calls.Media.AudioSendBuffer.html": { - "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.AudioSendBuffer.html", - "title": "Class AudioSendBuffer", - "keywords": "Class AudioSendBuffer Creates an Audio Buffer for Send and also implements Dispose Inheritance Object AudioSendBuffer Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public class AudioSendBuffer : AudioMediaBuffer Constructors AudioSendBuffer(IntPtr, Int64, AudioFormat, Int64) Initializes a new instance of the AudioSendBuffer class. Declaration public AudioSendBuffer(IntPtr data, long length, AudioFormat audioFormat, long timeStamp = 0L) Parameters Type Name Description IntPtr data The buffer data. Int64 length The length of the buffer. AudioFormat audioFormat The audio format. Int64 timeStamp The time stamp. Methods Dispose(Boolean) Declaration protected override void Dispose(bool disposing) Parameters Type Name Description Boolean disposing" + "core/Microsoft.Graph.Communications.Core.Notifications.FailedNotificationEventArgs.html": { + "href": "core/Microsoft.Graph.Communications.Core.Notifications.FailedNotificationEventArgs.html", + "title": "Class FailedNotificationEventArgs", + "keywords": "Class FailedNotificationEventArgs Event arguments used when exceptions are raised in callbacks. Inheritance Object FailedNotificationEventArgs Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Notifications Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class FailedNotificationEventArgs Constructors FailedNotificationEventArgs(NotificationEventArgs, Exception) Initializes a new instance of the FailedNotificationEventArgs class. Declaration public FailedNotificationEventArgs(NotificationEventArgs notification, Exception exception) Parameters Type Name Description NotificationEventArgs notification The NotificationEventArgs instance containing the event data. Exception exception The exception. Properties Exception Gets the exception being raised. Declaration public Exception Exception { get; } Property Value Type Description Exception Notification Gets the notification that was being processed while this callback failed. Declaration public NotificationEventArgs Notification { get; } Property Value Type Description NotificationEventArgs" }, - "bot_media/Microsoft.Skype.Bots.Media.IVideoSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IVideoSocket.html", - "title": "Interface IVideoSocket", - "keywords": "Interface IVideoSocket Interface to a VideoSocket. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IVideoSocket : IDisposable Properties MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API Declaration MediaType MediaType { get; } Property Value Type Description MediaType SocketId The 0-based ID of the socket. This socket ID is useful to identify a socket in a multiview (ie. more than 1 video socket) call. The same ID is used in the event args of the VideoMediaReceived and VideoSendStatusChanged events that this class may raise. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the CreateMediaConfiguration API. Eg., if the collection of IVideoSocket objects in the CreateMediaConfiguration API contains {socketA, socketB, socketC}, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Before the call to CreateMediaConfiguration, the SocketId has a value of -1. Declaration int SocketId { get; } Property Value Type Description Int32 Methods RequestKeyFrame() Allows the application to request for key frame. Only valid for sockets with the ReceiveColorFormat as H264 Declaration void RequestKeyFrame() Send(VideoMediaBuffer) Allows the application to send a packet of video media if the application has configured the VideoSocket to send media. The application should be sending about 30 video frame buffers/second. The application must create a concrete class which derives from the VideoMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration void Send(VideoMediaBuffer buffer) Parameters Type Name Description VideoMediaBuffer buffer VideoMediaBuffer to send. SetReceiveBandwidthLimit(UInt32) Sets the bandwidth limit on the receive stream of the VideoSocket. This is only supported if the socket supports receiving H264 video format. It is recommended to wait for the VideoReceiveStatusChanged event with MediaReceiveStatus Active state during the initial call setup before applying the receive bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration void SetReceiveBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The receive bitrate SetSendBandwidthLimit(UInt32) Sets the bandwidth limit on the send stream of the VideoSocket. This is only supported if the socket supports sending H264 video formats. It is recommended to wait for the VideoSendStatusChanged event with MediaSendStatus Active state during the initial call setup before applying the send bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration void SetSendBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The send bitrate Subscribe(VideoResolution) Subscribe API for the 1:1 case. No need to specify the media source id. Declaration void Subscribe(VideoResolution preferredVideoResolution) Parameters Type Name Description VideoResolution preferredVideoResolution The preferred video resolution Subscribe(VideoResolution, UInt32) Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, it is possible to call this api to subscribe to a specific video using the media source id. Declaration void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId) Parameters Type Name Description VideoResolution preferredVideoResolution The requested video resolution, The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied UInt32 MediaSourceId Media source identifier of the video source to be received Unsubscribe() Unsubscribe to video, the VideMediaReceived events will stop raising video buffers. Declaration void Unsubscribe() UpdateVideoSendCapability(VideoSendCapability) Updates the send capabilities (such as SupportedSendVideoFormats or MaxConcurrentSendStreams) of the video socket, allowing the bot to add and remove video formats mid-call. Declaration void UpdateVideoSendCapability(VideoSendCapability capability) Parameters Type Name Description VideoSendCapability capability Events MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Remarks Note: this event can be raised even if there is no active video subscription; i.e., the VideoSocket is \"idle\" and not receiving media. MediaStreamQualityChanged The event is raised if a media stream quality change was detected Declaration event EventHandler MediaStreamQualityChanged Event Type Type Description EventHandler < VideoMediaStreamQualityChangedEventArgs > VideoKeyFrameNeeded If the application has configured the VideoSocket to receive encoded media, this event is raised each time a key frame is needed. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler VideoKeyFrameNeeded Event Type Type Description EventHandler < VideoKeyFrameNeededEventArgs > VideoMediaReceived If the application has configured the VideoSocket to receive media, this event is raised each time a packet of video media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application should be prepared to handle approximately 30 incoming video buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler VideoMediaReceived Event Type Type Description EventHandler < VideoMediaReceivedEventArgs > VideoReceiveStatusChanged If the application has configured the VideoSocket to receive media, this event is raised to inform the application when it is ready to receive media. When the status is active the application can subscribe to a video source, when inactive video subscription won't be allowed Declaration event EventHandler VideoReceiveStatusChanged Event Type Type Description EventHandler < VideoReceiveStatusChangedEventArgs > VideoSendStatusChanged If the application has configured the VideoSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a VideoMediaSendStatusChanged event indicating the SendStatus is Active, such media will be discarded. Declaration event EventHandler VideoSendStatusChanged Event Type Type Description EventHandler < VideoSendStatusChangedEventArgs >" + "bot_media/Microsoft.Skype.Bots.Media.LogLevel.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.LogLevel.html", + "title": "Enum LogLevel", + "keywords": "Enum LogLevel Specifies a current logging level for a log line. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum LogLevel Fields Name Description Error Error Log Level Information Information Log Level Verbose Verbose Log Level Warning Warning Log Level" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformHealthChangedEventArgs.html", - "title": "Class MediaPlatformHealthChangedEventArgs", - "keywords": "Class MediaPlatformHealthChangedEventArgs Event arguments of the MediaPlatformHealthChangedEvent providing the current and previous health status of the media platform. Inheritance Object EventArgs MediaPlatformHealthChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaPlatformHealthChangedEventArgs : EventArgs Constructors MediaPlatformHealthChangedEventArgs() Declaration public MediaPlatformHealthChangedEventArgs() Properties CurrentHealth The current health status. Declaration public MediaPlatformHealthStatus CurrentHealth { get; set; } Property Value Type Description MediaPlatformHealthStatus PreviousHealth The previous health status. Declaration public MediaPlatformHealthStatus PreviousHealth { get; set; } Property Value Type Description MediaPlatformHealthStatus" + "bot_media/Microsoft.Skype.Bots.Media.IAudioVideoFramePlayer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.IAudioVideoFramePlayer.html", + "title": "Interface IAudioVideoFramePlayer", + "keywords": "Interface IAudioVideoFramePlayer Interface for the AudioVideoFramePlayer responsible for streaming real time audio video Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IAudioVideoFramePlayer Methods ClearAsync(Boolean, List) Clears media buffers from the param settings, if nothing is specified it will clear all the audio and video buffers that are in the queue Declaration Task ClearAsync(bool clearAudio = true, List videoFormats = null) Parameters Type Name Description Boolean clearAudio true will clear the audio buffers, default value is set to true List < VideoFormat > videoFormats list of video formats to clear, default value is null Returns Type Description Task EnqueueBuffersAsync(IList, IList) Enqueue the audio and video media buffers. Usage should be to enqueue the same audio and video length, if audio and video socket are active. Declaration Task EnqueueBuffersAsync(IList audioMediaBuffers, IList videoMediaBuffers) Parameters Type Name Description IList < AudioMediaBuffer > audioMediaBuffers IList < VideoMediaBuffer > videoMediaBuffers Returns Type Description Task ShutdownAsync() This will shutdown the player and clean the associated resources Declaration Task ShutdownAsync() Returns Type Description Task Events LowOnFrames This event will be raised if the player is low on frames Declaration event EventHandler LowOnFrames Event Type Type Description EventHandler < LowOnFramesEventArgs >" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaQualityState.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaQualityState.html", - "title": "Enum MediaQualityState", - "keywords": "Enum MediaQualityState Indicates the media quality state Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaQualityState Fields Name Description Detected Detected Recovered Recovered" + "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayerSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayerSettings.html", + "title": "Class AudioVideoFramePlayerSettings", + "keywords": "Class AudioVideoFramePlayerSettings AudioVideoFramePlayer settings. This will help configure the player settings. Inheritance Object AudioVideoFramePlayerSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioVideoFramePlayerSettings Constructors AudioVideoFramePlayerSettings(AudioSettings, VideoSettings, UInt32) Constructor Declaration public AudioVideoFramePlayerSettings(AudioSettings audioSettings, VideoSettings videoSettings, uint minEnqueuedMediaLengthInMs) Parameters Type Name Description AudioSettings audioSettings BufferSize needs to be set to the size of AudioMediaBuffer to be sent VideoSettings videoSettings UInt32 minEnqueuedMediaLengthInMs Properties AudioSettings Audio settings Declaration public AudioSettings AudioSettings { get; set; } Property Value Type Description AudioSettings MinEnqueuedMediaLengthInMs The minimum length after which the player will raise the LowOnFrames event Declaration public uint MinEnqueuedMediaLengthInMs { get; set; } Property Value Type Description UInt32 VideoSettings Video Settings Declaration public VideoSettings VideoSettings { get; set; } Property Value Type Description VideoSettings" }, - "bot_media/Microsoft.Skype.Bots.Media.PerfCounterConfiguration.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.PerfCounterConfiguration.html", - "title": "Class PerfCounterConfiguration", - "keywords": "Class PerfCounterConfiguration Perf counter configuration Inheritance Object PerfCounterConfiguration Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class PerfCounterConfiguration Constructors PerfCounterConfiguration() Constructor Declaration public PerfCounterConfiguration() Properties UseMPAzureAppHostPerfCounterProvider If set to true, will use MPAzureAppHost's default perf counter provider which uses the registered win32 perf counters Otherwise, will use the in-memory MPPerfCounterProvider that doesn't load win32 perf counters Declaration public bool UseMPAzureAppHostPerfCounterProvider { get; set; } Property Value Type Description Boolean VerifyPerfCounterConfiguration Default is true If set to false, will not verify the perf counter configuration of the bot (MediaPerf.dll and/or MP perf counters) Declaration public bool VerifyPerfCounterConfiguration { get; set; } Property Value Type Description Boolean Methods IsValidConfiguration(PerfCounterConfiguration) Checks if the config is valid Declaration public static bool IsValidConfiguration(PerfCounterConfiguration perfConfig) Parameters Type Name Description PerfCounterConfiguration perfConfig Returns Type Description Boolean ToString() ToString override Declaration public override string ToString() Returns Type Description String Overrides Object.ToString()" + "bot_media/Microsoft.Skype.Bots.Media.AudioSocketSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSocketSettings.html", + "title": "Class AudioSocketSettings", + "keywords": "Class AudioSocketSettings The settings to initialize the AudioSocket. Inheritance Object AudioSocketSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSocketSettings Constructors AudioSocketSettings() Declaration public AudioSocketSettings() Properties CallId An alphanumeric string that uniquely identifies a call Declaration public string CallId { get; set; } Property Value Type Description String ReceiveUnmixedMeetingAudio Allows the bot to receive separate unmixed audio buffers for individual speakers in a meeting. When set to true, up to four audio buffers, each corresponding to the top four active speakers, will be received at a time. Note: This feature is not yet available and setting this property to true will not have any effect for now. Declaration public bool ReceiveUnmixedMeetingAudio { get; set; } Property Value Type Description Boolean Remarks Unmixed audio is optimized for machine cognition (e.g., speech recognition) rather than for human perception (such as call recording and playback). StreamDirections The direction of the stream Declaration public StreamDirection StreamDirections { get; set; } Property Value Type Description StreamDirection SupportedAudioFormat The supported send/receive audio format. Declaration public AudioFormat SupportedAudioFormat { get; set; } Property Value Type Description AudioFormat" }, - "calls/Microsoft.Graph.Communications.Calls.PlayOperationResult.html": { - "href": "calls/Microsoft.Graph.Communications.Calls.PlayOperationResult.html", - "title": "Class PlayOperationResult", - "keywords": "Class PlayOperationResult Class to define parameters required for joining a meeting. Inheritance Object PlayOperationResult Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class PlayOperationResult Constructors PlayOperationResult(PlayPromptCompletionReason, ResultInfo) Initializes a new instance of the PlayOperationResult class. Declaration public PlayOperationResult(PlayPromptCompletionReason completionReason, ResultInfo resultInfo) Parameters Type Name Description PlayPromptCompletionReason completionReason The completion reason. ResultInfo resultInfo The result information. Properties CompletionReason Gets completion reason. Declaration public PlayPromptCompletionReason CompletionReason { get; } Property Value Type Description PlayPromptCompletionReason ResultInfo Gets the result information. Declaration public ResultInfo ResultInfo { get; } Property Value Type Description ResultInfo The result information." + "core/Microsoft.Graph.NotificationsExtensions.html": { + "href": "core/Microsoft.Graph.NotificationsExtensions.html", + "title": "Class NotificationsExtensions", + "keywords": "Class NotificationsExtensions Communications notifications extensions. Inheritance Object NotificationsExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class NotificationsExtensions Methods GetResourceData(CommsNotification) Gets the resource data. Declaration public static object GetResourceData(this CommsNotification notification) Parameters Type Name Description CommsNotification notification The notification. Returns Type Description Object The resource data object for the specified notification. GetResourceData(CommsNotification) Gets the resource data. Declaration public static T GetResourceData(this CommsNotification notification) Parameters Type Name Description CommsNotification notification The notification. Returns Type Description T The resource data T object for the specified notification. Type Parameters Name Description T The expected resource data type. SetResourceData(CommsNotification, Object) Sets the resource data. Declaration public static void SetResourceData(this CommsNotification notification, object data) Parameters Type Name Description CommsNotification notification The notification. Object data The data." }, - "client/Microsoft.Graph.Communications.Client.Authentication.IRequestAuthenticationProvider.html": { - "href": "client/Microsoft.Graph.Communications.Client.Authentication.IRequestAuthenticationProvider.html", - "title": "Interface IRequestAuthenticationProvider", - "keywords": "Interface IRequestAuthenticationProvider The authentication provider interface. This is used to authenticate Inbound requests from Microsoft Graph. It validates the request was issued by Microsoft Graph. Outbound requests to Microsoft Graph. Tenant token is acquired to provide Microsoft Graph the permissions the bot has been consented by the tenant admin Namespace : Microsoft.Graph.Communications.Client.Authentication Assembly : Microsoft.Graph.Communications.Client.dll Syntax public interface IRequestAuthenticationProvider Methods AuthenticateOutboundRequestAsync(HttpRequestMessage, String) Authenticates the specified request message. This method will be called any time there is an outbound request. This method should add any required headers for authentication (eg: Authorization). Declaration Task AuthenticateOutboundRequestAsync(HttpRequestMessage request, string tenant) Parameters Type Name Description HttpRequestMessage request The outbound http request object. String tenant The tenant for which this request belongs to. Returns Type Description Task The Task . SDK awaits on this task to make sure the bot has included the required headers. ValidateInboundRequestAsync(HttpRequestMessage) Validates the inbound request. This method will be called any time we have an incoming request. Returning IsValid false will result in a Forbidden response being created. SDK waits until a successful validation is returned along with tenant data in RequestValidationResult to fire any events. Declaration Task ValidateInboundRequestAsync(HttpRequestMessage request) Parameters Type Name Description HttpRequestMessage request The incoming request. Returns Type Description Task < RequestValidationResult > The RequestValidationResult structure." + "core/Microsoft.Graph.IdentitySetExtensions.html": { + "href": "core/Microsoft.Graph.IdentitySetExtensions.html", + "title": "Class IdentitySetExtensions", + "keywords": "Class IdentitySetExtensions Extensions for graph api contracts Inheritance Object IdentitySetExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class IdentitySetExtensions Methods GetApplicationInstance(IdentitySet) Gets the application instance identity from identity set. This is part of additional data. Declaration public static Identity GetApplicationInstance(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetEncrypted(IdentitySet) Get the encrypted identity part of the additional data This identity must be retrieved when other identities are not listed Declaration public static Identity GetEncrypted(this IdentitySet identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identity The identity Returns Type Description Microsoft.Graph.Identity The encrypted identity GetEnumerator(IdentitySet) Gets the enumerator for the Microsoft.Graph.IdentitySet . Declaration public static IEnumerable GetEnumerator(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description IEnumerable < Microsoft.Graph.Identity > The IEnumerable for the Microsoft.Graph.IdentitySet . GetGuest(IdentitySet) Gets the guest identity from identity set. This is part of additional data. Declaration public static Identity GetGuest(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetPhone(IdentitySet) Gets the application instance identity from identity set. This is part of additional data. Declaration public static Identity GetPhone(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Identity GetPrimaryIdentity(IdentitySet) Gets the primary identity from the specified Microsoft.Graph.IdentitySet . The priority order is: User, Guest, Encrypted, Application Instance, Application, Phone Declaration public static Identity GetPrimaryIdentity(this IdentitySet identitySet) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Returns Type Description Microsoft.Graph.Identity Primary Identity GetTenantId(Identity) Gets the tenant identifier. Declaration public static string GetTenantId(this Identity identity) Parameters Type Name Description Microsoft.Graph.Identity identity The identity. Returns Type Description String The tenant identifier string. SetApplicationInstance(IdentitySet, Identity) Sets the application instance identity in identity set. This is part of additional data. Declaration public static void SetApplicationInstance(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetEncrypted(IdentitySet, Identity) Sets the encrypted identity to the additional data This identity must be retrieved when other identities are not listed Declaration public static void SetEncrypted(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity SetGuest(IdentitySet, Identity) Sets the guest identity in identity set. This is part of additional data. Declaration public static void SetGuest(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetPhone(IdentitySet, Identity) Sets the application instance identity in identity set. This is part of additional data. Declaration public static void SetPhone(this IdentitySet identitySet, Identity identity) Parameters Type Name Description Microsoft.Graph.IdentitySet identitySet The identity set. Microsoft.Graph.Identity identity The identity. SetTenantId(Identity, String) Sets the tenant identifier. Declaration public static void SetTenantId(this Identity identity, string tenantId) Parameters Type Name Description Microsoft.Graph.Identity identity The identity. String tenantId The tenant identifier." }, - "core/Microsoft.Graph.Communications.Core.Transport.CallbackResponseType.html": { - "href": "core/Microsoft.Graph.Communications.Core.Transport.CallbackResponseType.html", - "title": "Enum CallbackResponseType", - "keywords": "Enum CallbackResponseType Type of responses returned to the bot Namespace : Microsoft.Graph.Communications.Core.Transport Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum CallbackResponseType Fields Name Description Accepted The request was accepted or processed. BadRequest The request was semantically/syntactically invalid. InternalServerError The request resulted in an internal server error. NoContent The request was accepted or processed and returns no content. NotFound The call for the incoming callback or notification is no longer active. Unauthorized The request was not authorized by the callee." + "core/Microsoft.Graph.Culture.html": { + "href": "core/Microsoft.Graph.Culture.html", + "title": "Enum Culture", + "keywords": "Enum Culture The enum Culture. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum Culture Fields Name Description EnUs En Us" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.AadApplicationIdentity.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.AadApplicationIdentity.html", - "title": "Class AadApplicationIdentity", - "keywords": "Class AadApplicationIdentity The application identity in Azure AD. Inheritance Object AadApplicationIdentity Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class AadApplicationIdentity Remarks For better logging experience, all property names should be specific enough. Avoid using generic name such as Id, Name, etc. Constructors AadApplicationIdentity() Declaration public AadApplicationIdentity() Properties AppId Gets or sets the id of application. Declaration public string AppId { get; set; } Property Value Type Description String AppName Gets or sets the name of application. Declaration public string AppName { get; set; } Property Value Type Description String Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "core/Microsoft.Graph.Communications.Core.html": { + "href": "core/Microsoft.Graph.Communications.Core.html", + "title": "Namespace Microsoft.Graph.Communications.Core", + "keywords": "Namespace Microsoft.Graph.Communications.Core Classes CommsConstants The communications constants. CommsConstants.Headers The headers. CommsConstants.Serialization The serialization." }, - "core/Microsoft.Graph.ChangeType.html": { - "href": "core/Microsoft.Graph.ChangeType.html", - "title": "Enum ChangeType", - "keywords": "Enum ChangeType The enum ChangeType. Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public enum ChangeType Fields Name Description Created Created Deleted Deleted Updated Updated" + "core/Microsoft.Graph.Communications.Core.CommsConstants.html": { + "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.html", + "title": "Class CommsConstants", + "keywords": "Class CommsConstants The communications constants. Inheritance Object CommsConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class CommsConstants Fields ResourceData The resource data. Declaration public const string ResourceData = \"resourceData\" Field Value Type Description String VisibleToCastle Visible to property added to InternalsVisibleTo Castle signed builds. Declaration public const string VisibleToCastle = \", PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7\" Field Value Type Description String VisibleToMicrosoft Visible to property added to InternalsVisibleTo Microsoft signed builds. Declaration public const string VisibleToMicrosoft = \", PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9\" Field Value Type Description String" }, - "core/Microsoft.Graph.CommsNotification.html": { - "href": "core/Microsoft.Graph.CommsNotification.html", - "title": "Class CommsNotification", - "keywords": "Class CommsNotification The type CommsNotification. Inheritance Object CommsNotification Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class CommsNotification Constructors CommsNotification() Declaration public CommsNotification() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ChangeType Gets or sets changeType. Declaration public ChangeType? ChangeType { get; set; } Property Value Type Description Nullable < ChangeType > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Resource Gets or sets resource. Declaration public string Resource { get; set; } Property Value Type Description String Extension Methods NotificationsExtensions.SetResourceData(CommsNotification, Object) NotificationsExtensions.GetResourceData(CommsNotification) NotificationsExtensions.GetResourceData(CommsNotification) NotificationProcessorExtensions.ExtractResouceData(CommsNotification)" + "core/Microsoft.Graph.Communications.Core.CommsConstants.Serialization.html": { + "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.Serialization.html", + "title": "Class CommsConstants.Serialization", + "keywords": "Class CommsConstants.Serialization The serialization. Inheritance Object CommsConstants.Serialization Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Serialization Fields ODataType The OData type. Declaration public const string ODataType = \"@odata.type\" Field Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioFormat.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioFormat.html", - "title": "Enum AudioFormat", - "keywords": "Enum AudioFormat The audio format. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum AudioFormat Fields Name Description Pcm16K PCM 16K Pcm44KStereo PCM 44.1K Stereo" + "core/Microsoft.Graph.Communications.Core.CommsConstants.Headers.html": { + "href": "core/Microsoft.Graph.Communications.Core.CommsConstants.Headers.html", + "title": "Class CommsConstants.Headers", + "keywords": "Class CommsConstants.Headers The headers. Inheritance Object CommsConstants.Headers Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Headers Fields ChainId The chain identifier header. Declaration public const string ChainId = \"X-Microsoft-Skype-Chain-ID\" Field Value Type Description String ClientRequestId The client request identifier header. Declaration public const string ClientRequestId = \"client-request-id\" Field Value Type Description String MessageId The message identifier header. Declaration public const string MessageId = \"X-Microsoft-Skype-Message-ID\" Field Value Type Description String ScenarioId The scenario identifier header. Declaration public const string ScenarioId = \"scenario-id\" Field Value Type Description String Tenant The tenant Declaration public const string Tenant = \"X-Microsoft-Tenant\" Field Value Type Description String ThrowSiteHeaderName The throw site header name. Declaration public const string ThrowSiteHeaderName = \"X-ThrowSite\" Field Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.DataType.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataType.html", - "title": "Enum DataType", - "keywords": "Enum DataType Reserved for the internal use. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum DataType Fields Name Description Transcript Reserved for the internal use." + "common/Microsoft.Graph.Communications.Common.Telemetry.TransactionDirection.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.TransactionDirection.html", + "title": "Enum TransactionDirection", + "keywords": "Enum TransactionDirection Direction for request message. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum TransactionDirection Fields Name Description Incoming The incoming request message. Outgoing The outgoing request message. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(TransactionDirection, String, String) Validator.Equals(TransactionDirection, String) Validator.NotEquals(TransactionDirection, String, String)" }, - "bot_media/Microsoft.Skype.Bots.Media.IAudioSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IAudioSocket.html", - "title": "Interface IAudioSocket", - "keywords": "Interface IAudioSocket Interface to an AudioSocket. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IAudioSocket : IDisposable Methods Send(AudioMediaBuffer) Allows the application to send a packet of audio media if the application has configured the AudioSocket to send media. The application should be sending about 50 packets of audio media per second; each buffer containing 20 milliseconds worth of audio content. The application must create a concrete class which derives from the AudioMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration void Send(AudioMediaBuffer buffer) Parameters Type Name Description AudioMediaBuffer buffer AudioMediaBuffer to send. Events AudioMediaReceived If the application has configured the AudioSocket to receive media, this event is raised each time a packet of audio media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application must be able to handle at least 50 incoming audio buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration event EventHandler AudioMediaReceived Event Type Type Description EventHandler < AudioMediaReceivedEventArgs > AudioSendStatusChanged If the application has configured the AudioSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a MediaSendStatusChanged event indicating the SendStatus is Started. Declaration event EventHandler AudioSendStatusChanged Event Type Type Description EventHandler < AudioSendStatusChangedEventArgs > DominantSpeakerChanged This event is raised when there is a change in the dominant speaker in the conference. If there is no dominant speaker in the conference, the CurrentDominantSpeaker argument in the event will have the value None (0xFFFFFFFF). Declaration event EventHandler DominantSpeakerChanged Event Type Type Description EventHandler < DominantSpeakerChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > ToneReceived This event is raised when the DTMF tone is received. ToneId enum in the event arguments indicates the tone value. Declaration event EventHandler ToneReceived Event Type Type Description EventHandler < ToneReceivedEventArgs >" + "bot_media/Microsoft.Skype.Bots.Media.AudioLowOnFramesEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioLowOnFramesEventArgs.html", + "title": "Class AudioLowOnFramesEventArgs", + "keywords": "Class AudioLowOnFramesEventArgs Audio low on frame event args Inheritance Object EventArgs LowOnFramesEventArgs AudioLowOnFramesEventArgs Inherited Members LowOnFramesEventArgs.MediaType LowOnFramesEventArgs.RemainingMediaLengthInMS EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioLowOnFramesEventArgs : LowOnFramesEventArgs Constructors AudioLowOnFramesEventArgs() Declaration public AudioLowOnFramesEventArgs()" }, - "bot_media/Microsoft.Skype.Bots.Media.DataMediaReceivedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataMediaReceivedEventArgs.html", - "title": "Class DataMediaReceivedEventArgs", - "keywords": "Class DataMediaReceivedEventArgs Reserved for the internal use. Inheritance Object EventArgs DataMediaReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DataMediaReceivedEventArgs : EventArgs Constructors DataMediaReceivedEventArgs() Declaration public DataMediaReceivedEventArgs() Properties Buffer Reserved for the internal use. Declaration public DataMediaBuffer Buffer { get; } Property Value Type Description DataMediaBuffer" + "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayer.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioVideoFramePlayer.html", + "title": "Class AudioVideoFramePlayer", + "keywords": "Class AudioVideoFramePlayer AudioVideoFramePlayer is responsible for streaming real time audio and video buffers. This frame player will handle audio and video sync from the audio and video buffer's timestamps Inheritance Object AudioVideoFramePlayer Implements IAudioVideoFramePlayer Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioVideoFramePlayer : IAudioVideoFramePlayer Constructors AudioVideoFramePlayer(AudioSocket, VideoSocket, AudioVideoFramePlayerSettings) Constructor for the audio video frame player. Declaration public AudioVideoFramePlayer(AudioSocket audioSocket, VideoSocket videoSocket, AudioVideoFramePlayerSettings audioVideoFramePlayerSettings) Parameters Type Name Description AudioSocket audioSocket VideoSocket videoSocket AudioVideoFramePlayerSettings audioVideoFramePlayerSettings Methods ClearAsync(Boolean, List) Clear the enqueued buffers. This will also invoke Dispose() on the buffers still in the queue. Declaration public Task ClearAsync(bool clearAudio = true, List videoFormats = null) Parameters Type Name Description Boolean clearAudio true will clear the audio buffers, Default value is set to true List < VideoFormat > videoFormats list of video formats to clear, default is null Returns Type Description Task EnqueueBuffersAsync(IList, IList) Enqueue the audio and video media buffers. Usage should be to enqueue the same audio and video length, if audio and video sockets are active. Declaration public Task EnqueueBuffersAsync(IList audioMediaBuffers, IList videoMediaBuffers) Parameters Type Name Description IList < AudioMediaBuffer > audioMediaBuffers IList < VideoMediaBuffer > videoMediaBuffers Returns Type Description Task ShutdownAsync() Shuts down the player and releases allocated resources Declaration public Task ShutdownAsync() Returns Type Description Task Events LowOnFrames Event to signal the player is low on frames Declaration public event EventHandler LowOnFrames Event Type Type Description EventHandler < LowOnFramesEventArgs > Implements IAudioVideoFramePlayer" }, - "bot_media/Microsoft.Skype.Bots.Media.DominantSpeakerChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DominantSpeakerChangedEventArgs.html", - "title": "Class DominantSpeakerChangedEventArgs", - "keywords": "Class DominantSpeakerChangedEventArgs Event arguments of the DominantSpeakerChanged event. Inheritance Object EventArgs DominantSpeakerChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class DominantSpeakerChangedEventArgs : EventArgs Constructors DominantSpeakerChangedEventArgs() Declaration public DominantSpeakerChangedEventArgs() Fields None Constant value which indicates there is no dominant speaker in the conference. Declaration public const uint None = 4294967295U Field Value Type Description UInt32 Properties CurrentDominantSpeaker Current dominant speaker in the conference. The value is the MediaSourceId (MSI) of the dominant speaker in the conference. If there is no dominant speaker in the conference this value will be None (0xFFFFFFFF). Declaration public uint CurrentDominantSpeaker { get; set; } Property Value Type Description UInt32 DominantSpeakerHistory History of the dominant speakers. However, DominantSpeakerHistory won't contain any element to indicate the absence of dominant speaker in the conference. Declaration public uint[] DominantSpeakerHistory { get; set; } Property Value Type Description UInt32 []" + "bot_media/Microsoft.Skype.Bots.Media.ToneId.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.ToneId.html", + "title": "Enum ToneId", + "keywords": "Enum ToneId DTMF Tone Id enum. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum ToneId Fields Name Description A Tone A B Tone B C Tone C D Tone D Flash Tone flash Pound Pound tone Star Star tone Tone0 Tone 0 Tone1 Tone 1 Tone2 Tone 2 Tone3 Tone 3 Tone4 Tone 4 Tone5 Tone 5 Tone6 Tone 6 Tone7 Tone 7 Tone8 Tone 8 Tone9 Tone 9" }, - "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatformLogger.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.IMediaPlatformLogger.html", - "title": "Interface IMediaPlatformLogger", - "keywords": "Interface IMediaPlatformLogger Interface for collecting MediaPlatform logs from the Bots.Media library. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public interface IMediaPlatformLogger Methods WriteLog(LogLevel, String) Log a trace statement Declaration void WriteLog(LogLevel level, string logStatement) Parameters Type Name Description LogLevel level Level of log String logStatement The log itself." + "bot_media/Microsoft.Skype.Bots.Media.MediaStreamFailureEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaStreamFailureEventArgs.html", + "title": "Class MediaStreamFailureEventArgs", + "keywords": "Class MediaStreamFailureEventArgs Event arguments of the MediaStreamFailure event. Inheritance Object EventArgs MediaStreamFailureEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaStreamFailureEventArgs : EventArgs Constructors MediaStreamFailureEventArgs() Declaration public MediaStreamFailureEventArgs()" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformFactory.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformFactory.html", - "title": "Class MediaPlatformFactory", - "keywords": "Class MediaPlatformFactory MediaPlatformFactory that is used to create IMediaPlatform. Inheritance Object MediaPlatformFactory Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public static class MediaPlatformFactory Methods CreateMediaPlatform() Creates the Media Platform for bots. The platform has to be initialized before it is used. Declaration public static IMediaPlatform CreateMediaPlatform() Returns Type Description IMediaPlatform The interface to the Media Platform." + "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventFormatterFlags.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventFormatterFlags.html", + "title": "Enum LogEventFormatterFlags", + "keywords": "Enum LogEventFormatterFlags The log event formatter enums Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum LogEventFormatterFlags Fields Name Description ForDefault For default case, which includes all fields. ForILoggerFactory For ILoggerFactory binding format, which doesn't include component and level, as these fields are set in ILogger outside of message. IncludeManagedThreadId Managed thread ID IncludeProcessId Process ID IncludesCallInfo Call info IncludesComponent Component IncludesCorrelationId Correlation ID IncludesLevel Level IncludesProperties Properties IncludesTimestamp Timestamp Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(LogEventFormatterFlags, String, String) Validator.Equals(LogEventFormatterFlags, String) Validator.NotEquals(LogEventFormatterFlags, String, String)" }, - "bot_media/Microsoft.Skype.Bots.Media.MediaSendStatus.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.MediaSendStatus.html", - "title": "Enum MediaSendStatus", - "keywords": "Enum MediaSendStatus Indicates whether an AudioSocket or VideoSocket is capable of sending media. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum MediaSendStatus Fields Name Description Active Media can be sent Inactive Media cannot be sent" + "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpLogData.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.HttpLogData.html", + "title": "Class HttpLogData", + "keywords": "Class HttpLogData The log data for http trace. Inheritance Object HttpLogData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.HttpLogging Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class HttpLogData Constructors HttpLogData() Declaration public HttpLogData() Properties Content Gets or sets the content. Declaration public string Content { get; set; } Property Value Type Description String Headers Gets or sets the headers. Declaration public IEnumerable Headers { get; set; } Property Value Type Description IEnumerable < String > HeadersString Gets the headers string. Declaration public string HeadersString { get; } Property Value Type Description String Method Gets or sets the method. Declaration public string Method { get; set; } Property Value Type Description String ResponseStatusCode Gets or sets the response status code. Declaration public int? ResponseStatusCode { get; set; } Property Value Type Description Nullable < Int32 > ResponseTime Gets or sets the response time in milliseconds. Declaration public long? ResponseTime { get; set; } Property Value Type Description Nullable < Int64 > TraceType Gets or sets the trace type. Declaration public HttpTraceType TraceType { get; set; } Property Value Type Description HttpTraceType TransactionDirection Gets or sets the transaction direction. Declaration public TransactionDirection TransactionDirection { get; set; } Property Value Type Description TransactionDirection Url Gets or sets the url. Declaration public string Url { get; set; } Property Value Type Description String Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "bot_media/Microsoft.Skype.Bots.Media.StreamDirection.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.StreamDirection.html", - "title": "Enum StreamDirection", - "keywords": "Enum StreamDirection Stream directionality, from the point-of-view of the local media endpoint. Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum StreamDirection Fields Name Description Inactive Media cannot be sent nor received Recvonly Media can be received but not sent Sendonly Media can be sent but not received Sendrecv Media can be sent and received" + "common/Microsoft.Graph.Communications.Common.SecureStringUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.SecureStringUtils.html", + "title": "Class SecureStringUtils", + "keywords": "Class SecureStringUtils SecureString Utilities Inheritance Object SecureStringUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class SecureStringUtils Methods ConvertToUnsecureString(SecureString) Converts a SecureString into a managed string for consumption Declaration public static string ConvertToUnsecureString(this SecureString secureString) Parameters Type Name Description SecureString secureString The SecureString to convert into a managed string Returns Type Description String String representation of the SecureString" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoKeyFrameNeededEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoKeyFrameNeededEventArgs.html", - "title": "Class VideoKeyFrameNeededEventArgs", - "keywords": "Class VideoKeyFrameNeededEventArgs Event arguments of a VideoKeyFrameNeeded event. Inheritance Object EventArgs VideoKeyFrameNeededEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoKeyFrameNeededEventArgs : EventArgs Constructors VideoKeyFrameNeededEventArgs() Declaration public VideoKeyFrameNeededEventArgs() Properties MediaType MediaType of the video buffer. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32 VideoFormats VideoFormats for which keyframe is needed Declaration public VideoFormat[] VideoFormats { get; set; } Property Value Type Description VideoFormat []" + "common/Microsoft.Graph.Communications.Common.SafeNativeMethods.html": { + "href": "common/Microsoft.Graph.Communications.Common.SafeNativeMethods.html", + "title": "Class SafeNativeMethods", + "keywords": "Class SafeNativeMethods Contains p/invokes and associated wrappers for the Native methods Inheritance Object SafeNativeMethods Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class SafeNativeMethods Methods GetPreciseSystemTime() Gets precise system time Declaration public static DateTime GetPreciseSystemTime() Returns Type Description DateTime Precise system time" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSendStatusChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSendStatusChangedEventArgs.html", - "title": "Class VideoSendStatusChangedEventArgs", - "keywords": "Class VideoSendStatusChangedEventArgs Event arguments of a VideoSendStatusChanged event. Inheritance Object EventArgs VideoSendStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSendStatusChangedEventArgs : EventArgs Constructors VideoSendStatusChangedEventArgs() Declaration public VideoSendStatusChangedEventArgs() Properties MediaSendStatus The media send status. Declaration public MediaSendStatus MediaSendStatus { get; set; } Property Value Type Description MediaSendStatus MediaType MediaType of the video socket raising the event. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType PreferredEncodedVideoSourceFormats The encoded video source formats needed. Declaration public VideoFormat[] PreferredEncodedVideoSourceFormats { get; set; } Property Value Type Description VideoFormat [] PreferredVideoSourceFormat The preferred video source format if raw video was sent. Declaration public VideoFormat PreferredVideoSourceFormat { get; set; } Property Value Type Description VideoFormat SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32" + "common/Microsoft.Graph.Communications.Common.MetricUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.MetricUtils.html", + "title": "Class MetricUtils", + "keywords": "Class MetricUtils The metric utils class Inheritance Object MetricUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class MetricUtils Methods MeasureDurationAsync(Func, Action) Mesure the duration of task. Declaration public static Task MeasureDurationAsync(Func task, Action setMetricTask) Parameters Type Name Description Func < Task > task The task to measure Action < Int64 > setMetricTask The task to set metric Returns Type Description Task The task for wait" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.ILogEventFormatter.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.ILogEventFormatter.html", - "title": "Interface ILogEventFormatter", - "keywords": "Interface ILogEventFormatter Interface to format log event. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public interface ILogEventFormatter Methods Format(LogEvent) Format the log event. Declaration string Format(LogEvent logEvent) Parameters Type Name Description LogEvent logEvent The log event Returns Type Description String The formatted text. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "common/Microsoft.Graph.Communications.Common.MathUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.MathUtils.html", + "title": "Class MathUtils", + "keywords": "Class MathUtils Various math utilities Inheritance Object MathUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class MathUtils Methods CeilingRound(Int32, Int32) Gets the ceiling value after rounding. Declaration public static int CeilingRound(this int n, int round) Parameters Type Name Description Int32 n Value to round up. Int32 round Rounding increment. Returns Type Description Int32 Ceiling value." }, - "common/Microsoft.Graph.Communications.Common.Telemetry.JsonConverters.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.JsonConverters.html", - "title": "Class JsonConverters", - "keywords": "Class JsonConverters Json converters. Inheritance Object JsonConverters Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class JsonConverters" + "core/Microsoft.Graph.ResultInfo.html": { + "href": "core/Microsoft.Graph.ResultInfo.html", + "title": "Class ResultInfo", + "keywords": "Class ResultInfo The type ResultInfo. Inheritance Object ResultInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class ResultInfo Constructors ResultInfo() Declaration public ResultInfo() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > Code Gets or sets code. Declaration public int? Code { get; set; } Property Value Type Description Nullable < Int32 > Message Gets or sets message. Declaration public string Message { get; set; } Property Value Type Description String ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String SubCode Gets or sets subCode. Declaration public int? SubCode { get; set; } Property Value Type Description Nullable < Int32 >" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.LogEvent.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEvent.html", - "title": "Class LogEvent", - "keywords": "Class LogEvent Log data Inheritance Object LogEvent Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class LogEvent Constructors LogEvent() Declaration public LogEvent() Properties CallerInfo Gets or sets the caller information Declaration public CallerInfo CallerInfo { get; set; } Property Value Type Description CallerInfo CallerInfoString Gets the caller information string. Declaration public string CallerInfoString { get; } Property Value Type Description String Component Gets or sets the component in which the log is created. Declaration public string Component { get; set; } Property Value Type Description String CorrelationId Gets or sets the correlation id Declaration public Guid CorrelationId { get; set; } Property Value Type Description Guid EventType Gets or sets the type of the event. Declaration public LogEventType EventType { get; set; } Property Value Type Description LogEventType Level Gets or sets the trace level of the event. Declaration public TraceLevel Level { get; set; } Property Value Type Description TraceLevel LogicalThreadId Gets or sets the logical thread identifier. Declaration public uint LogicalThreadId { get; set; } Property Value Type Description UInt32 ManagedThreadId Gets or sets the thread ID. Declaration public int ManagedThreadId { get; set; } Property Value Type Description Int32 Message Gets or sets the Description of the event. Declaration public string Message { get; set; } Property Value Type Description String ProcessId Gets or sets the process ID. Declaration public int ProcessId { get; set; } Property Value Type Description Int32 Properties Gets or sets the Custom properties for the event. Declaration public IReadOnlyDictionary Properties { get; set; } Property Value Type Description IReadOnlyDictionary < Type , Object > PropertiesString Gets the custom properties in string format. Declaration public string PropertiesString { get; } Property Value Type Description String RequestId Gets or sets the request identifier. Declaration public Guid RequestId { get; set; } Property Value Type Description Guid Timestamp Gets or sets the Timestamp of the event. Declaration public DateTime Timestamp { get; set; } Property Value Type Description DateTime Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String) LoggingExtensions.GetTypedProperties(LogEvent, Type) LoggingExtensions.GetTypedProperty(LogEvent)" + "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.html": { + "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.html", + "title": "Class ErrorConstants", + "keywords": "Class ErrorConstants Error Constants Inheritance Object ErrorConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class ErrorConstants" }, - "bot_media/Microsoft.Skype.Bots.Media.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.html", - "title": "Namespace Microsoft.Skype.Bots.Media", - "keywords": "Namespace Microsoft.Skype.Bots.Media Classes AudioLowOnFramesEventArgs Audio low on frame event args AudioMediaBuffer Represents an unmanaged buffer containing audio media data. AudioMediaReceivedEventArgs Event arguments of an AudioMediaReceived event. AudioSendStatusChangedEventArgs Event arguments of an AudioSendStatusChanged event. AudioSettings Audio frame player settings AudioSocket Provides Send and Receive I/O access to an audio stream. AudioSocketSettings The settings to initialize the AudioSocket. AudioVideoFramePlayer AudioVideoFramePlayer is responsible for streaming real time audio and video buffers. This frame player will handle audio and video sync from the audio and video buffer's timestamps AudioVideoFramePlayerSettings AudioVideoFramePlayer settings. This will help configure the player settings. DataMediaBuffer Reserved for the internal use. DataMediaReceivedEventArgs Reserved for the internal use. DataSendStatusChangedEventArgs Reserved for the internal use. DataSocket Reserved for the internal use. DataSocketSettings Reserved for the internal use. DominantSpeakerChangedEventArgs Event arguments of the DominantSpeakerChanged event. LowOnFramesEventArgs LowOnFrames event arguments MediaPlatform This class represents the Skype Bots Media Platform. MediaPlatformFactory MediaPlatformFactory that is used to create IMediaPlatform. MediaPlatformHealthChangedEventArgs Event arguments of the MediaPlatformHealthChangedEvent providing the current and previous health status of the media platform. MediaPlatformInstanceSettings Class that stores the settings of the Azure instance hosting the Bot Media Platform. MediaPlatformSettings Class that stores settings needed to initialize Bot Media Platform. MediaStreamFailureEventArgs Event arguments of the MediaStreamFailure event. PerfCounterConfiguration Perf counter configuration PortRange The Port range SkypeMediaException Root class for the exceptions that are specific to the Skype Media Bots SDK, ie. exceptions other than the standard .NET Framework exceptions. ToneReceivedEventArgs Event arguments of the ToneReceived event. VideoFormat VideoFormat VideoKeyFrameNeededEventArgs Event arguments of a VideoKeyFrameNeeded event. VideoLowOnFramesEventArgs Video low on frame event args VideoMediaBuffer Represents an unmanaged buffer containing video media data. VideoMediaReceivedEventArgs Event arguments of a VideoMediaReceived event. VideoMediaStreamQualityChangedEventArgs Event arguments of the video media stream quality event. VideoReceiveStatusChangedEventArgs Event arguments of a VideoReceiveStatusChanged event. VideoSendCapability The Video Send Capability VideoSendStatusChangedEventArgs Event arguments of a VideoSendStatusChanged event. VideoSettings Video Frame player settings VideoSocket Provides Send and Receive I/O access to a video stream. VideoSocketSettings The video socket settings. Structs UnmixedAudioBuffer Represents an unmanaged audio buffer that contains unmixed data corresponding to a specific speaker in a conference. This structure contains a pointer to the unmanaged audio buffer, the length of the buffer and the ID of the audio source of the active speaker. Interfaces IAudioSocket Interface to an AudioSocket. IAudioVideoFramePlayer Interface for the AudioVideoFramePlayer responsible for streaming real time audio video IDataSocket Reserved for the internal use. IMediaPlatform Interface to the MediaPlatform. IMediaPlatformLogger Interface for collecting MediaPlatform logs from the Bots.Media library. IVideoSocket Interface to a VideoSocket. Enums AudioFormat The audio format. DataType Reserved for the internal use. HostingEnvironmentConfiguration HostingEnvironmentConfiguration to use for the MediaPlatform. In most cases, the default value is correct. Only in Azure Government clouds do different settings need to be applied. LogLevel Specifies a current logging level for a log line. MediaPlatformHealthStatus Health status of the media platform MediaQualityState Indicates the media quality state MediaReceiveStatus Indicates if the VideoSocket is capable of receiving media. MediaSendStatus Indicates whether an AudioSocket or VideoSocket is capable of sending media. MediaType Indicates the media type of the socket. StreamDirection Stream directionality, from the point-of-view of the local media endpoint. ToneId DTMF Tone Id enum. VideoColorFormat VideoColorFormat VideoQualityType Type of the video media quality VideoResolution Video resolution for vbss and video VideoSinkEncodingFormat VideoSinkEncodingFormats" + "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Messages.html": { + "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Messages.html", + "title": "Class ErrorConstants.Messages", + "keywords": "Class ErrorConstants.Messages Error Messages Inheritance Object ErrorConstants.Messages Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Messages Fields AuthenticationProviderMissing The authentication provider missing Declaration public const string AuthenticationProviderMissing = \"Authentication provider is required before sending a request.\" Field Value Type Description String BaseUrlMissing The base URL missing Declaration public const string BaseUrlMissing = \"Base URL cannot be null or empty.\" Field Value Type Description String ClientErrorAuthenticatingRequest The client error processing notifications Declaration public const string ClientErrorAuthenticatingRequest = \"Unexpected exception happened on client when authenticating request.\" Field Value Type Description String ClientErrorProcessingNotifications The client error processing notifications Declaration public const string ClientErrorProcessingNotifications = \"Unexpected exception happened on client when processing notification.\" Field Value Type Description String InvalidTypeForDateConverter The invalid type for date converter Declaration public const string InvalidTypeForDateConverter = \"DateConverter can only serialize objects of type Date.\" Field Value Type Description String LocationHeaderNotSetOnRedirect The location header not set on redirect Declaration public const string LocationHeaderNotSetOnRedirect = \"Location header not present in redirection response.\" Field Value Type Description String MessageContentIsEmpty The message content is empty Declaration public const string MessageContentIsEmpty = \"Unexpected empty message content.\" Field Value Type Description String NotificationChangeTypeIsEmpty The notification change type is empty Declaration public const string NotificationChangeTypeIsEmpty = \"No change type specified for the incoming notification.\" Field Value Type Description String NotificationResourceDataIsEmpty The notification resource data is empty Declaration public const string NotificationResourceDataIsEmpty = \"No resource data specified for the incoming notification.\" Field Value Type Description String NotificationResourceNotRecognized The notification resource is not recognized Declaration public const string NotificationResourceNotRecognized = \"Resource in notification is not recognized.\" Field Value Type Description String NotificationResourcePathIsEmpty The notification resource path is empty Declaration public const string NotificationResourcePathIsEmpty = \"No resource path specified for the incoming notification.\" Field Value Type Description String NotificationsAreEmpty The notifications are empty Declaration public const string NotificationsAreEmpty = \"Notifications received from server are empty.\" Field Value Type Description String NotificationUriNotSet The notification URI not set Declaration public const string NotificationUriNotSet = \"Notification URI is not set for the resource.\" Field Value Type Description String OverallTimeoutCannotBeSet The overall timeout cannot be set Declaration public const string OverallTimeoutCannotBeSet = \"Overall timeout cannot be set after the first request is sent.\" Field Value Type Description String RehydrationFailedNotFound The re-hydration failed not found Declaration public const string RehydrationFailedNotFound = \"Rehydration is performed on a resource that doesn't exist.\" Field Value Type Description String RehydrationFailedWithEmptyResource The re-hydration failed with empty resource Declaration public const string RehydrationFailedWithEmptyResource = \"Rehydration failed since service returned an empty resource.\" Field Value Type Description String RequestTimedOut The request timed out Declaration public const string RequestTimedOut = \"The request timed out.\" Field Value Type Description String RequestUrlMissing The request URL missing Declaration public const string RequestUrlMissing = \"Request URL is required to send a request.\" Field Value Type Description String TooManyRedirectsFormatString The too many redirects format string Declaration public const string TooManyRedirectsFormatString = \"More than {0} redirects encountered while sending the request.\" Field Value Type Description String UnableToCreateInstanceOfTypeFormatString The unable to create instance of type format string Declaration public const string UnableToCreateInstanceOfTypeFormatString = \"Unable to create an instance of type {0}.\" Field Value Type Description String UnableToDeserializeNotification The unable to deserialize notification Declaration public const string UnableToDeserializeNotification = \"Unable to deserialize the notification.\" Field Value Type Description String UnexpectedExceptionOnSend The unexpected exception on send Declaration public const string UnexpectedExceptionOnSend = \"An error occurred sending the request.\" Field Value Type Description String UnexpectedExceptionResponse The unexpected exception response Declaration public const string UnexpectedExceptionResponse = \"Unexpected exception returned from the service.\" Field Value Type Description String" }, - "client/Microsoft.Graph.Communications.Client.Transport.GraphClientContext.html": { - "href": "client/Microsoft.Graph.Communications.Client.Transport.GraphClientContext.html", - "title": "Class GraphClientContext", - "keywords": "Class GraphClientContext The context for the graph client wrapper. Inheritance Object GraphClientContext Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Client.Transport Assembly : Microsoft.Graph.Communications.Client.dll Syntax public class GraphClientContext Constructors GraphClientContext() Declaration public GraphClientContext() Properties ScenarioId Gets or sets the scenario identifier. Declaration public Guid ScenarioId { get; set; } Property Value Type Description Guid TenantId Gets or sets the tenant. Declaration public string TenantId { get; set; } Property Value Type Description String" + "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Codes.html": { + "href": "core/Microsoft.Graph.Communications.Core.Exceptions.ErrorConstants.Codes.html", + "title": "Class ErrorConstants.Codes", + "keywords": "Class ErrorConstants.Codes Error Codes Inheritance Object ErrorConstants.Codes Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Core.Exceptions Assembly : Microsoft.Graph.Communications.Core.dll Syntax public static class Codes Fields BridgeGone Error code indicating the bridge is gone/deleted from the server. Declaration public const string BridgeGone = \"BridgeGone\" Field Value Type Description String ChatGone Error code indicating the chat is gone/deleted from the server. Declaration public const string ChatGone = \"ChatGone\" Field Value Type Description String ClientCallbackError The client callback error code. Declaration public const string ClientCallbackError = \"clientCallbackError\" Field Value Type Description String ClientContextMissing The client context missing error code. Declaration public const string ClientContextMissing = \"clientContextIsMissing\" Field Value Type Description String GeneralException The general exception error code. Declaration public const string GeneralException = \"generalException\" Field Value Type Description String InvalidRequest The invalid request error code. Declaration public const string InvalidRequest = \"invalidRequest\" Field Value Type Description String ItemNotFound The item not found error code. Declaration public const string ItemNotFound = \"itemNotFound\" Field Value Type Description String MismatchedCompletedOperation The mismatched completed operation error code. Declaration public const string MismatchedCompletedOperation = \"mismatchedCompletedOperation\" Field Value Type Description String NotAllowed The not allowed error code. Declaration public const string NotAllowed = \"notAllowed\" Field Value Type Description String OperationFailed The operation failed error code. Declaration public const string OperationFailed = \"operationFailed\" Field Value Type Description String RehydrationFailedWithEmptyResource The re-hydration failed with empty resource error code. Declaration public const string RehydrationFailedWithEmptyResource = \"rehydrationFailedWithEmptyResource\" Field Value Type Description String RehydrationFailedWithNotFound The re-hydration failed with not found error code. Declaration public const string RehydrationFailedWithNotFound = \"rehydrationFailedWithNotFound\" Field Value Type Description String Timeout The timeout error code. Declaration public const string Timeout = \"timeout\" Field Value Type Description String TooManyRedirects The too many redirects error code. Declaration public const string TooManyRedirects = \"tooManyRedirects\" Field Value Type Description String" }, - "common/Microsoft.Graph.Communications.Common.ReflectionUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.ReflectionUtils.html", - "title": "Class ReflectionUtils", - "keywords": "Class ReflectionUtils Reflection utilities Inheritance Object ReflectionUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ReflectionUtils Methods DerivesFrom(Type, Type) Check if the type derives from the base type Declaration public static bool DerivesFrom(this Type type, Type baseType) Parameters Type Name Description Type type Type to check Type baseType Base type Returns Type Description Boolean True if it is or derives from the base type Implements(Type, Type) Check if type is subclass of a generic type. Declaration public static bool Implements(this Type type, Type checkType) Parameters Type Name Description Type type Type to check. Type checkType Generic type. Returns Type Description Boolean True if it is a subclass." + "common/Microsoft.Graph.Communications.Common.OData.ODataConstants.html": { + "href": "common/Microsoft.Graph.Communications.Common.OData.ODataConstants.html", + "title": "Class ODataConstants", + "keywords": "Class ODataConstants The OData constants. Inheritance Object ODataConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.OData Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ODataConstants Fields ODataType The OData type. Declaration public const string ODataType = \"@odata.type\" Field Value Type Description String" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.CallerInfo.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.CallerInfo.html", - "title": "Class CallerInfo", - "keywords": "Class CallerInfo Class that encapsulates the caller's (creator's) information Inheritance Object CallerInfo Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class CallerInfo Constructors CallerInfo(String, String, Int32) Initializes a new instance of the CallerInfo class. Declaration public CallerInfo(string memberName = \"\", string filePath = \"\", int lineNumber = 0) Parameters Type Name Description String memberName Name of the member. String filePath The file path. Int32 lineNumber The line number. Methods GetHashCode() Returns a hash code for this instance. Declaration public override int GetHashCode() Returns Type Description Int32 A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Overrides Object.GetHashCode() ToString() Returns a String that represents the caller info. Declaration public override string ToString() Returns Type Description String A String that represents the caller info. Overrides Object.ToString() Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "calls_media/Microsoft.Graph.Communications.Calls.Media.ILocalMediaSession.html": { + "href": "calls_media/Microsoft.Graph.Communications.Calls.Media.ILocalMediaSession.html", + "title": "Interface ILocalMediaSession", + "keywords": "Interface ILocalMediaSession Inherited Members IDisposable.Dispose() Namespace : Microsoft.Graph.Communications.Calls.Media Assembly : Microsoft.Graph.Communications.Calls.Media.dll Syntax public interface ILocalMediaSession : IMediaSession, IDisposable Properties AudioSocket Gets the audio socket associated with this media session. Declaration IAudioSocket AudioSocket { get; } Property Value Type Description IAudioSocket DataSocket Gets the data socket associated with this media session. Declaration IDataSocket DataSocket { get; } Property Value Type Description IDataSocket VbssSocket Gets the VBSS socket associated with this media session. Declaration IVideoSocket VbssSocket { get; } Property Value Type Description IVideoSocket VideoSocket Gets the video socket associated with this media session. If current media session contains multiple sockets, this will return the first one in the list. Declaration IVideoSocket VideoSocket { get; } Property Value Type Description IVideoSocket VideoSockets Gets the list of video socket associated with this media session. Declaration IReadOnlyList VideoSockets { get; } Property Value Type Description IReadOnlyList < IVideoSocket >" }, - "common/Microsoft.Graph.Communications.Common.Transport.Http.html": { - "href": "common/Microsoft.Graph.Communications.Common.Transport.Http.html", - "title": "Namespace Microsoft.Graph.Communications.Common.Transport.Http", - "keywords": "Namespace Microsoft.Graph.Communications.Common.Transport.Http Classes HttpUtils Utilities for Http transport" + "bot_media/Microsoft.Skype.Bots.Media.VideoSinkEncodingFormat.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSinkEncodingFormat.html", + "title": "Enum VideoSinkEncodingFormat", + "keywords": "Enum VideoSinkEncodingFormat VideoSinkEncodingFormats Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoSinkEncodingFormat Fields Name Description H264 H264 Yuv Yuv" }, - "bot_media/Microsoft.Skype.Bots.Media.AudioMediaBuffer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.AudioMediaBuffer.html", - "title": "Class AudioMediaBuffer", - "keywords": "Class AudioMediaBuffer Represents an unmanaged buffer containing audio media data. Inheritance Object AudioMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class AudioMediaBuffer : IDisposable Constructors AudioMediaBuffer() Declaration protected AudioMediaBuffer() Properties ActiveSpeakers Current active speakers in the conference. The value is the IDs (MediaSourceIds) of the audio source of the active speakers in the conference and does not include bot's own MediaSourceId. If there is no active speaker, or there is just silence in the conference, the value is an empty array. Declaration public uint[] ActiveSpeakers { get; protected set; } Property Value Type Description UInt32 [] AudioFormat The audio format. Declaration public AudioFormat AudioFormat { get; protected set; } Property Value Type Description AudioFormat Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; protected set; } Property Value Type Description IntPtr IsSilence Indicates if the received audio media buffer is a silence packet. This property is populated by the Real-Time Media Platform for Bots on received audio buffers. When sending buffers via the IAudioSocket.Send API, this property is unused. Declaration public bool IsSilence { get; protected set; } Property Value Type Description Boolean Length The length of data in the media buffer. Declaration public long Length { get; protected set; } Property Value Type Description Int64 Timestamp Timestamp of when the media content was sourced, in 100-ns units. When sourcing media buffers, this property should be set using the value from the MediaPlatform.GetCurrentTimestamp() API. Declaration public long Timestamp { get; protected set; } Property Value Type Description Int64 UnmixedAudioBuffers Contains the list of received unmixed audio buffers (up to four at a time). This is useful for advanced meeting scenarios, such as being able to receive separate audio buffers for individual speakers. This value is set only on the receive side when the AudioSocketSetting.ReceiveUnmixedMeetingAudio property is set to true. Creating unmixed audio buffers and sending it on the AudioSocket is not supported. This property is null when unmixed buffers are not requested Declaration public UnmixedAudioBuffer[] UnmixedAudioBuffers { get; protected set; } Property Value Type Description UnmixedAudioBuffer [] Methods Dispose() Disposes the object. Declaration public void Dispose() Dispose(Boolean) Releases unmanaged resources held by the buffer object. Must be implemented in the derived class. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing If true, both managed and unmanaged resources can be disposed. If false, only unmanaged resources can be disposed. Implements System.IDisposable" + "common/Microsoft.Graph.Communications.Common.GuidUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.GuidUtils.html", + "title": "Class GuidUtils", + "keywords": "Class GuidUtils Guid Utils Inheritance Object GuidUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class GuidUtils Methods EnsureNotEmpty(Guid) Ensures Guid is not empty by generating a random guid if it is empty Declaration public static Guid EnsureNotEmpty(this Guid guid) Parameters Type Name Description Guid guid input guid Returns Type Description Guid A guaranteed guid that is not empty EnsureNotEmpty(Nullable) Ensures Guid is not empty by generating a random guid if it is empty Declaration public static Guid EnsureNotEmpty(this Guid? guid) Parameters Type Name Description Nullable < Guid > guid input guid Returns Type Description Guid A guaranteed guid that is not empty ParseOrNew(String) Parse and return the guid if valid else return new guid Declaration public static Guid ParseOrNew(string input) Parameters Type Name Description String input input Returns Type Description Guid Guid of input or new guid" }, - "bot_media/Microsoft.Skype.Bots.Media.DataMediaBuffer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.DataMediaBuffer.html", - "title": "Class DataMediaBuffer", - "keywords": "Class DataMediaBuffer Reserved for the internal use. Inheritance Object DataMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class DataMediaBuffer : IDisposable Constructors DataMediaBuffer() Declaration protected DataMediaBuffer() Properties Data Reserved for the internal use. Declaration public byte[] Data { get; protected set; } Property Value Type Description Byte [] MediaSourceId Reserved for the internal use. Declaration public uint MediaSourceId { get; protected set; } Property Value Type Description UInt32 Methods Dispose() Reserved for the internal use. Declaration public void Dispose() Dispose(Boolean) Reserved for the internal use. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing Implements System.IDisposable" + "client/Microsoft.Graph.Communications.Resources.CollectionEventHandler-2.html": { + "href": "client/Microsoft.Graph.Communications.Resources.CollectionEventHandler-2.html", + "title": "Delegate CollectionEventHandler", + "keywords": "Delegate CollectionEventHandler The call collection event handler delegate. Namespace : Microsoft.Graph.Communications.Resources Assembly : Microsoft.Graph.Communications.Client.dll Syntax public delegate void CollectionEventHandler(TSender sender, CollectionEventArgs e); Parameters Type Name Description TSender sender The sender. CollectionEventArgs e The event arguments. Type Parameters Name Description TSender The type of the sender. TEntity The type of the arguments. Constructors CollectionEventHandler(Object, IntPtr) Declaration public CollectionEventHandler(object object, IntPtr method) Parameters Type Name Description Object object IntPtr method Methods BeginInvoke(TSender, CollectionEventArgs, AsyncCallback, Object) Declaration public virtual IAsyncResult BeginInvoke(TSender sender, CollectionEventArgs e, AsyncCallback callback, object object) Parameters Type Name Description TSender sender CollectionEventArgs e AsyncCallback callback Object object Returns Type Description IAsyncResult EndInvoke(IAsyncResult) Declaration public virtual void EndInvoke(IAsyncResult result) Parameters Type Name Description IAsyncResult result Invoke(TSender, CollectionEventArgs) Declaration public virtual void Invoke(TSender sender, CollectionEventArgs e) Parameters Type Name Description TSender sender CollectionEventArgs e" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoSocket.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSocket.html", - "title": "Class VideoSocket", - "keywords": "Class VideoSocket Provides Send and Receive I/O access to a video stream. Inheritance Object VideoSocket Implements IVideoSocket IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public sealed class VideoSocket : IVideoSocket, IDisposable, IInternalVideoSocket, IInternalSocket Constructors VideoSocket(VideoSocketSettings) Initializes a new instance of VideoSocket with VideoSocketSettings. Declaration public VideoSocket(VideoSocketSettings settings) Parameters Type Name Description VideoSocketSettings settings Settings for VideoSocket like Direction, ReceiveColorFormat, etc. Properties MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API. It may also be set via the VideoSocketSettings during socket creation. Declaration public MediaType MediaType { get; } Property Value Type Description MediaType ReceiveColorFormat VideoColorFormat to receive Declaration public VideoColorFormat ReceiveColorFormat { get; } Property Value Type Description VideoColorFormat SocketId The 0-based ID of the socket. This socket ID is useful to identify a socket in a multiview (ie. more than 1 video socket) call. The same ID is used in the event args of the VideoMediaReceived and VideoSendStatusChanged events that this class may raise. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the CreateMediaConfiguration API. Eg., if the collection of IVideoSocket objects in the CreateMediaConfiguration API contains {socketA, socketB, socketC}, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Before the call to CreateMediaConfiguration, the SocketId has a value of -1. Declaration public int SocketId { get; } Property Value Type Description Int32 Methods Dispose() Disposes the object. Declaration public void Dispose() RequestKeyFrame() Allows the application to request for key frame. Only valid for sockets with the ReceiveColorFormat as H264 Declaration public void RequestKeyFrame() Send(VideoMediaBuffer) Allows the application to send a packet of video media if the application has configured the VideoSocket to send media. The application should be sending about 30 video frame buffers/second. The application must create a concrete class which derives from the VideoMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's data until the the buffer object's Dispose() method is invoked by the Media Platform. Declaration public void Send(VideoMediaBuffer buffer) Parameters Type Name Description VideoMediaBuffer buffer VideoMediaBuffer to send. SetReceiveBandwidthLimit(UInt32) Sets the bandwidth limit on the receive stream of the VideoSocket. This is only supported if the socket supports receiving H264 video format. It is recommended to wait for the VideoReceiveStatusChanged event with MediaReceiveStatus Active state during the initial call setup before applying the receive bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration public void SetReceiveBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The receive bitrate SetSendBandwidthLimit(UInt32) Sets the bandwidth limit on the send stream of the VideoSocket. This is only supported if the socket supports sending H264 video formats. It is recommended to wait for the VideoSendStatusChanged event with MediaSendStatus Active state during the initial call setup before applying the send bandwidth limit on the socket. Bandwidth range (in bits per second) for various resolutions and frame rates per media type: Media type: Video 1000000 - 4000000 1080p at 30 fps 550000 - 2500000 720p at 30 fps 375000 - 1500000 540p at 30 fps 200000 - 800000 360p at 30 fps 150000 - 250000 360p at 15 fps 120000 - 220000 360p at 7.5 fps 60000 - 200000 240p at 7.5 fps 20000 - 100000 180p at 7.5 fps Media type: Vbss Resolution: 1080p 2000000 - 4000000 at 30 fps 600000 - 3000000 at 15 fps 300000 - 700000 at 7.5 fps 150000 - 350000 at 3.75 fps 70000 - 200000 at 1.875 fps Declaration public void SetSendBandwidthLimit(uint bitsPerSecond) Parameters Type Name Description UInt32 bitsPerSecond The send bitrate Subscribe(VideoResolution) Subscribe API for the 1:1 case. No need to specify the media source id Declaration public void Subscribe(VideoResolution preferredVideoResolution) Parameters Type Name Description VideoResolution preferredVideoResolution Subscribe(VideoResolution, UInt32) Video Subscription API for the conference scenario, once the MediaReceiveStatus is raised with active status, it is possible to call this api to subscribe to a specific video using the media source id. Declaration public void Subscribe(VideoResolution preferredVideoResolution, uint MediaSourceId) Parameters Type Name Description VideoResolution preferredVideoResolution The requested video resolution, The received video buffers should have the requested resolution if the bandwidth constraints and sender capabilities are satisfied UInt32 MediaSourceId Media source identifier of the video source to be received Unsubscribe() Unsubscribe to video, the VideMediaReceived events will stop raising video buffers Declaration public void Unsubscribe() UpdateVideoSendCapability(VideoSendCapability) Allows the application to update dynamically the send capability (such as SupportedSendVideoFormats or MaxConcurrentSendStreams) of the video socket. The purpose of this API is to allow the application to communicate changes in VideoSocket's send capability to the platform during the call. Declaration public void UpdateVideoSendCapability(VideoSendCapability capability) Parameters Type Name Description VideoSendCapability capability Events MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration public event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Remarks Note: this event can be raised even if there is no active video subscription; i.e., the VideoSocket is \"idle\" and not receiving media. MediaStreamQualityChanged The event is raised if a media stream quality change was detected Declaration public event EventHandler MediaStreamQualityChanged Event Type Type Description EventHandler < VideoMediaStreamQualityChangedEventArgs > VideoKeyFrameNeeded If the application has configured the VideoSocket to receive encoded media, this event is raised each time a key frame is needed. Events are serialized, so only one event at a time is raised to the app. Declaration public event EventHandler VideoKeyFrameNeeded Event Type Type Description EventHandler < VideoKeyFrameNeededEventArgs > VideoMediaReceived If the application has configured the VideoSocket to receive media, this event is raised each time a packet of video media is received. Once the application has consumed the buffer, it must call the buffer's Dispose() method. The application should be prepared to handle approximately 30 incoming video buffers per second. Events are serialized, so only one event at a time is raised to the app. Declaration public event EventHandler VideoMediaReceived Event Type Type Description EventHandler < VideoMediaReceivedEventArgs > VideoReceiveStatusChanged If the application has configured the VideoSocket to receive media, this event is raised to inform the application when it is ready to receive media. When the status is active the application can subscribe to a video source, when inactive video subscription won't be allowed Declaration public event EventHandler VideoReceiveStatusChanged Event Type Type Description EventHandler < VideoReceiveStatusChangedEventArgs > VideoSendStatusChanged If the application has configured the VideoSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a VideoMediaSendStatusChanged event indicating the SendStatus is Active, such media will be discarded. Declaration public event EventHandler VideoSendStatusChanged Event Type Type Description EventHandler < VideoSendStatusChangedEventArgs > Implements IVideoSocket System.IDisposable" + "common/Microsoft.Graph.html": { + "href": "common/Microsoft.Graph.html", + "title": "Namespace Microsoft.Graph", + "keywords": "Namespace Microsoft.Graph Classes AdditionalDataExtensions The identity set extensions" }, - "calls/Microsoft.Graph.Communications.Calls.RecordOperationResult.html": { - "href": "calls/Microsoft.Graph.Communications.Calls.RecordOperationResult.html", - "title": "Class RecordOperationResult", - "keywords": "Class RecordOperationResult Class to define parameters required for joining a meeting. Inheritance Object RecordOperationResult Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class RecordOperationResult Constructors RecordOperationResult(String, String, Nullable, ResultInfo) Initializes a new instance of the RecordOperationResult class. Declaration public RecordOperationResult(string recordingLocation, string recordingAccessToken, RecordCompletionReason? completionReason, ResultInfo resultInfo) Parameters Type Name Description String recordingLocation The location of the recording. String recordingAccessToken Token to access the recording. Nullable < RecordCompletionReason > completionReason The completion reason. ResultInfo resultInfo The result information. Properties CompletionReason Gets completion reason. Declaration public RecordCompletionReason? CompletionReason { get; } Property Value Type Description Nullable < RecordCompletionReason > RecordingAccessToken Gets record resource location. The access token required to retrieve the recording. Declaration public string RecordingAccessToken { get; } Property Value Type Description String RecordingLocation Gets record resource location. Link to the \"live raw stream as it is being recorded\" or \"recorded stream after it’s recorded\". Client need to call GET request on this link passing RecordResourceAccessToken as bearer token in order to download the stream. Declaration public string RecordingLocation { get; } Property Value Type Description String RecordResourceAccessToken Gets record resource location. The access token required to retrieve the recording. Declaration [Obsolete(\"Please use RecordingAccessToken property instead.\")] public string RecordResourceAccessToken { get; } Property Value Type Description String RecordResourceLocation Gets record resource location. Link to the \"live raw stream as it is being recorded\" or \"recorded stream after it’s recorded\". Client need to call GET request on this link passing RecordResourceAccessToken as bearer token in order to download the stream. Declaration [Obsolete(\"Please use RecordingLocation property instead.\")] public string RecordResourceLocation { get; } Property Value Type Description String ResultInfo Gets the result information. Declaration public ResultInfo ResultInfo { get; } Property Value Type Description ResultInfo The result information." + "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationTag.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationTag.html", + "title": "Enum ObfuscationTag", + "keywords": "Enum ObfuscationTag Tag used to provide a hint for the type of obfuscation to perform. Namespace : Microsoft.Graph.Communications.Common.Telemetry.Obfuscation Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum ObfuscationTag Fields Name Description Fqdn FQDN that needs to be obfuscated. An example would be \"lyncfrontend.lync.com\" Generic A generic blob containing sensitive data that must be obfuscated completely. Guid A guid type that has to be obfuscated. Identity The subject of some information whose data needs to be obfuscated. An example would be \"The user {coolgal} is attempting to to perform some action\". MRIs are also considered identities. IpAddress IP address that needs to be obfuscated. An example would be \"187.23.33.1\" Pstn PSTN related information. An example would be a telephone number like \"+10005559999\". Uri Uri that needs to be obfuscated. This can have any scheme like http, https, etc. An example would be \" https://cheatdays.com/fitguy" ; This could be either absolute or relative uri. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(ObfuscationTag, String, String) Validator.Equals(ObfuscationTag, String) Validator.NotEquals(ObfuscationTag, String, String)" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoLowOnFramesEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoLowOnFramesEventArgs.html", - "title": "Class VideoLowOnFramesEventArgs", - "keywords": "Class VideoLowOnFramesEventArgs Video low on frame event args Inheritance Object EventArgs LowOnFramesEventArgs VideoLowOnFramesEventArgs Inherited Members LowOnFramesEventArgs.MediaType LowOnFramesEventArgs.RemainingMediaLengthInMS EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoLowOnFramesEventArgs : LowOnFramesEventArgs Constructors VideoLowOnFramesEventArgs() Declaration public VideoLowOnFramesEventArgs() Properties VideoFormat The video format for the low on frame event Declaration public VideoFormat VideoFormat { get; set; } Property Value Type Description VideoFormat" + "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationSerializer.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.Obfuscation.ObfuscationSerializer.html", + "title": "Class ObfuscationSerializer", + "keywords": "Class ObfuscationSerializer The obfuscation serializer can be used to serialize and de-serialize an obfuscation schema, as well as generate a schema from specified assemblies. Inheritance Object ObfuscationSerializer Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.Obfuscation Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class ObfuscationSerializer Constructors ObfuscationSerializer() Declaration public ObfuscationSerializer() Properties Members Gets or sets the members belonging to the class. Declaration public ObfuscationMember[] Members { get; set; } Property Value Type Description ObfuscationMember [] Methods ExtractFromAssemblies(Assembly[]) Extracts the obfuscation members from the specified assemblies. Declaration public ObfuscationMember[] ExtractFromAssemblies(params Assembly[] assemblies) Parameters Type Name Description Assembly [] assemblies The assemblies. Returns Type Description ObfuscationMember [] The list of ObfuscationMember stucts extracted from the specified assemblies. GenerateSchema(ObfuscationMember[]) Generates the schema from the specified obfuscation members. Declaration public string GenerateSchema(params ObfuscationMember[] members) Parameters Type Name Description ObfuscationMember [] members The obfuscation classes. Returns Type Description String The schema associated with the specified classes. LoadFromSchema(String) Loads the obfuscations classes from the specified schema. Declaration public ObfuscationMember[] LoadFromSchema(string schema) Parameters Type Name Description String schema The schema. Returns Type Description ObfuscationMember [] The loaded obfuscation classes. Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoMediaBuffer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaBuffer.html", - "title": "Class VideoMediaBuffer", - "keywords": "Class VideoMediaBuffer Represents an unmanaged buffer containing video media data. Inheritance Object VideoMediaBuffer Implements IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public abstract class VideoMediaBuffer : IDisposable Constructors VideoMediaBuffer() Declaration protected VideoMediaBuffer() Properties Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; protected set; } Property Value Type Description IntPtr Length The length of data in the media buffer. Declaration public long Length { get; protected set; } Property Value Type Description Int64 MediaSourceId MediaSourceId (MSI) of the video buffer. Within group or conference video calls, the MSI value identifies the video media source. This property is populated by the Real-Time Media Platform for Bots on received video buffers. When sending buffers via the IVideoSocket.Send API, this property is unused. Declaration public uint MediaSourceId { get; protected set; } Property Value Type Description UInt32 OriginalVideoFormat Original VideoFormat of the buffer when it was sourced. It is only used when receiving video buffers via the IVideoSocket.VideoMediaReceived event handler, in which case the VideoMediaBuffer.VideoFormat property may have different Width and Height values than the OriginalVideoFormat property, which represents the original format of the buffer. The reason is that the buffer may have been resized before being transmitted, so the original Width and Height may have been resized. If the Width and Height properties of OriginalVideoFormat differ from the VideoFormat property, the consumer of the VideoMediaBuffer raised in the VideoMediaReceived event should resize the buffer to fit the OriginalVideoFormat size. When sending buffers via the IVideoSocket.Send API, this property should always be null. Declaration public VideoFormat OriginalVideoFormat { get; protected set; } Property Value Type Description VideoFormat Stride Stride of the video buffer. This property is optional when sourcing video buffers that are sent via the IVideoSocket.Send API. Stride (also called pitch) represents the number of bytes it takes to read one row of pixels in memory. It may differ from the width depending on the color format. Declaration public int Stride { get; protected set; } Property Value Type Description Int32 Timestamp Timestamp of when the media content was sourced, in 100-ns units. When sourcing media buffers, this property should be set using the value from the MediaPlatform.GetCurrentTimestamp() API. Declaration public long Timestamp { get; protected set; } Property Value Type Description Int64 VideoFormat VideoFormat of the video media buffer. Declaration public VideoFormat VideoFormat { get; protected set; } Property Value Type Description VideoFormat Methods Dispose() Disposes the object. Declaration public void Dispose() Dispose(Boolean) Releases unmanaged resources held by the buffer object. Must be implemented in the derived class. Declaration protected abstract void Dispose(bool disposing) Parameters Type Name Description Boolean disposing If true, both managed and unmanaged resources can be disposed. If false, only unmanaged resources can be disposed. Implements System.IDisposable" + "common/Microsoft.Graph.Communications.Common.Telemetry.LoggingConstants.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LoggingConstants.html", + "title": "Class LoggingConstants", + "keywords": "Class LoggingConstants Constants used for logging that are common between server and client. Inheritance Object LoggingConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class LoggingConstants Fields ActivityTrackingLatencySeconds The activity tracking latency in seconds Declaration public const string ActivityTrackingLatencySeconds = \"ActivityTrackingLatencySeconds\" Field Value Type Description String AppId AppId constant. Declaration public const string AppId = \"AppId\" Field Value Type Description String ChatId Chat Id. Declaration public const string ChatId = \"ChatId\" Field Value Type Description String ChatInactivityTrackingExceedingInterval The chat inactivity tracking that exceeds the expected interval Declaration public const string ChatInactivityTrackingExceedingInterval = \"ChatInactivityTrackingExceedingInterval\" Field Value Type Description String CosmosDBCollection The name of CosmosDB collection Declaration public const string CosmosDBCollection = \"CosmosDBCollection\" Field Value Type Description String CosmosDBRequestCharge The metric name of CosmosDB request charge Declaration public const string CosmosDBRequestCharge = \"CosmosDBRequestCharge\" Field Value Type Description String CosmosDBRequestLatency The metric name of CosmosDB request latency in milliseconds Declaration public const string CosmosDBRequestLatency = \"CosmosDBRequestLatency\" Field Value Type Description String CosmosDBRequestType The CosmosDB request type, read/create/update/upsert/delete/query Declaration public const string CosmosDBRequestType = \"CosmosDBRequestType\" Field Value Type Description String ErrorCode The error code. Declaration public const string ErrorCode = \"ErrorCode\" Field Value Type Description String FailedBridgedMessages Failed bridged messages constant. Declaration public const string FailedBridgedMessages = \"FailedBridgedMessages\" Field Value Type Description String FailedChatInactivityTracking The failed chat inactivity tracking Declaration public const string FailedChatInactivityTracking = \"FailedChatInactivityTracking\" Field Value Type Description String FailedChatInactivityTrackingSum The failed chat inactivity tracking sum Declaration public const string FailedChatInactivityTrackingSum = \"FailedChatInactivityTrackingSum\" Field Value Type Description String FailedChatNotifications The failed chat notifications Declaration public const string FailedChatNotifications = \"FailedChatNotifications\" Field Value Type Description String FailedRoutingCacheRequests The failed routing cache requests. Declaration public const string FailedRoutingCacheRequests = \"FailedRoutingCacheRequests\" Field Value Type Description String HTTPMetrics The namespace of HTTP metrics Declaration public const string HTTPMetrics = \"HTTPMetrics\" Field Value Type Description String InstanceId Instance ID. Declaration public const string InstanceId = \"InstanceId\" Field Value Type Description String JsonSerializationMaxDepth Max depth of json serializer in case the json serializer settings is configured as ReferenceLoopHandling.Serialize Declaration public const int JsonSerializationMaxDepth = 10 Field Value Type Description Int32 Method Method dimension name. Declaration public const string Method = \"Method\" Field Value Type Description String Operation Operation dimension name. Declaration public const string Operation = \"Operation\" Field Value Type Description String OutgoingChatMessageLatency The time taken to send outgoing message. Declaration public const string OutgoingChatMessageLatency = \"OutgoingChatMessageLatency\" Field Value Type Description String PartitionKey Partition Id. Declaration public const string PartitionKey = \"PartitionKey\" Field Value Type Description String Partner Partner dimension name. Declaration public const string Partner = \"Partner\" Field Value Type Description String PropertyDoesNotExist Property does not exist error message Declaration public const string PropertyDoesNotExist = \"Property doesn't exist in LogEvent Properties dictionary.\" Field Value Type Description String ReplaceId The constant pointing to the replace id to be used for Api Path. Declaration public const string ReplaceId = \"\" Field Value Type Description String RequestId The request ID (used to identify request-response pair) Declaration public const string RequestId = \"RequestId\" Field Value Type Description String RequestPath Request path dimension name. Declaration public const string RequestPath = \"RequestPath\" Field Value Type Description String ResponseTimeInMilliseconds The metric name of HTTP response time Declaration public const string ResponseTimeInMilliseconds = \"Response time in milli-seconds\" Field Value Type Description String Result The result. Declaration public const string Result = \"Result\" Field Value Type Description String RoutingCacheRequests The routing cache requests. Declaration public const string RoutingCacheRequests = \"RoutingCacheRequests\" Field Value Type Description String StatusCode StatusCode dimension name. Declaration public const string StatusCode = \"StatusCode\" Field Value Type Description String SuccessfulBridgedMessages Successful bridged messages constant. Declaration public const string SuccessfulBridgedMessages = \"SuccessfulBridgedMessages\" Field Value Type Description String SuccessfulChatInactivityTracking The successful chat inactivity tracking Declaration public const string SuccessfulChatInactivityTracking = \"SuccessfulChatInactivityTracking\" Field Value Type Description String SuccessfulChatInactivityTrackingSum The successful chat inactivity tracking sum. Declaration public const string SuccessfulChatInactivityTrackingSum = \"SuccessfulChatInactivityTrackingSum\" Field Value Type Description String SuccessfulChatNotifications The successful chat notifications Declaration public const string SuccessfulChatNotifications = \"SuccessfulChatNotifications\" Field Value Type Description String TenantId Tenant Id constant. Declaration public const string TenantId = \"TenantId\" Field Value Type Description String TotalChatInactivityTracking The total chat inactivity tracking Declaration public const string TotalChatInactivityTracking = \"TotalChatInactivityTracking\" Field Value Type Description String UserAgent UserAgent dimension name. Declaration public const string UserAgent = \"UserAgent\" Field Value Type Description String" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoMediaReceivedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaReceivedEventArgs.html", - "title": "Class VideoMediaReceivedEventArgs", - "keywords": "Class VideoMediaReceivedEventArgs Event arguments of a VideoMediaReceived event. Inheritance Object EventArgs VideoMediaReceivedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoMediaReceivedEventArgs : EventArgs Constructors VideoMediaReceivedEventArgs() Declaration public VideoMediaReceivedEventArgs() Properties Buffer The received video media buffer. Declaration public VideoMediaBuffer Buffer { get; set; } Property Value Type Description VideoMediaBuffer MediaType MediaType of the video socket. This could be Video or Vbss. The MediaType is set after the socket is passed to the CreateMediaConfiguration API. It may also be set via the VideoSocketSettings during socket creation. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId The 0-based ID of the socket that is raising this event. This socket ID can be used in multiview (ie. more than 1 video socket) to determine which video socket is raising this event. The socket ID property will be present in both single view and multiview cases. The ID maps to the order in which the video sockets are provided to the Microsoft.Skype.Bots.Media.MediaPlatform (or IMediaPlatform) API CreateMediaConfiguration. Eg. If the collection of IVideoSocket objects in the CreateMediaConfiguration API contains { socketA, socketB, socketC }, the sockets will have the ID mapping of: 0 for socketA, 1 for socketB and 2 for socketC. Declaration public int SocketId { get; set; } Property Value Type Description Int32" + "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventType.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.LogEventType.html", + "title": "Enum LogEventType", + "keywords": "Enum LogEventType Log event type that describes what type of LogEvent this is. Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum LogEventType Fields Name Description HttpTrace The event used to track HTTP Calls. Metric The event used to track metrics Trace The event used to track Traces. Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(LogEventType, String, String) Validator.Equals(LogEventType, String) Validator.NotEquals(LogEventType, String, String)" }, - "common/Microsoft.Graph.Communications.Common.HighResolutionDateTime.html": { - "href": "common/Microsoft.Graph.Communications.Common.HighResolutionDateTime.html", - "title": "Class HighResolutionDateTime", - "keywords": "Class HighResolutionDateTime High resolution datetime Inheritance Object HighResolutionDateTime Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HighResolutionDateTime Properties IsAvailable Gets a value indicating whether high resolution datetime is available Declaration public static bool IsAvailable { get; } Property Value Type Description Boolean UtcNow Gets UTC now Declaration public static DateTime UtcNow { get; } Property Value Type Description DateTime" + "common/Microsoft.Graph.Communications.Common.ExceptionUtils.html": { + "href": "common/Microsoft.Graph.Communications.Common.ExceptionUtils.html", + "title": "Class ExceptionUtils", + "keywords": "Class ExceptionUtils Exception utilities Inheritance Object ExceptionUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class ExceptionUtils Methods FindInnerException(Exception) Find the inner exception that caused the error. Declaration public static Exception FindInnerException(this Exception exception) Parameters Type Name Description Exception exception Top level exception. Returns Type Description Exception Inner exception causing the error. FormatException(Exception, Int32) Format the exception including up to depth inner exceptions. Includes stack trace of the last inner exception (up to depth ). Declaration public static string FormatException(this Exception exception, int depth = 4) Parameters Type Name Description Exception exception Top level exception. Int32 depth The depth of inner exceptions, valid range is [1..4]. 1 means that most top exception will be formatted. Returns Type Description String Formatted exception GetBaseException(Exception) Gets the base exception of an exception. If the exception is an AggregateException, then the inner exceptions are flattened before getting the base exception. Declaration public static Exception GetBaseException(Exception exception) Parameters Type Name Description Exception exception The exception Returns Type Description Exception Whether it's base exception" }, - "common/Microsoft.Graph.Communications.Common.StringUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.StringUtils.html", - "title": "Class StringUtils", - "keywords": "Class StringUtils String Utils Inheritance Object StringUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class StringUtils Methods ConvertOrDefault(String, T) Convert string to type or return default Declaration public static T ConvertOrDefault(string value, T defaultValue = null) Parameters Type Name Description String value input value T defaultValue default value Returns Type Description T result of the conversion Type Parameters Name Description T Type of return value EqualsIgnoreCase(String, String) Case insensitive string comparison Declaration public static bool EqualsIgnoreCase(this string valueA, string valueB) Parameters Type Name Description String valueA Input string A String valueB Input string B Returns Type Description Boolean Value indicating whether strings are equal in a case insensitive comparision FromBase64(String) Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array. Declaration public static byte[] FromBase64(this string data) Parameters Type Name Description String data The string to convert. Returns Type Description Byte [] An array of 8-bit unsigned integers. FromBase64Url(String) Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array. Declaration public static byte[] FromBase64Url(this string data) Parameters Type Name Description String data The string to convert. Returns Type Description Byte [] An array of 8-bit unsigned integers. Join(IEnumerable, String) Concatenates the members of a constructed IEnumerable collection of type String , using the specified separator between each member. Declaration public static string Join(this IEnumerable values, string separator) Parameters Type Name Description IEnumerable < String > values A collection that contains the strings to concatenate. String separator The string to use as a separator. separator is included in the returned string only if values has more than one element. Returns Type Description String A string that consists of the members of values delimited by the separator string. If values has no members, the method returns Empty . NamespaceInCamelCase(String) Returns a namespace in camel case. Declaration public static string NamespaceInCamelCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String The namespace string in camel case. NamespaceInPascalCase(String) Returns a namespace in pascal case. Declaration public static string NamespaceInPascalCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String The namespace string in pascal case. SafeFormat(String, Object[]) Format a string with arguments. Declaration public static string SafeFormat(this string text, params object[] args) Parameters Type Name Description String text Format string. Object [] args Optional arguments. Returns Type Description String Formatted string. ToBase64(ArraySegment, Nullable, Nullable) Convert array segment to base 64 representation. Declaration public static string ToBase64(this ArraySegment data, int? offset = default(int? ), int? count = default(int? )) Parameters Type Name Description ArraySegment < Byte > data Data to convert. Nullable < Int32 > offset Optional override offset. Nullable < Int32 > count Optional override count. Returns Type Description String Base 64 encoded string. ToBase64(Byte[]) Convert byte array to base64. Declaration public static string ToBase64(this byte[] data) Parameters Type Name Description Byte [] data The data. Returns Type Description String Base64 representation. ToBase64Url(ArraySegment, Nullable, Nullable) Convert array segment to base 64 URL representation. Declaration public static string ToBase64Url(this ArraySegment data, int? offset = default(int? ), int? count = default(int? )) Parameters Type Name Description ArraySegment < Byte > data Data to convert. Nullable < Int32 > offset Optional override offset. Nullable < Int32 > count Optional override count. Returns Type Description String Base 64 encoded string. ToCamelCase(String) Converts value to camel casing. Declaration public static string ToCamelCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String Returns string in camel case. ToPascalCase(String) Converts value to pascal casing. Declaration public static string ToPascalCase(this string value) Parameters Type Name Description String value Value to convert. Returns Type Description String Returns string in pascal case. TrimEnd(String, String) Remove a substring from the end of a given string. This is called iteratively. Declaration public static string TrimEnd(this string target, string trimString) Parameters Type Name Description String target The target. String trimString The trim string. Returns Type Description String The string after being trimmed. TrimStart(String, String) Remove a substring from the beginning of a given string. This is called iteratively. Declaration public static string TrimStart(this string target, string trimString) Parameters Type Name Description String target The target. String trimString The trim string. Returns Type Description String The string after being trimmed." + "common/Microsoft.Graph.AdditionalDataExtensions.html": { + "href": "common/Microsoft.Graph.AdditionalDataExtensions.html", + "title": "Class AdditionalDataExtensions", + "keywords": "Class AdditionalDataExtensions The identity set extensions Inheritance Object AdditionalDataExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class AdditionalDataExtensions Methods GetValue(IDictionary, String, T) Gets the object using the key from additional data. Declaration public static T GetValue(this IDictionary additionalData, string key, T default = null) Parameters Type Name Description IDictionary < String , Object > additionalData The additional data. String key The key. T default The default value if value could not be parsed. Returns Type Description T /// The converted value. Type Parameters Name Description T The expected type for the specified key. SetInAdditionalData(Object, String, Object) Sets the object with given key in additional data. Declaration public static void SetInAdditionalData(this object obj, string key, object value) Parameters Type Name Description Object obj The identity. String key The key. Object value The value." }, - "common/Microsoft.Graph.Communications.Common.TaskExtension.html": { - "href": "common/Microsoft.Graph.Communications.Common.TaskExtension.html", - "title": "Class TaskExtension", - "keywords": "Class TaskExtension Extensions for Task Inheritance Object TaskExtension Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class TaskExtension Methods ExpectExceptionAsync(Task, Type) Except an exception Declaration public static Task ExpectExceptionAsync(this Task task, Type expectedEx) Parameters Type Name Description Task task task Type expectedEx expected exception Returns Type Description Task Task representing completion ExpectExceptionAsync(Task, Type) Except an exception Declaration public static Task ExpectExceptionAsync(this Task task, Type expectedEx) Parameters Type Name Description Task task task Type expectedEx expected exception Returns Type Description Task Task representing completion Type Parameters Name Description T type IgnoreExceptionAsync(Task, Type) Ignore exception Declaration public static Task IgnoreExceptionAsync(this Task task, Type exceptionType) Parameters Type Name Description Task task task Type exceptionType exception type Returns Type Description Task Task representing completion IgnoreExceptionAsync(Task, Type) Ignore exception Declaration public static Task IgnoreExceptionAsync(this Task task, Type exceptionType) Parameters Type Name Description Task task task Type exceptionType exception type Returns Type Description Task Task representing completion Type Parameters Name Description T type" + "calls/Microsoft.Graph.Communications.Calls.JoinMeetingParameters.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.JoinMeetingParameters.html", + "title": "Class JoinMeetingParameters", + "keywords": "Class JoinMeetingParameters Class to define parameters required for joining a meeting. Inheritance Object JoinMeetingParameters Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public class JoinMeetingParameters Constructors JoinMeetingParameters(ChatInfo, MeetingInfo, IMediaSession, Boolean) Initializes a new instance of the JoinMeetingParameters class. Use this constructor for app hosted media. Declaration public JoinMeetingParameters(ChatInfo chatInfo, MeetingInfo meetingInfo, IMediaSession mediaSession, bool removeFromDefaultAudioRoutingGroup = false) Parameters Type Name Description ChatInfo chatInfo The chat information. MeetingInfo meetingInfo The meeting information. IMediaSession mediaSession The media session. Boolean removeFromDefaultAudioRoutingGroup Whether to remove it from the default audio route. JoinMeetingParameters(ChatInfo, MeetingInfo, IEnumerable, IEnumerable, Boolean) Initializes a new instance of the JoinMeetingParameters class. Use this constructor for service hosted media. Declaration public JoinMeetingParameters(ChatInfo chatInfo, MeetingInfo meetingInfo, IEnumerable requestedModalities, IEnumerable prefetchPrompts = null, bool removeFromDefaultAudioRoutingGroup = false) Parameters Type Name Description ChatInfo chatInfo The chat information. MeetingInfo meetingInfo The meeting information. IEnumerable < Modality > requestedModalities The list of modalities for the call IEnumerable < MediaInfo > prefetchPrompts The list of media files to prefetch Boolean removeFromDefaultAudioRoutingGroup Whether to remove it from the default audio route. Properties AdditionalData Gets or sets the additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ChatInfo Gets the chat information. Declaration public ChatInfo ChatInfo { get; } Property Value Type Description ChatInfo CorrelationId Gets or sets the correlation identifier. Declaration [Obsolete(\"Please use AddAsync(JoinMeetingParameters parameters, Guid scenarioId).\")] public Guid CorrelationId { get; set; } Property Value Type Description Guid GuestIdentity Gets or sets the guest identity. Declaration public Identity GuestIdentity { get; set; } Property Value Type Description Microsoft.Graph.Identity MediaSession Gets the media session. Declaration public IMediaSession MediaSession { get; } Property Value Type Description IMediaSession MeetingInfo Gets the meeting information. Declaration public MeetingInfo MeetingInfo { get; } Property Value Type Description MeetingInfo PrefetchPrompts Gets the list of media files to prefetch. Declaration public IEnumerable PrefetchPrompts { get; } Property Value Type Description IEnumerable < MediaInfo > RemoveFromDefaultAudioRoutingGroup Gets or sets a value indicating whether to remove from default audio routing group. Declaration public bool RemoveFromDefaultAudioRoutingGroup { get; set; } Property Value Type Description Boolean RequestedModalities Gets the list of modalities to join the call with. Declaration public IEnumerable RequestedModalities { get; } Property Value Type Description IEnumerable < Modality > Subject Gets or sets the subject. Declaration public string Subject { get; set; } Property Value Type Description String TenantId Gets or sets the tenant id Declaration public string TenantId { get; set; } Property Value Type Description String" }, - "common/Microsoft.Graph.Communications.Common.Transport.Http.HttpUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.Transport.Http.HttpUtils.html", - "title": "Class HttpUtils", - "keywords": "Class HttpUtils Utilities for Http transport Inheritance Object HttpUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Transport.Http Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HttpUtils Methods GetRequestTypeForHttpMethod(String) Gets the type of the request for the given http method. Declaration public static RequestType GetRequestTypeForHttpMethod(string httpMethod) Parameters Type Name Description String httpMethod The HTTP method. Returns Type Description RequestType RequestType corresponding to the httpMethod Exceptions Type Condition InvalidOperationException Thrown if httpMethod has no corresponding RequestType" + "calls/Microsoft.Graph.Communications.Calls.IMediaSession.html": { + "href": "calls/Microsoft.Graph.Communications.Calls.IMediaSession.html", + "title": "Interface IMediaSession", + "keywords": "Interface IMediaSession The IMediaSession interface. For local media scenarios, this session object represents the modalities and the media configuration. Inherited Members IDisposable.Dispose() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public interface IMediaSession : IDisposable Properties MediaSessionId Gets the id of this media session. Declaration Guid MediaSessionId { get; } Property Value Type Description Guid Modalities Gets the supported modalities Declaration Modality[] Modalities { get; } Property Value Type Description Modality [] Methods GetMediaConfiguration() Get the media configuration Declaration JObject GetMediaConfiguration() Returns Type Description Newtonsoft.Json.Linq.JObject A Newtonsoft.Json.Linq.JObject produced by the Media library." }, - "core/Microsoft.Graph.CommsNotifications.html": { - "href": "core/Microsoft.Graph.CommsNotifications.html", - "title": "Class CommsNotifications", - "keywords": "Class CommsNotifications The type CommsNotifications. Inheritance Object CommsNotifications Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.dll Syntax public class CommsNotifications Constructors CommsNotifications() Declaration public CommsNotifications() Properties AdditionalData Gets or sets additional data. Declaration public IDictionary AdditionalData { get; set; } Property Value Type Description IDictionary < String , Object > ODataType Gets or sets @odata.type. Declaration public string ODataType { get; set; } Property Value Type Description String Value Gets or sets value. Declaration public IEnumerable Value { get; set; } Property Value Type Description IEnumerable < CommsNotification >" + "bot_media/Microsoft.Skype.Bots.Media.DataSocket.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.DataSocket.html", + "title": "Class DataSocket", + "keywords": "Class DataSocket Reserved for the internal use. Inheritance Object DataSocket Implements IDataSocket IDisposable Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public sealed class DataSocket : IDataSocket, IDisposable, IInternalSocket Constructors DataSocket(DataSocketSettings) Reserverd for internal use. Declaration public DataSocket(DataSocketSettings settings) Parameters Type Name Description DataSocketSettings settings Methods Dispose() Reserved for the internal use. Declaration public void Dispose() Send(DataMediaBuffer, UInt32[]) Reserved for the internal use. Declaration public void Send(DataMediaBuffer buffer, uint[] recipientIds) Parameters Type Name Description DataMediaBuffer buffer UInt32 [] recipientIds Events DataMediaReceived Reserved for the internal use. Declaration public event EventHandler DataMediaReceived Event Type Type Description EventHandler < DataMediaReceivedEventArgs > DataSendStatusChanged Reserved for the internal use. Declaration public event EventHandler DataSendStatusChanged Event Type Type Description EventHandler < DataSendStatusChangedEventArgs > MediaStreamFailure This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting. Declaration public event EventHandler MediaStreamFailure Event Type Type Description EventHandler < MediaStreamFailureEventArgs > Implements IDataSocket System.IDisposable" }, - "bot_media/Microsoft.Skype.Bots.Media.UnmixedAudioBuffer.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.UnmixedAudioBuffer.html", - "title": "Struct UnmixedAudioBuffer", - "keywords": "Struct UnmixedAudioBuffer Represents an unmanaged audio buffer that contains unmixed data corresponding to a specific speaker in a conference. This structure contains a pointer to the unmanaged audio buffer, the length of the buffer and the ID of the audio source of the active speaker. Inherited Members ValueType.Equals(Object) ValueType.GetHashCode() ValueType.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public struct UnmixedAudioBuffer Properties ActiveSpeakerId The ID of the audio source of the active speaker. Declaration public uint ActiveSpeakerId { get; } Property Value Type Description UInt32 Data Pointer to the unmanaged media buffer. Declaration public IntPtr Data { get; } Property Value Type Description IntPtr Length The length of data in the media buffer. Declaration public long Length { get; } Property Value Type Description Int64" + "bot_media/Microsoft.Skype.Bots.Media.AudioSendStatusChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSendStatusChangedEventArgs.html", + "title": "Class AudioSendStatusChangedEventArgs", + "keywords": "Class AudioSendStatusChangedEventArgs Event arguments of an AudioSendStatusChanged event. Inheritance Object EventArgs AudioSendStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSendStatusChangedEventArgs : EventArgs Constructors AudioSendStatusChangedEventArgs() Declaration public AudioSendStatusChangedEventArgs() Properties MediaSendStatus Status if socket is ready to send media. Declaration public MediaSendStatus MediaSendStatus { get; set; } Property Value Type Description MediaSendStatus" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoMediaStreamQualityChangedEventArgs.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoMediaStreamQualityChangedEventArgs.html", - "title": "Class VideoMediaStreamQualityChangedEventArgs", - "keywords": "Class VideoMediaStreamQualityChangedEventArgs Event arguments of the video media stream quality event. Inheritance Object EventArgs VideoMediaStreamQualityChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoMediaStreamQualityChangedEventArgs : EventArgs Constructors VideoMediaStreamQualityChangedEventArgs() Declaration public VideoMediaStreamQualityChangedEventArgs() Properties MediaQualityState Indicates the media quality state of the mediaStream quality changed event Declaration public MediaQualityState MediaQualityState { get; set; } Property Value Type Description MediaQualityState SocketId Socket id associated with the event Declaration public int SocketId { get; set; } Property Value Type Description Int32 VideoQualityType Indicates the media quality type of the media stream quality changed event Declaration public VideoQualityType VideoQualityType { get; set; } Property Value Type Description VideoQualityType" + "bot_media/Microsoft.Skype.Bots.Media.VideoSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSettings.html", + "title": "Class VideoSettings", + "keywords": "Class VideoSettings Video Frame player settings Inheritance Object VideoSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSettings Constructors VideoSettings() Declaration public VideoSettings()" }, - "bot_media/Microsoft.Skype.Bots.Media.VideoQualityType.html": { - "href": "bot_media/Microsoft.Skype.Bots.Media.VideoQualityType.html", - "title": "Enum VideoQualityType", - "keywords": "Enum VideoQualityType Type of the video media quality Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoQualityType Fields Name Description ReceiveFreeze Video freeze for the received stream" + "common/Microsoft.Graph.Communications.Common.Telemetry.MetricLogData.html": { + "href": "common/Microsoft.Graph.Communications.Common.Telemetry.MetricLogData.html", + "title": "Class MetricLogData", + "keywords": "Class MetricLogData The metric of Geneva Instrumentation Framework (Ifx). Inheritance Object MetricLogData Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Common.dll Syntax public class MetricLogData Constructors MetricLogData() Declaration public MetricLogData() Properties AddDefaultDimension Gets or sets a value indicating whether the default dimensions are included. Declaration public bool AddDefaultDimension { get; set; } Property Value Type Description Boolean Dimensions Gets or sets the dimensions. Declaration public Dictionary Dimensions { get; set; } Property Value Type Description Dictionary < String , String > Name Gets or sets the name. Declaration public string Name { get; set; } Property Value Type Description String Namespace Gets or sets the namespace. Declaration public string Namespace { get; set; } Property Value Type Description String RawData Gets or sets the raw data. Declaration public long RawData { get; set; } Property Value Type Description Int64 Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" }, - "calls/Microsoft.Graph.Communications.Calls.CallCollectionExtensions.html": { - "href": "calls/Microsoft.Graph.Communications.Calls.CallCollectionExtensions.html", - "title": "Class CallCollectionExtensions", - "keywords": "Class CallCollectionExtensions Extensions for call collections. Inheritance Object CallCollectionExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Calls Assembly : Microsoft.Graph.Communications.Calls.dll Syntax public static class CallCollectionExtensions Methods AddAsync(ICallCollection, JoinMeetingParameters, Guid, CancellationToken) Join a new meeting with the provided parameters Declaration public static Task AddAsync(this ICallCollection callCollection, JoinMeetingParameters parameters, Guid scenarioId = default(Guid), CancellationToken cancellationToken = default(CancellationToken)) Parameters Type Name Description ICallCollection callCollection The call collection. JoinMeetingParameters parameters The join meeting parameters. Guid scenarioId The scenario identitifer. This parameter should be used for tracking scenarios across multiple calls. Automatically generated by the SDK if not provided. CancellationToken cancellationToken The cancellation token. Returns Type Description Task < ICall > The stateful call object once the call is joined." + "client/Microsoft.Graph.Communications.Client.Authentication.html": { + "href": "client/Microsoft.Graph.Communications.Client.Authentication.html", + "title": "Namespace Microsoft.Graph.Communications.Client.Authentication", + "keywords": "Namespace Microsoft.Graph.Communications.Client.Authentication Structs RequestValidationResult The result of the request validation. Interfaces IRequestAuthenticationProvider The authentication provider interface. This is used to authenticate Inbound requests from Microsoft Graph. It validates the request was issued by Microsoft Graph. Outbound requests to Microsoft Graph. Tenant token is acquired to provide Microsoft Graph the permissions the bot has been consented by the tenant admin" }, - "common/Microsoft.Graph.Communications.Common.HttpConstants.html": { - "href": "common/Microsoft.Graph.Communications.Common.HttpConstants.html", - "title": "Class HttpConstants", - "keywords": "Class HttpConstants The constant values for http. Inheritance Object HttpConstants Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class HttpConstants Fields GraphV1Prefixes Expected values of x-ms-gateway-serviceRoot header in the requests coming in to PMA from GraphV1 endpoints Declaration public static readonly IEnumerable GraphV1Prefixes Field Value Type Description IEnumerable < String >" + "bot_media/Microsoft.Skype.Bots.Media.AudioSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.AudioSettings.html", + "title": "Class AudioSettings", + "keywords": "Class AudioSettings Audio frame player settings Inheritance Object AudioSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class AudioSettings Constructors AudioSettings(UInt32) Default constructor Declaration public AudioSettings(uint buffersizeInMs) Parameters Type Name Description UInt32 buffersizeInMs Properties BufferSizeInMs Audio buffer length in ms Declaration public uint BufferSizeInMs { get; set; } Property Value Type Description UInt32" }, - "common/Microsoft.Graph.Communications.Common.JsonUtils.html": { - "href": "common/Microsoft.Graph.Communications.Common.JsonUtils.html", - "title": "Class JsonUtils", - "keywords": "Class JsonUtils Json Utils Inheritance Object JsonUtils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common Assembly : Microsoft.Graph.Communications.Common.dll Syntax public static class JsonUtils Fields JsonContentType Json content type Declaration public const string JsonContentType = \"application/json\" Field Value Type Description String" + "common/Microsoft.Graph.Communications.Common.Transport.RequestType.html": { + "href": "common/Microsoft.Graph.Communications.Common.Transport.RequestType.html", + "title": "Enum RequestType", + "keywords": "Enum RequestType Type of request that we want to issue on the transport Namespace : Microsoft.Graph.Communications.Common.Transport Assembly : Microsoft.Graph.Communications.Common.dll Syntax public enum RequestType Fields Name Description Create Request to create a resource Delete Request to delete a resource Get Request to get a resource Replace Request to replace a resource Update Request to update a resource Extension Methods AdditionalDataExtensions.SetInAdditionalData(String, Object) Extensions.Pin() Extensions.ChangeType(Type) Extensions.ChangeType() Extensions.TryDispose(IGraphLogger) EnumUtils.GetDescription() Validator.IsNull(String, String) Validator.NotNull(String, String) Validator.Equals(RequestType, String, String) Validator.Equals(RequestType, String) Validator.NotEquals(RequestType, String, String) GraphRequestExtensions.ToHttpMethod()" }, - "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.html": { - "href": "client/Microsoft.Graph.Communications.Common.Telemetry.LogProperties.html", - "title": "Class LogProperties", - "keywords": "Class LogProperties The log properties. Inheritance Object LogProperties Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry Assembly : Microsoft.Graph.Communications.Client.dll Syntax public static class LogProperties Remarks For better logging experience, all property names should be specific enough. Avoid using generic name such as Id, Name, etc." + "bot_media/Microsoft.Skype.Bots.Media.VideoSocketSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSocketSettings.html", + "title": "Class VideoSocketSettings", + "keywords": "Class VideoSocketSettings The video socket settings. Inheritance Object VideoSocketSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSocketSettings Constructors VideoSocketSettings() Declaration public VideoSocketSettings() Properties CallId An alphanumeric string that uniquely identifies a call. Declaration public string CallId { get; set; } Property Value Type Description String MaxConcurrentSendStreams Maximum number of concurrent streams that can be sent Declaration public uint MaxConcurrentSendStreams { get; set; } Property Value Type Description UInt32 MediaType Specifies the media type of the VideoSocket. Valid types are: MediaType.Video and MediaType.Vbss Declaration public MediaType? MediaType { get; set; } Property Value Type Description Nullable < MediaType > ReceiveColorFormat What color format should received video be delivered in. Currently only NV12 is allowed. Declaration public VideoColorFormat ReceiveColorFormat { get; set; } Property Value Type Description VideoColorFormat StreamDirections The direction of the stream. Declaration public StreamDirection StreamDirections { get; set; } Property Value Type Description StreamDirection SupportedSendVideoFormats The supported video formats the Bot supports sending. Declaration public IList SupportedSendVideoFormats { get; set; } Property Value Type Description IList < VideoFormat >" }, - "README.Internal.html": { - "href": "README.Internal.html", - "title": "How to generate docs", - "keywords": "How to generate docs Download and unzip docfx.zip from https://github.com/dotnet/docfx/releases , extract it to a local folder, and add it to PATH so you can run it anywhere. Install Visual STUDIO 2017 Developer tools v15.0 and later After installation, open a X64 Native Tools Command Prompt for VS 2017. Run docfx in the docs folder, this will generate a _site folder Pack the _site folder with the project level README.md that explains how to go through the docs. How to serve the docs Download and unzip docfx.zip from https://github.com/dotnet/docfx/releases , extract it to a local folder, and add it to PATH so you can run it anywhere. Open a console window and cd to the directory which contains the _site folder Serve the docs site using docfx serve .\\_site command Goto http://localhost:8080 in your browser to view the documentation." + "bot_media/Microsoft.Skype.Bots.Media.VideoReceiveStatusChangedEventArgs.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoReceiveStatusChangedEventArgs.html", + "title": "Class VideoReceiveStatusChangedEventArgs", + "keywords": "Class VideoReceiveStatusChangedEventArgs Event arguments of a VideoReceiveStatusChanged event. Inheritance Object EventArgs VideoReceiveStatusChangedEventArgs Inherited Members EventArgs.Empty Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoReceiveStatusChangedEventArgs : EventArgs Constructors VideoReceiveStatusChangedEventArgs() Declaration public VideoReceiveStatusChangedEventArgs() Properties MediaReceiveStatus The media receive status. Declaration public MediaReceiveStatus MediaReceiveStatus { get; set; } Property Value Type Description MediaReceiveStatus MediaType MediaType of the video socket raising the event. This could be Video or Vbss. Declaration public MediaType MediaType { get; set; } Property Value Type Description MediaType SocketId Socket Id associated with the video receive event Declaration public int SocketId { get; set; } Property Value Type Description Int32" }, - "README.html": { - "href": "README.html", - "title": "Get started", - "keywords": "Get started Review the documentation to understand the concepts behind using our SDK (which is also used by the samples). Get started quickly with our samples ." + "bot_media/Microsoft.Skype.Bots.Media.VideoColorFormat.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoColorFormat.html", + "title": "Enum VideoColorFormat", + "keywords": "Enum VideoColorFormat VideoColorFormat Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoColorFormat Fields Name Description H264 H264 NV12 NV12 Rgb24 RGB24 Yuy2 YUY2" }, - "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters.BaseFilter-2.html": { - "href": "common/Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters.BaseFilter-2.html", - "title": "Class BaseFilter", - "keywords": "Class BaseFilter Base filter. Inheritance Object BaseFilter BaseFilter ContentDispositionFilter ContentTypeFilter HeaderFilter UriFilter Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Graph.Communications.Common.Telemetry.HttpLogging.Filters Assembly : Microsoft.Graph.Communications.Common.dll Syntax public abstract class BaseFilter : BaseFilter Type Parameters Name Description T1 Type of input for the filter. T2 Return value for the evaluator. Constructors BaseFilter() Declaration protected BaseFilter() Properties MatchableString Gets or sets the string for which this filter is a match. Declaration public T2 MatchableString { get; protected set; } Property Value Type Description T2 MatchEvaluator Gets or sets the match evaluator that converts the input value to target value. Declaration public Func MatchEvaluator { get; protected set; } Property Value Type Description Func Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.PortRange.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.PortRange.html", + "title": "Class PortRange", + "keywords": "Class PortRange The Port range Inheritance Object PortRange Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class PortRange Constructors PortRange(UInt32, UInt32) The PortRange constructor Declaration public PortRange(uint minPort, uint maxPort) Parameters Type Name Description UInt32 minPort The minimum port. UInt32 maxPort The maximum port. Properties MaxPort The maximum port. Declaration public uint MaxPort { get; } Property Value Type Description UInt32 MinPort The minimum port. Declaration public uint MinPort { get; } Property Value Type Description UInt32" }, - "common/Microsoft.Graph.Communications.Common.OData.ODataJsonConverter.html": { - "href": "common/Microsoft.Graph.Communications.Common.OData.ODataJsonConverter.html", - "title": "Class ODataJsonConverter", - "keywords": "Class ODataJsonConverter Handles resolving interfaces to the correct derived class during serialization/deserialization. Inheritance Object ODataJsonConverter Namespace : Microsoft.Graph.Communications.Common.OData Assembly : Microsoft.Graph.Communications.Common.dll Syntax public sealed class ODataJsonConverter : JsonConverter Constructors ODataJsonConverter(Assembly[]) Initializes a new instance of the ODataJsonConverter class. Declaration public ODataJsonConverter(params Assembly[] typeAssemblies) Parameters Type Name Description Assembly [] typeAssemblies The type assemblies. Properties CanWrite Declaration public override bool CanWrite { get; } Property Value Type Description Boolean Methods CanConvert(Type) Declaration public override bool CanConvert(Type objectType) Parameters Type Name Description Type objectType Returns Type Description Boolean ReadJson(JsonReader, Type, Object, JsonSerializer) Deserializes the object to the correct type. Declaration public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) Parameters Type Name Description Newtonsoft.Json.JsonReader reader The Newtonsoft.Json.JsonReader to read from. Type objectType The interface type. Object existingValue The existing value of the object being read. Newtonsoft.Json.JsonSerializer serializer The Newtonsoft.Json.JsonSerializer for deserialization. Returns Type Description Object The deserialized object WriteJson(JsonWriter, Object, JsonSerializer) Declaration public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) Parameters Type Name Description Newtonsoft.Json.JsonWriter writer Object value Newtonsoft.Json.JsonSerializer serializer Extension Methods AdditionalDataExtensions.SetInAdditionalData(Object, String, Object) Extensions.Pin(Object) Extensions.ChangeType(Object, Type) Extensions.ChangeType(Object) Extensions.TryDispose(Object, IGraphLogger) Validator.IsNull(Object, String, String) Validator.NotNull(T, String, String) Validator.Equals(T, T, String, String) Validator.Equals(T, T, String) Validator.NotEquals(T, T, String, String)" + "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformSettings.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.MediaPlatformSettings.html", + "title": "Class MediaPlatformSettings", + "keywords": "Class MediaPlatformSettings Class that stores settings needed to initialize Bot Media Platform. Inheritance Object MediaPlatformSettings Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class MediaPlatformSettings Constructors MediaPlatformSettings() Declaration public MediaPlatformSettings() Properties ApplicationId String that uniquely identifies the application that initializes the platform. Declaration public string ApplicationId { get; set; } Property Value Type Description String MediaPlatformInstanceSettings The media platform instance settings. Declaration public MediaPlatformInstanceSettings MediaPlatformInstanceSettings { get; set; } Property Value Type Description MediaPlatformInstanceSettings MediaPlatformLogger Optional logger object to receive MediaPlatform traces. Declaration public IMediaPlatformLogger MediaPlatformLogger { get; set; } Property Value Type Description IMediaPlatformLogger RegionAffinity Reserved for the internal use. Declaration public string RegionAffinity { get; set; } Property Value Type Description String" }, - "client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html": { - "href": "client/Microsoft.Graph.Communications.Resources.ResourceEventHandler-2.html", - "title": "Delegate ResourceEventHandler", - "keywords": "Delegate ResourceEventHandler The resource event handler delegate. Namespace : Microsoft.Graph.Communications.Resources Assembly : Microsoft.Graph.Communications.Client.dll Syntax public delegate void ResourceEventHandler(TSender sender, ResourceEventArgs e) where TEntity : Entity; Parameters Type Name Description TSender sender The sender. ResourceEventArgs e The event arguments. Type Parameters Name Description TSender The type of the resource. IResource TEntity The containing resource type. Microsoft.Graph.Entity Constructors ResourceEventHandler(Object, IntPtr) Declaration public ResourceEventHandler(object object, IntPtr method) Parameters Type Name Description Object object IntPtr method Methods BeginInvoke(TSender, ResourceEventArgs, AsyncCallback, Object) Declaration public virtual IAsyncResult BeginInvoke(TSender sender, ResourceEventArgs e, AsyncCallback callback, object object) Parameters Type Name Description TSender sender ResourceEventArgs e AsyncCallback callback Object object Returns Type Description IAsyncResult EndInvoke(IAsyncResult) Declaration public virtual void EndInvoke(IAsyncResult result) Parameters Type Name Description IAsyncResult result Invoke(TSender, ResourceEventArgs) Declaration public virtual void Invoke(TSender sender, ResourceEventArgs e) Parameters Type Name Description TSender sender ResourceEventArgs e" + "bot_media/Microsoft.Skype.Bots.Media.VideoSendCapability.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoSendCapability.html", + "title": "Class VideoSendCapability", + "keywords": "Class VideoSendCapability The Video Send Capability Inheritance Object VideoSendCapability Inherited Members Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoSendCapability Constructors VideoSendCapability() Declaration public VideoSendCapability() Properties MaxConcurrentSendStreams Maximum number of concurrent streams that can be sent. Declaration public uint MaxConcurrentSendStreams { get; set; } Property Value Type Description UInt32 SupportedSendVideoFormats The list of video formats the bot supports sending. Declaration public IList SupportedSendVideoFormats { get; set; } Property Value Type Description IList < VideoFormat > Methods ToString() String representation of VideoSendCapability Declaration public override string ToString() Returns Type Description String Overrides Object.ToString()" }, - "client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html": { - "href": "client/Microsoft.Graph.Communications.Client.Transport.GraphClientWrapper.html", - "title": "Class GraphClientWrapper", - "keywords": "Class GraphClientWrapper The graph client wrapper. Inheritance Object GraphClientWrapper Implements IGraphClient Namespace : Microsoft.Graph.Communications.Client.Transport Assembly : Microsoft.Graph.Communications.Client.dll Syntax public class GraphClientWrapper : ObjectRoot, IGraphClient Constructors GraphClientWrapper(IGraphClient, GraphClientContext) Initializes a new instance of the GraphClientWrapper class. Declaration public GraphClientWrapper(IGraphClient client, GraphClientContext context) Parameters Type Name Description IGraphClient client The client. GraphClientContext context The context. Properties Context Gets the context. Declaration public GraphClientContext Context { get; } Property Value Type Description GraphClientContext DefaultProperties Gets the default properties. Declaration public IEnumerable DefaultProperties { get; } Property Value Type Description IEnumerable < IGraphProperty > GraphLogger Declaration public IGraphLogger GraphLogger { get; } Property Value Type Description IGraphLogger Methods SendAsync(IGraphRequest, CancellationToken) Declaration public Task SendAsync(IGraphRequest request, CancellationToken cancellationToken = default(CancellationToken)) where T : class Parameters Type Name Description IGraphRequest request CancellationToken cancellationToken Returns Type Description Task < IGraphResponse > Type Parameters Name Description T SendAsync(IGraphRequest, CancellationToken) Declaration public Task> SendAsync(IGraphRequest request, CancellationToken cancellationToken = default(CancellationToken)) where T1 : class where T2 : class Parameters Type Name Description IGraphRequest request CancellationToken cancellationToken Returns Type Description Task < IGraphResponse > Type Parameters Name Description T1 T2 Implements IGraphClient" + "bot_media/Microsoft.Skype.Bots.Media.VideoResolution.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoResolution.html", + "title": "Enum VideoResolution", + "keywords": "Enum VideoResolution Video resolution for vbss and video Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public enum VideoResolution Fields Name Description HD1080p 1920 X 1080 HD720p 1280 X 720 SD180p 320 X 180 SD240p 424 X 240 SD360p 640 X 360 SD540p 960 X 540" }, - "core_calls/Microsoft.Graph.UnmuteParticipantsOperation.html": { - "href": "core_calls/Microsoft.Graph.UnmuteParticipantsOperation.html", - "title": "Class UnmuteParticipantsOperation", - "keywords": "Class UnmuteParticipantsOperation The type Unmute Participants Operation. Inheritance Object UnmuteParticipantsOperation Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class UnmuteParticipantsOperation : CommsOperation Constructors UnmuteParticipantsOperation() Declaration public UnmuteParticipantsOperation() Properties Participants Gets or sets participants. Declaration public IEnumerable Participants { get; set; } Property Value Type Description IEnumerable < String >" + "bot_media/Microsoft.Skype.Bots.Media.VideoFormat.html": { + "href": "bot_media/Microsoft.Skype.Bots.Media.VideoFormat.html", + "title": "Class VideoFormat", + "keywords": "Class VideoFormat VideoFormat Inheritance Object VideoFormat Implements IEquatable < VideoFormat > Inherited Members Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : Microsoft.Skype.Bots.Media Assembly : Microsoft.Skype.Bots.Media.dll Syntax public class VideoFormat : IEquatable Fields H264_1280x720_1_875Fps H264 1280x720 1.875fps video format Declaration public static readonly VideoFormat H264_1280x720_1_875Fps Field Value Type Description VideoFormat H264_1280x720_15Fps H264 1280x720 15fps video format Declaration public static readonly VideoFormat H264_1280x720_15Fps Field Value Type Description VideoFormat H264_1280x720_3_75Fps H264 1280x720 3.75fps video format Declaration public static readonly VideoFormat H264_1280x720_3_75Fps Field Value Type Description VideoFormat H264_1280x720_30Fps H264 1280x720 30fps video format Declaration public static readonly VideoFormat H264_1280x720_30Fps Field Value Type Description VideoFormat H264_1280x720_7_5Fps H264 1280x720 7.5fps video format Declaration public static readonly VideoFormat H264_1280x720_7_5Fps Field Value Type Description VideoFormat H264_1920x1080_1_875Fps H264 1920x1080 1.875fps video format Declaration public static readonly VideoFormat H264_1920x1080_1_875Fps Field Value Type Description VideoFormat H264_1920x1080_15Fps H264 1920x1080 15fps video format Declaration public static readonly VideoFormat H264_1920x1080_15Fps Field Value Type Description VideoFormat H264_1920x1080_3_75Fps H264 1920x1080 3.75fps video format Declaration public static readonly VideoFormat H264_1920x1080_3_75Fps Field Value Type Description VideoFormat H264_1920x1080_30Fps H264 1920x1080 30fps video format Declaration public static readonly VideoFormat H264_1920x1080_30Fps Field Value Type Description VideoFormat H264_1920x1080_7_5Fps H264 1920x1080 7.5fps video format Declaration public static readonly VideoFormat H264_1920x1080_7_5Fps Field Value Type Description VideoFormat H264_320x180_1_875Fps H264 320x180 1.875fps video format Declaration public static readonly VideoFormat H264_320x180_1_875Fps Field Value Type Description VideoFormat H264_320x180_15Fps H264 320x180 15fps video format Declaration public static readonly VideoFormat H264_320x180_15Fps Field Value Type Description VideoFormat H264_320x180_3_75Fps H264 320x180 3.75fps video format Declaration public static readonly VideoFormat H264_320x180_3_75Fps Field Value Type Description VideoFormat H264_320x180_7_5Fps H264 320x180 7.5fps video format Declaration public static readonly VideoFormat H264_320x180_7_5Fps Field Value Type Description VideoFormat H264_424x240_15Fps H264 424x240 15fps video format Declaration public static readonly VideoFormat H264_424x240_15Fps Field Value Type Description VideoFormat H264_640x360_15Fps H264 640x360 15fps video format Declaration public static readonly VideoFormat H264_640x360_15Fps Field Value Type Description VideoFormat H264_640x360_30Fps H264 640x360 30fps video format Declaration public static readonly VideoFormat H264_640x360_30Fps Field Value Type Description VideoFormat H264_960x540_30Fps H264 960x540 30fps video format Declaration public static readonly VideoFormat H264_960x540_30Fps Field Value Type Description VideoFormat NV12_1080x1920_30Fps NV12 1080x1920 30fps video format Declaration public static readonly VideoFormat NV12_1080x1920_30Fps Field Value Type Description VideoFormat NV12_1280x720_1_875Fps NV12 1280x720 1.875fps video format Declaration public static readonly VideoFormat NV12_1280x720_1_875Fps Field Value Type Description VideoFormat NV12_1280x720_15Fps NV12 1280x720 15fps video format Declaration public static readonly VideoFormat NV12_1280x720_15Fps Field Value Type Description VideoFormat NV12_1280x720_3_75Fps NV12 1280x720 3.75fps video format Declaration public static readonly VideoFormat NV12_1280x720_3_75Fps Field Value Type Description VideoFormat NV12_1280x720_30Fps NV12 1280x720 30fps video format Declaration public static readonly VideoFormat NV12_1280x720_30Fps Field Value Type Description VideoFormat NV12_1280x720_7_5Fps NV12 1280x720 7.5fps video format Declaration public static readonly VideoFormat NV12_1280x720_7_5Fps Field Value Type Description VideoFormat NV12_180x320_30Fps NV12 180x320 15fps video format Declaration public static readonly VideoFormat NV12_180x320_30Fps Field Value Type Description VideoFormat NV12_1920x1080_1_875Fps NV12 1920x1080 1.875fps video format Declaration public static readonly VideoFormat NV12_1920x1080_1_875Fps Field Value Type Description VideoFormat NV12_1920x1080_15Fps NV12 1920x1080 15fps video format Declaration public static readonly VideoFormat NV12_1920x1080_15Fps Field Value Type Description VideoFormat NV12_1920x1080_3_75Fps NV12 1920x1080 3.75fps video format Declaration public static readonly VideoFormat NV12_1920x1080_3_75Fps Field Value Type Description VideoFormat NV12_1920x1080_30Fps NV12 1920x1080 30fps video format Declaration public static readonly VideoFormat NV12_1920x1080_30Fps Field Value Type Description VideoFormat NV12_1920x1080_7_5Fps NV12 1920x1080 7.5fps video format Declaration public static readonly VideoFormat NV12_1920x1080_7_5Fps Field Value Type Description VideoFormat NV12_240x424_15Fps NV12 240x424 15fps video format Declaration public static readonly VideoFormat NV12_240x424_15Fps Field Value Type Description VideoFormat NV12_270x480_15Fps NV12 270x480 15fps video format Declaration public static readonly VideoFormat NV12_270x480_15Fps Field Value Type Description VideoFormat NV12_320x180_15Fps NV12 320x180 15fps video format Declaration public static readonly VideoFormat NV12_320x180_15Fps Field Value Type Description VideoFormat NV12_360x640_15Fps NV12 360x640 15fps video format Declaration public static readonly VideoFormat NV12_360x640_15Fps Field Value Type Description VideoFormat NV12_360x640_30Fps NV12 360x640 30fps video format Declaration public static readonly VideoFormat NV12_360x640_30Fps Field Value Type Description VideoFormat NV12_424x240_15Fps NV12 424x240 15fps video format Declaration public static readonly VideoFormat NV12_424x240_15Fps Field Value Type Description VideoFormat NV12_480x270_15Fps NV12 480x270 15fps video format Declaration public static readonly VideoFormat NV12_480x270_15Fps Field Value Type Description VideoFormat NV12_480x848_30Fps NV12 480x848 30fps video format Declaration public static readonly VideoFormat NV12_480x848_30Fps Field Value Type Description VideoFormat NV12_540x960_30Fps NV12 540x960 30fps video format Declaration public static readonly VideoFormat NV12_540x960_30Fps Field Value Type Description VideoFormat NV12_640x360_15Fps NV12 640x360 15fps video format Declaration public static readonly VideoFormat NV12_640x360_15Fps Field Value Type Description VideoFormat NV12_640x360_30Fps NV12 640x360 30fps video format Declaration public static readonly VideoFormat NV12_640x360_30Fps Field Value Type Description VideoFormat NV12_720x1280_30Fps NV12 720x1280 30fps video format Declaration public static readonly VideoFormat NV12_720x1280_30Fps Field Value Type Description VideoFormat NV12_848x480_30Fps NV12 848x480 30fps video format Declaration public static readonly VideoFormat NV12_848x480_30Fps Field Value Type Description VideoFormat NV12_960x540_30Fps NV12 960x540 30fps video format Declaration public static readonly VideoFormat NV12_960x540_30Fps Field Value Type Description VideoFormat Rgb24_1080x1920_30Fps Rgb24 1080x1920 30fps video format Declaration public static readonly VideoFormat Rgb24_1080x1920_30Fps Field Value Type Description VideoFormat Rgb24_1280x720_1_875Fps Rgb24 1280x720 1.875fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_1_875Fps Field Value Type Description VideoFormat Rgb24_1280x720_15Fps Rgb24 1280x720 15fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_15Fps Field Value Type Description VideoFormat Rgb24_1280x720_3_75Fps Rgb24 1280x720 3.75fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_3_75Fps Field Value Type Description VideoFormat Rgb24_1280x720_30Fps Rgb24 1280x720 30fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_30Fps Field Value Type Description VideoFormat Rgb24_1280x720_7_5Fps Rgb24 1280x720 7.5fps video format Declaration public static readonly VideoFormat Rgb24_1280x720_7_5Fps Field Value Type Description VideoFormat Rgb24_180x320_30Fps Rgb24 180x320 15fps video format Declaration public static readonly VideoFormat Rgb24_180x320_30Fps Field Value Type Description VideoFormat Rgb24_1920x1080_1_875Fps Rgb24 1920x1080 1.875fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_1_875Fps Field Value Type Description VideoFormat Rgb24_1920x1080_15Fps Rgb24 1920x1080 15fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_15Fps Field Value Type Description VideoFormat Rgb24_1920x1080_3_75Fps Rgb24 1920x1080 3.75fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_3_75Fps Field Value Type Description VideoFormat Rgb24_1920x1080_30Fps Rgb24 1920x1080 30fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_30Fps Field Value Type Description VideoFormat Rgb24_1920x1080_7_5Fps Rgb24 1920x1080 7.5fps video format Declaration public static readonly VideoFormat Rgb24_1920x1080_7_5Fps Field Value Type Description VideoFormat Rgb24_240x424_15Fps Rgb24 240x424 15fps video format Declaration public static readonly VideoFormat Rgb24_240x424_15Fps Field Value Type Description VideoFormat Rgb24_270x480_15Fps Rgb24 270x480 15fps video format Declaration public static readonly VideoFormat Rgb24_270x480_15Fps Field Value Type Description VideoFormat Rgb24_320x180_15Fps Rgb24 320x180 15fps video format Declaration public static readonly VideoFormat Rgb24_320x180_15Fps Field Value Type Description VideoFormat Rgb24_360x640_15Fps Rgb24 360x640 15fps video format Declaration public static readonly VideoFormat Rgb24_360x640_15Fps Field Value Type Description VideoFormat Rgb24_360x640_30Fps Rgb24 360x640 30fps video format Declaration public static readonly VideoFormat Rgb24_360x640_30Fps Field Value Type Description VideoFormat Rgb24_424x240_15Fps Rgb24 424x240 15fps video format Declaration public static readonly VideoFormat Rgb24_424x240_15Fps Field Value Type Description VideoFormat Rgb24_480x270_15Fps Rgb24 480x270 15fps video format Declaration public static readonly VideoFormat Rgb24_480x270_15Fps Field Value Type Description VideoFormat Rgb24_480x848_30Fps Rgb24 480x848 30fps video format Declaration public static readonly VideoFormat Rgb24_480x848_30Fps Field Value Type Description VideoFormat Rgb24_540x960_30Fps Rgb24 540x960 30fps video format Declaration public static readonly VideoFormat Rgb24_540x960_30Fps Field Value Type Description VideoFormat Rgb24_640x360_15Fps Rgb24 640x360 15fps video format Declaration public static readonly VideoFormat Rgb24_640x360_15Fps Field Value Type Description VideoFormat Rgb24_640x360_30Fps Rgb24 640x360 30fps video format Declaration public static readonly VideoFormat Rgb24_640x360_30Fps Field Value Type Description VideoFormat Rgb24_720x1280_30Fps Rgb24 720x1280 30fps video format Declaration public static readonly VideoFormat Rgb24_720x1280_30Fps Field Value Type Description VideoFormat Rgb24_848x480_30Fps Rgb24 848x480 30fps video format Declaration public static readonly VideoFormat Rgb24_848x480_30Fps Field Value Type Description VideoFormat Rgb24_960x540_30Fps Rgb24 960x540 30fps video format Declaration public static readonly VideoFormat Rgb24_960x540_30Fps Field Value Type Description VideoFormat Yuy2_1080x1920_30Fps YUY2 1080x1920 30fps video format Declaration public static readonly VideoFormat Yuy2_1080x1920_30Fps Field Value Type Description VideoFormat Yuy2_1280x720_1_875Fps YUY2 1280x720 1.875fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_1_875Fps Field Value Type Description VideoFormat Yuy2_1280x720_15Fps YUY2 1280x720 15fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_15Fps Field Value Type Description VideoFormat Yuy2_1280x720_3_75Fps YUY2 1280x720 3.75fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_3_75Fps Field Value Type Description VideoFormat Yuy2_1280x720_30Fps YUY2 1280x720 30fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_30Fps Field Value Type Description VideoFormat Yuy2_1280x720_7_5Fps YUY2 1280x720 7.5fps video format Declaration public static readonly VideoFormat Yuy2_1280x720_7_5Fps Field Value Type Description VideoFormat Yuy2_180x320_30Fps YUY2 180x320 15fps video format Declaration public static readonly VideoFormat Yuy2_180x320_30Fps Field Value Type Description VideoFormat Yuy2_1920x1080_1_875Fps YUY2 1920x1080 1.875fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_1_875Fps Field Value Type Description VideoFormat Yuy2_1920x1080_15Fps YUY2 1920x1080 15fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_15Fps Field Value Type Description VideoFormat Yuy2_1920x1080_3_75Fps YUY2 1920x1080 3.75fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_3_75Fps Field Value Type Description VideoFormat Yuy2_1920x1080_30Fps YUY2 1920x1080 30fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_30Fps Field Value Type Description VideoFormat Yuy2_1920x1080_7_5Fps YUY2 1920x1080 7.5fps video format Declaration public static readonly VideoFormat Yuy2_1920x1080_7_5Fps Field Value Type Description VideoFormat Yuy2_240x424_15Fps YUY2 240x424 15fps video format Declaration public static readonly VideoFormat Yuy2_240x424_15Fps Field Value Type Description VideoFormat Yuy2_270x480_15Fps YUY2 270x480 15fps video format Declaration public static readonly VideoFormat Yuy2_270x480_15Fps Field Value Type Description VideoFormat Yuy2_320x180_15Fps YUY2 320x180 15fps video format Declaration public static readonly VideoFormat Yuy2_320x180_15Fps Field Value Type Description VideoFormat Yuy2_360x640_15Fps YUY2 360x640 15fps video format Declaration public static readonly VideoFormat Yuy2_360x640_15Fps Field Value Type Description VideoFormat Yuy2_360x640_30Fps YUY2 360x640 30fps video format Declaration public static readonly VideoFormat Yuy2_360x640_30Fps Field Value Type Description VideoFormat Yuy2_424x240_15Fps YUY2 424x240 15fps video format Declaration public static readonly VideoFormat Yuy2_424x240_15Fps Field Value Type Description VideoFormat Yuy2_480x270_15Fps YUY2 480x270 15fps video format Declaration public static readonly VideoFormat Yuy2_480x270_15Fps Field Value Type Description VideoFormat Yuy2_480x848_30Fps YUY2 480x848 30fps video format Declaration public static readonly VideoFormat Yuy2_480x848_30Fps Field Value Type Description VideoFormat Yuy2_540x960_30Fps YUY2 540x960 30fps video format Declaration public static readonly VideoFormat Yuy2_540x960_30Fps Field Value Type Description VideoFormat Yuy2_640x360_15Fps YUY2 640x360 15fps video format Declaration public static readonly VideoFormat Yuy2_640x360_15Fps Field Value Type Description VideoFormat Yuy2_640x360_30Fps YUY2 640x360 30fps video format Declaration public static readonly VideoFormat Yuy2_640x360_30Fps Field Value Type Description VideoFormat Yuy2_720x1280_30Fps YUY2 720x1280 30fps video format Declaration public static readonly VideoFormat Yuy2_720x1280_30Fps Field Value Type Description VideoFormat Yuy2_848x480_30Fps YUY2 848x480 30fps video format Declaration public static readonly VideoFormat Yuy2_848x480_30Fps Field Value Type Description VideoFormat Yuy2_960x540_30Fps YUY2 960x540 30fps video format Declaration public static readonly VideoFormat Yuy2_960x540_30Fps Field Value Type Description VideoFormat Properties BitRate Bit rate Declaration public uint BitRate { get; } Property Value Type Description UInt32 FrameRate Frame rate Declaration public float FrameRate { get; } Property Value Type Description Single Height Height Declaration public int Height { get; } Property Value Type Description Int32 VideoColorFormat VideoColorFormat Declaration public VideoColorFormat VideoColorFormat { get; } Property Value Type Description VideoColorFormat Width Width Declaration public int Width { get; } Property Value Type Description Int32 Methods Equals(VideoFormat) Equals to compare videoformat objects Declaration public bool Equals(VideoFormat videoFormat) Parameters Type Name Description VideoFormat videoFormat Returns Type Description Boolean Equals(Object) Overrides base Equals to compare objects Declaration public override bool Equals(object obj) Parameters Type Name Description Object obj Returns Type Description Boolean Overrides Object.Equals(Object) GetHashCode() Custom GetHashCode implementation Declaration public override int GetHashCode() Returns Type Description Int32 Overrides Object.GetHashCode() ToString() Provides video format details by overriding the default ToString(). Declaration public override string ToString() Returns Type Description String Details of VideoFormat. Overrides Object.ToString() Operators Equality(VideoFormat, VideoFormat) Overload == operator to do VideoFormat comparison Declaration public static bool operator ==(VideoFormat a, VideoFormat b) Parameters Type Name Description VideoFormat a VideoFormat b Returns Type Description Boolean Inequality(VideoFormat, VideoFormat) Overload != operator to do VideoFormat comparison Declaration public static bool operator !=(VideoFormat a, VideoFormat b) Parameters Type Name Description VideoFormat a VideoFormat b Returns Type Description Boolean Implements System.IEquatable" }, - "core_calls/Microsoft.Graph.UnmuteParticipantOperationRequestBuilder.html": { - "href": "core_calls/Microsoft.Graph.UnmuteParticipantOperationRequestBuilder.html", - "title": "Class UnmuteParticipantOperationRequestBuilder", - "keywords": "Class UnmuteParticipantOperationRequestBuilder The type UnmuteParticipantOperationRequestBuilder. Inheritance Object CommsOperationRequestBuilder UnmuteParticipantOperationRequestBuilder Implements IUnmuteParticipantOperationRequestBuilder ICommsOperationRequestBuilder Microsoft.Graph.IEntityRequestBuilder Microsoft.Graph.IBaseRequestBuilder Namespace : Microsoft.Graph Assembly : Microsoft.Graph.Communications.Core.Calls.dll Syntax public class UnmuteParticipantOperationRequestBuilder : CommsOperationRequestBuilder, IUnmuteParticipantOperationRequestBuilder, ICommsOperationRequestBuilder, IEntityRequestBuilder, IBaseRequestBuilder Constructors UnmuteParticipantOperationRequestBuilder(String, IBaseClient) Constructs a new UnmuteParticipantOperationRequestBuilder. Declaration public UnmuteParticipantOperationRequestBuilder(string requestUrl, IBaseClient client) Parameters Type Name Description String requestUrl The URL for the built request. Microsoft.Graph.IBaseClient client The Microsoft.Graph.IBaseClient for handling requests. Methods Request() Builds the request. Declaration public IUnmuteParticipantOperationRequest Request() Returns Type Description IUnmuteParticipantOperationRequest The built request. Request(IEnumerable