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) 的方法。