Adicionar a exibição de nome de membro e desatribuir botão à página de extensões por instance
Mostrar os nomes dos membros e adicionar a acção Sem atribuir à página de extensões de nível org
Configuração VOIP de fio para fornecedores + seletores de extensão com execução de atribuição
Adicionar DTOs digitados, não atribuir o método API e atualizar os tipos de membrosPermissionsTab VOIP
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
Adicionar findByAtributedMethods MemberId query to PhoneExtensionRepository
Ocultar cartão ATF inteiramente quando todos os campos são bloqueados pelo modelo aplicado
Ponto final do modelo mestre da sonda e correção aplicadaModelo org ID
- Substituir o portão aplicadoModel.source baseado em uma sonda direta de /api/security/master-model na montagem; r.ok=false (409) significa a org é governado p...
Gate censorship tab options by applied model constraints
- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...
Persista na caixa de correio ativa nos parâmetros de pesquisa de URL
Mudando caixas de correio agora atualiza o URL (?mailboxType, ?mailboxId, ?mailbox) tão refrescante o navegador restaura a mesma caixa de correio. O Navegador d...
Mark-as-read and message fetch for shared/member mailboxes
Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
Show accurate provider connection status from isConnected field
Replaces the old logic that showed "Connected" for any provider with no sync error (including brand-new providers that were never tested). New three-state badg...
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...
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
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...
Lidar com IMAPInputStream no getMessage para evitar ClassCastException
JavaMail pode retornar um IMAPInputStream em vez de uma string decodificada de part.getContent() quando o conteúdo da mensagem não foi pré-fetched. A moldes dir...
Mostrar banner de oferta ativa com contagem decrescente de milissegundos ao vivo
Fetches o lado ativo do servidor de promoção na página inicial e renderiza um HeroOfferBanner entre a sub-linha e a chamada gratuita para sempre. O banner mostr...
Conexão disponível/indisponível para backend e corrigir bug de presença OFFLINE
- Renomear o chip pausado/ativo para disponível/indisponível em NavTop - Obter disponibilidade inicial na montagem e persistir comuta através da nova API de eu/...
Aumente o TTL de 90s para 300s para evitar falsos OFFLINEs na frenagem de tabulações
Adicionar éDisponível para resposta de by-department e me/availability endpoints
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...
Passe selectedFolder to ThreadDetailView so email:folder- changed fires with a valid folder
conversation.folder é sempre indefinido porque o Java ConversationEntity tem folderIds (text[]) não um campo de string de pastas. Isto fez com que o loadThread ...
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...
Sincronizar o dropdown da caixa de correio primária ao carregar
O dropdown foi predefinido para o item da primeira lista porque a caixa de correio selecionada foi inicializada sem uma caixa de correio, fazendo com que o valo...
Aumentar o limite de tamanho de envio de arquivos para 500MB
Spring Boot padrão tampa várias partes em 1MB, causando imagem de fundo uploads para falhar com 500 em request.getParts(). Coincidir os Serviços de Segurança li...
Erros HTTP de superfície para que as falhas de upload sejam visíveis
Substituido console silencioso.warn com um erro lançado no status não-OK, assim o usuário vê a razão de falha real (status + corpo de resposta) em vez de proced...
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...
Drive minimized-tab entrada através de controles de animação
A mudança de animação={...} para animar={tabControls} quebrou a entrada animation: tabControls não tem nenhum alvo em fila na montagem, então o botão ficou na s...
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...
Live unread emblema + salto na nova mensagem do agente
- Mantém o LiveSupportPanel montado fora da tela enquanto o widget é minimizado (somente quando existe uma sessão de suporte) para que a subscrição STOMP perman...
Expor a porta 8088 diretamente no serviço ClusterIP
O serviço tinha apenas o mapeamento da porta 80→8088. Serviços internos que utilizam **************************** (por exemplo, token de API VOIPService requisi...
Confiar na infra- estrutura pendenteCount, soltar deslocamentos do cliente
Infraestrutura pendenteO Conta não foi lido agora (conta as sessões do SUPPORT TICKET com mensagens mais novas do que a última Vista do proprietário). Quando o ...
Contagem pendente de transmissão + não- lida na leitura do agente & envio do visitante
- * **************** agora delegados para Então, o conde... reflete sessões com mensagens e decrementos de visitantes não lidos quando o Agente chama MarkAsRead...
Contagem não lida + assistente de pesquisa por sessão
Então, o Navtop SuporteButton emblema pode contar tickets de suporte que realmente precisam atenção (ter mensagens de visitante não lidas) em vez de apenas PRE ...
Adicionar o Mapa de Configuração da Configuração de 2ban em falta para o k1m1
Referências de implantação falham2ban-config ConfigMap (jail.local + asterisco-security.conf) mas não existia, bloqueando o pod em MountVolume. Configurar e imp...
Reconstruir para obter a biblioteca mais recente do kamo
Apanha o novo... consultas e A filial do SUPPORT TICKET em
MarkAsRead after agent send so lastViewed advances
Nos tickets de suporte, as mensagens de visitante e agente são armazenadas sob o mesmo sistemaMembro, por isso a consulta não- lida é depende inteiramente da úl...
Os tickets de suporte precisam de contagens não lidas por membro- diagnóstico
Mensagens de visitantes em tickets de suporte são armazenadas no mesmo sistemaMembro que o agente autentica como, para que a sessão de CHAT existente não seja l...
Adicionar mídia à lista de provisionamento de certificados de subdomínios
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.
