SWX系列接口说明
1 接口说明
网关作为client,CRM作为server,通过websocket建立通讯,实现坐席功能。数据格式采用JSON。
加密方式为“自定义字段+timestamp+server_name”做MD5计算通过token带回。服务器只需重新计算比对token值即可。
1.1 注册crm
l 请求方向 网关->CRM
l 接口URL ws://host:port/CC/WebSocket 在网关配置界面可配
l 发送内容 无
1.2 心跳保持
l 请求方向 网关->CRM
l 发送内容 {}
l 参数说明 每5秒发送一次
1.3 Crm发送外呼指令
- 请求方向 CRM->网关
- 发送内容
{
“Action”: “API_Originate”,
“ActionID”: “test;1235”,
“CalledNum“: “13800138000“,
“SeatNum“: “8001“,
“Account“: “053188888888“,
}
- 参数说明
参数名 | 含义 | 说明 |
Action | 命令字 | API_Originate |
CalledNum | 被叫号码 |
|
SeatNum | 座席号码 |
|
Account | 计费信息 |
|
|
|
|
1.4 弹屏通知
- 请求方向 网关->CRM
- 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "Popup",
"Privilege": "api,all",
"CallerNum": "13616549910",
"SeatNum": "9000"
}
}
- 参数说明
参数名 | 含义 | 说明 |
server_name | 公司简写 | 如sdas,在网关配置页面中配置 |
ssl | 是否加密 | false为明文 |
Event | 事件类型 | Popup |
CallerNum | 主叫号码 |
|
SeatNum | 主席号码 |
|
1.5 发送话单
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "Cdr",
"Privilege": "api,all",
"src": "9000",
"srctech": "SIP/9000",
"dst": "13616549910",
"dsttech": "SWX/1",
"start": "2017-12-04 05:56:20",
"answer": "2017-12-04 05:56:20",
"end": "2017-12-04 05:56:25",
"billsec": "5",
"disposition": "NO ANSWER",
"accountcode": "test;1234",
"recordurl": ""
"direction":"in"
"amaflags":"BILLING"
"uniqueid": "1523418461.3",
"dstcallerid": "8002"
}
}
l 参数说明
参数名 | 含义 | 说明 |
server_name | 公司简写 | 如sdas,在网关配置页面中配置 |
ssl | 是否加密 | false为明文 |
Event | 事件类型 | Cdr |
src | 呼叫来源 |
|
srctech | 来源类型 | SWX/1..n,n为通道数,最大值为8 SIP/分机号 |
dst | 呼叫目的地 |
|
dsttech | 目的地类型 | SWX/1..n,n为通道数,最大值为8 SIP/分机号 |
start | 开始时间 |
|
answer | 摘机时间 |
|
end | 结束时间 |
|
billsec | 通话时长 | 秒 |
recordurl | 录音文件地址 | 如 /sdas/2017/11/25/8008. 13863982739.83101251.1511486227.295100.mp3 |
accountcode | 计费信息 | 外呼时CRM传入,原样带回 |
direction | 呼叫方向 | lo:本地呼叫(分机呼叫分机) in:中继呼入 out:中继呼出 |
amaflags | 计费信息 | OMIT:不计费 BILLING:计费 |
uniqueid | 唯一ID |
|
dstcallerid | 最终分机号 | 最终到达的分机号 |
1.6 发送短信
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “SWXSendMSM”,
“ActionID”: “test;1235”,
“Channel“: “1“,
“Number“: “13800138000“,
“Message“: “你好,yuio1235*&(“,
“Encode”:”0”
}
参数名 | 含义 | 说明 |
Action | 命令名 | SWXSendMSM |
Channel | 通道选择 | 选择从哪个通道发出(1-8) |
Number | 发送目的地 | 目的地号码 |
Message | 短信内容 |
|
Encode | 编码格式 | 0:UCS2; 1:7bit |
1.7 短信成功报告
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "SWXSMSSendOK",
"Privilege": "api,all",
"Channel": "1".
}
}
参数名 | 含义 | 说明 |
Event | 事件类型 | SWXSMSSendOK |
Device | 通道 | 哪个通道发送成功(1-8) |
1.8 接收短信
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "SWXNewSMS",
"Privilege": "api,all",
"Channel": "1",
"From": "13800451234",
"LineCount": "2",
"MessageLine0": "你好",
"MessageLine1": "test",
}
}
参数名 | 含义 | 说明 |
Event | 事件类型 | SWXNewSMS |
Channel | 通道 | 哪个通道发送成功 |
From | 短信来源 |
|
LineCount | 短信行数 |
|
MessageLine | 第几行短信 |
|
1.9 查看通道状态
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “SWXShowDevices”,
“ActionID”: “test;1235”,
}
参数名 | 含义 | 说明 |
Action | 命令名 | SWXShowDevices |
ActionID | 命令ID | 返回值带回 |
1.10 通道状态返回
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "SWXDeviceEntry",
"ActionID": "test;1235",
"Privilege": "api,all",
"Device": "swx1",
"Channel": "1",
"RSSI": "31",
"CCID": "XXXXXX",
"IMEI": "XXXXXX",
“COPS”:
“PIN”:
“State”:
}
}
参数名 | 含义 | 说明 |
Event | 事件类型 | SWXDeviceEntry |
Channel | 通道 | 通道号 1-8 |
ActionID | 命令ID | 与SWXShowDevices下发相同 |
Device | 通道名 | 可不关心 |
RSSI | 信号强度 | 0-31 |
CCID | SIM CCID |
|
IMEI | 模块IMEI值 |
|
COPS | 运营商 |
|
PIN | SIM卡pin状态 | N/a |
State | 通道状态 | NoSIM SIM卡为检测 Idle 通道空闲 Dialing 正在呼出 Moring 对方震铃 Talking 通话中 Incoming 呼入 SIMPin 需要PIN码 Init 模块初始化 |
1.11 设置系统时间
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “API_SetSystemTime”,
"ActionID": "010990",
“SystemTime“: “2018-03-09 10:10:10“,
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_SetSystemTime |
ActionID | 命令ID | 用于区分命令序号 |
SystemTime | 系统时间 | 支持时间格式为YYYY-MM-DD hh:mm:ss |
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
“Response”: “Success”,
"ActionID": "010990", //同命令下发的ActionID
“Message“: “xxxxxxx“,
}
}
1.12 查询通道状态
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “SWXShowChannelsState”,
"ActionID": "010990",
}
参数名 | 含义 | 说明 |
Action | 命令名 | SWXShowChannelsState |
ActionID | 命令ID | 用于区分命令序号 |
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Response": "Success",
"ActionID": "12334",
"Channel1": "NoSIM",
"Channel2": "NoSIM",
"Channel3": "NoSIM",
"Channel4": "NoSIM",
"Channel5": "Idle",
"Channel6": "NoSIM",
"Channel7": "NoSIM",
"Channel8": "NoSIM",
"ChannelCount": "8",
}
}
参数名 | 含义 | 说明 |
Response |
| Success |
ActionID | 命令ID | 用于区分命令序号 |
ChannelCount | 通道数 | 8 |
Channel[n] | 通道状态 | NoSIM SIM卡为检测 Idle 通道空闲 Dialing 正在呼出 Moring 对方震铃 Talking 通话中 Incoming 呼入 SIMPin 需要PIN码 Init 模块初始化 |
1.13 查询通道信号
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “SWXShowChannelsRSSI”,
"ActionID": "010990",
}
参数名 | 含义 | 说明 |
Action | 命令名 | SWXShowChannelsRSSI |
ActionID | 命令ID | 用于区分命令序号 |
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Response": "Success",
"ActionID": "12334",
"Channel1": "31",
"Channel2": "31",
"Channel3": "31",
"Channel4": "31",
"Channel5": "31",
"Channel6": "31",
"Channel7": "31",
"Channel8": "31",
"ChannelCount": "8",
}
}
参数名 | 含义 | 说明 |
Response |
| Success |
ActionID | 命令ID | 用于区分命令序号 |
ChannelCount | 通道数 | 8 |
Channel[n] | 通道状态 | 0-31,31为信号最强 |
1.14 坐席状态变化通知
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_ExtensionStatus",
"Exten": "8001",
"Status": "Idle"
}
}
参数名 | 含义 | 说明 |
Exten | 坐席号 |
|
Status | 当前状态 | NOT_INUSE=就绪 INUSE=占用 BUSY=置忙 INVALIED= 不可用 UNAVAILABLE=振铃 RINGING=振铃 RINGINUSE=振铃 ONHOLD=通道保持 PAUSED=暂停(只对队列成员有用) |
1.15 排队成员添加
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueCallerJoin",
"Queue": “test",
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueCallerJoin |
Queue | 队列名 | 队列成员的名字 |
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.16 排队成员离开
主叫为座席接听或者主叫主动放弃推出等待队列都会有该事件。
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueCallerLeave",
"Queue": “test",
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueCallerLeave |
Queue | 队列名 | 队列成员的名字 |
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.17 排队成员放弃等待
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueCallerLeave",
"Queue": “test",
”HoldTime“:”100”,
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueCallerLeave |
Queue | 队列名 | 队列成员的名字 |
HoldTime | 等待时长 | 单位为秒 |
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.18 队列分机振铃
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueMemberRinging",
"Queue": “test",
”Memeber“:”8000”,
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberRinging |
Queue | 队列名 | 队列成员的名字 |
Member | 队列成员 |
|
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.19 队列分机无应答
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueMemberNoAnswer",
"Queue": “test",
”Memeber“:”8000”,
“RingTime”:”100”,
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberNoAnswer |
Queue | 队列名 | 队列成员的名字 |
Member | 队列成员 |
|
RingTime | 振铃时长 | 在该分机上的振铃时长,单位为秒 |
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.20 队列分机应答
l 请求方向 网关->CRM
l 发送内容
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
"Event": "API_QueueMemberAnswer",
"Queue": “test",
”Memeber“:”8000”,
“RingTime”:”100”,
“HoldTime”:”50”,
"IncomingCaller": "13813569912"
}
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberAnswer |
Queue | 队列名 | 队列成员的名字 |
Member | 队列成员 |
|
HoldTime | 总共等待时长 | 单位秒 |
RingTime | 振铃时长 | 在该分机上的振铃时长,单位为秒 |
IncomingCaller | 等待的主叫号码 | 13813569912 |
1.21 队列成员置忙控制
用于暂停队列中的成员继续接听电话
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “API_QueueMemberPause”,
“ActionID”: “test;1235”,
“Extension“: “8000“,
“Queue“: “test“,
“Paused“: “true“,
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberPause |
ActionID | 命令ID |
|
Extension | 分机号 | 如8000 8001 |
Queue | 队列名 |
|
Paused | 是否置忙 | true表示置忙,false表示置闲 |
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
“Response”: “Success”, // 失败为Error
"ActionID": "test;1235", //同命令下发的ActionID
“Message“: “xxxxxxx“,
}
}
1.22 队列成员添加
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “API_QueueMemberAdd”,
“ActionID”: “test;1235”,
“Extension“: “8000“,
“Queue“: “test“,
“Paused“: “false“,
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberPause |
ActionID | 命令ID |
|
Extension | 分机号 | 如8000 8001 |
Queue | 队列名 |
|
Paused | 添加时是否置忙 | true表示置忙,false表示置闲 |
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
“Response”: “Success”, // 失败为Error
"ActionID": "test;1235", //同命令下发的ActionID
“Message“: “xxxxxxx“, //返回消息
}
}
1.23 队列成员删除
l 请求方向 CRM->网关
l 发送内容
{
“Action”: “API_QueueMemberRemove”,
“ActionID”: “test;1235”,
“Extension“: “8000“,
“Queue“: “test“,
}
参数名 | 含义 | 说明 |
Action | 命令名 | API_QueueMemberRemove |
ActionID | 命令ID |
|
Extension | 分机号 | 如8000 8001 |
Queue | 队列名 |
|
返回值
{
"type": 3,
"server_id": 1,
"server_name": "sdas",
"ssl": false,
"timestamp": "20180105164815",
"token": "D183B0AEDDF86A3CE0FA00A9BA565FD0",
"data": {
“Response”: “Success”, // 失败为Error
"ActionID": "test;1235", //同命令下发的ActionID
“Message“: “xxxxxxx“, //返回消息
}
}