xm-softphone-client
v1.1.0
Published
软电话 Client
Readme
软电话 SDK
一个基于 TypeScript 的软电话 SDK,提供 WebRTC/SIP 电话功能。支持 CommonJS、ES Module 和 UMD 格式。
安装
npm install xm-softphone-client使用方式
ES Module 导入 (现代浏览器/框架)
import XmSoftPhoneClient from 'xm-softphone-client';
// 初始化SDK
const softphone = new XmSoftPhoneClient({
// ...配置
});CommonJS 导入 (Node.js)
const XmSoftPhoneClient = require('xm-softphone-client');
// 初始化SDK
const softphone = new XmSoftPhoneClient({
// ...配置
});UMD 格式 (直接在浏览器中使用)
<!-- 通过 CDN 或本地文件加载 -->
<script src="https://path/to/xm-softphone-client"></script>
<!-- 或 -->
<script src="./node_modules/xm-softphone-client/dist/index.umd.js"></script>
<script>
// 全局变量 XmSoftPhoneClient
const softphone = new XmSoftPhoneClient({
// ...配置
});
</script>基本用法示例
// 初始化SDK
const softphone = new XmSoftPhoneClient({
logLevel: 'warn',
loginName: '2000@abcd',
password: '',
answerType: 'WEBRTC',
isPasswordMd5: false,
});
// 监听事件
softphone.on('ready', () => {
console.log('sdk准备就绪');
});
softphone.on('stop', () => {
console.log('sdk已停止');
});
softphone.on('error', (error) => {
console.error('发生错误', error);
});
softphone.on('kickOff', () => {
console.log('座席被踢下线');
});
// 座席状态变化
softphone.on('agentStatus', (agentStatus) => {
console.log('座席状态', agentStatus);
});
// 通话事件
softphone.on('callStatus', (callStatus) => {
console.log('通话事件', callStatus);
});
// 呼入事件
softphone.on('incomingCall', (callStatus) => {
console.log('收到来电', callStatus);
});
// 发起呼叫
const makeCall = async () => {
const call = await softphone.dialOut('13800138000');
console.log('呼叫已发起', call);
};API 参考
初始化选项
serverUrl: 服务器地址(默认公有云地址)logLevel: 日志级别 ('debug', 'info', 'warn', 'error')loginName: 登录账号,格式为"座席工号@账号名"password: 登录密码answerType: 接听类型,例如 'WEBRTC'isPasswordMd5: 密码是否已经过MD5加密 (默认: false)
主要方法
start(): 启动SDK并连接软电话服务stop(): 停止SDK并断开连接getAvailableStatus(): 获取座席可用状态getAgentDisplayNumbers(): 获取座席可用外显号码changeAnswerType(answerType): 切换座席接听方式changeStatus(statusNumber): 切换座席状态dialOut(phoneNumber): 发起呼叫到指定电话号码hangup(): 挂断answer(): 接听来电(仅限软电话接听方式)holdOrUnHold(type): 保持/取消保持通话muteOrUnMute(type):静音/取消静音transfer(type, number): 转接通话transferToSatisfaction(): 转接到满意度调查
事件
ready: SDK准备就绪stop: SDK已停止error: 发生错误,返回错误信息kickOff: 座席被踢下线agentStatus: 座席状态变化,返回最新状态callStatus: 通话状态变化,返回通话相关信息incomingCall: 收到来电,返回来电信息,需要调用answer()方法接听
许可证
Apache-2.0
