Membrii org de nivel superior au un plan de administrare a platformei, ocolind porţile de facturare
Membrii org KamoCRM (la nivel superior) nu fac obiectul sistemului de facturare Obțineți matricea caracteristică a planului de proprietate UNLIMITED (cu Free a...
Bypass org de nivel superior + Retragere liberă de bază pentru orgi fără subs
Verificarea drepturilor la nivel de org *************** merge abonamente care vizează o org. Cu noul model tinta org, orgi care nu au încă un cont de direcționa...
Elimină titlul de istorie a câmpului redundant din panoul de istorie
Tab eticheta deja transmite context Butonul de reîncărcare s-a mutat în linie în bara de unelte.
Elimină referințele contului.notes din dialogul de editare ContViewClient
Elimină aspectul propunerii care cauzează bouncing corp e-mail
Mişcarea exterioară. Divin's Loyout înălțime: animație "auto," creând o buclă de feedback FLIP pe e-mailuri cu înălțimi instabile (imagini, tabele) care oscila...
Rezolvați cartografierea coloanelor duplicate prin coloane de adrese înglobate la MASING *
Actualizarea Adaptoarelor de RetailService și furnizor pentru îndepărtarea Conturilor și conversia MonedeType
Prefixul Omit "My" în titlu de cont atunci când vizualizați un alt membru
Arată întotdeauna Creați butonul Document pe pagina managerului doc
Înlăturat getMemberId () > 0 garda care ascundea butonul în timpul fereastra de încărcare UserInfo. Pagina este deja în spatele Auth deci nu Aici este nevoie de...
Restaurează importul organizaţiei eliminate accidental
organization.id este încă necesară în cererea de suportCreateDocument corp; numai starea isDocsEditor ar fi trebuit eliminată.
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...
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.
