Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-internal
Extensión clickable VOIP en Interaction Center abre suave con número prellenado
· VOIPService
Sincronización de TeamMember phoneO-Work extensión de obic de VOIP
· SecurityService
Backfill TeamMember phoneOExtensión de la labor de MemberVoipConfig en startup
· kamo-internal
La llamada de alambre cuenta configurando de extremo a extremo a través de la abstracción del proveedor
- voipApi: añadir CallFeaturesEscribe, getCallFeatures() y setCallFeatures() Llamadas API - useSoftphone: add ************* estado cargado desde API en la puesta en marcha; setCallForward/setAutoLas acciones de respuesta persisten a través de API; la respuesta automática y los efectos de llamada desencadenan en las llamadas entrantes cuando las características están activas - SoftphonePanel: eliminar el estado de la función de llamada solo local; cablear Llamar conmutar y entrada de número al contexto de sucario; alambre de la respuesta de la respuesta alterna al contexto de suavizado; botón de navegar a 'Manage Extended A/V Settings' - La sincronización deslizante de audio ya era funcional a través de usoAVSettings bus de eventos .
· VOIPService
Añadir características de llamada API . . . . . . . . . . . . . . . . . .
- Añadir CallFeaturesDto y SetCallFeaturesSolicor POJOs - Agregar banderas de llamadaParaward/autoAnswer a ProveedoresCapactos - Añadir getCallFeatures/setCallFeatures a la interfaz PhoneProvider - RingCentral: implemente a través de Answering Rules REST API (IncondicioalForwarding) - FreePBX: implemente a través de GraphQL addMexMiva mutación deCallforward - CallFeaturesController: GET/PUT /api/voip/calls/features . DB primaria, sincronización nativa del proveedor
· kamo-shared-library
Añadir MemberCallFeatures entidad y repositorio para preferencias de llamadas y de respuesta automática
· kamo-asterisk-support
Compro inicial - FreePBX grabador de grabación (GO)
Relojes ************* para grabaciones de WAV terminadas, grupos piernas de llamada multi-pieza por Asterisk UNIQUEID, y sube cada lote a APIService /api/voip/registrajes/carga utilizando un VOIP-RECORDING-UPLOADS-scoped Tecla de la API. Los archivos se eliminan del disco sólo después de que la plataforma confirme el almacenamiento. Bootstrap idempotently establece un usuario de AMI a través de gestor.custom.conf y instala MixMonitor() ganchos per-canal a través de extensions.custom.conf, luego pide Asterisk recargar sus módulos de dialplan/gerente. Ambos bloques gestionados están rodeados de banners claramente marcados para que las personalizaciones de administración sobreviven. Incluye Dockerfile, k8s manifiestos para k1m1 y k2m1 (Desployment - ConfigMap Plantilla secreta), *************jo reflejando el resto de la plataforma, y un README.txt no técnico para hosts independientes FreePBX.
· kamo-internal
Alcance de VOIP-RECORDING-UPLOADS - registro de contadores/tunables de tuberías
- APIManager: nueva opción de alcance VOIP-RECORDING-UPLOADS (utilizada por kamo-astorisk-support-support en FreePBX se presenta para subir grabaciones de correo de voz y llamadas a través de APIService). - VoipSmsTab: nueva tarjeta "Recording Pipeline" con cuatro contadores (voicemails a proceso, llamadas a proceso, mensajes de voz en error, llamadas por error) cada 30s, usa ************* nuevo "Regigrando Tarjeta de procesamiento con voipVmBatchSize / voipCallBatchSize / voipPollSeconds atúndos. - systemConfigApi: ampliar la actualización() para enviar los nuevos atúndos; añadir grabaciónStats(). - tipos/teléfono: SystemConfigurationD para obtener los tres nuevos atúnfonos; VoipRecordingStatsDto agregó.
· SecurityService
Estadísticas de grabación de configación del sistema - sintúrbol - sinatúnizas de procesamiento de registro
- GET ************* devuelve los cuatro mostradores expuesto en la configuración de kamo-internal . Plataforma . Configuración . VoIP/SMS pestaña (vmPending, callPending, vmError, callError). - PUT /api/security/system-config ahora acepta voipVmBatchSize, voipCallBatchSize, VoipPollSeconds para los sinatilos procesadores de grabación de DaemonService. - toDto() incluye los nuevos campos para que el frontend pueda leerlos de nuevo.
· DaemonService
RecordingProcessorJob - Ataboto NATS para nuevas subidas
- Nuevo trabajo de Quartz RecordingProcessorJob marca cada minuto, despacha independiente VM y lotes de llamadas simultáneamente a ConversionService **************** Usar **************** voipCallBatchSize como tapas. - Nuevo RecordingReceivedConsumer suscribe to voip.regrabando.acido asunto NATS emitida por ConversionService en nuevas subidas y desencadenante de una carrera inmediata, por lo que una grabación recién puesta en marcha comienza a procesarse en cuestión de segundos en lugar de esperar en la encuesta periódica. - Configmap expone daemon.jobs.regrabandos.cron y **************** que habla.
· ConversionService
Grabación de ingesto de tuberías de procesamiento FFmpeg
- Nuevo **************** estadios de variable subidas multiparte Enviada por APIService en el cubo de MinIO ************* y crea una fila de estadificación sin procesar. Idempotente en los nuevos intentos usando (phoneServerId, asteriskUniqueId). - Nuevo punto de end********** (llamado por DaemonService) hileras: descargas WAVs escenificados, mezcla las piernas de llamada en un solo Opus/WebM master vía FFmpeg amix, transcodifica WAVs por canal como pistas junto a la Maestro y subidas a través de RecordingImagingService con VM-RECORDING (8) / Llamado.RECORDING (9) ImageAssocType. - Nuevo envoltorio de FfmpegService (tracodeToOpusWebm / mixToOpusWebm) con tiempo de espera y limpieza de tempfiles. - Editor NATS emite voip.regrabando.re percibido en cada subida escenificada por lo que DaemonService puede atajar su encuesta periódica. - Dockerfile instala ffmpeg en la etapa de ejecución (a los barcos ffmpeg alpino libopus por defecto). - ConfigMap expone ************* (comprometido de servicio cruzado secreto de llamada interna) para que los nuevos endpoints puedan autenticar APIService y Llamadores de DaemonService.
· APIService
VoipRecordingUploadController para las subidas de apoyo al asterisco de kamo
POST /api/voip/grabación/subir acepta cuerpos multipartes de kamo-asterisk-support en los anfitriones de FreePBX. Valida el X-Api-Key tiene el nuevo VOIP-RECORDING-UPLOADS alcance (re-usando el caché de validación *******************), entonces reenvía la carga útil multiparte de los cabecillas de metadatos (X-Phone-Server-Id, X-Asterisk-Unique-Id, X-Recording-Kind, X-Primary-Extension) a ConversionService ****************
· kamo-shared-library
entidad de puesta en escena sin procesar, pistas de pistas de ImgDat, grabación de servicio de imágenes
- Fix Image ImageAssocType ID colisión de identificación: VM-RECORDING=8, CALL-RECORDING=9 (eran ambas duplicar MIDOCS a los 4). - Añadir ************* para que una grabación maestra pueda llevar Per-channel Opus/WebM pistas junto con el concepto de miniatura existente. - Añadir ImageMimeType.AUDIO-WEBM (audio/webm) para los envases Opus-in-WebM producido por el oleoducto de conversión. - Nuevos registros sin procesar (UUID id, IS-VM, PHONE-SERVER-ID, EXTENSION, ASTERISK.UNIQUE-ID, IS-PROCESSED, IS-ERROR, ERROR-MESSAGE, RESULT-IMG-ID, FECHA-CREATED, FECHA-PROCESSED) entidad de puesta en escena . kamo-asterisk-support - ConversionService - tubería de servicio DaemonService. - Nuevo RecordingImagingService que sube un maestro Opus/WebM master a imagen con pistas por canal Opus/WebM conectadas a través de ImgDat.trackCount. -Configuración del sistema: añadir voipVmBatchSize / voipCallBatchSize / voipPollSeconds para los sinatélatos de procesador de grabación DaemonService.
· kamo-asterisk-support
Compro inicial - FreePBX grabador de grabación (GO)
Relojes ************* para grabaciones de WAV terminadas, grupos piernas de llamada multi-pieza por Asterisk UNIQUEID, y sube cada lote a APIService /api/voip/registrajes/carga utilizando un VOIP-RECORDING-UPLOADS-scoped Tecla de la API. Los archivos se eliminan del disco sólo después de que la plataforma confirme el almacenamiento. Bootstrap idempotently establece un usuario de AMI a través de gestor.custom.conf y instala MixMonitor() ganchos per-canal a través de extensions.custom.conf, luego pide Asterisk recargar sus módulos de dialplan/gerente. Ambos bloques gestionados están rodeados de banners claramente marcados para que las personalizaciones de administración sobreviven. Incluye Dockerfile, k8s manifiestos para k1m1 y k2m1 (Desployment - ConfigMap Plantilla secreta), *************jo reflejando el resto de la plataforma, y un README.txt no técnico para hosts independientes FreePBX.
· kamo-internal
Reemplaza la pestaña de contactos de simulamulada con contactos de Softphone totalmente destituido
Extrae un nuevo SoftphoneContacts componente que conecta los contactos de sucárcel pestaña a la API de contactos reales a través de useContacts(). Reemplaza 4 simulañeros duros contactos con datos en vivo de todos los libros de contacto. Características: - Píldora de filtro de libros y grupos con selectores de entrega - Búsqueda debounida, ordenada por último/primero/todo nombre - Inscripciones de avatar codificados en color (háceo determinista), soporte fotográfico - Lista de contactos con el botón de llamada rápida de vástago de la autopista - Vista de detalle (lista de reemplazos) que muestra teléfonos, correos electrónicos, org, notas - Modo de edición en línea para todos los campos (teléfonos/emails multivalor con add/remove) - Eliminar contacto con paso de confirmación - Esqueleto vacío y cargado de estados esqueletos - "Nuevo contacto" navega a /contactos?action=crear Actualiza contactos/page.tsx para abrir automáticamente el diálogo de creación cuando el ?action=crear consulta param está presente (utilizado por el botón "Nuevo" del teléfono blando).
· kamo-internal
Reemplazar la extensión Chip por texto en línea junto al rol en Centro de Interacción
· kamo-internal
Eliminar el campo de extensión del teléfono manual; escribir extensión VOIP hasta SecurityService en el ahorro
· SecurityService
Incluya la extensión de la fonómetro en la respuesta por departamento; acepte el teléfonoWorkExtensión en el miembro PUT
· kamo-shared-library
Añadir ************* ayudantes a TeamMember
· kamo-internal
Alambre VAD - empuje a hablar; eliminar la configuración inimplementable
- vadHabilitado ahora pasado como vozActividadDetección en buildAudioConstraints el navegador honra el tictillo al abrir el micrófer para una llamada - pushToTalk semuta automáticamente el micrófere en la llamada acepte e instale llavedown/tecla up oyentes que se desmutan mientras se mantiene la tecla de acceso. - Eliminación de los ajustes que no tenían cableado funcional y no se pueden implementar a través de APIs de navegador estándar WebRTC: micGain (no GainNode en la tubería SIP), highPassFilter, noiseGate, vadThreshold, hdVoice, cameraBackgroundBlur (requiere ML), cameraBrightness/cameraContrast (sólo previsualización deCS) - Limpieza de la interfaz AVSettings y DEFAULT-AV-SETTINGS en consecuencia; reequilibrar las rejillas tras las mudaneras
· kamo-internal
Lista de tonos de llamada de desplazamiento con filtro de búsqueda
Haz que el panel de catálogo de ring coin coin con la altura de la columna derecha y el desplazamiento verticalmente cuando la lista se desborda, para que los miembros puedan navegar como más tonos se añaden. Añade un campo de búsqueda que filtra por etiqueta o nombre de archivo, con un botón claro y un mensaje de estado vacío.
· kamo-internal
Añadir siete tonos de llamada más al catálogo
Añade Battleship Horn, Demon Horn, Land Line, 1985 Anillo, Phone de Office, Anillo Teléfono Viejo, y Olé bajo /púbidos/sonidos/inglas/ y alambres en RINGTONE-CATALOG para que aparezcan junto a los existentes Predeterminado / Sci-Fi / Buzzer / Opciones silenciosas en la subtab Ringtones.
· kamo-internal
Añadir Sci-Fi y tonos de llamada Buzzer al catálogo
Deja dos nuevos activos de tono de llamada bajo /púbitos/sonidos/inglas/ y los registra en RINGTONE-CATALOG para que aparezcan en los Ringtones subtab y se puede configurar como el tono de suc teléfono blando por defecto.
· kamo-internal
Disyorado de audio de tres columnas, gota salvada-banner, ancho de llenar
Se encuentra con la subtab de audio como Micrófono . Altavoz . Avanzado al otro lado del fila completa en las pantallas de lgá (md todavía las empareja dos arriba, xs stacks). El Interrupciones de la tarjeta avanzada a una pila vertical dentro de su columna más estrecha. Elijuzga el rastro "Settings guardado automáticamente" pies de la El comportamiento está implícito y la tarjeta estaba ocupando espacio. Fuerzas los paneles de sección de la tarjeta a ancho: 100% y añade alignItems="stretch" a cada subtab's Grid para que las cartas que siempre llenen su columna de borde a borde.
· kamo-internal
Dividir ajustes de AV en subtabs de audio/Video/Ringtones
Reorganiza la pestaña Audio/Video en tres subtabs internos y pones cada uno fuera horizontalmente para que los ajustes encajen dentro del aporte de la vista sin la pared de desplazamiento vertical que teníamos antes. También corrija el catálogo de tono de llamada para apuntar al real /sounds/ringtone.mp3 activo en lugar de caminos fantasmas bajo /sonidos/ tonos/, por lo que las vistas previas y la sesión de softphone siempre encaño compartir un solo tono canónico.
· kamo-internal
Añadir la pestaña Configuración de audio / vídeo y alambre en suave
Añade una tienda de preferencias AV por dispositivo (localStorage, específico de la máquina, no itinerancia) más una pestaña totalmente característica en /settings/member/.id. para Configurar y probar micrófono, altavoz, llamas y cámara. La ventana de la herramienta de suave, la reproducción de tonos de llamada y los adaptadores SIP SDK ahora honorar estos ajustes en vivo: enrutación de dispositivo a través de setSinkId, getUserMedia restricciones (diviceId - EC/NS/AGC/sIAple), volumen de tono DTMF, dispositivo de llamada - selección de tonos, recomión-un-unin y notificaciones de escritorio.
· kamo-internal
Sesión SIP siempre en sesión con auto-popup y tono de llamada de entrada
El subérculo utilizado para registrarse sólo mientras la ventana de la herramienta emergente estaba abierta. Cerca de ella y las llamadas entrantes se perdieron silenciosamente. Levanta la sesión en un SoftphoneProvider montado en AuthenticatedToolWrapper, así que SIP REGISTER is mantenidos continuamente mientras el operador está firmado en y cualquier INVITE entrante llama la atención del operador. - app/ganchos/useSoftphone.ts: renombrar el gancho de implementación a useSoftphoneSession para reforzar que debe montarse exactamente una vez por sesión (spropiácese de las credenciales de SIP y del REGISTER). - ******************* nuevo SoftphoneProvider dirige la sesión Engancha una vez, expone el estado a través de contexto, y reacciona a hasIncomingCall transiciones - estalla la ventana de la herramienta de suave a través de una herramienta: evento personalizado abierto (Single-instance, por lo que sólo se centra si ya abierto) con identificación de llamada en el título, y juega /sounds/ringtone.mp3 en un bucle hasta el usuario acepta/rechaza/el control remoto cuelga. Uso públicoSoftphone() Lee gancho del contexto. - ******************* la importación al contexto. - **************** envolver el árbol de herramientas con SoftphoneProvider para que la sesión viva tanto como el estado de Auth. clásica cadencia NA (440Hz 480Hz, 2s on, 4s silence) por lo que audio.loop=true produce un patrón natural de anillo/pausa/anillo. 72 KB. Los navegadores pueden bloquear la jugada inicial () hasta que el usuario ha señalado en el página; el operador normalmente ha hecho clic al menos una vez para el momento una llamada Llega, así que rara vez se trata de un problema en la práctica.
· KlusterServices
Seed pbx.k1.kluster.kamocrm.com como dominio estático
El suave del navegador necesita SIP-over-WSS para aterrizar en un nombre de host con un real TLS cert. Añadir el administrador de FreePBX / Nombre de host de WS a STATIC-DOMAINS para que el disposición de auto-fecadora un cerdo per-host Vamos a cifrar el certificado para ello incondicionalmente en lugar de confiar en que aparece en los registros de acceso de Traefik. Una vez emitido el certificado, la ruta temporal interna.kamocrm.com/voip-ws (comprometido antes como una solución) se puede retirar y el softphone puede utilizar la URL canonical pbx.k1.kluster.kamocrm.com/ws URL.
· kamo-register
Utilícese nombre corto y descripción en la cabeza HTML
Reemplaza la lógica de título basada en org-API con config.json siteNameShort para el El título sigue el mismo patrón que otros sitios: "Register - .siteNameShort". Añada la meta etiqueta de descripción de config.json. Elijuigue el uso no utilizadoThemeConfig importación.
· kamo-login
Utilícese nombre corto y descripción en la cabeza HTML
DynamicMetaLoader ahora establece documento.título a "Login - .siteNameShort". y escribe la descripción de org en la etiqueta de meta descripción. Static layout.tsx revolvido actualizado; eliminados metadata KamoCRM OG/Twitter.

Tu universo está esperando.
Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.
Gratis para siempre: no se requiere tarjeta de crédito