Controladores de recursos por instalação + agregado org + sincronização interna
Por recurso de instalação CRUD (extensões / usuários / dispositivos / correio de voz): - VoipExtensionsController. - VoipUsersController em /api/voip/instances/...
Refactor de provedor multi-instanciamento + FreePBX completo + Flowroute SMS
Mudança de modelo principal: uma org → muitas VoipProviderInstances (foi: uma por org). Cada chamada API de provedor agora é vigiada por instância. Interface P...
Reconstruir para atualização de biblioteca compartilhada com kamo (remover OrganizationType, add isTopLevel)
Reconstruir para atualização de biblioteca compartilhada com kamo (remover OrganizationType, add isTopLevel)
Reconstruir para a atualização da biblioteca compartilhada com kamo (CREATE CHILD ORG direito + apply-to flags)
Puxa o novo RoleRightType.CREATE CHILD ORG (id 131), as três bandeiras aplicáveis em ChildOrgSecurityModel, as duas sobrecargas de serviço de 13 arg e os ajudan...
Reconstruir a actualização da biblioteca partilhada com o kamo (appConfig upsert- only fixe)
Puxa o endurecido ************* que não apaga mais as linhas do appConfig cujos tipos de serviço estão ausentes da carga útil do chamador — evita perda de dados...
Reconstruir para atualização da biblioteca compartilhada com kamo (solucionador de recursos efetivos)
Pega os novos métodos AppliedModelEnforcementService (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveCaracter...
Bump kamo-shared-library para 1.5.0 para aplicação de modelo
Traz este serviço para o kamo-shared-library 1.5.0 para que ele pegue o novo AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, ServiceAvail...
Reconstruir para atualização de biblioteca compartilhada com kamo (regras de força de execução + refallback de DEFAULT no MemberRightsAppliedService)
Triggers uma reconstrução para que este serviço capta o atualizado ************* que aplica as regras de força de modelo e Default-template backbacks no topo da...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Handle RC webhook validation token; make body optional for verification requests
Add MMS attachment support — multipart send, base64 storage, image display
- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...
Add call event webhook pipeline; branch SMS vs telephony events before processing
Add capabilities, SIP credentials, and call management REST controllers
Implement RingCentral call management methods (sip, history, voicemail, presence, queues)
Extend PhoneProvider interface with call management methods; update stubs
Explicitly stringify Long IDs in SmsController responses
**************** Long-as-string approach was not taking effect. Directly call .toString() on all Long IDs in the controller flat-map responses to guarantee no J...
Serialize Long IDs as strings to prevent JS precision loss
CockroachDB unique_rowid() generates 64-bit integers larger than Number.MAX_SAFE_INTEGER (2^53-1). JS JSON.parse silently rounds them, causing conversation ID m...
Return flat map from send endpoint to prevent LazyInitializationException
VoipMessage.conversation is FetchType.LAZY; after @Transactional commits, Jackson serializing the entity would throw LazyInitializationException causing a 500, ...
Fall back to org mainPhoneNumber when member has no VOIP config
Members without an individual MemberVoipConfig (or no fromPhoneNumber set) now use the org's mainPhoneNumber from VoipProviderConfig as the outbound number, ins...
Remove getJwtKey() from WebhookController after OAuth migration
Signature validation used jwtKey as HMAC secret which no longer exists on VoipProviderConfig. Skip validation for now consistent with ****************
Refactor RingCentral to OAuth 2.0 Authorization Code flow
- New OAuthController: /oauth/start (returns authUrl), /oauth/callback (exchanges code, saves tokens), /oauth/status, DELETE /oauth/token - OTKValidationFilte...
Read RingCentral client-id/secret from platform config, not per-org DB
Client ID and Secret identify the Kamo app on RingCentral's platform — they are shared across all orgs. Inject them from Spring Boot properties (backed by the K...
Use correct session key casing for orgID and memberID
KSessionService stores keys as orgID and memberID (capital D). Both controllers were calling .get("orgId") and .get("memberId") which always returns null, causi...
Add Dockerfile for VOIPService
Matches the shared-library + service two-stage build pattern used by EmailService and other Java services.
Como o que vês no transporte?
Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.
