Files
zyt/TUICallKit-Vue3/TUIKit/utils/processCallSignaling.ts
2026-03-11 09:49:47 +08:00

60 lines
1.8 KiB
TypeScript

import { formatDuration, JSONToObject } from './index';
export function isCallSignaling(message: any) {
const callMessage: any = JSONToObject(message.payload.data);
if (callMessage?.actionType) {
return true;
}
return false;
}
export function handleCallKitSignaling(message: any) {
if (!message || !message.payload) {
return { callTip: '', callType: '' }
}
const callMessage: any = JSONToObject(message.payload.data);
const objectData = JSONToObject(callMessage?.data);
const callType = objectData.call_type;
let callTip = '';
switch (callMessage?.actionType) {
case 1: {
if (objectData?.data?.cmd === 'hangup') {
callTip = `通话时长: ${formatDuration(Number(objectData?.call_end))}`;
} else {
callTip = "发起通话";
}
}
break;
case 2:
callTip = message?.flow === 'out' ? "已取消" : "对方已取消";
break;
case 4:
if (objectData?.line_busy === 'line_busy' || objectData?.data?.message === 'lineBusy') {
if (message?.flow === 'out') {
callTip = "对方忙线中";
} else {
callTip = "忙线未接听";
}
} else {
if (message?.flow === 'out') {
callTip = "对方已拒绝";
} else {
callTip = "已拒绝";
}
}
break;
case 5:
callTip = message?.flow === 'out' ? "对方无应答" : "超时无应答";
break;
default:
callTip = '';
break;
}
return {
callTip,
callType
}
}