Aracılığıyla paylaş


Azure Communications Gateway Sağlama API'si

Azure Communications Gateway'in telekomünikasyon operatörleri için Sağlama API'si, müşterilerinizin ayrıntılarını ve onlara atanan numaraları Azure Communications Gateway'e (ACG) sağlamanızı sağlar. Sağlama API'si bazı arka uç iletişim hizmetlerinin akış yoluyla sağlanmasını da destekler.

Operatör Bağlantısı ve Teams Telefon Mobile dışındaki tüm kullanım örnekleri için sağlama müşterileri ve numaraları zorunludur (Sağlama API'siyle veya tarayıcı tabanlı Numara Yönetimi Portalı ile). Operatör Connect ve Teams Telefon Mobile için, Sağlama API'sinin ve/veya Numara Yönetimi Portalı'nın kullanımı isteğe bağlıdır ve bunun yerine doğrudan Operatör Bağlantı API'siyle tümleştirebilirsiniz.

Başlarken

Önkoşullar

  • Azure Communications Gateway uygulamasının dağıtılacağı bir kiracı.
  • Azure portal kaynağın Genel Bakış sayfasında görüntülenen Azure Communications Gateway'inizin tam etki alanı adı (FQDN). API, 443 provapi.<base-domain>numaralı bağlantı noktasında kullanılabilir.
  • Azure Communications Gateway dağıtımının bir parçası olarak izin verilenler listesinde yapılandırıldığı gibi API'ye erişime izin veren IP adresine sahip bir makine.

Kimlik doğrulaması ve yetkilendirme

Sağlama API'sinde kaynaklara erişimi denetlemek için OAuth 2.0 kullanılır. İstemci uygulamasının Sağlama API'sine erişmek için geçerli bir kimlik doğrulama taşıyıcı belirteci alması gerekir. Taşıyıcı belirteci, uygulamanın Sağlama API'sinin bir veya daha fazla kapsamı (rol) için yetkilendirildiğini gösterir. İstemci kimlik bilgileri akışını (sunucu tarafı bir işlem için tasarlanmıştır) kullanmanızı öneririz.

Sağlama API'sinde aşağıdaki kapsamlar kullanılabilir:

  • ProvisioningAPI.Admin: API genelinde herhangi bir işlemi çağırabilme.
  • ProvisioningAPI.Read: API genelinde herhangi bir okuma (GET) işlemini çağırabilme.
  • ProvisioningAPI.Write: API genelinde herhangi bir yazma (PUT, PATCH) işlemini çağırabilme.
  • ProvisioningAPI.Delete: API genelinde herhangi bir silme (DELETE) işlemini çağırabilme.

İstemci kimlik bilgileri akışını ayarlamak için:

  1. Uygulamanızın istemci kimlik bilgileri akışını destekleyebilediğinden emin olun.
    • Uygulamanız Sağlama API'si için belirteç istediğinde aşağıdaki alanları kullanmalıdır.

      Parametre Koşul Description
      Kiracı gerekli Guid veya etki alanı adı biçiminde Azure Communications Gateway'i içeren dizin kiracısı.
      scope gerekli Azure Communications Gateway kaynak kimliğine göre yetkilendirmenin kapsamı. Burada açıklanan istemci kimlik bilgileri akışı için kapsam olmalıdır https://func-voiceservice-rp-prod-eastuseuap.azurewebsites.net/.default.
      client_id gerekli Uygulamanıza atanan uygulama (istemci) kimliği.
    • roles Alınan belirteçteki talep, istemci uygulamanın erişim yetkisine sahip olduğu rolleri (kapsamları) belirtir.

    • Azure Communications Gateway Sağlama Platformuna yönelik isteklerin bu taşıyıcı belirteci içeren bir Authorization üst bilgi içermesi gerekir.

    • Belirteç kullanma örnekleri için istemci kimlik bilgileri akışı belgelerine bakın .

  2. Uygulamayı Azure Communications Gateway dağıtımınızla aynı kiracıya kaydetmek için Azure portal kullanın. Bkz. Hızlı Başlangıç: Microsoft kimlik platformu bir uygulamayı kaydetme - Microsoft Entra | Microsoft Learn.
  3. Uygulama kaydı için kendinizi sahip olarak atayın. Bkz . Uygulama sahibi atama.
  4. Daha önce açıklandığı gibi, uygulamayı Sağlama API'sinin kapsamlarını kullanan uygulama rolleriyle kaydederek oluşturulan uygulama kaydını yapılandırın.
  5. Kiracının yöneticisi olarak, uygulamanın atadığınız uygulama rollerini kullanmasına izin verin. Bkz . Yönetici onayı verme.

Sağlama API'sinde güvenlik sertifikaları için standart Microsoft güven zincirleri kullanılır.

Önemli kavramlar

Sağlama Platformu'nun operatörün yönetebileceği üç temel kaynak vardır: hesaplar, sayılar ve bilgi istekleri.

  • Hesap kaynakları, operatör müşterilerinin (genellikle bir kuruluş) açıklamaları ve hizmet sağlama için müşteri başına ayarlardır.
  • Sayı kaynakları bir hesaba aittir. Sayıları, sayıların kullandığı hizmetleri (örneğin, Microsoft Teams Doğrudan Yönlendirme) ve ek sayı başına yapılandırmayı açıklar.
  • Bilgi İsteği (RFI) kaynakları, belirli arka uç hizmetleri aracılığıyla operatörden hizmet almak isteyen operatörler için potansiyel müşterilerin açıklamalarıdır. Şu anda yalnızca Operator Connect ve Teams Telefon Mobile onaylarından üretilen RFI'ler kullanılabilir.

Örneğin Contoso adlı müşteriye Microsoft Teams Doğrudan Yönlendirme hizmeti sağlamak için Contoso için Sağlama API'siyle bir hesap kaynağı oluşturun. Hesap, Doğrudan Yönlendirme için yapılandırma içerir (örneğin, Microsoft Teams'in müşterinin yapılandırmasını doğrulamak için kullanabileceği DNS kayıtlarını ayarlamak için gereken bir alt etki alanı ve karşılık gelen belirteçler). Ardından hesaba sayı kaynakları eklemeniz ve her sayıyı Doğrudan Yönlendirme için etkinleştirmeniz gerekir.

İpucu

Hem hesapta hem de hesaptaki numaralarda hizmeti etkinleştirmeniz gerekir.

Arka uç hizmeti eşitlemesi ile arka uç hizmetleri sağlama

Azure Communications Gateway'in çağrıları düzgün bir şekilde bağlamak için hizmet verdiği numaralar hakkında bilgi sahibi olması gerekir. Bu bilgileri Azure Communications Gateway'e sağlamak için Azure Communications Gateway Sağlama API'sini öneririz, ancak Sayı Yönetimi Portalı'nı da kullanabilirsiniz. Çoğu arka uç hizmetinin de kullanılacak numaralar ve hesaplar hakkında bilgilerle sağlanması gerekir. Bu gereksinim genellikle yeni hizmetleri etkinleştirmek için birden çok BT tümleştirme projesi gerektiği anlamına gelir. Azure Communications Gateway Sağlama platformu, bunları sizin için sağlamak üzere bazı arka uç hizmetleriyle önceden tümleştirilir ve BU da BT tümleştirme gereksinimlerinizi azaltır. İlgili hizmetler için arka uç hizmet eşitlemesini etkinleştirerek bu işlevi kullanabilirsiniz. Bu, Azure Communications Gateway sağlama platformuyla tüm BT tümleştirmesinin diğer arka uç hizmetleri için yeniden kullanılabilir olduğu anlamına da gelir.

Örneğin Operatör Bağlantısı, tüm sayıların Operator Connect API'sini kullanarak karşıya yüklenmesini zorunlu olarak kabul eder. Operatör Bağlantısı için arka uç hizmet eşitlemesi etkinleştirildiyse, Azure Communications Gateway'de sağlanan ve Operatör Bağlantısı için etkinleştirilen herhangi bir sayı otomatik olarak Operator Connect'e sağlanır; bu da Operatör Bağlantısı API'siyle tümleştirmeniz gerekmemesi anlamına gelir.

Azure Communications Gateway sağlama platformu aracılığıyla sağlama, Azure Communications Gateway'in doğrudan arka uçtan bilgi alabildiği bazı hizmetler için isteğe bağlıdır. Ancak faturalama amacıyla müşteri SIP üst bilgilerinin eklenmesi gibi bazı özellikler kullanılamaz. Arka uç hizmeti eşitlemesini desteklemeyen tüm hizmetler için, arka uç hizmetine doğrudan başka bir BT tümleştirmesi gerekebilir. Sağlama desteğinin durumu aşağıdaki tabloda açıklanmıştır:

Arka Uç Hizmeti ACG Sağlama Platformu aracılığıyla sağlama gereksinimi Desteklenen arka uç hizmetinin sağlanması
Doğrudan Yönlendirme Zorunlu
Zoom Zorunlu
Azure Operatör Çağrı Koruması Zorunlu
İşleç Bağlantısı İsteğe Bağlı
Teams Telefon Mobile İsteğe Bağlı

Arka uç hizmetleriyle eşitleme zaman uyumsuzdur, yani sağlama isteğiniz arka uç hizmeti sağlanmadan önce başarılı olabilir. Bu durum, olarak ayarlanan pendingalan kullanılarak API yanıtında serviceProvisioningStatus belirtilir. Bu alan olarak ayarlanana successkadar sağlama durumunu denetlemek için nesneyi sorgulamanızı öneririz. Arka uç sisteminin sağlanmasıyla ilgili tüm hatalar doğrudan yanıtta kullanılabilir hale gelir.

Örnekler

Aşağıdaki örneklerde RFI'leri, hesapları ve sayıları yönetmeye yönelik örnek istekler gösterilir.

Müşteriyi temsil eden bir hesabı İçerik Oluşturucu

Contoso müşterisi accounts/<accountName> için adlı contoso bir hesap oluşturmak ve hesap için bir veya daha fazla iletişim hizmetini yapılandırmak için uç noktada PUT kullanın. Bu ada sahip bir hesap kaynağının mevcut olmadığını doğrulamak için If-None-Match üst bilgisini kullanın.

Aşağıdaki örnekte:

  • Doğrudan Yönlendirme yapılandırıldı.
  • Arayan Kimliği filtrelemesi etkindir (varsayılan).
  • Müşterinin alt etki alanı şeklindedir contoso.
  • DNS kayıtlarını ayarlamak için gereken müşteri tarafından sağlanan DNS TXT değerleri ve region2Token alanlarındadırregion1Token.

İstek:

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

Yanıt:

{
  "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şağıdaki örnekte, bu hesap (karşıya yüklenen numaralar gibi) hakkındaki bilgilerin de Teams'e sağlanması için arka uç eşitlemesi etkinleştirilmiş olarak yalnızca Teams Operatör Bağlantısı ile kullanmak üzere bir hesap oluştururuz:

İstek:

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

Yanıt:

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

Hesabın ayrıntılarını görüntüleme

Hesabın accounts/<accountName> ayrıntılarını almak için uç noktada GET kullanın. Yanıt aşağıdaki alanları içerir:

  • Tüm yapılandırma önceden ayarlanmıştır (veya bir alan ayarlanmadıysa varsayılandır).
  • ACG'de bulunan hizmetlerin her biri için abone sayısı.
  • Etkinleştirildiyse arka uç hizmeti sağlama durumu.
  • subdomainStatus, DNS kaydı sağlama durumunu temsil eder, yalnızca Doğrudan Yönlendirme için geçerlidir.
  • ETag Hesabın geçerli durumunu temsil eden üst bilgi. Diğer API kullanıcıları tarafından yapılan değişikliklerin üzerine yazmadığınızdan emin olmak için sonraki güncelleştirme isteklerinde üst bilgideki If-Match değeri kullanabilirsiniz.

İstek:

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

Yanıt:

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

Hesapta yapılandırılmış birden çok hizmet varsa eşdeğer istek aşağıdaki gibi görünür:

İstek:

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

Yanıt:

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

Hesabın yapılandırmasını güncelleştirme

Hesabın accounts/<accountName> yapılandırmasını güncelleştirmek için uç noktada PUT kullanın. Güncelleştirmenin başka bir kullanıcı tarafından yapılan değişikliğin üzerine yazılmamasını sağlamak için, hesabın en son yanıtından ETag ile bir If-Match üst bilgi ekleyin.

İstek:

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

Yanıt:

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

Hesaba bir numara ekleme

Hesaba bir sayı eklemek, bir veya daha fazla iletişim hizmetini etkinleştirmek ve başka bir yapılandırma eklemek için uç noktada PUT account/<accountName>/numbers/<telephoneNumber> kullanın. Seçilen iletişim hizmetleri de hesapta yapılandırılmalıdır. Bu sayıya sahip bir sayı kaynağının mevcut olmadığını doğrulamak için If-None-Match üst bilgisi kullanın. Tüm sayılar E.164 biçiminde oluşturulmalıdır.

Aşağıdaki örnekte:

  • Sayı +123451.
  • İşleç bağlantısı etkinleştirildi.
  • Numarayı Operatör Bağlantısı'na yüklemek için gereken yapılandırma sağlanır
  • customSipHeader Azure Communications Gateway'in işleç ağına gönderilen iletilere değeriyle bir üst bilgi exampleHeaderContents eklemesi gerektiğini belirtir. Üst bilginin adı, Azure Communications Gateway dağıtımının bir parçası olarak ayarlanır.
  • serviceProvisioningStatus Yanıttaki alan, arka uç hizmetiyle eşitlemenin durumunu gösterir.
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"
  }
}

Yanıt:

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

Bir süre sonra sağlama durumu denetleniyor

Sayının account/<accountName>/numbers/<telephoneNumber> durumunu denetlemek için sağlama eyleminden sonra get komutunu kullanın. Sayı başarıyla sağlandıysa, serviceProvisioningStatus alanı olarak pendingsyncedgüncelleştirilir.

İstek:

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

Yanıt:

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

Bir sayıyı karşıya yüklemek için arka uç hizmeti sağlamada hata

Bu örnekte, sayı karşıya yüklenirken arka uç sağlama işlemi bir hataya neden olur ve bu hata yanıta geri yansıtılır. Hata iletileri arka uç hizmetlerinden saydam bir şekilde geçirilir.

Not

Başlangıçta bir sayı sağlanırken durumu vardır pending ve başarıyı/başarısızlığı onaylamak için yeniden sorgulanması gerekir.

Alan için usage bir değer eksik olan özgün istek:

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

Bir süre sonra GET sorgusundan yanıt:

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

Bir sayı için yapılandırmayı güncelleştirme

Bir sayı için yapılandırmayı account/<accountName>/numbers/<telephoneNumber> güncelleştirmek için uç noktada PUT kullanın. Güncelleştirmenin başka bir kullanıcı tarafından yapılan değişikliğin üzerine yazılmamasını sağlamak için, numaranın en son yanıtından ETag ile bir If-Match üst bilgisi ekleyin.

İstek:

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

Yanıt:

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

Bilgi İsteklerini Listeleme

Potansiyel müşteriler tarafından size gönderilen Teams onaylarının listesini almak için uç noktada GET /teamsRequestsForInformation kullanın.

İstek:

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

Yanıt:

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

Bilgi İsteğini Güncelleştirme

Arka uç hizmetine yansıtılan RFI'nin durumunu güncelleştirmek için uç noktada PATCH /teamsRequestsForInformation/<tenantID> kullanın. Operatör Connect ve Teams Telefon Mobile, isteğin durumunu son müşteriye geri belirtmenize olanak tanır, böylece güncelleştirilmiş durum müşterinin Teams Yönetici Merkezi'nde görünür.

İstek

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

Yanıt

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

Hesaba atanan tüm numaraları listeleme

Bu hesap için sağlanan sayıların /accounts/<accountName>/numbers listesini almak için uç noktada bir GET isteği kullanın.

İstek:

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

Yalnızca Operator Connect numaralarına sahip bir hesap için yanıt:

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

Hem Operatör Bağlantısı hem de Doğrudan Yönlendirme numaralarının sağlandığı bir hesap için yanıt:

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

Belirli bir hesap için tüm acil durum konumlarını listeleme

Bu hesabın /accounts/<accountName>/teamsCivicAddresses Teams Yönetici Merkezi'nde yapılandırılan Posta Adreslerinin tam listesini almak için uç noktada bir GET isteği kullanın. Hesap içinde sayı oluştururken veya güncelleştirirken bu listenin locationid popülasyonunu olarak kullanabilirsiniz.

İstek:

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

Yanıt:

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

Hesaptan bir sayıyı kaldırma

Bir kiracıdan /accounts/<accountName>/numbers/<telephoneNumber> bir sayı yayınlamak için uç noktada DELETE kullanın. Bu işlem, atanmışsa bir kullanıcının numarasının atamasını kaldırır ve ardından numarayı kiracıdan serbest bırakır.

İstek:

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

Yanıt:

204 Status Code

Sorun giderme

  • Teams Doğrudan Yönlendirme, bir hesapta bulunan numaralar için çalışmıyor.

    • Hesaba get göndererek DNS belirtecinin doğrulanıp doğrulanmadığını denetleyin ve bu belirtecin Provisioneddeğerine eşit subdomainStatus olduğunu serviceDetails.teamsDirectRouting doğrulayın.
  • Bir sayıyı Doğrudan Yönlendirme/Yakınlaştırma kullanacak şekilde yapılandırdım, ancak çalışmıyor gibi görünüyor.

    • Hesabın Doğrudan Yönlendirme/Yakınlaştırma kullanacak şekilde yapılandırılıp yapılandırılmadığını ve numaranın bu özelliği etkinleştirip etkinleştirmediğini denetleyin.
  • API'ye başvurmayı başardım ancak birden çok istekte bulunduktan sonra bağlantılarım zaman aşımına ulaştırır.

    • Sağlama API'sinin hızı sınırlıdır (saniye başına makul bir fiyatla). İsteklerinizin alanını ayırın veya hız sınırlamasını önlemek için toplu iş uç noktasını kullanın. Hız sınırı sonunda zaman aşımına uyacağınız için bağlanabileceksiniz.

Sonraki adımlar

Azure Communications Gateway Sağlama API'siyle tümleştirmeye başlayın.