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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Un numero di telefono acquisito nella risorsa di Servizi di comunicazione o l'instradamento diretto configurato di Servizi di comunicazione di Azure configurato. Se si dispone di una sottoscrizione gratuita, è possibile ottenere un numero di telefono di prova.
- Un
User Access Token
per abilitare il client di chiamata. Per altre informazioni, vedere come ottenere unUser Access Token
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>
<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:
È 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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Un numero di telefono acquisito nella risorsa di Servizi di comunicazione o l'instradamento diretto configurato di Servizi di comunicazione di Azure. Se si dispone di una sottoscrizione gratuita, è possibile ottenere un numero di telefono di prova.
- Un
User Access Token
per abilitare il client di chiamata. Per altre informazioni, vedere come ottenere unUser Access Token
- Completare la guida di avvio rapido per aggiungere funzionalità per chiamate all'applicazione
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.
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Un numero di telefono acquisito nella risorsa di Servizi di comunicazione o l'instradamento diretto configurato di Servizi di comunicazione di Azure configurato. Se si dispone di una sottoscrizione gratuita, è possibile ottenere un numero di telefono di prova.
- Un
User Access Token
per abilitare il client di chiamata. Per altre informazioni, vedere come ottenere unUser Access Token
- Completare la guida di avvio rapido per aggiungere funzionalità per chiamate all'applicazione
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).
È 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:
- Informazioni sulle funzionalità di Calling SDK
- Leggere altre informazioni sul funzionamento delle chiamate
- Informazioni sulle Funzionalità di ricerca dei numeri