Guida introduttiva: Chiamata in uscita a un numero di telefono

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

Importante

Servizi di comunicazione di Azure supporta solo le chiamate di emergenza ai numeri di emergenza nel Stati Uniti, PortoRico, Canada, Danimarca e Regno Unito.

Servizi di comunicazione di Azure chiamate vocali (PSTN) può essere utilizzato per comporre il numero di emergenza 911 nella Stati Uniti, Porto Rico e Canada, per comporre il numero di emergenza 112 in Danimarca e per comporre numeri di emergenza 999 e 112 nel Regno Unito. Servizi di comunicazione di Azure attualmente non supporta la composizione di tali numeri di emergenza dall'esterno di tali paesi o aree geografiche o la composizione di 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 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 npm install comando per installare Servizi di comunicazione di Azure Calling SDK 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

Questo argomento di avvio rapido usa il pacchetto 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>

Creare un file nella directory radice del progetto denominato app.js per contenere la logica dell'applicazione per questa guida introduttiva. 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 servizi di comunicazione usata per avviare la chiamata:

Avviso

Telefono numeri devono essere forniti in 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 of the completed JavaScript Application.

È 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 solo le chiamate di emergenza ai numeri di emergenza nel Stati Uniti, PortoRico, Canada, Danimarca e Regno Unito.

Servizi di comunicazione di Azure chiamate vocali (PSTN) può essere utilizzato per comporre il numero di emergenza 911 nella Stati Uniti, Porto Rico e Canada, per comporre il numero di emergenza 112 in Danimarca e per comporre numeri di emergenza 999 e 112 nel Regno Unito. Servizi di comunicazione di Azure attualmente non supporta la composizione di tali numeri di emergenza dall'esterno di tali paesi o aree geografiche o la composizione di 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 showing the completed application.

Importante

Servizi di comunicazione di Azure supporta solo le chiamate di emergenza ai numeri di emergenza nel Stati Uniti, PortoRico, Canada, Danimarca e Regno Unito.

Servizi di comunicazione di Azure chiamate vocali (PSTN) può essere utilizzato per comporre il numero di emergenza 911 nella Stati Uniti, Porto Rico e Canada, per comporre il numero di emergenza 112 in Danimarca e per comporre numeri di emergenza 999 e 112 nel Regno Unito. Servizi di comunicazione di Azure attualmente non supporta la composizione di tali numeri di emergenza dall'esterno di tali paesi o aree geografiche o la composizione di 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 Servizi di comunicazione di Azure Calling SDK per iOS:

Configurazione

Avviare una chiamata al telefono

Specificare il numero di telefono acquisito nella risorsa servizi di comunicazione usata 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 startCall il gestore eventi eseguito quando viene toccato 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 compilare ed eseguire l'app nel simulatore iOS selezionando Product Run (Esegui prodotto>) o usando il tasto di scelta rapida (⌘-R).

Final look and feel of the quick start app

È possibile effettuare una chiamata al telefono specificando un numero di telefono nel campo di testo aggiunto e facendo clic sul pulsante 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: