Rychlý start: Volání Telefon

Začínáme s Azure Communication Services pomocí sady SDK volání Communication Services, která do vaší aplikace přidá volání veřejné telefonní sítě.

Důležité

Komunikační služby Azure nepodporují nouzové volání.

Služby odchozího hlasového volání služby Azure Communication Services se nedají použít ke kontaktování tísňových služeb. Měli byste udržovat tradiční telefonní službu pro zajištění tísňového volání.

Příklad kódu

Vyhledejte dokončený kód pro tento rychlý start na GitHubu.

Požadavky

Nastavení

Vytvoření nové aplikace Node.js

Otevřete terminál nebo příkazové okno a vytvořte nový adresář pro vaši aplikaci a přejděte do něj.

mkdir calling-quickstart && cd calling-quickstart

Spuštěním npm init -y vytvořte souborpackage.js s výchozím nastavením.

npm init -y

Instalace balíčku

Pomocí příkazu npm install nainstalujte sadu SDK volání Azure Communication Services pro JavaScript.

npm install @azure/communication-common --save
npm install @azure/communication-calling@1.1.0 --save

Pro tento rychlý start se doporučují následující verze webpacku:

"webpack": "^4.42.0",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3"

Možnost --save vypíše knihovnu jako závislost v souboru package.json.

Nastavení architektury aplikace

V tomto rychlém startu se k vytvoření sady prostředků aplikace používá webpack. Spuštěním následujícího příkazu nainstalujte balíčky npm webpack, webpack-cli a webpack-dev-server a vypište je jako vývojové závislosti ve vašem package.jsna:

npm install webpack@4.42.0 webpack-cli@3.3.11 webpack-dev-server@3.10.3 --save-dev

Vytvořte soubor index.html v kořenovém adresáři projektu. Tento soubor použijeme ke konfiguraci základního rozložení, které uživateli umožní volání.

Tady je kód:

<!DOCTYPE html>
<html>
  <head>
    <title>Communication Client - Calling Sample</title>
  </head>
  <body>
    <h4>Azure Communication Services</h4>
    <h1>Calling Quickstart</h1>
    <input 
      id="callee-phone-input"
      type="text"
      placeholder="Who would you like to call?"
      style="margin-bottom:1em; width: 230px;"
    />
    <div>
      <button id="call-phone-button" type="button">
        Start Call
      </button>
      &nbsp;
      <button id="hang-up-phone-button" type="button" disabled="true">
        Hang Up
      </button>
    </div>
    <script src="./bundle.js"></script>
  </body>
</html>

V kořenovém adresáři projektu vytvořte soubor s názvem client.js, který bude obsahovat logiku aplikace pro tento rychlý start. Přidejte následující kód pro import volajícího klienta a získání odkazů na elementy modelu DOM, abychom mohli připojit obchodní logiku.

import { CallClient, CallAgent } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';

let call;
let callAgent;

const calleePhoneInput = document.getElementById("callee-phone-input");
const callPhoneButton = document.getElementById("call-phone-button");
const hangUpPhoneButton = document.getElementById("hang-up-phone-button");

async function init() {
    const callClient = new CallClient();
    const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with PSTN scope>');
    callAgent = await callClient.createCallAgent(tokenCredential);
  //  callPhoneButton.disabled = false;
}

init();

Zahájení hovoru na telefon

Zadejte telefonní číslo, které jste Communication Services prostředku, které se použije k zahájení hovoru:

Upozornění

Telefonní čísla by měla být k dispozici ve formátu E.164 International Standard. (např. +122233344444)

Přidejte obslužnou rutinu události, která zahájí volání na telefonní číslo, které jste poskytli při callPhoneButton kliknutí na :

callPhoneButton.addEventListener("click", () => {
  // start a call to phone
  const phoneToCall = calleePhoneInput.value;
  call = callAgent.startCall(
    [{phoneNumber: phoneToCall}], { alternateCallerId: {phoneNumber: 'YOUR AZURE REGISTERED PHONE NUMBER HERE: +12223334444'}
  });
  // toggle button states
  hangUpPhoneButton.disabled = false;
  callPhoneButton.disabled = true;
});

Ukončení hovoru na telefon

Přidáním naslouchacího procesu událostí ukončíte aktuální volání po hangUpPhoneButton kliknutí na :

hangUpPhoneButton.addEventListener("click", () => {
  // end the current call
  call.hangUp({
    forEveryone: true
  });

  // toggle button states
  hangUpPhoneButton.disabled = true;
  callPhoneButton.disabled = false;
});

Vlastnost forEveryone ukončí volání pro všechny účastníky volání.

Spuštění kódu

K webpack-dev-server sestavení a spuštění aplikace použijte . Spuštěním následujícího příkazu sesložte hostitele aplikace na místním webovém serveru:

npx webpack-dev-server --entry ./client.js --output bundle.js --debug --devtool inline-source-map

Otevřete prohlížeč a přejděte na http://localhost:8080/ . Měli byste vidět následující:

Snímek obrazovky s dokončenou javascriptovou aplikací

Na skutečné telefonní číslo můžete zavolat tak, že do přidaného textového pole zadáte telefonní číslo a kliknete na tlačítko Start Phone Call (Zahájit telefonní hovor).

Upozornění

Telefonní čísla by měla být k dispozici ve formátu E.164 International Standard. (např. +122233344444)

Důležité

Komunikační služby Azure nepodporují nouzové volání.

Služby odchozího hlasového volání služby Azure Communication Services se nedají použít ke kontaktování tísňových služeb. Měli byste udržovat tradiční telefonní službu pro zajištění tísňového volání.

Příklad kódu

Vyhledejte dokončený kód pro tento rychlý start na GitHubu.

Požadavky

Kontrola předpokladů

  • Pokud chcete zobrazit telefonní čísla přidružená k vašemu prostředku Communication Services, přihlaste se k Azure Portal, vyhledejte prostředek Communication Services a v levém navigačním podokně otevřete kartu telefonních čísel.

Nastavení

Přidání funkce veřejné telefonní sítě do aplikace

Přidejte PhoneNumber do aplikace typ úpravou souboru MainActivity.java:

import com.azure.android.communication.common.PhoneNumberIdentifier;

Zahájení hovoru na telefon

Zadejte telefonní číslo, které jste získali v rámci vašeho Communication Services prostředku. Toto se použije ke spuštění volání:

Upozornění

Telefonní čísla by měla být k dispozici ve formátu E.164 International Standard. (např. +122233344444)

Upravte startCall() obslužnou rutinu události v souboru MainActivity.java tak, aby zpracuje telefonní hovory:

    private void startCall() {
        EditText calleePhoneView = findViewById(R.id.callee_id);
        String calleePhone = calleePhoneView.getText().toString();
        PhoneNumberIdentifier callerPhone = new PhoneNumberIdentifier("+12223334444");
        StartCallOptions options = new StartCallOptions();
        options.setAlternateCallerId(callerPhone);
        options.setVideoOptions(new VideoOptions(null));
        call = agent.startCall(
                getApplicationContext(),
                new PhoneNumberIdentifier[] {new PhoneNumberIdentifier(calleePhone)},
                options);
    }

Spusťte aplikaci a zavolejte echo bota.

Aplikaci teď můžete spustit pomocí tlačítka Spustit aplikaci na panelu nástrojů (Shift+F10). Můžete zavolat na telefon tak, že do přidaného textového pole poskytnete telefonní číslo a kliknete na tlačítko CALL.

Upozornění

Telefonní čísla by měla být k dispozici ve formátu E.164 International Standard. (např. +122233344444)

Snímek obrazovky zobrazující dokončenou aplikaci

Důležité

Komunikační služby Azure nepodporují nouzové volání.

Služby odchozího hlasového volání služby Azure Communication Services se nedají použít ke kontaktování tísňových služeb. Měli byste udržovat tradiční telefonní službu pro zajištění tísňového volání.

Požadavky

Kontrola požadovaných součástí

  • Chcete-li zobrazit telefonní čísla přidružená ke zdroji komunikačních služeb, přihlaste se k Azure Portal, vyhledejte prostředek komunikačních služeb a otevřete kartu telefonní čísla v levém navigačním podokně.
  • Můžete sestavit a spustit aplikaci pomocí komunikačních služeb Azure, které volají sadu SDK pro iOS:

Nastavení

Spustit telefonování

Zadejte telefonní číslo, které jste získali v prostředku služby Communications Services, který se použije ke spuštění volání:

Upozornění

Všimněte si, že telefonní čísla by měla být zadána ve formátu E. 164 mezinárodní standard. (např.: + 12223334444)

Úprava startCall obslužné rutiny události, která bude provedena při klepnutí na tlačítko Spustit volání :

func startCall() {
        // Ask permissions
        AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
            if granted {
                let startCallOptions = StartCallOptions()
                startCallOptions.alternateCallerId = PhoneNumberIdentifier(phoneNumber: "<YOUR AZURE REGISTERED PHONE NUMBER>")
                self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: self.callee)], options: startCallOptions) { (call, error) in
                    if (error == nil) {
                        self.call = call
                    } else {
                        print("Failed to get call object")
                    }
                }
            }
        }
    }

Spuštění kódu

Můžete sestavit a spustit aplikaci v simulátoru iOS tak, že vyberete možnost > spuštění produktu nebo pomocí klávesové zkratky (⌘-R).

Konečný vzhled a chování aplikace rychlý Start

Volání telefonu můžete uskutečnit zadáním telefonního čísla v přidaném textovém poli a kliknutím na tlačítko Spustit volání .

Upozornění

Všimněte si, že telefonní čísla by měla být zadána ve formátu E. 164 mezinárodní standard. (např.: + 12223334444)

Poznámka

Při prvním volání vás systém vyzve k zadání přístupu k mikrofonu. V produkční aplikaci byste měli použít AVAudioSession rozhraní API, abyste zkontrolovali stav oprávnění a korektně aktualizovali chování aplikace, když není udělené oprávnění.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné Communication Services, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Přečtěte si další informace o vyčištění prostředků.

Další kroky

Další informace najdete v následujících článcích: