双向外呼(新)
双向外呼接口
应用场景
双向外呼接口主要用于需要由系统发起外呼,先接通一方,然后再接通另外一方,达到接通双方的效果,一般的应用场景有:网页点击呼叫、系统自动发起外呼等
此接口主要包含以下几种功能:
转电话:先呼叫一方电话,接通后再呼叫另外一方电话,通过设置两个呼叫的主被叫信息实现; 转技能组:先呼叫一方电话,接通后转入技能组,通过设置技能组ID实现; 转IVR:先呼叫一方电话,接通后转入IVR流程,通过设置IVR名称实现;
接口地址
请求示例
请求消息
POST /v3/api/makeCall/calling HTTP/1.1
Host: m.icsoc.net
Content-Type: application/json
Authorization: Bearer {用户中心认证的access_token}
{
"callerId": "01058545734",
"tel": "18611112222",
"timeOut": 12,
"transTo": "tel",
"transPlay": "10011",
"connCalledPlay":"10002",
"connTimeoutPlay":"10003",
"transCaller": "01058545734",
"transCalled": "18611113333",
"timeLimit": 12,
"userData": {
"test": "123"
}
}
响应体
{
"code": 200,
"message": "ok",
"callId": "6632842348982198272"
}
请求参数
转电话
{
"callerId":"15151515",
"tel":"13612345678",
"timeOut":12,
"transTo":"tel",
"transPlay":"10001",
"connCalledPlay":"10002",
"connTimeoutPlay":"1003",
"transCaller":"1515151534",
"transCalled":"12345678911",
"timeLimit":12,
"enableCallback": 0,
"callbackBindingSecs": 21600,
"noticeSound":"1557",
"noticeTimeLimit":10,
"userData":{
"test":"123"
}
}
转技能组
{
"callerId":"15151515",
"tel":"13612345678",
"timeOut":12,
"transTo":"que",
"transPlay":"10001",
"transQue":"12",
"userData":{
"test":"123"
}
}
转IVR
{
"callerId":"15151515",
"tel":"13612345678",
"timeOut":12,
"transTo":"ivr",
"transPlay":"",
"transIvr":"IVRcode",
"ivrVar":{
"UNAME":"小红",
"COMPANY":"中通天鸿",
"TRANS_PHONE":"12345678911"
},
"userData":{
"test":"123"
}
}
字段说明
公共参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
callerId | string | 呼叫第一方时显示的主叫号码,为空时系统将随机获取企业下的一个主叫号码 | 否 |
tel | string | 呼叫的第一方的电话号码 | 是 |
timeOut | int | 呼叫超时时间 单位s, 默认50s | 否 |
transTo | string | 转接类型:tel-转分机、que-转队列、ivr-转IVR | 是 |
transPlay | string | 主叫接通时播放的语音,转ivr时不生效,此语音为系统后台上传的语音文件id,例如10001 | 否 |
userData | json对象 | 用户自定义对象,此字段为自定义参数,呼叫后将原样推送回去,主要用于标记业务属性参数,长度限制 500byte | 否 |
转电话参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
connCalledPlay | string | 接通后被叫提示的语音,此语音为系统后台上传的语音文件id,例如10001 | 否 |
connTimeoutPlay | string | 接通超时挂机前提示的语音,此语音为系统后台上传的语音文件id,例如10001 | 否 |
transCaller | string | 转接电话使用的主叫,为空时系统将随机获取企业下的一个主叫号码 | 否 |
transCalled | string | 转接的电话 | transTo为tel,该字段必填 |
timeLimit | int | 最长通话时间 单位s,范围:30s–3小时, 不传为0 不限制 | 否 |
enableCallback | int | 是否开启回呼的功能,如果开启则会记录呼叫绑定的关系,电话可以通过回拨外显号码的方式找到双向外呼的对方,例如双向外呼号码分别为A/B,外显主叫号码分别是X/Y(X和Y可以相同也可以不同),就是号码A收到X的呼叫,号码B收到Y的呼叫,然后A通过呼叫X可以找到B,B通过呼叫Y可以找到A,1为开启,0为关闭,默认为0 | 否 |
callbackBindingSecs | int | 回呼关系绑定的时长,即只有在此时长内才能回呼,超过此时长后关系就解绑了,无法回呼,单位s, 默认为21600,8个小时,此配置只有在 enableCallback 开启的情况下有效 | 否 |
noticeTimeLimit | int | 通话结束前N秒提醒,0为不提醒 | 否 |
noticeSound | string | 提醒使用的语音,此语音为系统后台上传的语音文件id,例如10001 | 否 |
转技能组参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
transQue | int | 队列ID,可以通过后台查看也可以通过API接口获取 | transTo为que,该字段必填 |
转IVR参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
transIvr | string | IVR编码 | transTo为ivr,该字段必填,ivr编码可以通过后台系统查看,具体的值为流程编号 |
ivrVar | json | ivr变量,json中只能使用一级的变量,在此传递的变量的使用需要先在要转接的ivr中配置好变量,具体见ivr中的根节点 | 否 |
响应结果
参数 | 类型 | 说明 |
---|---|---|
callId | string | 本次呼叫唯一标识(call为小写,Id的首字母大写,d为小写) |
code | int | 状态码 |
message | string | 错误信息 |
状态码说明
code | 说明 |
---|---|
200 | ok |
301 | token不能为空 |
302 | token认证失败 |
401 | 企业代码为空 |
402 | 企业代码不存在 |
403 | 主叫号码为空 |
404 | 被叫号码为空 |
405 | 呼叫失败 |
406 | 主叫号码格式不正确 |
407 | 被叫号码格式不正确 |
408 | 呼叫主叫号码显示或者呼叫被叫号码显示 不存在,请统一填写你们的400号码 |
500 | 请求参数为空 |
501 | 转接类型错误(tel/que/ivr) |
502 | 呼叫的电话为空 |
503 | 呼叫的电话格式不正确 |
504 | 转接号码为空 |
505 | 转接号码格式不正确 |
506 | 转接的技能组ID为空 |
507 | 转接的技能组不存在 |
508 | 转接的IVR名称为空 |
509 | 转接的IVR不存在 |
510 | 外呼主叫号码不存在,请填写配置400号码或中继号 |
511 | 转接电话使用的主叫号码不存在,请填写配置400号码或中继号 |
512 | grpc请求异常 |
513 | 号码归属查询出错 |
514 | 非法主叫号码 |
515 | 无可用外呼主叫号码 |
516 | gRpc调用返回值异常 |
517 | 企业不正确 |
518 | 企业过期 |
519 | 被叫号码不正确 |
520 | 主叫号码在黑名单 |
521 | 主叫号码被风控 |
522 | 主叫号码没有外呼能力 |
523 | 系统异常,请联系管理员 |
524 | 放音的语音ID错误 |
525 | callId参数错误 |
526 | 通话不存在 |
双向外呼挂断接口
接口地址
请求示例
请求消息
POST /v3/api/makeCall/hangUp HTTP/1.1
Host: m.icsoc.net
Content-Type: application/json
Authorization: Bearer {用户中心认证的access_token}
{
"callId":"6632842348982198272"
}
响应体
{
"code": 200,
"message": "ok",
"callId": "6632842348982198272"
}
请求参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
callId | string | 通话唯一标识 | 是 |
响应结果
参数 | 类型 | 说明 |
---|---|---|
callId | string | 本次呼叫唯一标识(call为小写,Id的首字母大写,d为小写) |
code | int | 状态码 |
message | string | 错误信息 |
状态说明
同双向外呼接口的状态码说明
话单推送
话单查询
接口地址
请求参数
参数 | 类型 | 说明 | 必选 |
---|---|---|---|
call_id | string | 通话唯一标识 | 是 |
响应结果
参数 | 类型 | 说明 |
---|---|---|
code | int | 200 为正常,其它均为不正常 |
message | string | 消息 |
data | array | 信息 |
请求示例
请求消息
POST wintelapi/v2/webcall/cdr/search HTTP/1.1
Host: m.icsoc.net
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {用户中心认证的access_token}
call_id=6987675906508750848
响应体
{
"code": 200,
"message": "ok",
"data": [
{
"id": "107xxx521",
"vcc_id": "xxxx",
"call_id": "67829xxxxx86528",
"caller": "175xxx23", // 主叫
"called": "180xxx21466", // 被叫
"called_areacode": "0902",
"called_areaname": "新疆 哈密",
"called_type": "MOBILE",
"called_vendor": "SIP",
"trans_caller": "175xxx3423", // 转接主叫
"trans_phone": "11897", // 转接坐席
"trans_areacode": "",
"trans_areaname": "",
"trans_type": "",
"trans_vendor": "",
"start_time_ee": "1617185008", // 坐席被呼叫时间
"ring_time_ee": "1617185008", // 坐席振铃时间
"answer_time_ee": "1617185009", // 坐席接通时间
"end_time_ee": "1617185035", // 坐席挂机时间
"start_time": "1617184989", // 客户被呼叫时间
"ring_time": "1617184991", // 客户振铃时间
"ans_time": "1617185008", // 客户应答时间
"link_time": "1617185009", // 客户被呼叫时间
"end_time": "1617185035", // 客户挂机时间
"ans_secs": "27", // 客户应答秒数
"link_secs": "26", // 客户与坐席通话秒数,即坐席通话秒数
"all_secs": "46", // 客户被呼叫总秒数
"callresult": "2", // 呼叫结果,描述见 string 字段
"endresult": "11", // 挂机结果,描述见 string 字段
"callresult_string": "双向接通",
"endresult_string": "主叫挂机",
"call_context": "xxx",
"call_exten": "v1",
"call_vars": "",
"user_data": "{\"phone\":\"180xxx466\",\"proid\":\"xxx\"}",
"record_file": [
"https://record.icsoc.net/123.mp3"
]
}
]
}