Użyj konwersacji łańcuchowejId w całym narzędziu SMS, aby obsługiwać 64-bitowe identyfikatory
Backend teraz serializuje Długie jak łańcuch; aktualizuj wszystkie typy konwersacjiID Od numeru do ciągu do dopasowania. W włącz również przycisk wysyłania, gdy...
Serializuj długie identyfikatory jako ciągi, aby zapobiec precyzyjnej utracie JS
CockroachDB unique_rowid() generuje 64-bitowe liczby te większe niż Numer.MAX_SAFE_INTEGER (2-53-1). JS JSON.parse po cichu ich obcina, Powoduje rozmową niedopa...
Usunąć duplikat przycisku Wstecz z RingCentralConfig
Rodzic PhoneProviderSetup już renderuje IconButton z ArrowLeft W nagłówku widoku konfig, wykonując przycisk Wstecz wewnątrz RingCentralConfig Zduplikowany.
Powrót płaska mapa z wysłania punktu końcowego, aby zapobiec przejmowanie LazyInitializationException
VoipMessage.conversation is FetchType.LAZY; po zatipowaniu transakcyjnym, Jackson serializujący podmiot rzuciłby LazyInitializationException Wywoływanie 500, wi...
Z powrotem do org mainPhoneNumber, gdy członek nie ma konfiskata VOIP
Członkowie bez indywidualnego MemberVoipConfig (lub nie odPhoneNumber) Teraz użyj głównego numeru kempingowego org/mnó's mainPhoneNumber z VoipProviderConfig ja...
Usunąć getJwtKey() z WebhookController po migracji OAuth
Walidacja podpisu używała jwtKey jako tajemnice HMAC, która już nie istnieje na VoipProviderConfig. Pomiń walidację na razie zgodna z - "
Dodaj OAuth callback przekierowanie bez przekierowania z RestTemplate
- Dodaj noRedirectRestTemplate bean (HttpClient.Redirect.NEVER) tak: 302 z oddzwonienia OAuth VOIPService jest przekazywany do przeglądarki Zamiast być śled...
Zamień konfig JWT na OAuth connect UI dla RingCentral
- RingCentralConfig: Przycisk połączenia/odłączenia OAuth ze wskaźnikiem stanu, Główne pole numeru telefonu, połączenie testowe (tylko po podłączeniu) - voipA...
Refactor RingCentral do OAuth 2.0 Przepływ kodu autoryzacji
- Nowy OAuthController: /oauth/start (powroty authUrl), /oauth/callback (wymiany kod, zapisuje tokeny), /oauth/status, DELETE /oauth/token - OTKValidationFilt...
Utwórz tabelę KamoTokens i org_oauth_token
- TRYJOWANA SCHEMA JEŚLI NIE WYKONALICZNE DZISZ - CREATE TABLE kamotokens.org_oauth_token z unikalnym (org_id, dostawca) - DROP COLUMN jwt_key z voip_provider_c...
Dodaj jednostkę OrgOAuthToken do przechowywania tokena OAuth 2.0
- Dodaj podmiot OrgOAuthToken w pliku KamoTokens schema (kamotokens.org_oauth_token) - Dodaj OrgOAuthTokenRepository z findByOrgIdAndProvider / deleteByOrgIdAnd...
Karty z równymi i opisy dostawców świadomych Kazoo
- Wysokość zestawu: 100% na Cebuła ruchu FeatureCard, więc karty w tym samym rzędzie pasują do najwyższej karty - Zaktualizuj opis KamoPBX, aby podkreślić Kazoo...
Użyj zwykłych tagów img dla lokalnych logo dostawców SVG
Następny/obraz nie obsługuje niezawodnie lokalnych SVG bez nieoptymalizowanej flagi. Zwykłe megi ładują / aktywa publiczne bezpośrednio bez problemów.
Przepisz SmsBox jako orkiestrator oparty na kartach z nagłówkiem styku
Dodaj SmsChatTab z wyszukiwaniem, emoji, dołącz, znacznikami czasu, szybkimi odpowiedziami
Usuń identyfikator klienta i pole tajnych z RingCentral UI
Są to poświadczenia na poziomie platformy ustawione raz w tajemnicy K8s. Klienci muszą tylko podać swój klucz JWT i główny numer telefonu.
Przeczytaj RingCentral client-id/secret z konfig platformy, a nie per-org DB
ID klienta i Secret identyfikacja aplikacji Kamo na platformie RingCentral — Są one dzielone we wszystkich orgach. Wstrzyknąć je z właściwości Spring Boot (powt...
Usunąć klientId/klientSekret z VoipProviderConfig
Są to poświadczenia na poziomie platformy dzielone we wszystkich orgach. Tylko jwtKey i mainPhoneNumber są per-org.
Użyj poprawnej obudowy klucza sesji dla orgID i memberID
KSessionService przechowuje klucze jako orgID i memberID (kapitał D). Oba kontrolery dzwoniły .get("orgId") i .get("memberId") Które zawsze zwracają się null, p...
Zawsze wyświetlaj przyciski softphone i SMS w NavTop
Usunięto bramę isVoip, aby przyciski były zawsze widoczne niezależnie od tego, Wywiń flagę stan.
Dodaj Dockerfile dla VOIPService
Pasuje do wspólnego-biblioteka + usługi dwustopniowego wzoru budowania używanego przez EmailService i inne usługi Java.
Użyj nazwy typu funkcji jako klucza przed funkcją numeric id w org preprocessing
Java zwraca funkcje z "typu: "VOIP" i numeryczny "id". W tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, z w tym, że powt. w tym w, pow. w tym, z w tym, ż...
Dodaj przycisk narzędzia SMS do NavTop, softphone + SMS w organizacji.isVoip
Dodaj voip.> do tematów strumieniowych NATS i obsłudze NielegalneWyjątekStateException w VoipStompRelaySAdministrator
Strumień NATS obejmował tylko czat.> subskrybowanie do voip.> rzucił IllegalStateException ([SUB-90007] Brak strumieni pasujących). Dodano voip.> Do badanych st...
Dodaj usługę zabezpieczenia. do K8s ConfigMap
KamoJwtService wymaga tej właściwości dla walidacji tokenów Bearer w DavAuthFilter, ale K8s ConfigMap nadpisuje aplikację.yml i był Brakuje go - powodując Crash...
Przeprojektuj konfigurację dostawcy telefonu, aby dopasować format dostawcy poczty e-mail z logo, wskazówkami dotyczącymi pomocy i poprawiać karty nav
- Przepisz telefonProviderSetup, aby dopasować EmailProviderSetup wzór: lista / konfiskaty podział, Przejścia AnimatePresence, przycisk z powrotem z nazwą dosta...
Pokaż ustawienia systemu(-ów) telefonu bezwarunkowo tak, że orgs może skonfigurować VOIP przed jego włączeniem
- Usuń bramkę iPlotkę z sekcji telefonicznej na stronie /settings - Karta konfiguracji dostawcy nie ma warunku, więc zawsze się pojawia; Funkcjonarki i plany wy...
Osobą przed odpowiedziami API niearciekawy w użyciuTanie o znaczenia
SetBooks, fetchKontakty i searchSkontaktowania teraz bezpiecznie obsługują obiekty błędów A pagowane wojny w opakowaniach z wiosną zamiast rozbijać się o "em.ma...
Prawidłowa nazwa pola w findEventsNeedingSync kwerenda od 'integracji' do 'kontaktIntegration'
Stabilizuj obciążenie zwrotne i napraw reset mody w PersonalProviderSection
Dodaj sekcję Kalendarzi i Kontakty Osobiste do zakładki Uprawnień członkowskich
Dodaj komponent PersonalProviderSection dla członków Integracje CalDav / CardDav
Początkowa projekt DaemonService — Praca kwarcowa, wydawcy NATS, K8s, CI/CD
Zapis KontaktSyncLog na mutacjach kalendarzowych/kontaktowych dla dwukierunkowej synchronizacji
Dodaj IntegrationSettingsSAdministrator, IntegrationSettingsService, SyncTriggerPublisher stub
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.