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.