Guida introduttiva: Configurare il routing vocale a livello di codice

Configurare le regole di instradamento vocale in uscita per l'instradamento diretto di Servizi di comunicazione di Azure.

Prerequisiti

Nota

Altri esempi di utilizzo sono SipRoutingClient disponibili in GitHub.

Aggiungere un controller di bordo sessione

  1. Nel riquadro sinistro, in Chiamate vocali - PSTN, selezionare Routing diretto. Nella scheda Session Border Controller (Controller bordo sessione) selezionare Configure (Configura).

  2. Immettere un FQDN e una porta di segnalazione per il SBC. I requisiti per il nome di dominio completo SBC includono:

    • Prima di poter aggiungerla alla configurazione di routing diretto, è necessario verificare la parte del dominio del nome di dominio completo, come indicato in precedenza nei prerequisiti.
    • Il certificato SBC deve corrispondere al nome. Sono supportati i certificati con caratteri jolly.
    • Non è possibile usare i *.onmicrosoft.com domini e *.azure.com per il nome di dominio completo.

    Per l'elenco completo dei requisiti, vedere Requisiti dell'infrastruttura di routing diretto di Azure.

    Screenshot of adding a session border controller on the panel for configuring direct routing.

  3. Selezionare Avanti. Se tutto è configurato correttamente, verrà visualizzato lo stato di SBC come Attivo in portale di Azure.

    Screenshot of SBC connection properties.

Importante

Prima di effettuare o ricevere chiamate, assicurarsi che lo stato SBC sia Online

Creare regole di routing vocale

Screenshot of outgoing voice routing configuration.

Assegnare un nome alla route vocale, specificare il modello numerico usando le espressioni regolari e selezionare il SBC per tale modello. Ecco alcuni esempi di espressioni regolari di base:

  • ^\+\d+$: corrisponde a un numero di telefono con una o più cifre che iniziano con un segno più.
  • ^\+1(\d{10})$: corrisponde a un numero di telefono con 10 cifre dopo +1.
  • ^\+1(425|206)(\d{7})$: corrisponde a un numero di telefono che inizia con o con +1425 +1206, seguito da sette cifre.
  • ^\+0?1234$: corrisponde sia ai +01234 +1234 numeri di telefono che ai numeri di telefono.

Per altre informazioni sulle espressioni regolari, vedere Panoramica delle espressioni regolari .NET.

È possibile selezionare più SBC per un singolo modello. In questo caso, l'algoritmo di routing li sceglie in ordine casuale. È anche possibile specificare il modello numerico esatto più di una volta. La riga più alta ha priorità più alta. Se tutti gli SBC associati a tale riga non sono disponibili, viene selezionata la riga successiva. In questo modo, si creano scenari di routing complessi.

Rimuovere una configurazione di routing diretto

Per eliminare una route vocale:

  1. Nel riquadro sinistro, in Chiamate vocali - PSTN, passare a Routing diretto.
  2. Nella scheda Route vocali selezionare le caselle di controllo per la route (o le route) da eliminare.
  3. Selezionare Rimuovi.

Per eliminare un SBC:

  1. Nel riquadro sinistro, in Chiamate vocali - PSTN, passare a Routing diretto.
  2. Nella scheda Session Border Controllers (Controller di bordo sessione) selezionare Configure (Configura).
  3. Deselezionare i campi FQDN e porta per il SBC da rimuovere e quindi selezionare Avanti.
  4. Nella scheda Route vocali esaminare la configurazione del routing vocale. Apportare modifiche, se necessario, e quindi selezionare Salva.

Quando si rimuove un SBC associato a una route vocale, è possibile scegliere un SBC diverso per la route nella scheda Route vocali. La route vocale senza SBC verrà eliminata.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
  • Una stringa di connessione e una risorsa attiva di Servizi di comunicazione. Creare una risorsa di Servizi di comunicazione.
  • Versione più recente della libreria client .NET Core per il sistema operativo.
  • Nome di dominio completo (FQDN) e numero di porta di un SBC (Session Border Controller) in un sistema di telefonia operativo.
  • Nome di dominio verificato dell'FQDN SBC.

Codice finale

Trovare il codice finalizzato per questa guida introduttiva in GitHub.

È anche possibile trovare altri esempi di utilizzo per SipRoutingClient su GitHub.

Creare un’applicazione C#

In una finestra della console,ad esempio prompt dei comandi, PowerShell o Bash, usare il dotnet new comando per creare una nuova app console:

    dotnet new console -o DirectRoutingQuickstart

Questo comando crea un semplice progetto C# "Hello World" con un singolo file di origine: Program.cs.

Passare alla cartella dell'app appena creata e usare il comando per compilare l'applicazione dotnet build :

    cd DirectRoutingQuickstart
    dotnet build

Installare il pacchetto

Mentre si è ancora nella directory dell'applicazione, installare la libreria client azure Communication Telefono Numbers per .NET usando il dotnet add package comando :

    dotnet add package Azure.Communication.PhoneNumbers --version 1.1.0

Aggiungere una using direttiva all'inizio di Program.cs per includere gli spazi dei nomi:

using Azure.Communication.PhoneNumbers.SipRouting;

Autenticare il client

Autenticare i client dei numeri di telefono usando un stringa di connessione da una risorsa Servizi di comunicazione di Azure:

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

Configurare una configurazione di routing diretto

Nei prerequisiti è stata verificata la proprietà del dominio. I passaggi successivi sono creare trunk (aggiungere SBC) e creare route vocali.

Creare o aggiornare trunk

Servizi di comunicazione di Azure routing diretto consente la comunicazione solo con sBC registrati. Per registrare un SBC, è necessario il nome di dominio completo e la porta:

// Register your SBCs by providing their fully qualified domain names and port numbers.
var usSbcFqdn = "sbc.us.contoso.com";
var euSbcFqdn = "sbc.eu.contoso.com";
var sbcPort = 5061;

var usTrunk = new SipTrunk(usSbcFqdn, sbcPort);
var euTrunk = new SipTrunk(euSbcFqdn, sbcPort);

await client.SetTrunksAsync(new List<SipTrunk> { usTrunk, euTrunk });

Creare o aggiornare route

Specificare le regole di routing per le chiamate in uscita. Ogni regola è costituita da due parti: un modello regex che deve corrispondere a un numero di telefono composto e l'FQDN di un trunk registrato in cui viene instradata la chiamata.

L'ordine delle route determina la priorità delle route. La prima route che corrisponde all'espressione regolare verrà selezionata per una chiamata.

In questo esempio viene creata una route per i numeri che iniziano con +1 e una seconda route per i numeri che iniziano con :+

var usRoute = new SipTrunkRoute("UsRoute", "^\\+1(\\d{10})$", trunks: new List<string> { usSbcFqdn });
var defaultRoute = new SipTrunkRoute("DefaultRoute", "^\\+\\d+$", trunks: new List<string> { usSbcFqdn, euSbcFqdn });

await client.SetRoutesAsync(new List<SipTrunkRoute> { usRoute, defaultRoute });

Aggiornare una configurazione di routing diretto

È possibile aggiornare le proprietà di un trunk specifico sovrascrivendo il record con lo stesso FQDN. Ad esempio, è possibile impostare un nuovo valore di porta SBC:

var usTrunk = new SipTrunk("sbc.us.contoso.com", 5063);
await client.SetTrunkAsync(usTrunk);

Usare lo stesso metodo per creare e aggiornare le regole di routing. Quando si aggiornano le route, inviarle tutte in un singolo aggiornamento. La nuova configurazione di routing sovrascrive completamente quella precedente.

Rimuovere una configurazione di routing diretto

Non è possibile modificare o rimuovere una singola route vocale. È necessario sovrascrivere l'intera configurazione del routing vocale. Di seguito è riportato un esempio di elenco vuoto che rimuove tutte le route e i trunk:

//delete all configured voice routes
await client.SetRoutesAsync(new List<SipTrunkRoute>());

//delete all trunks
await client.SetTrunksAsync(new List<SipTrunk>());

È possibile usare l'esempio seguente per eliminare un singolo trunk (SBC), se non vengono usate route vocali. Se il SBC è elencato in qualsiasi route vocale, eliminare prima tale route.

await client.DeleteTrunkAsync("sbc.us.contoso.com");

Prerequisiti

Codice finale

Trovare il codice finalizzato per questa guida introduttiva in GitHub.

È anche possibile trovare altri esempi di utilizzo per SipRoutingClient su GitHub.

Creare un'applicazione Java

Aprire la finestra del terminale o di comando. Passare alla directory in cui si vuole creare l'applicazione Java. Eseguire quindi il comando per generare il progetto Java dal modello maven-archetype-quickstart :

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

L'attività generate ha creato una directory con lo stesso nome del artifactId valore. In questa directory la directory src/main/java contiene il codice sorgente del progetto, la directory src/test/java contiene l'origine di test e il file pom.xml è il modello a oggetti del progetto .

Installare il pacchetto

Aprire il file pom.xml nell'editor di testo. Aggiungere gli elementi di dipendenza seguenti al gruppo di dipendenze:

<dependencies>
	<dependency>
		<groupId>com.azure</groupId>
		<artifactId>azure-communication-phonenumbers</artifactId>
		<version>1.1.0</version>
	</dependency>
</dependencies>

Configurare il framework dell'app

Dalla directory del progetto:

  1. Passare alla directory /src/main/java/com/communication/quickstart .
  2. Aprire il file App.java nell'editor.
  3. Sostituire l'istruzione System.out.println("Hello world!"); .
  4. Aggiungere import direttive.

Per iniziare, usare il codice seguente:

import com.azure.communication.phonenumbers.siprouting.SipRoutingAsyncClient;
import com.azure.communication.phonenumbers.siprouting.SipRoutingClientBuilder;
import com.azure.communication.phonenumbers.siprouting.models.SipTrunk;
import com.azure.communication.phonenumbers.siprouting.models.SipTrunkRoute;
import static java.util.Arrays.asList;

public class App
{
    public static void main( String[] args ) throws IOException
    {
        System.out.println("Azure Communication Services - Direct Routing Quickstart");
        // Quickstart code goes here
    }
}

Autenticare il client

Con SipRoutingClientBuilderè possibile usare l'autenticazione Di Microsoft Entra:

// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";

SipRoutingAsyncClient sipRoutingAsyncClient = new SipRoutingClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

In alternativa, usare l'endpoint e la chiave di accesso dalla risorsa di comunicazione per eseguire l'autenticazione:

// You can find your connection string from your resource in the Azure portal
String connectionString = "endpoint=https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<ACCESS_KEY>";

SipRoutingAsyncClient sipRoutingAsyncClient = new SipRoutingClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Configurare una configurazione di routing diretto

Nei prerequisiti è stata verificata la proprietà del dominio. I passaggi successivi sono creare trunk (aggiungere SBC) e creare route vocali.

Creare o aggiornare trunk

Servizi di comunicazione di Azure routing diretto consente la comunicazione solo con sBC registrati. Per registrare un SBC, è necessario il nome di dominio completo e la porta:

sipRoutingAsyncClient.setTrunksWithResponse(asList(
	new SipTrunk("sbc.us.contoso.com", 5061),
	new SipTrunk("sbc.eu.contoso.com", 5061)
)).block();

Creare o aggiornare route

Specificare le regole di routing per le chiamate in uscita. Ogni regola è costituita da due parti: un modello regex che deve corrispondere a un numero di telefono composto e l'FQDN di un trunk registrato in cui viene instradata la chiamata.

L'ordine delle route determina la priorità delle route. La prima route che corrisponde all'espressione regolare verrà selezionata per una chiamata.

In questo esempio viene creata una route per i numeri che iniziano con +1 e una seconda route per i numeri che iniziano con :+

sipRoutingAsyncClient.setRoutes(asList(
	new SipTrunkRoute("UsRoute", "^\\+1(\\d{10})$").setTrunks(asList("sbc.us.contoso.com")),
	new SipTrunkRoute("DefaultRoute", "^\\+\\d+$").setTrunks(asList("sbc.us.contoso.com", "sbc.eu.contoso.com"))
)).block();

Aggiornare una configurazione di routing diretto

È possibile aggiornare le proprietà di un trunk specifico sovrascrivendo il record con lo stesso FQDN. Ad esempio, è possibile impostare un nuovo valore di porta SBC:

sipRoutingClient.setTrunk(new SipTrunk("sbc.us.contoso.com", 5063));

Usare lo stesso metodo per creare e aggiornare le regole di routing. Quando si aggiornano le route, inviarle tutte in un singolo aggiornamento. La nuova configurazione di routing sovrascrive completamente quella precedente.

Rimuovere una configurazione di routing diretto

Non è possibile modificare o rimuovere una singola route vocale. È necessario sovrascrivere l'intera configurazione del routing vocale. Ecco un esempio di un elenco vuoto che rimuove tutte le route e i trunk.

Aggiungere due importazioni:

import java.util.Collections;
import java.util.List;

Usare il codice seguente per eliminare una configurazione di routing diretto:

//delete all configured voice routes
System.out.println("Delete all routes");
List<SipTrunkRoute> routes = Collections.<SipTrunkRoute> emptyList();
sipRoutingAsyncClient.setRoutes(routes).block();

//delete all trunks
System.out.println("Delete all trunks");
List<SipTrunk> trunks = Collections.<SipTrunk> emptyList();
sipRoutingAsyncClient.setTrunksWithResponse(trunks).block();

È possibile usare l'esempio seguente per eliminare un singolo trunk (SBC), se non vengono usate route vocali. Se il SBC è elencato in qualsiasi route vocale, eliminare prima tale route.

sipRoutingClient.deleteTrunk("sbc.us.contoso.com");

Eseguire il codice

Passare alla directory contenente il file pom.xml e compilare il progetto usando il comando seguente mvn :

  mvn clean compile

Compilare quindi il pacchetto:

  mvn package

Eseguire il comando seguente mvn per eseguire l'app:

  mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
  • Una stringa di connessione e una risorsa attiva di Servizi di comunicazione. Creare una risorsa di Servizi di comunicazione.
  • Versioni LTS e Manutenzione LTS attive di Node.js per il sistema operativo.
  • Nome di dominio completo (FQDN) e numero di porta di un SBC (Session Border Controller) in un sistema di telefonia operativo.
  • Nome di dominio verificato dell'FQDN SBC.

Codice finale

Trovare il codice finalizzato per questa guida introduttiva in GitHub.

È anche possibile trovare altri esempi di utilizzo per SipRoutingClient su GitHub.

Creare un'applicazione Node.js

Aprire il terminale o la finestra di comando, creare una nuova directory per l'app e passare al terminale:

    mkdir direct-routing-quickstart && cd direct-routing-quickstart

Eseguire npm init -y per creare un file package.json con le impostazioni predefinite:

   npm init -y

Creare un file denominato direct-routing-quickstart.js nella radice della directory creata. Aggiungere il frammento di codice seguente:

async function main() {
    // quickstart code will go here
}

main();

Installare il pacchetto

Usare il npm install comando per installare la libreria client Servizi di comunicazione di Azure Telefono Numbers per JavaScript:

   npm install @azure/communication-phone-numbers --save

L'opzione --save aggiunge la libreria come dipendenza nel file package.json .

Autenticare il client

Importare SipRoutingClient dalla libreria client e crearne un'istanza con il stringa di connessione. Il codice recupera il stringa di connessione per la risorsa da una variabile di ambiente denominata COMMUNICATION_SERVICES_CONNECTION_STRING. Informazioni su come gestire le stringa di connessione della risorsa.

Aggiungere il codice seguente a direct-routing-quickstart.js:

const { SipRoutingClient } = require('@azure/communication-phone-numbers');

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the phone numbers client
const sipRoutingClient = new SipRoutingClient(connectionString);

Configurare una configurazione di routing diretto

Nei prerequisiti è stata verificata la proprietà del dominio. I passaggi successivi sono creare trunk (aggiungere SBC) e creare route vocali.

Creare o aggiornare trunk

Servizi di comunicazione di Azure routing diretto consente la comunicazione solo con sBC registrati. Per registrare un SBC, è necessario il nome di dominio completo e la porta:

  await client.setTrunks([
    {
      fqdn: 'sbc.us.contoso.com',
      sipSignalingPort: 5061
    },{
      fqdn: 'sbc.eu.contoso.com',
      sipSignalingPort: 5061
    }
  ]);

Creare o aggiornare route

Specificare le regole di routing per le chiamate in uscita. Ogni regola è costituita da due parti: un modello regex che deve corrispondere a un numero di telefono composto e l'FQDN di un trunk registrato in cui viene instradata la chiamata.

L'ordine delle route determina la priorità delle route. La prima route che corrisponde all'espressione regolare verrà selezionata per una chiamata.

In questo esempio viene creata una route per i numeri che iniziano con +1 e una seconda route per i numeri che iniziano con :+

   await client.setRoutes([
    {
      name: "UsRoute",
      description: "route's description",
      numberPattern: "^\+1(\d{10})$",
      trunks: [ 'sbc.us.contoso.com' ]
    },{
      name: "DefaultRoute",
      description: "route's description",
      numberPattern: "^\+\d+$",
      trunks: [ 'sbc.us.contoso.com', 'sbc.eu.contoso.com']
    }
  ]);

Aggiornare una configurazione di routing diretto

È possibile aggiornare le proprietà di un trunk specifico sovrascrivendo il record con lo stesso FQDN. Ad esempio, è possibile impostare un nuovo valore di porta SBC:

  await client.setTrunk({
    fqdn: 'sbc.us.contoso.com',
    sipSignalingPort: 5063
  });

Usare lo stesso metodo per creare e aggiornare le regole di routing. Quando si aggiornano le route, inviarle tutte in un singolo aggiornamento. La nuova configurazione di routing sovrascrive completamente quella precedente.

Rimuovere una configurazione di routing diretto

Non è possibile modificare o rimuovere una singola route vocale. È necessario sovrascrivere l'intera configurazione del routing vocale. Di seguito è riportato un esempio di elenco vuoto che rimuove tutte le route e i trunk:

//delete all configured voice routes
console.log("Deleting all routes...");
await client.setRoutes([]);

//delete all trunks
console.log("Deleting all trunks...");
await client.setTrunks([]);

È possibile usare l'esempio seguente per eliminare un singolo trunk (SBC), se non vengono usate route vocali. Se il SBC è elencato in qualsiasi route vocale, eliminare prima tale route.

   await client.deleteTrunk('sbc.us.contoso.com');

Eseguire il codice

Usare il node comando per eseguire il codice aggiunto al direct-routing-quickstart.js file:

   node direct-routing-quickstart.js

Prerequisiti

Codice finale

Trovare il codice finalizzato per questa guida introduttiva in GitHub.

È anche possibile trovare altri esempi di utilizzo per SipRoutingClient su GitHub.

Creare un'applicazione Python

Aprire la finestra del terminale o di comando. Creare una nuova directory per l'app e quindi passare a questa directory:

mkdir direct-routing-quickstart && cd direct-routing-quickstart

Usare un editor di testo per creare un file denominato direct_routing_sample.py nella directory radice del progetto e aggiungere il codice seguente:

import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient, SipTrunk, SipTrunkRoute

try:
   print('Azure Communication Services - Direct Routing Quickstart')
   # Quickstart code goes here
except Exception as ex:
   print('Exception:')
   print(ex)

Aggiungere il codice di avvio rapido rimanente nelle sezioni seguenti.

Installare il pacchetto

Mentre si è ancora nella directory dell'applicazione, installare la libreria client di Servizi di comunicazione di Azure Amministrazione istration per Python usando il pip install comando :

pip install azure-communication-phonenumbers==1.1.0

Autenticare il client

Con SipRoutingClientè possibile usare l'autenticazione di Microsoft Entra. L'uso dell'oggetto DefaultAzureCredential è il modo più semplice per iniziare a usare Microsoft Entra ID ed è possibile installarlo usando il pip install comando :

pip install azure-identity

La creazione di un DefaultAzureCredential oggetto richiede l'impostazione AZURE_CLIENT_IDdi , AZURE_CLIENT_SECRETe AZURE_TENANT_ID già impostata come variabili di ambiente con i valori corrispondenti dell'applicazione Microsoft Entra registrata. Per un modo rapido per ottenere queste variabili di ambiente, vedere Eseguire l'autenticazione con Microsoft Entra ID.

Dopo aver installato la azure-identity libreria, è possibile continuare con l'autenticazione del client:

import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Direct Routing Quickstart')
    credential = DefaultAzureCredential()
    sip_routing_client = SipRoutingClient(endpoint, credential)
except Exception as ex:
    print('Exception:')
    print(ex)

In alternativa, è possibile usare l'endpoint e la chiave di accesso dalla risorsa di comunicazione per l'autenticazione:

import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient

# You can find your connection string from your resource in the Azure portal
connection_string = 'https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<YOUR_ACCESS_KEY>'
try:
    print('Azure Communication Services - Direct Routing Quickstart')
    sip_routing_client = SipRoutingClient.from_connection_string(connection_string)
except Exception as ex:
    print('Exception:')
    print(ex)

Configurare una configurazione di routing diretto

Nei prerequisiti è stata verificata la proprietà del dominio. I passaggi successivi sono creare trunk (aggiungere SBC) e creare route vocali.

Creare o aggiornare trunk

Registrare i controller di rete specificando i relativi nomi di dominio e numeri di porta completi:

new_trunks = [SipTrunk(fqdn="sbc.us.contoso.com", sip_signaling_port=1234), SipTrunk(fqdn="sbc.eu.contoso.com", sip_signaling_port=1234)]
sip_routing_client.set_trunks(new_trunks)

Creare o aggiornare route

Specificare le regole di routing per le chiamate in uscita. Ogni regola è costituita da due parti: un modello regex che deve corrispondere a un numero di telefono composto e l'FQDN di un trunk registrato in cui viene instradata la chiamata.

L'ordine delle route determina la priorità delle route. La prima route che corrisponde all'espressione regolare verrà selezionata per una chiamata.

In questo esempio viene creata una route per i numeri che iniziano con +1 e una seconda route per i numeri che iniziano con :+

us_route = SipTrunkRoute(name="UsRoute", description="Handle US numbers '+1'", number_pattern="^\\+1(\\d{10})$", trunks=["sbc.us.contoso.com"])
def_route = SipTrunkRoute(name="DefaultRoute", description="Handle all numbers", number_pattern="^\\+\\d+$", trunks=["sbc.us.contoso.com","sbc.eu.contoso.com"])
new_routes = [us_route, def_route]
sip_routing_client.set_routes(new_routes)

Aggiornare una configurazione di routing diretto

È possibile aggiornare le proprietà di un trunk specifico sovrascrivendo il record con lo stesso FQDN. Ad esempio, è possibile impostare un nuovo valore di porta SBC:

new_trunk = SipTrunk(fqdn="sbc.us.contoso.com", sip_signaling_port=5063)
sip_routing_client.set_trunk(new_trunk)

Usare lo stesso metodo per creare e aggiornare le regole di routing. Quando si aggiornano le route, inviarle tutte in un singolo aggiornamento. La nuova configurazione di routing sovrascrive completamente quella precedente.

Rimuovere una configurazione di routing diretto

Non è possibile modificare o rimuovere una singola route vocale. È necessario sovrascrivere l'intera configurazione del routing vocale. Di seguito è riportato un esempio di elenco vuoto che rimuove tutte le route e i trunk:

#delete all configured voice routes
print('Deleting all routes...')
sip_routing_client.set_routes([])

#delete all trunks
print('Deleting all trunks...')
sip_routing_client.set_trunks([])

È possibile usare l'esempio seguente per eliminare un singolo trunk (SBC), se non vengono usate route vocali. Se il SBC è elencato in qualsiasi route vocale, eliminare prima tale route.

sip_routing_client.delete_trunk("sbc.us.contoso.com")

Eseguire il codice

Da un prompt della console passare alla directory che contiene il file direct_routing_sample.py . Eseguire quindi il comando Python seguente per eseguire l'app:

python direct_routing_sample.py

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: