Callcenter API

呼叫中心 REST API 接口使用说明

坐席呼叫相关

参数介绍

  • agent: 坐席的工号,如 10001,如果有对应的组,则是<组名>.<工号>,如 default.10001

  • extn: 分机号

  • queue: 队列名称

  • destNumber: 被叫号码

  • callUUID: 呼入 UUID

  • destUUID: 呼出 UUID

  • destAgent: 被叫坐席

  • destExtn: 被叫分机

  • vars: 坐席呼叫字符串参数

获取坐席状态

根据队列名称及类型获取该队列下坐席状态,例如,查询队列名test并且类型为callcenter下的所有坐席状态。

  • 请求 URL/api/cc/agent_state?queue=test&type=callcenter

  • 请求方式GET

  • 返回(示例)

[
  {
    "callstate": "IDLE",
    "group_id": "default",
    "queue_id": "test",
    "agent_uuid": "",
    "state": "READY",
    "agent_id": "1020",
    "extn": "1020"
  }
]

坐席签入

  • 请求 URL/api/cc/ccc/ccLogin
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "agent": "1022",
  "extn": "1022",
  "queue": "welcome_queue_example"
}

签入示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"agent":"1022","extn": "1022","queue": "welcome_queue_example"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccLogin"

坐席签出

  • 请求 URL/api/cc/ccc/ccLogout
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "agent": "1022"
}

签出示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"agent":"1022"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccLogout"

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席示闲

  • 请求 URL/api/cc/ccc/ccGoReady
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "agent": "1022"
}

示闲示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"agent":"1022"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccGoReady"

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席示忙

  • 请求 URL/api/cc/ccc/ccGoBreak
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "agent": "1002",
  "reason": "have lanch"
}

示忙请求示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"agent":"1002","reason":"have lanch"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccGoBreak"

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席外呼

  • 请求 URL/api/cc/ccc/ccDial
  • 请求方式POST

外呼请求 JSON 内容格式如下:

{
  "agent": "1006",
  "extn": "1006",
  "destNumber": "15666xx1111"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"agent":"1006","extn":"1006","destNumber":"15666xx1111"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccDial"

坐席未签入返回如下

{
  "message": "can not find group?",
  "code": 500
}

已呼出如下

{
  "message": "success",
  "code": 200
}

坐席应答

  • 请求 URL/api/cc/ccc/ccAnswer
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "destUUID": "qqwwszztxxxxxxxxxxx"
}

应答示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destUUID" = "qqwwszztxxxxxxxxxxx"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccAnswer"

坐席挂机

  • 请求 URL/api/cc/ccc/ccKill
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "destUUID": "qqwwszztxxxxxxxxxxx"
}

挂机示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destUUID" = "qqwwszztxxxxxxxxxxx"}' \
-H "Content-Type: application/json" 192.168.1.100:8081/api/cc/ccc/ccKill

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席呼叫保持

  • 请求 URL/api/cc/ccc/ccHold
  • 请求方式POST

请求 JSON 内容格式如下:

{
  "callID": "qqwwszztxxxxxxxxxxx"
}

保持示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"callID" = "qqwwszztxxxxxxxxxxx"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccHold"

取消保持示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"callID" = "qqwwszztxxxxxxxxxxx"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccUnHold"

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席转接

  • 请求 URL/api/cc/ccc/ccTransfer
  • 请求方式POST

转接请求 JSON 内容格式如下:

{
  "callID": "f2e15a60-4fc1-494a-823c-55bbca71b4a6",
  "destNumber": "1009"
}

转接示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"callID":"f2e15a60-4fc1-494a-823c-55bbca71b4a6","destNumber":"1009"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccTransfer"

三方通话

  • 请求 URL/api/cc/ccc/ccThreeWay
  • 请求方式POST

邀请分机

JSON 内容格式如下:

{
  "destAgent": "1009",
  "destExtn": "1009",
  "callID": "f2e15a60-4fc1-494a-823c-55bbca71b4a6"
}

邀请外部号码

请求 JSON 内容格式如下:

{
  "destAgent": "PSTN",
  "destExtn": "1566609xxxx",
  "callID": "f2e15a60-4fc1-494a-823c-55bbca71b4a6"
}

三方通话示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1009","destExtn":"1009","callID":"f2e15a60-4fc1-494a-823c-55bbca71b4a6"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccThreeWay"

成功返回如下

{
  "message": "success",
  "code": 200
}

坐席监听

  • 请求 URL/api/cc/ccc/ccMonitor
  • 请求方式POST

坐席 A 和客户 B 通话中,坐席 C 调用接口监听该通话(坐席 C 必须是签入状态)。

  • agent:坐席 C 的工号,如 1003
  • extn:坐席 C 的分机号,如 1003
  • destAgent:坐席 A 的工号,如 1002
  • destUUID:需要监听通话的channel UUID

请求 JSON 内容格式如下:

{
  "destAgent": "1002",
  "destUUID": "e2e15a60-4fc1-494a-823c-55bbca71b4c6",
  "agent": "1003",
  "extn": "1003"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1002","destUUID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6","agent":"1003","extn":"1003"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccMonitor"

成功返回如下

{
  "code": 200,
  "message": "success"
}

邀请外部号码监听

  • 请求 URL/api/cc/ccc/ccMonitor
  • 请求方式POST

坐席 A 和客户 B 通话中,调用接口邀请外部号码并监听该通话。

  • agent:PSTN
  • extn:外部号码,如 131xxxxxxxx
  • destAgent:坐席 A 的工号,如 1002
  • destUUID:需要监听通话的channel UUID

请求 JSON 内容格式如下:

{
  "destAgent": "1002",
  "destUUID": "e2e15a60-4fc1-494a-823c-55bbca71b4c6",
  "agent": "PSTN",
  "extn": "131xxxxxxxx"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1002","destUUID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6","agent":"PSTN","extn":"131xxxxxxxx"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccMonitor"

成功返回如下

{
  "code": 200,
  "message": "success"
}

坐席强插

  • 请求 URL/api/cc/ccc/ccIntercept
  • 请求方式POST

坐席 A 和客户 B 通话中,坐席 C 调用接口直接与客户 B 通话,坐席 A 挂断。

  • agent:坐席 C 的工号,如 1003
  • extn:坐席 C 的分机号,如 1003
  • destAgent:坐席 A 的工号,如 1002
  • destUUID:需要强插通话的channel UUID

请求 JSON 内容格式如下:

{
  "destAgent": "1002",
  "destUUID": "e2e15a60-4fc1-494a-823c-55bbca71b4c6",
  "agent": "1003",
  "extn": "1003"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1002","destUUID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6","agent":"1003","extn":"1003"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccIntercept"

成功返回如下

{
  "code": 200,
  "message": "success"
}

外部号码强插

  • 请求 URL/api/cc/ccc/ccIntercept
  • 请求方式POST

坐席 A 和客户 B 通话中,调用接口实现外部号码 C 直接与客户 B 通话,坐席 A 挂断。

  • agent:PSTN
  • extn:外部号码 C 的号码,如 131xxxxxxxx
  • destAgent:坐席 A 的工号,如 1002
  • destUUID:需要强插通话的channel UUID

请求 JSON 内容格式如下:

{
  "destAgent": "1002",
  "destUUID": "e2e15a60-4fc1-494a-823c-55bbca71b4c6",
  "agent": "PSTN",
  "extn": "131xxxxxxxx"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1002","destUUID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6","agent":"PSTN","extn":"131xxxxxxxx"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccIntercept"

成功返回如下

{
  "code": 200,
  "message": "success"
}

咨询转

  • 请求 URL/api/cc/ccc/ccConsult
  • 请求方式POST

坐席 A 和客户 B 通话中,调用此接口客户 B 处于播放等待音乐,此时坐席 A 与坐席 C 通话,咨询是否方便通话,方便则坐席 A 挂断,坐席 C 直接与客户 B 通话,不方便坐席 C 挂断,则坐席 A 继续与客户 B 通话。

  • agent:坐席 A 的工号,如 1002;如果咨询外线,则设置为 PSTN
  • destExtn:坐席 C 的分机号,如 1003,如果为咨询外线,则设置外部号码,比如 131xxxxxxxx
  • destAgent:坐席 C 的工号,如 1003
  • callID:坐席 A 通话的channel UUID

咨询坐席 C 请求 JSON 内容格式如下:

{
  "destAgent": "1003",
  "callID": "f2f30dc1-b4ff-48d6-b016-32469e537226",
  "agent": "1002",
  "destExtn": "1003"
}

咨询外线号码请求 JSON 内容格式如下:

{
  "destAgent": "1003",
  "callID": "f2f30dc1-b4ff-48d6-b016-32469e537226",
  "agent": "PSTN",
  "destExtn": "131xxxxxxxx"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"destAgent":"1003","callID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6","agent":"1002","destExtn":"1003"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccConsult"

成功返回如下

{
  "code": 200,
  "message": "success"
}

确定咨询转

  • 请求 URL/api/cc/ccc/ccTransferConsult
  • 请求方式POST

坐席 A 和客户 B 通话中,调用此接口客户 B 处于播放等待音乐,此时坐席 A 与坐席 C 通话,咨询是否方便通话。调用此接口则表示方便通话,确定转到坐席 C 上

  • callID:坐席 A 通话的channel UUID

请求 JSON 内容格式如下:

{
  "callID": "f2f30dc1-b4ff-48d6-b016-32469e537226"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"callID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccTransferConsult"

成功返回如下

{
  "code": 200,
  "message": "success"
}

取消咨询转

  • 请求 URL/api/cc/ccc/ccCancelConsult
  • 请求方式POST

坐席 A 和客户 B 通话中,调用此接口客户 B 处于播放等待音乐,此时坐席 A 与坐席 C 通话,咨询是否方便通话。调用此接口则表示不方便通话,坐席 A 继续与客户通话。

  • callID:坐席 A 通话的channel UUID

请求 JSON 内容格式如下:

{
  "callID": "f2f30dc1-b4ff-48d6-b016-32469e537226"
}

示例:

curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \
-d '{"callID":"e2e15a60-4fc1-494a-823c-55bbca71b4c6"}' \
-H "Content-Type: application/json" "192.168.1.100:8081/api/cc/ccc/ccCancelConsult"

成功返回如下

{
  "code": 200,
  "message": "success"
}

前端接口

前端电话条接口 Demo 见callcenter

WebSocket接口使用说明