Contact vrăjitoresc persist = fix memorie și bloc SIP scanner la pornire.sh
- Injectaţi [res pjsip] contact=memorie în vrăjitorie.conf înainte de începerea tratamentului cu Asterisc; backend-ul implicit SQLite scade în tăcere toate cont...
Sub-tab content fills full content-area width
Drop the centered max-width constraint (was 920 / 1200 / 680 / 720 depending on tab) on SubTabShell. The page already lives inside SettingsView's content column...
Fix attachment parsing and hasAttachment false positives
Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...
Add download button to classic view attachment section
The classic view (MessageBrowser) had its own attachment list that was missing the download button — only the conversation view was fixed previously. Also align...
Add com.kamo.z.shared.commerce to EnableJpaRepositories scan
**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...
Layout corespunzătoare, budding, și logo-uri furnizor
Fixare/spațiere: - Toate cele şase file (Providers, Extensii, Utilizatori de telefoane, Dispozitive, Voicemail, Health) Acum împachetați conținutul lor într-un ...
Numele și tipul de câmp corecte în răspuns de la Adders
Platforma trimitea cheia 'e-mail' dar frontend se aştepta la 'adresă' şi a trimis tip "împărtășit mailbox" atunci când frontend se aștepta la "împărțit." De ase...
Load FROM addresses from accessible mailboxes and aliases
Replaces the broken getFromAddresses() endpoint (which sent 'email' instead of 'address') with getAccessibleMailboxes() + listMemberAliases(), matching the same...
Utilizaţi sintaxa CockroachDB-compatibilă DROP INDEX CASCADE
CockroachDB respinge tabelul ALTER ... DROP CONTRAINT pentru constrângerile UNIQUE cu: neimplementată: nu poate scădea constrângerea UNIQUE "uk org oauth prov...
Drop VOIPService spec md din repo
Conform convenţiei de proiect (.md fişierele nu se trimit cu servicii).
Include com.kamo.z.shared.commerce în scanare depozit
Ultimele propagate kamo-shared-library - Nu. (numodificați.dao.servicii) care are o dependență de constructor Nu-ţi face griji. Nu-ţi face griji. ă serviciul es...
File de configurare a platformei (General / VOIP & SMS / System User / Advanced)
Ambalaje *******************************************************************************************************************************************************...
Adaugă butonul de descărcare atașament și decuplează marca ca citit
- Adăugați un buton de descărcare pictogramă la fiecare rând de atașare astfel încât utilizatorii pot forța o descărcare fișier în loc de deschiderea numai într...
Sincronizare VOIP globală (interval maxim)
VoipGlobalSyncJob ticăie în fiecare minut și, pe fiecare căpușă, citește SystemConfigurare singleton pentru a decide dacă o sincronizare globală este datorată: ...
Etapele finale ale sistemului-config + ale platformei
Suprafata de configurare la nivel de platforma, poartata de proprietarul de nivel superior existent paznic (matches SystemUserConfigController's requireTopLevel...
Controlori de resurse perintență + agregate org + sincronizare internă
Resurse perintentale CRUD (extensii / utilizatori / dispozitive / voicemail): - VoipExtensiiController la ************* - VoipUsersController la /api/voip/insta...
Refactor furnizor multi-stanță + full FreePBX + Flowroute SMS
Modificarea modelului de bază: un org → multe VoipProviderInstances (a fost: un per org). Fiecare furnizor de apeluri API este acum spectaculos. Interfață tele...
Migrație multi-integrare telefon/furnizor SMS
Rulează după Hibernate ddl-auto:actualizarea creează noi tabele (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INstanCE, PHONE EXTENSION, PHONE END USER, PHONE DEV...
Fundaţia de sisteme multi-intestinale de telefonie/furnizor SMS
- Redenumește VoipProviderConfig → VoipProvider CONFIG; picătură UNIQUE(org id), adaugă instance name, config json, last sync at, last sync error. - Redenumește...
Mută gazdaPath din MinIO (rclone FUSE) la local /var/lib/pbx
MinIO via rclone FUSE nu suportă CHmod POSIX sau Symlink () impusă de sistemul modulului FreePBX. Schimbat toate FreePBX și MariaDB gazduieste Volume path de la...
Wrap fwconsolă/amportal prin php pentru MinIO FUSE gazdăPath
/var/lib/asterisk este susținut de MinIO via rclone FUSE care nu suportă POSIX chmod, astfel încât scripturile fwconsole nu pot fi executate pe acest volum. sta...
Adaugă preStop cârlig și terminareGracePeriodSeconds
Containerele au fost obtinerea blocat în Terminare deoarece fundal Asterisc procesele continuate după apache2ctl (PID 1) ieșit. PreStop cârlig trimite SIGTERM t...
Adăugați bootstrap.php nevoie pentru a regenerat /etc/freepbx.conf
Instalatorul scrie freepbx.conf cu sursa de date=" și one once pentru bootstrap.php, care config.php depinde de încărcarea clasei FreePBX. Versiunea noastra reg...
Regenerează/etc/freepbx.conf la repornire
/etc este efemeră (nu o gazdăPath), deci /etc/freepbx.conf scris de Instalatorul este pierdut la fiecare repornire. Ramură adăugată pentru regenerare ea de la e...
Bypass start asterisk, așteptați priza de control în schimb
start asterisk foloseste Reporneşte, făcând ca bucla de aşteptare pentru Asterisk să fie atârnată. Acum porneşte. Asterisk direct prin safe asterisk (după ce a...
Start Asterisc în fundal, așteptați pentru ea, apoi executați instalator
Punctul de intrare.sh nu ruleaza FreePBX incursiune servicii. startup.sh acum reproduce pașii de configurare punctul de intrare, începe Asterisk în fundal, așt...
Lasă punctul de intrare să se ocupe de instalare, nu de pornire.sh
Instalator FreePBX (php install -n) necesită asterisk să fie deja Alergând. Startup nostru.sh a fost de asteptare înainte de a începe Asterisk, provocând "Error...
Mont /etc/asterisk numai, nu /etc, pentru a remedia eroarea PHP simplexml
Montarea întregului /etc ca gazdă Volumul Path corupea extensia PHP încărcare chiar și după însămânțare din imagine la timpul de instalare. Acum doar /etc / as...
Reducerea limitelor de procesor la raportul 2:1 pentru eliminarea supraangajamentului
Docs 4→1 core, jibri 4→2 cores, libretranslate 2→1 core, bergamot 2→1 miez, coturn 1→0.5 miez. Salvează ~7,5 nuclee off limite nod.
Comută la escomputers/freepbx:17 cu arhitectura corectă
obosit/freepbx nu are imagine FreePBX 17 (abandonată din 2022). escomputers/freepbx:17 (actualizat Apr 2026, Asterisk 21 + FreePBX 17) necesită un pod separat M...
Drop public admin ingress; acces prin http://k[12]m1:8088
Admin UI este acum intern-doar peste LAN / WireGuard pe portul 8088 (FreePBX's nginx legat direct pe hosteNetwork). Nu Traefik traseu, nu Să cripteze cert, nici...
Desfăşuraţi podul FreePBX 17 + Jigasi SIP pe k1m1 şi k2m1
FreePBX (obosit/freepbx:17-ultimul) ruleaza cu gazdaNetwork astfel SIP/RTP păstrează IP-uri reale ale clienților, blocate one-per-node prin nodSelector. SIP pe ...
Parse FormularData înainte de expediere pentru a preveni corupția binară
request.text() on multipart/form-data corupe binare file bytes; pass parsed FormDate as init.body so forward ToApi skips request.text() Şi hai să regeneram un m...
Eliminați minHeight:100vh cauzând bare duble de defilare
Cutia exterioară minHeight:100vh a depășit calcul aspectului (100vh - 56px) container, care a cauzat atât sulul de nivel de browser și interior revărsare:auto s...
Drop editor page header, redenumește General sub-tab
- Îndepărtează pictograma spate-săgeată + ecran + titlu + subtitrare partea de sus a editorului de securitate-model / master-model. Butonul de anulare în bara d...
Afişează antetul coloanei de plăţi vechi din tabelul modelelor de securitate
Când câmpul de auto-plată al angajatului Kamo a fost eliminat, potrivirea TabelulCell în corpul rând a fost șters, dar rândul antet a avut încă "<TeamMember> Pa...
Motivul real de suprafață în spatele GoDaddy 400 eroare
GoDaddy returnează acum HTTP 400 cu cod=UNABLE TO AUTENTICATE și corp "Cerere proasta: cerere proasta" atunci cand un cont nu corespunde curentului producţie Do...
Cenzura sub-tab acum face ATF primul pe spec
Reordonează cardurile de cenzură pentru a corespunde ordinului solicitat: 1. Alcool, tutun şi arme de foc 2. Limitele de vârstă permise membrilor 3. Stagiarii p...
Vedere, paginare, căutare live, filtre, logo-uri org
Administratorii platformei (proprietar de org de nivel superior) văd acum fiecare org din sistem prin intermediul un nou obiectiv/api/securitate/org/toate retel...
Adăugați GET / api/security/org/toate rețelele pentru admin-uri platforme
Proprietarii de org de nivel superior pot aduce acum toate organizațiile din sistem cu informaţii de membru referitoare la apelant. Orgs unde apelantul are un m...
Sub-tabe în editor model de securitate + curățare
- Editor-model de securitate pe ************* este acum divizat în patru sub-tabe: General (Informații de bază, Vizibilitate, Cine poate crea, Setări platforme,...
Drop teamMemberPayFeesSeting from DataLoader
Furnizorul-model principal nu mai trece de plata tristatală eliminată setarea la crearea modelului principal de securitate ChildOrgSecurityModel şi supraîncărc...
Drop teamMemberPayFeesSetarea parametrului
Mirrors the shared-library change MasterModelController, și ModelController aplicat nu mai citesc / scrie Echipa Membru PayFees Setare. Redactorul de tipuri de...
Drop teamMemberPayFees Setare
Politica privind taxa de auto-plată a angajatului a dispărut. facturarea pe grup, nu prin intermediul modelului de securitate. Elimină EchipaMemberPayFeesSetare...
Domenii Eager-load prin findByIdWithDomains, drop @Transactional
@Transacţional pe o metodă de controler păstrează o conexiune DB deschisă peste întregul MinIO upload, și, de asemenea, riscă LazyInitializare Excepție în cazul...
Elimină duplicatul?tip= din apiPath
forwardToApi aboneaza deja Search (?type=...) din original solicita URL. Embedding ?type= a doua oară în apiPath produs ?type=full?type=full at the backend, so ...
Restaurare comutator cutie poștală pentru ID-uri membre int64
Utilizați getMemberIdString pentru cutiile poștale/membru aduce, normaliza id/mailboxId de la EmailService, și conduce comutatorul de la personal accesibil căsu...
Vizibilitate Alias UI + Butonul Sucursale Subdomeniu pe pagina de tipuri de ramură
SubdomeniuBranchesDialog: - Editorul Alias a înlocuit lista de cipuri cu o listă de rând în stil tabel care arată Membrii și membrii echipei de checkboxes per a...
Filtrare vizibilitate Alias + auto-verificare proprietate subdomeniu
OrganizationController: - Web-alias org creation now auto-marks propertyVerified=true and isDnsVerified=adevărat pe creat OrgDomain Am furnizat DNS pe GoDaddy ...
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.
