Quickstart: Voeg u aanroepende app toe aan een Teams-meeting
Belangrijk
De functionaliteit die in dit document wordt beschreven, is momenteel beschikbaar als openbare preview. Deze preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.
In deze quickstart leert u hoe u deel kunt nemen aan een Teams met behulp van de Azure Communication Services Calling SDK voor JavaScript.
Voorbeeldcode
Zoek de uiteindelijke code voor deze quickstart op GitHub.
Vereisten
- Een werkende Communication Services aanroepen van web-app.
- Een Teams implementatie.
De besturingselementen voor de gebruikersinterface van Teams toevoegen
Vervang code in index. html door het volgende fragment. Het tekstvak wordt gebruikt voor het invoeren van de context van de Teams-vergadering en de knop wordt gebruikt om deel te nemen aan de opgegeven vergadering:
<!DOCTYPE html>
<html>
<head>
<title>Communication Client - Calling Sample</title>
</head>
<body>
<h4>Azure Communication Services</h4>
<h1>Teams meeting join quickstart</h1>
<input id="teams-link-input" type="text" placeholder="Teams meeting link"
style="margin-bottom:1em; width: 300px;" />
<p>Call state <span style="font-weight: bold" id="call-state">-</span></p>
<p><span style="font-weight: bold" id="recording-state"></span></p>
<div>
<button id="join-meeting-button" type="button" disabled="false">
Join Teams Meeting
</button>
<button id="hang-up-button" type="button" disabled="true">
Hang Up
</button>
</div>
<script src="./bundle.js"></script>
</body>
</html>
De besturingselementen voor de gebruikersinterface van Teams inschakelen
Vervang inhoud in het bestand client.js door het volgende fragment.
import { CallClient } from "@azure/communication-calling";
import { Features } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
let call;
let callAgent;
const meetingLinkInput = document.getElementById('teams-link-input');
const hangUpButton = document.getElementById('hang-up-button');
const teamsMeetingJoinButton = document.getElementById('join-meeting-button');
const callStateElement = document.getElementById('call-state');
const recordingStateElement = document.getElementById('recording-state');
async function init() {
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("<USER ACCESS TOKEN>");
callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'ACS user'});
teamsMeetingJoinButton.disabled = false;
}
init();
hangUpButton.addEventListener("click", async () => {
// end the current call
await call.hangUp();
// toggle button states
hangUpButton.disabled = true;
teamsMeetingJoinButton.disabled = false;
callStateElement.innerText = '-';
});
teamsMeetingJoinButton.addEventListener("click", () => {
// join with meeting link
call = callAgent.join({meetingLink: meetingLinkInput.value}, {});
call.on('stateChanged', () => {
callStateElement.innerText = call.state;
})
call.api(Features.Recording).on('isRecordingActiveChanged', () => {
if (call.api(Features.Recording).isRecordingActive) {
recordingStateElement.innerText = "This call is being recorded";
}
else {
recordingStateElement.innerText = "";
}
});
// toggle button states
hangUpButton.disabled = false;
teamsMeetingJoinButton.disabled = true;
});
Koppeling naar de Teams-vergadering ophalen
De koppeling naar de Teams-vergadering kan worden opgehaald met behulp van Graph API’s. Dit wordt beschreven in Graph-documentatie.
The aanroepende SDK voor Communication Services accepteert een volledige koppeling naar een Teams-vergadering. Deze koppeling wordt geretourneerd als onderdeel van de onlineMeeting-resource, die toegankelijk is bij de eigenschap joinWebUrl. U kunt de vereiste vergaderingsgegevens ook ophalen via de URL in de uitnodiging voor de Teams-vergadering zelf.
De code uitvoeren
Webpack-gebruikers kunnen de webpack-dev-server gebruiken om uw app te bouwen en uit te voeren. Voer de volgende opdracht uit om de toepassingshost op een lokale webserver te bundelen:
npx webpack-dev-server --entry ./client.js --output bundle.js --debug --devtool inline-source-map
Open uw browser en ga naar http://localhost:8080/. U ziet nu het volgende:
Voeg de context van Teams in het tekstvak in en druk op Deelnemen aan Teams-vergadering om deel te nemen aan de Teams-vergadering vanuit uw Communication Services-toepassing.
In deze quickstart leert u hoe u deel kunt nemen aan een Teams met behulp van de Azure Communication Services Calling SDK voor Windows.
Vereisten
- Een werkende Communication Services app Windows aanroepen.
- Een Teams implementatie.
Voeg de besturingselementen Teams ui toe en schakel de besturingselementen voor Teams gebruikersinterface in
Vervang code in MainPage.xaml door het volgende codefragment. Het tekstvak wordt gebruikt voor het invoeren van de context van de Teams-vergadering en de knop wordt gebruikt om deel te nemen aan de opgegeven vergadering:
<Page
x:Class="CallingQuickstart.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CallingQuickstart"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<TextBox PlaceholderText="Please enter the Teams meeting link." TextWrapping="Wrap" x:Name="TeamsLinkTextBox" Margin="10,10,10,10" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="Join Teams Meeting" Click="JoinButton_ClickAsync" x:Name="JoinButton" Margin="10,10,10,10" />
<Button Content="Leave Meeting" Click="LeaveButton_ClickAsync" x:Name="LeaveButton" Margin="10,10,10,10" />
</StackPanel>
<TextBlock TextWrapping="Wrap" x:Name="CallStatusTextBlock" Margin="10,10,10,10" />
<TextBlock TextWrapping="Wrap" x:Name="RecordingStatusTextBlock" Margin="10,10,10,10" />
</StackPanel>
</Page>
De besturingselementen voor de gebruikersinterface van Teams inschakelen
Vervang de inhoud van MainPage.xaml.cs door het volgende codefragment:
using System;
using System.Threading.Tasks;
using Windows.UI.Core;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Azure.Communication;
using Azure.Communication.Calling;
namespace CallingQuickstart
{
public sealed partial class MainPage : Page
{
string user_token_ = "<User_Access_Token>";
Call call_;
CallClient call_client;
CallAgent call_agent;
public MainPage()
{
this.InitializeComponent();
call_client = new CallClient();
}
private async void JoinButton_ClickAsync(object sender, RoutedEventArgs e)
{
if (!await ValidateInput())
{
return;
}
//
// Create CallAgent
//
CommunicationTokenCredential token_credential;
try
{
token_credential = new CommunicationTokenCredential(user_token_);
CallAgentOptions call_agent_options = new CallAgentOptions();
call_agent = await call_client.CreateCallAgent(token_credential, call_agent_options);
}
catch
{
await new MessageDialog("It was not possible to create call agent. Please check if token is valid.").ShowAsync();
return;
}
//
// Join a Teams meeting
//
try
{
JoinCallOptions joinCallOptions = new JoinCallOptions();
TeamsMeetingLinkLocator teamsMeetingLinkLocator = new TeamsMeetingLinkLocator(TeamsLinkTextBox.Text);
call_ = await call_agent.JoinAsync(teamsMeetingLinkLocator, joinCallOptions);
}
catch
{
await new MessageDialog("It was not possible to join the Teams meeting. Please check if Teams Link is valid.").ShowAsync();
return;
}
//
// Set up call callbacks
//
call_.OnStateChanged += Call_OnStateChangedAsync;
call_.OnIsRecordingActiveChanged += Call_OnIsRecordingActiveChangedAsync;
}
private async void Call_OnStateChangedAsync(object sender, PropertyChangedEventArgs args)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
CallStatusTextBlock.Text = call_.State.ToString();
});
}
private async void Call_OnIsRecordingActiveChangedAsync(object sender, PropertyChangedEventArgs args)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
RecordingStatusTextBlock.Text = call_.IsRecordingActive ? "Recording is active." : "Recording is inactive.";
});
}
private async void LeaveButton_ClickAsync(object sender, RoutedEventArgs e)
{
try
{
await call_.HangUp(new HangUpOptions());
}
catch
{
await new MessageDialog("It was not possible to leave the Teams meeting.").ShowAsync();
}
}
private async Task<bool> ValidateInput()
{
if (user_token_.StartsWith("<"))
{
await new MessageDialog("Please enter token in source code.").ShowAsync();
return false;
}
if (TeamsLinkTextBox.Text.Trim().Length == 0 || !TeamsLinkTextBox.Text.StartsWith("http"))
{
await new MessageDialog("Please enter Teams meeting link.").ShowAsync();
return false;
}
return true;
}
}
}
Koppeling naar de Teams-vergadering ophalen
De koppeling naar de Teams-vergadering kan worden opgehaald met behulp van Graph API’s. Dit wordt beschreven in Graph-documentatie.
The aanroepende SDK voor Communication Services accepteert een volledige koppeling naar een Teams-vergadering. Deze koppeling wordt geretourneerd als onderdeel van de onlineMeeting resource, die toegankelijk is onder de joinWebUrl eigenschap. U kunt ook de vereiste informatie over de vergadering verkrijgen via de URL van de join-vergadering in de Teams nodigt zelf uit.
De app starten en deelnemen Teams vergadering
U kunt uw app bouwen en uitvoeren op Visual Studio door Foutopsporing starten te selecteren of door de > sneltoets (F5) te gebruiken.
Voeg de context van Teams in het tekstvak in en druk op Deelnemen aan Teams-vergadering om deel te nemen aan de Teams-vergadering vanuit uw Communication Services-toepassing.
In deze quickstart leert u hoe u deel kunt nemen aan een Teams met behulp van de Azure Communication Services Calling SDK voor Android.
Voorbeeldcode
Zoek de uiteindelijke code voor deze quickstart op GitHub.
Vereisten
- Een werkende Communication Services android-app aanroept.
- Een Teams implementatie.
De besturingselementen voor de gebruikersinterface van Teams toevoegen
Vervang code in activity_main.xml door het volgende codefragment. Het tekstvak wordt gebruikt voor het invoeren van de context van de Teams-vergadering en de knop wordt gebruikt om deel te nemen aan de opgegeven vergadering:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/teams_meeting_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Teams meeting link"
android:inputType="textUri"
android:layout_marginTop="100dp"
android:layout_marginHorizontal="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="70dp"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<Button
android:id="@+id/join_meeting_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Join Meeting" />
<Button
android:id="@+id/hangup_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hangup" />
</LinearLayout>
<TextView
android:id="@+id/call_status_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/recording_status_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
De besturingselementen voor de gebruikersinterface van Teams inschakelen
Vervang de inhoud van MainActivity.java door het volgende codefragment:
package com.contoso.acsquickstart;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
import com.azure.android.communication.calling.Call;
import com.azure.android.communication.calling.CallAgent;
import com.azure.android.communication.calling.CallClient;
import com.azure.android.communication.calling.HangUpOptions;
import com.azure.android.communication.calling.JoinCallOptions;
import com.azure.android.communication.common.CommunicationTokenCredential;
import com.azure.android.communication.calling.TeamsMeetingLinkLocator;
public class MainActivity extends AppCompatActivity {
private static final String[] allPermissions = new String[] { Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE };
private static final String UserToken = "<User_Access_Token>";
TextView callStatusBar;
TextView recordingStatusBar;
private CallAgent agent;
private Call call;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getAllPermissions();
createAgent();
Button joinMeetingButton = findViewById(R.id.join_meeting_button);
joinMeetingButton.setOnClickListener(l -> joinTeamsMeeting());
Button hangupButton = findViewById(R.id.hangup_button);
hangupButton.setOnClickListener(l -> leaveMeeting());
callStatusBar = findViewById(R.id.call_status_bar);
recordingStatusBar = findViewById(R.id.recording_status_bar);
}
/**
* Join Teams meeting
*/
private void joinTeamsMeeting() {
if (UserToken.startsWith("<")) {
Toast.makeText(this, "Please enter token in source code", Toast.LENGTH_SHORT).show();
return;
}
EditText calleeIdView = findViewById(R.id.teams_meeting_link);
String meetingLink = calleeIdView.getText().toString();
if (meetingLink.isEmpty()) {
Toast.makeText(this, "Please enter Teams meeting link", Toast.LENGTH_SHORT).show();
return;
}
JoinCallOptions options = new JoinCallOptions();
TeamsMeetingLinkLocator teamsMeetingLinkLocator = new TeamsMeetingLinkLocator(meetingLink);
call = agent.join(
getApplicationContext(),
teamsMeetingLinkLocator,
options);
call.addOnStateChangedListener(p -> setCallStatus(call.getState().toString()));
call.addOnIsRecordingActiveChangedListener(p -> setRecordingStatus(call.isRecordingActive()));
}
/**
* Leave from the meeting
*/
private void leaveMeeting() {
try {
call.hangUp(new HangUpOptions()).get();
} catch (ExecutionException | InterruptedException e) {
Toast.makeText(this, "Unable to leave meeting", Toast.LENGTH_SHORT).show();
}
}
/**
* Create the call agent
*/
private void createAgent() {
try {
CommunicationTokenCredential credential = new CommunicationTokenCredential(UserToken);
agent = new CallClient().createCallAgent(getApplicationContext(), credential).get();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(), "Failed to create call agent.", Toast.LENGTH_SHORT).show();
}
}
/**
* Request each required permission if the app doesn't already have it.
*/
private void getAllPermissions() {
ArrayList<String> permissionsToAskFor = new ArrayList<>();
for (String permission : allPermissions) {
if (ActivityCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
permissionsToAskFor.add(permission);
}
}
if (!permissionsToAskFor.isEmpty()) {
ActivityCompat.requestPermissions(this, permissionsToAskFor.toArray(new String[0]), 1);
}
}
/**
* Ensure all permissions were granted, otherwise inform the user permissions are missing.
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, int[] grantResults) {
boolean allPermissionsGranted = true;
for (int result : grantResults) {
allPermissionsGranted &= (result == PackageManager.PERMISSION_GRANTED);
}
if (!allPermissionsGranted) {
Toast.makeText(this, "All permissions are needed to make the call.", Toast.LENGTH_LONG).show();
finish();
}
}
/**
* Shows call status in status bar
*/
private void setCallStatus(String status) {
runOnUiThread(() -> callStatusBar.setText(status));
}
/**
* Shows recording status status bar
*/
private void setRecordingStatus(boolean status) {
if (status == true) {
runOnUiThread(() -> recordingStatusBar.setText("This call is being recorded"));
}
else {
runOnUiThread(() -> recordingStatusBar.setText(""));
}
}
}
Koppeling naar de Teams-vergadering ophalen
De koppeling naar de Teams-vergadering kan worden opgehaald met behulp van Graph API’s. Dit wordt beschreven in Graph-documentatie.
The aanroepende SDK voor Communication Services accepteert een volledige koppeling naar een Teams-vergadering. Deze koppeling wordt geretourneerd als onderdeel van de onlineMeeting resource, toegankelijk onder de joinWebUrl eigenschap. U kunt ook de vereiste informatie over de vergadering verkrijgen via de URL van de join meeting in Teams meeting invite itself.
De app starten en deelnemen aan Teams vergadering
De app kan nu worden gestart met behulp van de knop App uitvoeren op de werkbalk (Shift + F10). U ziet nu het volgende:
Voeg de context Teams in het tekstvak in en druk op Deelnemen aan de vergadering om Teams samen te voegen vanuit uw Communication Services toepassing.
In deze quickstart leert u hoe u deel kunt nemen aan een Teams met behulp van de Azure Communication Services Calling SDK voor iOS.
Vereisten
- Een werkende Communication Services aanroepen van iOS-app.
- Een Teams implementatie.
Voor deze quickstart gebruiken we beta.12 van AzureCommunicationCalling SDK. Daarom moeten we de podfile bijwerken en de Pods opnieuw installeren.
Vervang uw podfile door de volgende code in de Podfile en sla op (zorg ervoor dat 'doel' overeenkomt met de naam van uw project):
platform :ios, '13.0'
use_frameworks!
target 'AzureCommunicationCallingSample' do
pod 'AzureCommunicationCalling', '1.0.0-beta.12'
end
Verwijder de map Pods, Podfile.lock en het .xcworkspace. bestand.
Voer pod install uit en open de met .xcworkspace Xcode.
De besturingselementen Teams ui toevoegen en De besturingselementen voor Teams ui inschakelen
Vervang code in ContentView.swift door het volgende codefragment. Het tekstvak wordt gebruikt voor het invoeren van de context van de Teams-vergadering en de knop wordt gebruikt om deel te nemen aan de opgegeven vergadering:
import SwiftUI
import AzureCommunicationCalling
import AVFoundation
struct ContentView: View {
@State var meetingLink: String = ""
@State var callStatus: String = ""
@State var message: String = ""
@State var recordingStatus: String = ""
@State var callClient: CallClient?
@State var callAgent: CallAgent?
@State var call: Call?
@State var callObserver: CallObserver?
var body: some View {
NavigationView {
Form {
Section {
TextField("Teams meeting link", text: $meetingLink)
Button(action: joinTeamsMeeting) {
Text("Join Teams Meeting")
}.disabled(callAgent == nil)
Button(action: leaveMeeting) {
Text("Leave Meeting")
}.disabled(call == nil)
Text(callStatus)
Text(message)
Text(recordingStatus)
}
}
.navigationBarTitle("Calling Quickstart")
}.onAppear {
// Initialize call agent
var userCredential: CommunicationTokenCredential?
do {
userCredential = try CommunicationTokenCredential(token: "<USER ACCESS TOKEN>")
} catch {
print("ERROR: It was not possible to create user credential.")
self.message = "Please enter your token in source code"
return
}
self.callClient = CallClient()
// Creates the call agent
self.callClient?.createCallAgent(userCredential: userCredential!) { (agent, error) in
if error != nil {
self.message = "Failed to create CallAgent."
return
} else {
self.callAgent = agent
self.message = "Call agent successfully created."
}
}
}
}
func joinTeamsMeeting() {
// Ask permissions
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
let joinCallOptions = JoinCallOptions()
let teamsMeetingLinkLocator = TeamsMeetingLinkLocator(meetingLink: self.meetingLink)
self.callAgent?.join(with: teamsMeetingLinkLocator, joinCallOptions: joinCallOptions) {(call, error) in
if (error == nil) {
self.call = call
self.callObserver = CallObserver(self)
self.call!.delegate = self.callObserver
self.message = "Teams meeting joined successfully"
} else {
print("Failed to get call object")
return
}
}
}
}
}
func leaveMeeting() {
if let call = call {
call.hangUp(options: nil, completionHandler: { (error) in
if error == nil {
self.message = "Leaving Teams meeting was successful"
} else {
self.message = "Leaving Teams meeting failed"
}
})
} else {
self.message = "No active call to hangup"
}
}
}
class CallObserver : NSObject, CallDelegate {
private var owner:ContentView
init(_ view:ContentView) {
owner = view
}
public func call(_ call: Call, didChangeState args: PropertyChangedEventArgs) {
owner.callStatus = CallObserver.callStateToString(state: call.state)
if call.state == .disconnected {
owner.call = nil
owner.message = "Left Meeting"
} else if call.state == .inLobby {
owner.message = "Waiting in lobby !!"
} else if call.state == .connected {
owner.message = "Joined Meeting !!"
}
}
public func call(_ call: Call, didChangeRecordingState args: PropertyChangedEventArgs) {
if (call.isRecordingActive == true) {
owner.recordingStatus = "This call is being recorded"
}
else {
owner.recordingStatus = ""
}
}
private static func callStateToString(state: CallState) -> String {
switch state {
case .connected: return "Connected"
case .connecting: return "Connecting"
case .disconnected: return "Disconnected"
case .disconnecting: return "Disconnecting"
case .earlyMedia: return "EarlyMedia"
case .none: return "None"
case .ringing: return "Ringing"
case .inLobby: return "InLobby"
default: return "Unknown"
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Koppeling naar de Teams-vergadering ophalen
De koppeling naar de Teams-vergadering kan worden opgehaald met behulp van Graph API’s. Dit wordt beschreven in Graph-documentatie.
The aanroepende SDK voor Communication Services accepteert een volledige koppeling naar een Teams-vergadering. Deze koppeling wordt geretourneerd als onderdeel van de onlineMeeting resource, die toegankelijk is onder de joinWebUrl eigenschap. U kunt ook de vereiste informatie over de vergadering verkrijgen via de URL van de join meeting in Teams meeting invite itself.
De app starten en deelnemen Teams vergadering
U kunt uw app maken en uitvoeren op een iOS-simulator door Product > Uitvoeren te selecteren of door de sneltoets (⌘-R) te gebruiken.
Voeg de context van Teams in het tekstvak in en druk op Deelnemen aan Teams-vergadering om deel te nemen aan de Teams-vergadering vanuit uw Communication Services-toepassing.
De functionaliteit die in dit document wordt beschreven, maakt gebruik van de algemene beschikbaarheidsversie van de Communication Services SDK's. Teams Interoperability is de bètaversie van de Communication Services SDK's vereist. De Bèta-SDK's kunnen worden verkend op de pagina met release-opmerkingen.
Wanneer u de stap Pakket installeren met de Bèta-SDK's wilt uitvoeren, wijzigt u de versie van uw pakket in de nieuwste bètaversie door de versie (versie op het moment van schrijven van dit artikel) op te geven in de @1.0.0-beta.10 communication-calling pakketnaam. U hoeft de pakketopdracht niet communication-common te wijzigen. Bijvoorbeeld:
npm install @azure/communication-calling@1.0.0-beta.10 --save
Resources opschonen
Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.
Volgende stappen
Raadpleeg voor meer informatie de volgende artikelen:
- Bekijk ons voorbeeld van een aanroephero
- Meer informatie over mogelijkheden voor het aanroepen van de SDK
- Meer informatie over de werking van aanroepen