Dodaj LAN DNS kapsułki do split-DNS na k1m1
Rozmieszcza dnsmasq pod z hostNetwork na k1m1, który słucha 192.168.4.22:53. Nadpisy pbx.k1.kluster.kamocrmm.com -> 192.168.4.22 Tak więc telefony LAN docierają...
Dodaj local_net dla poprawkę RTP klienta split-DNS / LAN
Telefony w tej samej sieci LAN co k1m1 łączą się za pomocą podzielonego DNS (domena rozwiązuje się do 192.168.4.22 wewnętrznie). Bez local_net, Asterisk nadal r...
Persist sorcery contact-memory fix i blokuje skaner SIP w starcie.sh
- Wstrzyknąć [res_pjsip] contact-memory do czarownika.conf przed rozpoczęciem Asterisk; Domyślny backend sorcery-astdb SQLite cicho upuszcza wszystkie kontakt...
Zawartość Sub-tab wypełnia pełną szerokość zawartości
Upuść środkową ścisłą ścisłą ścisłą (było 920 / 1200 / 680 / 720 w zależności od Na karcie) na SubTabShell. Strona już żyje w treści SettingsView Kolumna, która...
Napraw parsowanie załączników i ma fałszywe dodatnieAttachment
Trzy poprawki do EmailImapService: 1. toEnvelope: wąska kontrola wieloczęściowa do wielu / mieszanego tylko - zwykły Wiadomości tekstowe HTML+ (multiparta/a...
Dodaj przycisk pobierania do sekcji klasycznego widoku
Klasyczny widok (MessageBrowser) miał własną listę załączników, która była Brak przycisku pobierania - tylko widok rozmowy został naprawiony Wcześniej. Wyrównuj...
Dodaj com.kamo.z.shared.commerce do skanowania EnableJpaRepositories
/ (wymagane przez ;) W bibliotece wspólnej) mieszka pod com.kamo.z.shared.commerce, ale nie Zamieszczony w skan repozytorium JPA, powodując CrashLoopBackOff na ...
Właściwy układ, wyściółka i logo dostawców
Układ / poprawki międzystawne: - Wszystkie sześć zakładek (Providerzy, Rozszerzenia, Użytkownicy telefonów, Urządzenia, Poczta głosowa, Zdrowie) Teraz zawiń i...
Poprawa nazwa pola i wpis w odpowiedzi na getFromAddresses
Backend wysyłał klucz "e-mail", ale frontend spodziewał się "adresu" i Wysłany typ 'shared_mailbox', gdy frontend spodziewał się 'wspólny'. Również poprawki Fla...
Załaduj adresy z dostępnych skrzynek pocztowych i aliasów
Zastępuje zepsuty punkt końcowy getFromAddresses() (który wysłał "e-mail" Zamiast 'adres') z getAccessibleMailboxes() + listaMemberAliases(), Dopasowując ten sa...
Użyj składni DROP INDEX CASCADE kompatybilnej z karaem DEM OP
CockroachDB odrzuca ALTER TABLE... DROP CONSTRAINT dla UNIQUE Ograniczenia z: Niewdrożone: nie można upuścić UNIQUE constraint "uk_org_oauth_provider" ALTE...
Upuść VOIPService spec md od repo
Zgodnie z konwencją projektowym (pliki.md nie wysyłaj za pomocą usług).
Dołącz com.kamo.z.shared.commerce w skanowaniu repozytorium repozytorium
Najnowsze propagaty z wspólnie kamo-wspólne biblioteki (donotmodify.dao.services), który ma odbudowuje konstruktora od / / "Wspaniały" Usługa jest ładowana prze...
Zakładki konfiguracji platformy (General / VOIP & SMS / System User / Advanced)
Owijanie w SettingsView z czterema zakładkami: - Ogólne: przegląd platformy tylko do odczytu — total orgs, aktywny phone-server Liczba instancji, liczba akty...
Dodaj przycisk pobierania załączników i oddziela znak jak odczyt
- Dodaj przycisk Pobierz ikonę do każdego wiersza załączników, aby użytkownicy mogli wymusić Pobierz plik zamiast tylko otwierania w nowej karcie - Decouple m...
Globalne zadanie synchronizacji VOIP (admin-tunable interval)
VoipGlobalSyncJob tyka co minutę, a na każdym klepie czyta SystemKonfiguracja singleton, aby zdecydować, czy synchronizacja globalna jest należna: - Jeśli voipS...
System-config + punkty końcowe widoku platformy
Powierzchnia konfiguracji o szerokości platformy, ogrodzony przez istniejącego właściciela najwyższego poziomu osłony (mecze SystemUserConfigController wymaga w...
Kontrolery zasobów na instancja + orgregacja + synchronizacja wewnętrzna
Zasób na instancyjny CRUD (rozszerzenia / użytkownicy / urządzenia / poczta głosowa): - VoipExtensionsController na - VoipUsersController at /api/voip/instances...
Wieloinstancyjny refaktor refaktor i pełnopłatny FreePBX + Flowroute SMS
Zmiana modelu podstawowego: jeden org - wiele VoipProviderInstances (było: jeden na org). Każdy dostawca API jest teraz identyfikowany na instancji. Interfejs ...
Migracja wieloinstanowego telefonu / dostawcy usług SMS
Prowadzeni po Hibernate ddl-auto:update tworzy nowe tabele (VOIP_PROVIDER_INSTANCE, BULK_TEXT_PROVIDER_INSTANCE, PHONE_EXTENSION, PHONE_END_USER, PHONE_DEVICE, ...
Wieloinstancyjny schemat do smartfona / dostawcy SMS
- Zamień nazwę VoipProviderConfig - VoipProviderInstance; drop UNIQUE(org_id), add instance_name, config_json, last_sync_error. - Zmień nazwę BulkTextProviderCo...
Przenieś hostPath z MinIO (rclone FUSE) do local /var/lib/pbx
MinIO via rclone FUSE nie obsługuje POSIX chmod ani symlink() — oba Wymagany przez system modułowy FreePBX. Zmieniono wszystkie FreePBX i MariaDB hostPath wolum...
Wrap fwconsole/amportal przez php dla MinIO FUSE hostPath
/var/lib/asterisk jest wspierany przez MinIO przez rclone FUSE, który nie obsługuje POSIX chmod, więc skrypty fwconsole nie mogą być wykonane na tym woluminu. S...
Dodaj preStop hak i zakończenie GracePeriodSeconds
Pojemniki utknęły w Zakończeniu, ponieważ w tle Asterisk Procesy nadal działają po wyjściu apache2ctl (PID 1). SIGTERM do Astryszku, zanim Kubernetes zabije poj...
Dodaj bootstrap.php wymaga regenerowania /etc/freepbx.conf
Instalator zapisuje freepbx.conf z datasource-'' i require_once dla bootstrap.php, od którego config.php zależy od załadowania klasy FreePBX. W naszej zregenero...
Regeneruj /etc/freepbx.conf na restarcie
/etc jest efemeralny (nie hostPath), więc /etc/freepbx.conf napisany przez Instalator zaginął na każdym ponownym uruchomieniu kapsuły. Dodano inny oddział do re...
Bypass start_asterisk, poczekaj zamiast na gniazdko sterujące
Start_asterisk używa "pidof asterisk", który zwraca fałszywie dodatni wynik na strąku restarty, powodując powieszenie pętli oczekiwania na gwiazdę. Teraz startu...
Uruchom Asterisk w tle, poczekaj na niego, a następnie uruchach instalator
entrypoint.sh nie uruchamia instalatora FreePBX - dopiero się zaczyna usługi. startup.sh teraz replikuje kroki konfiguracji punktu wejścia, uruchamianie Asteris...
Pozwól uchwytu punkta wprowadzania instalacji, a nie startup.sh
Instalator FreePBX (index in install -n) wymaga, aby Asterisk już był Biegnąc. Nasz startup.sh dzwonił do niego, zanim Asterisk zaczął, powodując "Brzrszą komun...
Montaż /etc/asterisk, nie /etc, aby naprawić błąd PHP simplexml
Montaż pełnego /etc jako wolumin hostPath był uszkodzony rozszerzeniem PHP Załadunek nawet po zasiewaniu z obrazu — simplexml_load_file undefined W czasie insta...
Zredukuj limity procesorów do 2:1, aby wyeliminować nadmierne zaangażowanie
Rdzeń dokuje 4-1 rdzeń, jibri 4-2 rdzenie, librecal 2"1 rdzeń, Pandowy bergamot 2'1 core, coturn 10,5 rdzeń. Oszczędza 7,5 rdzeń poza granicami węzłów.
Przełącz na escomputers/freepbx:17 z odpowiednią architekturą
's zmęczeniofita / freepbx nie ma obrazu FreePBX 17 (opuszczonego od 2022 roku). escomputery/freepbx:17 (zaktualizowany pr. 2026, Asterisk 21 + FreePBX 17) wyma...
Upuść publiczne ingresję administratora; dostęp przez http://k[12]m1:8088
UI administratora jest teraz dostępny tylko wewnętrznie przez LAN/WireGuard na porcie 8088 (FreePBX's nginx związany bezpośrednio na hostNetwork). Bez Traefika,...
Wdraża FreePBX 17 + most Jigasi SIP na k1m1 i k2m1
FreePBX (tiredofit/freepbx:17-dawny) działa z hostNetwork, więc SIP/RTP Przechowuje prawdziwe adresy IP klientów, przypięte jeden na węzeł za pośrednictwem node...
Parse formData przed przesądzeniem, aby zapobiec korupcji binarnej
request.text() na wielu/formularzach uszkadza binarne pliki bajtowe; pass parsed FormData jako init.body więc forwardToApi pomija żądanie.text() I pozwala na re...
Usuń minHeight:100vh powodując podwójne paski przewijania
MinHeight:100vh przekroczono kalc układu(100vh - 56px) Kontener, który spowodował zarówno przewijanie na poziomie przeglądarki, jak i wewnętrzny Przepełnienie: ...
Zrzuć nagłówek strony edytora, zmień nazwę Podzakładki Ogólne
- Usuwa tylny strzał IconButton + ikona tarczy + tytuł + tytuł z Na szczycie edytora modeli zabezpieczeń / master-model. Przycisk Anulowanie W lepkim pasku ...
Zrzuć nieświeżo nagłówek kolumny Pay z tabeli modeli zabezpieczeń
Kiedy pole Self-Pay Kamo Fees zostało usunięte, pasujące Wysłano komórkę w korpusie rzędowym, ale wiersz nagłówka nadal miał Komórka "TeamMember> Pay", przesuwa...
Powierzchniowy prawdziwy powód błędu GoDaddy 400
GoDaddy zwraca teraz HTTP 400 z kodem "UNABLE_TO_AUTHENTICATE i body" "Zły wniosek: Zły wniosek", gdy konto nie spełnia ich aktualnego kwalifikowalne domena API...
Podtasjowa cenzura teraz renderuje ATF najpierw na specyfikację
Złóż zlecenie kart podtapiania Cenzury, aby dopasować żądaną kolejność: 1. Alkohol, tytoń i broń palna 2. Dopuszczane zakresy wiekowe członków 3. Dozwolon...
Widok platformy-admin, pagination, wyszukiwanie na żywo, filtry, logo org
Komedy internetowe platformy (właściciel org najwyższego poziomu) widzą teraz każdy org w systemie za pośrednictwem Nowy /api/security/org/all-networks punkt ko...
Dodaj GET /api/security/org/all-networks dla administratorów platformy
Najwyższej klasy posiadacze org mogą teraz pomnać wszystkie organizacje w systemie Informacje o członkostwie w stosunku do rozmówcy. Orgi, gdzie dzwoniciel ma c...
Sub-tabs w edytorze modeli zabezpieczeń + sprzątania
- Security-model editor on - jest teraz podzielony do czterech podtab: Ogólne (Podstawowe informacje, widoczność, Kto może tworzyć, Ustawienia platformy, Do...
Drop teamMemberPayFeesUtting od DataLoader
Przepis na model główny nie przechodzi już usuniętych wypłat trójpaństwowych Ustawienie podczas tworzenia modelu zabezpieczeń mistrzowskich - pole zniknęło Chil...
Drop teamMemberPayFeesSUtowanie
Odzwierciedla zmianę biblioteki wspólnej — SecurityModelController, MasterModelController i AppliedModelController nie czytają/zapisy ZespółMemberPayFeesSUtting...
Drużyna DropMemberPayFeesSUtting
Polityka samopłatności pracowniczej zniknęła - uchwyty refaktorzy BillingGroup Rachunkowość na grupę, a nie za pośrednictwem modelu bezpieczeństwa. Usuwamy team...
Domeny ładowania przez findBIdWithDomains, upuść ?Transactional
Transakcyjne na metodzie kontrolera utrzymuje otwarte połączenie DB Całe przesyłanie MinIO, a także ryzykuje LazyInitializationException, jeśli Inserwatacja get...
Usuń duplikat ? typu z apiPath
forwardToApi już doda do przychodzącegoSearch (?type...) z oryginału Poproś o adres URL. Osadzanie ?type po raz drugi w wyprodukowanym apiPath ?type-full?type -...
Przywracanie przełącznika skrzynki pocztowej dla identyfikatorów członków int64
Użyj getMemberIdString dla skrzynek pocztowych / sms, normalizuj id/mailboxId od EmailService i napędzaj przełącznika z dostępnych danych osobowych Skrzynka poc...
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.