@tmsoft/webphone 3.0.25 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/webphone.component.js +29 -29
- package/dist/webphone.es.js +173 -117
- package/dist/webphone.umd.js +10 -10
- package/package.json +1 -1
package/dist/webphone.es.js
CHANGED
|
@@ -7124,11 +7124,11 @@ var concatArrays = (e, t) => {
|
|
|
7124
7124
|
isNumber,
|
|
7125
7125
|
isArbitraryVariable,
|
|
7126
7126
|
isArbitraryValue
|
|
7127
|
-
],
|
|
7127
|
+
], Jp = () => [
|
|
7128
7128
|
isNumber,
|
|
7129
7129
|
isArbitraryVariable,
|
|
7130
7130
|
isArbitraryValue
|
|
7131
|
-
],
|
|
7131
|
+
], J = () => [
|
|
7132
7132
|
isFraction,
|
|
7133
7133
|
"full",
|
|
7134
7134
|
...O()
|
|
@@ -8020,9 +8020,9 @@ var concatArrays = (e, t) => {
|
|
|
8020
8020
|
"scale-y": [{ "scale-y": q() }],
|
|
8021
8021
|
"scale-z": [{ "scale-z": q() }],
|
|
8022
8022
|
"scale-3d": ["scale-3d"],
|
|
8023
|
-
skew: [{ skew:
|
|
8024
|
-
"skew-x": [{ "skew-x":
|
|
8025
|
-
"skew-y": [{ "skew-y":
|
|
8023
|
+
skew: [{ skew: Jp() }],
|
|
8024
|
+
"skew-x": [{ "skew-x": Jp() }],
|
|
8025
|
+
"skew-y": [{ "skew-y": Jp() }],
|
|
8026
8026
|
transform: [{ transform: [
|
|
8027
8027
|
isArbitraryVariable,
|
|
8028
8028
|
isArbitraryValue,
|
|
@@ -8033,10 +8033,10 @@ var concatArrays = (e, t) => {
|
|
|
8033
8033
|
] }],
|
|
8034
8034
|
"transform-origin": [{ origin: T() }],
|
|
8035
8035
|
"transform-style": [{ transform: ["3d", "flat"] }],
|
|
8036
|
-
translate: [{ translate:
|
|
8037
|
-
"translate-x": [{ "translate-x":
|
|
8038
|
-
"translate-y": [{ "translate-y":
|
|
8039
|
-
"translate-z": [{ "translate-z":
|
|
8036
|
+
translate: [{ translate: J() }],
|
|
8037
|
+
"translate-x": [{ "translate-x": J() }],
|
|
8038
|
+
"translate-y": [{ "translate-y": J() }],
|
|
8039
|
+
"translate-z": [{ "translate-z": J() }],
|
|
8040
8040
|
"translate-none": ["translate-none"],
|
|
8041
8041
|
accent: [{ accent: B() }],
|
|
8042
8042
|
appearance: [{ appearance: ["none", "auto"] }],
|
|
@@ -8425,8 +8425,61 @@ const createSipService = (e, t = {}) => {
|
|
|
8425
8425
|
o.volume = e / 100;
|
|
8426
8426
|
}, L = async (e) => {
|
|
8427
8427
|
typeof o.setSinkId == "function" && await o.setSinkId(e);
|
|
8428
|
-
}, R = (
|
|
8429
|
-
|
|
8428
|
+
}, R = async (t) => {
|
|
8429
|
+
if (!t) return;
|
|
8430
|
+
let n = [...a.value.entries()].flatMap(([e, t]) => {
|
|
8431
|
+
let n = t.sessionDescriptionHandler, i = n?.peerConnection?.getSenders().find((e) => e.track?.kind === "audio");
|
|
8432
|
+
return i ? [{
|
|
8433
|
+
channelId: e,
|
|
8434
|
+
session: t,
|
|
8435
|
+
sdh: n,
|
|
8436
|
+
sender: i
|
|
8437
|
+
}] : [];
|
|
8438
|
+
});
|
|
8439
|
+
if (n.length === 0) {
|
|
8440
|
+
l.value = t;
|
|
8441
|
+
return;
|
|
8442
|
+
}
|
|
8443
|
+
let i = [], o = [];
|
|
8444
|
+
try {
|
|
8445
|
+
for (let { sender: e } of n) {
|
|
8446
|
+
let n = await navigator.mediaDevices.getUserMedia(U(!1, t));
|
|
8447
|
+
i.push(n);
|
|
8448
|
+
let [a] = n.getAudioTracks(), s = e.track;
|
|
8449
|
+
if (!a || !s) throw Error("Could not acquire an audio track for the selected microphone");
|
|
8450
|
+
a.enabled = s.enabled, await e.replaceTrack(a), o.push({
|
|
8451
|
+
sender: e,
|
|
8452
|
+
previousTrack: s
|
|
8453
|
+
});
|
|
8454
|
+
}
|
|
8455
|
+
l.value = t, n.forEach(({ channelId: t, session: n, sdh: a, sender: o }, s) => {
|
|
8456
|
+
let l = i[s]?.getAudioTracks()[0];
|
|
8457
|
+
if (!l) return;
|
|
8458
|
+
let u = e.channels.value.find((e) => e.id === t), f = !(u?.isHeld || u?.isMuted);
|
|
8459
|
+
o.track.enabled = f;
|
|
8460
|
+
let p = a.localMediaStream;
|
|
8461
|
+
p && (p.getAudioTracks().forEach((e) => {
|
|
8462
|
+
e !== l && p.removeTrack(e);
|
|
8463
|
+
}), p.getTracks().includes(l) || p.addTrack(l)), e.activeChannelId.value === t && (p ? d.value = p : d.value && (d.value.getAudioTracks().forEach((e) => {
|
|
8464
|
+
e !== l && d.value?.removeTrack(e);
|
|
8465
|
+
}), d.value.getTracks().includes(l) || d.value.addTrack(l)));
|
|
8466
|
+
try {
|
|
8467
|
+
N(n, t);
|
|
8468
|
+
} catch (e) {
|
|
8469
|
+
console.error("[SipJs] Media-ready callback failed after microphone switch:", e);
|
|
8470
|
+
}
|
|
8471
|
+
});
|
|
8472
|
+
let s = new Set([...a.value.values()].flatMap((e) => e.sessionDescriptionHandler?.peerConnection?.getSenders().map((e) => e.track).filter((e) => e?.kind === "audio") ?? []));
|
|
8473
|
+
o.forEach(({ previousTrack: e }) => {
|
|
8474
|
+
s.has(e) || e.stop();
|
|
8475
|
+
}), i.forEach((e, t) => {
|
|
8476
|
+
e.getTracks().forEach((e) => {
|
|
8477
|
+
e !== n[t]?.sender.track && e.stop();
|
|
8478
|
+
});
|
|
8479
|
+
});
|
|
8480
|
+
} catch (e) {
|
|
8481
|
+
await Promise.allSettled(o.map(({ sender: e, previousTrack: t }) => e.replaceTrack(t))), i.forEach((e) => e.getTracks().forEach((e) => e.stop())), console.warn("[SipJs] Failed to switch microphone:", e);
|
|
8482
|
+
}
|
|
8430
8483
|
}, z = (e, t) => {
|
|
8431
8484
|
let n = !1, i = e.sessionDescriptionHandler;
|
|
8432
8485
|
return i?.peerConnection && i.peerConnection.getSenders().forEach((e) => {
|
|
@@ -8462,15 +8515,15 @@ const createSipService = (e, t = {}) => {
|
|
|
8462
8515
|
} catch (e) {
|
|
8463
8516
|
console.warn("[SipJs] Failed to recover outbound audio track:", e);
|
|
8464
8517
|
}
|
|
8465
|
-
}, U = (e = !1) => {
|
|
8466
|
-
let
|
|
8518
|
+
}, U = (e = !1, t = l.value) => {
|
|
8519
|
+
let n = {
|
|
8467
8520
|
echoCancellation: { ideal: !0 },
|
|
8468
8521
|
noiseSuppression: { ideal: !1 },
|
|
8469
8522
|
autoGainControl: { ideal: !1 },
|
|
8470
8523
|
channelCount: 1
|
|
8471
8524
|
};
|
|
8472
|
-
return
|
|
8473
|
-
audio:
|
|
8525
|
+
return t && (n.deviceId = { exact: t }), {
|
|
8526
|
+
audio: n,
|
|
8474
8527
|
video: e
|
|
8475
8528
|
};
|
|
8476
8529
|
}, W = async () => {
|
|
@@ -8613,14 +8666,14 @@ const createSipService = (e, t = {}) => {
|
|
|
8613
8666
|
isHeld: !1,
|
|
8614
8667
|
hasVideo: !1,
|
|
8615
8668
|
hasEarlyMedia: !1
|
|
8616
|
-
}), a.value.delete(i), e.activeChannelId.value === i &&
|
|
8669
|
+
}), a.value.delete(i), e.activeChannelId.value === i && rm(), F();
|
|
8617
8670
|
break;
|
|
8618
8671
|
}
|
|
8619
8672
|
case SessionState.Established:
|
|
8620
8673
|
m.add(i), e.updateChannelState(i, {
|
|
8621
8674
|
status: "connected",
|
|
8622
8675
|
startTime: Date.now()
|
|
8623
|
-
}), M(i, "connected"), e.activeChannelId.value === i && (
|
|
8676
|
+
}), M(i, "connected"), e.activeChannelId.value === i && (Q(t), H(t).then(() => N(t, i))), F();
|
|
8624
8677
|
break;
|
|
8625
8678
|
}
|
|
8626
8679
|
});
|
|
@@ -8645,7 +8698,7 @@ const createSipService = (e, t = {}) => {
|
|
|
8645
8698
|
m.add(o), e.channels.value.find((e) => e.id === o)?.status !== "connected" && (e.updateChannelState(o, {
|
|
8646
8699
|
status: "connected",
|
|
8647
8700
|
startTime: Date.now()
|
|
8648
|
-
}), M(o, "connected"),
|
|
8701
|
+
}), M(o, "connected"), Q(l), H(l).then(() => N(l, o)), F());
|
|
8649
8702
|
break;
|
|
8650
8703
|
case SessionState.Terminated: {
|
|
8651
8704
|
let n = e.channels.value.find((e) => e.id === o);
|
|
@@ -8673,7 +8726,7 @@ const createSipService = (e, t = {}) => {
|
|
|
8673
8726
|
startTime: void 0,
|
|
8674
8727
|
keypadValue: "",
|
|
8675
8728
|
hasVideo: !1
|
|
8676
|
-
}), a.value.delete(o), e.activeChannelId.value === o &&
|
|
8729
|
+
}), a.value.delete(o), e.activeChannelId.value === o && rm(), F();
|
|
8677
8730
|
break;
|
|
8678
8731
|
}
|
|
8679
8732
|
}
|
|
@@ -8682,41 +8735,44 @@ const createSipService = (e, t = {}) => {
|
|
|
8682
8735
|
sessionDescriptionHandlerOptions: { constraints: U(i) },
|
|
8683
8736
|
requestDelegate: {
|
|
8684
8737
|
onProgress: (t) => {
|
|
8685
|
-
(t.message.statusCode === 180 || t.message.statusCode === 183) && (t.message.body && (e.updateChannelState(o, { hasEarlyMedia: !0 }),
|
|
8738
|
+
(t.message.statusCode === 180 || t.message.statusCode === 183) && (t.message.body && (e.updateChannelState(o, { hasEarlyMedia: !0 }), Q(l)), F());
|
|
8686
8739
|
},
|
|
8687
8740
|
onAccept: (t) => {
|
|
8688
8741
|
e.channels.value.find((e) => e.id === o)?.status !== "connected" && (m.add(o), e.updateChannelState(o, {
|
|
8689
8742
|
status: "connected",
|
|
8690
8743
|
startTime: Date.now()
|
|
8691
|
-
}), M(o, "connected"),
|
|
8744
|
+
}), M(o, "connected"), Q(l), H(l).then(() => N(l, o)), F());
|
|
8692
8745
|
}
|
|
8693
8746
|
}
|
|
8694
8747
|
};
|
|
8695
8748
|
await l.invite(u);
|
|
8696
|
-
},
|
|
8749
|
+
}, Jp = async (t = !1) => {
|
|
8697
8750
|
let n = e.activeChannelId.value, i = a.value.get(n);
|
|
8698
8751
|
if (i instanceof Invitation && i.state === SessionState.Initial) {
|
|
8752
|
+
T(), e.updateChannelState(n, {
|
|
8753
|
+
status: "connected",
|
|
8754
|
+
startTime: Date.now()
|
|
8755
|
+
}), F();
|
|
8699
8756
|
for (let [t, n] of a.value.entries()) if (t !== e.activeChannelId.value && n.state === SessionState.Established && !e.channels.value.find((e) => e.id === t)?.isHeld) try {
|
|
8700
|
-
await
|
|
8757
|
+
await Y(n, !0), e.updateChannelState(t, { isHeld: !0 });
|
|
8701
8758
|
} catch (e) {
|
|
8702
8759
|
console.error(`[SipJs] Failed to hold channel ${t}:`, e);
|
|
8703
8760
|
}
|
|
8704
|
-
let o = { sessionDescriptionHandlerOptions: {
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
});
|
|
8761
|
+
let o = { sessionDescriptionHandlerOptions: {
|
|
8762
|
+
constraints: U(t),
|
|
8763
|
+
iceGatheringTimeout: 1e3
|
|
8764
|
+
} };
|
|
8709
8765
|
try {
|
|
8710
|
-
await i.accept(o),
|
|
8766
|
+
await i.accept(o), F();
|
|
8711
8767
|
} catch (t) {
|
|
8712
8768
|
let i = a.value.get(n);
|
|
8713
|
-
throw i instanceof Invitation && i.state === SessionState.Initial && e.updateChannelState(n, {
|
|
8769
|
+
throw i instanceof Invitation && i.state === SessionState.Initial && (e.updateChannelState(n, {
|
|
8714
8770
|
status: "incoming",
|
|
8715
8771
|
startTime: void 0
|
|
8716
|
-
}), t;
|
|
8772
|
+
}), F()), t;
|
|
8717
8773
|
}
|
|
8718
8774
|
}
|
|
8719
|
-
},
|
|
8775
|
+
}, J = async () => {
|
|
8720
8776
|
let t = a.value.get(e.activeChannelId.value);
|
|
8721
8777
|
if (t) switch (t.state) {
|
|
8722
8778
|
case SessionState.Initial:
|
|
@@ -8727,35 +8783,35 @@ const createSipService = (e, t = {}) => {
|
|
|
8727
8783
|
await t.bye();
|
|
8728
8784
|
break;
|
|
8729
8785
|
}
|
|
8730
|
-
},
|
|
8786
|
+
}, Yp = () => {
|
|
8731
8787
|
let t = a.value.get(e.activeChannelId.value);
|
|
8732
8788
|
if (!t) return;
|
|
8733
8789
|
let n = !e.isMuted.value;
|
|
8734
8790
|
e.setMuted(n), V(t, e.channels.value.find((t) => t.id === e.activeChannelId.value));
|
|
8735
|
-
},
|
|
8791
|
+
}, Y = async (e, t) => {
|
|
8736
8792
|
let n = { sessionDescriptionHandlerOptions: { hold: t } };
|
|
8737
8793
|
await e.invite(n);
|
|
8738
|
-
},
|
|
8794
|
+
}, Xp = async () => {
|
|
8739
8795
|
let t = a.value.get(e.activeChannelId.value);
|
|
8740
8796
|
if (t?.state !== SessionState.Established) return;
|
|
8741
8797
|
let n = !e.isHeld.value;
|
|
8742
8798
|
try {
|
|
8743
|
-
await
|
|
8799
|
+
await Y(t, n), e.setHeld(n), V(t, e.channels.value.find((t) => t.id === e.activeChannelId.value));
|
|
8744
8800
|
} catch {}
|
|
8745
|
-
},
|
|
8801
|
+
}, Zp = async (t) => {
|
|
8746
8802
|
let n = e.activeChannelId.value;
|
|
8747
8803
|
if (n === t) return;
|
|
8748
8804
|
let i = a.value.get(n), o = a.value.get(t), s = e.channels.value.find((e) => e.id === n), l = e.channels.value.find((e) => e.id === t);
|
|
8749
8805
|
if (i && i.state === SessionState.Established && !s?.isHeld) try {
|
|
8750
|
-
await
|
|
8806
|
+
await Y(i, !0), e.updateChannelState(n, { isHeld: !0 }), V(i, e.channels.value.find((e) => e.id === n));
|
|
8751
8807
|
} catch {}
|
|
8752
8808
|
if (e.setActiveChannelId(t), F(), o && o.state === SessionState.Established) {
|
|
8753
8809
|
if (l?.isHeld) try {
|
|
8754
|
-
await
|
|
8810
|
+
await Y(o, !1), e.updateChannelState(t, { isHeld: !1 });
|
|
8755
8811
|
} catch {}
|
|
8756
|
-
V(o, e.channels.value.find((e) => e.id === t)),
|
|
8757
|
-
} else
|
|
8758
|
-
},
|
|
8812
|
+
V(o, e.channels.value.find((e) => e.id === t)), Q(o);
|
|
8813
|
+
} else rm();
|
|
8814
|
+
}, Qp = (t) => {
|
|
8759
8815
|
if (!/^[0-9*#]$/.test(t)) return;
|
|
8760
8816
|
let n = a.value.get(e.activeChannelId.value);
|
|
8761
8817
|
if (n?.state !== SessionState.Established) return;
|
|
@@ -8770,10 +8826,10 @@ const createSipService = (e, t = {}) => {
|
|
|
8770
8826
|
contentDisposition: "signal"
|
|
8771
8827
|
} } };
|
|
8772
8828
|
n.info(o);
|
|
8773
|
-
},
|
|
8829
|
+
}, Z = (t, n) => {
|
|
8774
8830
|
let i = e.channels.value.find((e) => e.id === t);
|
|
8775
|
-
!i || i.status !== "connected" || (
|
|
8776
|
-
},
|
|
8831
|
+
!i || i.status !== "connected" || (Q(n), V(n, i), H(n), o.play().catch(() => {}));
|
|
8832
|
+
}, $p = async (t) => {
|
|
8777
8833
|
console.log("[SipJs] 🔄 transferCall iniciado"), console.log("[SipJs] Target:", t);
|
|
8778
8834
|
let i = e.activeChannelId.value, o = a.value.get(i);
|
|
8779
8835
|
if (!o) throw console.error("[SipJs] ❌ No hay sesión activa en el canal", i), Error("No active session to transfer");
|
|
@@ -8793,7 +8849,7 @@ const createSipService = (e, t = {}) => {
|
|
|
8793
8849
|
},
|
|
8794
8850
|
onReject: (e) => {
|
|
8795
8851
|
let t = e.message.statusCode;
|
|
8796
|
-
console.error("[SipJs] ❌ Transfer REFER rechazado:", t), console.error("[SipJs] Response completo:", e.message),
|
|
8852
|
+
console.error("[SipJs] ❌ Transfer REFER rechazado:", t), console.error("[SipJs] Response completo:", e.message), Z(i, o);
|
|
8797
8853
|
}
|
|
8798
8854
|
},
|
|
8799
8855
|
onNotify: (e) => {
|
|
@@ -8816,7 +8872,7 @@ const createSipService = (e, t = {}) => {
|
|
|
8816
8872
|
487: "Transferencia cancelada",
|
|
8817
8873
|
503: "Servicio no disponible - el destino puede estar fuera de línea"
|
|
8818
8874
|
}[t] || `Error en transferencia (código ${t})`;
|
|
8819
|
-
console.warn("[SipJs] 💬", e),
|
|
8875
|
+
console.warn("[SipJs] 💬", e), Z(i, o);
|
|
8820
8876
|
} else t >= 100 && t < 200 && console.log("[SipJs] 📞 Transferencia en progreso:", t, n);
|
|
8821
8877
|
} else console.warn("[SipJs] ⚠️ No se pudo extraer el código de estado del NOTIFY body");
|
|
8822
8878
|
} else console.warn("[SipJs] ⚠️ NOTIFY sin body");
|
|
@@ -8825,14 +8881,14 @@ const createSipService = (e, t = {}) => {
|
|
|
8825
8881
|
} catch (e) {
|
|
8826
8882
|
throw console.error("[SipJs] ❌ Error en transferCall:", e), console.error("[SipJs] Error type:", e?.constructor?.name), console.error("[SipJs] Error message:", e instanceof Error ? e.message : String(e)), console.error("[SipJs] Error stack:", e instanceof Error ? e.stack : "N/A"), e;
|
|
8827
8883
|
}
|
|
8828
|
-
},
|
|
8884
|
+
}, em = async (t) => {
|
|
8829
8885
|
console.log("[SipJs] 🔄 startAttendedTransfer iniciado"), console.log("[SipJs] Target:", t);
|
|
8830
8886
|
let n = e.activeChannelId.value, i = a.value.get(n);
|
|
8831
8887
|
if (console.log("[SipJs] Canal original:", n), console.log("[SipJs] Sesión original:", i?.state), !i || i.state !== SessionState.Established) throw console.error("[SipJs] ❌ No hay llamada establecida para transferir"), Error("No established call to transfer");
|
|
8832
8888
|
let o = e.channels.value.find((e) => e.status === "idle");
|
|
8833
8889
|
if (console.log("[SipJs] Canal de consulta encontrado:", o?.id), !o) throw console.error("[SipJs] ❌ No hay canales disponibles para llamada de consulta"), Error("No available channel for consultation call");
|
|
8834
8890
|
try {
|
|
8835
|
-
console.log("[SipJs] 🔇 Poniendo llamada original en hold..."), await
|
|
8891
|
+
console.log("[SipJs] 🔇 Poniendo llamada original en hold..."), await Y(i, !0), e.updateChannelState(n, { isHeld: !0 }), console.log("[SipJs] ✅ Llamada original en hold");
|
|
8836
8892
|
} catch (e) {
|
|
8837
8893
|
throw console.error("[SipJs] ❌ Failed to hold original call:", e), Error("Failed to put call on hold");
|
|
8838
8894
|
}
|
|
@@ -8844,9 +8900,9 @@ const createSipService = (e, t = {}) => {
|
|
|
8844
8900
|
targetNumber: t
|
|
8845
8901
|
}), console.log("[SipJs] 📋 Transferencia en progreso registrada");
|
|
8846
8902
|
} catch (t) {
|
|
8847
|
-
throw console.error("[SipJs] ❌ Failed to start consultation call:", t), console.log("[SipJs] 🔄 Volviendo al canal original y quitando hold..."), e.setActiveChannelId(n), await
|
|
8903
|
+
throw console.error("[SipJs] ❌ Failed to start consultation call:", t), console.log("[SipJs] 🔄 Volviendo al canal original y quitando hold..."), e.setActiveChannelId(n), await Y(i, !1).catch(() => {}), e.updateChannelState(n, { isHeld: !1 }), Error("Failed to initiate consultation call");
|
|
8848
8904
|
}
|
|
8849
|
-
},
|
|
8905
|
+
}, tm = async () => {
|
|
8850
8906
|
console.log("[SipJs] 🔄 completeAttendedTransfer iniciado");
|
|
8851
8907
|
let t = e.transferInProgress.value;
|
|
8852
8908
|
if (!t) throw console.error("[SipJs] ❌ No hay transferencia en progreso"), Error("No transfer in progress");
|
|
@@ -8889,7 +8945,7 @@ const createSipService = (e, t = {}) => {
|
|
|
8889
8945
|
} catch (e) {
|
|
8890
8946
|
throw console.error("[SipJs] Attended transfer failed:", e), e;
|
|
8891
8947
|
}
|
|
8892
|
-
},
|
|
8948
|
+
}, nm = async () => {
|
|
8893
8949
|
let t = e.transferInProgress.value;
|
|
8894
8950
|
if (!t) throw Error("No transfer in progress");
|
|
8895
8951
|
console.log("[SipJs] Canceling attended transfer...");
|
|
@@ -8900,12 +8956,12 @@ const createSipService = (e, t = {}) => {
|
|
|
8900
8956
|
console.warn("[SipJs] Error ending consultation:", e);
|
|
8901
8957
|
}
|
|
8902
8958
|
if (n) try {
|
|
8903
|
-
e.setActiveChannelId(t.originalChannelId), await
|
|
8959
|
+
e.setActiveChannelId(t.originalChannelId), await Y(n, !1), e.updateChannelState(t.originalChannelId, { isHeld: !1 }), console.log("[SipJs] Returned to original call");
|
|
8904
8960
|
} catch (e) {
|
|
8905
8961
|
console.warn("[SipJs] Error resuming original call:", e);
|
|
8906
8962
|
}
|
|
8907
8963
|
e.setTransferInProgress(null);
|
|
8908
|
-
},
|
|
8964
|
+
}, Q = (e) => {
|
|
8909
8965
|
let t = e.sessionDescriptionHandler;
|
|
8910
8966
|
if (!t) {
|
|
8911
8967
|
console.error("[SipJs] setupRemoteMedia: no sessionDescriptionHandler");
|
|
@@ -8936,23 +8992,23 @@ const createSipService = (e, t = {}) => {
|
|
|
8936
8992
|
}, { signal: _.signal });
|
|
8937
8993
|
let [s] = n.getTracks();
|
|
8938
8994
|
s && (o.srcObject = n, a(s), i && N(e, i.id));
|
|
8939
|
-
},
|
|
8995
|
+
}, rm = () => {
|
|
8940
8996
|
v?.abort(), v = null, _?.abort(), _ = null, o.pause(), o.srcObject = null, u.value = null, d.value = null;
|
|
8941
8997
|
};
|
|
8942
8998
|
return {
|
|
8943
8999
|
initUserAgent: Wp,
|
|
8944
9000
|
stop: Kp,
|
|
8945
9001
|
makeCall: q,
|
|
8946
|
-
answerCall:
|
|
8947
|
-
hangupCall:
|
|
8948
|
-
toggleMute:
|
|
8949
|
-
toggleHold:
|
|
8950
|
-
sendDTMF:
|
|
8951
|
-
transferCall:
|
|
8952
|
-
startAttendedTransfer:
|
|
8953
|
-
completeAttendedTransfer:
|
|
8954
|
-
cancelAttendedTransfer:
|
|
8955
|
-
switchChannel:
|
|
9002
|
+
answerCall: Jp,
|
|
9003
|
+
hangupCall: J,
|
|
9004
|
+
toggleMute: Yp,
|
|
9005
|
+
toggleHold: Xp,
|
|
9006
|
+
sendDTMF: Qp,
|
|
9007
|
+
transferCall: $p,
|
|
9008
|
+
startAttendedTransfer: em,
|
|
9009
|
+
completeAttendedTransfer: tm,
|
|
9010
|
+
cancelAttendedTransfer: nm,
|
|
9011
|
+
switchChannel: Zp,
|
|
8956
9012
|
extension: S,
|
|
8957
9013
|
setVolume: I,
|
|
8958
9014
|
setNotificationVolume: O,
|
|
@@ -16371,12 +16427,12 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
16371
16427
|
if (!e) return "";
|
|
16372
16428
|
let t = e.trim(), n = t.startsWith("+"), i = t.replace(/[^\d]/g, "");
|
|
16373
16429
|
return n ? `+${i}` : i;
|
|
16374
|
-
}, H = computed(() => {
|
|
16430
|
+
}, H = (e) => /\d/.test(e) && /^[+\d\s().*#-]+$/.test(e.trim()), U = computed(() => {
|
|
16375
16431
|
let e = p.value, t = e?.remoteNumber || e?.keypadValue, n = e?.remoteDisplayName;
|
|
16376
16432
|
if (!t) return "Unknown";
|
|
16377
16433
|
let i = B(t), a = o.contacts?.find((e) => B(e.number) === i);
|
|
16378
|
-
return a ? a.name : n && n !== t ? n : o.maskNumber ? maskPhoneNumber(t) : t;
|
|
16379
|
-
}),
|
|
16434
|
+
return a ? a.name : n && n !== t ? o.maskNumber && H(n) ? B(n) === i ? maskPhoneNumber(t) : maskPhoneNumber(n) : n : o.maskNumber ? maskPhoneNumber(t) : t;
|
|
16435
|
+
}), W = computed(() => {
|
|
16380
16436
|
let e = p.value, t = e?.remoteNumber || e?.keypadValue || "";
|
|
16381
16437
|
return o.maskNumber ? maskPhoneNumber(t) : t;
|
|
16382
16438
|
});
|
|
@@ -16473,7 +16529,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
16473
16529
|
})) : (openBlock(), createBlock(unref(CircleUser), {
|
|
16474
16530
|
key: 4,
|
|
16475
16531
|
class: "wp:w-3 wp:h-3"
|
|
16476
|
-
}))], 2), createElementVNode("div", _hoisted_9$4, [createElementVNode("span", _hoisted_10$3, toDisplayString(e.name), 1), createElementVNode("span", _hoisted_11$3, toDisplayString(e.number), 1)])], 40, _hoisted_8$4))), 128))], 512), [[vShow, v.value && E.value && (O.value.length > 0 || D.value)]])], 512)])) : (p.value?.status || "idle") === "connected" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [createElementVNode("div", _hoisted_13$1, [createElementVNode("div", _hoisted_14$1, " En llamada con " + toDisplayString(
|
|
16532
|
+
}))], 2), createElementVNode("div", _hoisted_9$4, [createElementVNode("span", _hoisted_10$3, toDisplayString(e.name), 1), createElementVNode("span", _hoisted_11$3, toDisplayString(e.number), 1)])], 40, _hoisted_8$4))), 128))], 512), [[vShow, v.value && E.value && (O.value.length > 0 || D.value)]])], 512)])) : (p.value?.status || "idle") === "connected" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [createElementVNode("div", _hoisted_13$1, [createElementVNode("div", _hoisted_14$1, " En llamada con " + toDisplayString(U.value), 1), U.value === W.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_15$1, toDisplayString(W.value), 1))])])) : (p.value?.status || "idle") === "idle" ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_16$1, [createElementVNode("div", _hoisted_17$1, [createElementVNode("div", _hoisted_18, [createElementVNode("div", _hoisted_19, toDisplayString(U.value), 1), U.value === W.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_20, toDisplayString(W.value), 1))]), createVNode(unref(TooltipProvider_default), null, {
|
|
16477
16533
|
default: withCtx(() => [createVNode(unref(Tooltip_default), null, {
|
|
16478
16534
|
default: withCtx(() => [createVNode(unref(TooltipTrigger_default), { "as-child": "" }), createVNode(unref(TooltipContent_default), { class: "wp:flex wp:items-center wp:gap-2" }, {
|
|
16479
16535
|
default: withCtx(() => [createElementVNode("span", null, toDisplayString(unref(t).isKeypadVisible ? "Ocultar" : "Mostrar") + " teclado", 1), createVNode(unref(Kbd_default), null, {
|
|
@@ -17656,59 +17712,59 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17656
17712
|
}), qp = computed(() => {
|
|
17657
17713
|
let e = Gp.value?.remoteNumber || x.remoteNumber;
|
|
17658
17714
|
return o.maskNumber ? maskPhoneNumber(e) : e;
|
|
17659
|
-
}), q = computed(() => (W.value, !!Gp.value?.hasVideo || G(E.value) || G(D.value))), { isOnline:
|
|
17660
|
-
|
|
17661
|
-
},
|
|
17715
|
+
}), q = computed(() => (W.value, !!Gp.value?.hasVideo || G(E.value) || G(D.value))), { isOnline: Jp } = useNetwork(), J = computed(() => !Jp.value), Y = ref(null), Z = ref(!1), tm = computed(() => o.enablePictureInPicture), nm = () => {
|
|
17716
|
+
tm.value && Y.value?.toggle();
|
|
17717
|
+
}, Q = async (e, t) => {
|
|
17662
17718
|
try {
|
|
17663
17719
|
t === "blind" ? await S.transferCall(e) : await S.startAttendedTransfer(e);
|
|
17664
17720
|
} catch (e) {
|
|
17665
17721
|
console.error("[WebPhone] Transfer error:", e), alert(e instanceof Error ? e.message : "Transfer failed. Please try again.");
|
|
17666
17722
|
}
|
|
17667
|
-
},
|
|
17723
|
+
}, rm = async () => {
|
|
17668
17724
|
try {
|
|
17669
17725
|
await S.completeAttendedTransfer();
|
|
17670
17726
|
} catch (e) {
|
|
17671
17727
|
console.error("[WebPhone] Complete transfer error:", e), alert(e instanceof Error ? e.message : "Failed to complete transfer.");
|
|
17672
17728
|
}
|
|
17673
|
-
},
|
|
17729
|
+
}, im = async () => {
|
|
17674
17730
|
try {
|
|
17675
17731
|
await S.cancelAttendedTransfer();
|
|
17676
17732
|
} catch (e) {
|
|
17677
17733
|
console.error("[WebPhone] Cancel transfer error:", e), alert(e instanceof Error ? e.message : "Failed to cancel transfer.");
|
|
17678
17734
|
}
|
|
17679
|
-
}, im = (e) => {
|
|
17680
|
-
x.keypadValue = e, S.makeCall(e);
|
|
17681
17735
|
}, am = (e) => {
|
|
17736
|
+
x.keypadValue = e, S.makeCall(e);
|
|
17737
|
+
}, om = (e) => {
|
|
17682
17738
|
if (o.onAnswer) {
|
|
17683
17739
|
o.onAnswer(e);
|
|
17684
17740
|
return;
|
|
17685
17741
|
}
|
|
17686
17742
|
S.answerCall(e);
|
|
17687
|
-
},
|
|
17743
|
+
}, sm = () => {
|
|
17688
17744
|
if (o.onHangup) {
|
|
17689
17745
|
o.onHangup();
|
|
17690
17746
|
return;
|
|
17691
17747
|
}
|
|
17692
17748
|
S.hangupCall();
|
|
17693
|
-
},
|
|
17749
|
+
}, cm = () => {
|
|
17694
17750
|
if (o.onReject) {
|
|
17695
17751
|
o.onReject();
|
|
17696
17752
|
return;
|
|
17697
17753
|
}
|
|
17698
17754
|
S.hangupCall();
|
|
17699
|
-
}, cm = () => {
|
|
17700
|
-
j.value = !0, Z.value?.close(), window.focus();
|
|
17701
17755
|
}, lm = () => {
|
|
17702
|
-
|
|
17703
|
-
let e = x.callStatus !== "idle", t = document.hidden || !document.hasFocus();
|
|
17704
|
-
return e && t && !Q.value;
|
|
17756
|
+
j.value = !0, Y.value?.close(), window.focus();
|
|
17705
17757
|
}, um = () => {
|
|
17758
|
+
if (!tm.value) return !1;
|
|
17759
|
+
let e = x.callStatus !== "idle", t = document.hidden || !document.hasFocus();
|
|
17760
|
+
return e && t && !Z.value;
|
|
17761
|
+
}, $ = () => {
|
|
17706
17762
|
window.setTimeout(() => {
|
|
17707
|
-
|
|
17763
|
+
um() && Y.value?.open();
|
|
17708
17764
|
}, 150);
|
|
17709
17765
|
};
|
|
17710
17766
|
watchEffect(() => {
|
|
17711
|
-
F.value && (
|
|
17767
|
+
F.value && (Z.value || !E.value ? F.value.srcObject = null : F.value.srcObject = E.value), L.value && (Z.value || !D.value ? L.value.srcObject = null : L.value.srcObject = D.value);
|
|
17712
17768
|
});
|
|
17713
17769
|
let dm = (e) => {
|
|
17714
17770
|
if (!e || typeof e.addEventListener != "function" || typeof e.removeEventListener != "function") return () => {};
|
|
@@ -17775,7 +17831,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17775
17831
|
], vm = ref(!1), ym = computed({
|
|
17776
17832
|
get: () => x.activeChannelId.toString(),
|
|
17777
17833
|
set: async (e) => {
|
|
17778
|
-
if (!
|
|
17834
|
+
if (!J.value && e && !vm.value) {
|
|
17779
17835
|
vm.value = !0;
|
|
17780
17836
|
try {
|
|
17781
17837
|
await T(parseInt(e));
|
|
@@ -17791,9 +17847,9 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17791
17847
|
let t = x.channels.find((t) => t.id === e);
|
|
17792
17848
|
return t ? t.isHeld || t.status === "held" : !1;
|
|
17793
17849
|
}, Sm = (e) => {
|
|
17794
|
-
|
|
17850
|
+
J.value || (ym.value = e.toString());
|
|
17795
17851
|
}, Cm = (e) => {
|
|
17796
|
-
if (!
|
|
17852
|
+
if (!J.value && ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "h" && (e.preventDefault(), k.value = !0), (e.metaKey || e.ctrlKey) && e.key === "," && (e.preventDefault(), O.value = !0), (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k" && (e.preventDefault(), x.toggleKeypad()), (e.metaKey || e.ctrlKey) && [
|
|
17797
17853
|
"1",
|
|
17798
17854
|
"2",
|
|
17799
17855
|
"3"
|
|
@@ -17806,14 +17862,14 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17806
17862
|
}
|
|
17807
17863
|
};
|
|
17808
17864
|
watch(() => x.callStatus, () => {
|
|
17809
|
-
|
|
17865
|
+
um() && $();
|
|
17810
17866
|
}), watch(() => x.isConnected, (e) => {
|
|
17811
17867
|
v.value && a.set(v.value, e);
|
|
17812
|
-
}, { immediate: !0 }), watch(
|
|
17813
|
-
!e &&
|
|
17868
|
+
}, { immediate: !0 }), watch(tm, (e) => {
|
|
17869
|
+
!e && Z.value && Y.value?.close();
|
|
17814
17870
|
});
|
|
17815
17871
|
let wm = ref(!1), Tm = async () => {
|
|
17816
|
-
wm.value ||
|
|
17872
|
+
wm.value || J.value || !o.host || !o.extension || !o.password || (await w({
|
|
17817
17873
|
uri: `sip:${o.extension}@${o.host}`,
|
|
17818
17874
|
transportOptions: { server: _.value },
|
|
17819
17875
|
authorizationUsername: o.extension,
|
|
@@ -17828,22 +17884,22 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17828
17884
|
await S.stop(), wm.value = !1;
|
|
17829
17885
|
}
|
|
17830
17886
|
}), onMounted(async () => {
|
|
17831
|
-
window.addEventListener("keydown", Cm), document.addEventListener("visibilitychange",
|
|
17832
|
-
}), watch(() =>
|
|
17887
|
+
window.addEventListener("keydown", Cm), document.addEventListener("visibilitychange", $), window.addEventListener("blur", $), window.addEventListener("pagehide", $), !(o.mode === "webcall" && (!o.to || !o.logo)) && await Tm();
|
|
17888
|
+
}), watch(() => Jp.value, async (e) => {
|
|
17833
17889
|
e && await Tm();
|
|
17834
17890
|
}), onUnmounted(() => {
|
|
17835
|
-
S.stop(), window.removeEventListener("keydown", Cm), document.removeEventListener("visibilitychange",
|
|
17891
|
+
S.stop(), window.removeEventListener("keydown", Cm), document.removeEventListener("visibilitychange", $), window.removeEventListener("blur", $), window.removeEventListener("pagehide", $);
|
|
17836
17892
|
}), (e, t) => (openBlock(), createElementBlock(Fragment, null, [
|
|
17837
17893
|
createElementVNode("div", {
|
|
17838
17894
|
ref_key: "phoneRef",
|
|
17839
17895
|
ref: N,
|
|
17840
17896
|
style: normalizeStyle(unref(gm)),
|
|
17841
|
-
class: normalizeClass(["webphone webphone-container wp:bg-white wp:dark:bg-neutral-800 wp:rounded-lg wp:shadow-sm wp:inset-shadow-2xs wp:w-[min(92vw,330px)] wp:fixed wp:z-50 wp:select-none wp:[&_button]:cursor-pointer wp:**:[[role=button]]:cursor-pointer",
|
|
17897
|
+
class: normalizeClass(["webphone webphone-container wp:bg-white wp:dark:bg-neutral-800 wp:rounded-lg wp:shadow-sm wp:inset-shadow-2xs wp:w-[min(92vw,330px)] wp:fixed wp:z-50 wp:select-none wp:[&_button]:cursor-pointer wp:**:[[role=button]]:cursor-pointer", J.value ? "wp:opacity-70" : ""]),
|
|
17842
17898
|
"data-mode": o.mode,
|
|
17843
17899
|
"data-call-status": x.callStatus,
|
|
17844
|
-
"data-network-status":
|
|
17900
|
+
"data-network-status": J.value ? "offline" : "online"
|
|
17845
17901
|
}, [
|
|
17846
|
-
q.value && !
|
|
17902
|
+
q.value && !Z.value ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("video", {
|
|
17847
17903
|
ref_key: "remoteVideoRef",
|
|
17848
17904
|
ref: F,
|
|
17849
17905
|
autoplay: "",
|
|
@@ -17864,7 +17920,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17864
17920
|
type: "button",
|
|
17865
17921
|
role: "radio",
|
|
17866
17922
|
"aria-checked": ym.value === e.value.toString(),
|
|
17867
|
-
disabled:
|
|
17923
|
+
disabled: J.value,
|
|
17868
17924
|
title: `${e.label} (${unref(H)}${e.value + 1})`,
|
|
17869
17925
|
class: normalizeClass(["webphone__channel-button wp:flex wp:items-center wp:gap-1 wp:px-2 wp:py-2 wp:rounded-lg wp:transition-colors wp:duration-200 wp:outline-none wp:focus-visible:ring-2 wp:focus-visible:ring-[var(--p-primary-color)] wp:focus-visible:ring-offset-2 wp:focus-visible:ring-offset-white wp:dark:focus-visible:ring-offset-neutral-900", xm(e.value) ? "wp:bg-status-hold/12 hover:wp:bg-status-hold/18" : bm(e.value) ? "wp:bg-[var(--color-red)]/12 hover:wp:bg-[var(--color-red)]/18" : ym.value === e.value.toString() ? "wp:bg-[var(--p-primary-color)]/12" : "wp:hover:bg-neutral-100 wp:dark:hover:bg-neutral-800/80"]),
|
|
17870
17926
|
"data-channel-id": e.value,
|
|
@@ -17881,9 +17937,9 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17881
17937
|
default: withCtx(() => [createVNode(unref(Button_default), {
|
|
17882
17938
|
variant: "ghost",
|
|
17883
17939
|
size: "icon",
|
|
17884
|
-
class: normalizeClass(["wp:h-8 wp:w-8 wp:rounded-full",
|
|
17940
|
+
class: normalizeClass(["wp:h-8 wp:w-8 wp:rounded-full", Z.value ? "wp:text-primary" : ""]),
|
|
17885
17941
|
title: "Picture-in-Picture",
|
|
17886
|
-
onClick:
|
|
17942
|
+
onClick: nm
|
|
17887
17943
|
}, {
|
|
17888
17944
|
default: withCtx(() => [createVNode(unref(PictureInPicture2), { class: "wp:w-4 wp:h-4 wp:text-[var(--color-settings)]" })]),
|
|
17889
17945
|
_: 1
|
|
@@ -17927,7 +17983,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17927
17983
|
"channel-id": e.id,
|
|
17928
17984
|
"allow-input": !U.value,
|
|
17929
17985
|
"is-web-call": U.value,
|
|
17930
|
-
"is-online": unref(
|
|
17986
|
+
"is-online": unref(Jp),
|
|
17931
17987
|
contacts: o.contacts,
|
|
17932
17988
|
user: o.extension,
|
|
17933
17989
|
"mask-number": o.maskNumber
|
|
@@ -17946,15 +18002,15 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17946
18002
|
}, [createVNode(KeyPad_default)], 10, _hoisted_10),
|
|
17947
18003
|
createVNode(CallActions_default, {
|
|
17948
18004
|
class: "webphone__actions",
|
|
17949
|
-
style: normalizeStyle(
|
|
18005
|
+
style: normalizeStyle(J.value ? "pointer-events: none;" : void 0),
|
|
17950
18006
|
destination: U.value ? o.to : void 0,
|
|
17951
18007
|
"is-video": o.mode === "video",
|
|
17952
18008
|
"on-answer": o.onAnswer,
|
|
17953
18009
|
"on-hangup": o.onHangup,
|
|
17954
18010
|
"on-reject": o.onReject,
|
|
17955
18011
|
onTransfer: t[1] ||= (e) => j.value = !0,
|
|
17956
|
-
onCompleteTransfer:
|
|
17957
|
-
onCancelTransfer:
|
|
18012
|
+
onCompleteTransfer: rm,
|
|
18013
|
+
onCancelTransfer: im
|
|
17958
18014
|
}, null, 8, [
|
|
17959
18015
|
"style",
|
|
17960
18016
|
"destination",
|
|
@@ -17964,7 +18020,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17964
18020
|
"on-reject"
|
|
17965
18021
|
])
|
|
17966
18022
|
]),
|
|
17967
|
-
|
|
18023
|
+
J.value ? (openBlock(), createElementBlock("div", _hoisted_11, [...t[10] ||= [createElementVNode("span", { class: "wp:text-sm wp:font-semibold wp:text-status-disconnected" }, "Sin internet", -1)]])) : createCommentVNode("", !0),
|
|
17968
18024
|
U.value ? (openBlock(), createElementBlock("div", _hoisted_12, [...t[11] ||= [createElementVNode("div", { class: "webphone__footer-label wp:text-[10px] wp:text-primary" }, "Powered By", -1), createElementVNode("div", { class: "webphone__footer-content wp:flex wp:items-center wp:gap-2" }, [createElementVNode("a", {
|
|
17969
18025
|
href: "https://www.nebula123.com",
|
|
17970
18026
|
target: "_blank",
|
|
@@ -17979,20 +18035,20 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
17979
18035
|
visible: k.value,
|
|
17980
18036
|
"onUpdate:visible": t[3] ||= (e) => k.value = e,
|
|
17981
18037
|
contacts: o.contacts,
|
|
17982
|
-
onCall:
|
|
18038
|
+
onCall: am
|
|
17983
18039
|
}, null, 8, ["visible", "contacts"]),
|
|
17984
18040
|
createVNode(TransferDialog_default, {
|
|
17985
18041
|
visible: j.value,
|
|
17986
18042
|
"onUpdate:visible": t[4] ||= (e) => j.value = e,
|
|
17987
18043
|
contacts: o.contacts,
|
|
17988
|
-
onTransfer:
|
|
18044
|
+
onTransfer: Q
|
|
17989
18045
|
}, null, 8, ["visible", "contacts"]),
|
|
17990
18046
|
createVNode(DocumentPip_default, {
|
|
17991
18047
|
ref_key: "documentPipRef",
|
|
17992
|
-
ref:
|
|
17993
|
-
active:
|
|
17994
|
-
"onUpdate:active": t[5] ||= (e) =>
|
|
17995
|
-
"auto-open-on-blur":
|
|
18048
|
+
ref: Y,
|
|
18049
|
+
active: Z.value,
|
|
18050
|
+
"onUpdate:active": t[5] ||= (e) => Z.value = e,
|
|
18051
|
+
"auto-open-on-blur": tm.value,
|
|
17996
18052
|
"is-connected": x.isConnected,
|
|
17997
18053
|
"remote-number": qp.value,
|
|
17998
18054
|
"caller-name": Kp.value,
|
|
@@ -18004,11 +18060,11 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
|
|
|
18004
18060
|
"call-status": x.callStatus,
|
|
18005
18061
|
"is-muted": x.isMuted,
|
|
18006
18062
|
"is-held": x.isHeld,
|
|
18007
|
-
onTransfer:
|
|
18008
|
-
onTransferRequest:
|
|
18009
|
-
onHangup:
|
|
18010
|
-
onReject:
|
|
18011
|
-
onAnswer:
|
|
18063
|
+
onTransfer: lm,
|
|
18064
|
+
onTransferRequest: Q,
|
|
18065
|
+
onHangup: sm,
|
|
18066
|
+
onReject: cm,
|
|
18067
|
+
onAnswer: om,
|
|
18012
18068
|
onToggleMute: t[6] ||= (e) => unref(S).toggleMute(),
|
|
18013
18069
|
onToggleHold: t[7] ||= (e) => unref(S).toggleHold()
|
|
18014
18070
|
}, null, 8, [
|