1 简介
本文档适用于双向回呼接口调用,主要包含了发起呼叫、结束呼叫、呼叫状态通知、以及获取录音的 API。本接口所用的APPID与APPSECRET可自行创建。
文档中所有未标明请求方式的接口皆为POST方式调用,请求体JSON格式。
接口访问需要互相添加IP白名单,请联系我司相关支撑人员
呼叫状态回调地址,请自己在平台设置, 配置错误情况下不会重新发送
2 公共请求头 Authorization
Authorization为“APPID:timestamp:sign”字符串的Base64编码值,其中冒号为半角。
请求头示例如下:
POST /api/qmc-call/openapi/api/v1/call
HTTP/1.1 Content-Type:
application/json; charset=utf-8
Authorization:
MTY5NjA1NDMwOTk2OTEwNDg5ODoxNjkzMjcwMjI2NjQyOmFhNzI2MzlhODY4NDljM2MyZTJiZj
ljMmVjYzExOTd
Authorization的生成构成
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| appId | 是 | Long | 调用接口的APPID |
| timestamp | 是 | Long | 当前时间戳,毫秒数。不能和当前时间偏差5分钟 |
| sign | 是 | String | 签名方式: 拼接字符 APPID:APPSECRET:tim estamp 的MD5值 |
示例代码
sign = DigestUtil.md5Hex(APPID+":"+APPSECRET+":"+timestamp)
3 接口说明
3.0 接口域名(BaseUrl)
http://api.v3.quanmayun.com:9090
3.1 发起呼叫
请求地址
{BaseURL}/api/qmc-call/openapi/v1/call
参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| caller | 是 | String | 主叫号码 |
| callee | 是 | String | 被叫号码 |
| outCallId | 否 | String | 透传id,最长64个字符 ,非必传参数;在话单推送时将回传该值。 |
返回参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| code | 是 | Integer | 200正常, 其他异常 |
| msg | 是 | String | 错误信息 |
| data | 是 | CallResult | 呼叫结果信息。CallResult详细参数要求如下所示。 |
CallResult 参数说明
| 参数名 | 类型 | 长度 | 是否必选 | 说明 |
| callidentifier | String | 64 | 是 | 呼叫标识 |
请求URI及消息头说明
| HTTP方法 | URL | 描述 |
|
|---|
| POST | /api/qmc-call/openapi/v1/call |
|
|
| 消息头 | 必选/可选 | 值 | 描述 |
|
|---|
| Authorization | 必选 | {credential} | 其中{credential}为“APPID:timestamp:sign” 字符串的Base64 编码值,其中冒号为半角。 |
|
| Content-Type | 必选 | application / json |
|
| 消息体 | 必选/可选 | 描述 |
|
|---|
| 必选 | 参见请求参数说明 |
|
请求消息示例如下:
POST /api/qmc-call/openapi/api/v1/call
HTTP/ 1.1 Content-Type:
application/json;charset=utf-8
Authorization :
MTY5NjA1NDMwOTk2OTEwNDg5ODoxNjkzMjcwMjI2NjQyOmFhNzI2MzlhODY4NDljM2MyZTJiZjljMm
VjYzExOTdi
{
"caller": " 13987654321",
"callee": "13912345678"
}响应消息示例如下:
HTTP/ 1.1 200 OK
Content-Type: application/json;charset=utf8 Connection: close
{
"code": 200,
"success":
true, "data": {
"callidentifier": "
128754716574532539" },
"msg": "操作成
功" }
3.2 状态通知
此接口将调用配置的回调地址。
参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| callidentifier | 是 | String | 发起呼叫返回的通话唯— ID |
| status | 是 | String | 固定值: Disconnected 挂断 |
| answerTime | 条件必选 | String | 双方接通的北京时间,格式化格式如下yyyy-MM-dd HH:mm:ss |
| endTime | 是 | String | 挂断的北京时间,格式化格式如下yyyy-MM-dd HH:mm:ss |
| startTime | 条件必选 | String | 主叫接通的北京时间,格式化格式如下yyyy-MM-dd HH:mm:ss |
| reason | 条件必选 | String | 挂断原因 (当status为Disconnected时,表示断开原因。)HangUp:正常挂机,包括通话后被删除 CallerBusy:主叫忙 CallerNoAnswer: 主叫无应答 CallerFailure: 主叫其它 原因失败 CallerAbandon: 呼叫被叫过程中主叫挂机 CalleeBusy:被叫忙 CalleeNoAnswer:被叫无应答 CalleeFailure:被叫其它原因失败 Other: 其它原因失败 |
| callDuration | 条件必选 | String | 通话时长(单位秒) |
| recordingResult | 条件必选 | String | 录音是否成功(success代表成功 fail代表失败) |
| outCallId | 条件必选 | String | 透传id |
返回参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| code | 是 | String | 200正常,其他异常 |
| msg | 是 | String | 错误信息 |
| data | 是 | String |
|
3.3 拉取录音
录音文件url自通话结束后的三天内有效
请求地址:http://record.v3.quanmayun.com:9090/api/qmc-cdr/openapi/api/v1/record 或 /api/qmc-cdr/openapi/v1/record
Url 参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| callidentifier | 是 | String | 发起呼叫返回的通话唯一ID |
返回参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| code | 是 | Integer | 200正常, 其他异常 |
| msg | 是 | String | 错误信息 |
| data | 是 | FileResult | 成功必带, FileResult详细参数要求如下所示。 |
FileResult参数说明
| 参数名 | 类型 | 长度 | 是否必选 | 说明 |
| fileUrl | String |
| 是 | 语音文件 url |
请求消息示例如下:
POST /api/qmc-cdr/openapi/v1/record
HTTP/ 1.1Content-Type:
application/json;charset=utf-8
Authorization:
MTY5NjA1NDMwOTk2OTEwNDg5ODoxNjkzMjcwMjI2NjQyOmFhNzI2MzlhODY4NDljM2MyZTJiZjljMmVjYzExOTdi {
"callidentifier": " 128754716574532539" }
响应消息示例如下:
HTTP/ 1.1 200 OK
Content-Type: application/json;charset=utf-8
Connection: close
{
"code": 200,
"success": true,
"data": {
5
"fileUrl":
"http://xxxxxxx..." },
"msg": "操作成功"
}
3.4 结束呼叫
请求地址
{BaseURL}/api/qmc-call/openapi/v1/endCall
参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| callidentifier | 是 | String | 发起呼叫返回的通话唯一ID |
返回参数
| 参数名称 | 必选 | 类型 | 描述 |
|---|
| code | 是 | Integer | 200正常,其他异常 |
| msg | 是 | String | 错误信息 |