Afișează butonul Creare document către toți membrii conectați
Verificare de pavilion org (isDocsEditor → isDocs → hasFeature DOCS) a revenit fals deoarece caracteristicile org folosesc tipuri de chei depreciate. Butonul es...
Elimină filtrele de nivel de câmp Datagrid și rândul de filtrare plutitoare
Dezactivează toate filtrele de coloană și rândul de intrare plutitor filtru astfel încât grilă indică numai antetele coloanei și rândurile de date. De asemenea,...
Mută butonul de încărcare în bara de unelte DocManager
Declanșatorul de încărcare a fost doar în /doc / pagina managerului de acțiuni prop, face invizibil atunci când DocManager este încorporat în alte pagini. Mutat...
Permite opţiunilor de upload pentru a derula în DockManager încorporat
Uploads file container a fost supraîncărcat: ascunse, tăiere opţiuni per fişier (descriere, folder, tip doctor, nivel de acces) în înălțime contexte integrate. ...
Fix 400 eroare de alimentare și adăugați sub-tabe de comunicații cu parametri URL
Fix dublu-? bug în MediaStream unde feedEndpoint conținea deja interogare params, but the put appended ?page=... in loc de &page=..., causing a URL-ul malformat...
Asigurați 'Toate conduce' un element de meniu real cu icoane în filtru agent
- Inlocuiti elementul cu valoarea goala a ocupantului cu ALL asa ca scaderea niciodată nu arată gol atunci când All Leads este selectat - Adăugați pictogram...
Consuma *** secret astfel X-Normal-Auth se potrivește serviciilor din aval
DaemonService -> Servicii de conversie A fost un accident. Revenind 401 Neautorizat pentru că DaemonService a fost ștanțare sale Antet X-Non-Auth de la INTERN A...
Use @CreationTimestamp(source=DB) on ****************
The DB is the single source of truth for timestamps in this codebase. The canonical Hibernate pattern is @CreationTimestamp(source = SourceType.DB), which makes...
Let DB fill **************** via @Generated(INSERT)
INSERTs were failing with: null value in column "date_created" violates not-null constraint @ColumnDefault only declares the DB-side default for new rows; Hi...
Drop the [from-internal-custom] _X. catch-all that broke softphone calls
The catch-all exten => _X.,1 in [from-internal-custom] was intercepting every internal dial — softphones started reporting "phone is not registered" / calls wou...
Enable JPA repos for commerce + email + dao.repositories packages
ConversionService new pod CrashLoopBackOff with the same error DaemonService hit earlier: Parameter 0 of constructor in **************** required a bean of ...
Carve /api/voip/recordings/** out of the wildcard VOIP forwarder
The /api/voip/** catch-all in APIGatewayController was shadowing the dedicated VoipRecordingUploadController POST /api/voip/recordings/upload mapping when Sprin...
Write managed config files 0644 so the asterisk daemon can read them
The kamo-asterisk-support pod runs as root and writes to host-mounted **************** Asterisk inside the FreePBX pod runs as user "asterisk" and could not rea...
Utilizați envsubst-compatibil \$ {VAR} sintaxă în șablon config + re-render on stay placeholders
Pods au fost CrashLoopBackOff cu "erori config: API KEY lipsește sau prea scurt" deoarece șablonul de configurare folosit literal API KEY markeri care envsu...
Drop unused watcher import
uploader.go only uses CallBatch (declared in grouper.go in the same package), not anything from internal/watcher directly. Go rejects unused imports.
Activează repo-urile JPA pentru comerț + pachete e-mail + dao.repozitoare
Serviciul Daemon s-a prăbuşit la pornire cu: Parametrul 0 al constructorului în ************* necesare Un bob de fasole care nu poate fi găsit. Un serviciu rec...
Înlocuiți MUI v5 elemente de recuzită cu MUI v6 sx sintaxă în VoipSmsTab
Capture newExtNumber as final for lambda capture in MemberVoipConfigController
newExtNumber este realocat condiționat în interiorul dacă (este VoipEnabled & ...) Bloc, ceea ce nu face în mod eficient final. Blocul de sincronizare TeamMembe...
Actualizare OrgThemeProvisionServiceTest for buildConfigJson description parametru
Voce CastActivityDetecție pentru a ocoli tipul TS DOM lipsă
voiceActivityDetection is a valid WebRTC MediaTrackConstraints property, but este absent din lib-ul DOM TypeScript, cauzând o eroare de tip la timpul de constru...
Configurează STUN astfel încât browserul ICE să poată completa bidirecțional
Apeluri de la browser la browser, conectate la stratul SIP, dar nu audio în ambele direcţii. Căsuţa vocală (în sens unic Asterisk → browser) a funcţionat deoare...
Audio live care supraviețuiește sarcinii-întrerupe, spinner centrat, outbound ringback
Trei soluții coordonate pentru calea audio în apel: 1. AbandoneazăError pe telecomandaAudio.play() (vizibil în consola de producție ca "Cererea play () a fost ...
Hangup tears down ALL live sessions, not just the primary
Self-call edge case left a session leaked: dialing your own extension creates an outbound session, then Asterisk loops the call back as a second inbound session...
Instant connecting feedback on outbound dial
Same problem the inbound Answer button had: clicking Call kicked off the SIP INVITE round-trip (1-3 seconds) but the button kept its idle "Call" appearance the ...
Conectare animație + audio care joacă de fapt + ton de apel deblocare
Trei soluții coordonate pentru calea de intrare: 1. Feedback vizual în timp ce acceptă. Faceți clic pe răspuns stânga ambele butoane cu aspect receptiv, dar ne...
Mount SoftphoneProvider de mai sus ToolDock astfel încât ferestrele unelte pot citi
Deschiderea Softphone popup prăbușit pagina cu "Această pagină nu a putut încărca" deoarece ferestre de unelte monta în interiorul ToolDock, care trăiește în To...
Use Grid size prop so AV panels umple randul
Grila MUI v7 e bazată pe flexbox, aşa că reţeaua Column sx pe care o foloseam a fost un nu-op spaţiul din dreapta. Trecerea la suportul de dimensiune suport (d...
ID-uri migrate de ton de apel vechi pentru a implicit pe sarcină
Dacă preferinţele unui utilizator salvat AV referinţă un ton de apel care nu mai există în catalog (de exemplu, "clasic" înainte de catalog a fost împodobit), f...
Digitale dialpad înregistrează acum pe dispozitive tactile
Butonii dialpad numit e.preventDefault() în ambele peTouchStart și Pe TouchEnd. Asta oprește browserul să tragă evenimentul de clic sintetic care urmeaza o atin...
Browser gazdă SIP WSS pe intern.kamocrm.com (cert real)
Browser-ii au refuzat conexiunea WebSocket la ************* cu cod închis 1006 pentru că Traefik îşi servea certificatul implicit autosemnat pentru acel nume ga...
Prezenta glob separat pentru marketing live chat vs membri
Public Bilete widget chat păstrați org placeholder ca solicitantId; utilizați numai prezența sesiunii media pentru aceste rânduri. Membru intern și alte bilete ...
Ritmul cardiac periodic al prezenţei STOMP pentru sprijinul public
Refresh Redis TTL pentru prezenţa în sesiune publică astfel încât agenţii să vadă starea corectă online.
Globe folosește prezența sesiunilor media pentru vizitatorii de marketing
Solicitați sesiune de chat public GUID-uri în prezența instantaneu; tratați on-line dacă oricare este conectată sesiunea sau membrul solicitant. Se manipulează ...
Urmăriți chat-ul de suport public prin sesiune GUID în Redis
Vizitatorii de marketing folosesc /ws/public-chat-nativ fără membruId; bilete încă se referă la membrul titular de org ca solicitant. PRESENCE PUBLIC tastele ST...
Nu ștergeți atribuirea membrilor pe sincronizare de la furnizorii care lipsesc metadate
Nu-ţi face griji. suprascris necondiţionat TelefonExtensie.un membru desemnatId cu orice furnizor returnat. FreePBX (și orice furnizor care nu urmărește care me...
Arată numele furnizorului în modul vizual + extensia proprie în editarea dropdown
Doi gândaci pe aici. 1. Modul de vizualizare a aruncat UUID brut lista de cazuri a fost încărcată doar în interiorul mâneruluiVoipEdit(). Cazuri de încărcare ...
Serialize ExtensieDto.atribuit membreId ca un șir
deversează gama de informații privind siguranța JS (de exemplu, 1168485658174423046) ca 116848565817443000 odată ce un număr JSON atinge browserul). Frontul dej...
Faceți configurarea WebRTC supraviețui repornire pod
Abordarea anterioară (http custom.conf cu [general] suprascriere) nu a De fapt, să-şi facă efectul pentru că Asterisk's INI parser nu onorează mai multe Secţiun...
Activează serverul Asterisk integrat HTTP pe :8089 pentru WebRTC /ws
A chan pjsip care, la rândul său, necesită serverul Asterisk încorporat HTTP pentru a fi difuzate. ă implicit FreePBX 17 instala nave cu acel server dezactivat...
Prioritizează numele real primul/ultimul peste numele de utilizator Alias pentru afișare
numele de utilizator Alias este un mâner de autentificare funcțional (de multe ori egal cu numele de utilizator); nu este un nume de afișare. Numele real citit ...
Domeniul de aplicare Adăugați sulul de plumb și footer în zona sa de conținut
Formularul a fost folosind minHeight: 100vh în interiorul unui părinte care este deja calc (100vh - 56px), forțând o bară exterioară de defilare chiar și atunci...
Layout inteligent multi-coloană pentru formularul Add Lead
Restructurați pagina într-o rețea de nivel superior astfel încât secțiunile să compună orizontal în loc să se întindă câmpuri individuale: - Piata & Detaliu fo...
Utilizare /api/securitate/membri/denumiri pentru rezoluția numelui membrului desemnat
Filtrele de evaluare a obiectivului de la distanță numai pentru membrii activi ai echipei, lipsă sarcinile membrilor de bază sau ale membrilor inactivi. Comută ...
Lăţime completă Adaugă formă de plumb şi clearance-ul pentru picior lipicios
Picătură 1200px max-lățime pe /lide/nou astfel încât forma se întinde zona de pagină, și bumping de fund astfel încât bara de acțiune lipicios nu se mai suprapu...
Rezolvaţi numele de afişare cu prioritate corectă în cadrul obiectivului de evaluare a departamentului
Prioritate: membru.username Alias → utilizator.name.formatFull() → utilizator.alias → utilizator.username
Adăugare lipsă isDisplayOnItake field to FormField interface and new field literal
Utilizați tipul de șir pentru UED atribuit pentru a preveni pierderea de precizie
Serialize Lung ca șir de caractere pentru a preveni pierderea de precizie JS pe ID-uri mari CockroachDB
Ca ceea ce vezi de transport maritim?
Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.