Megosztás a következőn keresztül:


Microsoft Teams-felhasználó hozzáadása meglévő híváshoz a Call Automation használatával

Fontos

Az Azure Communication Services ezen funkciója jelenleg előzetes verzióban érhető el.

Az előzetes verziójú API-k és SDK-k szolgáltatásszintű szerződés nélkül érhetők el. Javasoljuk, hogy éles számítási feladatokhoz ne használja őket. Előfordulhat, hogy egyes funkciók nem támogatottak, vagy korlátozott képességekkel rendelkeznek.

További információkért tekintse át a Microsoft Azure Előzetes verzió kiegészítő használati feltételeit.

Ebben a rövid útmutatóban az Azure Communication Services Hívásautomatizálási API-jait használjuk a teams-felhasználók hívásainak hozzáadására, eltávolítására és átvitelére.

Előfeltételek

  • Az aktív előfizetéssel rendelkező Azure-fiókról további információt a Fiók létrehozása ingyenesen című témakörben talál.
  • Egy Microsoft Teams Telefon licenc és egy rendszergazdai jogosultságokkal rendelkező Teams-bérlő. A Teams Phone-licenc kötelező a funkció használatához, itt talál további információt a Teams-licencekről. A Microsoft Teams-felhasználót is engedélyezni kell voice , lásd a telefonos rendszer beállítását. Rendszergazdai jogosultságokra van szükség ahhoz, hogy a Communication Services-erőforrás meghívhassa a Teams-felhasználókat, ezt az 1. lépés későbbi részében ismertetjük.
  • Üzembe helyezett kommunikációs szolgáltatás-erőforrás és érvényes kapcsolati sztring található az Azure Portal bal oldali menüjének Kulcsok elemével.
  • PSTN-telefonszám beszerzése a Kommunikációs szolgáltatás erőforrásból. Jegyezze fel az ebben a rövid útmutatóban használt telefonszámot.
  • Egy Azure Event Grid-előfizetés az esemény fogadásához IncomingCall .
  • A legújabb Azure Communication Service Call Automation API-kódtár az operációs rendszerhez.
  • A Call Automation API-kódtárat implementáló webszolgáltatás kövesse ezt az oktatóanyagot.

1. lépés: Az Azure Communication Services-erőforrás engedélyezése a Microsoft Teams-felhasználókhoz való hívás engedélyezéséhez

A Hívásautomatizálási API-k használatával történő hívás engedélyezéséhez a Microsoft Teams rendszergazdájának vagy globális rendszergazdájának explicit módon engedélyeznie kell a Communication Services-erőforrások hozzáférését a bérlőhöz a hívás engedélyezéséhez.

Set-CsTeamsAcsFederationConfiguration (MicrosoftTeamsPowerShell) Bérlői szintű beállítás, amely engedélyezi vagy letiltja az összevonást a bérlő és az adott Communication Services-erőforrások között.

Set-CsExternalAccessPolicy (SkypeForBusiness) Felhasználói szabályzat, amely lehetővé teszi a rendszergazda számára, hogy tovább szabályozza, hogy a szervezet mely felhasználói vehetnek részt a Communication Services felhasználóival folytatott összevont kommunikációban.

2. lépés: A Graph API használatával lekérheti a Microsoft Entra objektumazonosítóját a Teams-felhasználók számára, és opcionálisan ellenőrizheti a jelenlétüket

A Teams-felhasználó Microsoft Entra-objektumazonosítójának (OID) megadása szükséges ahhoz, hogy hozzáadja vagy átvihesse őket egy Communication Services-hívásból. Az OID lekérhető az 1) Office Portalon, 2) Microsoft Entra felügyeleti központban, 3) Microsoft Entra Connect; vagy 4) Graph API. Az alábbi példa a Graph API-t használja.

A Microsoft Entra rendszergazdájának nagy hozzájárulást kell adnia ahhoz, hogy a Graph használható legyen a felhasználók keresésére. További információt a Microsoft Graph Biztonsági API áttekintő dokumentumában talál. Az OID a listafelhasználói API-val kérhető le a felhasználók kereséséhez. Az alábbi példában megjelenítendő név szerinti keresés látható, de más tulajdonságokat is kereshet:

Felhasználók listázása a Microsoft Graph 1.0-s verzióval:

Request:
    https://graph.microsoft.com/v1.0/users?$search="displayName:Art Anderson"
Permissions:
    Application and delegated. Refer to documentation.
Response:
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "value": [
        {
            "displayName": "Art Anderson",
            "mail": "artanderson@contoso.com",
            "id": "fc4ccb5f-8046-4812-803f-6c344a5d1560"
        }

A felhasználó jelenléti adatai a get presence API és a felhasználói ObjectId használatával kérhetők le. További információ a Microsoft Graph 1.0-s verziójának dokumentációjában.

Request:
https://graph.microsoft.com/v1.0/users/fc4ccb5f-8046-4812-803f-6c344a5d1560/presence
Permissions:
Delegated only. Application not supported.  Refer to documentation.
Response:
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('fc4ccb5f-8046-4812-803f-6c344a5d1560')/presence/$entity",
    "id": "fc4ccb5f-8046-4812-803f-6c344a5d1560",
    "availability": "Offline",
    "activity": "Offline"

3. lépés: Teams-felhasználó hozzáadása egy meglévő Communication Services-híváshoz, amelyet a Call Automation API-k vezérelnek

El kell végeznie az előfeltétel-lépést, és rendelkeznie kell egy webszolgáltatás-alkalmazással a Communication Services-hívások vezérléséhez. A callConnection objektum használatával vegyen fel egy résztvevőt a hívásba.

CallAutomationClient client = new CallAutomationClient('<Connection_String>');
AnswerCallResult answer = await client.AnswerCallAsync(incomingCallContext, new Uri('<Callback_URI>'));
await answer.Value.CallConnection.AddParticipantAsync(
    new CallInvite(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'))
    {
        SourceDisplayName = "Jack (Contoso Tech Support)"
    });
CallAutomationClient client = new CallAutomationClientBuilder().connectionString("<resource_connection_string>").buildClient();
AnswerCallResult answer = client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.getCallConnection().addParticipant(
    new CallInvite(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"))
        .setSourceDisplayName("Jack (Contoso Tech Support)"));
const client = new CallAutomationClient("<resource_connection_string>");
const answer = await client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.callConnection.addParticipant({
    targetParticipant: { microsoftTeamsUserId: "<Teams_User_Guid>" },
    sourceDisplayName: "Jack (Contoso Tech Support)"
});
call_automation_client = CallAutomationClient.from_connection_string("<resource_connection_string>")
answer = call_automation_client.answer_call(incoming_call_context = incoming_call_context, callback_url = "<Callback_URI>")
call_connection_client = call_automation_client.get_call_connection(answer.call_connection_id)
call_connection_client.add_participant(target_participant = CallInvite(
    target = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"),
    source_display_name = "Jack (Contoso Tech Support)"))

Az asztali Microsoft Teams-ügyfélen Jack hívása egy bejövő bejelentési értesítésen keresztül érkezik a Microsoft Teams-felhasználónak.

Képernyőkép a Microsoft Teams asztali ügyfélről, Jack hívását a rendszer egy bejövő bejelentési értesítésen keresztül küldi el a Microsoft Teams-felhasználónak.

Miután a Microsoft Teams-felhasználó elfogadta a hívást, a Microsoft Teams-felhasználó hívás közbeni felülete megjeleníti az összes résztvevőt a Microsoft Teams-névsoron. A Hívásautomatizálási API használatával a hívást kezelő alkalmazás továbbra is rejtve marad a Teams-felhasználó számára a hívási képernyőn. Képernyőkép arról, hogy a Microsoft Teams-felhasználó elfogadta a hívást, és megadta a Microsoft Teams-felhasználó hívás közbeni felületét.

4. lépés: Teams-felhasználó eltávolítása egy meglévő Communication Services-hívásból, amelyet a Call Automation API-k vezérelnek

await answer.Value.CallConnection.RemoveParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().removeParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.removeParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.remove_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"))

Választható funkció: Átvitel Teams-felhasználónak egy meglévő Communication Services-hívásból, amelyet a Call Automation API-k vezérelnek

await answer.Value.CallConnection.TransferCallToParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().transferCallToParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.transferCallToParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.transfer_call_to_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id = "<USER_ID>"))

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Communication Services-előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. További információ az erőforrások tisztításáról.

Következő lépések