Panoramica dell'SDK di chiamata
Servizi di comunicazione di Azure consente ai browser, alle app e ai servizi degli utenti finali di guidare la comunicazione vocale e video. Questa pagina è incentrata sull'SDK client di Calling, che può essere incorporato in siti Web e applicazioni native. Questa pagina fornisce descrizioni dettagliate delle funzionalità client di Calling, incluse le informazioni sul supporto della piattaforma e del browser. I servizi gestiscono e accedono a livello di codice alle chiamate usando le API di Automazione chiamata. L'API Rooms è un'API facoltativa di Servizi di comunicazione di Azure che aggiunge funzionalità aggiuntive a una chiamata vocale o video, ad esempio ruoli e autorizzazioni.
Per creare un'esperienza utente personalizzata con Calling SDK, vedere Guida introduttiva per Calling o Esempio Hero per Calling.
Se si vuole assistenza per l'esperienza dell'utente finale, la libreria dell'interfaccia utente di Servizi di comunicazione di Azure offre una raccolta di componenti dell'interfaccia utente open source pronti per la produzione da usare nell'applicazione. Con questo set di controlli predefiniti, è possibile creare esperienze di comunicazione accattivanti usando il linguaggio di progettazione Fluent di Microsoft. Per altre informazioni sulla libreria dell'interfaccia utente, visitare il sito di panoramica.
Dopo aver avviato lo sviluppo, vedere la pagina dei problemi noti per trovare i bug in fase di risoluzione.
Collegamenti per SDK
Piattaforma | Web (JavaScript) | Windows (.NET) | iOS | Android | Altro |
---|---|---|---|---|---|
Chiamata in corso | npm | NuGet | GitHub | Maven | |
Libreria dell'interfaccia utente | npm | - | GitHub | GitHub | GitHub, Storybook |
Funzionalità chiave
- Gestione dei dispositivi e dei file multimediali: Calling SDK offre funzionalità per l'associazione a dispositivi audio e video, codifica il contenuto per una trasmissione efficiente sul piano dati delle comunicazioni ed esegue il rendering del contenuto nei dispositivi di output e nelle visualizzazioni specificate. Sono disponibili anche API per la condivisione dello schermo e dell'applicazione.
- PSTN: Calling SDK può avviare chiamate vocali con la rete telefonica tradizionale commutata pubblica, usando i numeri di telefono acquisiti nel portale di Azure o a livello di codice. È anche possibile usare i propri numeri tramite SBC (Session Border Controller).
- Riunioni e chiamate di Teams: Calling SDK può partecipare alle riunioni di Teams e interagire con il piano dati vocale e video di Teams.
- Crittografia: l'SDK chiamante esegue la crittografia del traffico e impedisce la manomissione in transito.
- Indirizzamento: i Servizi di comunicazione di Azure forniscono identità generiche usate per gestire gli endpoint di comunicazione. I client usano queste identità per eseguire l'autenticazione al servizio e comunicare tra loro. Queste identità vengono usate nelle API chiamanti che forniscono ai client visibilità su chi è connesso a una chiamata (elenco partecipanti).
- Sicurezza dall'accesso utente
- Il controllo dell'elenco partecipanti, il controllo della pianificazione e ruoli/autorizzazioni degli utenti vengono applicati tramite Virtual Rooms.
- La possibilità per un utente di Avviare una nuova chiamata o di Partecipare a una chiamata esistente può essere gestita tramite Identità utente e token
- Notifiche: Calling SDK fornisce API che consentono ai client di ricevere la notifica di una chiamata in arrivo. In situazioni in cui l'app non è in esecuzione in primo piano, i modelli sono disponibili per attivare le notifiche popup ("avvisi popup") per informare gli utenti finali di una chiamata in arrivo.
- Statistiche multimediali: Calling SDK fornisce informazioni dettagliate complete sulle metriche delle chiamate VoIP e videochiamate. Con queste informazioni, gli sviluppatori hanno una comprensione più chiara della qualità delle chiamate e possono prendere decisioni informate per migliorare ulteriormente l'esperienza di comunicazione.
- Vincoli video: Calling SDK fornisce API che consentono di regolare la qualità video tra gli altri parametri durante le videochiamate modificando parametri come risoluzione e frequenza dei fotogrammi che supportano situazioni di chiamata diverse per diversi livelli di qualità video
- User Facing Diagnostics (UFD): Calling SDK fornisce eventi progettati per fornire informazioni dettagliate sui problemi sottostanti che potrebbero influire sulla qualità delle chiamate. Gli sviluppatori possono sottoscrivere trigger come segnali di rete deboli o microfoni disattivati, in modo da assicurarsi di essere sempre consapevoli di tutti i fattori che influiscono sulle chiamate.
Funzionalità dettagliate
L'elenco seguente presenta il set di funzionalità attualmente disponibili nei Calling SDK di Servizi di comunicazione di Azure.
Gruppo di funzionalità | Funzionalità | JS | Finestre | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
Funzionalità principali | Inserire una chiamata uno-a-uno tra due utenti | ✔️ | ✔️ | ✔️ | ✔️ |
Effettuare una chiamata di gruppo con più di due utenti (fino a 100 utenti) | ✔️ | ✔️ | ✔️ | ✔️ | |
Alzare di livello una chiamata uno-a-uno con due utenti in una chiamata di gruppo con più di due utenti | ✔️ | ✔️ | ✔️ | ✔️ | |
Partecipare a una chiamata di gruppo dopo che è stata avviata | ✔️ | ✔️ | ✔️ | ✔️ | |
Invitare un altro utente VoIP a partecipare a una chiamata di gruppo in corso | ✔️ | ✔️ | ✔️ | ✔️ | |
Controlli durante la chiamata | Attivare/Disattivare il video | ✔️ | ✔️ | ✔️ | ✔️ |
Attivare/Disattivare il microfono | ✔️ | ✔️ | ✔️ | ✔️ | |
Disattivare l'audio di altri partecipanti | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
Passare da una fotocamera all'altra | ✔️ | ✔️ | ✔️ | ✔️ | |
Bloccare/Sbloccare chiamata locale | ✔️ | ✔️ | ✔️ | ✔️ | |
Active speaker | ✔️ | ✔️ | ✔️ | ✔️ | |
Scegliere l'altoparlante per le chiamate | ✔️ | ✔️ | ✔️ | ✔️ | |
Scegliere il microfono per le chiamate | ✔️ | ✔️ | ✔️ | ✔️ | |
Mostrare lo stato di un partecipante Inattivo, Contenuto multimediale anticipato, Connessione in corso, Connesso, In attesa, In sala di attesa, Disconnesso |
✔️ | ✔️ | ✔️ | ✔️ | |
Mostrare lo stato di una chiamata Contenuto multimediale anticipato, In arrivo, Connessione in corso, Chiamata in corso, Connesso, In attesa, Disconnessione in corso, Disconnesso |
✔️ | ✔️ | ✔️ | ✔️ | |
Mostrare se un partecipante ha l'audio disattivato | ✔️ | ✔️ | ✔️ | ✔️ | |
Mostrare il motivo per cui un partecipante ha abbandonato una chiamata | ✔️ | ✔️ | ✔️ | ✔️ | |
Condivisione dello schermo | Condividere l'intero schermo dall'applicazione | ✔️ | ✔️2 | ✔️2 | ✔️2 |
Condividere un'applicazione specifica (dall'elenco delle applicazioni in esecuzione) | ✔️ | ✔️2 | ❌ | ❌ | |
Condividere una scheda del Web browser dall'elenco delle schede aperte | ✔️ | ||||
Condividere l'audio di sistema durante la condivisione dello schermo | ✔️ | ❌ | ❌ | ❌ | |
Il partecipante può visualizzare la condivisione dello schermo remoto | ✔️ | ✔️ | ✔️ | ✔️ | |
Registro | Elencare i partecipanti | ✔️ | ✔️ | ✔️ | ✔️ |
Rimuovere un partecipante | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | Inserire una chiamata uno-a-uno con un partecipante PSTN | ✔️ | ✔️ | ✔️ | ✔️ |
Inserire una chiamata di gruppo con partecipanti PSTN | ✔️ | ✔️ | ✔️ | ✔️ | |
Alzare di livello una chiamata uno-a-uno con un partecipante PSTN in una chiamata di gruppo | ✔️ | ✔️ | ✔️ | ✔️ | |
Disconnettersi da una chiamata di gruppo come partecipante PSTN | ✔️ | ✔️ | ✔️ | ✔️ | |
Supporto per contenuto multimediale anticipato | ✔️ | ✔️ | ✔️ | ✔️ | |
Generali | Testare microfono, altoparlante e fotocamera con un servizio di test audio (disponibile chiamando 8:echo123) | ✔️ | ✔️ | ✔️ | ✔️ |
Gestione dei dispositivi | Chiedere l'autorizzazione per l'uso di audio e/o video | ✔️ | ✔️ | ✔️ | ✔️ |
Ottenere l'elenco delle videocamere | ✔️ | ✔️ | ✔️ | ✔️ | |
Impostare la videocamera | ✔️ | ✔️ | ✔️ | ✔️ | |
Ottenere la videocamera selezionata | ✔️ | ✔️ | ✔️ | ✔️ | |
Ottenere l'elenco dei microfoni | ✔️ | ✔️ | ❌3 | ❌3 | |
Configurare il microfono | ✔️ | ✔️ | ❌3 | ❌3 | |
Ottenere il microfono selezionato | ✔️ | ✔️ | ❌3 | ❌3 | |
Ottenere l'elenco degli altoparlanti | ✔️ | ✔️ | ❌3 | ❌3 | |
Impostare l'altoparlante | ✔️ | ✔️ | ❌3 | ❌3 | |
Ottenere l'altoparlante selezionato | ✔️ | ✔️ | ❌3 | ❌3 | |
Rendering video | Eseguire il rendering di un video singolo in più posizioni (videocamera locale o flusso remoto) | ✔️ | ✔️ | ✔️ | ✔️ |
Impostare/Aggiornare la modalità di ridimensionamento | ✔️ | ✔️ | ✔️ | ✔️ | |
Eseguire il rendering del flusso video remoto | ✔️ | ✔️ | ✔️ | ✔️ | |
Effetti video | Sfocatura dello sfondo | ✔️ | ✔️ | ✔️ | ✔️ |
Immagine di sfondo personalizzata | ✔️ | ✔️ | ✔️ | ✔️ | |
Effetti audio | Modalità Musica | ❌ | ✔️ | ✔️ | ✔️ |
Annullamento eco | ❌ | ✔️ | ✔️ | ✔️ | |
Eliminazione del rumore | ✔️ | ✔️ | ✔️ | ✔️ | |
Controllo automatico del guadagno (AGC) | ❌ | ✔️ | ✔️ | ✔️ | |
Notifiche 4 | Notifiche push | ✔️ | ✔️ | ✔️ | ✔️ |
Contesto personalizzato | Aggiungere intestazioni da utente a utente (UUI) o personalizzate a una chiamata | ✔️ | ❌ | ❌ | ❌ |
1 La possibilità di disattivare l'audio di altri utenti è attualmente in anteprima pubblica.
2 La funzionalità Condividi schermo può essere ottenuta usando le API per file multimediali non elaborati. Per altre informazioni, vedere la guida introduttiva all'accesso ai file multimediali non elaborati.
3 Calling SDK non ha un'API esplicita per queste funzioni. È consigliabile usare le API del sistema operativo Android e iOS per ottenere questo risultato.
4 Il valore massimo per TTL nelle piattaforme native è 180 giorni (15.552.000 secondi) e il valore minimo è 5 minuti (300 secondi). Per l'endpoint di Teams personalizzato/M365 Identity il valore TTL massimo è 24 ore (86.400 secondi).
Supporto di JavaScript Calling SDK da parte del sistema operativo e del browser
La tabella seguente rappresenta il set di browser supportati attualmente disponibili. Sono supportate le tre versioni principali più recenti del browser (tre versioni secondarie più recenti per Safari), se non diversamente indicato.
Piattaforma | Chrome | Safari | Edge | Firefox | Webview | Electron |
---|---|---|---|---|---|---|
Android | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Finestre | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
Ubuntu/Linux | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
- La condivisione dello schermo in uscita non è supportata nei browser per dispositivi mobili iOS o Android.
- Il supporto di Firefox è disponibile in anteprima pubblica.
- Calling SDK supporta attualmente solo Android System WebView in Android, iOS WebView (WKWebView) in anteprima pubblica. Altri tipi di browser incorporati o webview in altre piattaforme del sistema operativo non sono ufficialmente supportati, ad esempio GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2. L'esecuzione di JavaScript Calling SDK in queste piattaforme non viene testata attivamente, quindi potrebbe funzionare o meno.
- Un'app iOS in Safari non può enumerare/selezionare dispositivi microfoni e altoparlanti (ad esempio, Bluetooth). Questo problema è una limitazione di iOS e il sistema operativo controlla la selezione predefinita dei dispositivi.
Client chiamante - modello di sicurezza del browser
Usare WebRTC su HTTPS
Un requisito delle API WebRTC come getUserMedia
è che l'app che chiama queste API sia servita tramite HTTPS. Per lo sviluppo locale è possibile usare http://localhost
.
Incorporare l'SDK per le chiamate di Servizi di comunicazione in un iframe
Un nuovo criterio di autorizzazione (detto anche criterio di funzionalità) è disponibile in vari browser. Questi criteri influiscono sugli scenari di chiamata controllando il modo in cui le applicazioni possono accedere alla fotocamera e al microfono di un dispositivo tramite un elemento iframe tra diverse origini.
Se si vuole usare un iframe per ospitare parte dell'app da un dominio diverso, occorre aggiungere l'attributo allow
con il valore corretto all'iframe.
Ad esempio, questo iframe consente l'accesso sia alla fotocamera che al microfono:
<iframe allow="camera *; microphone *">
Supporto di Android Calling SDK
- Supporto per API Android Livello 21 o superiore
- Supporto per Java 7 o versione successiva
- Supporto per Android Studio 2.0
È consigliabile identificare e convalidare lo scenario visitando le piattaforme Android supportate
Supporto di iOS Calling SDK
- Supporto per iOS 10.0+ in fase di compilazione e iOS 12.0+ in fase di esecuzione
- Xcode 12.0+
- Supporto per iPadOS 13.0+
Durata massima della chiamata
La durata massima della chiamata è di 30 ore. I partecipanti che raggiungono la durata massima della chiamata di 30 ore verranno disconnessi dalla chiamata.
Numero supportato di flussi video in ingresso
Calling SDK dei Servizi di comunicazione di Azure supporta le configurazioni di streaming seguenti:
Limite | Web | Windows/Android/iOS |
---|---|---|
Numero massimo di flussi locali in uscita che possono essere inviati contemporaneamente | 1 video e 1 condivisione dello schermo | 1 video + 1 condivisione dello schermo |
Numero massimo di flussi remoti in ingresso di cui è possibile eseguire il rendering contemporaneamente | 16 video + 1 condivisione dello schermo nei browser desktop*, 4 video + 1 condivisione dello schermo nei browser Web per dispositivi mobili | 9 video + 1 condivisione dello schermo |
* A partire da Web Calling SDK versione 1.16.3dei Servizi di comunicazione di Azure. Benché Calling SDK non applichi questi limiti, è possibile che gli utenti riscontrino una riduzione del livello delle prestazioni se tali limiti vengono superati. Usare l'API di Optimal Video Count per determinare il numero di flussi video in ingresso correnti che l'ambiente Web può supportare. Al fine di supportare correttamente 16 video in ingresso, il computer deve avere un minimo di 16 GB di RAM e una CPU 4 core o superiore, che non abbia più di 3 anni
Risoluzioni video supportate
Calling SDK di Servizi di comunicazione di Azure regola automaticamente le risoluzioni dei flussi di condivisione video e schermo durante la chiamata.
Nota
La risoluzione può variare a seconda del numero di partecipanti di una chiamata, della larghezza di banda disponibile per il client, delle funzionalità hardware del partecipante locale che esegue il rendering di flussi video remoti e di altri parametri generali di chiamata.
Calling SDK di Servizi di comunicazione di Azure supporta l'invio delle risoluzioni video seguenti
Risoluzione massima video | WebJS | iOS | Android | Finestre |
---|---|---|---|---|
Invio di video | 720P | 720P | 720P | 1080P |
Invio di condivisione dello schermo | 1080P | 1080P | 1080P | 1080P |
Ricezione di un flusso video remoto o di una condivisione dello schermo | 1080P | 1080P | 1080P | 1080P |
Supporto per numero di partecipanti a una chiamata
- Fino a 350 gli utenti possono partecipare a una chiamata di gruppo, Room o Teams + Servizi di comunicazione di Azure.
- Quando la dimensione della chiamata raggiunge più di 100 partecipanti in una chiamata, possono essere visti solo i primi 4 parlanti dominanti con videocamera attivata.
- Se il numero di persone nella chiamata è maggiore di 100, il numero visualizzabile di rendering video in ingresso diminuisce automaticamente da 4x4 (16 video in ingresso) fino a 2x2 (4 video in ingresso).
- Quando il numero di utenti scende sotto le 100 unità, il numero di video in ingresso supportati torna a essere 4x4 (16 video in ingresso).
Timeout di Calling SDK
I timeout seguenti si applicano ai Calling SDK di Servizi di comunicazione:
Azione | Timeout in secondi |
---|---|
Riconnessione/Rimozione di un partecipante | 60 |
Aggiungere o rimuovere una nuova modalità da una chiamata (avvio/arresto di video o condivisione dello schermo) | 40 |
Timeout dell'operazione di trasferimento delle chiamate | 60 |
Timeout di effettuazione di chiamate 1:1 | 85 |
Timeout di effettuazione di chiamate di gruppo | 85 |
Timeout di effettuazione di chiamate PSTN | 115 |
Timeout di promozione di una chiamata 1:1 a una chiamata di gruppo | 115 |
Passaggi successivi
Per altre informazioni, vedere gli articoli seguenti:
- Acquisire familiarità con i flussi di chiamate generali
- Informazioni sui tipi di chiamate
- Informazioni sull'API di automazione delle chiamate che consente di creare flussi di lavoro di chiamata basati su server in grado di instradare e controllare le chiamate con le applicazioni client.
- Pianificare la soluzione PSTN