Окно звонка: при connection.passwordRequired (пропуск истёк при переподключении) брать новый пропуск и входить заново
This commit is contained in:
@@ -70,7 +70,7 @@ export function BrowserCall(props: { session: string; onSessionLost: (msg: strin
|
||||
setMsg(why);
|
||||
if (fails > 6) { setPhase("error"); return; }
|
||||
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() {
|
||||
@@ -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 ?? {};
|
||||
diag.errors.push(`${err.type ?? ""}:${err.name ?? ""}${err.isFatal ? ":fatal" : ""}`);
|
||||
if (diag.errors.length > 30) diag.errors.shift();
|
||||
// Фатальная ошибка соединения или конференции (в т. ч. отказ по истёкшему пропуску при переподключении):
|
||||
// Jitsi сам уже не восстановится — входим заново с новым пропуском.
|
||||
if (err.isFatal && !hungUp && jitsi === j) retryLater("з'єднання перервалося");
|
||||
// Jitsi сам уже не восстановится — входим заново с новым пропуском:
|
||||
// • фатальная ошибка соединения или конференции;
|
||||
// • отказ по пропуску при переподключении: после долгого обрыва сети пропуск уже истёк, и 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