Resolver a extensão do histórico de chamadas de member voip config, não phone extension
************* foi NULL para algumas extensões mesmo quando member voip config mapeou corretamente o membro para sua extensão. Utilização member voip config (a m...
Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Fall back to imaging recordings for call history + voicemails
FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
Reprodução de gravação, arquivo de correio de voz, voicemail paginado, enriquecimento de histórico
- Nova gravação Controlador com procura em massa, áudio range-streamed para faixas mestre + por canal, e metadados para a janela de ferramenta media-player - Ca...
Capture o novoExtNumber como final para captura lambda no MemberVoipConfigController
o novoExtNumber é atribuído condicionalmente dentro do if (isVoipEnabled && ...) bloco, o que não torna efetivamente final. O bloco de sincronização do membro d...
Sincronizar telefone TeamMemberExtensão de trabalho no VOIP config save
Adicionar recursos de chamada API — chamada para diante + resposta automática com fio através da abstração do provedor
- Adicionar Caracteres de ChamadasDto e SetCaracterísticasPedir POJOs - Adicionar sinalizadores callForward/autoResposta às Capacidades do Provedor - Adicionar ...
Não apagar a atribuição de membros na sincronização de provedores que não possuem metadados
**************************** Sobrescrito incondicionalmente TelefoneExtension.associadoMembro com o que o provedor retornou. FreePBX (e qualquer provedor que nã...
Credenciais SIP com conhecimento de WSS para softphones de navegador
O endpoint /api/voip/sip/credentials agora retorna credenciais ao lado do navegador SIP stack pode realmente usar: transporte WSS, domínio público e uma URL wsS...
Adicionar o endpoint de atribuição DELETE ao VoipExtensionsController para administração sem atribuição
Adicionar o membroVoipConfigController para a configuração do membro VOIP com atribuição de extensão
Persist connection test result to isConnected field
- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Reescreva todas as consultas/mutações do GQL contra a introspecção do esquema ao vivo
Verifiquei cada nome e tipo de campo contra o esquema atual do FreePBX 17. Conjunto completo de correcções: Consultas: - obterAllExtensions: remover o campo 'v...
Correct GraphQL field name to fetchAsteriscoDetalhes
A API do FreePBX retorna "Você quis dizer fetchAsteriscoDetalhes?" — renomear a saúde verificar consulta e seu acessor caminho de dados em conformidade.
Adicionar cabeçalhos XHR/Accept e análise de resposta de String ao cliente GraphQL
O mesmo padrão do FreePBXTokenCache: adicionar X-Pedido-Com + Aceitar: aplicativo/json para suprimir respostas de redirecionamento HTML do FreePBX, e mudar todo...
Adicionar cabeçalhos Accept+XHR e análise de resposta de texto bruto para o endpoint do token
O FreePBX estava retornando texto/html quando chamado via DNS de cluster porque o O cabeçalho da máquina não correspondeu ao PBX HOSTNAME configurado. Adiciona...
Correct OAuth2 scope strings for FreePBX API
Os escopos do FreePBX são identificadores de nível superior: 'gql' (todos GraphQL) e "Descanso" (todos os REST). O formato 'gql:read' significa GQL para um módu...
Soltar o VOIPService spec md do repo
Por convenção de projeto (os arquivos.md não enviam com serviços).
Incluir com.kamo.z.shared.commerce na verificação de repositórios
Últimas propagações de bibliotecas partilhadas com kamo **************************** (donotmodify.dao.services) que tem uma dependência do construtor **********...
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)
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.