# 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";