Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

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

  1. · kamo-shared-library

    Las entidades de equipo, repositorios y límites (KamoCollab CP01 T4)

    Team (org teams), TeamMembership (org team members, @IdClass Key), TeamRole, TeamRight (tipo a través de RoleRightTypeIdConverter) y TeamCharterItem (team charter items, columna de texto 'texto'), los cinco repositorios con espectro los métodos de la sección 5.2 y JPQL, y TeamLimits (D11). Las tablas son creadas por el DDL aplicado a mano del servicio de seguridad ¿Qué? Pruebas marcan cada columna, nulabilidad y longitud al DDL, analizan cada consulta contra la cartografía real (tipos seleccionados y formas de fila de Objeto[] incluidos), resolver cada buscador derivado, y comprobar el @IdClass; verde en Hibernate 6.5.3 y en la flota 6.2.13.

  2. · SecurityService

    El DDL aplicado a mano para los jefes de departamento y los índices de carga de org-graph, y su prueba de contrato (KamoCollab CP02 T1)

  3. · SecurityService

    El DDL aplicado a mano para los equipos, y su prueba de contrato (KamoCollab CP01 T2)

    ********** is spec §5.1's block verbatim: org teams, org team members, org team roles, org team rights (tipo INT4, único (team id, tipo), master CP-D3) y team charter items. Aplicado por CP01 Tarea 3 antes de que las entidades del equipo nazcan de la biblioteca con forma de kamo. Cp01TeamsDdlContract La prueba marca la forma del archivo como listas fijas (R1-12): CREADOS repetibles solamente; no CHECK, JSON, DROP, UPDATE o DELETE; cada NO NULL column has a DEFAULT except the key and owner columns; the five tables, las únicas y las apariencias, las cascadas, y las columnas exactas de team charter items.

  4. · MediaService

    El DDL para media objs. fuente, que escribió una línea de chat (KamoCollab CP00 T1)

    Una columna VARCHAR(16) nulable, re-runable, sin CHECK y sin backfill; NULL lee como MEMBER. Aplicado a mano por CP00 Task 3. ¿Qué? mantiene el archivo aditivo: cada declaración un ADD COLUMN SI NO EXISTA, no NO NULL sin un DEFAULT, sin CHECK, JSON, DROP o UPDATE.

  5. · SecurityService

    Impersonation and Enter-As write access-log rows (KamoCollab CP00 T9)

    Ambas puertas de impersonación escriben IMPERSONATION STARTED (HIGH) en el objetivo org with logEventSync after every refusal check and before the session is minted; una fila que no puede ser escrito respuestas 503 AUDIT UNAVAILABLE y mentas nada. Enter-As escribe ENTER AS en la org de destino antes de acuñar: MEDIO para la propia membresía (un escrito fallido es un WARN), ALTO como el Usuario del sistema (una escritura fallida es 503, nada menos). La fila nombra el billete la subvención del Usuario del Sistema descansa, nunca la que el cuerpo reclama. Logout of a sesión cuyo SUDO MEMBER ID difiere de su miembroID también escribe IMPERSONATION ENDED (MEDIUM). La puerta cruzada ahora lee el orgID del callador para la fila y respuestas 401 cuando la sesión carece de ella, como la puerta del mismo-org Ya lo hice. New: security/ImpersonationAudit (spec 5.6, D12-D14).

  6. · AIService

    Los breves nombres DEPARTMENT MANAGER como el jefe de su departamento (KamoCollab CP02)

    DEPARTMENT MANAGER ahora se dirige al jefe del departamento (el gráfico de org) departamentoManagerCandidates), así que el breve dice "el jefe de su departamento". CharterCompiler.VERSION no se golpea deliberadamente (CP02 spec D23, ruling CP02-P-5): no hay rutas chárter de producción a DEPARTMENT MANAGER, así que ningún breve almacenado lleva las palabras viejas, y un golpe Recompilaría el informe de cada AI por nada. Sin pins de prueba VERSION (R1-24).

  7. · kamo-shared-library

    MediaObjSource and MediaObj.source, createMessage with a source, findTwoPersonChatSession, and the impersonation/Enter-As access-log events (KamoCollab CP00 T4)

    - MediaObjSource {MEMBER, SYSTEM, SERVICE}; MediaObj.source (STRING, column SOURCE, longitud 16, nulable, sin defecto) y fuenteOrMember(), que lee NULL como MEMBER. - MediaService.createMessage gana una sobrecarga de siete brazos tomando la fuente; 6-argument sobrecarga delegados con null, así que cada llamante existente almacena NULL. - La mitad de la búsqueda. encontrarOrCreateChatSession, extraído; encontrarOrCreateChatSession crea sólo cuando es vacío, por lo que su comportamiento no cambia. - AccessLogEventType apéndices IMPERSONATION STARTED, IMPERSONATION ENDED, ENTER AS. La columna MEDIA OBJS.SOURCE debe existir (CP00 Task 3 DDL) antes de que esto sea empujado.

  8. · kamo-internal

    Correo de voz FreePBX en Ajustes: los campos de interfaz de gestión, cajas de correo de voz compartidas, y un jugador que dice por qué

    SP98 Task 15. - El formulario FreePBX consigue los cuatro campos de contacto Asterisk Manager necesidades (host, port, username, secret). El secreto almacenado nunca se muestra ("(sin cambios)") y se envía sólo cuando se escribe; moviendo el anfitrión pide por él de nuevo y un host vacío apaga el correo de voz, como las reglas del servidor. - La pestaña Voicemail de un servidor telefónico juega cada fila por su propio id: pidió /voicemails/ obtenidosexternalId confiar/audio, que no es id, por lo que ninguna fila jugó allí. Las filas dicen en qué buzón se dejó el mensaje; un servidor FreePBX compartido cajas (mailboxes no Kamo extensión posee, como la línea principal) con quién cada notifica, elegido de los miembros que administran servidores telefónicos. - Ajustes Teléfono Los correos de voz nombran el buzón y marcan los compartidos. - Ambas listas juegan a través de VoicemailAudioPlayer: nada carga hasta jugar, y un mensaje cuyo audio Kamo está saliendo del sistema telefónico lo dice, parece de nuevo cada 20 s y juega una vez que está allí; las otras razones se dicen Claramente, con Try de nuevo. - El ayudante del SIP WebSocket muestra su texto en lugar de su clave (el diccionario valor mantenido неминиминининих etiquetas ICU no podría formatear).

  9. · kamo-asterisk-support

    Voicemail sube su mensaje, y Kamo puede pedir uno que no tenga audio de

    Una carga de correo de voz ahora lleva el propio id del mensaje, el msgNN.txt Asterisk escribe a su lado, como su id único: VOIP FreePBX buzón de voz bajo exactamente ese id, así que los dos pares exactamente en lugar de por tiempo. Una subida por mensaje, desde su copia PCM (msgNNNN.wav). La copia wav49 (.WAV), los saludos (vail, ocupado, saludo, temp) y los archivos tmp de un buzón ya no se suben, por lo que ya no se eliminan de la bobina tampoco: cargarlos solían tomar el saludo de un buzón y dar a cada mensaje un segundo, carga compitiendo. Un mensaje cuyo sidecar no nombre msg id no es subido y se queda donde está. El tirador de la política ahora lleva el buzón de vozAudio: mensajes Kamo no tiene audio y pide (KamoAI SP98). VoicemailAudioSender encuentra cada uno por msg id en su carpetas de correo, toma la mejor copia de la bobina todavía tiene (wav, WAV, gsm, ...), ha Asterisk convertirlo en un WAV en su propio directorio tmp sobre el usuario del administrador de helper (converso del archivo), lo sube bajo el id del mensaje y elimina el archivo temporal. La piscina nunca se cambia. Ids that are not ▪mailboxilo/cantamsg id] se deja caer en el tirón; cada mensaje se intenta una vez por Diez minutos, en el fondo. Versión del agente 2.1.0.

  10. · VOIPService

    Cajas de correo de voz compartidas y audio de voz FreePBX desde el propio mensaje

    Cajas compartidas (SP98-N-2). Un buzón en el PBX que ninguna extensión Kamo es (K1M1's 8100, "KamoCRM Main Line") nunca fue sincronizado. El barrido único AMI sesión ahora también pide VoicemailUsersList una vez que se leen las extensiones, registros cada buzón de correo en el contexto de usuario de FreePBX como caja compartida de un servidor de teléfono (PHONE VOICEMAIL BOX, DDL en docs/sql; INSERT ... en CONFLICT so a second barrer no puede envenenar la transacción), y sincroniza sus mensajes como filas sin extensión. Cada caja tiene una lista de notificación (PHONE VOICEMAIL BOX NOTIFY, nadie por default): un nuevo mensaje eleva VOICEMAIL RECEIVED para esos miembros, abriendo Ajustes Teléfono: Correos de voz. ¿Qué? lista las cajas y reemplaza la lista de una caja (MANAGE VOIP SETTINGS; miembros de la org solamente, al menos 25). Los mensajes de una caja son listados, jugados, marcados leídos y borrado sólo por los miembros que administran servidores de teléfono, en ambas listas de correo de voz. Audio (SP98-N-3). Ajustes juega la subida que nombre el mensaje exactamente (el ayudante envía ahora <mailbox título / identificadomsg id]), luego el emparejamiento del softphone buzón y hora. Con ninguno de los dos, el mensaje en sí se solicita del PBX: VoicemailAudioRequests lo registra en Redis durante diez minutos, la política tira lo lleva como buzón de vozAudio, y el ayudante carga el audio de ese mensaje bajo su propio id. El jugador tiene 404 con una razón: AUDIO REQUESTED, AUDIO NOT SENT (Presentado hace tres minutos, no vino nada), HELPER OFFLINE o AUDIO NOT UPLOADED. El softphone pide los mensajes que no puede emparejar, por lo que su audio llega antes de que alguien aprenda jugar. La lista por servidor ahora da a cada fila su id (el jugador pidió /voicemails/ realizadosexternalId confianza/audio, que no es id, por lo que nunca jugó) y su buzón de correo, y lee las extensiones una vez en lugar de por fila.

  11. · kamo-internal

    Deletreos fonéticos del nombre de la empresa y nombre corto en Información de la empresa (SP94 T7)

    Dos campos opcionales al lado del Nombre de la Compañía y Nombre Corto, cargados y salvado a PUT /api/security/org/{id} como ********************** Una caja en blanco se envía como nula para que una ortografía despejada sea limpiada. Se utilizan sólo para el texto que recibe el motor de habla de AI.

  12. · AIService

    E5 habla el nombre de la org y el nombre corto en las orgs fonéticas del conjunto de org (SP94)

    El modelo de habla es enviado la entrada del callador con cada palabra mención de la nombre de org o nombre corto reemplazado por su ortografía fonética (OrgPhoneticSpeech). La org se lee una vez por solicitud, después de que la solicitud sea validada y antes de la caminar, así que cada candidato es enviado el mismo texto, en ambos caminos del SP96 (a voz de persona o de llamada, y voz de miembro de AI. La tapa de 4096 caracteres y la medida CHARACTERS 1K permanecer en la entrada de la llamada. Una org que no es encontrado, o no se puede leer, se habla como escrito; una lectura fallida es una WARN.

  13. · MCPGatewayService

    Phone call dice claramente cuando la política de la org bloquea un número, y nombres de texto o correo electrónico en su lugar (SP93 T12)

    K6 rechaza un número de guardias de carga de teléfono bloque con 409 BLOCKED BY OUTBOUND POLICY (SP93 T11). phone call ahora lo responde como su propio status, with a clear message and fallback [sms send, mail send] NO VOICE CONSENT, y la auditoría lo registra como DENIED, no ERROR.

  14. · VOIPService

    La política gestionada del PBX lleva la lista de bloques de carga (SP93 T7)

    /internal/voip/pbx-config respuestas bloqueadasPatterns, los guardias del servidor telefónico como Patrones de riesgo ************* for kamo-asterisk-support’s contexto [kamo-toll-fraud-blocked]. Cada guardia contesta una lista vacía. El versión hash cubre la lista también, por lo que se mueve cuando un guardia lo hace (SP93-T7-1).

  15. · SecurityService

    Cap el org de dos ortografías de nombre fonético en la configuración PUT (SP94 T4)

    títuloHonético y títuloChortPhonetic ride PUT /api/security/org/{id} bajo los mismos derechos que el título/títuloShort (propiedad o CONFIGURE SYSTEM, nunca dios-mode solamente). Cada uno tiene 255 caracteres, rechazados con 400 {error, campo} antes cualquier cosa es almacenada, como el nombre del miembroPhonetic es. Ya regresa. la entidad entera, así que ambos aparecen allí sin cambio. ***************** *existe el verdadero Servicio de Organización sobre uno* fila almacenada: el propietario establece ambos, un callador sin la derecha obtiene hoy de 403, 256 caracteres en cualquiera es 400 nombres de campo, 255 se almacena, un PUT nombra uno deja el otro, se aclara null, y el GET lleva ambos (null hasta el set).

  16. · KlusterServices

    La puerta de salida rechaza un número del bloque de guardias de carga (SP93 T9)

    [kamo-outbound-gate] gana un GotoSi en kamo-asterisk-support's managed [kamo-toll-fraud-blocked] lista, entre la línea SP13 AI-transfer y la Adelante, y una rama (bloqueada) que etiqueta OBBLOCK, toca la no disponible y cuelga con la causa 21. Una llamada permitida sin guardia los partidos todavía terminan en el mismo Goto. 911 y 933 nunca llegan a la puerta. ******** *hace la misma edición en la carrera* nodo: una edición vigilada e idempotente del Goto de la puerta después '; sp13:ai-xfer-outbound', negándose con nada escrito cuando ese ancla falta o [kamo-toll-fraud-blocked] todavía no está en la política administrada sección; respalda, recarga el plan de esfera y verifica lo que Asterisk cargado. La fijación es el archivo k1m1 a partir de 2026-10-04.

  17. · VOIPService

    Los guardias de carga del servidor telefónico para el control de vuelo previo de KamoAI (SP93 T6)

    ¿Qué? respuestas {blockInternational, blockPremiumRate, blockHighRiskAreaCodes, blockedPrefixes} para un servidor de teléfono, leído por su id; un servidor que no existe es 404 INSTANCE NOT FOUND. Guarded by InternalAuthFilter like every KamoAI route.

  18. · AIService

    Eliminar el catálogo de voz de alquiler, GET /api/ai/charter/voices (SP96)

    La carta ya no pone una voz: un miembro de AI recuerda uno por modelo de discurso, leer y elegir en ************* El editor de cartas El buscador de voz era el único llamador del catálogo (kamo-internal, SP96 Task 19), así que the endpoint and VoiceCatalogService go, with its test. El /api/ai/charter/** acceso fila se queda para la vista previa. CharterPreviewControllerTest escanea cada controlador del servicio y falla si alguna ruta, un patrón incluido, respuestas /api/ai/charter/voices de nuevo. AiAccesRulesLas mejores muestras /api/ai/charter/preview para la fila de alquiler.

  19. · kamo-shared-library

    Deletreos fonéticos del nombre de la org y nombre corto, para el discurso de la AI (SP94 T3)

    Organización.titlePhonetic / titleShortPhonetic (TITLE PHONETIC, TITLE SHORT PHONETIC, VARCHAR(255), nullable), en el parcheLa lista de permisos de la organización al lado del título/titleShort, y OrgPhoneticSpeech.forSpeech: un puro, sencillo-pass, caso-insensible, todo-palabra swap del org's names for their spellings, longest name first, for AIService's speech API only. Necesidades SP94 El DDL de T2 se aplica en producción antes de que esto se empuje.

  20. · kamo-asterisk-support

    Render la lista de bloques de carga como [kamo-toll-fraud-blocked] (SP93 T8)

    La política de PBX ahora lleva bloqueadosPatterns, la extensión de Asterisk patrones de los guardias opcionales del servidor telefónico. Fetch sólo mantiene un subrayado seguido de dígitos y el N, X, Z y . comodines (en la mayoría de 40), así que nada de la respuesta puede agregar una prioridad, una aplicación o un contexto al plan de marcado. RenderPolicy los escribe como un tercer contexto gestionado al lado las dos listas de permisos; con cada guardia fuera todavía define el contexto con un el patrón no coinciden los dígitos, así que la puerta de salida DIALPLAN EXISTS siempre es segura. Tick rosca la lista a través de PolicyWriter. Aplicar y registrarlo en un cambio. Un Kamo que precede al campo no envía ninguno, lo que no bloquea nada.

  21. · VOIPService

    Las nuevas extensiones comienzan a medida que el sistema de salida del servidor del teléfono dice (SP93 T5)

    Una nueva extensión, una persona o una línea de miembro de AI, ahora comienza a marcar fuera sólo cuando el nuevo servidor telefónicoExtensionsExtensionsOutboundAllowed setting está encendido. - AiVoiceAsignmentWriter.assign lee el ajuste en lugar de la verdad literal. Cada asignación crea una línea, por lo que una fila ya allí (sinc-inserted, o izquierda negada por una línea retirada) lo toma también; claro todavía niega siempre. - ¿Qué? Y... en una fila que crean, leen a la mayoría de una vez una llamada; una bandera de la fila caché, una La elección del administrador, nunca se toca.

  22. · VOIPService

    La política de salida del servidor telefónico en la configuración de voz AI (SP93 T4)

    Vamos, vamos. Llevar SP93 5 campos: nuevosExtensionsOutboundAllowed, blockInternational, blockPremiumRate, blockHighRiskAreaCodes y bloqueadosPrefijos (una lista). Un prefijo personalizado es recortado, blancos caídos y repetidos fusionados; cada debe paso ¿Qué? (1-15 dígitos, nunca 911, 933 o a prefijo de cualquiera), en la mayoría de 25, o el PUT es 400 {campo:blockedPrefixes} y nada está almacenado. Como cualquier otro campo aquí el PUT es un todo reemplazo: una bandera perdida o nula está apagada. Nada almacenado muestra el política fuera. Todavía MANAGE VOIP SETTINGS alone.

  23. · AIService

    Los puntos finales de voz miembros, para leer y elegir la voz de un miembro de AI por modelo de discurso

    SP96 Task 10 (specific §5.5): - ¿Qué? los candidatos TTS del router para la AI (actor AI con el miembro; nunca AiCallRuntime. guardia, así que una AI pausada o retirada leer), los que un adaptador de discurso sirve, modelo preferido primero: E5's walk. Cada uno modelo tiene su voz recordada, decide() la siguiente voz con nada escrito, y las voces compatibles mejor nivel primero; filas en modelos no ofrecidos se enumeran no disponible. - Sí. ¿Un CHOSEN? voz (el callador, el sexo en la selección), entonces el modelo utilizado primero, en uno transacción (MemberVoiceWriter, @Transactional @RetryOnDbConflict, no HTTP). Preferir un modelo sin fila recuerda la primera elección de E5 allí, sin hablar. - ¿Qué? la misma vista, puede cambiar falso, detrás de X-Internal-Auth (InternalCaller). - Lea: MANAGE MEMBERS, MANAGE MEMBER SECURITY, MANAGE AI WORKFORCE, VIEW AI WORKFORCE, o SUPERVISE AI MEMBERS como su supervisor. Cambio: MANAGE AI WORKFORCE, o su supervisor con SUPERVISE AI MEMBERS. Nunca la AI en sí mismo. Refusals MISSING RIGHT, MEMBER NOT FOUND, MODEL NOT AVAILABLE, VOICE NOT OFFERED, VOICE NOT COMPATIBLE, RETIRED. - AiAccesRules: /api/ai/members/** es una ruta miembro; el controlador decide.

  24. · MCPGatewayService

    Una solicitud verificada de alguien que puede aprobar es la aprobación: una fila ON REQUEST, la acción inmediatamente, su resultado en K3b (SP95 T34)

    Cuando la carta pide aprobación y la AI cita una solicitud verificada (onRequestOf), K3 se pregunta con el modo ON REQUEST, el solicitante y la referencia. Una fila APPROVADA permite que la acción funcione a la vez; todavía pasa los límites y la puerta de extensión, y a lo que llegó se reporta en K3b (EXECUTED, o FAILED con su estado y mensaje, antes de que se libere la llave). Un resultado ambiguo se deja a la garrapata, que re-executes bajo la misma llave. K3's NOT AN APPROVER, REQUEST USED and SHADOW, a soft refusal and a SHADOW charter pide a una persona como antes, y la respuesta dice por qué (onRequestOf {acepted:false, reason}). FORBIDDEN todavía se niega, y una acción que no necesita aprobación escribe ninguna fila ON REQUEST. Una carrera seca pide K3 bajo X-Kamo-Dry-Run y no escribe nada. Una nueva aprobación ON REQUEST mantiene la puerta de enlace (modo K4).

  25. · kamo-shared-library

    Política de salida del servidor de teléfono y Política de Llamada de salida (SP93 T3)

    SP93 Task 3 (spec §5.2, D1, D4-D6): - AiVoiceInstanceSettings gana ¿Qué? BLOCK INTERNATIONAL, BLOCK PREMIUM RATE, BLOCK HIGH RISK AREA CODES (boolean, NOT NULL DEFAULT false) and BLOCKED PREFIXES (VARCHAR(500) NO NULL DEFAULT ''), más bloqueadoPrefixList(). - New pure OutboundCallPolicy: the Settings record, the FCC 'One Ring' high-risk NANP códigos de área, los códigos de prima 900/976, isValidPrefix (1-15 dígitos, nunca 911, 933 o un prefijo de cualquiera de los dos), dialPatterns (los patrones de riesgo para [kamo-toll-fraud-blocked], en un orden fijo, cada vez, prefijos almacenados inválidos caídas) y bloques (un patrón renderizado coincide con los dígitos de línea PBX de AI), por lo que los PBX y un control previo de la AI nunca discrepan. Las cinco columnas deben existir (página DDL de la Tareas 2 del SP93) antes de que esto llegue al principio.

  26. · MCPGatewayService

    Una IA puede citar la solicitud que actúa en (onRequestOf), verificada por leerla; la pintura de una carrera dice de dónde vino (SP95 T31)

    Cada escritura de AI que necesite aprobación toma la opción (chat: Secundaria: Secundación de títulos y títulos, tarea: ClaveArtículos, tarea: Segmento/reunión: sobre herramientas/lista. El oleoducto lo saca antes del chequeo del esquema, el planner y el args hash, y RequestVerifier lee la referencia como la AI (D20): una referencia forjada o externa rechaza la llamada (INVALID ARGUMENTOS REQUEST NOT VERIFIED + por qué, la clave liberada); una auténtica que está estancado, no esta carrera o en una carrera externamente manchada es un suave negativa; una verificada va al planificador en el plan predeterminado (ToolPlan.VERIFIED REQUEST). A dry run reports onRequestOf.accepted. Las aprobaciones no cambian hasta la tarea 34. RunTaint gana una fuente: chat lee de un equipo CHAT cuyos autores son todo en el equipo de org taint the run INTERNAL; todo lo demás es EXTERNAL, que solo bloquea una solicitud citada (D22).

  27. · AIService

    El breve dice para qué compañía trabaja la AI, y dice un llamado a un colega (SP95)

    El perfil de la carta SecurityService envía ahora porta orgName, el org's hablado nombre (nombre de caballo, otro nombre, otro nombre legal; SP95 D15). El informe la línea de identidad se cierra con "Trabajas para <orgName título." cuando no es negro, así que no marca se escribe en el breve a mano. orgName es parte del perfil huella dactilar, así que una org renombrada recompila los calzoncillos de sus AI. PLACE INTERNAL CALL (SP95 D1) lee "Llamando colegas" en las aprobaciones y Secciones de escalada; el brazo predeterminado de T1 se mantiene para futuras clases. CharterCompiler.VERSION se mueve a sp95-1, como su propia regla pregunta cuando la redacción cambios, por lo que un informe personal titulado también recoge la nueva etiqueta una vez. Las aprobaciones de CharterSnapshotTest cuentan sigue AiActionClass en lugar de pintar 18: PLACE INTERNAL CALL de colib común hace que sea 19.

  28. · VOIPService

    El archivo DDL para la política de salida del servidor telefónico

    SP93 Task 1. Five NOT NULL DEFAULT columns on AI VOICE INSTANCE SETTINGs: ¿Qué? BLOCK INTERNATIONAL, BLOCK PREMIUM RATE, BLOCK HIGH RISK AREA CODES y BLOCKED PREFIXES, todos predeterminados al actual comportamiento. Sp93DdlContractTest pins the file to spec 5.1 and checks every columna es re-runable, lleva su DEFAULT en su propia cláusula, y que No hay CHECK, JSON o DROP.

  29. · EmailService

    El nuevo nombre de un miembro alcanza el nombre de su buzón de correo (SP95 T35)

    ¿Qué? {previous, current} - Confía en el secreto interno de KamoAI como el buzón de correo electrónico. Los buzones que el miembro tiene como primario cuyo nombre de pantalla está en blanco o todavía el anterior (trimado, caso ignorante) toma el nuevo nombre; un nombre un administrador eligió, y un buzón de correo el miembro sólo comparte, quedarse. Un blanco el nombre actual es 400. Una transacción @RetryOnDbConflict clave por miembro; no llamada del proveedor (KamoMail no guarda nombre de pantalla del lado del servidor).

  30. · kamo-internal

    Llame a sus colegas en la carta, la línea de equipo del servidor telefónico y "Asked for" en una acción que alguien pidió (SP95 T26)

    - Carta: PLACE INTERNAL CALL junto a PLACE CALL; APPROVAL tiene un artículo por clase (19, gobernando SP95-T4-1). - Tarjeta de servidor de teléfono: la línea de equipo (defaultTransferExtension), enviada en cada caja, en blanco como ninguna (V10 reemplaza cada campo). - Aprobaciones: un chip "Asked for" para el modo ON REQUEST en la lista y el detalle; el detalle dice quién pidió y vincula a el chat (abierto en su lugar) o la tarea (/notes?task=). Tipos leídos a través de ********************** (SP95-T26-1).

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