- Szycy
- 24 kwietnia 2026 22:36 UTC
- Autor
- Kamo
- Pochęt się
- 5d98d8a
Zmiana modelu podstawowego: jeden org - wiele VoipProviderInstances (było: jeden na org). Każdy dostawca API jest teraz identyfikowany na instancji. Interfejs PhoneProvider: - Nowe metody rozszerzenia/użytnika/urządzenia CRUD + poczta głosowa audio/napis. - Nowe flagi możliwości (extensionManagement, userManagement, urządzenieManagement, voicemailTranscription). Domyślny rzut ;) (HTTP 501) więc dostawcy nie pękają. Kontrole przedni do uzyskaniaCapaable() Ukrywanie/niemożnionych działań na jednego dostawcę. - ProviderException (HTTP 502) w przypadku awarii niezależności zewnętrznej. TelefonProviderFactory: - getInstance(UUID) / ? Zamień dziedzictwo getProvider(Long orgId); getPrimaryForOrg (Long) zachowany dla starszych witryn połączeń (CallController, CapabilitiesController, SipController, webhook inbound). - RingCentral OAuth tokeny teraz dostępne (orgId, dostawca, instanceId) tak jeden Org może uwierzytelniać wiele niezależnych wdrożeń RingCentral. - Konstrukcja FreePBX odczytuje config_json ? ?baseUrl, clientId, clientSecret, clientSecret, IgnorujSslErrors i instancja tworzy dedykowany FreePBXGraphQLClient. RingCentral (RingCentralProvider): - Constructor bierze instanceId dla kontekstu dziennika. - Nowe metody: listaRozszerzenia / createExtension / updateExtension / deleteExtension; listUsers / createUser / updateUser / deleteUser (modele RRC Oba jako rozszerzenia typu-Użytkownicy); listaUrządzenia / createDevice / updateUrządzenie / UsuńDevice; fetVoicemailAudio (ukończenie treści załączników) i Pobierz fetVoicemailTranscription. FreePBX (FreePBXProvider) — pełne implementacje zastępują symbole zastępcze: - Cregentialentials OAuth2 token buforowanie za pośrednictwem FreePBXTokenCache (1h TTL, Auto-refresh na 401, per-instancja). - FreePBXGraphQLClient: GraphQL + REST transporty z opcjonalnym Weryfikacja skip-SSL dla samodzielnego podpisu PBX. - Rozszerzenia, użytkownicy Menedżera użytkowników, urządzenia Endpoint Manager, poczta głosowa Lista/mark-read/delete + strumień audio, historia połączeń CDR, dane uwierzytelniające SIP Wywodzący się z sekretu pjsip extension, zdrowie za pośrednictwem fetchAsteriskInfo. - SMS wyraźnie nieobsługiwane (capability sms-false) — FreePBX nie obsługuje Stelażowy SMS. Flowroute SMS (FlowrouteTextProvider): - Wiadomości v2.1 API z HTTP Basic (accessKey, secretKey). - Sonda zdrowia uderza w GET / liczba? limit 1. - Zarejestrowana w BulkTextProviderFactory poprzez nową wartość FLOWROUTE enum. Kontrolerzy: - VoipInstanceController (odnośny od ProviderConfigController) — pełne CRUD na /api/voip/instancje z testem perinsstancyjnym/sync. Tajemnice zredagowane w GET Odpowiedzi („'); merge-update let I UI-trip redagowane pola bez Klobbering przechowywane poświadczenia. - BulkTextInstanceController (nazwany z BulkTextConfigController) — lustro CRUD at /api/bulktext/instancje z testem / test-send / send. - OAuthController przepisany na przykład na przykład OAuth: start, callback, status, Rozłączenie wszystkich bierze przykładId. - SmsController rozwiązuje instancję z member.instanceId ? primary, attaches Aby rozsponować rozmowy. - CallController / CapabilitiesNadzły Kontroler / SipController wraca do org Główny aktywny przykład dla dziedzicznych punktów końcowych jednoinstancyjnych. Usługi: - InstanceSyncSService: pull-through cache synchronizacja — rozszerzenia/urządzenia/ Poczty głosowe skopiowane z dostawcy do lokalnych stołów, brakujące rzędy oznaczone w miękkim rzędami UNKNOWN. Każdy podetap owinięty, więc jedna nieobsługiwana zdolność nie zawodzi Cała synchronizacja (np. FreePBX no-SMS + masowo-rozszerzenia). - VoipMessageService: wszystkie ścieżki konwersacji/przestrzeń propagują instanceId. Testy: wcześniej istniejące testy specyficzne dla VoipProviderConfig usunięte (zakryte Rodzaje nazwane; przepisywanie jest poza zakresem specyfikacji projektowej 10 - brak TDD W tej refaktorce dobudowana jest infrastruktura). Buduje zieleń dzięki zaktualizowanemu kamo-shared-libiry.