呼叫SDK

关于美洽呼叫SDK使用说明。

<script type="text/javascript" src="https://static-app.meiqia.com/fe-callcenter-sdk/callcenter-sdk-v1.js"></script>

开放API请求说明

1.通过工作台(https://app.meiqia.com/setting/developer-apis)或者询问售后人员获取企业accesstoken

2.请求头headers里面添加 Authorization: “Bearer ” + accesstoken (Bearer和accesstoken之间有一个空格

获取可转接客服列表

说明:获取可转接的呼叫客服列表

地址: https://api.meiqia.com/openapi/ent/v1/sip/configs

请求方法:GET

请求头(headers):

参数类型必填描述
AuthorizationString“Bearer ” + accesstoken

返回参数

参数类型必填描述
ent_idint企业id
agent_idint客服id
answer_waystring接听方式,web:rtc    soft_switch
created_atstring创建时间
effective_atstring有效时间
expiration_atstring过期时间
out_numberstring外显号码
real_namestring真实姓名
register_statusstring注册状态:register ,unregister
updated_atstring更新时间
worker_statusstring工作状态,为空时可以转接

获取SDK鉴权token

说明:获取拥有坐席的呼叫客服列表

地址: https://api.meiqia.com/openapi/ent/v1/login

请求方法:POST

请求头(headers):

参数类型必填描述
AuthorizationString“Bearer ” + accesstoken

请求体:

参数类型必填描述
agent_idString

返回参数

参数类型必填描述
ExpireTimestring过期时间
TokenstringSDK鉴权token

流程图:

  1. 用户使用 accesstoken,agentId来请求服务器
  2. 服务器进行验证认证的信息
  3. 服务器通过验证返回给用户 客服 token
  4. 用户初始化时把 token传给SDK;
  5. 并在每次请求时附送上这个 accessToken 值 (存在 headers 里的参数 Authorization)格式为: ‘Bearer xxxxxxx’
  6. 服务端验证 token 值,并返回数据
  7. token 在申请后会携带超时时间,客户端应该在 accessToken 超时时间过半时重新获取 token。
  8. 如果服务器验证 accessToken 过期, 返回 status 401
  9. 监听unAuthorization事件,重新请求token,并调用刷新token接口替换新token

SDK流程➕

呼出流程

呼入流程

初始化

创建实例

const mqCallSDK = new MQCallSDK()

初始化SDK

mqCallSDK.init({
    token:'xxxxxxx', //鉴权token
    success: function (msg){
            console.log('new Client success : ', msg)
        },
    error: function (msg){
            console.log('new Client error : ', msg)
        }
 
})

获取外显号码

 mqcallSDK.getAgentRule({
   success: (data) => {
    },
   error:()=>{}
  })

//返回外呼规则数据如下AgentRuleType所示

//人工指定号码
type Agent_numbers$1Type = {
  default_number: string;  // 默认号码
  numbers: Array<string>;  //所有的人工指定号码
  updated_at: string;
};

// 动态号码组
type Agent_groups$2Type = {
  id: number;
  name: string;
  rule_type: number;  //电话类型 ,1手机号码,2固定号码,3随机号码,4自有号码
  numbers: Array<string>;
  is_default: number;
  updated_at: string;
};

  type AgentRuleType = {
  default_rule: number; // 1代表人工指定号码,2代表动态号码组
  agent_numbers: Agent_numbers$1Type;
  agent_groups: Array<Agent_groups$2Type>;
};

设置外显号码

mqCallSDK.setOutNumber({
	data: { rule, number, group_id },  // rule: 1代表人工指定号码,2代表动态号码组,number:人工指定号码,group_id :动态号码组id
	success: function (msg){
	console.log('new Client success : ', msg)
	},
	error: function (msg){
	console.log('new Client error : ', msg)
	} 
})

设置客服状态

mqCallSDK.setAgentStatus({
      status: 2,  //状态码  后续会说明
      success: function (msg){
            console.log('new Client success : ', msg)
        },
    error: function (msg){
            console.log('new Client error : ', msg)
        }  
})

客服状态码:

可更改状态 ==> 在线:1 , 离线:2,小休:3,忙碌:4

不可更改状态 ==> 通话中:6,振铃中:7,整理中:8

呼叫

参数名称类型校验说明
clientnumberstringnumber与privacyNumber必传一个被叫号码明文
privacyNumberstring被叫号码密文,优先级比number高
userDatastring非必传业务系统自定义数据,可以是uuid之类的业务ID,最多 300 个字符
outNumberstring外显号码或号码组。号码组采用group{ID}的形式传递,如号码组ID为2的例子为:gourp2。请注意,这里的外显号码和号码组必须已经分配给这个坐席,才能正常使用。
在这里设置的外显号码,优先级高于使用设置外显号码(mqCallSDK.setOutNumber)方法设置的外显号码
successfunction成功回调函数,请注意这里的成功或失败并不是意味着电话的呼叫是否接通,只是表示发起呼叫这个动作成功与否
errorfunction失败回调函数,请注意这里的成功或失败并不是意味着电话的呼叫是否接通,只是表示发起呼叫这个动作成功与否
validatorErrorCbfunction自定义验证规则
mqCallSDK.call({
    //privacyNumber 代表加密之后的号码,只要传了 privacyNumber 则代表使用加密呼叫
    //参数中的 client 对象 number 和 privacyNumber 必填一项
    //userData 最多 300 个字符
    client:{number:'xxxx',privacyNumber:'xxxxxx',userData:'xxxx',outNumber:'xxxx'}, 
    success: ()=>{},
    error:()=>{},
    validatorErrorCb:()=>{} //自定义验证规则
})

接听

mqCallSDK.answer ()

挂断

mqCallSDK.hangup()

静音

mqCallSDK.muteCall({
    success: ()=>{},
    error:()=>{}
})

取消静音

mqCallSDK.unmuteCall({
    success: ()=>{},
    error:()=>{}
})

保持

mqCallSDK.holdCall({
    success: ()=>{},
    error:()=>{} 
})

取消保持

mqCallSDK.unholdCall({
    success: ()=>{},
    error:()=>{}  
})

转接

mqCallSDK.transferCall({
    agentId:12123,//客服ID
    success: ()=>{},
    error:()=>{}   
})

刷新token

mqCallSDK.refreshToken({
    token:'',
    success:()=>{},
    error:()=>{}
})

事件监听

SDK提供以下事件监听

通用返回数据

{
  "sip": "",   //SIP号
  "customer": "",        //顾客号码
  "action": "register",  // 事件名称
  "user_agent": "JsSIP",	// 注册方式
  "uuid": "",							//通话id
  "trunk_number": "",			//外显号
  "trunk_number_name": "",  //外显别名
  "queue_name": ""					//队列名称
}

register 注册事件

返回通用数据

unregister 注销事件

返回通用数据

calling 外呼振铃事件

返回通用数据

incomingCall 呼入振铃事件

返回通用数据

answer 接听事件

返回通用数据

hangup 挂断事件

返回通用数据

notifySocketReconnectFailed ws连接断开事件

返回通用数据

blackList 呼出号码为黑名单事件

返回通用数据

unAuthorization token过期事件

无返回数据

agentInitStatus 初始化坐席事件

返回参数

{
  callAgentStatus: xx,   //客服状态
  outNumber: xx,				//客服外显号码
}

客服状态码查看设置客服状态说明

事件监听示范代码

mqCallSDK.on('calling', (data) => {
     
   }).on('incomingCall', data => {
      
   })
     .on('answer', data => {
         
     }).on('hangup', data => {
        
     }).on('unAuthorization', () => {
       
     })

Updated on 2023年9月7日

本文是否有帮助?

您可能想了解