Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

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

  1. · kamo-internal

    Utilícese nombre corto y descripción en la cabeza HTML

    DynamicMetaLoader ahora establece documento.título al sitioNameShort (fue siteName) y escribe la descripción de org en la etiqueta de metadescripción. Static layout.tsx fallback actualizado a valores genéricos.

  2. · SecurityService

    Incluir la descripción de org en config.json

    Añadir campo de descripción para construirConfigJson() y pasar org.getDescripción () de writeConfigFiles () por lo que el tema temático config.json lleva el org's descripción para frontends para usar en meta tiquetas HTML.

  3. · kamo-internal

    Lista de tickets de color globo por conexión de chat de requestor

  4. · MediaService

    Añadir solicitud de presencia de buscadores de agentes de la lista de tickets

  5. · kamo-internal

    Añadir incluyen a la empresa para comercializar popup y empresaName para liderar

    Market add/edit emergente (LeadMarketManager): - Control de radio "Marcado de la empresa de tráfico" / "Solo individual" (necesado) - Fallos para desenmascararse en el nuevo mercado; pre-llenos en edición - Validado y enviado como incluidoCompañero en la solicitud de creación/actualización Lleva datagrid (LeadManager): - Columna de la empresa muestra a la empresa para los líderes de la empresa incluidos mercados de la empresa - Muestra "No Especificado" cuando se incluyeCompany=true, pero el nombre está en blanco - Espectáculos para mercados donde se incluyenCompany=false/null - La búsqueda rápida (AG Grid quickFilter) incluye automáticamente los valores de la empresa Crear la forma de plomo (CreateLeadClient): - Regala condicionalmente el campo de texto Nombre de la empresa cuando el mercado incluyeCompany=true - El campo es opcional (máximo 50 chars), conectado a la carga útil a través de leadsApi leadsApi: companyName mapeado a través de crearLead y actualizar solicitudes deLead

  6. · InitializerService

    Añadir las columnas de la compañía y de la empresa

    LeadCompanyColumnRunner (Orden 40) idempotentely añade: - lead-markets.include-company (BOOLEAN, nullable) - rastrea si a Mercado requiere nombre de empresa en pistas - leads.company.name (VARCHAR (50), nulo) - nombre de la empresa de tiendas en el nivel de plomo cuando el mercado ha incluido la empresa=true

  7. · SecurityService

    Expose incluye respuestas de empresa en intake-config y market-config

    Tantos **************** y ************* ahora incluye la bandera de la compañía incluida para que el frontend sepa si mostrar el campo de nombre de la empresa en la creación de plomo.

  8. · kamo-shared-library

    Agrega incluir a la compañía a LeadMarket y compañíaName to Lead

    - La entidad de LeadMarket se incluye.empresa (Boolean, nula) - La entidad principal recibe el nombre de la empresa (String, max 50, nulo) - LeadMarketDTO, CreateLeadMarketRequest, UpdateLeadMarketRequest carry includeCompany - LeadDTO lleva compañíaName y expones incluyenCompañía dentro de MarketInfoDTO - ************* empresa de transporteName - Los cables de LeadMarketService incluyen la empresa en crear/actualización - Empresa de alambres de LeadServiceName en la creación/actualización y la preserva en todas las conversiones de tipo hipotecario

  9. · kamo-internal

    Mostrar ruta tipo de ventas en Añadir el subtítulo principal

    Añadir el tipo de ventas y el sub-Tipo del mercado a la línea "Añadir a" así que la forma refleja las etiquetas utilizadas en la ventana emergente Edit Market en **************** *** . "Añadir a la .Market (Servicio . Hipotectura Residencial) " cuando un sub-tipo es se establece, "Añada a la .Market (Servicio) " cuando sólo se establece un padre, y "Añadir a la .Market" cuando no se establece ningún tipo de venta.

  10. · kamo-internal

    Flote UnificadoApoyando RingCentral . sip.js (FreePBX)

    El gancho de sucidad solía instantizar instantizar el ringcentral-web-phone incondicionalmente, que se lanzó en cualquier forma de credencial de FreePBX porque ese SDK es codificado de Formato de aprovisionamiento WSS de RingCentral. - La nueva interfaz PhoneSdk define una superficie proveedor-agnóstico (inicio, parada, invita, ************* más PhoneSdkSession with ************* - RingCentralPhoneSdk envuelve ringcentral-web-phone, preservando el existente Comportamiento de RC. - SipJsPhoneSdk envolve sorp.js (UserAgent - Registerer - Inviter/Invitation), Conseja audio remoto a través de la conexión negociada por pares, soporta en-dialog re-INVITE para hold/unhold, y se refiere para la transferencia. - crearPhoneSdk elija el adaptador de creds.provider (RING-CENTRAL, FREE-PBX, KAMO-PBX). - useSoftphone ahora conduce el SDK unificado y en superficie el error real del SDK texto en el registroError en lugar del genérico 'Phone SDK falló inicializar la cuerda. - Añade la dependencia de sorp.js.

  11. · VOIPService

    Credenas SIP de WSS conscientes para suavizar navegador

    El endpoint /api/voip/credenciales/credenciales ahora devuelve credenciales un lado del navegador SIP stack puede realmente usar: transporte WSS, dominio público y una URL wsServers. - SipController resuelve el Miembro del miembroVoipConfig, valida VOIP es activados y se asigna una extensión, luego rutas a la específica del miembro instance (no primaria de la org). Devuelve 409s descriptivos cuando el miembro no está configurado en lugar de producir credenciales vacías. - SipInfo gana wsServers para SIP-over-WebSocket; SipCredentialsResultingsResult proveedor para que el frontend elija el adaptador SDK derecho (RingCentral WebPhone vs SIP.js para FreePBX/KamoPBX). - FreePBXProvider deriva el dominio SIP de la base configuradaUrl y Fácil de moda wsServers a wss://-host:8089/ws. Anestesias por insérveza (sipDomain, sipWsServer, sbWsPort, sorbeTransport) lee de configJson soporte de cobertura dividida despliegues donde SIP termina en un nombre de host diferente o Traefik termina TLS en /ws en el puerto 443. - PhoneProviderFactory analiza los nuevos campos y piensos opcionales de configuración de la empresaJson en un registro de SipTransportConfig en FreePBXProvider. - RingCentralProvider etiqueta sus credenciales con proveedor=RING-CENTRAL.

  12. · KlusterServices

    Añadir el transporte WSS WebRTC para teléfonos blandos del navegador

    El asterisco de Asterisco ahora une un transporte webSocket simple en 0.0.0.0:8089 y Traefik termina TLS en ************* (port 443) por lo que kamo-internal puede registrar los suaves del navegador sobre el comodín existente certf. sin manejar certs dentro de la vaina. - configmap-k1m1.yaml: startup.sh escribe pjsip.transports.custom.conf con el Transporte WS y pjsip.endpoint.custom.post.conf con patadas webrtc= síes para las extensiones existentes (8080, 2523), adosadas al transporte WS. - service.yaml: exponer el puerto 8089 (sip-ws) en el freepbx Service para que el nuevo IngressRute puede dirigirlo; la cápsula está en hostNetNet así que estos mapas senjas de el puerto de host de k1m1 8089. - ingressroute-ws.yaml: HostRegexp . PathPrefix(/ws) en prioridad 100 rutas Actualizas WebSocket a freepbx:8089 *sin* la cadena kamo-middlewares esa cadena incluye compresa, que corrompería los marcos SIP-over-WS.

  13. · SecurityService

    Añadir /names endpoint devolviendo el nombre de la identificación para todos los miembros, independientemente de su estado

    El endpoint by-departamento se filtra sólo a TeamMembers activo, pero extensión Las asignaciones podrán hacer referencia a los Miembros o a los miembros inactivos. Uso /nombres para Resolución de identificación en la que la cobertura importa más que el estado de actividad.

  14. · kamo-internal

    Un solo líder Añadir formulario de plomo en /leads/new

    Refactor Añadir Líd de un panel multitab en página en una ruta dedicada en /leads/new para que pueda vincularse directamente. Se aprueba el mercado actual a través de ?marketId= y preseleccionado. Mercado de plomo, vendedor y producto ahora se requieren; el contacto requiere al menos uno de los primeros/úfertos/preferidos nombre y uno de correo electrónico o teléfono. Campos de subtipo hipotecarios y cualquier mercado Campos de forma personalizada marcados esDisplayOnIntake se vuelven en línea. En On éxito, redirecciona a /leads/view/.id.

  15. · SecurityService

    Añadir ************* endpoint

    Devuelve ventasType, sub-Tipo y customForms para un mercado por marketId así el formulario Agregar plomo puede renderizar campos de subtipo y formularios personalizados de admisión sin antes crear una pista.

  16. · kamo-internal

    Añadir la pantalla en Intake toggle, auto-lock when Required enabled

  17. · kamo-internal

    Añadir esDisplayOntake to FormField TypeScript types typesScript types

  18. · kamo-shared-library

    Coerce es DisplayOnIntake=true cuando se requiere=true en Servicio de Formote

  19. · kamo-shared-library

    Añadir esDisplayOnIntake para crear/actualar la solicitud DTOs

  20. · kamo-shared-library

    Expose isDisplayOnIntake en FormFieldDTO

  21. · kamo-shared-library

    Añada la columna IS-DISPLAY-ON-INTAKE a la entidad de FormField

  22. · kamo-internal

    Enlace Nombre asignado a su página de configuración de teléfono

  23. · kamo-internal

    Añadir la visualización de nombres de miembro y unssignar botón a la pestaña extensiones por instancia

  24. · kamo-internal

    Mostrar nombres de miembros y añadir una acción de Unassign a la pestaña extensiones a nivel de org

  25. · kamo-internal

    Configuración VOIP de alambre a los selectores de expansión de proveedor con ejecución de asignación

  26. · kamo-internal

    Añadir DTOs mecanografiados, método de API deseñada y actualizar MembresíaPermisosTab tipos VOIP

  27. · VOIPService

    Añade el endpoint de asignación DELETE a VoipExtensionsController para admin nossign

  28. · VOIPService

    Agrega MemberVoipConfigController para miembro VOIP con asignación de extensión

  29. · kamo-shared-library

    Añadir métodos de consultaMemberId a PhoneExtensionRepository

  30. · kamo-internal

    Buzón activo persista en la consulta de URL params de consulta

    Cambiar los buzones ahora actualiza la URL (?mailboxType, ?mailboxId, buzón) así refrescando el navegador restaura el mismo buzón. MessageBrowser lee ventana.local.search en su uso flojo inicializador de estado para restaurar activeMailbox antes del primer render, y empuja actualizaciones de URL a través de router.replace en cada evento de buzón. FolderSidebar lee el los mismos params de URL después de getAccessibleMailboxes se resuelve para que el desplegable refleja la selección restaurada.

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