Окно звонка: при connection.passwordRequired (пропуск истёк при переподключении) брать новый пропуск и входить заново
This commit is contained in:
@@ -70,7 +70,7 @@ export function BrowserCall(props: { session: string; onSessionLost: (msg: strin
|
|||||||
setMsg(why);
|
setMsg(why);
|
||||||
if (fails > 6) { setPhase("error"); return; }
|
if (fails > 6) { setPhase("error"); return; }
|
||||||
setPhase("retry");
|
setPhase("retry");
|
||||||
timer = window.setTimeout(() => void start(), Math.min(30, 2 ** (fails - 1)) * 1000);
|
timer = window.setTimeout(() => void start(), fails === 1 ? 300 : Math.min(30, 2 ** (fails - 1)) * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function start() {
|
async function start() {
|
||||||
@@ -108,9 +108,12 @@ export function BrowserCall(props: { session: string; onSessionLost: (msg: strin
|
|||||||
const err = (e as { error?: { name?: string; isFatal?: boolean; type?: string } }).error ?? {};
|
const err = (e as { error?: { name?: string; isFatal?: boolean; type?: string } }).error ?? {};
|
||||||
diag.errors.push(`${err.type ?? ""}:${err.name ?? ""}${err.isFatal ? ":fatal" : ""}`);
|
diag.errors.push(`${err.type ?? ""}:${err.name ?? ""}${err.isFatal ? ":fatal" : ""}`);
|
||||||
if (diag.errors.length > 30) diag.errors.shift();
|
if (diag.errors.length > 30) diag.errors.shift();
|
||||||
// Фатальная ошибка соединения или конференции (в т. ч. отказ по истёкшему пропуску при переподключении):
|
// Jitsi сам уже не восстановится — входим заново с новым пропуском:
|
||||||
// Jitsi сам уже не восстановится — входим заново с новым пропуском.
|
// • фатальная ошибка соединения или конференции;
|
||||||
if (err.isFatal && !hungUp && jitsi === j) retryLater("з'єднання перервалося");
|
// • отказ по пропуску при переподключении: после долгого обрыва сети пропуск уже истёк, и prosody
|
||||||
|
// отвечает connection.passwordRequired (Jitsi не помечает её фатальной и показывает окно логина).
|
||||||
|
const authFail = /passwordRequired|authenticationRequired|notAllowed|notAuthorized/i.test(err.name ?? "");
|
||||||
|
if ((err.isFatal || authFail) && !hungUp && jitsi === j) retryLater(authFail ? "пропуск застарів, отримую новий" : "з'єднання перервалося");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user