Megosztás a következőn keresztül:


Azure Communications Gateway Provisioning API

Az Azure Communications Gateway távközlési operátorokhoz készült Kiépítési API-ja lehetővé teszi az ügyfelek adatainak és a hozzájuk rendelt számoknak az Azure Communications Gatewaybe (ACG) való kiépítését. A Kiépítési API néhány háttérkommunikációs szolgáltatás folyamatalapú kiépítését is támogatja.

Az ügyfelek és számok kiépítése kötelező (a Provisioning API-val vagy a böngészőalapú számkezelési portállal) minden használati esetben, kivéve az Operátori csatlakozást és a Teams Telefon Mobile-t. Az Operátori csatlakozás és a Teams Telefon Mobile esetében a Kiépítési API és/vagy a Számkezelési portál használata nem kötelező, és közvetlenül integrálható az Operator Connect API-val.

Első lépések

Előfeltételek

  • Egy bérlő, amelyen üzembe van helyezve az Azure Communications Gateway-alkalmazás.
  • Az Azure Communications Gateway teljes tartományneve (FQDN), amely az erőforrás Áttekintés lapján jelenik meg a Azure Portal. Az API a 443-ai provapi.<base-domain>porton érhető el.
  • Egy olyan IP-címmel rendelkező gép, amely lehetővé teszi az API elérését az Azure Communications Gateway üzembe helyezésének részeként konfigurált engedélyezési listákban.

Hitelesítés és engedélyezés

A Provisioning API az OAuth 2.0 használatával szabályozza az erőforrásokhoz való hozzáférést. Az ügyfélalkalmazásnak érvényes hitelesítési tulajdonosi jogkivonatot kell beszereznie a Provisioning API eléréséhez. A tulajdonosi jogkivonat azt jelzi, hogy az alkalmazás jogosult a Provisioning API hatóköreinek (szerepköreinek) egy vagy többére. Javasoljuk, hogy használja az ügyfél hitelesítő adatainak folyamatát (kiszolgálóoldali folyamathoz tervezve).

A Provisioning API-hoz a következő hatókörök érhetők el:

  • ProvisioningAPI.Admin: Bármely művelet meghívása az API-ban.
  • ProvisioningAPI.Read: Bármely olvasási (GET) művelet meghívása az API-ban.
  • ProvisioningAPI.Write: Bármilyen írási (PUT, PATCH) művelet meghívása az API-ban.
  • ProvisioningAPI.Delete: Bármely törlési (DELETE) művelet meghívása az API-ban.

Ügyfél-hitelesítőadat-folyamat beállítása:

  1. Győződjön meg arról, hogy az alkalmazás támogatja az ügyfél hitelesítő adatainak folyamatát.
    • Amikor az alkalmazás jogkivonatot kér a Provisioning API-hoz, az alábbi mezőket kell használnia.

      Paraméter Feltétel Description
      Bérlő kötelező Az Azure Communications Gatewayt tartalmazó címtárbérlő GUID vagy tartománynév formátumban.
      scope kötelező Az Azure Communications Gateway erőforrás-azonosítójának engedélyezési hatóköre. Az itt leírt ügyfél-hitelesítőadat-folyamat hatókörének a következőnek kell lennie https://func-voiceservice-rp-prod-eastuseuap.azurewebsites.net/.default: .
      client_id kötelező Az alkalmazáshoz hozzárendelt alkalmazás-(ügyfél-) azonosító.
    • A roles kapott jogkivonatban található jogcím határozza meg azokat a szerepköröket (hatóköröket), amelyekhez az ügyfélalkalmazás jogosult hozzáférni.

    • Az Azure Communications Gateway kiépítési platformra irányuló kéréseknek rendelkezniük kell ezzel Authorization a tulajdonosi jogkivonattal rendelkező fejléccel.

    • A jogkivonatok használatára példákat az ügyfél hitelesítő adatainak folyamatdokumentációjában talál.

  2. Az Azure Portal használatával regisztrálja az alkalmazást ugyanabban a bérlőben, mint az Azure Communications Gateway üzemelő példánya. Lásd: Rövid útmutató: Alkalmazás regisztrálása a Microsoft Identitásplatform – Microsoft Entra | Microsoft Learn.
  3. Rendelje hozzá magát tulajdonosként az alkalmazásregisztrációhoz. Lásd: Alkalmazástulajdonos hozzárendelése.
  4. Konfigurálja a létrehozott alkalmazásregisztrációt úgy, hogy az alkalmazást olyan alkalmazás-szerepkörökkel regisztrálja, amelyek a kiépítési API hatóköreit használják a korábban leírtak szerint.
  5. A bérlő rendszergazdájaként engedélyezze, hogy az alkalmazás az Ön által hozzárendelt alkalmazás-szerepköröket használja. Lásd: Rendszergazdai hozzájárulás megadása.

A Kiépítési API szabványos Microsoft megbízhatósági láncokat használ a biztonsági tanúsítványokhoz.

Fő fogalmak

A kiépítési platform három fő erőforrással rendelkezik, amelyeket az operátor kezelhet: fiókok, számok és információkérések.

  • A fiókerőforrások az operátori ügyfelek (jellemzően egy vállalat) leírásai, valamint a szolgáltatáskiépítés ügyfélenkénti beállításai.
  • A szám típusú erőforrások egy fiókhoz tartoznak. Ismertetik a számokat, a szolgáltatásokat (például a Microsoft Teams közvetlen útválasztását), amelyeket a számok használnak, és minden további számonkénti konfigurációt.
  • Az információkérési (RFI) -erőforrások olyan potenciális ügyfelek leírásai, akik bizonyos háttérszolgáltatásokon keresztül érdeklődnek az üzemeltetőtől érkező szolgáltatás iránt. Jelenleg csak az Operator Connectből származó RFI-k és Teams Telefon Mobil hozzájárulások érhetők el.

Ha például a Microsoft Teams közvetlen útválasztási szolgáltatást szeretné biztosítani egy ügyfélnek, a Contoso-nak, hozzon létre egy fiókerőforrást a Contoso kiépítési API-jával. A fiók a közvetlen útválasztás konfigurációját tartalmazza (például egy altartományt és a megfelelő jogkivonatokat, amelyek az ügyfél konfigurációjának ellenőrzéséhez használható DNS-rekordok beállításához szükségesek). Ezután számerőforrásokat kell hozzáadnia a fiókhoz, és engedélyeznie kell az egyes számokat a közvetlen útválasztáshoz.

Tipp

Engedélyeznie kell a szolgáltatást a fiókban és a fiókban lévő számokon is.

Háttérszolgáltatások kiépítése háttérszolgáltatás-szinkronizálással

Az Azure Communications Gatewaynek információval kell rendelkeznie arról, hogy milyen számokat biztosít a szolgáltatásnak a hívások megfelelő csatlakoztatásához. Javasoljuk, hogy az Azure Communications Gateway kiépítési API-ját adja meg az Azure Communications Gatewaynek, de használhatja a Számkezelési portált is. A legtöbb háttérszolgáltatást a használni kívánt számokra és fiókokra vonatkozó információkkal is ki kell építeni. Ez a követelmény gyakran azt jelenti, hogy több informatikai integrációs projektre van szükség az új szolgáltatások engedélyezéséhez. Az Azure Communications Gateway kiépítési platformja már rendelkezik néhány háttérszolgáltatással, hogy kiépíthesse őket, csökkentve ezzel az informatikai integrációs követelményeket. Ezt a függvényt úgy használhatja, hogy engedélyezi a háttérszolgáltatás szinkronizálását a megfelelő szolgáltatásokhoz. Ez azt is jelenti, hogy az Azure Communications Gateway kiépítési platformjának informatikai integrációja újra felhasználható más háttérszolgáltatásokhoz.

Az Operátori csatlakozás például előírja, hogy az összes szám feltöltése az Operator Connect API-val. Ha a háttérszolgáltatás szinkronizálása engedélyezve van az Operátori csatlakozáshoz, az Azure Communications Gatewayre kiosztott és az Operator Connect számára engedélyezett számok automatikusan ki lesznek építve az Operator Connectbe, ami azt jelenti, hogy nem kell integrálnia az Operator Connect API-val.

Az Azure Communications Gateway kiépítési platformon keresztül történő kiépítés nem kötelező bizonyos szolgáltatások esetében, amelyekben az Azure Communications Gateway közvetlenül a háttérrendszerből tud információt beszerezni. Bizonyos funkciók, például az ügyféloldali SIP-fejlécek számlázási célokra való hozzáadása nem lesz elérhető. A háttérszolgáltatás-szinkronizálást nem támogató szolgáltatások esetében előfordulhat, hogy közvetlenül a háttérszolgáltatásba más informatikai integrációra van szükség. A kiépítési támogatás állapotát a következő táblázat ismerteti:

Háttérszolgáltatás Az ACG kiépítési platformon keresztüli üzembe helyezés követelménye Támogatott háttérszolgáltatás kiépítése
Közvetlen útválasztás Kötelező
Zoom Kötelező
Azure Operator Call Protection Kötelező
Operátor csatlakoztatása Választható
Teams Telefon Mobile Választható

A háttérszolgáltatások szinkronizálása aszinkron, ami azt jelenti, hogy a kiépítési kérés sikeres lehet a háttérszolgáltatás kiépítése előtt. Ez az állapot az API-válaszban lesz aláírva a serviceProvisioningStatus következő mezővel pending: . Javasoljuk, hogy kérdezze le az objektumot a kiépítési állapotának ellenőrzéséhez, amíg a mező értéke nem lesz success. A háttérrendszer kiépítéséből eredő hibák közvetlenül a válaszban érhetők el.

Példák

Az alábbi példák az RFI-k, fiókok és számok kezelésére vonatkozó mintakéréseket mutatják be.

ügyfélnek megfelelő fiók Létrehozás

A PUT használatával hozzon accounts/<accountName> létre egy contoso nevű contoso fiókot a végponton, és konfiguráljon egy vagy több kommunikációs szolgáltatást a fiókhoz. Az If-None-Match fejléc használatával ellenőrizze, hogy még nem létezik-e ilyen nevű fiókerőforrás.

A következő példában:

  • A közvetlen útválasztás konfigurálva van.
  • A hívóazonosító szűrése engedélyezve van (ez az alapértelmezett).
  • Az ügyfél altartománya a következő contoso: .
  • A DNS-rekordok beállításához szükséges ügyfél által megadott DNS TXT értékek a és region2Token a region1Token mezőkben találhatók.

Kérés:

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

Válasz:

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

A következő példában létrehozunk egy fiókot, amely csak a Teams Operator Connecthez használható, és engedélyezve van a háttérszinkronizálás, így a fiókra vonatkozó információk (például a feltöltött számok) is ki lesznek építve a Teamsben:

Kérés:

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

Válasz:

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

A fiók részleteinek megtekintése

A fiók adatainak lekéréséhez használja a accounts/<accountName> GET parancsot a végponton. A válasz a következő mezőket tartalmazza:

  • Az összes korábban beállított konfiguráció (vagy az alapértelmezett, ha nincs beállítva mező).
  • Az előfizetők az ACG-en elérhető összes szolgáltatáshoz számítanak.
  • A háttérszolgáltatás-kiépítés állapota, ha engedélyezve van.
  • subdomainStatus, amely a DNS-rekordok kiépítésének állapotát jelöli, csak a közvetlen útválasztás szempontjából releváns.
  • A ETag fiók aktuális állapotát jelképező fejléc. A fejlécben lévő If-Match értéket a későbbi frissítési kérelmekben is használhatja, hogy ne írja felül a többi API-felhasználó által végrehajtott módosításokat.

Kérés:

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

Válasz:

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

Az azzal egyenértékű kérés, ha a fiókhoz több szolgáltatás van konfigurálva, az alábbiak szerint jelenik meg:

Kérés:

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

Válasz:

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

A fiók konfigurációjának frissítése

A fiók konfigurációjának frissítéséhez használja a accounts/<accountName> PUT parancsot a végponton. Ha meg szeretné győződni arról, hogy a frissítés nem írja felül egy másik felhasználó által végrehajtott módosítást, adjon hozzá egy If-Match fejlécet az ETag címkével a fiók legutóbbi válaszából.

Kérés:

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

Válasz:

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

Egy szám hozzáadása a fiókhoz

A PUT használatával adjon account/<accountName>/numbers/<telephoneNumber> hozzá egy számot a fiókhoz, engedélyezzen egy vagy több kommunikációs szolgáltatást, és adjon hozzá bármilyen más konfigurációt. A kiválasztott kommunikációs szolgáltatásokat is konfigurálni kell a fiókon. Az If-None-Match fejléc használatával ellenőrizze, hogy egy ilyen számmal rendelkező számerőforrás még nem létezik-e. Minden számot E.164 formátumban kell létrehozni.

A következő példában:

  • A szám +123451.
  • Az operátori csatlakozás engedélyezve van.
  • Meg van adva a szám operator Connectbe való feltöltéséhez szükséges konfiguráció
  • customSipHeader meghatározza, hogy az Azure Communications Gatewaynek hozzá kell adnia egy fejlécet az exampleHeaderContents operátori hálózatnak küldött üzenetekhez. A fejléc neve az Azure Communications Gateway üzembe helyezésének részeként van beállítva.
  • A serviceProvisioningStatus válasz mezője a háttérszolgáltatással való szinkronizálás állapotát jeleníti meg.
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"
  }
}

Válasz:

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

A kiépítés állapotának ellenőrzése egy idő után

A GET használatával ellenőrizheti a account/<accountName>/numbers/<telephoneNumber> szám állapotát a kiépítés utáni műveleten. Ha a szám sikeresen ki lett építve, a mező a-ról serviceProvisioningStatus a-ra pendingsyncedfrissül.

Kérés:

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

Válasz:

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

Hiba történt a háttérszolgáltatás kiépítésekor egy szám feltöltésekor

Ebben a példában a háttér kiépítése a szám feltöltésekor hibát jelez, ami visszatükröződik a válaszban. A rendszer transzparens módon továbbítja a hibaüzeneteket a háttérszolgáltatásokból.

Megjegyzés

Egy szám üzembe helyezésekor először állapota van pending , amelyet újra le kellkérdezni a sikeresség/hiba megerősítéséhez.

Az eredeti kérelem, amely nem tartalmaz értéket a usage mezőhöz:

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

A GET-lekérdezés válasza egy idő után:

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

Szám konfigurációjának frissítése

Egy szám konfigurációjának frissítéséhez használja a PUT parancsot a account/<accountName>/numbers/<telephoneNumber> végponton. Ha meg szeretné győződni arról, hogy a frissítés nem írja felül egy másik felhasználó által végrehajtott módosítást, adjon hozzá egy If-Match fejlécet a számra adott legutóbbi válasz ETagjével.

Kérés:

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

Válasz:

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

Az információkérések listázása

A végponton /teamsRequestsForInformation található GET használatával lekérheti a lehetséges ügyfelek által Önnek elküldött Teams-hozzájárulások listáját.

Kérés:

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

Válasz:

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

Információkérés frissítése

A végponton a /teamsRequestsForInformation/<tenantID> PATCH használatával frissítse az RFI állapotát, amely a háttérszolgáltatásban is tükröződik. A Csatlakozás operátor és a Teams Telefon Mobile lehetővé teszi, hogy a kérés állapotát a végfelhasználónak jelezze, így a frissített állapot megjelenik az ügyfél Teams Rendszergazda Centerében.

Kérés

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

Reagálás

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

A fiókhoz rendelt összes szám listázása

A végponton /accounts/<accountName>/numbers található GET kéréssel lekérheti az adott fiókhoz kiépített számok listáját.

Kérés:

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

Válasz olyan fiókra, amely csak operátori csatlakozási számokkal rendelkezik:

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

Válasz olyan fiókra, amelyen az operátori kapcsolat és a közvetlen útválasztási szám is ki van építve:

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

Egy adott fiók összes vészhelyzeti helyének listázása

A végponton /accounts/<accountName>/teamsCivicAddresses található GET-kéréssel lekérheti az adott fiókHoz tartozó Teams Rendszergazda Centerben konfigurált Civic-címek teljes listáját. A lista népességét használhatja számok locationid fiókon belüli létrehozásakor vagy frissítésekor.

Kérés:

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

Válasz:

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

Szám eltávolítása a fiókból

A végpontON a /accounts/<accountName>/numbers/<telephoneNumber> DELETE paranccsel adjon ki egy számot egy bérlőből. Ez a művelet eltávolít egy számot egy felhasználótól, ha hozzá van rendelve, majd felszabadítja a számot a bérlőből.

Kérés:

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

Válasz:

204 Status Code

Hibaelhárítás

  • A Teams közvetlen útválasztása nem működik a fiókok számainak esetében.

    • Ellenőrizze, hogy a DNS-jogkivonat érvényesítve lett-e. Ehhez küldjön egy GET-t a fiókra, és ellenőrizze, hogy serviceDetails.teamsDirectRouting az értéke megegyezik-e subdomainStatus a következővel Provisioned: .
  • Konfiguráltam egy számot a közvetlen útválasztás/nagyítás használatára, de úgy tűnik, hogy nem működik.

    • Ellenőrizze, hogy a fiók konfigurálva van-e a közvetlen útválasztás/nagyítás használatára, és hogy a szám engedélyezve van-e az adott funkcióval.
  • Sikerült kapcsolatba lépnem az API-val, de több kérés után a kapcsolataim túllépik az időkorlátot.

    • A kiépítési API sebessége korlátozott (ésszerű másodpercenkénti sebességre). A sebesség korlátozásának elkerülése érdekében terjesszen ki a kéréseket, vagy használja a kötegelt végpontot. A sebességkorlát idővel túllépi az időkorlátot, és csatlakozhat.

Következő lépések

Integrálhat az Azure Communications Gateway Provisioning API-val.