我正在处理一个应用程序,我需要在主线或任何可用扩展程序上收到通话时收到通知。应该订阅哪个事件来获取通知?
此外,RingCentral是否支持Webhook通知? 在某些地方,我遇到了一些东西,说RingCentral只支持PubNub,但我看到有一种方法可以将TransportType作为PubNub或Webhook提供。
答案 0 :(得分:2)
您希望订阅Presence事件,确保将detailedTelephonyStatus
查询参数设置为true
。
以下是创建在线状态事件订阅的文档中的示例:
POST /restapi/v1.0/subscription HTTP/1.1
Authorization: Bearer U0pDMDFQMDFQQVMwMnxBQUJFU3VOMlp2bjZFR0gxNFhfTUNONhaU1SVHc
Content-Type: application/json
Content-Length: 235
{
"eventFilters": [
"/restapi/v1.0/account/~/extension/~/presence?detailedTelephonyState=true&aggregated=true"
],
"deliveryMode": {
"transportType": "PubNub",
"encryption": "true"
}
}
在eventFilters
属性中,您需要为要监控的帐户中的每个分机添加数组元素。
我创建了一个内置Node.js的示例应用程序,用于在此处创建对RingCentral沙盒帐户中所有扩展的订阅:https://github.com/bdeanindy/ringcentral-subscription-basics。
是的,请阅读有关创建订阅的文档https://developers.ringcentral.com/api-docs/latest/index.html#!#RefCreateSubscription,您会看到支持PubNub
和Webhook
transportType 。
以下是如何创建使用Webhook
transportType 的订阅的示例:
POST /restapi/v1.0/subscription HTTP/1.1
Accept: application/json
Authorization: Bearer U0pDMDFQMDFQQVMwMXxBQURIZjAzWFFySGpMen
Content-Type: application/json
Content-Length: 269
{
"eventFilters": [
"/restapi/v1.0/account/~/extension/~/presence",
"/restapi/v1.0/account/~/extension/~/message-store"
],
"deliveryMode": {
"transportType": "WebHook",
"address": "https://consumer-host.example.com/consumer/path"
}
}
您需要确保将deliveryMode.address
值更改为指向您设法接收事件的服务器。此服务器需要具有支持端口443上的连接的有效证书链。