Guida introduttiva: Chiamata in uscita a un numero di telefono

Per iniziare a usare Servizi di comunicazione di Azure, usare l'SDK Calling di Servizi di comunicazione per aggiungere chiamate PSTN all'app.

Importante

Servizi di comunicazione di Azure supporta le chiamate di emergenza solo negli Stati Uniti, a Portorico, in Canada, Danimarca, Regno Unito e Australia.

È possibile usare le chiamate vocali (PSTN) di Servizi di comunicazione di Azure per comporre il numero di emergenza 911 negli Stati Uniti, a Portorico e in Canada, per comporre il numero di emergenza 112 in Danimarca, per comporre 000 in Australia e per comporre i numeri di emergenza 999 e 112 nel Regno Unito. Attualmente Servizi di comunicazione di Azure non supporta la composizione di tali numeri di emergenza al di fuori di tali Paesi o aree geografiche o la chiamata a servizi di emergenza in altri Paesi o aree geografiche.

Codice di esempio

Trovare il codice finalizzato per questa guida introduttiva in GitHub

Nota

È possibile accedere alle chiamate in uscita a un numero di telefono tramite la libreria dell'interfaccia utente di Servizi di comunicazione di Azure. La libreria dell'interfaccia utente consente agli sviluppatori di aggiungere un client di chiamata abilitato per PSTN all'applicazione con solo un paio di righe di codice.

Prerequisiti

Configurazione

Creare una nuova applicazione Node.js

Aprire il terminale o la finestra di comando per creare una nuova directory per l'app e passare a tale directory.

mkdir calling-quickstart
cd calling-quickstart

Eseguire npm init -y per creare un file package.json con le impostazioni predefinite.

npm init -y

Installare il pacchetto

Usare il comando npm install per installare SDK di chiamata di Servizi di comunicazione di Azure per JavaScript.

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

L'opzione --save elenca la libreria come dipendenza nel file package.json.

Configurare il framework dell'app

Questa guida usa parcel per aggregare gli asset dell'applicazione. Eseguire il comando seguente per installarlo ed elencarlo come dipendenza di sviluppo nel package.json:

npm install parcel --save-dev

Creare un file index.html nella directory radice del progetto. Questo file verrà usato per configurare un layout di base che consentirà all'utente di effettuare una chiamata.

Ecco il codice:

<!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="./app.js" type="module"></script>
  </body>
</html>

Nella directory radice del progetto creare un file denominato app.js in cui contenere la logica dell'applicazione per questa guida di avvio rapido. Aggiungere il codice seguente per importare il client delle chiamate e ottenere riferimenti agli elementi DOM in modo da collegare la logica di business.

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 VoIP scope>');
    callAgent = await callClient.createCallAgent(tokenCredential);
    //callPhoneButton.disabled = false;
}

init();

Avviare una chiamata al telefono

Specificare il numero di telefono acquisito nella risorsa di Servizi di comunicazione, che viene usato per avviare la chiamata:

Avviso

I numeri di telefono devono essere specificati nel formato standard internazionale E.164. ad esempio +12223334444.

Aggiungere un gestore dell'evento per avviare una chiamata al numero di telefono specificato facendo clic su callPhoneButton:

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;
});

Terminare una chiamata al telefono

Aggiungere un listener di eventi per terminare la chiamata corrente quando si fa clic su hangUpPhoneButton:

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

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

La proprietà forEveryone termina la chiamata per tutti i partecipanti.

Eseguire il codice

Usare il comando npx parcel index.html per compilare ed eseguire l'app.

Aprire il browser e passare a http://localhost:1234/. Verrà visualizzata l'applicazione Web seguente:

Screenshot dell'applicazione JavaScript completata.

È possibile effettuare una chiamata a un numero di telefono reale specificandolo nel campo di testo aggiunto e facendo clic sul pulsante Start Phone Call (Avvia chiamata telefonica).

Importante

Servizi di comunicazione di Azure supporta le chiamate di emergenza solo negli Stati Uniti, a Portorico, in Canada, Danimarca, Regno Unito e Australia.

È possibile usare le chiamate vocali (PSTN) di Servizi di comunicazione di Azure per comporre il numero di emergenza 911 negli Stati Uniti, a Portorico e in Canada, per comporre il numero di emergenza 112 in Danimarca, per comporre 000 in Australia e per comporre i numeri di emergenza 999 e 112 nel Regno Unito. Attualmente Servizi di comunicazione di Azure non supporta la composizione di tali numeri di emergenza al di fuori di tali Paesi o aree geografiche o la chiamata a servizi di emergenza in altri Paesi o aree geografiche.

Codice di esempio

Trovare il codice finalizzato per questa guida introduttiva in GitHub

Prerequisiti

Controllo dei prerequisiti

  • Per visualizzare i numeri di telefono associati alla risorsa di Servizi di comunicazione, accedere al portale di Azure, individuare la risorsa di Servizi di comunicazione e aprire la scheda dei numeri di telefono dal riquadro di spostamento a sinistra.

Configurazione

Aggiungere funzionalità PSTN all'app

Aggiungere il tipo PhoneNumber all'app modificando MainActivity.java:

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

Avviare una chiamata al telefono

Specificare il numero di telefono acquisito nella risorsa di Servizi di comunicazione. Questo numero viene usato come ID chiamante per avviare la chiamata:

Avviso

Si noti che i numeri di telefono devono essere specificati nel formato standard internazionale E.164, ad esempio +12223334444.

Modificare il gestore dell'evento startCall() in MainActivity.java in modo che gestisca le chiamate telefoniche:

    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);
    }

Avviare l'app e chiamare l'Echo Bot

È ora possibile avviare l'app usando il pulsante "Run App" (Esegui app) sulla barra degli strumenti (MAIUSC+F10). Per effettuare una chiamata, specificare un numero di telefono nel campo di testo aggiunto e selezionare il pulsante CHIAMA.

Avviso

Si noti che i numeri di telefono devono essere specificati nel formato standard internazionale E.164, ad esempio +12223334444.

Screenshot che mostra l'applicazione completata.

Importante

Servizi di comunicazione di Azure supporta le chiamate di emergenza solo negli Stati Uniti, a Portorico, in Canada, Danimarca, Regno Unito e Australia.

È possibile usare le chiamate vocali (PSTN) di Servizi di comunicazione di Azure per comporre il numero di emergenza 911 negli Stati Uniti, a Portorico e in Canada, per comporre il numero di emergenza 112 in Danimarca, per comporre 000 in Australia e per comporre i numeri di emergenza 999 e 112 nel Regno Unito. Attualmente Servizi di comunicazione di Azure non supporta la composizione di tali numeri di emergenza al di fuori di tali Paesi o aree geografiche o la chiamata a servizi di emergenza in altri Paesi o aree geografiche.

Prerequisiti

Controllo dei prerequisiti

  • Per visualizzare i numeri di telefono associati alla risorsa di Servizi di comunicazione, accedere al portale di Azure, individuare la risorsa di Servizi di comunicazione e aprire la scheda dei numeri di telefono dal riquadro di spostamento a sinistra.
  • È possibile compilare ed eseguire l'app con l'SDK Calling di Servizi di comunicazione per iOS:

Configurazione

Avviare una chiamata al telefono

Specificare il numero di telefono acquisito nella risorsa di Servizi di comunicazione, che viene usato per avviare la chiamata:

Avviso

Si noti che i numeri di telefono devono essere specificati nel formato standard internazionale E.164, ad esempio +12223334444.

Modificare il gestore dell'evento startCall che verrà eseguito quando si tocca il pulsante Avvia chiamata:

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")
                    }
                }
            }
        }
    }

Eseguire il codice

È possibile creare ed eseguire un'app nel simulatore iOS selezionando Product>Run (Prodotto > Esegui) o premendo i tasti di scelta rapida (⌘-R).

Aspetto finale dell'app di avvio rapido

È possibile effettuare una chiamata specificando un numero di telefono nel campo di testo aggiunto e facendo clic sul pulsante Start Call (Avvia chiamata).

Avviso

Si noti che i numeri di telefono devono essere specificati nel formato standard internazionale E.164, ad esempio +12223334444.

Nota

La prima volta che si effettua una chiamata, il sistema chiederà l'accesso al microfono. In un'applicazione di produzione è consigliabile usare l'API AVAudioSession per controllare lo stato delle autorizzazioni e aggiornare normalmente il comportamento dell'applicazione quando l'autorizzazione non viene concessa.

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione a Servizi di comunicazione, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. Altre informazioni sulla pulizia delle risorse.

Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti: