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

    Extensie VOIP click în Centrul de Interacţiuni deschide softphone cu număr preumplut

  2. · VOIPService

    Sincronizare TeamMember phoneExtensie de lucru pe VOIP config salvează

  3. · SecurityService

    Backfill TeamMember phoneExtensie de lucru de la MemberVoipConfig la pornire

  4. · kamo-internal

    Caracteristicile apelului prin fir setări de la un capăt la altul prin abstractizarea furnizorului

    - voipApi: adauga CallFeaturesDto type, getCallFeatures() and setCallFeatures() API calls - utilizaţi Softphone: adăugaţi ******************* starea încărcată de la API la pornire; setCallForward/setAutoRăspunsul persistă prin API; răspuns automat și efectele de apel-forward declanșează apelurile de intrare atunci când funcțiile sunt active - SoftphonePanel: elimina starea de funcţionalitate a apelului exclusiv local; fir Call Forward comutaţi şi numărul de intrare în contextul softphone; fir de răspuns automat comuta la contextul softphone; redenumește butonul de navigare la 'Manage Extended A/V Configurări - Audio slider sincronizarea a fost deja funcţională prin utilizarea AVSettings autobuz eveniment

  5. · VOIPService

    Adaugă caracteristicile apelului API

    - Adăugaţi CallFeaturesDto şi SetCallFeaturesRequest POJOS - Adăugaţi apel Indicatoare Forward/AutoRăspuns către FurnizorCapabilităţi - Adăugați implicit getCallFeatures/setCallFeatures to PhoneProvider interface - RingCentral: implementeaza prin intermediul regulilor de raspuns REST API (NeconditionalForwarding) - FreePBX: implementa prin GraphQL adddCallforce mutation - CallFeaturesController: GET/PUT /api/voip/calls/fetures

  6. · kamo-shared-library

    Adăugați entitatea MemberCallFeatures și depozitul pentru preferințele de apelare și răspuns automat

  7. · kamo-asterisk-support

    Angajare iniţială

    Ceasuri ***************** pentru înregistrări WAV terminate, grupuri multi-picioare picioare apel de Asterisc UNIQUEID, și încarcă fiecare lot la APIService /api/voip/recording/upload using a VOIP RECORDING UPLOADS-scoped Cheia API. Fișierele sunt șterse de pe disc numai după ce platforma confirmă stocarea. Bootstrap idepotently provides a AMI user via manager custom.conf and instalează MixMonitor() cârlige per canal prin extensii custom.conf, apoi cere Asterisk să reîncărcați modulele sale dialplan/manager. Ambele blocuri gestionate sunt înconjurate de bannere marcate clar astfel admin personalizări supraviețui. Include Dockerfile, K8s manifests pentru k1m1 și k2m1 (Angajare + ConfigMap + Şablon secret), ***************** oglindind restul a platformei, precum și o non-tehnică README.txt pentru gazde standalone FreePBX.

  8. · kamo-internal

    Stencils

    - APIManager: opţiune nouă VOIP RECORDING UPLOADS (utilizată de kamo-asterisk-support pe FreePBX gazde pentru a încărca mesajele vocale și înregistrările apelurilor prin intermediul APIService). - VoipSmsTab: noua carte "Recording Pipeline" cu patru contoare (voicemail-uri la proces, apeluri pentru a procesa, mesaje vocale în eroare, apeluri în eroare) La fiecare 30 de ani, foloseste *************** "Înregistrare nouă" Procesare" card cu voipVmBatchSize / voipCallBatchSize / voippollSeconds tonibles. - sistemConfigApi: extinde actualizarea() pentru a trimite noile tonibles; adaugă înregistrareaStats(). - tipuri/telefon: SystemConfiguration Dto câştigă cele trei tonible noi; VoipRecordingStatsDto a adăugat.

  9. · SecurityService

    Statistici de înregistrare sistem-config + tontoble de prelucrare de înregistrare

    - GET *************** întoarce cele patru contoare expuse pe configurările kamo-interne → Platformă → Configurare → VoIP/SMS tab (vmPending, callPending, vmError, callError). - Put /api/security/system-config acceptă acum voipVmBatchSize, voipCallBatchSize, VoipPollSeconds for DaemonService recording-procesor tonobles. - toDto() include noile câmpuri astfel încât frontend-ul să le poată citi înapoi.

  10. · DaemonService

    ÎnregistrareProcessorJob + NATS scurtătură pentru upload-uri proaspete

    - Nou loc de muncă Quartz înregistrareProcessorJob căpușe fiecare minut, dispensează independent VM și loturi de apel în același timp cu serviciul de conversie - Nu. Folosind ************* VoipCallBatchSize} ca capace. - Înregistrare nouăReceptedConsumer subscrie la voip.recording.recepted NATS subject emis de ConversionService pe upload-uri proaspete și declanșează o rulare imediată, așa că o înregistrare în stadiu proaspăt începe procesarea în câteva secunde, mai degrabă decât de așteptare privind sondajul periodic. - Configmap expune daemon.jobs.recordings.cron și Vorbeşte cu mine.

  11. · ConversionService

    Conductă de prelucrare a înregistrării + FFmpeg

    - Nou *************** Etape finale de încărcare multipart Transmite APIservice în minio găleată *************** şi creează un rând de aşteptare neprocesat. Ipotent privind retările utilizare (telefonServerId, asteriscUniqueId). - Nou ************* (numit de DaemonService) drenează rânduri: descarcă WAV-uri înscenate, amestecă picioarele într-un singur Opus/WebM master via FFmpeg amix, transcodes per-canal WAVs as tracks alaturi de master, și încarcă prin Serviciul de înregistrareImaging cu VM RECORDING (8) / Call recording (9) ImageAssocType. - Noul ambalaj Ffmpegservice (transcodeToOpusWebm / mixToOpusWebm) cu timeout şi curăţarea fişierelor. - Editorul NATS emite voip.recording.recepted on every staged upload so DaemonService poate scurta sondajul periodic. - Dockerfile instaleaza ffmpeg in etapa de rulare (nave Alpine ffmpeg libopus în mod implicit). - ConfigMap expune Nu-ţi face griji. (servicii încrucișate partajate) secret de apel intern) astfel încât noile obiective să poată autentifica APIService și Daemonservice apelers.

  12. · APIService

    VoipRecordingUploadController pentru upload-uri de suport kamo-asterisk

    Post/api/voip/înregistrări/upload acceptă corpuri multiple de suport kamo-asterisk rulează pe gazde FreePBX. Validarea X-Api-Key are noul VOIP RECORDING UPLOADS domeniu de aplicare (re-folosind ************* cache de validare), apoi transmite antetele de încărcare utilă multipart + metadate (X-Phone-Server-Id; X-Asterisk-Unique-Id, X-Recording-Kind, X-Primary-Extensie) la TransformationService Nu-ţi face griji

  13. · kamo-shared-library

    Inregistrare neprocesata a starii, piese de cale ImgDat, inregistrare serviciu de imagistica

    - Fix ImageAssocType ID coliziune: VM RECORDING=8, CALL RECORDING=9 (au fost ambele Duplicarea MY DOCS la 4). - Adăugaţi ************* astfel încât o înregistrare master poate transporta pe-canal Opus/WebM piese alături de conceptul de miniatură existentă. - Adăugaţi ImageMimeType.AUDIO WEBM (audio/webm) pentru containerele Opus-in-WebM produse de conducta de conversie. - Noua înregistrare neprocesată (UIID id, IS VM, PHONE SERVER ID, EXTINS, ASERISK UNIQUE ID, IS PROCESSED, IS ERROR, ERROR Message, RED IMG ID, DATE CREATE, DATE PROCESED) ENTITATEA DE ÎNREGISTRARE + DESCRIERE PENTRU kamo-asterisk-support → TransformationService → Conductă DaemonService. - Noua înregistrareImagine Serviciul care încarcă un maestru Opus/WebM la imagistică cu piese per-canal Opus/WebM atașate prin ImgDat.trackCount. - Configurație sistem: adăugați voipVmBatchSize / voipCallBatchSize / voippollSeconds pentru tonobles de înregistrare DaemonService.

  14. · kamo-asterisk-support

    Angajare iniţială

    Ceasuri ***************** pentru înregistrări WAV terminate, grupuri multi-picioare picioare apel de Asterisc UNIQUEID, și încarcă fiecare lot la APIService /api/voip/recording/upload using a VOIP RECORDING UPLOADS-scoped Cheia API. Fișierele sunt șterse de pe disc numai după ce platforma confirmă stocarea. Bootstrap idepotently provides a AMI user via manager custom.conf and instalează MixMonitor() cârlige per canal prin extensii custom.conf, apoi cere Asterisk să reîncărcați modulele sale dialplan/manager. Ambele blocuri gestionate sunt înconjurate de bannere marcate clar astfel admin personalizări supraviețui. Include Dockerfile, K8s manifests pentru k1m1 și k2m1 (Angajare + ConfigMap + Şablon secret), ***************** oglindind restul a platformei, precum și o non-tehnică README.txt pentru gazde standalone FreePBX.

  15. · kamo-internal

    Înlocuiește fila de contacte simulate cu SoftphoneContacte complete

    Extrage o noua componenta SoftphoneContacteaza care fir contactele softphone fila la contactele reale API prin utilizareaContacte(). Înlocuiește 4 hardcoded mock contacte cu date live din toate cărțile de contact. Caracteristici: - Rezervă şi grup pastile filtru cu selectoare dropdown - Căutare anulată, sortată după nume - Iniţialele avatar codate în culori (hash deterministic), suport foto - Lista de contact cu butonul de apel rapid hover-reveal - Vedere de detaliu (lista de locatii) aratand telefoane, emailuri, org, note - Modul de editare Inline pentru toate câmpurile (telefoane/emailuri multi-valoare cu adăugare/eliminare) - Șterge contactul cu etapa de confirmare - Stare scheletică goală și de încărcare - "Nou contact" naviga la /contacts? acţiune=creare Actualizează contactele/page.tsx pentru a deschide automat dialogul de creare atunci când ?action=create interogare param este prezent (utilizat de butonul softphone "New").

  16. · kamo-internal

    Înlocuieşte extensia Chip cu textul inline lângă rolul în Centrul de Interacţiuni

  17. · kamo-internal

    Eliminați câmpul de extensie manuală a telefonului; scrieți extensia VOIP prin intermediul serviciului de securitate pe salvare

  18. · SecurityService

    Includeţi extensia de telefonWork în răspunsul de la departament; acceptaţi telefonWorkExtensie pe membru PUT

  19. · kamo-shared-library

    Adaugă *************** ajutor la EchipaMember

  20. · kamo-internal

    Wire VAD + push-to-talk; eliminați setările inoperabile

    - vadEnabled trece acum ca voceActivityDetection in buildAudioconstrains so browser-ul onorează comuta la deschiderea microfonului pentru un apel - impingeToalk auto-muteaza microfonul la apel accepta si instala cheia jos / cheie ascultătorii care unmut în timp ce hotkey configurat este ținut - Setări eliminate care nu aveau cabluri funcţionale şi nu pot fi implementate prin intermediul browser-ului standard WebRTC API: micGain (fără GainNode în conducta SIP); HighPassFilter, zgomotGate, vadThreshold, hdVoice, cameraBackgroundBlur (necesită ML), cameraBrightness/cameraContrast (numai previzualizarea CSS) - interfata AVSettings curatata si DEFAULT AV SETTINGS corespunzator; reechilibrarea rețelelor după îndepărtarea

  21. · kamo-internal

    Lista tonurilor de apel scrollable cu filtru de căutare

    Face panoul de catalog ton de apel se potrivesc înălțimea coloanei din dreapta și defilare vertical atunci când lista se revarsă, astfel încât membrii pot naviga ca mai multe tonuri se adaugă. Adaugă un câmp de căutare care filtrează prin etichetă sau nume de fișier, cu un buton clar și un mesaj de stare goală.

  22. · kamo-internal

    Adaugă încă şapte tonuri de apel în catalog

    Adaugă Battleship Horn, Demon Horn, Land Line, 1985 Ring, Office Phone, Sună telefonul vechi, și Olé sub / publice / sunete / tonuri de apel / și fire le în RINGTONE CATALOG astfel încât acestea să apară alături de existente Implicit / Sci-Fi / Buzzer / Opţiuni silenţioase pe subtabul Ringtones.

  23. · kamo-internal

    Adaugă tonuri de apel Sci-Fi și Buzzer în catalog

    Drops două active noi ton de apel sub /public/sonete/tone de apel / și le înregistrează în RINGTONE CATALOG astfel încât acestea să apară în Ringtones subtab și poate fi setat ca tonul implicit-incoming softphone.

  24. · kamo-internal

    Layout audio trei coloane, drop-banner salvat, lățimea de umplere

    Lays Audio subtab out ca Microphone rândul complet pe ecranele Ig+ (md încă le perechi două-up, xs stive). ă Comutatoare avansate de card la un stiva verticala in interiorul coloanei sale mai inguste. Elimină traseul "Setări salvate automat" footer comportamentul este implicit și cardul a fost doar de a lua spațiu. Secţiunea ForţeCard panouri la lăţime: 100% şi adaugă alignItrems="stretch" la fiecare Grid subtab lui astfel încât cardurile umple întotdeauna coloana lor margine-la-edge.

  25. · kamo-internal

    Împarte setările AV în subtabe Audio/Video/Ringtones

    Reorganizază fila Audio/Video în trei subtabe interne și pune fiecare pe orizontală astfel încât setările să se potrivească în cadrul viewportului fără Zidul defilării verticale am avut înainte. De asemenea, stabilește catalogul ton de apel la punctul la real /sounds/ringtone.mp3 activ în loc de căi fantomă sub /sounds/ringtones/, so previews and the always-on softphone session Împărţiţi un singur ton de apel canonic.

  26. · kamo-internal

    Adaugă tab-ul Audio / Video Setări și sârmă în softphone

    Adaugă un magazin de preferințe AV per dispozitiv (localStorage, specific mașinilor, fără roaming) plus o filă completă pe /setări/membru/<id> pentru configurarea și testarea microfon, difuzor, sonerie, și aparat de fotografiat. Fereastra softphone instrument, redare ton de apel, și SIP SDK adaptoare acum onoare aceste setări live: rutare dispozitiv prin setSinkId, getUserMedia constrângeri (dispozitiveId + EC/NS/AGC/rata de eșantionare), volum de ton DTMF; dispozitiv ringer + selecție ton, mut-on-join, și notificări de birou.

  27. · kamo-internal

    Întotdeauna pe sesiune SIP cu auto-popup + ton de apel pe apelurile de intrare

    Softphone-ul folosit pentru a înregistra doar în timp ce fereastra de instrumente popup a fost deschis Închide şi apelurile de intrare au fost pierdute în tăcere. Ridicați sesiunea într-o SoftphoneProvider montat la AutentifiedToolWrapper, deci SIP REGISTER este a avut loc în mod continuu în timp ce operatorul este semnat și orice INVITE intrare atrage atenţia operatorului. - app/hooks/useSoftphone.ts: redenumește cârligul de implementare la Utilizați Sesiunea Softphone pentru a consolida faptul că trebuie montat exact o dată pentru fiecare sesiune (deține acreditările SIP și REGISTRUL). - *******************SoftphoneProvider ruleaza sesiunea cârlig o dată, expune statul prin context, și reacționează la HasIncome Apel tranziții (Instanță unică, așa că doar se concentrează dacă deja deschis) cu ID apelant în titlul și joacă /sounds/ringtone.mp3 pe o buclă până la utilizator acceptă/rejectează/ telecomanda închide. Public useSoftphone() hook reading din context. - *************** comuta import la context. - ***************înveliţi arborele sculei cu SoftphoneProvider astfel încât sesiunea trăiește atâta timp cât starea auth. clasic NA cadence (440Hz + 480Hz, 2s on, 4s silence) so audio.loop=true produce un model natural de inel/pauză/ring. ~72 KB. Browser-urile pot bloca jocul iniţial () până când utilizatorul face gesturi pe pagina; operatorul a făcut clic de obicei cel puțin o dată la momentul unui apel Sosește, astfel încât aceasta este rareori o problemă în practică.

  28. · KlusterServices

    Seed pbx.k1.kluster.kamocrm.com ca domeniu static

    Softphone-ul browser-ului are nevoie de SIP-over-WSS pentru a ateriza pe un nume de gazdă cu un real TLS Cert. Adăugați admin FreePBX / WS nume gazdă la STATIC DOMAINS astfel încât Auto-cert semănător dispoziții un per-host Să Cripteze certificat pentru ea necondiţionat în loc să se bazeze pe apariţia lui în jurnalele de acces ale lui Traefik. Odată ce certificatul este emis, calea temporară internă.kamocrm.com/voip-ws (angajat mai devreme ca un workaround) poate fi retras și softphone poate Utilizați URL-ul canonic pbx.k1.kluster.kamocrm.com/ws.

  29. · kamo-register

    Folosește numele scurt org și descrierea în capul HTML

    Înlocuieşte logica titlu org-API cu site-ul config.json Titlul urmează acelaşi model ca şi celelalte site-uri: "Registru - {siteNameShort} ." Adaugă descrierea meta tag de la config.json. Elimină utilizarea neutilizatăTemaConfig import.

  30. · kamo-login

    Folosește numele scurt org și descrierea în capul HTML

    DynamicMetaLoader setează acum document.title to "Login - {siteShort} " și scrie descrierea org în eticheta meta descriere. Static layout.tsx Fallback actualizat; eliminat hardcoded KamoCRM OG/Twitter metadate.

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