Dela via


Snabbstart: Konfigurera röstdirigering programmatiskt

Konfigurera utgående dirigeringsregler för röst för Azure Communication Services direktroutning.

Förutsättningar

Kommentar

Du hittar fler användningsexempel för SipRoutingClientGitHub.

Lägga till en sessionsgränskontrollant

  1. I den vänstra rutan, under Röstsamtal – PSTN, väljer du Direkt routning. På fliken Sessionsgränskontrollant väljer du Konfigurera.

  2. Ange ett FQDN och en signalport för SBC. Krav för SBC FQDN omfattar:

    • Domändelen av FQDN måste verifieras innan du kan lägga till den i din direktdirigeringskonfiguration, som tidigare nämnts i förhandskraven.
    • SBC-certifikatet måste matcha namnet. Jokerteckencertifikat stöds.
    • Du kan inte använda domänerna *.onmicrosoft.com och *.azure.com för det fullständiga domännamnet.

    En fullständig lista över krav finns i Infrastrukturkrav för direktdirigering i Azure.

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

  3. Välj Nästa. Om allt är korrekt konfigurerat bör du se statusen för SBC som aktiv i Azure-portalen.

    Screenshot of SBC connection properties.

Viktigt!

Kontrollera att SBC-statusen är Online innan du ringer eller tar emot samtal

Skapa regler för röstdirigering

Screenshot of outgoing voice routing configuration.

Ge röstvägen ett namn, ange talmönstret med hjälp av reguljära uttryck och välj SBC för det mönstret. Här följer några exempel på grundläggande reguljära uttryck:

  • ^\+\d+$: Matchar ett telefonnummer med en eller flera siffror som börjar med ett plus.
  • ^\+1(\d{10})$: Matchar ett telefonnummer med 10 siffror efter +1.
  • ^\+1(425|206)(\d{7})$: Matchar ett telefonnummer som börjar med +1425 eller med +1206följt av sju siffror.
  • ^\+0?1234$: Matchar både +01234 telefonnummer och +1234 telefonnummer.

Mer information om reguljära uttryck finns i Översikt över reguljära .NET-uttryck.

Du kan välja flera SBC:er för ett enda mönster. I sådana fall väljer routningsalgoritmen dem i slumpmässig ordning. Du kan också ange det exakta nummermönstret mer än en gång. Den högre raden har högre prioritet. Om alla SBC:er som är associerade med den raden inte är tillgängliga väljs nästa rad. På så sätt skapar du komplexa routningsscenarier.

Ta bort en direktdirigeringskonfiguration

Så här tar du bort en röstväg:

  1. I den vänstra rutan, under Röstsamtal – PSTN, går du till Direktdirigering.
  2. På fliken Röstvägar markerar du kryssrutorna för den väg (eller de vägar) som du vill ta bort.
  3. Välj Ta bort.

Så här tar du bort en SBC:

  1. I den vänstra rutan, under Röstsamtal – PSTN, går du till Direktdirigering.
  2. På fliken Sessionsgränskontrollanter väljer du Konfigurera.
  3. Rensa FQDN- och portfälten för den SBC som du vill ta bort och välj sedan Nästa.
  4. På fliken Röstvägar granskar du konfigurationen för röstdirigering. Gör ändringar om det behövs och välj sedan Spara.

När du tar bort en SBC som är associerad med en röstväg kan du välja en annan SBC för vägen på fliken Röstvägar . Röstvägen utan SBC tas bort.

Förutsättningar

Den slutliga koden

Hitta den färdiga koden för den här snabbstarten på GitHub.

Du kan också hitta fler användningsexempel för SipRoutingClientGitHub.

Skapa ett C#-program

I ett konsolfönster (till exempel Kommandotolken, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp:

    dotnet new console -o DirectRoutingQuickstart

Det här kommandot skapar ett enkelt "Hello World" C#-projekt med en enda källfil: Program.cs.

Ändra katalogen till den nyligen skapade appmappen dotnet build och använd kommandot för att kompilera programmet:

    cd DirectRoutingQuickstart
    dotnet build

Installera -paketet

När du fortfarande är i programkatalogen installerar du Azure Communication Telefon Numbers-klientbiblioteket för .NET med hjälp dotnet add package av kommandot :

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

Lägg till ett using direktiv överst i Program.cs för att inkludera namnrymderna:

using Azure.Communication.PhoneNumbers.SipRouting;

Autentisera klienten

Autentisera telefonnummerklienter med hjälp av en anslutningssträng från en Azure Communication Services-resurs:

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

Konfigurera en direktdirigeringskonfiguration

I förutsättningarna verifierade du domänägarskapet. Nästa steg är att skapa trunkar (lägga till SBCs) och skapa röstvägar.

Skapa eller uppdatera trunkar

Azure Communication Services-direktdirigering tillåter endast kommunikation med registrerade SBA:er. För att registrera en SBC behöver du dess FQDN och port:

// 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 });

Skapa eller uppdatera vägar

Ange routningsregler för utgående anrop. Varje regel består av två delar: ett regexmönster som ska matcha ett uppringt telefonnummer och FQDN för en registrerad stam där samtalet dirigeras.

Ordningen på vägar avgör prioriteten för vägar. Den första vägen som matchar regexen väljs för ett anrop.

I det här exemplet skapar du en väg för tal som börjar med +1 och en andra väg för tal som börjar med bara +:

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 });

Uppdatera en direktdirigeringskonfiguration

Du kan uppdatera egenskaperna för en specifik stam genom att skriva över posten med samma FQDN. Du kan till exempel ange ett nytt SBC-portvärde:

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

Du använder samma metod för att skapa och uppdatera routningsregler. När du uppdaterar vägar skickar du alla i en enda uppdatering. Den nya routningskonfigurationen skriver över den tidigare.

Ta bort en direktdirigeringskonfiguration

Du kan inte redigera eller ta bort en enda röstväg. Du bör skriva över hela röstdirigeringskonfigurationen. Här är ett exempel på en tom lista som tar bort alla vägar och stammar:

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

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

Du kan använda följande exempel för att ta bort en enda stam (SBC), om inga röstvägar använder den. Om SBC visas i någon röstväg tar du först bort den vägen.

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

Förutsättningar

Den slutliga koden

Hitta den färdiga koden för den här snabbstarten på GitHub.

Du kan också hitta fler användningsexempel för SipRoutingClientGitHub.

Skapa ett Java-program

Öppna terminalen eller kommandofönstret. Gå till katalogen där du vill skapa ditt Java-program. Kör sedan kommandot för att generera Java-projektet från mallen maven-archetype-quickstart :

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

Uppgiften generate skapade en katalog med samma namn som värdet artifactId . Under den här katalogen innehåller katalogen src/main/java projektets källkod, katalogen src/test/java innehåller testkällan och pom.xml-filen är projektets projektobjektmodell (POM).

Installera -paketet

Öppna pom.xml-filen i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden:

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

Konfigurera appramverket

Från projektkatalogen:

  1. Gå till katalogen /src/main/java/com/communication/quickstart .
  2. Öppna filen App.java i redigeringsprogrammet.
  3. Ersätt -instruktionen System.out.println("Hello world!"); .
  4. Lägg till import direktiv.

Börja med följande kod:

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
    }
}

Autentisera klienten

Med SipRoutingClientBuilderkan du använda Microsoft Entra-autentisering:

// 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();

Du kan också använda slutpunkten och åtkomstnyckeln från kommunikationsresursen för att autentisera:

// 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();

Konfigurera en direktdirigeringskonfiguration

I förutsättningarna verifierade du domänägarskapet. Nästa steg är att skapa trunkar (lägga till SBCs) och skapa röstvägar.

Skapa eller uppdatera trunkar

Azure Communication Services-direktdirigering tillåter endast kommunikation med registrerade SBA:er. För att registrera en SBC behöver du dess FQDN och port:

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

Skapa eller uppdatera vägar

Ange routningsregler för utgående anrop. Varje regel består av två delar: ett regexmönster som ska matcha ett uppringt telefonnummer och FQDN för en registrerad stam där samtalet dirigeras.

Ordningen på vägar avgör prioriteten för vägar. Den första vägen som matchar regexen väljs för ett anrop.

I det här exemplet skapar du en väg för tal som börjar med +1 och en andra väg för tal som börjar med bara +:

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();

Uppdatera en direktdirigeringskonfiguration

Du kan uppdatera egenskaperna för en specifik stam genom att skriva över posten med samma FQDN. Du kan till exempel ange ett nytt SBC-portvärde:

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

Du använder samma metod för att skapa och uppdatera routningsregler. När du uppdaterar vägar skickar du alla i en enda uppdatering. Den nya routningskonfigurationen skriver över den tidigare.

Ta bort en direktdirigeringskonfiguration

Du kan inte redigera eller ta bort en enda röstväg. Du bör skriva över hela röstdirigeringskonfigurationen. Här är ett exempel på en tom lista som tar bort alla vägar och trunkar.

Lägg till två importer:

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

Använd följande kod för att ta bort en direkt routningskonfiguration:

//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();

Du kan använda följande exempel för att ta bort en enda stam (SBC), om inga röstvägar använder den. Om SBC visas i någon röstväg tar du först bort den vägen.

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

Kör koden

Gå till katalogen som innehåller pom.xml-filen och kompilera projektet med hjälp av följande mvn kommando:

  mvn clean compile

Skapa sedan paketet:

  mvn package

Kör följande mvn kommando för att köra appen:

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

Förutsättningar

Den slutliga koden

Hitta den färdiga koden för den här snabbstarten på GitHub.

Du kan också hitta fler användningsexempel för SipRoutingClientGitHub.

Skapa ett Node.js-program

Öppna terminalen eller kommandofönstret, skapa en ny katalog för din app och gå till den:

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

Kör npm init -y för att skapa en package.json-fil med standardinställningar:

   npm init -y

Skapa en fil med namnet direct-routing-quickstart.js i roten för den katalog som du skapade. Lägg till följande kodfragment i det:

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

main();

Installera -paketet

npm install Använd kommandot för att installera Klientbiblioteket för Azure Communication Services Telefon Numbers för JavaScript:

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

Alternativet --save lägger till biblioteket som ett beroende i filen package.json .

Autentisera klienten

Importera SipRoutingClient från klientbiblioteket och instansiera det med din anslutningssträng. Koden hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING. Lär dig hur du hanterar resursens anslutningssträng.

Lägg till följande kod i 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);

Konfigurera en direktdirigeringskonfiguration

I förutsättningarna verifierade du domänägarskapet. Nästa steg är att skapa trunkar (lägga till SBCs) och skapa röstvägar.

Skapa eller uppdatera trunkar

Azure Communication Services-direktdirigering tillåter endast kommunikation med registrerade SBA:er. För att registrera en SBC behöver du dess FQDN och port:

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

Skapa eller uppdatera vägar

Ange routningsregler för utgående anrop. Varje regel består av två delar: ett regexmönster som ska matcha ett uppringt telefonnummer och FQDN för en registrerad stam där samtalet dirigeras.

Ordningen på vägar avgör prioriteten för vägar. Den första vägen som matchar regexen väljs för ett anrop.

I det här exemplet skapar du en väg för tal som börjar med +1 och en andra väg för tal som börjar med bara +:

   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']
    }
  ]);

Uppdatera en direktdirigeringskonfiguration

Du kan uppdatera egenskaperna för en specifik stam genom att skriva över posten med samma FQDN. Du kan till exempel ange ett nytt SBC-portvärde:

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

Du använder samma metod för att skapa och uppdatera routningsregler. När du uppdaterar vägar skickar du alla i en enda uppdatering. Den nya routningskonfigurationen skriver över den tidigare.

Ta bort en direktdirigeringskonfiguration

Du kan inte redigera eller ta bort en enda röstväg. Du bör skriva över hela röstdirigeringskonfigurationen. Här är ett exempel på en tom lista som tar bort alla vägar och stammar:

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

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

Du kan använda följande exempel för att ta bort en enda stam (SBC), om inga röstvägar använder den. Om SBC visas i någon röstväg tar du först bort den vägen.

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

Kör koden

node Använd kommandot för att köra koden som du lade till i direct-routing-quickstart.js filen:

   node direct-routing-quickstart.js

Förutsättningar

Den slutliga koden

Hitta den färdiga koden för den här snabbstarten på GitHub.

Du kan också hitta fler användningsexempel för SipRoutingClientGitHub.

Skapa ett Python-program

Öppna terminalen eller kommandofönstret. Skapa en ny katalog för din app och gå sedan till den:

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

Använd en textredigerare för att skapa en fil med namnet direct_routing_sample.py i projektrotkatalogen och lägg till följande kod:

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)

Du lägger till den återstående snabbstartskoden i följande avsnitt.

Installera -paketet

När du fortfarande är i programkatalogen installerar du Azure Communication Services Administration-klientbiblioteket för Python med hjälp pip install av kommandot :

pip install azure-communication-phonenumbers==1.1.0

Autentisera klienten

Med SipRoutingClientkan du använda Microsoft Entra-autentisering. DefaultAzureCredential Det enklaste sättet att komma igång med Microsoft Entra-ID är att använda objektet, och du kan installera det med hjälp pip install av kommandot :

pip install azure-identity

Om du skapar ett DefaultAzureCredential objekt måste du ha AZURE_CLIENT_ID, AZURE_CLIENT_SECREToch AZURE_TENANT_ID redan angett som miljövariabler med motsvarande värden från ditt registrerade Microsoft Entra-program. Ett snabbt sätt att hämta dessa miljövariabler finns i Autentisera med Microsoft Entra-ID.

När du har installerat azure-identity biblioteket kan du fortsätta med att autentisera klienten:

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)

Du kan också använda slutpunkten och åtkomstnyckeln från kommunikationsresursen för att autentisera:

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)

Konfigurera en direktdirigeringskonfiguration

I förutsättningarna verifierade du domänägarskapet. Nästa steg är att skapa trunkar (lägga till SBCs) och skapa röstvägar.

Skapa eller uppdatera trunkar

Registrera dina SBCs genom att ange deras fullständigt kvalificerade domännamn och portnummer:

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)

Skapa eller uppdatera vägar

Ange routningsregler för utgående anrop. Varje regel består av två delar: ett regexmönster som ska matcha ett uppringt telefonnummer och FQDN för en registrerad stam där samtalet dirigeras.

Ordningen på vägar avgör prioriteten för vägar. Den första vägen som matchar regexen väljs för ett anrop.

I det här exemplet skapar du en väg för tal som börjar med +1 och en andra väg för tal som börjar med bara +:

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)

Uppdatera en direktdirigeringskonfiguration

Du kan uppdatera egenskaperna för en specifik stam genom att skriva över posten med samma FQDN. Du kan till exempel ange ett nytt SBC-portvärde:

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

Du använder samma metod för att skapa och uppdatera routningsregler. När du uppdaterar vägar skickar du alla i en enda uppdatering. Den nya routningskonfigurationen skriver över den tidigare.

Ta bort en direktdirigeringskonfiguration

Du kan inte redigera eller ta bort en enda röstväg. Du bör skriva över hela röstdirigeringskonfigurationen. Här är ett exempel på en tom lista som tar bort alla vägar och stammar:

#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([])

Du kan använda följande exempel för att ta bort en enda stam (SBC), om inga röstvägar använder den. Om SBC visas i någon röstväg tar du först bort den vägen.

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

Kör koden

Från en konsolprompt går du till katalogen som innehåller filen direct_routing_sample.py . Kör sedan följande Python-kommando för att köra appen:

python direct_routing_sample.py

Rensa resurser

Om du vill rensa och ta bort en Communication Services-prenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort. Läs mer om att rensa resurser.

Nästa steg

Mer information finns i följande artiklar: