Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · VOIPService

    Sincronizar telefone TeamMemberExtensão de trabalho no VOIP config save

  2. · SecurityService

    Backfill TeamTelefone de membroExtensão de trabalho do MemberVoipConfig na inicialização

  3. · kamo-internal

    Configurações de recursos de chamada de fio de ponta a ponta através da abstração do provedor

    - voipApi: adicionar CallFeaturesDto tipo, getCallFeatures() e setCallFeatures() chamadas API - Usa o telefone. a partir da API na inicialização; setCallForward/setAutoAnswer actions persistem através da API; resposta automática e efeitos de chamada-avançar gatilho em chamadas de entrada quando os recursos estão ativos - SoftphonePanel: remover o estado do recurso de chamada somente local; número de entrada para o contexto do softphone; fio Resposta automática comuta para o contexto do softphone; renomear botão de navegação para 'Manage Extended A/V' Configurações' - A sincronização da barra deslizante de áudio já estava funcional através do barramento de eventos useAVSettings — nenhuma alteração necessária

  4. · VOIPService

    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 padrão getCallFeatures/setCallFeatures to PhoneProvider interface - RingCentral: implementar através de Regras de Resposta API REST (UnconditionalForwarding) - FreePBX: implementado através da mutação GraphQL addCallforward - CallFeaturesController: GET/PUT /api/voip/calls/features — DB primário, provedor-native sync

  5. · kamo-shared-library

    Adicionar MemberCallCaracterísticas de entidade e repositório para as preferências de resposta automática e de chamada

  6. · kamo-asterisk-support

    Commit inicial — Carregador de gravação FreePBX (GO)

    Relógios para gravações WAV terminadas, grupos multi-pernas chamadas pernas por Asterisco UNIQUEID, e carrega cada lote para APIService /api/voip/gravações/upload usando um VOIP RECORDING UPLOADS-scooped Chave API. Os arquivos são excluídos do disco apenas após a plataforma confirmar o armazenamento. Bootstrap fornece de forma imediata um usuário AMI via manager custom.conf e instala os ganchos MixMonitor() por canal via extensions custom.conf, então pede ao Asterisco para recarregar seus módulos dialplan/manager. Ambos os blocos geridos são cercados por banners claramente marcados para que personalizações admin sobreviver. Inclui arquivos Docker, manifestos k8s para k1m1 e k2m1 (Deployment + ConfigMap + Modelo secreto), ************* que espelha o resto da plataforma, e um README.txt não técnico para anfitriões FreePBX autônomos.

  7. · kamo-internal

    VOIP RECORDING UPLOADS escopo + contador de tubulação de registro/tunables

    - APIManager: nova opção de escopo VOIP RECORDING UPLOADS (usada pelo kamo-asterisco-suporte no FreePBX hospeda para carregar mensagens de voz e chamar gravações via APIService). - VoipSmsTab: novo cartão "Recording Pipeline" com quatro contadores processo, chamadas para processo, mensagens de voz em erro, chamadas em erro) A cada 30 anos, usa o seu número. Nova "Gravação Processando" card com voipVmBatchTamanho / voipCallBatchTamanho / voipPollSegundos Tunbles. - systemConfigApi: extend update() para enviar os novos tunbles; add recordingStats(). - tipos/telefone: Configuração do Sistema Dto ganha os três novos tunbles; VoipRecordingStatsDto added.

  8. · SecurityService

    Estatísticas de gravação de configuração do sistema + ajustáveis de processamento de gravação

    - Está bem. retorna os quatro contadores exposto nas configurações kamo-interna → Plataforma → Configuração → VoIP/SMS tab (vmPending, callPending, vmError, callError). - PUT /api/security/system-config agora aceita voipVmBatchSize, voipCallBatchSize, voipPollSeconds for DaemonService gravando-processador tunbles. - toDto() inclui os novos campos para que o frontend possa lê-los de volta.

  9. · DaemonService

    Processor de GravaçãoJob + atalho NATS para novos envios

    - Novo trabalho de Quartzo GravaçãoProcessorJob ticks a cada minuto, despachos independentes VM e lotes de chamadas simultaneamente ao ConversionService **************************** usando ********************** voipCallBatchTamanho} como tampas. - Novo registroRecebidoConsumer assina voip.graving.recebido NATS assunto emitido pelo ConversionService em novos uploads e desencadeia uma execução imediata, então uma gravação em fase recente inicia o processamento em segundos em vez de esperar na sondagem periódica. - Configmap expõe daemon.jobs.gravings.cron e o Está a falar com ele.

  10. · ConversionService

    Ingerir gravação + FFmpeg canalização de processamento

    - Novo... Endpoint stages multipart uploads enviado pela APIService para MinIO balde ******************* e cria uma linha de encenação UnprocessedRecording. Idempotente nas tentativas usando (phoneServerId, asteriscoUniqueId). - Novo **************** endpoint (chamado por DaemonService) drenos linhas: downloads WAVs encenados, misturas chamar pernas em um único Opus / WebM master via FFmpeg amix, transcodifica WAVs por canal como faixas ao lado do mestre, e uploads através de RecordingImagingService com VM RECORDING (8) / CALL RECORDING (9) ImageAssocType. - New FfmpegService wrapper (transcodeToOpusWebm / mixToOpusWebm) com timeout e limpeza tempfile. - NATS editor emite voip.graving.received em cada upload encenado assim DaemonService pode abreviar sua pesquisa periódica. - Dockerfile instala ffmpeg no estágio de execução (navios ffmpeg alpinos libopus por padrão). - ConfigMap expõe **************************** (interserviços partilhados para que os novos terminais possam autenticar o APIService e Chamadores de serviço de daemon.

  11. · APIService

    VoipRecordingUploadController for kamo-asterisco-suport uploads

    POST /api/voip/gravações/upload aceita corpos multi-partes do suporte kamo-asterisco rodando em hosts FreePBX. Valida o X-Api-Key tem o novo VOIP RECORDING UPLOADS escopo (re-usando o ************* cache de validação), então encaminha os cabeçalhos de carga útil múltipla + metadados (X-Phone-Server-Id, X-Asterisk-Unique-Id, X-Recording-Kind, X-Primary-Extension) to ConversionService ****************************

  12. · kamo-shared-library

    UnprocessedGravando entidade de estadiamento, faixas ImgDat, serviço de gravação de imagem

    - Corrigir a colisão do ID ImageAssocType: VM RECORDING=8, CALL RECORDING=9 (foram ambos Duplicando MY DOCS em 4). - Acrescente-me... por canal Opus/WebM rastreia ao lado do conceito de miniatura existente. - Adicionar ImageMimeType.AUDIO WEBM (audio/webm) para os recipientes Opus-in-WebM produzido pelo gasoduto de conversão. - Nova gravação não processada (IDUID, IS VM, PHONE SERVER ID, extensão, ASTERISK UNIQUE ID, IS PROCESSADO, IS ERROR, ERRO MENSAGEM, RESULT IMG ID, Data CREADA, DATA PROCESSADA) entidade de estágio + repositório para o kamo-asterisco-suporte → ConversionService → DaemonService pipeline. - Nova GravaçãoImagem Serviço que envia um mestre Opus/WebM mestre para imagens com faixas Opus/WebM por canal anexadas via ImgDat.trackCount. - Configuração do Sistema: adicionar voipVmBatchTamanho / voipCallBatchTamanho / voipPollSegundos para os aparelhos de gravação-processador DaemonService.

  13. · kamo-asterisk-support

    Commit inicial — Carregador de gravação FreePBX (GO)

    Relógios para gravações WAV terminadas, grupos multi-pernas chamadas pernas por Asterisco UNIQUEID, e carrega cada lote para APIService /api/voip/gravações/upload usando um VOIP RECORDING UPLOADS-scooped Chave API. Os arquivos são excluídos do disco apenas após a plataforma confirmar o armazenamento. Bootstrap fornece de forma imediata um usuário AMI via manager custom.conf e instala os ganchos MixMonitor() por canal via extensions custom.conf, então pede ao Asterisco para recarregar seus módulos dialplan/manager. Ambos os blocos geridos são cercados por banners claramente marcados para que personalizações admin sobreviver. Inclui arquivos Docker, manifestos k8s para k1m1 e k2m1 (Deployment + ConfigMap + Modelo secreto), ************* que espelha o resto da plataforma, e um README.txt não técnico para anfitriões FreePBX autônomos.

  14. · kamo-internal

    Substituir a aba de contatos simulados por SoftphoneContactos com funcionalidades completas

    Extrai um novo SoftphoneContacta o componente que liga os contactos do softphone aba para a API de contatos reais via useContacts(). Substitui 4 cópias codificadas contactos com dados ao vivo de todos os livros de contacto. Características: - Livro e filtrar grupo comprimidos com seletores dropdown - Pesquisa debitada, ordenar por último/primeiro/nome completo - Iniciações avatar codificadas por cores (hash determinístico), suporte a fotos - Lista de contactos com botão de chamada rápida hover-reveal - Vista detalhada (lista substitui) mostrando telefones, e-mails, org, notas - Modo de edição em linha para todos os campos (telefones/e-mails multi-valor com adicionar/remover) - Apagar o contacto com a etapa de confirmação - Vazio e carregamento de estados de esqueleto - "Novo contacto" navega para /contactos? action=create Atualiza contatos/page.tsx para abrir automaticamente a janela de criação quando o ?action=create query param está presente (utilizado pelo botão "Novo" do softphone).

  15. · kamo-internal

    Substituir a extensão Chip com texto em linha ao lado do papel no Interaction Center

  16. · kamo-internal

    Remover campo de extensão manual do telefone; escreva extensão VOIP através do SecurityService em salvar

  17. · SecurityService

    Incluir telefoneExtensão de trabalho na resposta by-department; aceitar telefoneWorkExtension on member PUT

  18. · kamo-shared-library

    Adicionar ************* Ajudantes ao membro da equipa

  19. · kamo-internal

    Fio VAD + push-to-talk; remover configurações não executáveis

    - vadEnabled passou agora como voiceActivityDetection in buildAudioConstraints so o navegador honra a opção ao abrir o microfone para uma chamada - pushToTalk muda automaticamente o microfone na chamada aceita e instala keydown/keyup ouvintes que desmutam enquanto a tecla de atalho configurada é mantida - Configurações removidas que não tinham fiação funcional e não podem ser implementadas através de navegador padrão WebRTC APIs: micGain (sem GainNode em pipeline SIP), highPassFilter, noiseGate, vadThreshold, hdVoice, câmeraBackgroundBlur (requer ML), câmeraBrightness/câmeraContrast (apenas visualização CSS) - Limpeza da interface AVSettings e DEFAULT AV SETTINGS em conformidade; reequilibrar as grades após as remoções

  20. · kamo-internal

    Lista de toques com filtro de pesquisa

    Faça o painel do catálogo do ringtone corresponder à altura da coluna direita e rolagem verticalmente quando a lista transborda, para que os membros possam navegar como mais tons são adicionados. Adiciona um campo de pesquisa que filtra por rótulo ou nome de arquivo, com botão de limpeza e uma mensagem de estado vazio.

  21. · kamo-internal

    Adicione mais sete toques ao catálogo

    Adiciona Corno de batalha, Corno demoníaco, Linha de terra, anel de 1985, telefone de escritório, Telefone antigo tocando, e Olé em /público/sons / toques / e fios eles em RINGTONE CATALOG para que eles apareçam ao lado do existente Opções padrão / Sci-Fi / Buzzer / Silent na subtab toques.

  22. · kamo-internal

    Adicione toques Sci-Fi e Buzzer ao catálogo

    Liberta dois novos activos de toque em /público/sons/ringtones/ e registra-os em RINGTONE CATALOG para que apareçam nos toques subtab e pode ser definido como o tom de softphone de entrada padrão.

  23. · kamo-internal

    Layout de áudio de três colunas, gota salva-banner, largura de preenchimento

    Coloca o áudio subtab para fora como Microfone , alto-falante , avançado através do linha cheia em telas lg+ (md ainda os emparelha duas-up, pilhas xs). A Cartão avançado muda para uma pilha vertical dentro de sua coluna mais estreita. Remove o rodapé "Configurações salvas automaticamente" — o comportamento está implícito e o cartão estava apenas tomando espaço. Seção de ForçasPainel de cartão para largura: 100% e adiciona alinhamentoItens="stretch" para a grade de cada subtab para que as cartas preencham sempre a borda da coluna.

  24. · kamo-internal

    Dividir configurações AV em áudio/vídeo/ringtones subtabs

    Reorganiza a aba Áudio/Vídeo em três subtabs internos e coloca cada um fora horizontalmente para que as configurações se ajustem dentro do viewport sem a parede de rolagem vertical que tínhamos antes. Também fixa o catálogo ringtone para apontar para o real /soms/ringtone.mp3 ativo em vez de caminhos fantasma sob /soons/ringtones/, por isso antevisões e a sessão de softphone sempre- on partilhar um único toque canónico.

  25. · kamo-internal

    Adicionar guia de configurações de áudio / vídeo e fio no softphone

    Adiciona uma loja de preferências AV por dispositivo (localStorage, máquina específica, não roaming) mais um separador completo sobre /sets/member/<id> para configuração e teste de microfone, alto-falante, anel e câmera. A janela da ferramenta de softphone, reprodução de toque e adaptadores SIP SDK agora honra estas configurações ao vivo: roteamento do dispositivo via setSinkId, getUserMedia restrições (dispositivos + taxa EC/NS/AGC/amostra), volume de tom DTMF, Ringer dispositivo + seleção de tom, mudo-on-join, e notificações desktop.

  26. · kamo-internal

    Sempre-em sessão SIP com auto-popup + toque em chamadas de entrada

    O softphone usado para se registar apenas enquanto a janela de contexto estava aberta — Fechem-na e as chamadas foram silenciosamente perdidas. Levantar a sessão para um SoftphoneProvider montado na ferramenta autenticadaWrapper, então SIP REGISTE é mantido continuamente enquanto o operador é assinado e qualquer INVITE de entrada chama a atenção do operador. - app/hooks/useSoftphone.ts: renomear o gancho de implementação para useSoftphoneSession para reforçar que ele deve ser montado exatamente uma vez por sessão (tem as credenciais SIP e o REGISTER). O novo SoftphoneProvider dirige a sessão. gancho uma vez, expõe o estado via contexto, e reage ao hasIncoming Chamada transições — abre a janela da ferramenta do softphone através de uma ferramenta:open custom event (única instance, por isso foca-se apenas se já estiver aberto) com ID de chamada em o título, e toca /sounds/ringtone.mp3 em um loop até o usuário aceita/rejeita/o comando desliga. Uso públicoSoftphone () hook reads do contexto. - Muda a importação para o contexto. Enrole a árvore de ferramentas com SoftphoneProvider para que a sessão viva enquanto o estado de autenticação. cadência NA clássica (440Hz + 480Hz, 2s on, 4s silencio) então audio.loop=true produz um padrão natural de anel/pausa/anel. ~72 KB. Navegadores podem bloquear o play() inicial até que o usuário tenha gesticulado no página; o operador normalmente clicou pelo menos uma vez na hora de uma chamada chega, então isso raramente é um problema na prática.

  27. · KlusterServices

    Seed pbx.k1.kluster.kamocrm.com como um domínio estático

    O softphone do navegador precisa SIP-over-WSS para pousar em um hostname com um real TLS cert. Adicione o administrador FreePBX / WS hostname para Static DOMAINS para o auto- certificado semeador fornece um por- máquina Vamos criptografar certificado para ele incondicionalmente, em vez de confiar nele aparecendo em registros de acesso Traefik. Uma vez emitido o certificado, o caminho temporário internal.kamocrm.com/voip-ws (comprometido anteriormente como uma solução alternativa) pode ser aposentado e o softphone pode use o URL canônico pbx.k1.kluster.kamocrm.com/ws.

  28. · kamo-register

    Usar o nome e descrição curtos da org na cabeça HTML

    Substituir a lógica de título baseada em org-API pelo site config.jsonNameShort para o o título segue o mesmo padrão de outros sites: "Registrar - {siteNameShort}". Adiciona meta tag descrição de config.json. Remove o uso não utilizadoThemeConfig import.

  29. · kamo-login

    Usar o nome e descrição curtos da org na cabeça HTML

    O DynamicMetaLoader agora define document.title para "Login - {siteNameShort}" e escreve a descrição org na tag meta descrição. Layout estático.tsx back updated; os metadados de KamoCRM OG/Twitter foram removidos.

  30. · kamo-internal

    Usar o nome e descrição curtos da org na cabeça HTML

    DynamicMetaLoader agora define document.title para o siteNameShort (foi siteName) e escreve a descrição org na tag meta descrição. Estático layout.tsx fallback atualizado para valores genéricos.

Seu universo está esperando.

Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.

Gratuito para sempre — não é necessário cartão de crédito