Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· kamo-internal
Folosește numele scurt org și descrierea în capul HTML
DynamicMetaLoader acum setează document.title to siteNameShort (was siteName) și scrie descrierea org în eticheta meta descriere. Layout Static.tsx Fallback actualizat la valori generice.
· SecurityService
Include descrierea org în config.json
Adăugați câmpul de descriere pentru a construiConfigJson() și pass org.getDescriere() de la scrieConfigFiles() astfel încât config.json tematice poartă org descriere pentru frontend-uri pentru a utiliza în meta tag-uri HTML.
· kamo-internal
Color lista bilete glob de cerere conexiune chat
· MediaService
Adaugă căutare pentru agenții de listă de bilete
· kamo-internal
Adăugați includeCompany la piață popup și companieName pentru a conduce
Adaugă/edit popup (LeadMarketManager): - Radio control "Track Company Name" / "Individual Only" (necesar) - Implicite pentru demontarea pe noua piata; pre-fill-uri la editare - Validată și trimisă ca includeCompania în cererea de creare/actualizare Chei de date (LeadManager): - Coloana societatii arata numele companiei pentru pistele de la includ pietele societatii - Arată "Nu se specifică" atunci când includeCompany=adevărat, dar numele este gol - Arată " - Căutare rapidă (AG Grid quickFilter) include automat valorile companiei Creează formă de plumb (Client CreateLead): - Redă condiţionat Compania Name text field when included market company = true - Câmpul este opţional (maxim 50 cars), cu fir pentru a trimite sarcina utilă prin leadApi leadsApi: companie Name mapped through createLead and updateLead requests
· InitializerService
Adaugă include companie și name coloane
LeadCompanyColumnRunner (Ordin 40) adaugă idepotent: - lead markets.include company (BOOLEAN, nullable) piata necesita numele companiei pe piste - leads.company name (VARCHAR(50), nullable) nivelul de plumb atunci când piața a inclus Compania=adevărat
· SecurityService
Expunerea include Compania în răspunsurile de aport-config și piață-config
Amândouă au avut probleme. Şi... include acum steagul Companiei astfel încât frontend știe dacă să arate Câmpul de nume al companiei privind crearea de plumb.
· kamo-shared-library
Adaugă include Compania la LeadMarket și numele companiei la plumb
- LeadMarket entity gets include company (Boolean, nullable) - Entitatea-lider primeste numele companiei name (String, max 50, nulable) - LeadMarketDTO, CreateLeadMarketRequest, UpdateLeadMarketRequest carry includ - LeadDTO poartă numele companiei și expune include Compania în interiorul pieței InfodTO - *************** poartă numele societății - LeadMarketServicii fire includ Companie la creare/actualizare - LeadService firs companyName on create/update and conservs it average type conversions
· kamo-internal
Arată calea de tip vânzări în Adăugați Lead subtitle
Adaugă tipul și subtipul de vânzări ale pieței la linia "Adaugă la" forma reflectă etichetele utilizate în popup-ul Edit Market la Nu-ţi face griji. Renders as "Adaugă la {Market} (Servicii > Ipotecare rezidențială) " atunci când un subtip este set, "Adding to {Market} (Serviciu) " atunci când este stabilit doar un părinte; și "Adding to {Market} ," atunci când nu este stabilit un tip de vânzări.
· kamo-internal
Unified PhoneSdk suporting RingCentral + sip.js (FreePBX)
Cârligul softphone folosit la instanțierea inel-web-telefon necondiționat, care a aruncat pe orice formă de acreditare FreePBX deoarece că SDK este hard-coded la Format de furnizare RingCentral WSS. - Interfaţa nouă PhoneSdk defineşte o suprafaţă agnostică a furnizorului (start, stop, Invitaţie, ***************** plus Sesiune telefonică cu *************** - RingCentralPhoneSdk împachetează ringcentral-web-telefon, păstrând existente Comportamentul RC. - SipJsPhoneSdk wraps sip.js (UserAgent + Register + Inviter/Invitation), atașează audio la distanță prin conexiunea inter pares negociată, suporturi re-INVITE in-dialog pentru hold/unhold și se referă la transfer. - creePhoneSdk alege adaptorul de la creds. provider (RING CENTral, FREE PBX, KAMO PBX). - foloseste Softphone-ul acum conduce SDK-ul unificat si suprafete eroarea SDK reala text în înregistrareError în loc de generic "Phone SDK nu a reușit să iniţializează coarda. - Adăugați sip.js@0.21.2 dependență.
· VOIPService
Acreditări WSS-aware SIP pentru softphone-uri browser
Obiectivul /api/voip/sip/credentials returnează acum acreditările unui browser-side SIP stiva poate folosi de fapt: transport WSS, domeniu public, și un URL wsServers. - SipController rezolvă membruVoipConfig, validează VOIP este activat și se atribuie o extensie, apoi rutele către specificul membrului instanță (nu primarul org). Description nu este configurat mai degrabă decât să producă acreditări goale. - SipInfo wsServers for SIP-over-WebSocket; SipCredentials Câştiguri rezultate furnizor astfel încât frontend alege adaptorul SDK dreapta (RingCentral WebPhone vs SIP.js pentru FreePBX/KamoPBX). - FreePBXProvider derivă domeniul SIP din baza configuratăUrl și defaults wsServers to wss://<host>:8089/ws. Suprascrieri de urgență Traducerea şi adaptarea: acoperă desfășurările divizate în cazul în care SIP încetează pe un nume de gazdă diferit sau Traefik termină TLS la /ws la portul 443. - TelefonProviderFactory parsează noul opțional configJson câmpurile și feed-uri le într-o înregistrare SipTransportConfig pe FreePBXProvider. - RingCentralProvider etichetează acreditările sale cu furnizorul=RING CENTral.
· KlusterServices
Adaugă transport WSS WebRTC pentru softphone-uri browser
Asterisk lui chan pjsip acum leagă un transport simplu WebSocket pe 0.0.0.0:8089 şi Traefik termină TLS la ***************** (port 443) astfel kamo-intern poate înregistra softphone-uri browser peste cardul wild existente certificat fără a gestiona certificate în interiorul pod. - configmap-k1m1.yaml: startup.sh scrie pjsip.transports custom.conf cu WS transport și pjsip.endpoint custom post.conf cu webrtc=da suprascrie pentru extensiile existente (8080, 2523), fixate pe transportul WS. - service.yaml: expune portul 8089 (sip-ws) pe serviciul freepbx astfel încât noul IngressRoute o poate viza; pod este pe gazdaNetwork astfel încât această hartă la Portul gazdei k1m1 8089. - ingressroute-ws.yaml: HostRegexp + PathPrefix(/ws) la prioritate 100 rute WebSocket upgrades to freepbx:8089 *without* the kamo-middlewares chain Acest lanț include compresa, care ar corupe ramele SIP-over-WS.
· SecurityService
Adăugare /nume obiectiv returnarea id→nume pentru toți membrii indiferent de stat
Criteriul final de evaluare a departamentului se filtrează numai pentru membrii activi ai echipei, dar se extinde sarcinile pot face trimitere la membrii de bază sau membrii inactivi. Utilizare /nume pentru ID→rezoluţia numelui în cazul în care acoperirea contează mai mult decât starea activităţii.
· kamo-internal
Adaugă forma plumbului cu un singur plumb la /lide/nou
Refactor Adăugați plumbul dintr-un geam multi-tab pe o rută dedicată la /liders/new astfel încât să poată fi conectat direct. Piaţa actuală este trecută prin intermediul ?marketId= și pre-selectat. Piaţa de plumb, vânzătorul şi produsul sunt acum necesare; contactul necesită cel puțin una dintre primele/ultimele/preferate numele și unul de e-mail sau telefon. Câmpuri ipotecare și orice piață Câmpuri de formă personalizată marcate isDisplayOnItake sunt redate în linie. On succes, redirecţionează către /lides/view/{id}.
· SecurityService
Adaugă ***************** Obiectivul final
Description formularul Add Lead poate reda câmpuri subtip și formulare personalizate de admisie fără a crea mai întâi o pistă.
· kamo-internal
Adaugă afișare pe comutatorul de admisie, blocare automată atunci când este necesar
· kamo-internal
Adaugă IsplayOnIntake to FormField typeScript type
· kamo-shared-library
Coerce isDisplayOnItake=true when is Required=true in CustomFormService
· kamo-shared-library
Adăugare ISplayOnItake to create/update request DTOs
· kamo-shared-library
Expune esteDisplayOnItake in FormFieldDO
· kamo-shared-library
Adaugă IS DISPLAY ON INTAKE coloană la entitatea FormField
· kamo-internal
Link nume membru atribuit paginii de setări telefon
· kamo-internal
Adăugați ecran nume membru și butonul de neasignare la fila extensii per-stanță
· kamo-internal
Arată numele membrilor și adaugă acțiunea Unassign la fila extensii org
· kamo-internal
Configuratie VOIP de sarma catre selectorii de pret+extensie cu aplicare a misiunii
· kamo-internal
Adăugați DTO-uri, metoda API neasignată și actualizați tipurile de VOIP-uri ale membrilorTab
· VOIPService
Adăugați obiectivul de atribuire DELETE la VoipExtensionsController pentru admin unassign
· VOIPService
Adaugă MemberVoipConfigController pentru membru VOIP config with extension asignation
· kamo-shared-library
Adăugaţi găsirePrinMetode de interogareAtribuitePhoneExtensionRepository
· kamo-internal
Persistă căsuța poștală activă în parole URL
Comutarea căsuţelor poştale actualizează acum URL-ul (?mailboxType, ?mailboxId, ?mailbox) atât de revigorant browser-ul restaurează aceeași cutie poștală. MesajBrowser citește window.location.search in his lenes use State initializer to restabil Active Mailbox înainte de prima redare, și împinge actualizări URL prin intermediul router.loc la fiecare eveniment schimbat. FolderSidebar citește Același URL params după a lua Cutii de mail accesibile rezolvă astfel încât dropdown reflectă selecția restaurată.

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit