{"id":3895,"date":"2019-12-16T19:04:50","date_gmt":"2019-12-17T02:04:50","guid":{"rendered":"https:\/\/developer.microsoft.com\/en-us\/office\/blogs\/?p=3895"},"modified":"2019-12-16T19:04:50","modified_gmt":"2019-12-17T02:04:50","slug":"microsoft-graph-cloud-communications-apis-are-now-generally-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/microsoft-graph-cloud-communications-apis-are-now-generally-available\/","title":{"rendered":"Microsoft Graph Cloud Communications APIs are now generally available"},"content":{"rendered":"<p>At Ignite 2018, we announced the preview of the calling and online meetings APIs , which enabled developers to interact and integrate with Microsoft Teams calling and online meetings capabilities. Now renamed the cloud communications APIs, we&#8217;re excited to announce that the first set of APIs is generally available through Microsoft Graph v1.0!<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-3897 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/12\/Plat.png\" alt=\"\" width=\"680\" height=\"319\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/12\/Plat.png 680w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/12\/Plat-300x141.png 300w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>If you&#8217;re a student, a small-scale developer, or an enterprise developer, Microsoft Graph cloud communications APIs are your one-stop shop for building communications-related applications and solutions in Microsoft Teams.<\/p>\n<h3>Get started<\/h3>\n<p>To learn more about the cloud communications APIs, see the <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/cloud-communications-concept-overview\">Overview<\/a> topic, where we introduce concepts to get you off the ground. You\u2019ll also find additional information like platform limits and other how-to content.<\/p>\n<h3>Develop<\/h3>\n<p>To simplify the developer experience and help you onboard quickly to our communications platform, we recommend that you use the following SDKs:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Graph.Communications.Core\">Stateless signaling SDK<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Graph.Communications.Calls\">Stateful signaling SDK<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Skype.Bots.Media\">Media SDK<\/a><\/li>\n<\/ul>\n<h3>Platform capabilities<\/h3>\n<p>The following are the core platform capabilities that we&#8217;ve made available as a part of this release.<\/p>\n<h4>Calling<\/h4>\n<p>You can build solutions integrating into:<\/p>\n<ul>\n<li><strong>Peer-to-peer (P2P) or 1-1 Calls<\/strong> \u2013 A setup where your application interacts directly with a Teams user; for example, a help desk or customer service assistant bot answering simple questions.<\/li>\n<\/ul>\n<ul>\n<li><strong>Group calls<\/strong> \u2013 A setup where your application interacts with two or more users (with at least one user using Teams); for example, a contact center bot routing calls to agents using Teams.<\/li>\n<\/ul>\n<p>Two types of media choices are available for these calls:<\/p>\n<ul>\n<li><strong>Application-hosted media &#8211; <\/strong>This is also known as local media. Using the Media SDK, a raw stream of media (Audio or Video) of a P2P or group call is available to the application for in-call and post-call processing. For example, a call recording bot can record calls, store the file in different clouds, and process it using cognitive services to transcribe, translate the call, or detect fraudulent activities in the call.<\/li>\n<\/ul>\n<ul>\n<li><strong>Service-hosted media \u2013 <\/strong>This is also known as remote media. In this case, the application uses Microsoft Media Services to play the audio file. For example,<span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\"> an IVR bot can provide a <\/span><\/span><span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\">link to a\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\">prompt file\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\">for the<\/span><\/span><span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\"> communications platform to play the file<\/span><\/span><span class=\"TextRun BCX0 SCXW133517427\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW133517427\">\u00a0in the call.\u00a0<\/span><\/span><\/li>\n<\/ul>\n<p>You\u2019ll need <strong>application <\/strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/permissions-reference#calls-permissions\">permissions<\/a> to be granted by the tenant admin. After the permissions are granted, you can control the following two primary resources using these <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/call?view=graph-rest-1.0#methods\">methods<\/a>:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/call?view=graph-rest-1.0\">Call<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/participant?view=graph-rest-1.0\">Participant<\/a><\/li>\n<\/ul>\n<p>The following samples are a great way to get familiar with these controls:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/microsoftgraph\/microsoft-graph-comms-samples\/tree\/master\/Samples\/V1.0Samples\/LocalMediaSamples\">Local media sample<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoftgraph\/microsoft-graph-comms-samples\/tree\/master\/Samples\/BetaSamples\/RemoteMediaSamples\">Remote media sample<\/a><\/li>\n<\/ul>\n<h4><strong>Online meetings<\/strong><\/h4>\n<p>You can embed online meeting generation controls in your websites and use this API to retrieve a meeting link. For example, a hospital offering telehealth services can embed controls in their website to generate a Teams meeting link for its patients to meet their doctors (and vice versa) online.<\/p>\n<p>You\u2019ll need\u00a0 user <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/permissions-reference#online-meetings-permissions\">permissions<\/a>\u00a0 to use these APIs. After the permissions are granted, you can control the following resource using these <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/onlinemeeting?view=graph-rest-1.0#methods\">methods<\/a>:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/onlinemeeting?view=graph-rest-1.0\">onlineMeeting<\/a><\/li>\n<\/ul>\n<h4><strong>Limits<\/strong><\/h4>\n<p>For information about limits, see the <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/throttling?context=graph%2Fapi%2F1.0&amp;view=graph-rest-1.0#cloud-communication-service-limits\">API limits<\/a> topic.<\/p>\n<h3>Next steps<\/h3>\n<p>We&#8217;re excited to see our community grow with the launch of these APIs and we&#8217;re eager to see how we can continue to improve.<\/p>\n<ul>\n<li>Try out our (user) APIs through <a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/graph-explorer\">Graph explorer<\/a>.<\/li>\n<li>Read our <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/resources\/communications-api-overview?view=graph-rest-1.0\">documentation<\/a>.<\/li>\n<li>Post issues or questions on <a href=\"https:\/\/github.com\/microsoftgraph\/microsoft-graph-docs\/issues\">GitHub<\/a>.<\/li>\n<li>Send us feedback and suggestions through\u00a0<a href=\"https:\/\/microsoftgraph.uservoice.com\/forums\/920506-microsoft-graph-feature-requests?category_id=373858\">UserVoice<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Now renamed the cloud communications APIs, we&#8217;re excited to announce that the first set of APIs is generally available through Microsoft Graph v1.0!<\/p>\n","protected":false},"author":69077,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-3895","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph"],"acf":[],"blog_post_summary":"<p>Now renamed the cloud communications APIs, we&#8217;re excited to announce that the first set of APIs is generally available through Microsoft Graph v1.0!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/3895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69077"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=3895"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/3895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=3895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=3895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=3895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}