Mergi la conținut
KAMOUniverse

Jurnal de schimbări

Ce e nou.

Fiecare îmbunătățire a platformei, pe măsură ce se livrează.

  1. · 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.

  2. · 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.

  3. · kamo-internal

    Color lista bilete glob de cerere conexiune chat

  4. · MediaService

    Adaugă căutare pentru agenții de listă de bilete

  5. · 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

  6. · 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

  7. · 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.

  8. · 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

  9. · 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.

  10. · 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ță.

  11. · 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.

  12. · 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.

  13. · 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.

  14. · 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}.

  15. · 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ă.

  16. · kamo-internal

    Adaugă afișare pe comutatorul de admisie, blocare automată atunci când este necesar

  17. · kamo-internal

    Adaugă IsplayOnIntake to FormField typeScript type

  18. · kamo-shared-library

    Coerce isDisplayOnItake=true when is Required=true in CustomFormService

  19. · kamo-shared-library

    Adăugare ISplayOnItake to create/update request DTOs

  20. · kamo-shared-library

    Expune esteDisplayOnItake in FormFieldDO

  21. · kamo-shared-library

    Adaugă IS DISPLAY ON INTAKE coloană la entitatea FormField

  22. · kamo-internal

    Link nume membru atribuit paginii de setări telefon

  23. · kamo-internal

    Adăugați ecran nume membru și butonul de neasignare la fila extensii per-stanță

  24. · kamo-internal

    Arată numele membrilor și adaugă acțiunea Unassign la fila extensii org

  25. · kamo-internal

    Configuratie VOIP de sarma catre selectorii de pret+extensie cu aplicare a misiunii

  26. · kamo-internal

    Adăugați DTO-uri, metoda API neasignată și actualizați tipurile de VOIP-uri ale membrilorTab

  27. · VOIPService

    Adăugați obiectivul de atribuire DELETE la VoipExtensionsController pentru admin unassign

  28. · VOIPService

    Adaugă MemberVoipConfigController pentru membru VOIP config with extension asignation

  29. · kamo-shared-library

    Adăugaţi găsirePrinMetode de interogareAtribuitePhoneExtensionRepository

  30. · 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