Pokaż przycisk Utwórz dokument dla wszystkich zalogowanych użytkowników
Kontrola flagi org (isDocsEditor - isDocs - hasFeature DOCS) Zwrot był fałszywy, ponieważ funkcje org używają przestarzałych typów kluczy. Przycisk jest teraz w...
Usuń filtry poziomu pola w branży danych i wiersz filtra float
Wyjątknięte wszystkie filtry kolumnowe i wiersz wejściowy filtra pływającego, tak jak Siatka pokazuje tylko nagłówki kolumn i wiersze danych. Usunięto również f...
Przenieś przycisk Prześlij przycisk do paska narzędziowego DocManager
Wyzwalacz Upload był tylko w rekwizycie akcji strony /doc/manager, Uniedzira, gdy DocManager jest osadzony na innych stronach. Przesunięty Przycisk Prześlij bez...
Zezwalaj na przewijanie opcji przesyłania w osadzonej DocManager
Przelać pojemnik z kartą przelewał się: ukryty, przycinanie opcji pliku (opis, folder, typ doktowisza, poziom dostępu) w ograniczonym wysokości Wbudowane kontek...
Napraw błąd 400 i dodaj łączność podtabową z paramami URL
Napraw podwójny--? błąd w MediaStream, gdzie feedEndpoint już zawierał zapytanie Params, ale zamieścił ?page?... zamiast &page..., powodując Zniekształcony adre...
Uczyń "All Leads" prawdziwym elementem menu z ikonami w filtrze agenta
- Wymień element o pozycji o pozycji o pozycji o pozycji _ALL__, więc rozwijaj się Nigdy nie pokazuje pustki, gdy All Leads jest wybierany - Dodaj ikonę grupy...
Spożywać tajny, tak X-Internal-Auth mecze usług downstream
DaemonService -> Konwersja Service . Zwrot 401 Nieupoważnione, ponieważ DaemonService stemplował ją X-Internal-Auth nagłówek z INTERNAL_AUTH_SECRET podczas konw...
Użyj "CreationTimestamp(źródło-DB) na "?
DB jest pojedynczym źródłem prawdy dla znaczników czasu w tej bazie kodu. A w tym, że w tym, pocy w tym, w tym, w tym, z w tym, że posą o. w posą o. w tym w, w ...
Pozwól DB wypełnić - przez Generated (INSERT)
INSERT zawiodły: Wartość null w kolumnie "date_created" narusza ograniczenie nienulegające KolumnDefault tylko deklaruje domyślność DB dla nowych wierszy; Hi...
Rzuć [ze-internal-custom] _X. catch-all, który zepsuł połączenia softphone
Połów-wszystkie exten > _X.,1 w [od-internal-custom] przechwytywał każdy Pokrętło wewnętrzne — softfony zaczęły zgłaszać "telefon nie jest zarejestrowany" / Roz...
Włącz JPA repos dla commerce + e-mail + pakiety dao.repositories
ConversionSunkuj nowy pod CrashLoopBackOff z tym samym błędem DaemonService Przeciśnięcie wcześniej: Parametr 0 konstruktora w wymaganym I fasoli typu - któ...
Carve /api/voip/recordings/' z przedmącnika VOIP
Połówek /api/o- w APIGatewayController śledził Dedykowany VoipRecordingUploadStroller POST /api/voip/recordings/upload mapowanie, gdy Spring rozwiązała mapowani...
Napisuj zarządzane pliki konfigowe 0644, aby teraszowy demon mógł je odczytać
Kapsuła kamo-asterisk działa jako korzeń i pisze do hosta - Asterisk wewnątrz FreePBX str działa jako "asterisk" użytkownika i nie mógł odczytać 0640 root: root...
Użyj składni kompatybilnej z envsubst ? $-VAR w szablonie konfig + ponowne upomnienie na nieświeżych zastępach
Pods to CrashLoopBackOff z "błędami konfigowymi: Brakuje API_KEY lub zbyt krótki" Ponieważ szablon konfiskaty użyto dosłownych znaczników __API_KEY__, które env...
Spaku nieużywanego importu zegarka
uploader.go korzysta tylko z CallBatch (deklarowane w grouper.go w tym samym pakiecie), Nie wszystko bezpośrednio od wewnętrznego / obserwatora. I Go odrzuca ni...
Włącz JPA repos dla commerce + e-mail + pakiety dao.repositories
DaemonService rozbił się na starcie z: Parametr 0 konstruktora w wymaganym I fasolę typu - której nie można znaleźć. Niedawno dodana usługa kamo-shared-lib...
Capture newExtNumber jako finał dla schwytania lambda w MemberVoipConfigController
NowyExtNumber jest warunkowo przeniesiony do środka if (isVoipEnabled & & ...) Blok, co sprawia, że nie jest skutecznie ostateczny. Blok TeamMember Sync czyta J...
Aktualizacja OrgThemeProvisionTest dla kompilacji parametru opisuConfigJson
Cast voiceActivityDetection to ominięcie brakującego typu TS DOM
VoiceActivityDetection jest ważną własnością WebRTC MediaTrackConstraints, ale Jest nieobecny w DOM lib TypeScript, powodując błąd typu w czasie budowy.
Skonfiguruj STUN, aby przeglądarka ICE mogła zakończyć dwukierunkowo
Połączenia dwustronnej przeglądarki do przeglądarki w przeglądarce połączone w warstwie SIP, ale nie miały Dźwięki albo kierunek. Poczta głosowa (jednokierunkow...
Dźwięk na żywo, który przetrwa przerwy obciążenie, wyśrodkowany spinner, wychodzący pierścień
Trzy skoordynowane poprawki dla ścieżki audio w nazwie: 1. AbortError na remoteAudio.play() (widoczny w konsoli produkcyjnej jako "Życie play() zostało prze...
Hangup rozrywa wszystkie sesje na żywo, a nie tylko podstawowe
Obudowa samocalna pozostawiła sesję wycieknącą: wybierając własne rozszerzenie Tworzy sesję wychodzącą, a następnie Asterisk zapętla oddzwonienie jako sekundę S...
Natychmiastowe połączenie sprzężenia zwrotnego na wychodzącym pokrętło
Ten sam problem, jaki miał przycisk odpowiedzi przychodzące: kliknięcie Call wystartował z SIP INVITE w obie strony (1-3 sekundy), ale przycisk zachował swoje b...
Połączenie animacji + audio, które faktycznie odtwarza + odblokowanie dzwonka
Trzy skoordynowane poprawki dla ścieżki dyżurów wewnętrznych: 1. Wizualne opinie podczas przyjmowania. Clicking Answer pozostawił oba przyciski Responsywne,...
Montaż SoftphoneProvider powyżej ToolDock, dzięki czemu okna narzędziowe mogą go odczytać
Otwarcie wyskakującego okienka Softphone rozbiło stronę z "Ta strona nie mogła się załadować" Ponieważ okna narzędziowe mocują się wewnątrz ToolDock, który mies...
Użyj rekwizytu wielkości siatki, aby panele AV wypełniały rząd
MUI v7's Grid jest oparty na flexbox, więc gridColumn sx używałem Był no-op - przedmioty renderowane na naturalnej szerokości i pozostawione puste Przestrzeń po...
Migracja nieświeżych identyfikatorów dzwonka do niewykonania obciążenia
Jeśli zapisane preferencje AV użytkownika odnoszą się do dzwonka, który już nie Istnieje w katalogu (np. „klasyczny” z czasów, gdy katalog był przycięte), zakła...
Cyfry Dialpad rejestrują się teraz na urządzeniach dotykowych
Przyciski wybierania o nazwie e.preventDefault() zarówno w onTouchStart, jak i Na TouchEnd. To powstrzymuje przeglądarkę przed wystrzeleniem syntetycznego zdarz...
Przechowywaj przeglądarkę SIP WSS na stronie internal.kamocrm.com (prawdziwa certyfikacja)
Przeglądarki odmówiły połączenia WebSocket z . Z bliskim kodem 1006, ponieważ Traefik serwował swój samopodpisany domyślny certyfikat Dla tej nazwy hosta (nie p...
Osobna obecność na całym świecie dla marketingu live chat vs członków
Widget widżet publiczny utrzymuje org zastępczy jako requestorId; Obecność sesji medialnych dla tych rzędów. Wewnętrzne i inne bilety używają członka Obecność (...
Okresowy bidet o obecności STOMP dla wsparcia publicznego
Odśwież Redis TTL do obecności sesji publicznej, aby agenci zobaczyli dokładny stan online.
Globe wykorzystuje obecność sesji medialnych dla odwiedzających marketing
Poproś o publiczne sesje czatuj GUID w obecności migawki; potraktuj online, jeśli Członek sesji lub wniosku o udzielenie pomocy jest połączony. Uchwyt migawki k...
Śledź czat wsparcia publicznego przez sesję GUID w Redis
Odwiedzający marketing korzystają /ws/public-chat-native bez memberId; bilety nadal Odniesienie do członka podmiotu notariusza org jako requestor. Przyrost PRES...
Nie wycieraj zadania członka na syndykację dostawców, którzy nie mają metadanych
- bezwarunkowo przeredagowane PhoneExtension.assignedMemId z tym, co zwrócił dostawca. FreePBX (i każdy dostawca, który nie śledzi, który członek Kamo jest właś...
Pokaż nazwę dostawcy w trybie widoku + własne rozszerzenie w edycji rozwijanej
Dwa błędy na ;) 1. Widok zrzucił surowy UUID — "Instancja 32f520b0-347a-..." — ponieważ Lista instancji została załadowana tylko wewnątrz uchwytuVoipEdit()....
Serialize ExtensionDto.assignedMemId jako ciąg znaków
Przepełnia zakres bezpiecznych bezpieczników (np. 1168485658174423046 wycieczki w obie strony 1168485658174423000 po uderzeniu numeru JSON przeglądarki). Fronte...
Uczyń WebRTC config survive' pod pod ponowne uruchomienie
Poprzednie podejście (http_custom.conf z [ogólnym] nadpisem) nie W rzeczywistości zaczyna działać, ponieważ parser INI Asterisk nie honoruje wielu [ogólne] sekc...
Włącz wbudowany serwer HTTP w gwiazdach i na :8089 dla WebRTC /ws
chan_pjsip ?protocol?ws? przejażdżki transportem na szczycie res_http_websocket, Co z kolei wymaga, aby uruchomiony był wbudowany serwer HTTP Asterisk. Nat wt. ...
Priorytetuj prawdziwe imię/ostatnią nazwę nad nazwą użytkownikaAlias dla wyświetlania
Nazwa użytkownikaAlias jest funkcjonalnie uchwytem logowania (często równym nazwie naturalnej), Nie jest to nazwa wyświetlacza. Prawdziwe nazwiska czytelne dla ...
Scope Dodaj przewijanie i stopka do obszaru treści
Forma była używana minHeight: 100vh wewnątrz rodzica, który już jest calc (100vh - 56px), wymuszając wyłącznika przewijania nawet wtedy, gdy zawartość pasuje. P...
Inteligentny układ wielokolumny dla Dodaj formularz ołowiu
Zrestrukturyzacja strony w siatkę najwyższego poziomu, więc sekcje komponują poziomo Zamiast rozciągać poszczególne pola: - Market & Assignment wykorzystuje wn...
Używaj /api/security/members/nazwisko do przydzielonej rozdzielczości nazwy
Filtry punktów końcowych do aktywnych członków zespołu, brakujące Przepisy dla członków bazowych lub nieaktywnych. Przełącz na /names, które Wszyscy członkowie ...
Pełna szerokość dodania ołowiu i prześwit dla lepkiej stopki
Zrzuć maksymalną szerokość 1200px /mal, aby formularz obejmował obszar strony, Wyściółka dolnej, aby lepki pasek akcji nie pokrywał się już Ostatnia sekcja form...
Rozwiązywać nazwę wyświetlania z prawidłowym priorytetem w punkcie końcowym do departamentu
Priorytet: member.usernameAlias - user.name.formatFull() - user.alias - user.username
Add Brakujące pole jestDisplayOnIntake do interfejsu FormField i nowego pola dosłownego
Użyj typu string dla przydzielonegoMemberId, aby zapobiec precyzyjnej utracie
Seriabita Długa jako sznurek zapobiegający precyzyjnej utracie JS na dużych identyfikatorach CockroachDB
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.