Condividi tramite


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. Questo articolo si concentra sull'SDK client Calling, che può essere incorporato nei siti web e nelle applicazioni native. Questo articolo fornisce descrizioni dettagliate delle funzionalità client per chiamate, ad esempio 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 Servizi di comunicazione di Azure che aggiunge altre funzionalità a una chiamata vocale o video, ad esempio ruoli e autorizzazioni.

Per creare un'esperienza utente personalizzata con l'SDK per chiamate, vedere Avvio rapido per chiamate o Esempio di hero per chiamate.

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 i problemi noti per trovare i bug su cui stiamo lavorando.

Collegamenti per SDK

Piattaforma Web (JavaScript) Windows (.NET) Ios Androide Altro
Chiamata in corso npm NuGet GitHub Intenditore
Libreria dell'interfaccia utente npm - GitHub GitHub GitHub, Storybook

Funzionalità chiave

  • Gestione dei dispositivi e dei file multimediali: l'SDK chiamante 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 : l'SDK per chiamate 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 : l'SDK chiamante fornisce API che consentono ai client di ricevere una notifica di una chiamata in ingresso. Nelle situazioni in cui l'app non è in esecuzione in primo piano, i modelli sono disponibili per attivare notifiche popup o toast 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.
  • Testo in tempo reale (RTT) - Il testo in tempo reale (RTT) offre agli sviluppatori la possibilità di trasmettere testo quasi in tempo reale durante una chiamata. Questa funzionalità è progettata per consentire alle persone che hanno difficoltà a parlare, assicurandosi che i messaggi di testo vengano visualizzati in modo prominente ad altri partecipanti alla riunione, in modo simile alla comunicazione parlata.

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à JavaScript 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 l'avvio ✔️ ✔️ ✔️ ✔️
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 ✔️ ✔️ ✔️ ✔️
Altoparlante attivo ✔️ ✔️ ✔️ ✔️
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) ✔️ ✔️ ✔️
Accessibilità Testo in tempo reale (RTT) ✔️ ✔️ ✔️ ✔️
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 contenuti multimediali non elaborati.

3 L'SDK chiamante non ha un'API esplicita per queste funzioni. Usare invece le API del sistema operativo Android e iOS per ottenere risultati.

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 Cromo Safari Edge Firefox Visualizzazione Web Elettrone
Androide ✔️ ✔️ ✔️
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

  • Supportare gli ultimi due aggiornamenti principali del sistema operativo iOS (N e N-1 per il supporto minimo del sistema operativo iOS)
  • Xcode 12.0+
  • Supporto per iPadOS 13.0+

Durata massima della chiamata

La durata massima della chiamata è di 30 ore e i partecipanti che raggiungono la durata massima della chiamata di 30 ore vengono 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 Servizi di comunicazione di Azure Web Calling SDK versione 1.16.3. Anche se l'SDK per chiamate non applica questi limiti, gli utenti potrebbero riscontrare una riduzione delle prestazioni se vengono superati. Usare l'API di Optimal Video Count per determinare il numero di flussi video in ingresso che l'ambiente Web può supportare. Per supportare correttamente 16 video in arrivo, il computer necessita di almeno 16 GB di RAM e di una CPU da 4 core o superiore che ha meno di tre 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 Desktop WebJS Mobile Ios Androide Finestre
Invio di video 1080p1 720p 720p 720p 1080p
Invio di condivisione dello schermo 1080p 720p 720p 720p 1080p
Ricezione di un video remoto o di una condivisione dello schermo 1080p 720p 720p 720p 1080p

Supporto per numero di partecipanti a una chiamata

  • L'invio di un flusso 1080p dal desktop WebJS è attualmente in anteprima pubblica. Le versioni GA di WebJS SDK per browser desktop supportano l'invio di un flusso a 720p.
  • Fino a 350 utenti possono partecipare a una chiamata di gruppo, una chiamata alla sala o Teams + Servizi di comunicazione di Azure chiamata.
  • Una volta che le dimensioni della chiamata raggiungono 100 partecipanti, l'SDK chiamante visualizza solo i primi quattro altoparlanti dominanti che hanno attivo la videocamera.
  • Quando il numero di persone nella chiamata è 100+, il numero visualizzabile di 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 SDK Chiamata

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