Globe utilizza la presenza di sessione media per i visitatori di marketing
Richiedi GUID di sessione a catena pubblica in snapshot di presenza; tratta online se sessione o membro del richiedente è collegato. Maniglia la busta istantane...
Traccia chat di supporto pubblico per sessione GUID in Redis
I visitatori di marketing utilizzano /ws/public-chat-native senza membroId; i biglietti ancora riferimento al titolare del posto org come richiestore. Increment...
Non pulire l'assegnazione dei membri sulla sincronizzazione da fornitori che mancano di metadati
E' il momento giusto. incondizionatamente PhoneExtension.assignedMemberId con qualsiasi cosa il fornitore restituito. FreePBX (e qualsiasi fornitore che non rin...
Mostra il nome del fornitore in modalità vista + estensione propria in riepilogo
Due cimici addosso. 1. Modalità di visualizzazione scaricato UUID grezzo — "Instance 32f520b0-347a-..." — perché l'elenco delle istanze è stato caricato solo d...
Serialize ExtensionDto.assignedMemberId come una stringa
overflows della gamma safe-integer di JS (ad esempio 1168485658174423046 round-trips come 1168485658174423000 una volta che un numero JSON colpisce il browser)....
Rendere WebRTC configurazione sopravvivere pod riavvio
L'approccio precedente (http custom.conf con [general] override) non è stato effettivamente prendere effetto perché il parser INI di Asterisk non onora più [gen...
Attivare il server HTTP integrato Asterisk su:8089 per WebRTC /ws
Un chan pjsip `protocol=ws` trasporta gite in cima a res http websocket, che a sua volta richiede che il server HTTP integrato di Asterisk sia in esecuzione. Th...
Prioritizzare il nome reale primo / ultimo sopra il nome utenteAlias per il display
usernameAlias è funzionalemente una maniglia di login (spesso uguale a nome utente), non un nome di visualizzazione. I veri nomi umani-leggibili vivono su User....
Scope Aggiungere piombo scorrimento e piè di pagina alla sua area di contenuto
La forma stava usando minHeight: 100vh dentro un genitore che è già calc(100vh - 56px), forzando una barra di scorrimento esterna anche quando il contenuto si a...
Smart layout multicolonna per Aggiungi modulo di piombo
Ristrutturare la pagina in una griglia di alto livello quindi le sezioni compongono orizzontalmente invece di allungare i singoli campi: - Market & Assignment ...
Utilizzare /api/security/members/names per la risoluzione dei nomi assegnati
I filtri endpoint di by-department per il solo TeamMembers attivo, mancante assegnazioni ai membri di base o ai membri inattivi. Passare a /nomi che restituisce...
Aggiungi modulo di piombo e clearance per il piè di pagina appiccicoso
Getta la larghezza massima 1200px su /leads/new quindi il modulo abbraccia l'area pagina, e paraurti imbottitura in modo che la barra di azione appiccicosa non ...
Risolvere il nome del display con una corretta priorità in endpoint by-department
Priorità: member.usernameAlias → user.name.formatFull() → user.alias → user.username
Aggiungi mancante èDisplayOnIntake campo a FormField interfaccia e nuovo campo literal
Utilizzare il tipo di stringa per assegnatoMemberId per prevenire la perdita di precisione
Serializzare Lungo come stringa per prevenire la perdita di precisione JS su grandi ID CockroachDB
Nascondi la scheda ATF interamente quando tutti i campi sono bloccati dal modello applicato
Sonda modello master endpoint e fix applicatoModello org ID
- Sostituire applicatoModel.source-based gate con una sonda diretta /api/security/master-model sul montaggio; r.ok=false (409) significa org è regolato da un ti...
Gate censorship tab options by applied model constraints
- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...
Mark-as-read and message fetch for shared/member mailboxes
Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Maniglia IMAPInputStream in getMessage per evitare ClassCastException
JavaMail può restituire un IMAPInputStream invece di uno String decodificato da part.getContent() quando il contenuto del messaggio non è stato pre-fetched. The...
Aumentare TTL da 90s a 300s per evitare il falso OFFLINE sulla scheda throttling
Riscrivi tutte le query/mutazioni GQL contro l'introspezione dello schema live
Verificato ogni nome del campo e digitare contro lo schema effettivo FreePBX 17. Set completo di correzioni: Query: - fetchAllExtensions: rimuovere il campo "v...
Passare selezionatoFolder a ThreadDetailView in modo e-mail:fuochi cambiati cartella con una cartella valida
conversazione.folder è sempre non definita perché la conversazione Java ha folderIds (text[]) non un campo di stringa cartella. Questo ha causato il carico. cal...
Corretto il nome del campo di GraphQL per fetchAsteriskDettagli
FreePBX API restituisce "Vuoi dire fetchAsteriskDetails?" — rinominare la salute controllare query e il suo percorso di dati accesso di conseguenza.
Aggiungere le intestazioni XHR/Accept e l'analisi della risposta di stringa al client GraphQL
Stesso modello di FreePBXTokenCache: aggiungere X-Requested-With + Accettare: applicazione/json per sopprimere le risposte redirect HTML di FreePBX, e passare t...
Sincronizzazione casella di posta a discesa nella casella di posta primaria sul carico
Dropdown predefinito alla prima voce dell'elenco perché selezionatoMailbox inizializzato senza mailboxId, causando correnteValuta di risolvere a nudo 'personale...
Aumentare il limite di dimensione del file di upload a 500MB
Spring Boot predefinisce il tappo di parti multipart a 1MB, causando l'immagine di sfondo caricamenti per fallire con 500 in request.getParts(). Match SecurityS...
Gli errori HTTP di superficie così i guasti di upload sono visibili
Sostituito console silenziosa.warn con un errore gettato sullo stato non-OK, così l'utente vede il motivo di fallimento effettivo (status + corpo di risposta) i...
Aggiungete le intestazioni Accept+XHR e la parsing di risposta cruda per il punto finale di token
FreePBX stava ritornando testo/html quando viene chiamato tramite cluster DNS perché L'intestazione host non corrisponde al PBX HOSTNAME configurato. Aggiunta A...
Guidare l'ingresso minimizzato-tab attraverso i controlli di animazione
Cambiare animate={...} per animare={tabControls} ha rotto la voce animazione: tabControls non ha un target in coda sul montaggio, quindi il pulsante è rimasto a...
Correggere le stringhe di portata OAuth2 per FreePBX API
Gli ambiti FreePBX sono identificatori di alto livello: 'gql' (tutti GraphQL) e 'rest' (tutti REST). Il formato 'gql:read' significa GQL per un modulo chiamato ...
Esposizione porto 8088 direttamente sul servizio ClusterIP
Il servizio aveva solo il porto 80→8088 mappatura. Servizi interni Non e' vero. (ad es. token API VOIPService richieste) erano tempi out perché porto 8088 non a...
Trust backend pendenteCount, drop client offset
Backend Paese in sospeso è ora non letto (conti SUPPORT TICKET sessioni con i messaggi più recenti dell'ultima vista del proprietario). Quando l'agente si apre ...
Aggiungi fail2ban-config ConfigMap mancante per k1m1
Riferimenti di distribuzione fail2ban-config ConfigMap (jail.local + asterisk-security.conf) ma non esisteva, bloccando la capsula MountVolume. Impostare e impe...
MarkAsRead dopo che l'agente invia così lastViewed avanzamenti
Sui biglietti di supporto, sia i messaggi dei visitatori che degli agenti vengono memorizzati sotto stesso sistemaMember, quindi la query ilread-count è membro-...
I biglietti di supporto hanno bisogno di conteggi non letti
I messaggi dei visitatori sui biglietti di supporto vengono memorizzati sotto lo stesso sistemaMember che l'agente autentica come, in modo che l'attuale session...
Passare la cartella per caricareIl pulsante di riprovazione
loadThread prende (threadId, cartella); il pulsante di ripristino di errore solo passato threadId, rompendo la costruzione kamo-internal. Abbina la chiamata a l...
Corretto JsonIdentity Info proprietà da 'uniqueId' a 'id'
Ente membro ha dichiarato @JsonIdentityInfo(property = "uniqueId") ma il campo chiave principale effettivo è chiamato 'id'. Jackson ha lanciato "non può trovare...
Rimuovere la guardia SSR causando errore di idratazione; goccia SockJS per nativo WebSocket
- Hero.tsx: rimuovere il tipo di finestra controllare intorno ParticleField — ParticleField già ha ssr:false così la guardia ha prodotto un errore server/client...
Indicatori illeggi chiari quando si apre la conversazione
ThreadDetailView invia ora e-mail:folder-changed dopo markConversationRead riesce così MailButton refetches il conteggio del distintivo di inbox navtop. Convers...
Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter
The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...
Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout
The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...
Break min-w-0 chain to contain email scroll in body column only
Add min-w-0 to outer container and main content flex div so flex children cannot expand to email min-content width, which was causing the page-wide horizontal s...
Fornitori di hoist sopra ToolProviders
Stessa causa principale del paranco ChatWebSocketProvider: SupportTicketWindow chiamate E ChatBox chiama. useUnread().markAsRead(), ma entrambe le finestre dell...
Aggiungi soppressioneHydrationWarning e fissare immagini segnaposto rotto
soppressioneHydrationWarning su <html> impedisce React errore #418 causato dal browser estensioni (ad esempio tradurre, modalità oscura) che mutano gli attribut...
Consentire /domain/ percorso prefisso sul tema IngressRoute per CORS
Il tema config a tema.kamocrm.com/domain/... non è stato abbinato dal regole di rotta esistenti (solo /pubblico/ e /internal/ sono stati autorizzati), quindi Tr...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
