Show / Hide Table of Contents

Enterprise SDK Core Concepts

This article describes the key concepts in order to effectively utilize the Enterprise SDK.

Platform and Platform Builder

The IEnterprisePlatform object is the entry point to the SDK. Presently there is only a single service, the ICallService, contained in the platform. Further extensions to the Enterprise SDK (such as chat, presence, sms, etc...) will appear in this interface. The EnterprisePlatformBuilder is the object used to construct a new IEnterprisePlatform with the desired settings.

For more details on how to configure your bot please review the Setting Up article.

State Management

The SDK can be configured to manage the state of the call in memory, or it can be used in a stateless manner. The strengths and limitations of each are further explained in the State Management article.

Call Service

The ICallService is the entry point for the calling functionality. All the global management of ICall objects is performed through this interface. Interactions between the ICallService and the bot are done through the ICallServiceHandler interface.

For further detail please see the Call Service Handler and Call Service articles.

Call

The ICall is the entry point for all the functionality and data specific to a single call. Interactions between the ICall and the bot are done through the ISignalingHandler interface.
For further detail please see the Call Handler and Call articles.

Call Description

Any time a call is created, the SDK needs to be informed on what kind of a call this is. The CallDescription object tells the SDK how to define the call being created. This is done through the ICallServiceHandler.CallInitializedAsync function.

A detailed example of how the CallDescription object is used in an incoming call can be found in the Enterprise SDK Introduction article.

There are 2 main flavours of calls; calls with remotely hosted media and calls with locally hosted media. As the name suggests, remotely hosted media calls are hosted by the Microsoft infrastructure. Locally hosted media calls allow the raw media stream to flow through the bot. This can be very powerful, however it has hosting and architecture implications.

Media Session

For calls with locally hosted media the call descriptor 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 the Core SDK to support locally hosted media scenarios. To use this extension the IEnterprisePlatform must be built with EnterprisePlatformBuilder.SetMediaPlatformSettings. By default, as soon as this setting is enabled the IEnterprisePlatform is created as stateful. The IEnterprisePlatform.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.

  • Improve this Doc
Back to top Copyright © 2015-2017 Microsoft
Generated by DocFX