PBX 功能(PBXOperator)

PBXOperator 对象用于实现与 PBX 相关的功能,如通话记录查询、用户账号登出等。本文介绍与 PBX (PBXOperator 对象) 相关功能的属性、方法及事件。

属性

属性 类型 说明
username string 用户的登录名,即分机号或邮箱地址
secret string 用户的登录签名,可通过 OpenAPI 向 PBX 请求获取。
token string 向 PBX 请求的访问 Token,可通过 OpenAPI 获取。

更多信息,请参见。

url URL PBX 的访问地址。
socket WebSocket 用于实时监听 PBX 运行状态变更及接收消息通知的 socket 实例。
extensionNumber string 分机号码。
extensionId string 分机 ID。
extensionName string 分机姓名。

方法

方法概览
初始化
Linkus SDK Core 内部会调用此方法进行初始化。
注: 初始化成功后,如果再次调用此方法,调用不生效且返回 Promise.reject
方法
init() 
方法参数 空。
返回值
Promise<Result>
监听事件
方法
on(eventName, listener)
方法参数
  • eventName:事件名称。
  • listener:回调函数。
返回值 空。
注: 关于可监听的事件,参见 事件
查询通话记录 (CDR)
方法
cdrQuery(params)
方法参数
params: {
    page: number; //必填,定义显示第几个页面
    size: number; //必填,定义每页显示几项查询结果
    status?: number; // 可选,指定通话类型。0:所有;1:呼入;2:未接来电;3:呼出
    sortBy: 'time' | 'id'; //必填,定义排序字段
    orderBy?: 'desc' | 'asc'; //可选,定义显示顺序
    filter?: string | null; //可选,定义筛选条件
}
返回值
Promise
返回值字段示例
{
    errcode: 0,
    errmsg: "SUCCESS",
    personal_cdr_list: [ // 通话记录列表
        {
            id: 2546, // 通话记录的序号
            date: "Today", // 接听或拨打该通通话的日期
            time: "17:21:39", // 接听或拨打该通通话的时间
            timestamp: 1686561699, // 通话记录时间的时间戳
            number: "1011", // 主叫号码
            number_type: "extension",
            extension: { // 分机信息
                ext_id: 25, // 分机 ID
                ext_num: "1011", // 分机号码
                caller_id_name: "cwt1011", // 分机姓名
                photo: "", // 头像 ID
                status: 0, // 分机的终端在线状态。 0:离线; 1:在线
                presence_status: "available", // 分机的在线状态
                presence_information: "",
                first_name: "wt1011", // 名
                last_name: "c", // 姓
                email_addr: "", // 邮箱地址
                mobile_number: "", // 手机号码
                enb_vm: 0, // 是否启用语音信箱
                vm_total_count: 0, // 语音留言总数
                vm_unread_count: 0, // 未读的语音留言数
                visable: 0,
                im_id: "xxxxx",
                org_list_info: "",
                is_favorite: 0,
                title: "" // 职位
            },
            status: 3, //通话类型。0:所有;1:呼入;2:未接来电;3:呼出
            talk_duration: 23, // 通话被应答到通话结束的时间。
            call_type: "Internal", // 通讯类型。Internal:内线;External:外线
            uniqueid: "1686561699.137", // 通话记录唯一 ID
            disposition: "ANSWERED", // 通话状态。ANSWERED:已接;NO ANSWER:未接;BUSY:忙;FAILED:失败;VOICEMAIL:语音留言
            dcontext: "DLPN_DialPlan1010",
            caller_id: "1011", // 主叫号码
            clid: "\"cwt1010\" <1010>"
        }
    ],
    total_number: 63, // 查询的通话记录的总数
}
用户账号登出
方法
logout()
方法参数 空。
返回值
Promise
销毁 PBXOperator 对象
方法
destroy()
方法参数 空。
返回值 空。

事件

监听事件示例
pbx.on('eventName', (data) => {}) //eventName:事件名,data:数据类型
运行错误通知
事件名 runtimeError
数据类型
PBXResult
报告参数
{
    code: '',
    msg: '',
}
注: 关于事件的报告参数及说明,参见下表。
报告参数说明
code msg 说明
-106 LINKUS_DISABLED Linkus 客户端未启用。
-107 LOGGED_IN_ELSEWHERE 该分机已在其它应用登录。
-108 EXTENSION_DELETED 该分机已被删除。
-109 RE_LOGIN 分机需要重新登录。
-110 SDK_PLAN_DISABLED 未购买 Linkus SDK 服务
通话记录变更通知
该事件触发时需要手动调用查询通话记录 (CDR) 的方法。
事件名 cdrChange
数据类型
cdrNotifyData
报告参数
{
    ext_num: '1001',
    personal_cdr: {
        date:"", //通话日期
        time:"", //通话时间
        timestamp: 1693201380, // 通话建立的时间戳,精确到秒 
        number: "1001",
        talk_duration:0 // 通话时长
    }
}