Libreria client numeri di telefono di comunicazione di Azure per .NET - versione 1.1.0

I numeri di telefono di comunicazione di Azure gestiscono i numeri di telefono per Servizi di comunicazione di Azure.

Codice | sorgente Documentazione | del prodotto Campioni

Introduzione

Installare il pacchetto

Installare la libreria client Numeri di telefono di comunicazione di Azure per .NET con NuGet:

dotnet add package Azure.Communication.PhoneNumbers

Prerequisiti

Per usare questo pacchetto è necessaria una sottoscrizione di Azure e una risorsa del servizio di comunicazione .

Per creare un nuovo servizio di comunicazione, è possibile usare il portale di Azure, il Azure PowerShell o la libreria client di gestione .NET.

Concetti chiave

Questo SDK offre funzionalità per gestire e direct routing numeri direct offer facilmente.

I direct offer numeri sono disponibili in due tipi: geografico e verde. I piani telefonici geografici sono piani telefonici associati a una posizione, i cui codici di area dei numeri di telefono sono associati al codice di area di una posizione geografica. Toll-Free piani telefonici sono piani telefonici non associati. Ad esempio, negli Stati Uniti, i numeri verdi possono essere dotati di codici di area, ad esempio 800 o 888. Vengono gestiti tramite il PhoneNumbersClient

La direct routing funzionalità consente di connettere l'infrastruttura di telefonia esistente a ACS. La configurazione viene gestita usando SipRoutingClient, che fornisce metodi per configurare trunk SIP e regole di routing vocale, per gestire correttamente le chiamate per la subnet di telefonia.

Autenticare il client

I client possono essere autenticati usando la stringa di connessione acquisita da risorse di comunicazione di Azure nel portale di Azure.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);
// Get a connection string to Azure Communication resource.
var connectionString = "<connection_string>";
var client = new SipRoutingClient(connectionString);

I client hanno anche la possibilità di eseguire l'autenticazione con l'autenticazione di Azure Active Directory. Per altre informazioni su questo argomento, vedere Identità di Azure.

// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);
// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new SipRoutingClient(endpoint, tokenCredential);

Client numeri di telefono

Panoramica dei tipi di numeri di telefono

I numeri di telefono sono disponibili in due tipi: geografico e gratuito. I piani telefonici geografici sono piani telefonici associati a una posizione, i cui codici di area dei numeri di telefono sono associati al codice di area di una posizione geografica. Toll-Free piani telefonici sono piani telefonici non associati. Ad esempio, negli Stati Uniti, i numeri verdi possono essere dotati di codici di area, ad esempio 800 o 888.

Tutti i piani telefonici geografici all'interno dello stesso paese sono raggruppati in un gruppo di piani telefonici con un tipo di numero di telefono geografico. Tutti i piani telefonici Toll-Free nello stesso paese sono raggruppati in un gruppo di piani telefonici.

Ricerca, acquisto e rilascio di numeri di telefono

I numeri di telefono possono essere cercati tramite l'API di creazione della ricerca fornendo un codice di area, la quantità di numeri di telefono, il tipo di applicazione, il tipo di numero di telefono e le funzionalità. La quantità fornita di numeri di telefono verrà riservata per dieci minuti e può essere acquistata entro questo periodo. Se la ricerca non viene acquistata, i numeri di telefono saranno disponibili per altri dopo dieci minuti. Se la ricerca viene acquistata, i numeri di telefono vengono acquisiti per le risorse di Azure.

I numeri di telefono possono essere rilasciati anche usando l'API di rilascio.

Client di routing SIP

La funzionalità di routing diretto consente di connettere l'infrastruttura di telefonia fornita dal cliente alle risorse di comunicazione di Azure. Per configurare correttamente la configurazione del routing, il cliente deve fornire la configurazione del trunk SIP e le regole di routing SIP per le chiamate. Il client di routing SIP fornisce l'interfaccia necessaria per impostare questa configurazione.

Quando viene effettuata una chiamata, il sistema tenta di trovare la corrispondenza con il numero di destinazione con modelli di numero regex di route definite. Verrà selezionata la prima route che corrisponde al numero. L'ordine di corrispondenza delle espressioni regolari corrisponde all'ordine delle route nella configurazione, pertanto l'ordine delle route è importante. Una volta trovata una corrispondenza con una route, la chiamata viene instradata al primo trunk nell'elenco trunks della route. Se il trunk non è disponibile, viene selezionato il trunk successivo nell'elenco.

Thread safety

Microsoft garantisce che tutti i metodi di istanza client siano thread-safe e indipendenti l'uno dall'altro (linee guida). Ciò garantisce che la raccomandazione di riutilizzare le istanze client sia sempre sicura, anche tra thread.

Concetti aggiuntivi

Opzioni | client Accesso alla risposta | Operazioni | a esecuzione prolungataGestione degli errori | Diagnostica | Beffardo | Durata del client

Esempio

PhoneNumbersClient

Creazione di un phoneNumbersClient

Per creare un nuovo PhoneNumbersClient è necessaria una stringa di connessione alla risorsa Servizi di comunicazione di Azure che è possibile ottenere dal portale di Azure dopo aver creato la risorsa.

È possibile impostare connectionString in base a una variabile di ambiente, a un'impostazione di configurazione o a qualsiasi modo che funzioni per l'applicazione.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);

Cerca numeri di telefono

I numeri di telefono devono essere cercati prima di poter essere acquistati. La ricerca è un'operazione a esecuzione prolungata che può essere avviata dalla StartSearchAvailablePhoneNumbers funzione che restituisce un SearchAvailablePhoneNumbersOperation oggetto . SearchAvailablePhoneNumbersOperation può essere usato per aggiornare lo stato dell'operazione e per verificare la completezza.

var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);

var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities);
await searchOperation.WaitForCompletionAsync();

Acquistare numeri di telefono

I numeri di telefono possono essere acquisiti tramite l'acquisto di una ricerca.

var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();

Presentazione dei numeri di telefono acquistati

È possibile elencare tutti i numeri di telefono acquistati per la risorsa.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

await foreach (var phoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}

Rilasciare i numeri di telefono

Se non è più necessario un numero di telefono, è possibile rilasciarlo.

var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);

SipRoutingClient

Recuperare trunk SIP e route

Ottenere l'elenco di trunk o route attualmente configurati.

var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();

Sostituire trunk e route SIP

Sostituire l'elenco di trunk o route attualmente configurati.

// The service will not allow trunks that are used in any of the routes to be deleted, therefore first set the routes as empty list, and then update the routes.
var newTrunks = "<new_trunks_list>";
var newRoutes = "<new_routes_list>";
await client.SetRoutesAsync(new List<SipTrunkRoute>());
await client.SetTrunksAsync(newTrunks);
await client.SetRoutesAsync(newRoutes);

Gestire un singolo trunk

I trunk SIP possono essere gestiti separatamente usando per SipRoutingClient recuperare, impostare o eliminare un singolo trunk.

Recuperare un singolo trunk

// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);

Impostare un singolo trunk

// Set function will either modify existing item or add new item to the collection.
// The trunk is matched based on it's FQDN.
var trunkToSet = "<trunk_to_set>";
await client.SetTrunkAsync(trunkToSet);

Eliminare un singolo trunk

// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);

Risoluzione dei problemi

Passaggi successivi

Altre informazioni sulla gestione dei numeri di telefono

Altre informazioni sul routing diretto

Contributo

In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, visitare cla.microsoft.com.

Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento Open Source di Microsoft) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.