目录
呼叫中心接口文档 > PaaS >电话工具包(JS SDK)

电话工具包(JS SDK) 文档_v1.0

1 概述

1.1 工具包构成

电话工具包包含三部分:

  • SDK部分:
    • 纯JS代码,向应用提供JS API,包括可供应用调用的函数,及需要应用实现的回调函数
    • 完成坐席登录,呼叫控制,事件通知等功能
  • UI工具条(可选):
    • 提供标准的的界面,包括
      • 登录、呼叫按钮,用户号码输入框等;坐席代表可直接用来拨打电话
      • 状态展示区;向坐席展示当前的登录及呼叫状态。
    • 可嵌入客户应用界面
  • JsSIPPhone
    • 基于WebRTC技术实现,语音通信功能在浏览器中完成
    • 对浏览器版本要求比较严格,PC网络环境要求严格,不支持一个坐席同时多个页面使用电话条

客户应用可以仅集成SDK部分,也可以包含UI工具条部分。


1.2 电话终端(接听设备)

电话工具包本身集成了“jsSIPPhone”终端,坐席在浏览器中即可接听,不依赖任何外部设备,并且使用非常方便,但对浏览器版本有一定要求。

电话工具包也支持与外置的SIP终端配合(需要在SIP终端上配置坐席对应SIP账号、密码以及SIP服务地址)。

外置SIP终端包括

  • SIP话机终端,例如方位、潮流、亿联等品牌,需要单独购买
  • SIP软电话程序,例如Linphone、eyeBeam等等,需要单独下载安装

此外,坐席也可以使用PSTN电话作为接听设备。 具体来说

  • PSTN电话可以是坐席自己的手机或者座机
  • 在后台设置坐席绑定PSTN电话号码即可
  • 接听时会产生话费成本


2 工具包集成说明

2.1 工具包文件说明

工具包所有文件打包在PhoneKit.zip中。

具体包括:

*/PhoneKit/js/PhoneKit.js           //工具包脚本

*/PhoneKit/template/template.html   //电话条UI

*/PhoneKit/js/jssip-3.3.6.min.js    //jsSIPPhone依赖库


2.2 工具包导入

  1. 将PhoneKit.zip解压到集成页面的同级目录,保持文件夹结构不变
  2. 在页面头部引入js文件:

// 引入SDK

<script src="/PhoneKit/js/PhoneKit.js"></script>

// 引入jsSIPPhone

<script src="/PhoneKit/js/jssip-3.3.6.min.js"></script>

 

引入后在window作用域有该Sdk的对象:PhoneKit。

  1. 在页面中加入电话条UI

如果不使用UI工具条,则第3步不需要

参考template_b.html。

若使用jsSIPPhone,需在页面中添加audio并关联

<audio id="pbAudio" width="1px" height="1px" autoplay></audio>

 

// 页面加载后调用

PhoneKit.setAudioStub(document.getElementById('pbAudio'));


2.3 工具包初始化

<script>

    // 初始化工具包

    PhoneKit.initial({

      url: "{CTI服务器地址}",

      appSid: "{应用id}",

      agentNo: "{坐席号}",

      pwd: "{坐席密码}",

      onStatusEvent: function (data) {},

      onCallEvent: function (data) {},

      onConnEvent: function (connEvent) {},

    }, function(resp) {});

</script>

 

初始化接口说明

PhoneKit.initial(params, callback)

 

params参数说明

参数名

说明

url

CTI服务器地址

appSid

应用id

agentNo

坐席号

pwd

坐席密码

onStatusEvent

坐席状态事件回调函数

onCallEvent

呼叫事件回调函数

onConnEvent

连接事件回调函数

 

callback回调函数返回对象,属性如下:

参数

说明

statusCode

"00000"表示成功

statusMsg

说明

data

json对象,包含以下属性

phoneType

话机类型

workStatus

工作状态:0:下班, 1:就绪, 2:未就绪

pstnNumber

座席绑定的PSTN电话号码

sipNumber

座席绑定的SIP分机号码

sipPwd

SIP登陆密码

wsAddr

jsSIPPhone注册地址

 

3 回调接口

3.1 呼叫事件回调接口 onCallEvent

onCallEvent(data)

 

返data回对象,属性如下:

属性

说明

eventName

initiated, ringing, answered, completed,   failed

appSid

应用id

agentNo

坐席号

agentNumber

坐席号码

conversationSid

会话id

callSid

呼叫id

failedCause

failed, no-answer, canceled,time-out

sipCause

呼叫客户失败原因(callSubtype=1时有效)

completedCause

time-limit

callType

呼叫类型。1:拨号呼入、2:后台外呼、3:拨号外呼、4:点击外呼

callSubtype

呼叫子类型。1-呼叫用户;2-呼叫坐席

callState

呼叫状态:idle,ringing,connected,

userNumber

用户号码。来电呼入或外呼的用户号码

userNumberType

客户号码类型。1:固话、2:手机

userArea

用户号码归属地信息

isBridged

eventName="answered"且isBridged="0"表示应答未桥接

coAgentNo

合作坐席,用于咨询转接等场景

userData

自定义数据

timestamp

时间戳

 

3.1.1 eventName与failedCause说明

 

eventName

说明

"initiated"

呼叫发起

"ringing"

被叫振铃

"answered"

被叫应答

"completed"

呼叫结束

"failed"

呼叫失败

 

 

failedCause

说明

"failed"

呼叫失败-呼出失败

"no-answer"

呼叫失败-无应答

"canceled"

呼叫失败-取消

"time-out"

呼叫失败-超时

 

3.1.2 callSubtype与callType说明

callSubtype/callType

cst/ct

1-拨号呼入

2-后台外呼

3-拨号外呼

4-点击外呼

1-呼叫用户

M

M

2-呼叫坐席

M

M

O

 

3.1.3 sipCause 取值说明

2xx

  • 200 应答

4xx

  • 403 禁止呼叫
  • 404 线路失败
  • 408 呼叫请求超时
  • 480 无法呼通被叫
  • 484 请求地址格式无效
  • 486 被叫忙
  • 487 呼叫被取消

5xx

  • 500 服务端异常
  • 502 网关异常


3.2 坐席状态事件回调接口 onStatusEvent

onStatusEvent(data)

 

返回data对象,属性如下:

参数

说明

appSid

应用id

agentNo

坐席号

workStatus

座席工作状态:ready,pause

eventName

"login","pause","ready","completed"

pauseCause

暂停原因(workStatus=pause时有效)

readyCause

就绪原因(workStatus=ready时有效)

timestamp

时间戳

 

坐席状态事件说明

eventName

workStatus取值

事件说明

login

ready或pause

坐席登录成功,坐席状态为ready或pause

pause

pause

坐席暂停成功,坐席状态为pause

ready

ready

坐席就绪成功,坐席状态为ready

completed

pause

呼叫结束,坐席自动进入pause状态,用于整理

 

3.3 连接事件回调接口

onConnEvent(connEvent)

 

返回字符串,取值如下:

connEvent

说明

connected

WS已连接

disconnected

WS连接已断开

connect_fail

WS连接失败

auth_fail

鉴权失败

auth_succ

鉴权成功

sip_registered

JSSIP注册成功

sip_registeration_failed

JSSIP注册失败

sip_unregistered

JSSIP注册停止。当收到此回调后,应用必须调用login才能重新开始JsSIP注册

 

4 坐席状态管理接口

4.1 登入 login

PhoneKit.login(params, callback)

 

params对象包含以下属性

属性

说明

phoneType

1:SIP话机, 2:PSTN电话, 3:jsSIPPhone。必选。

workStatus

1:就绪, 2:非就绪。可选。

 

callback回调函数返回对象,属性如下:

参数

说明

statusCode

"00000"表示成功

statusMsg

说明

 

除特殊说明外,以下接口的callback与此相同。

4.2 登出 logout

PhoneKit.logout(callback)

 

4.3 就绪 ready

PhoneKit.ready(callback)

 

4.4 暂停 pause

PhoneKit.pause(params, callback)

 

params对象包含以下属性

属性

说明

pauseCause

暂停原因,用户可自定义

 

5 呼叫控制接口

5.1 外呼

PhoneKit.callOut(params, callback)

 

params对象包含以下属性

属性

说明

userNumber

用户号码

userData

自定义数据,字符串,100字符以内

userCli

用户侧显号标识

agentCli

坐席侧显号标识

 

5.2 挂机

PhoneKit.hangup(callback)

 

5.3 桥接

用于话机设为自动应答,由坐席通过电话条控制接听的场景

PhoneKit.bridge(callback)

 

5.4 保持

PhoneKit.holdCall(callback)

 

5.5 取回

PhoneKit.retrieveCall(callback)

 

郑重提示

×

使用翊云科技产品期间,请您遵守国家法律等相关要求,不得危害国家安全、泄露国家秘密,不得侵犯国家社会集体和公民的合法权益。禁止用于含有骚扰、诈骗、色情、赌博、恐吓等违法违规业务。您若想知道贵公司业务是否可以接入,可咨询在线客服或拨打400-1155-802。