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的生成构成

参数名称必选类型描述
appIdLong调用接口的APPID
timestampLong当前时间戳,毫秒数。不能和当前时间偏差5分钟
signString签名方式: 拼接字符  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


参数

参数名称必选类型描述
callerString主叫号码
calleeString被叫号码
outCallIdString透传id,最长64个字符 ,非必传参数;在话单推送时将回传该值。

返回参数

参数名称必选类型描述
codeInteger200正常, 其他异常
msgString错误信息
dataCallResult呼叫结果信息。CallResult详细参数要求如下所示。

CallResult 参数说明

参数名类型长度是否必选说明
callidentifierString64呼叫标识

请求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 状态通知


此接口将调用配置的回调地址。


参数

参数名称必选类型描述
callidentifierString发起呼叫返回的通话唯— ID
statusString固定值: Disconnected 挂断
answerTime条件必选String双方接通的北京时间,格式化格式如下yyyy-MM-dd HH:mm:ss
endTimeString挂断的北京时间,格式化格式如下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

返回参数

参数名称必选类型描述
codeString200正常,其他异常
msgString错误信息
dataString


3.3 拉取录音


录音文件url自通话结束后的三天内有效


请求地址:http://record.v3.quanmayun.com:9090/api/qmc-cdr/openapi/api/v1/record 或 /api/qmc-cdr/openapi/v1/record


Url 参数

参数名称必选类型描述
callidentifierString发起呼叫返回的通话唯一ID

返回参数

参数名称必选类型描述
codeInteger200正常, 其他异常
msgString错误信息
dataFileResult成功必带, FileResult详细参数要求如下所示。

FileResult参数说明

参数名类型长度是否必选说明
fileUrlString
语音文件 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


参数

参数名称必选类型描述
callidentifierString发起呼叫返回的通话唯一ID

返回参数

参数名称必选类型描述
codeInteger200正常,其他异常
msgString错误信息