Sdílet prostřednictvím


Rozhraní API pro zřizování služby Azure Communications Gateway

Rozhraní API pro zřizování služby Azure Communications Gateway pro telekomunikační operátory umožňuje zřizovat podrobnosti o vašich zákaznících a jim přiřazená čísla do služby Azure Communications Gateway (ACG). Rozhraní API pro zřizování také podporuje průběžné zřizování některých back-endových komunikačních služeb.

Zřizování zákazníků a čísel je povinné (pomocí rozhraní API pro zřizování nebo portálu správy čísel založeného na prohlížeči) pro všechny případy použití s výjimkou připojení operátora a Telefon Teams Mobile. Pro operátory Connect a Telefon Teams Mobile je použití rozhraní API pro zřizování a/nebo portálu Správa čísel volitelné a můžete je integrovat přímo s rozhraním Api připojení operátora.

Začínáme

Požadavky

  • Tenant s nasazenou aplikací Azure Communications Gateway.
  • Plně kvalifikovaný název domény (FQDN) pro vaši službu Azure Communications Gateway, který se zobrazí na stránce Přehled prostředku v Azure Portal. Rozhraní API je k dispozici na portu 443 .provapi.<base-domain>
  • Počítač s IP adresou, která umožňuje přístup k rozhraní API nakonfigurovaným v seznamu povolených v rámci nasazení služby Azure Communications Gateway.

Ověřování a autorizace

Rozhraní API pro zřizování používá k řízení přístupu k prostředkům OAuth 2.0 . Klientská aplikace musí získat platný nosný token ověřování pro přístup k rozhraní API zřizování. Nosný token označuje, že aplikace je autorizovaná pro jeden nebo více oborů (rolí) pro rozhraní API pro zřizování. Doporučujeme použít tok přihlašovacích údajů klienta (určený pro proces na straně serveru).

Pro rozhraní API zřizování jsou k dispozici následující obory:

  • ProvisioningAPI.Admin: Možnost vyvolat libovolnou operaci napříč rozhraním API.
  • ProvisioningAPI.Read: Možnost vyvolat libovolnou operaci čtení (GET) napříč rozhraním API.
  • ProvisioningAPI.Write: Možnost vyvolat jakoukoli operaci zápisu (PUT, PATCH) přes rozhraní API.
  • ProvisioningAPI.Delete: Možnost vyvolat jakoukoli operaci odstranění (DELETE) v rámci rozhraní API.

Nastavení toku přihlašovacích údajů klienta:

  1. Ujistěte se, že vaše aplikace podporuje tok přihlašovacích údajů klienta.
    • Když vaše aplikace požádá o token pro rozhraní API zřizování, musí používat následující pole.

      Parametr Podmínka Description
      Nájemce vyžadováno Tenant adresáře obsahující službu Azure Communications Gateway ve formě guid nebo názvu domény.
      scope vyžadováno Rozsah autorizace pro ID prostředku služby Azure Communications Gateway. Pro tok přihlašovacích údajů klienta popsaný tady by měl být https://func-voiceservice-rp-prod-eastuseuap.azurewebsites.net/.defaultobor .
      client_id vyžadováno ID aplikace (klienta) přiřazené k vaší aplikaci.
    • Deklarace roles identity v přijatém tokenu určuje role (obory), ke kterým má klientská aplikace oprávnění k přístupu.

    • Požadavky na zřizovací platformu služby Azure Communications Gateway musí mít hlavičku Authorization s tímto nosným tokenem.

    • Příklady použití tokenů najdete v dokumentaci k toku přihlašovacích údajů klienta .

  2. Pomocí Azure Portal zaregistrujte aplikaci ve stejném tenantovi jako vaše nasazení služby Azure Communications Gateway. Viz Rychlý start: Registrace aplikace v Microsoft identity platform – Microsoft Entra | Microsoft Learn.
  3. Přiřaďte sami sebe jako vlastníka registrace aplikace. Viz Přiřazení vlastníka aplikace.
  4. Nakonfigurujte registraci aplikace vytvořenou registrací aplikace s aplikačními rolemi, které používají obory pro rozhraní API pro zřizování, jak je popsáno výše.
  5. Jako správce tenanta umožněte aplikaci používat aplikační role, které jste přiřadili. Viz Udělení souhlasu správce.

Rozhraní API pro zřizování používá pro certifikáty zabezpečení standardní řetězy důvěryhodnosti Microsoftu.

Klíčové koncepty

Zřizovací platforma má tři klíčové prostředky, které může operátor spravovat: účty, čísla a žádosti o informace.

  • Prostředky účtů jsou popisy zákazníků operátora (obvykle podniku) a nastavení zřizování služeb pro jednotlivé zákazníky.
  • Počet prostředků patří k účtu. Popisují čísla, služby (například přímé směrování v Microsoft Teams), které tato čísla využívají, a případné dodatečné konfigurace pro jednotlivá čísla.
  • Zdroje žádostí o informace (RFI) jsou popisy potenciálních zákazníků pro operátory, kteří vyjadřují zájem o příjem služby od operátora prostřednictvím konkrétních back-endových služeb. V současné době jsou k dispozici pouze rfi vytvořené ze souhlasu operátora Connect a Telefon Teams Mobile.

Pokud chcete například poskytnout službu přímého směrování Microsoft Teams zákazníkovi Contoso, vytvořte prostředek účtu pomocí rozhraní API zřizování pro Contoso. Účet obsahuje konfiguraci pro přímé směrování (například subdoménu a odpovídající tokeny, které jsou potřeba k nastavení záznamů DNS, které microsoft Teams může použít k ověření konfigurace zákazníka). Potom musíte k účtu přidat číselné prostředky a povolit každé číslo pro přímé směrování.

Tip

Službu musíte povolit pro účet i čísla v rámci účtu.

Zřizování back-endových služeb se synchronizací back-endových služeb

Služba Azure Communications Gateway musí mít informace o číslech, kterým poskytuje službu, aby mohla správně připojit volání. K poskytování těchto informací službě Azure Communications Gateway doporučujeme rozhraní API pro zřizování komunikačních bran Azure, ale můžete také použít portál pro správu čísel. Většinu back-endových služeb je také potřeba zřídit s informacemi o číslech a účtech, které se mají použít. Tento požadavek často znamená, že k povolení nových služeb je potřeba více projektů integrace IT. Platforma zřizování služby Azure Communications Gateway byla předem integrovaná s některými back-endovými službami, aby je zřídila pro vás, což snižuje vaše požadavky na integraci IT. Tuto funkci můžete použít tak, že povolíte synchronizaci back-endové služby pro příslušné služby. To také znamená, že jakákoli integrace IT do zřizovací platformy Azure Communications Gateway je opakovaně použitelná pro jiné back-endové služby.

Například Operátor Connect vyžaduje, aby se všechna čísla nahrála prostřednictvím rozhraní API Pro připojení operátora. Pokud je synchronizace back-endové služby povolená pro Operator Connect, všechna čísla zřízená v Bráně Azure Communications a povolená pro Operator Connect se automaticky zřídí do nástroje Operator Connect, což znamená, že se nemusíte integrovat s rozhraním API Pro připojení operátora.

Zřizování prostřednictvím zřizovací platformy Azure Communications Gateway je pro některé služby, u kterých azure Communications Gateway může získat informace přímo z back-endu, volitelné. Některé funkce, jako je přidání zákaznických hlaviček SIP pro účely fakturace, ale nebudou dostupné. Pro všechny služby, které nepodporují synchronizaci back-endových služeb, může být přímo do back-endové služby vyžadována další integrace IT. Stav podpory zřizování je popsaný v následující tabulce:

Back-endová služba Požadavek na zřizování prostřednictvím zřizovací platformy ACG Podporované zřizování back-endové služby
Přímé směrování Povinné
Zoom Povinné
Ochrana Hovorů Operátora Azure Povinné
Operátor Connect Volitelné
Telefon Teams Mobile Volitelné

Synchronizace s back-end službami je asynchronní, což znamená, že požadavek na zřízení může být úspěšný před zřízením back-endové služby. Tento stav se označuje v odpovědi rozhraní API pomocí pole nastaveného serviceProvisioningStatus na pending. Doporučujeme dotazovat objekt a zkontrolovat jeho stav zřizování, dokud nebude toto pole nastaveno na successhodnotu . Všechny chyby při zřizování back-endového systému jsou k dispozici přímo v odpovědi.

Příklady

Následující příklady ukazují ukázkové žádosti o správu rfi, účtů a čísel.

Create účtu představujícího zákazníka

Pomocí příkazu PUT na koncovém accounts/<accountName> bodu vytvořte účet s názvem contoso pro zákazníka Contoso a nakonfigurujte pro tento účet jednu nebo více komunikačních služeb. Pomocí hlavičky If-None-Match ověřte, že prostředek účtu s tímto názvem ještě neexistuje.

V následujícím příkladu:

  • Přímé směrování je nakonfigurované.
  • Je povolené blokování ID volajícího (výchozí nastavení).
  • Subdoména zákazníka je contoso.
  • Hodnoty DNS TXT zadané zákazníkem potřebné k nastavení záznamů DNS jsou v region1Token polích a region2Token .

Požadavek:

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

Odpověď:

{
  "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"
    },
  }
}

V následujícím příkladu vytvoříme účet pro použití pouze s Teams Operator Connect s povolenou back-endovou synchronizací, aby se informace o tomto účtu (například všechna nahraná čísla) zřídily také do Teams:

Požadavek:

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

Odpověď:

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

Zobrazení podrobností o účtu

Pomocí příkazu GET na koncovém accounts/<accountName> bodu získejte podrobnosti o účtu. Odpověď obsahuje následující pole:

  • Veškerá dříve nastavená konfigurace (nebo výchozí, pokud pole nastaveno nebylo).
  • Počet předplatitelů pro každou službu dostupnou v ACG.
  • Stav zřizování back-endové služby, pokud je povoleno.
  • subdomainStatus, představující stav zřizování záznamů DNS, který je relevantní jenom pro přímé směrování.
  • Hlavička ETag představující aktuální stav účtu. Hodnotu v If-Match hlavičce můžete použít u následných žádostí o aktualizaci, abyste zajistili, že nepřepíšete změny provedené jinými uživateli rozhraní API.

Požadavek:

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

Odpověď:

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

Ekvivalentní požadavek, pokud má účet nakonfigurovaných více služeb, vypadá takto:

Požadavek:

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

Odpověď:

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

Aktualizace konfigurace účtu

Pomocí příkazu PUT v koncovém accounts/<accountName> bodu aktualizujte konfiguraci účtu. Aby se zajistilo, že aktualizace nepřepíše změnu provedenou jiným uživatelem, přidejte hlavičku se značkou If-Match ETag z nejnovější odpovědi účtu.

Požadavek:

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

Odpověď:

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

Přidání jednoho čísla k účtu

Pomocí příkazu PUT v koncovém account/<accountName>/numbers/<telephoneNumber> bodu můžete k účtu přidat číslo, povolit jednu nebo více komunikačních služeb a přidat další konfiguraci. Pro účet musí být také nakonfigurovány zvolené komunikační služby. Pomocí hlavičky If-None-Match ověřte, že číselný prostředek s tímto číslem ještě neexistuje. Všechna čísla musí být vytvořená ve formátu E.164.

V následujícím příkladu:

  • Číslo je +123451.
  • Operátor connect je povolený.
  • K dispozici je konfigurace požadovaná k nahrání čísla do operátora Connect.
  • customSipHeader Určuje, že služba Azure Communications Gateway by měla do zpráv odesílaných do sítě operátora přidat hlavičku s hodnotou exampleHeaderContents . Název hlavičky se nastavuje jako součást nasazení služby Azure Communications Gateway.
  • Pole serviceProvisioningStatus v odpovědi zobrazuje stav synchronizace s back-endovou službou.
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"
  }
}

Odpověď:

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

Kontrola stavu zřizování po nějaké době

Stav čísla můžete zkontrolovat pomocí příkazu GET account/<accountName>/numbers/<telephoneNumber> v akci po zřízení. Pokud bylo číslo úspěšně zřízeno, pole se serviceProvisioningStatus aktualizuje z pending na synced.

Požadavek:

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

Odpověď:

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

Chyba při zřizování back-endové služby pro nahrání čísla

V tomto příkladu se při zřizování back-endu při nahrávání čísla zobrazí chyba, která se projeví v odpovědi. Chybové zprávy se z back-endových služeb předávají transparentně.

Poznámka

Zpočátku má při zřizování číslo pending stav, na který je potřeba znovu zadat dotaz, aby se potvrdil úspěch nebo selhání.

Původní požadavek, kterému chybí hodnota pole 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"
  }
}

Odpověď z dotazu GET po nějaké době:

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

Aktualizace konfigurace pro číslo

Pomocí PUT na koncovém account/<accountName>/numbers/<telephoneNumber> bodu aktualizujte konfiguraci pro určité číslo. Pokud chcete zajistit, aby aktualizace nepřepsala změnu provedenou jiným uživatelem, přidejte hlavičku If-Match se značkou ETag z nejnovější odpovědi na číslo.

Požadavek:

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

Odpověď:

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

Zobrazení seznamu žádostí o informace

Pomocí get na koncovém /teamsRequestsForInformation bodu získejte seznam souhlasů Teams, které vám poslali potenciální zákazníci.

Požadavek:

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

Odpověď:

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

Aktualizace žádosti o informace

Pomocí patche na koncovém /teamsRequestsForInformation/<tenantID> bodu aktualizujte stav RFI, který se projeví v back-endové službě. Operátor Connect a Telefon Teams Mobile umožňuje označit stav žádosti zpět koncovému zákazníkovi, aby se aktualizovaný stav zobrazil v centru Teams Správa zákazníka.

Žádost

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

Odpověď

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

Výpis všech čísel přiřazených k účtu

Pomocí požadavku GET v koncovém /accounts/<accountName>/numbers bodu získejte seznam čísel, která byla pro tento účet zřízena.

Požadavek:

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

Odpověď pro účet s pouze čísly Operátor Connect:

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

Odpověď pro účet se zřízenými čísly připojení operátora i přímého směrování:

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

Výpis všech míst tísňového volání pro konkrétní účet

Pomocí požadavku GET v koncovém /accounts/<accountName>/teamsCivicAddresses bodu získáte úplný seznam civilních adres nakonfigurovaných v Teams Správa Center pro daný účet. Při vytváření nebo aktualizaci čísel v rámci účtu můžete použít populaci locationid tohoto seznamu.

Požadavek:

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

Odpověď:

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

Odebrání čísla z účtu

Pomocí příkazu DELETE na koncovém /accounts/<accountName>/numbers/<telephoneNumber> bodu uvolněte číslo z tenanta. Tato operace zruší přiřazení čísla uživateli, pokud je přiřazeno, a pak číslo uvolní z tenanta.

Požadavek:

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

Odpověď:

204 Status Code

Poradce při potížích

  • Přímé směrování Teams nefunguje pro čísla v účtu.

    • Ověřte, že se token DNS ověřil odesláním příkazu GET na účet a ověřením, že serviceDetails.teamsDirectRouting se rovná subdomainStatus hodnotě Provisioned.
  • Nakonfiguroval(a) jsem číslo tak, aby používalo přímé směrování nebo lupu, ale zdá se, že nefunguje.

    • Zkontrolujte, jestli je účet nakonfigurovaný tak, aby používal přímé směrování nebo zvětšení, a jestli má číslo tuto konkrétní funkci povolenou.
  • Podařilo se mi kontaktovat rozhraní API, ale po provedení více požadavků dochází k vypršení časového limitu připojení.

    • Rozhraní API pro zřizování je rychlostně omezená (na přiměřenou rychlost za sekundu). Vysaďte požadavky nebo použijte dávkový koncový bod, abyste se vyhnuli omezování rychlosti. Časový limit četnosti nakonec vyprší a budete se moct připojit.

Další kroky

Začněte integrovat s rozhraním API pro zřizování služby Azure Communications Gateway.