# markdown
**Repository Path**: sc-tanyo/markdown
## Basic Information
- **Project Name**: markdown
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-03-20
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 成都飞云兴客信息技术有限公司
### WEB 对接接口说明
## 前言
>以下地址均为兴龙云平台JS访问地址,针对于自建客户,建议把域名改为本地服务器IP地址。
## 注意事项
>接口函数中如需要使用可选字段,如当前字段前有可选字段,那么请务必对前面的可选字段传入默认值,否则会把使用的字段当成前面的字段。
## 方案1
说明:自定义界面,提供通信接口。
自定义文件库:
https://www.51feiyun.com/libs/io/seat/1.0.0/xl_client.js
具体接口请看接口函数。
执行通信初始化操作
```
xl_seat.xlClient.bootstrap(host, ssl, domain, staffId, password, handler);
```
>参数说明
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
host | 服务器地址,如:127.0.0.1,默认为HTTPS | string
ssl | 是否使用ssl布尔型,默认false | boolean
domain | 公司账号,如:xlong | string
staffId | 工号,如:8001 | string
password | 密码 | string
handler | 回调函数 | function
handler 回调函数说明
```
obj = {
onerror(args...) {
console.debug("send b2s pdu error!");
};
//server complete handler request
oncomplete(args…) {
console.debug("send b2s pdu complete!");
};
}
```
## 方案2
>说明:提供常用通信操作界面和通信接口,需要加载以下依赖库文件。
>
>由于以下JS是带有界面的库文件,其中使用了特定版本的页面样式,可能会和自己的页面样式冲突。为了避免和自己的页面样式冲突,建议优先加载我们的库文件,在自己的样式文件引用前,这样就不会覆盖掉自己的样式。JS库文件如果使用async方法可以放在标签前面。通信工具栏标签注意如果是同步加载JS 的方法,必须保证标签在JS 前加载。
依赖库:
https://www.51feiyun.com/libs/ui/seat/1.0.0/polyfills.js
https://www.51feiyun.com/libs/ui/seat/1.0.0/vendor.js
https://www.51feiyun.com/libs/ui/seat/1.0.0/app.js
### 使用方式:
#### 1.添加工具栏界面标签在html里,可以添加在自己想显示的位置
```
```
> PS:需要注意的是标签`````` 一定要加在标签显示的位置,在哪里界面就显示在界面的上方
#### 2.加载完页面后初始化界面
```
xl_seat.startup();
```
#### 3.执行通信初始化操作
```
xl_seat.xlClient.bootstrap(host, ssl, domain, staffId, password, handler);
```
>参数说明
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
host | 服务器地址,如:127.0.0.1,默认为HTTPS | string
ssl | 是否使用ssl布尔型,默认false | boolean
domain | 公司账号,如:xlong | string
staffId | 工号,如:8001 | string
password | 密码 | string
handler | 回调函数 | function
handler 回调函数说明
```
obj = {
onerror(args...) {
console.debug("send b2s pdu error!");
};
//server complete handler request
oncomplete(args…) {
console.debug("send b2s pdu complete!");
};
}
```
## 接口函数
#### 1.修改状态
```
xl_seat.xlClient.changeStatus(status, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
status | 状态 1:闲置 、2:忙碌、3:离开、6:小休 | number
handler | 回调函数(可选) | 详情见附件
#### 2.外呼
```
xl_seat.xlClient.callout(phone, listener, handler, extFields);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
phone | 外呼号码 | string
listener | 监听对象CallTaskStatusListener(可选) | 详情见附件
handler | 回调函数(可选) | 详情见附件
extFields | 自定义字段,json格式字符串(可选),该自定义字段, 最终的值会放在通话记录中,在由对接方进行处理。 | JSON
#### 3.咨询
```
xl_seat.xlClient.ask(seatId, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
seatId | 转移坐席工号 | string
handler | 回调函数(可选) | 详情见附件
#### 4.三方
```
xl_seat.xlClient.threeway(seatId, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
seatId | 转移坐席工号 | string
handler | 回调函数(可选) | 详情见附件
#### 5.转移
```
xl_seat.xlClient.transfer(seatId, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
seatId | 转移坐席工号 | string
handler | 回调函数(可选) | 详情见附件
#### 6.挂断
```
xl_seat.xlClient.hangup(phone, isThird, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
phone | 挂断电话号码 | string
isThird | 如果当前通话为监听,三方,等等第三方操作,则参数为true,正常挂断为false | boolean
handler | 回调函数(可选) | 详情见附件
#### 7.保持
```
xl_seat.xlClient.holdup(phone, on, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
phone | 保持电话号码 | string
on | 开(true)关(false) | boolean
handler | 回调函数(可选) | 详情见附件
#### 8.拨打其他坐席
```
xl_seat.xlClient.callSeat(staffId, extFields, listener, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
staffId | 坐席工号 | string
extFields | 自定义字段,json格式字符串(可选) | JSON
listener | 监听函数CallTaskStatusListener(可选)| 详情见附件
handler | 回调函数(可选) | 详情见附件
#### 9.查询坐席组成员状态
```
xl_seat.xlClient.querySeatGroupMemberStatus(seatgroupid, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
seatgroupid | 坐席组id | string
handler | 回调函数(可选) | 详情见附件
PS: handler.oncomplete 返回参数为SeatGroupStatus[] 见附件
#### 10.退出
```
xl_seat.xlClient.logout(handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
handler | 回调函数(可选) | 详情见附件
#### 11.绑定话机
```
xl_seat.xlClient.bindTerminal(terminalType, bindPhone, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
terminalType | 绑定的话机类型 0:无 1:sip 软电话 2:h5 电 3:手机 | number
bindPhone | 需要绑定的手机,当terminalType 类型为手机时,需要传电话号码,(可选)| string
handler | 回调函数(可选) | 详情见附件
#### 12.监听来电弹屏
```
@需要重写
xl_seat.xlClient.onAssignPhone(obj);
```
说明:需用户自己重载实现自己的来电弹屏和群呼弹屏等业务
###### obj(JSON)
字段名 | 字段说明 | 字段类型
-------------- | -------------- | --------------
srcType | 呼入参数对象,来电类型1:坐席,2:用户 | number
phone | 来电号码 | string
Info | 地区说明 | JSON
###### Info(JSON)
字段名 | 字段说明 | 字段类型
-------------- | -------------- | --------------
srcType | 呼入参数对象,来电类型1:坐席,2:用户 | number
areaCode | 来电地区编号 | string
areaName | 来电地区名字 | string
lastServeTime | 上传服务时间 | number
lastSeatId | 上次服务坐席ID | number
#### 13.监听来电状态变化
```
@需要重写
xl_seat.xlClient.onCallinCallTaskStatus(accepted, phone);
```
>注意,此接口只是针对使用h5语音的时候电话呼入触发的函数
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
accepted | 是否接受 | boolean
phone | 呼入号码 | string
#### 14.自定义来电提醒框
```
@需要重写
xl_seat.xlClient.incomingDialogShow(cllingPhone,successCallback, dangerCallback);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
cllingPhone| 来电号码 | string
successCallback | 点击摘机回调函数 | function
dangerCallback | 点击忽略回调函 | function
#### 15.隐藏来电提醒框
```
@需要重写
xl_seat.xlClient.incomingDialogHide(dialog);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
dialog | 自定义来电提醒框对象对象 | 对话框
#### 16.修改来电自动摘机接听设置
```
xl_seat.xlClient.autoAnswer(on, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
on | true 开,false 关 | string
handler | 回调函数 (可选) | 详情见附件
#### 17.修改自动置闲设置
```
xl_seat.xlClient.autoCallin(on, handler);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
on | true 开,false 关 | string
handler | 回调函数 (可选) | 详情见附件
#### 18.监听通话排队等待信息
```
@需要重写
xl_seat.xlClient.onWaitQueue = (actionType, queueUser);
```
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
actionType | "Append" 增加 "Remove" 去除 | string
queueUser | 排队用户信息,类型QueueUser | 详情见附件
#### 19.监听推送消息
```
@需要重写
xl_seat.xlClient.onClientPushMsg= (header, body);
```
>参数说明
参数名 | 参数说明 | 字段类型
-------------- | -------------- | --------------
Header | | string
Body | | string
## 附件
#### 1.回调函数Handler:
```
obj = {
onerror(args...) {
console.debug("send b2s pdu error!");
};
//server complete handler request
oncomplete(args…) {
console.debug("send b2s pdu complete!");
};
}
```
#### 2.任务状态监听函数CallTaskStatusListener
```
CallTaskStatusListener = {
//创建通话
onCreate = function(phone: string) {};
//等待坐席应答
onWaitSeat = function(phone: string) {};
// 等待和坐席
onWaitBridge = function(phone: string) {};
// 通话挂断
onBridged = function(phone: string) {};
// 通话结束
onEnded = funciton(phoen: string) {};
}
```
使用方法,创建一个listener 对象然后重载方法
```
var listener = xl_seat.xlClient.buildCallTaskStatusListener();
listener.onCreate = function() {
console.log("create");
}
```
#### 3.SeatGroupStatus 对象
```
SeatGroupStatus {
id;
name;
seatGroupMemberStatus: [SeatGroupMemberStatus];
}
```
#### 4.SeatGroupMemberStatus 对象
```
SeatGroupMemberStatus {
id;
staffId; //工号
sipUsername; //sip账号
name;
status;
}
```
#### 5.QueueUser 对象
```
QueueUser {
taskId; // 任务id
phone; // 电话号码
srcType; // 来源类型
joinTime; // 加入时间
address; // 来源地址
}
```
来源类型:
Phone : "phone";
Web : "web";
App : "app";
Wechat : "wechat";