如何设置 RingCentral 保持音乐?
How to set RingCentral hold music?
RingCentral 能够通过 UI 上传自定义等待音乐。这可以通过 API 以用户和其他用户的管理员身份完成吗?在 API Reference 中搜索暂停音乐没有找到 API。
以下是有关此功能的一些信息:
- 用户:https://support.ringcentral.com/s/article/1798
- 管理员:https://support.ringcentral.com/s/article/8360
这是 UI 的样子:
尝试 ringcentral API 创建自定义用户问候语并将问候语类型设置为 HoldMusic
https://developers.ringcentral.com/api-reference/Rule-Management/createCustomUserGreeting
Create custom user greeting API
这有两个步骤:
- 获取您要更改的规则的应答规则 ID。这可以是标准规则,例如
business-hours-rule
,也可以是您创建的自定义规则。您可以调用 获取呼叫处理规则 API 来获取当前标准和自定义规则的列表。
- 调用 更新问候语 API,将
type
设置为 HoldMusic
,将 answeringRuleId
设置为您希望更新的 ID更新,例如business-hours-rule
实际上有几种调用更新问候语的方法API:
multipart/form-data
带有单独的字符串部分。在这种方法中,单独的部分以名称 type
、answeringRuleId
和 binary
发送
multipart/form-data
和 JSON 元数据部分。在这种方法中,发送一个名为 json
的 JSON MIME 部分,其有效负载如下:{"type": "HoldMusic", "answeringRule": { "id": "12345678" }}
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)
}
RingCentral 能够通过 UI 上传自定义等待音乐。这可以通过 API 以用户和其他用户的管理员身份完成吗?在 API Reference 中搜索暂停音乐没有找到 API。
以下是有关此功能的一些信息:
- 用户:https://support.ringcentral.com/s/article/1798
- 管理员:https://support.ringcentral.com/s/article/8360
这是 UI 的样子:
尝试 ringcentral API 创建自定义用户问候语并将问候语类型设置为 HoldMusic https://developers.ringcentral.com/api-reference/Rule-Management/createCustomUserGreeting
Create custom user greeting API
这有两个步骤:
- 获取您要更改的规则的应答规则 ID。这可以是标准规则,例如
business-hours-rule
,也可以是您创建的自定义规则。您可以调用 获取呼叫处理规则 API 来获取当前标准和自定义规则的列表。 - 调用 更新问候语 API,将
type
设置为HoldMusic
,将answeringRuleId
设置为您希望更新的 ID更新,例如business-hours-rule
实际上有几种调用更新问候语的方法API:
multipart/form-data
带有单独的字符串部分。在这种方法中,单独的部分以名称type
、answeringRuleId
和binary
发送
multipart/form-data
和 JSON 元数据部分。在这种方法中,发送一个名为json
的 JSON MIME 部分,其有效负载如下:{"type": "HoldMusic", "answeringRule": { "id": "12345678" }}
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)
}