Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

Cada mejora de la plataforma, a medida que se envía.

  1. · SecurityService

    Soporte Nombre anidado/email/phoneNumbers - dirección de gestión de variables

    - AccountController acepta nombre anidado/email/phoneNumbers JSON en POST/PUT - Dirección inicial en POST crea SHIPPING (y BILLING cuando se usaAsBillingToo set), establece punteros primarios - Añadir 5 direcciones endpoints: GET, POST, PUT, direcciones DELETE; PUT /addresses/-id-primario - Resumen de cuenta/detalla deje de exponer objeto, teléfonoNumbers objeto, envío/distribución de direcciones, punteros primarios - Referencias de campo de notas a nivel de cuenta (las notas de cuentas se eliminó anteriormente)

  2. · kamo-internal

    Historia de la producción - Pestañas Voicemail con herramienta de juego de medios

    Pestaña de la historia (SoftphoneHistoryTab.tsx): - Pergido infinito vía intersecciónOvidor dentro del contenedor de pergíncia del panel - fichas de filtro: Todo / entrada / exteriores / perdido / Grabado - Grabar icono en acciones de hilera cuando el lado de la imagen tiene una fila de grabación - Menú de desbordamiento por fila (Añadir a los contactos) - Haga clic de nuevo a través de dialpad existente Pestudio de correo de voz (SoftphoneVoicemailTab.tsx): - Pergido infinito, fichas de filtro (Todo / Unread / Tiene audio) - Juego por hilera / Llamar de vuelta / Más acciones - Lea de marca automática en el juego - Diálogo de borrar de dos opciones: Archivo (escondiado suave, todos los usuarios) vs De forma permanente borrado (marcado por VOIP-VOICEMAIL-PERMANENT-DELETE derecho; cae de nuevo en estado de discapacidad para los usuarios sin él) - botón Mark-all-read with no-op-wh-en-cero affordance MediaPlayer herramienta popup tool **************** - Audio: depuradora de estilo de forma de onda sintetizada, click-to-se-seek, Replay10/Forward10, tasa de reproducción (0.5x-2x), bucle, volumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Video: contenido de ver, PiP, pantalla completa, mismo depurador - Selector de vía múltiple para grabaciones de llamadas (maestro cada pierna por canal) - Descargar - Dos modos de fuente: grabación de voipApi (llamada/VM) o activo de imagen por imgId - Registrado en herramientas/registro/registro.ts como multi-instancia Garfio y fontaneo: - useSoftphone expone la historia paginada de mensajes de voz (cargarMás, hasMore, isLoading) y acciones de archivo/permanente-borte - voipApi gana buscaRocintas, getRecordingMetadata, archiveVoicemail, paginated getVoicemails - /api/voip proxy pasa cuerpos de audio/vídeo/oto-corrido a través de ************* intacto (sin amortiguación) así que matorral de elementos medios - Nuevos ********** delanteros de DocsService en streaming con Range - VOIP-VOICEMAIL-PERMANENT-DELETE añadido al registro frontend RoleRightType para que compruebes puertas de la UTI de eliminación

  3. · InitializerService

    Corredor de migración para columnas de proveedores de grabación de la creación de archivos VM

    Añade RECORDINGS.provider.instance.id (UUID) y provider.external-id (VARCHAR(64)) más el índice compuesto idx-recordings.provider.lookup utilizado por el variable de gran vista de la pestaña de la pestaña de la pestafa. También añade PHONE-VOICEMAIL.is.archived. date-archived para el nuevo flujo de soft-archive. Confaje cualquier RECORDINGS preexistente / RECORDING-EXTS filas en el mismo pase. Naturalmente idempotente (el predicado solo coincide filas cuyo proveedor-external-id todavía es NULL, que no sucederá una vez que ConversionService esté en la nueva ruta de código). Ordenar 35 después ************* (30) por lo que las tablas de grabación existen antes de la tierra de los ALTERs.

  4. · ConversionService

    Proveedor persistaInstanceId . proveedorExternalId en la grabación en la ingestión

    Los hilos X-Phone-Server-Id y X-Asterisk-Unique-Id (ya en UnprocessedRecording) en los nuevos campos de RecordingMetadata en los nuevos campos de RecordingMetadata para que las filas de llamadas/voicemail en el sistema de imágenes lleven la clave de unión de vuelta a la fila del proveedor de fuentes. Para mensajes de voz el ayudante envía el nombre base de nombre de archivo crudo (por ejemplo, msg0000); desnudamos el prefijo msg y los ceros principales para que la clave almacenada coincidas con lo que el mensaje REST API de FreePBX devuelve como identificador del mensaje.

  5. · DocsService

    Añadir ************* con soporte HTTP Range

    Final de streaming genérico para activos de imágenes de audio/vídeo, utilizado por la herramienta de kamo-internal MediaPlayer. Reutiliza la autorización de ImageService (lo que /download/...) pero se transmite con Acepta-Ranges - Content-Range para que los elementos multimedia puedan fregar sin cargar el archivo completo.

  6. · VOIPService

    Récord de reproducción, archivo de buzón de voz, buzón de voz paginado, enriquecimiento de la historia

    - Nuevo Controller de grabación con búsqueda masiva, audio transmitido por rango para pistas maestras por canal, y metadatos para la ventana de herramientas de los jugadores multimedia - CallController.getCallHistoria / getVoicemails enriqueced cada fila con grabación de imágenesId a través del nuevo RecordingLookupService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - PhoneProvider.getVoicemails ahora toma (memberId, page, size); FreePBX paginates client-side de one, RingCentrol utiliza paging nativa, KamoPBX continúa lanzando NotSupported - endpoint de archivo de Voicemail (soft-hide vía PhoneVoicemail.isArchived) y permanente-borrado por VOIP-VOICEMAIL-PERMANENT-DELETE - godEl bypass activo requiere tanto la elegibilidad de GD como el deshacer activo - PhoneProvider gana getInstanceId() para que los controladores puedan resolver la clave de unión para grabar búsquedas sin una segunda llamada de fábrica

  7. · kamo-shared-library

    Claves de busque de proveedores en Grabado, archivo de correo de voz, streaming de rango MinIO

    - Grabación: añadir providerInstanceId . provider ExternalId for in unirse al proveedor de call-history / filas de buzón de voz de vuelta a activos de imagen - PhoneVoicemail: add es Archived . fechaArchived for soft-hide de los listados de su softphone - RoleRightType: agregue VOIP-VOICEMAIL-PERMANENT-DELETE (puertas destructivas eliminadas; archivo sigue disponible para todos) - MinIOStorageService: add openRange() - RangeStream para que los endpoints de audio/vídeo puedan honrar el rango HTTP - RecordingImagingService: proveedor de hilos id id a través de RecordingMetadata en la fila de grabación en la fila de grabación en ingest

  8. · kamo-internal

    Añadir ficha Historial . Línea del tiempo de auditoría paginada con búsqueda y filtros

    - Historial de plomoPanel: barra de herramientas de filtro pegajosa con búsqueda debobuned, ******* filtros, Mesa MUI con paginación, chips de eventos codificados por color, resolución de nombre miembro para los campos de asignación/cuenta - leadsApi: getLeadHistory() y getLeadHistoryFilters() con todo soporte de consulta-param - Historia de plomoEntrada, Historia del plomoActor, Historia de la HistoriaFieldMeta, LeadHistoryPageResponse, LeadHistoryFiltersRespuestas - Next.js rutas de representación para ******************* y /filtros - LeadViewClient cableado para renderizar LeadHistoryPanel cuando la pestaña Historial es activa

  9. · SecurityService

    Añada GET /-idá/history y /-id-/history/filtros endpoints

    Anoto final de la historia de la pista de plomo pagador, relleno de la presentación de papeles (no N-1). Filtros de devoluciones de endpoint distintos campos usados, todos los campos de registro, actores distintos y todos los tipos de eventos. Todos los endpoints mutantes ahora pasan al miembro que llama como actor a LeadHistoryService para la atribución.

  10. · kamo-shared-library

    Añadir registro de auditoría de la historia de la historia de la dirección de la entidad, registro, servicio, DTO, ganchos de servicio de LeadService

    - Entidad de Historia de Lípula (UUID PK, mosquis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Historia de plomoEventType enum con etiquetas legibles por el ser humano - Historia del plomoFieldRegistry: única fuente de la verdad para campos de plomo rastreados de 55; añadir un campo es una línea - Grabación de LeadFieldDescriptor (llave, etiqueta, categoría, extractor) - LeadHistoryService: snapshot/diff pipeline, ************* paginated-filtered findHistory, distinctFields/Actors for filter dropdowns - Historia de plomoCon ActorDTO anidado; todas las identificaciones largas serializadas como cuerda para CockroachDB JS seguridad de precisión - LeadService: ganchos de historial en la creación, actualización, borrar, asignarLead, assignLeadAccount, unssignLeadAccount

  11. · SecurityService

    Lídelos de alambreService actor que se sigue en LeadController

  12. · kamo-internal

    Añadir la interfaz de usuario de asignación de cuenta de plomo, sistema de divisas, asignar/nuevas páginas de cuenta, configuración de campo de moneda

  13. · SecurityService

    Agregar las variables de asignación de cuentas de plomo, actualización de cuentaContralor para MonedencyType

  14. · kamo-shared-library

    Añadir MonedaType enum, actualizar CountryType con moneda primaria, añadir moneda a Cuenta/Organización, añadir asignación de cuenta de plomo a LeadService

  15. · kamo-internal

    Etiqueta de tipo de miembro dinámico en el título de la página Mi cuenta

    El título ahora dice "Miedo miembro-Team Cuenta" usando la org-configurada etiquetas de comportamiento, cambiando automáticamente una vez que el tipo del miembro se carga.

  16. · kamo-internal

    Move Crear el botón de documento en la barra de herramientas DocManager

    El botón sólo estaba disponible en /doc/manager a través del soporte de acciones. Movié toda la lógica (estado, manejador, DOC-TYPES, menú) en DocManager así aparece en cada instancia incrustada. Simplificada page.tsx a sólo renderManager sin acciones de apoyo.

  17. · kamo-internal

    Mávese dirección de correo en la fila de 3 columnas con información de plomo y contacto primario

  18. · kamo-internal

    Apoyo internacional . CountrySeleccion, LanguageSelect, SubdivisionField en todas las formas

    - Añadir CountrySelect reutilizable (207 países, iconos de la bandera), LanguageSeleccione (26 idiomas, iconos de la bandera), Subdivision Field (estrés del Estado de EE.UU. con banderas; otros países muestran campo de texto etiquetado) - Añadir constantes del país (países.ts, languages.ts, usStates.ts, timezones.ts) - Vista del plomo Pestaña Detalles: edición por tarjeta en el lugar con ************* campos - Forma de creación de plomo: desplegables de todo país/subdivision/zona temporal que sustituyen a listas limitadas en línea - Configuración LabelManager: idioma predeterminado en la Sección 8, CountrySelect-SubdivisionField en la dirección - ContactInfoStep (redwork create wizard): CountrySelect-SubdivisionField reemplazando selecciones limitadas - MyAccountTab: CountrySelect-SubdivisionField sustituyendo campos de texto plano - tipos/leads.ts: añadir campos de país y subdivisión

  19. · kamo-shared-library

    Añadir apoyo internacional - País/subdivision/timezone, Org language, CountryType isProvince

    - CountryType: add PROVINCE-NAMES set, isProvince(), getSubdivisionLabel() - Organización: añádase el idioma (LanguageType) field - Plojo: añadir país (CountryType), subdivisión (String), zona horaria (TimezoneType) campos - **************** agregue país, subdivisión, zonas horarias campos de cuerda - LeadService.createLead: maneje nuevos campos; idioma predeterminado.country de la configuración de org - LeadService.updateLead: maneje nuevos campos - **************** adivinar el lenguaje tocadoKey handler

  20. · kamo-internal

    ASSIGN-LEADS derecha, filtro de agente no asignado opción, limpieza de columnas de cuadrícula

    - Puerta 'Lenas de plomos sin asignar' opción de filtro detrás de ASSIGN-LEADS derecha - 'Todos los plomos' excluye las pistas no asignadas para los miembros sin la derecha - Eliminar Street, Producto, Columnas de la fuente; eliminar desplegaciones de filtros de producto/fuente - Eliminar columna de la empresa; Columna de contacto muestra el nombre de la empresa, se vuelve a la entrada en contacto - Columna de vendedor muestra punta de herramienta con detalle de la fuente de producto - Columnas de fecha dejan el prefijo entre semana, se reducen de 170px a 140px - FechaTimeDisplay: añadir showWeekday prop (falso falso)

  21. · kamo-shared-library

    Añadir ASSIGN-LEADS derecha (ID 137) en la sección CRM

  22. · kamo-internal

    Añadir Assign To field to a Market & Assignment sección en /leads/new

    - Trae a los miembros del equipo activo de **************** en mount - Miembros de grupos por departamento con departamentos y miembros ordenados alfabéticamente - Formatos nombres como "Last, First"; primera opción es "Auto Assign / Nossign" - Campos de sección de reordenamientos: Mercado de plomo, Asignar, Mejor tiempo de Contacto, Vendedor, Producto, Tipo de Prospecto (todos lg=4) - Fixes lideraApi.ts para enviar asignadoTeamMemberId en lugar del campo de Usuario asignado muerto - Añade el equipo miembro de texto al tipo de plomo

  23. · kamo-asterisk-support

    Emit grabadoEn extensión por archivo en el manifiesto de carga

    - Vigilante: cada grabación emitida porlles RecordedAt, derivado de la EPOCH segmento de nuestro administrado **************** nombre de archivo, cayiendo de vuelta a archivo mtime para archivos de buzón de voz / legado. - Grouper: CallBatch ahora rastrea FileExtensions[] (uno por archivo, paralelo a Files[]) y el lote en su conjunto de grabación (empeño de piernas más temprano). Sort key for legs is recordedAt con FinalizedAt as tiebreaker así que el La pierna maestra es determinista. - Uploader: manifiesto ahora incluye grabado de primer nivelEn y por archivo extensión. ConversionService consume ambos para escribir la grabación (fecha-grabada, longitud de ffprobe) y filas de RecordingExt per-leg.

  24. · ConversionService

    Picabladas de grabación de la imagen a la longitud de la falda de ffprobe.

    - ************* ejecuta ffprobe -show-entries format=duración en el maestro Opus/WebM, devuelve ms. 0 = desconocido (no fatal). - **************** ahora: * runs sondaDurationMs en el maestro para obtener la longitud de la grabación; * analiza el manifiesto (enviado por kamo-asterisk-support) para grabadoAt y datos de extensión/canal por archivo, cayándose de nuevo a la fila de puesta en escena fechaCreado y en canal de análisis de cargas útiles más antiguas; * pasa una fecha *****************Grabado, LongMs, participantesExtensiones) a RecordingImagingService para que puede escribir las nuevas filas de grabación.

  25. · kamo-shared-library

    Grabación de entidades de RecordingExt, RecordingImagingService las escribe

    - Nueva entidad de grabación (UUID id, IMG-ID, IS-MASTER, IS-VM, EXTENSION, MIEMBROS-ID, LENGTH, FECHA-RECORDED, FECHA-CREATED [DB-defaulted via .CreationTimestamp]). Una fila por correo de voz terminado o grabación de llamadas subidas a imágenes. - Nueva entidad de RecordingExt (UUID id, RECORDING-ID, EXTENSION, MIEMBROS-ID, IS-MASTER). Una fila por canal que participó en la grabación; la La pierna maestra está abanderada IS-MASTER=true, todas las otras piernas falsas. - ************* ahora toma una RecordingMetadata bundle (phoneServerInstanceId, fechaGrabada, longitudMs, participantesExciprenda) y insiste en la grabación . la misma transacción que la Img/ImgDat. memberId se resuelve por pierna a través de **************** en el instancia VOIP originaria (nula cuando no está asignada).

  26. · kamo-internal

    Actualizar tarjetas de Administración de Plataformas para que coiná con la estructura de pestañas un

    Reemplazar las dos tarjetas ranras (Página independiente página . Configuración) por cinco cartas que se corresponden con las pestañas reales: General, Organizaciones, VOIP & SMS, Sistema Usuario, y Avanzado cada uno enlaza directamente a la correcta ?tab= param.

  27. · kamo-internal

    Dispara de cuadrícula de ancho completo y activar el gatillo de sincronización de la pestaña avanzada

    - Rediseñar la pestaña VOIP y SMS para utilizar la anchura completa de la zona de contenido: lapso de estadísticas de tuberías la fila superior, el procesamiento de la grabación y la Lista Global de Sincronización se sientan uno al lado del otro en una rejilla de dos columnas en el punto de interrupción de lgá - Las tarjetas estadísticas de tuberías muestran conteos en vivo con marcas de marca y error de estado cero codificación de color; actualización automática cada 30s señalada en subtítulo - Tarjeta Global Sync consolida la configuración del horario, última fila de marcas de tiempo sincronizada, y activar manual en un panel; chip activado/pausado en cabecera - Mueve "Force global VOIP sincroniza" de la pestaña Avanzada (duplicado del desencadenante ya presentes en VOIP y SMS); Pestaña avanzada ahora muestra texto de marcador de posición

  28. · kamo-internal

    Fusionar organizaciones en la página de Configuración con tab p tab nav unificado

    - Añadir organizaciones como una pestaña en ************* (General - Organizaciones VOIP & SMS - Usuario del Sistema - Orden Avanzada) - Eliminar **************** portada independiente - Actualizar la administración de plataformas nav en SettingsStatusWindow para enumerar las 5 pestañas como sub-eleparcir puntos apuntando a la configuración?tab=... - Arregar el diseño a través de todas las pestañas: p: .xs:2, sm:3- Relleno para que el contenido ya no se encuentre en paredes de cartas - Mejorar las tarjetas de estadísticas GeneralTab con fondos de iconos y ritmo de tipografía más ajustado - Actualización de Configuración del título/subtítulo para la página unificada

  29. · kamo-marketing

    Añadir el logo Go a BUILT con banner

  30. · kamo-internal

    Surface PHONE-SERVER-ID en la pestaña de información telefónica

    Operadores configurando el apoyo al asterisco de kamo en un anfitrión de FreePBX necesita pegar el Ajustar VoipProviderInstancia UUID en el archivo de configuración del ayudante como FONE-SERVER-ID. Hasta ahora tenían que arrancar por la barra de URL o la la base de datos. Nueva sección "Felen Server ID" en /settings/features/phone/.id. El resumen muestra el UUID en un campo monoespacio solo de lectura con un solo clic botón de copia (CopyableIdField ayudante, también reutilizable para el futuro similar identificadores).

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