/* eslint-disable */ var sapoOcx = { } var webSocket = null sapoOcx.api = { config: { serverIp: '124.205.241.254', // CTI服务器地址 commuPort: 8081, // CTI服务器通讯端口 policyPort: 1209, // CTI服务器安全认证端口(不修改) debug: true, // 调试模式 waitFlag: 10, // 加载通信组件重新加载次数 initFinish: false, // 初始化是否完成 callBackArray: [], // 事件通知回调函数 connectToServer: function(callback) { if (!this.initFinish) { this.initFinish = true setTimeout('sapoOcx.api.config.connectToServer()', 200) } else { callback // this.getOcx().initConnection(this.serverIp, this.commuPort) } }, getOcx: function() { return socket.api } }, /** * 设置调试运行模式 */ setDebugMode: function() { this.config.debug = true }, /** * 设置事件通知函数 * @param {String} event 事件类型 * @param {String} funName 回调函数名 */ setCallBack: function(event, funName) { if (!this.config.initFinish) { this.config.callBackArray.push([event, funName]) } else { this.config.getOcx().setCallBack(event, funName) } }, /** * 连接到CTI服务器 * @param {String} server 服务器IP地址 * @param {String} port 服务端口(可选) */ connect: function(server, port, callback) { this.config.serverIp = server if (port != null && port != '') { this.config.commuPort = port } this.config.connectToServer(callback) }, /** * 坐席登录 * @param {String} agent 姓名 * @param {String} extension 分机号 * @param {String} queue 技能组 * @param {String} staffid 工号 * @param {String} skill 技能值 * @param {String} busyString 置忙原因 * @param {String} sectorId 部门id * @param {String} sectorName 部门名称 * @param {String} autoAcw 自动话后 */ login: function(agent, extension, queue, staffid, skill, busyString, sectorId, sectorName, autoAcw, hearbeartInterval, domain, security) { if (busyString == null) { busyString = '' } if (sectorId == null) { sectorId = '' } if (sectorName == null) { sectorName = '' } if (autoAcw != '0' && autoAcw != '1' && autoAcw != '2' && autoAcw != '3') { autoAcw = '0' } if (domain == null) { domain = '' } if (security == null) { security = '' } if (hearbeartInterval == null || hearbeartInterval <= 0) { hearbeartInterval = 0 } web_hearbeartInterval = hearbeartInterval web_extension = extension web_agentStaffid = staffid web_agentName = agent web_skill = skill this.config.getOcx().login(agent, extension, queue, staffid, skill, busyString, sectorId, sectorName, autoAcw, domain, security) }, /** * 注销登录 */ loginOut: function() { this.config.getOcx().loginOut() }, /** * 获取分机/坐席列表 * @param {String} type 获取类型 * all:全部分机/idle:空闲分机/agent:全部已登录坐席/agentidle:空闲坐席 * @param {String} secid * @param {String} group */ getExtenList: function(type, secid, queue) { if (type == null || type == '') { type = 'all' } if (secid == null) { secid = '' } if (queue == null) { queue = '' } this.config.getOcx().getExtenList(type, secid, queue) }, /** * 外拨 * @param {String} phone 呼叫号码 */ dial: function(phone, cusid, cusname, proid, proname) { if (cusid == null) { cusid = '' } if (cusname == null) { cusname = '' } if (proid == null) { proid = '' } if (proname == null) { proname = '' } this.config.getOcx().dial(phone, cusid, cusname, proid, proname) }, /** * 保持 */ hold: function() { this.config.getOcx().hold() }, /** * 解除保持 */ unhold: function() { this.config.getOcx().unhold() }, /** * 挂机 */ hangup: function() { this.config.getOcx().hangup() }, /** * 置闲 */ free: function() { this.config.getOcx().idle() }, /** * 置忙 * @param {String} busy 置忙原因 */ busy: function(busy) { if (busy == null) { busy = '' } this.config.getOcx().busy(busy) }, /** * 三方 * @param {String} phone 三方号码 */ threeWay: function(phone) { this.config.getOcx().threeWay(phone) }, /** * 转接 * @param {String} phone 转接号码 */ transfer: function(phone) { this.config.getOcx().transfer(phone) }, /** * 磋商转接 * @param {String} phone 转接号码 */ transferC: function(phone) { this.config.getOcx().transferC(phone) }, /** * 转接组 * @param {String} queue 组号 */ transferQueue: function(queue) { this.config.getOcx().transferQueue(queue) }, /** * 转接IVR节点 * @param {String} ivr 节点编号 */ transferIvr: function(ivr) { this.config.getOcx().transferIvr(ivr) }, /** * 抢接(盲抢) */ pickUp: function() { this.config.getOcx().pickUp() }, /** * 抢接分机 * @param {String} exten 分机号 */ extenPickUp: function(exten) { this.config.getOcx().extenPickUp(exten) }, /** * 组抢接 * @param {String} group 组号 */ groupPickUp: function(group) { this.config.getOcx().groupPickUp(group) }, /** * 分机监听 * @param {String} extension 分机号 */ spy: function(extension) { this.config.getOcx().spy(extension) }, /** * 组监听 * @param {String} group 组 */ groupSpy: function(group) { this.config.getOcx().groupSpy(group) }, /** * 版本信息 */ getVersion: function() { return web_version }, /** * 获取当前分机号码 */ getExtension: function() { return web_extension }, /** * 获取当前座席工号 */ getAgentStaffid: function() { return web_agentStaffid }, /** * 获取当前座席姓名 */ getAgentName: function() { return web_agentName }, /** * 获取当前座席技能组 */ getSkill: function() { return web_skill }, /** * 获取当前通话号码 */ getNumber: function() { return web_number }, /** * 获取置忙原因 */ getBusyState: function() { return web_busyStatue }, /** * 获取坐席注册状态 */ getAgentState: function() { return web_agentStatue }, /** * 获取通话状态 */ getCallState: function() { return web_callStatue }, /** * 获取话机注册状态 */ getRegState: function() { return web_reg }, /** * 取消IVR监听 */ Inject: function() { this.config.getOcx().Inject() } }