Как настроить музыку для удержания RingCentral?

RingCentral имеет возможность загружать пользовательскую музыку для удержания через пользовательский интерфейс. Можно ли это сделать через API, как пользователь и как администратор для других пользователей? Поиск в справочнике по API не дал API.

Вот некоторая информация об этой функции:

Вот как выглядит пользовательский интерфейс:

введите здесь описание изображения


person Grokify    schedule 07.09.2019    source источник


Ответы (2)


Попробуйте ringcentral API для создания пользовательского приветствия и установки приветствия введите как HoldMusic https://developers.ringcentral.com/api-reference/Rule-Management/createCustomUserGreeting

Создайте API пользовательского приветствия

person Oleg Bannyi    schedule 08.09.2019

Для этого есть два шага:

  1. Получите идентификатор правила ответа для правила, которое вы хотите изменить. Это может быть стандартное правило, такое как business-hours-rule, или созданное вами пользовательское правило. Вы можете вызвать Get Call Handling Rules API, чтобы получить список текущих стандартных и настраиваемых правил.
  2. Вызовите Update Greeting API, задав для type значение HoldMusic и answeringRuleId для идентификатора, который вы хотите обновить, например. business-hours-rule

На самом деле существует несколько способов вызова Update Greeting API:

  1. multipart/form-data с отдельными струнными частями. При таком подходе отдельные части отправляются с именами type, answeringRuleId и binary.
  2. multipart/form-data с частью метаданных JSON. В этом подходе часть JSON MIME с именем json отправляется с полезной нагрузкой, например: {"type": "HoldMusic", "answeringRule": { "id": "12345678" }}
  3. multipart/mixed

Я предпочитаю первый подход (multipart/form-data с отдельными строковыми частями), потому что его легко использовать с такими инструментами, как cURL и многими HTTP-клиентами.

Вот пример использования Go:

package main

import(
    "log"
    "net/http"
    "net/url"
    "os"

    "github.com/grokify/gotilla/mime/multipartutil"
    "github.com/grokify/oauth2more/ringcentral"
)

func main() {

    // Get the Client (*http.Client):
    client, err = ringcentral.NewClientPassword(
        ringcentral.ApplicationCredentials{
            ClientID:     os.Getenv("RINGCENTRAL_CLIENT_ID"),
            ClientSecret: os.Getenv("RINGCENTRAL_CLIENT_SECRET"),
            ServerURL:    os.Getenv("RINGCENTRAL_SERVER_URL")},
        ringcentral.PasswordCredentials{
            Username:  os.Getenv("RINGCENTRAL_USERNAME"),
            Extension: os.Getenv("RINGCENTRAL_EXTENSION"),
            Password:  os.Getenv("RINGCENTRAL_PASSWORD")})
    if err!=nil {
        log.Fatal(err)
    }

    // Create the HTTP Request (*http.Request)
    params := url.Values{}
    params.Set("type", "HoldMusic")
    params.Set("answeringRuleId", "business-hours-rule")

    req, err := multipartutil.NewRequest(
        http.MethodPost,
        "https://platform.ringcenral.com/restapi/v1.0/account/~/extension/~/greeting",
        params,
        []multipartutil.FileInfo{
            {
                MIMEPartName: "binary",
                Filepath:     "mygreeting.wav",
            },
        },
    )

    // Send the request
    resp, err = client.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("STATUS: %v\n", resp.StatusCode) 
}
person Grokify    schedule 02.01.2020