RingCentral 传真 API 中缺少传真 "from" 和 "callerId" 参数

Fax "from" and "callerId" parameters missing from RingCentral fax API

我一直在尝试使用 RingCentral API 发送传真,但无法指定 From 传真 phone 号码来发送传真。它仅使用公司传真号码发送传真。我找不到使用号码传真的选项。我使用以下端点发送传真:

https://platform.ringcentral.com/restapi/v1.0/account/:accountId/extension/:extensionId/fax

在RingCentral系统中,From(或发送)传真号码为传真来电显示值。您可以为您的分机更新此值以用于您的传真,但该值在发送传真 API 本身中不可用。要在每次发送的基础上更改此设置,您可以在每次传真请求之前更新来电显示值。

您可以使用两种方法更新传真来电显示:

  1. 通过API或
  2. 使用在线帐户门户 (https://service.ringcentral.com),这两者都在下面进行了描述。

两者都在下面进行了描述。让我知道这是否适合你。

1) 更新传真来电显示

要更新传真呼叫者 ID,请调用 PUT extension/caller-id 端点并使用您所在号码的 phone 号码 ID 更新 FaxNumber 功能的 callerId有兴趣使用。您可以通过调用下一节中显示的 extension/phone-number 来获取此列表。

PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id
Authorization: Bearer {accessToken}
Content-Type: application/json

{
  "byFeature": [
    {
      "feature": "FaxNumber",
      "callerId": {
        "phoneInfo": {
          "id": 33333333
        }
      }
    }
  ]
}

有关更多信息,请参阅 API 参考资料:https://developer.ringcentral.com/api-docs/latest/index.html#!#RefUpdateCallerId

1.1) 列出可用的来电显示号码

要获取您可以使用的号码列表,请调用 GET extension/phone-number 端点:

GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number
Authorization: Bearer {accessToken}

在您的 JSON 回复中,您将在 records 属性 中获得 phone 个号码的列表。您可以使用的号码将具有以下 属性 值:

  • features 属性 将具有 CallerId
  • type 属性 将设置为 VoiceFaxFaxOnly

以下是显示一个数字的 JSON 回复的摘录。你应该有更多的数字和一个 paging 对象。

{
  "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/phone-number?page=1&perPage=100",
  "records":[
    {
      "id":33333333,
      "phoneNumber":"+16505550100",
      "paymentType":"Local",
      "location":"Belmont, CA",
      "type":"VoiceFax",
      "usageType":"DirectNumber",
      "status":"Normal",
      "country":{
        "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/country/1",
        "id":"1",
        "name":"United States"
      },
      "features":[
        "SmsSender",
        "CallerId",
        "MmsSender"
      ]
    }
  ]
}

有关更多信息,请参阅 API 参考资料:https://developer.ringcentral.com/api-docs/latest/index.html#!#RefUserPhoneNumbers.html

1.2) 读取传真来电显示值

RingCentral 支持多个来电显示值。要读取扩展的值,请对 extension/caller-id 端点进行以下 API 调用:

GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id
Authorization: Bearer {accessToken}

您将收到如下响应,其中包含 byFeature 属性 中的来电显示值数组。查找 feature 属性 设置为 FaxNumber 的特征。我在下面只显示 FaxNumber 功能来电显示,但数组包括以下功能:CallFlipFaxNumberRingMeRingOutMobileApp, Alternate.

{
  "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/caller-id",
  "byFeature":[
    {
      "feature":"FaxNumber",
      "callerId":{
        "type":"PhoneNumber",
        "phoneInfo":{
          "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/phone-number/33333333",
          "id":"33333333",
          "phoneNumber":"+16505550100"
        }
      }
    }
  ]
}

有关更多信息,请参阅 API 参考资料:https://developer.ringcentral.com/api-docs/latest/index.html#!#RefGetCallerId

2) 使用在线帐户门户

您还可以在以下在线帐户门户中更改来电显示值:

Settings > Outbound Calls > Caller ID > By Feature > Fax Number

此知识库文章中提供了更多内容:

https://success.ringcentral.com/articles/RC_Knowledge_Article/3614

这在我使用 RingCentral Java SDK 时对我有用。

  1. 获取 sender/caller 号码列表,我可以将其用于我的 Fax/call
RestClient rc = new RestClient(RINGCENTRAL_CLIENTID, RINGCENTRAL_CLIENTSECRET, RINGCENTRAL_SERVER);
rc.authorize(RINGCENTRAL_USERNAME, RINGCENTRAL_EXTENSION, RINGCENTRAL_PASSWORD);

GetExtensionPhoneNumbersResponse numbers = rc.restapi().account().extension().phonenumber().get();
  1. 更新sender/caller号码
RestClient rc = new RestClient(RINGCENTRAL_CLIENTID, RINGCENTRAL_CLIENTSECRET, RINGCENTRAL_SERVER);
rc.authorize(RINGCENTRAL_USERNAME, RINGCENTRAL_EXTENSION, RINGCENTRAL_PASSWORD);
          
ExtensionCallerIdInfo resp = rc.restapi().account().extension().callerid().get();

for (CallerIdByFeature e : resp.byFeature) {
    if (e.callerId.phoneInfo != null) {
        e.callerId.phoneInfo.phoneNumber("**********");
    }
}
resp = rc.restapi().account().extension().callerid().put(resp);