如何从受监控的来电中检索RingCentral通话记录?

时间:2019-03-08 22:40:22

标签: voice telephony voice-recording ringcentral call-recording

我正在通过监听“呼叫会话通知”(CSN)public事件过滤器来监视RingCentral上的传入呼叫:

telephony/sessions

由此,我将收到类似以下的事件。 /restapi/v1.0/account/~/extension/~/telephony/sessions 属性将出现,表明有可用的录音。我如何检索该录音?

recordings

1 个答案:

答案 0 :(得分:0)

有两种方法可以使用事件中的信息来检索记录,特别是recordings[0].id属性和sessionID属性。

  1. 使用recording属性直接调用recordings[0].id端点。
  2. 通过使用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

在此示例中,以下各项的accountId11111111,而recordingId44444444

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}

在此示例中,sessionId1234567890,因此您将具有如下的公司通话记录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"
    }
  }
}