我正在通过监听“呼叫会话通知”(CSN)public
事件过滤器来监视RingCentral上的传入呼叫:
telephony/sessions
由此,我将收到类似以下的事件。 /restapi/v1.0/account/~/extension/~/telephony/sessions
属性将出现,表明有可用的录音。我如何检索该录音?
recordings
答案 0 :(得分:0)
有两种方法可以使用事件中的信息来检索记录,特别是recordings[0].id
属性和sessionID
属性。
recording
属性直接调用recordings[0].id
端点。call-log
属性查询sessionId
端点间接地注释1:在通话进行过程中,即使在“呼叫会话通知”事件中存在录音ID,也无法检索该录音。通话结束后不久即可恢复录音。
注释2:通话记录可以是公司确定的MP3或WAV格式。为了区别起见,在检索记录文件时,请检查响应
Content-Type
标头中的MIME类型。
1)直接通过Recording API
您可以调用Recording API端点并通过手动构造记录URL来直接检索媒体,如下所示:
https://media.ringcentral.com/restapi/v1.0/account/{accountId}/recording/{recordingId}/content
在此示例中,以下各项的accountId
是11111111
,而recordingId
是44444444
:
https://media.ringcentral.com/restapi/v1.0/account/11111111/recording/44444444/content
这种方法很快,可能会出错,因为RingCentral过去一次更改了媒体主机名。尽管没有预料到的变化,但未来的更改是调用安全call-log
API并从响应中获取完整的媒体URL,这是一种更安全和建议的方法。有关这种方法,请参见下文。
2)通过呼叫记录API间接
对call-log
API进行中间API调用具有双重好处:成为接收媒体URL的官方方法,并为调用提供更多元数据。通过这种方法,recording.id
记录中的call-log
将与“呼叫会话通知”事件中的recordings[0].id
属性匹配。
可以通过事件中的call-log
参数调用公司帐户和用户扩展名sessionId
的API,如下所示:
GET /restapi/v1.0/account/~/call-log?sessionId={sessionId}
GET /restapi/v1.0/account/~/extension/~/call-log?sessionId={sessionId}
在此示例中,sessionId
是1234567890
,因此您将具有如下的公司通话记录API URL
GET /restapi/v1.0/account/~/call-log?sessionId=1234567890
响应对象将具有recording
属性,该属性提供用于获取媒体文件的超媒体链接。该文件可以是WAV或MP3格式,可以在响应Content-Type
标头中传达。
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100",
"records": [
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log/1234567890ABCDEFGabcdefgh?view=Simple",
"id": "1234567890ABCDEFGabcdefgh",
"sessionId": "1234567890",
"startTime": "2019-03-08T22:30:29.505Z",
"duration": 35,
"type": "Voice",
"direction": "Inbound",
"action": "Phone Call",
"result": "Accepted",
"to": {
"phoneNumber": "+16505550100",
"name": "Jane Doe"
},
"from": {
"phoneNumber": "+14155550100",
"name": "John Smith",
"location": "San Francisco, CA"
},
"recording": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/recording/44444444",
"id": "44444444",
"type": "OnDemand",
"contentUri": "https://media.ringcentral.com/restapi/v1.0/account/111111111/recording/44444444/content"
},
"extension": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/111111111/extension/22222222",
"id": 22222222
},
"reason": "Accepted",
"reasonDescription": "The call connected to and was accepted by this number."
}
],
"paging": {
"page": 1,
"perPage": 100,
"pageStart": 0,
"pageEnd": 0
},
"navigation": {
"firstPage": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100"
},
"lastPage": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100"
}
}
}