Share via


Etablerings-API för Azure Communications Gateway

Med Azure Communications Gateways etablerings-API för telekommunikationsoperatörer kan du etablera information om dina kunder och de nummer som tilldelats dem till Azure Communications Gateway (ACG). Etablerings-API:et stöder även genomströmningsetablering av vissa serverdelskommunikationstjänster.

Etablering av kunder och nummer är obligatoriskt (med etablerings-API:et eller den webbläsarbaserade nummerhanteringsportalen) för alla användningsfall förutom Operator Connect och Teams-telefon Mobile. För Operator Connect och Teams-telefon Mobile är det valfritt att använda etablerings-API:et och/eller nummerhanteringsportalen och du kan integrera direkt med API:et för operatoranslutning i stället.

Komma igång

Förutsättningar

  • En klientorganisation med Azure Communications Gateway-programmet distribuerat.
  • Det fullständigt kvalificerade domännamnet (FQDN) för din Azure Communications Gateway som visas på sidan Översikt för resursen i Azure Portal. API:et är tillgängligt på port 443 i provapi.<base-domain>.
  • En dator med en IP-adress som tillåter åtkomst till API:et, enligt konfigurationen i en tillåten lista som en del av distributionen av Azure Communications Gateway.

Autentisering och auktorisering

Etablerings-API:et använder OAuth 2.0 för att styra åtkomsten till resurser. Klientprogrammet måste hämta en giltig autentiserings ägartoken för att få åtkomst till etablerings-API:et. Ägartoken anger att programmet har behörighet för ett eller flera av omfången (rollerna) för etablerings-API:et. Vi rekommenderar att du använder flödet för klientautentiseringsuppgifter (utformat för en process på serversidan).

Följande omfång är tillgängliga för etablerings-API:et:

  • ProvisioningAPI.Admin: Möjlighet att anropa alla åtgärder i API:et.
  • ProvisioningAPI.Read: Möjlighet att anropa alla läsåtgärder (GET) i API:et.
  • ProvisioningAPI.Write: Möjlighet att anropa alla skrivåtgärder (PUT, PATCH) i API:et.
  • ProvisioningAPI.Delete: Möjlighet att anropa alla borttagningsåtgärder (DELETE) i API:et.

Så här konfigurerar du ett flöde för klientautentiseringsuppgifter:

  1. Kontrollera att ditt program kan stödja flödet för klientautentiseringsuppgifter.
    • När ditt program begär en token för etablerings-API:et måste det använda följande fält.

      Parameter Villkor Description
      tenant krävs Katalogklientorganisationen som innehåller Azure Communications Gateway, i guid- eller domännamnsformulär.
      omfång krävs Auktoriseringens omfattning mot Resurs-ID:t för Azure Communications Gateway. För det flöde för klientautentiseringsuppgifter som beskrivs här bör omfånget vara https://func-voiceservice-rp-prod-eastuseuap.azurewebsites.net/.default.
      client_id krävs Det program-ID (klient)-ID som tilldelats din app.
    • Anspråket roles i den mottagna token anger de roller (omfång) som klientprogrammet har behörighet att komma åt.

    • Begäranden till Azure Communications Gateway Provisioning Platform måste ha ett Authorization huvud med den här ägartoken.

    • I flödesdokumentationen för klientautentiseringsuppgifter finns exempel på hur du använder token.

  2. Använd Azure Portal för att registrera programmet i samma klientorganisation som din Azure Communications Gateway-distribution. Se Snabbstart: Registrera en app i Microsofts identitetsplattform – Microsoft Entra | Microsoft Learn.
  3. Tilldela dig själv som ägare för appregistreringen. Se Tilldela programägare.
  4. Konfigurera appregistreringen som skapats genom att registrera programmet med approller som använder omfången för etablerings-API:et enligt beskrivningen tidigare.
    • Se Tilldela approller till program.
    • DET API som du behöver tilldela behörigheter för är AzureCommunicationsGateway, som visas under API:er som min organisation använder.
  5. Som administratör för klientorganisationen tillåter du att programmet använder de approller som du har tilldelat. Se Bevilja administratörsmedgivande.

Etablerings-API:et använder Microsofts standardkedjor med förtroende för säkerhetscertifikat.

Viktiga begrepp

Etableringsplattformen har tre viktiga resurser som operatören kan hantera: konton, siffror och begäranden om information.

  • Kontoresurser är beskrivningar av operatörskunder (vanligtvis ett företag) och inställningar per kund för tjänstetablering.
  • Nummerresurser tillhör ett konto. De beskriver siffror, de tjänster (till exempel Microsoft Teams Direct Routing) som numren använder och eventuell extra konfiguration per nummer.
  • RFI-resurser (Request for Information) är beskrivningar av potentiella kunder för operatörer som uttrycker intresse för att ta emot tjänster från operatören via specifika serverdelstjänster. För närvarande är endast RFI:er som skapats från Operator Connect och Teams-telefon Mobile-medgivanden tillgängliga.

Om du till exempel vill tillhandahålla Microsoft Teams direktdirigeringstjänst till en kund, Contoso, skapar du en kontoresurs med etablerings-API:et för Contoso. Kontot innehåller konfiguration för direktdirigering (till exempel en underdomän och motsvarande token som krävs för att konfigurera DNS-poster som Microsoft Teams kan använda för att verifiera kundens konfiguration). Du måste sedan lägga till nummerresurser i kontot och aktivera varje nummer för direktdirigering.

Tips

Du måste aktivera tjänsten för både kontot och siffrorna i kontot.

Etablera serverdelstjänster med serverdelstjänstsynkronisering

Azure Communications Gateway måste ha information om de nummer som den tillhandahåller tjänsten till för att kunna ansluta samtal korrekt. Vi rekommenderar Azure Communications Gateway-etablerings-API:et för att tillhandahålla den här informationen till Azure Communications Gateway, men du kan också använda nummerhanteringsportalen. De flesta serverdelstjänster måste också etableras med information om de siffror och konton som ska användas. Det här kravet innebär ofta att flera IT-integreringsprojekt behövs för att aktivera nya tjänster. Azure Communications Gateway-etableringsplattformen har integrerats i förväg med vissa serverdelstjänster för att etablera dem åt dig, vilket minskar dina IT-integreringskrav. Du kan använda den här funktionen genom att aktivera synkronisering av serverdelstjänsten för relevanta tjänster. Det innebär också att all IT-integrering till Azure Communications Gateway-etableringsplattformen kan återanvändas för andra serverdelstjänster.

Operator Connect kräver till exempel att alla nummer laddas upp via API:et för Operator Connect. Om synkronisering av serverdelstjänsten är aktiverad för Operator Connect etableras alla nummer som etableras på Azure Communications Gateway och aktiveras för Operator Connect automatiskt i Operator Connect, vilket innebär att du inte behöver integrera med Operator Connect-API:et.

Etablering via Azure Communications Gateway-etableringsplattformen är valfritt för vissa tjänster där Azure Communications Gateway kan hämta information direkt från serverdelen. Vissa funktioner, till exempel tillägg av kund-SIP-huvuden för faktureringsändamål, är dock inte tillgängliga. För tjänster som inte stöder synkronisering av serverdelstjänsten kan annan IT-integrering krävas direkt till serverdelstjänsten. Status för etableringsstöd beskrivs i följande tabell:

Serverdelstjänst Krav på etablering via ACG Provisioning Platform Etablering av serverdelstjänsten stöds
Direktroutning Obligatorisk
Zoom Obligatorisk
Azure Operator Call Protection Obligatorisk
Operatoranslutning Valfritt
Teams-telefon Mobile Valfritt

Synkronisering till serverdelstjänster är asynkron, vilket innebär att din etableringsbegäran kan lyckas innan serverdelstjänsten har etablerats. Den här statusen är signerad i API-svaret med fältet serviceProvisioningStatus inställt på pending. Vi rekommenderar att du frågar objektet för att kontrollera dess etableringsstatus tills fältet har angetts till success. Eventuella fel vid etablering av serverdelssystemet görs tillgängliga i svaret direkt.

Exempel

I följande exempel visas exempelbegäranden för hantering av RFI:er, konton och siffror.

Skapa ett konto som representerar en kund

Använd PUT på accounts/<accountName> slutpunkten för att skapa ett konto med namnet contoso för kunden Contoso och konfigurera en eller flera kommunikationstjänster för kontot. Använd ett If-None-Match-huvud för att kontrollera att en kontoresurs med det här namnet inte redan finns.

Se följande exempel:

  • Direktroutning har konfigurerats.
  • Visning av nummerpresentation är aktiverat (standard).
  • Underdomänen för kunden är contoso.
  • De DNS TXT-värden som tillhandahålls av kunden för att konfigurera DNS-poster finns i fälten region1Token och region2Token .

Begäran:

PUT /accounts/contoso?api-version=2024-02-29 HTTP/1.1
{
  "name": "contoso",
  "serviceDetails": {
    "teamsDirectRouting": {
      "syncEnabled": true,
      "enabled": true,
      "configuration": {
        "callScreening": true,
        "subdomain": "contoso",
        "subdomainTokens": {
          "region1Token": "region1TokenValue",
          "region2Token": "region2TokenValue"
        }
      }
    }
  }
}

Svar:

{
  "serviceProvisioningStatus": "synced",
  "serviceProvisioningErrors": null,
  "name": "contoso",
  "serviceDetails": {
    "teamsDirectRouting": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0,
      "configuration": {
        "callScreening": true,
        "subdomain": "contoso",
        "subdomainTokens": {
          "region1Token": "region1TokenValue",
          "region2Token": "region2TokenValue"
        }
      },
      "subdomainStatus": "provisioned"
    },
  }
}

I följande exempel skapar vi ett konto för användning med endast Teams Operator Connect, med serverdelssynkronisering aktiverad så att information om det här kontot (till exempel uppladdade nummer) också etableras i Teams:

Begäran:

PUT /accounts/contoso?api-version=2024-02-29 HTTP/1.1
{
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": true,
      "enabled": true
    },
  }
}

Svar:

{
  "serviceProvisioningStatus": "pending",
  "serviceProvisioningErrors": null,
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0
    }
  }
}

Visa information om kontot

Använd GET på accounts/<accountName> slutpunkten för att hämta information om kontot. Svaret innehåller följande fält:

  • All konfiguration som angetts tidigare (eller standardvärdet, om ett fält inte har angetts).
  • Antalet prenumeranter för var och en av de tjänster som är tillgängliga i ACG.
  • Status för etablering av serverdelstjänsten, om den är aktiverad.
  • subdomainStatus, som representerar tillståndet för DNS-postetablering, endast relevant för direktroutning.
  • En ETag rubrik som representerar kontots aktuella tillstånd. Du kan använda värdet i en If-Match rubrik för efterföljande uppdateringsbegäranden för att säkerställa att du inte skriver över ändringar som gjorts av andra API-användare.

Begäran:

GET /accounts/contoso?api-version=2024-02-29 HTTP/1.1

Svar:

ETag: 12345
{
  "serviceProvisioningStatus": "synced",
  "serviceProvisioningErrors": null,
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0
    },
  }
}

Motsvarande begäran om kontot har flera konfigurerade tjänster visas på följande sätt:

Begäran:

GET /accounts/contoso?api-version=2024-02-29 HTTP/1.1

Svar:

ETag: 12345
{
  "serviceProvisioningStatus": "synced",
  "serviceProvisioningErrors": null,
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": true,
      "enabled": true
    },
    "teamsDirectRouting": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0,
      "configuration": {
        "callScreening": true,
        "subdomain": "contoso",
        "subdomainTokens": {
          "region1Token": "region1",
          "region2Token": "region2"
        }
      },
      "subdomainStatus": "provisioned"
    },
  }
}

Uppdatera konfigurationen för kontot

Använd PUT på accounts/<accountName> slutpunkten för att uppdatera konfigurationen för kontot. För att säkerställa att uppdateringen inte skriver över en ändring som gjorts av en annan användare lägger du till en If-Match rubrik med ETag från det senaste svaret för kontot.

Begäran:

PUT /accounts/contoso?api-version=2024-02-29 HTTP/1.1
ETag: 12345
{
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": false,
      "enabled": true
    },
    "teamsDirectRouting": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0,
      "configuration": {
        "callScreening": true,
        "subdomain": "contoso",
        "subdomainTokens": {
          "region1Token": "region1",
          "region2Token": "region2"
        }
      },
      "subdomainStatus": "provisioned"
    },
  }
}

Svar:

ETag: 56789
{
  "serviceProvisioningStatus": "pending",
  "serviceProvisioningErrors": null,
  "name": "contoso",
  "serviceDetails": {
    "teamsTenantId": "tenantIdString",
    "teamsOperatorConnect": {
      "syncEnabled": false,
      "enabled": true
    },
    "teamsDirectRouting": {
      "syncEnabled": true,
      "enabled": true,
      "numberCount": 0,
      "configuration": {
        "callScreening": true,
        "subdomain": "contoso",
        "subdomainTokens": {
          "region1Token": "region1",
          "region2Token": "region2"
        }
      },
      "subdomainStatus": "provisioned"
    },
  }
}

Lägg till ett tal i kontot

Använd PUT på account/<accountName>/numbers/<telephoneNumber> slutpunkten för att lägga till ett nummer i kontot, aktivera en eller flera kommunikationstjänster och lägga till andra konfigurationer. De valda kommunikationstjänsterna måste också konfigureras för kontot. Använd ett If-None-Match-huvud för att kontrollera att det inte redan finns en talresurs med det här talet. Alla tal måste skapas i E.164-format.

Se följande exempel:

  • Talet är +123451.
  • Operatoranslutning är aktiverat.
  • Den konfiguration som krävs för att ladda upp numret till Operator Connect tillhandahålls
  • customSipHeader anger att Azure Communications Gateway ska lägga till en rubrik med värdet exampleHeaderContents för meddelanden som skickas till operatörsnätverket. Namnet på rubriken anges som en del av distributionen av Azure Communications Gateway.
  • Fältet serviceProvisioningStatus i svaret visar status för synkroniseringen till serverdelstjänsten.
PUT /accounts/contoso/numbers/+123451?api-version=2024-02-29 HTTP/1.1
{
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "configuration": {
        "usage": "CallingUserAssignment",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Svar:

{
  "serviceProvisioningStatus": "pending",
  "serviceProvisioningErrors": null,
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "assignmentStatus": "assigned",
      "configuration": {
        "usage": "CallingUserAssignment",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Kontrollera etableringsstatus efter en viss tid

Använd GET på account/<accountName>/numbers/<telephoneNumber> efter en etableringsåtgärd för att kontrollera numrets status. Om numret har etablerats uppdateras fältet serviceProvisioningStatus från pending till synced.

Begäran:

GET /accounts/contoso/numbers/+123451?api-version=2024-02-29 HTTP/1.1

Svar:

{
  "serviceProvisioningStatus": "synced",
  "serviceProvisioningErrors": null,
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "assignmentStatus": "assigned",
      "configuration": {
        "usage": "CallingUserAssignment",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Fel vid etablering av serverdelstjänst för uppladdning av ett nummer

I det här exemplet returnerar serverdelsetablering när du laddar upp numret ett fel, vilket återspeglas i svaret. Felmeddelanden skickas transparent från serverdelstjänster.

Anteckning

Initialt när du etablerar ett tal har pending det status, som måste frågas igen för att bekräfta lyckat/misslyckat.

Den ursprungliga begäran, som saknar ett värde för fältet usage :

PUT /accounts/contoso/numbers/+123451?api-version=2024-02-29 HTTP/1.1
{
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "configuration": {
        "usage": "",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Svar från GET-fråga efter en stund:

{  
  "serviceProvisioningStatus": "failed",
  "serviceProvisioningErrors": [
    {
      "code": "InvalidRequest",
      "message": "Invalid/missing required configuration attributes: Usage",
      "target": "oc",
    }
  ],
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "assignmentStatus": "assigned",
      "configuration": {
        "usage": "",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }

Uppdatera konfigurationen för ett tal

Använd PUT på account/<accountName>/numbers/<telephoneNumber> slutpunkten för att uppdatera konfigurationen för ett tal. För att säkerställa att uppdateringen inte skriver över en ändring som gjorts av en annan användare lägger du till ett If-Match-huvud med ETag från det senaste svaret för numret.

Begäran:

PUT /accounts/contoso/numbers/+123451?api-version=2024-02-29 HTTP/1.1
ETag: 123
{
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "configuration": {
        "usage": "CallingUserAssignment",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling",
          "Mobile"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Svar:

{
  "serviceProvisioningStatus": "pending",
  "serviceProvisioningErrors": null,
  "telephoneNumber": "+123451",
  "accountName": "contoso",
  "serviceDetails": {
    "teamsOperatorConnect": {
      "enabled": true,
      "assignmentStatus": "assigned",
      "configuration": {
        "usage": "CallingUserAssignment",
        "choosableCapabilities": [
          "InboundCalling",
          "OutboundCalling",
          "Mobile"
        ],
        "civicAddressId": "civicAddressIdString",
        "allowTenantAddressUpdate": true,
      }
    },
  },
  "configuration": {
    "customSipHeader": "exampleHeaderContents"
  }
}

Visa en lista över begäranden om information

Använd en GET på /teamsRequestsForInformation slutpunkten för att hämta en lista över Teams-medgivanden som har skickats till dig av potentiella kunder.

Begäran:

GET /teamsRequestsForInformation?api-version=2024-02-29 HTTP/1.1

Svar:

{
  "value": [
    {
      "serviceProvisioningStatus": "synced",
      "serviceProvisioningErrors": null,
      "id": "contoso",
      "tenantId": "contosoTenantId",
      "accountName": "contoso",
      "productContext": "teams",
      "operatorId": "string",
      "status": "active",
      "consentedOn": "2024-05-07T11:15:10.519Z",
      "lastModifiedOn": "2024-05-07T11:15:10.519Z",
      "consentedCountries": [
        "string"
      ],
      "contacts": [
        {
          "fullName": "Example Name",
          "email": "example@contoso.com",
          "telephoneNumber": "+1234567890",
          "companyName": "contoso",
          "companySize": "size"
        }
      ],
      "customerRelationship": {
        "status": "example status",
        "lastModifiedOn": "2024-05-07T11:15:10.520Z",
        "comment": "example comment"
      }
    },
    {
      "serviceProvisioningStatus": "synced",
      "serviceProvisioningErrors": null,
      "id": "contoso2",
      "tenantId": "contosoTenantId2",
      "accountName": "contoso2",
      "productContext": "teams",
      "operatorId": "string",
      "status": "active",
      "consentedOn": "2024-05-07T11:15:10.519Z",
      "lastModifiedOn": "2024-05-07T11:15:10.519Z",
      "consentedCountries": [
        "string"
      ],
      "contacts": [
        {
          "fullName": "Example Name2",
          "email": "example@contoso2.com",
          "telephoneNumber": "+1234567891",
          "companyName": "contoso2",
          "companySize": "size"
        }
      ],
      "customerRelationship": {
        "status": "example status",
        "lastModifiedOn": "2024-05-07T11:15:10.520Z",
        "comment": "example comment"
      }
    },
    ... // more RFIs
  ],
  "nextLink": "string"
}

Uppdatera en begäran om information

Använd PATCH på /teamsRequestsForInformation/<tenantID> slutpunkten för att uppdatera RFI-statusen, som återspeglas i serverdelstjänsten. Med operatorn Anslut och Teams-telefon Mobile kan du ange status för begäran tillbaka till slutkunden så att den uppdaterade statusen visas i kundens Teams Admin Center.

Förfrågan

PATCH /teamsRequestsForInformation/contosoTenantId
{
  "customerRelationship": {
    "status": "new status",
    "comment": "new comment"
  }
}

Svarsåtgärder

{
    {
      "serviceProvisioningStatus": "pending",
      "serviceProvisioningErrors": null,
      "id": "contoso",
      "tenantId": "contosoTenantId",
      "accountName": "contoso",
      "productContext": "teams",
      "operatorId": "string",
      "status": "active",
      "consentedOn": "2024-05-07T11:15:10.519Z",
      "lastModifiedOn": "2024-05-07T11:15:10.519Z",
      "consentedCountries": [
        "string"
      ],
      "contacts": [
        {
          "fullName": "Example Name",
          "email": "example@contoso.com",
          "telephoneNumber": "+1234567890",
          "companyName": "contoso",
          "companySize": "size"
        }
      ],
      "customerRelationship": {
        "status": "new status",
        "lastModifiedOn": "2024-05-07T12:15:10.520Z",
        "comment": "new comment"
      }
    }
}

Visa en lista över alla nummer som tilldelats till ett konto

Använd en GET-begäran på /accounts/<accountName>/numbers slutpunkten för att hämta en lista över de nummer som har etablerats för det kontot.

Begäran:

GET /accounts/contoso/numbers?api-version=2024-02-29 HTTP/1.1

Svar för ett konto med endast Operator Connect-nummer:

{
  "value": [
    {
      "serviceProvisioningStatus": "pending",
      "serviceProvisioningErrors": null,
      "telephoneNumber": "+123451",
      "accountName": "contoso",
      "serviceDetails": {
        "teamsOperatorConnect": {
          "enabled": true,
          "assignmentStatus": "assigned",
          "configuration": {
            "usage": "CallingUserAssignment",
            "choosableCapabilities": [
              "InboundCalling",
              "OutboundCalling",
              "Mobile"
            ],
            "civicAddressId": "civicAddressIdString",
            "allowTenantAddressUpdate": true,
          }
        },
      },
      "configuration": {
        "customSipHeader": "exampleHeaderContents"
      }
    },
    ... // more OC numbers
  ],
  nextLink: "string"
}

Svar för ett konto med både Operator Connect- och Direct Routing-nummer etablerade:

{
  "value": [
    {
      "serviceProvisioningStatus": "synced",
      "serviceProvisioningErrors": null,
      "telephoneNumber": "+123451",
      "accountName": "contoso",
      "serviceDetails": {
        "teamsOperatorConnect": {
          "enabled": true,
          "assignmentStatus": "assigned",
          "configuration": {
            "usage": "CallingUserAssignment",
            "choosableCapabilities": [
              "InboundCalling",
              "OutboundCalling",
              "Mobile"
            ],
            "civicAddressId": "civicAddressIdString",
            "allowTenantAddressUpdate": true,
          }
        },
      },
      "configuration": {
        "customSipHeader": "exampleHeaderContents"
      }
    },
    {
      "serviceProvisioningStatus": "synced",
      "serviceProvisioningErrors": null,
      "telephoneNumber": "+123452",
      "accountName": "contoso",
      "serviceDetails": {
        "teamsDirectRouting": {
          "enabled": true
        }
      },
      "configuration": {
        "customSipHeader": "exampleHeaderContents"
      }
    },
    ... // more DR and OC numbers
  ],
  nextLink: "string"
}

Visa en lista över alla nödsituationsplatser för ett visst konto

Använd en GET-begäran på /accounts/<accountName>/teamsCivicAddresses slutpunkten för att hämta den fullständiga listan över medborgerliga adresser som konfigurerats i Teams Admin Center för det kontot. Du kan använda populationen i den här listan som locationid när du skapar eller uppdaterar tal i kontot.

Begäran:

GET /accounts/contoso/teamsCivicAddresses?api-version=2024-02-29 HTTP/1.1

Svar:

{
  "value": [
    {
      "id": "string",
      "country": "string",
      "houseNumber": "string",
      "houseNumberSuffix": "string",
      "preDirectional": "string",
      "streetName": "string",
      "streetSuffix": "string",
      "postDirectional": "string",
      "stateOrProvince": "string",
      "countyOrDistrict": "string",
      "cityOrTown": "string",
      "cityOrTownAlias": "string",
      "postalOrZipCode": "string",
      "description": "string",
      "companyName": "string",
      "companyId": "string",
      "defaultLocationId": "string",
      "validationStatus": "notValidated",
      "tenantId": "string",
      "partnerId": "string",
      "locations": [
        {
          "id": "string",
          "civicAddressId": "string",
          "description": "string",
          "additionalInfo": "string",
          "isDefault": true,
          "elin": "string"
        }
      ],
      "latitude": "string",
      "longitude": "string"
    },
    ... // more locations
  ],
  "nextLink": "string"
}

Ta bort ett tal från kontot

Använd DELETE på /accounts/<accountName>/numbers/<telephoneNumber> slutpunkten för att frigöra ett tal från en klientorganisation. Den här åtgärden tar bort tilldelningen av ett nummer från en användare om den har tilldelats och släpper sedan numret från klientorganisationen.

Begäran:

DELETE /accounts/contoso/numbers/+123451?api-version=2024-02-29 HTTP/1.1

Svar:

204 Status Code

Felsökning

  • Teams direktdirigering fungerar inte för nummer på ett konto.

    • Kontrollera att DNS-token har verifierats genom att skicka en GET på kontot och kontrollera att serviceDetails.teamsDirectRouting har lika Provisionedmed subdomainStatus .
  • Jag har konfigurerat ett tal för att använda direktdirigering/zoomning, men det verkar inte fungera.

    • Kontrollera att kontot har konfigurerats för att använda direktdirigering/zoomning och att numret har den här specifika funktionen aktiverad.
  • Jag har lyckats kontakta API:et, men när jag har gjort flera begäranden börjar mina anslutningar överskrida tidsgränsen.

    • Etablerings-API:et är frekvensbegränsat (till ett rimligt pris per sekund). Frigör utrymme för dina begäranden, eller använd batchslutpunkten för att undvika att bli frekvensbegränsade. Frekvensbegränsningen överskrider tidsgränsen så småningom och du kommer att kunna ansluta.

Nästa steg

Börja integrera med Azure Communications Gateway-etablerings-API:et.