Get started with cloud communications
The cloud communications APIs in Microsoft Graph add a new dimension to how your apps and services interact with users through various communications related features, such as calling and online meetings. This article describes how you can use bots to respond to your customers' needs and facilitate collaboration.
Beore you get started, it will be helpful to familiarize yourself with the following:
- Azure Active Directory (Azure AD) and how the service helps employees sign in and access resources.
- The Azure Bot Service and its capabilities.
Register a bot
The terms "service application" and "bot" can be used interchangeably. You can either create a bot through the Azure portal directly or register a bot that isn't hosted on Azure. For more details about the bot registration process, see Registering a calling bot.
To make things easier later, it's helpful to understand the different types of permissions within Azure AD. Apps with delegated permissions require a signed-in user. Application-based permissions don't need a signed-in user, and can often run as a background service.
Manage the state of the bot
After you register your bot, decide whether you want your audio and video-based media to be application-hosted or service-hosted. At a high level, this involves deciding whether or not you want to access a live-stream of raw media.
Next, you can decide whether it's best for your bot to be stateful or stateless.
Any virtual machine can handle any bot instance, which means that if one machine goes down, another can take care of it. This makes for a resilient solution.
On the other hand, a shared cache, such as REDIS, needs to be accessible to all the virtual machines.
A virtual machine can handle only one bot instance at a time. Because all the states are on one machine, there aren't any extra memory checks or REDIS cache checks.
The drawback is that because the bot instance is just on one machine, it isn't as resilient.
Note: Service-hosted media bots can be stateful or stateless. Application-hosted media bots must be stateful in order to use the Bot Media SDK.
Use the SDKs
The following SDKs are available in C#. We will provide support for other languages in the future.
- If you're using stateless bots, install the Graph Communications Core SDK.
- If you're using stateful bots, install the Graph Communications Calling SDK.
Learn how to implement different scenarios using stateful bots, such as answering an incoming call with either application-hosted or service-hosted media.
For more examples, see the Communications samples repository.
Privacy and compliance
In the requests to our APIs, sensitive data should not be sent in any client-side generated IDs (such as scenario IDs, request IDs, or other correlation IDs) in headers or the request body. These IDs will be logged on the server side for diagnostics.