- Shipped
- 26 de agosto de 2026 a las 2:33 UTC
- Author
- kamo
- Commit
- a04da73
El softphone abrió su conexión SockJS/STOMP a media. getCapabilities() se espera unas pocas líneas arriba y es la respuesta propia del backend a "puede este org tomar llamadas", pero el enchufe fue establecido fuera de esa puerta - así que un miembro de un org sin sistema telefónico configurado abrió la conexión de todos modos, pagó su /info XHR, y luego lo mantuvo abierto con un par de latidos cada 20 s, por cuenta, para eventos que podrían Nunca llegas. Ahora está dentro de "if (caps?.voiceCalls). Deliberadamente su propio bloque en lugar de plegado en la puerta de credenciales SIP por encima de ella: que uno devuelta temprano cuando la credencial se puede cazar falla, y un org habilitado para la voz todavía debería conseguir el enchufe incluso cuando el registro podría no estar establecido. La secuencia de arranque también obtuvo /api/user-info directamente, convirtiéndola en la séptima independiente llamante de ese punto final en una carga fría de útero . cada uno un EISSTAS Redis . SETEX más SeguridadDerechos de servicio que se repiten. Pasa por cargaUserInfoCompartir ahora, el coalescer que ya existía en usoUserInfo, exportado para los que llamaban fuera del gancho. Alcándalo de un efecto claro en lugar de consumir usoUserInfo() es deliberado: el gancho añadiría otro intervalo de actualización de 5 minutos y otro oyente de cambio de visibilidad para una respuesta el el softphone necesita una vez, en el arranque. Ese intercambio también arregla algo más tranquilo. La captura cruda no envió X-***-Token, así que se inclinó en el tarro de galletas en lugar de nombrar la sesión que este TAB celebra; el cargador compartido dice la cuenta es una muestra. Y cuando no hay sesión ahora regresa en lugar de continuar. el viejo camino convirtió un cuerpo 401 en String(indefinido) e inicializó un suave para miembro "indefinido". No se hace deliberadamente: colapsando las cinco conexiones STOMP a clientes compartidos. Tres ir a una URL idéntica y dos a otra, por lo que hay residuos reales allí, pero el notificaciones y tomas de correo electrónico tienen presupuestos de repliegue materialmente diferentes y entrega políticas - compartirlos haría que las notificaciones fueran estrictamente menos resistentes para comprar algunos marcos. Eso necesita un registro de conexión con la repensación por suscriptor semántica, no una fusión. Verificado: tsc --noEmita el uso de overusphoneSoftphone, useUserInfo, SoftphoneContext y SoftphonePanel con sus importaciones transitivas; no se introdujo el ciclo de importación; los 9 guardias pass, incluyendo el archivo de verificación de sesión-token-fuente; 29 voguitos y pruebas de sesión pasan.