Udesk ServiceGo open-cti(1.0.1)

您好,欢迎接入 Udesk ServiceGo open-cti, 以下提供基本用法、注意事项、示例代码等。

一、基本用法

1、在 ServiceGo 系统里设置/渠道管理/组件管理/电话中设置组件链接等其他设置

2、根据下载地址下载 open-cti.js 文件,引入到提供组件链接的页面内

二、注意事项

浏览器兼容型

SDK 目前支持 IE9+(含)的 IE 浏览器与基于它内核(360/qq/…)、其他主流浏览器(chrome/firefox/…)。

三、下载地址

open-cti.min.js 下载地址

四、示例代码

(function () {
    OpenCTI.on('Ready', function () {
        OpenCTI.off('Ready');
        OpenCTI.onInitialized();
        OpenCTI.setWindowMode(1);
        OpenCTI.setWindowWidth(272);
        OpenCTI.setWindowHeight(420);
        OpenCTI.onAuthenticated();
        OpenCTI.on('CallOut', function (number, options) {
            window.makeCall(number, options);
        });
        OpenCTI.screenPop({
            objectApiName: 'contact',
            fieldApiName: 'phone',
            number: 'XXXXXXXXX',
            callId: '123456',
            isCallIn: 1,
            isCallOut: 0,
            callOutAutoScreenPop: 0,
            callInAutoScreenPop: 0,
        });
    });
})();

五、API

OpenCTI.enableDialIcon()
描述:

启用 ServiceGo 系统中电话号码后面的外呼按钮。点击按钮的话,会把号码通过 sdk 发送到外呼组件,直接外呼。

OpenCTI.disableDialIcon()
描述:

禁用 ServiceGo 系统中电话号码后面的外呼按钮。

OpenCTI.showWindow()
描述:

显示窗口。

OpenCTI.screenPop(options)
描述:

弹屏。

options 对象参数说明:
名称 类型 说明
objectApiName String 弹屏需要创建的对象 ApiName
fieldApiName String 弹屏需要创建的对象的主字段 ApiName
number String 电话号码
callId String 通话唯一 Id
isCallIn Bool 是否呼入
isCallOut Bool 是否呼出
callOutAutoScreenPop Bool 是否呼出自动弹屏
callInAutoScreenPop Bool 是否呼入自动弹屏
OpenCTI.setWindowMode(mode)
描述:

窗口显示模式。

mode=1 Window 模式,即窗口模式,此时外呼组件会显示在一个小窗口里,停靠在屏幕右下角;

mode=2 WideScreen 模式,即宽屏模式,此时外呼组件的宽度会占满屏幕,高度可自定义调整,但不可调宽度。

OpenCTI.setWindowWidth(width)
描述:

设置窗口宽度。注意,只有在窗口模式是 window 模式时,才会起作用,否则,此方法调用无效。

OpenCTI.setWindowHeight(height)
描述:

窗口高度,可以接受数字(即像素值)或符合符合 CSS height规范的字符串(https://developer.mozilla.org/en-US/docs/Web/CSS/height)。

OpenCTI.setWindowTitleColor(color)
描述:

标题行的颜色值。可以接受符合 CSS color规范的字符串(https://developer.mozilla.org/en-US/docs/Web/CSS/color)

OpenCTI.onInitialized()
描述:

当外呼组件初始化完成之后,调用此方法,通知服务端已经初始化好了。

服务端接受到此事件后,会立即触发Authenticate事件,开始鉴权流程。

OpenCTI.onAuthenticated()
描述:

当外呼组件鉴权完成之后,调用此方法,通知服务端已经完成鉴权了。

服务端接受到此事件后,会发送外呼组件的配置信息,同时自动启用电话号码后的点击外呼按钮。

OpenCTI.onTokenExpired()
描述:

当发现客户端token失效时,回调此方法。这时,ServiceGo 系统会再次向后台请求新的token,尝试自动恢复认证。

OpenCTI.onSettingChanged()
描述:

当用户改变了外呼组件设置时,调用此方法。服务端会把用户的设置保存到数据库中。

注意:无论哪个配置项发生了变化,都需要发送完整的设置信息,因为后台是作为一个整个JSON数据保存的,只会全部替换。

如果信息不完整,会导致其余的信息丢失。

OpenCTI.destroy()
描述:

销毁 open-cti 实例。

六、事件监听

Ready
描述:

OpenCTI SDK 的客户端和服务端需要进行一些必要的通信工作才能正常工作,

所以,客户端 sdk 的所有方法必须等到 Ready 事件之后才能调用。

示例代码:
OpenCTI.on('Ready', function () {});
OpenCTI.off('Ready');
Authenticate
描述:

认证事件

示例代码:
OpenCTI.on('Authenticate', function (actionData) {});
OpenCTI.off('Authenticate');
actionData 对象参数说明:
名称 类型 说明
token String 外呼组件所需要的客户端认证 token
LoadSetting
描述:

ServiceGo 系统会在加载了外呼组件的配置信息后,以事件的形式把配置数据发送过来。

此事件会在 Authenticate 完成之后发生。

示例代码:
OpenCTI.on('LoadSetting', function (eventData) {});
OpenCTI.off('LoadSetting');
CallOut
描述:

外呼事件

示例代码:
OpenCTI.on('CallOut', function (actionData) {});
OpenCTI.off('CallOut');
actionData 对象参数说明:
名称 类型 说明
number String 外呼的电话号码(格式符合 ServiceGo 电话字段的验证规则)