Solución: Presencia de Microsoft Teams no aparece en Outlook (EnableAppearOffline, PersonaMenu)

¿Outlook muestra siempre “Desconocido” o “Sin conexión” aunque en Microsoft Teams aparezcas en línea? A continuación encontrarás una guía completa para restaurar la integración de presencia entre ambas aplicaciones después de migrar de Skype for Business a Teams.

Índice

Resumen del problema

Algunos entornos que han pasado de Skype for Business a Teams detectan que, tras la actualización, el cliente de Outlook (64‑bit) deja de mostrar el estado de presencia. Esto ocurre aun cuando la casilla Register Teams as the chat app for Office está activada y las claves de IM Providers parecen correctas. El resultado es una desconexión visual: no se ve la disponibilidad de los compañeros en los encabezados del correo ni en los campos Para, CC o tarjetas de contacto, lo que afecta la colaboración y los flujos de trabajo rápidos.

Causas frecuentes

  • Versiones de Office desactualizadas. Compilaciones anteriores a 16.0.13901 presentan inconsistencias de presencia.
  • Valores de Registro incompletos. El upgrade a veces omite la clave EnableAppearOffline o borra rutas de IM.
  • Política PersonaMenu inhabilitada. Algunas implementaciones la desactivan para “optimizar” menús contextuales, rompiendo la presencia.
  • GPO/Intune sobrescribiendo claves. Las configuraciones de seguridad pueden revertir cualquier cambio manual tras cada reinicio.
  • Usuarios con Outlook en modo Caché + Exchange Online híbrido. La latencia de autodiscovery impide a Outlook consumir la huella de presencia que ofrece Teams.
  • Add‑ins en conflicto (CRM, VoIP, antivirus). Algunos complementos reemplazan la interfaz MAPI o inyectan DLL que secuestran llamadas COM.

Solución rápida ( TL;DR )

Sigue los pasos 1‑7 de la tabla y comprueba la presencia; si un reinicio de Office y la adición de EnableAppearOffline no bastan, activa la política PersonaMenu. El 90 % de los casos se resuelve con ello.

Paso a paso detallado

PasoAcciónDetalle / Resultado esperado
1ActualizarConfirma que Outlook y Teams estén en la versión más reciente (Outlook: Archivo  > Cuenta  > Opciones de actualización; Teams: Ayuda  > Buscar actualizaciones). Espera la descarga y reinicia las apps.
2Cerrar ambas aplicacionesCierra Outlook y Teams desde el área de notificaciones (clic secundario > Salir) para liberar DLL bloqueadas antes de tocar el Registro.
3Modificar clave IMVe a HKEYCURRENTUSER\Software\Microsoft\Office\16.0\Common\IM
‑ Crea o edita EnableAppearOffline (DWORD) = 1.
‑ Verifica que ShimMode esté en 0, y que ProcessName apunte a Teams.exe.
4Revisar política “PersonaMenu”El caso se resolvió activando una política llamada PersonaMenu:
‑ Localiza la clave (varía: puede estar bajo Policies\Microsoft\Office\16.0\Common\PersonaMenu o en Intune).
‑ Establece Enabled = 1.
5Reiniciar el equipoReinicia Windows para que las DLL carguen de nuevo y se compile el mapa de MAPI/Presence.
6Reparar Office (si persiste)Panel de control > Programas y características > Microsoft Office > Cambiar > Reparar. Elige Reparación en línea para reemplazar archivos dañados.
7Escalar al soporte de Microsoft 365Si nada funciona, abre un ticket en Centro de administración > Soporte > Nueva solicitud de servicio y adjunta un Fiddler SAZ + CollectDiag para revisión de backend.

Comprobaciones adicionales

Validar que Outlook consume Teams como proveedor de presencia

Powershell
Get-ItemProperty "HKCU:\Software\IM Providers" |
Select-Object "(default)", "Teams" | Format-List

Si Teams aparece como Reg_SZ = 1 el enlace está declarado. De lo contrario, añade:

Powershell
New-ItemProperty -Path "HKCU:\Software\IM Providers" -Name "Teams" -PropertyType String -Value "C:\Program Files\Microsoft Teams\current\Teams.exe"

Revisar Session Initiation Protocol (SIP) en Teams

En la barra de búsqueda de Teams escribe /callto. Si devuelve tu SIP URI, Outlook podrá enlazarlo. Si no, restaura la asignación UPN ←→ SIP desde Azure AD Connect.

Detrás de cámaras: ¿qué hace la clave EnableAppearOffline?

Esta clave añade el estado “Aparecer como fuera de línea” y fuerza a Outlook a escuchar los subscriptions events que expone Teams mediante la biblioteca ucsapi.dll. Sin la clave, Outlook descarta la presencia recibida e interpreta cualquier valor desconocido como “Sin información”.

Entender la política PersonaMenu

Introducida con Office 365 versión 2002, PersonaMenu controla el menú contextual que aparece al pasar el mouse sobre un destinatario. Deshabilitarla impide que Outlook dibuje el control WPF que aloja la ficha de contacto, motivo por el cual no se colorea la barra de presencia. Al habilitarla:

  • Se carga el ensamblado Microsoft.Office.Common.UI.PersonaCard.
  • Outlook invoca IPresenceSession :: GetUserStatus y refresca cada 60 s.
  • Se reduce el número de llamadas polling al servicio presence.teams.microsoft.com.

Impacto de GPO e Intune

Muchas organizaciones gestionan Office a través de plantillas ADMX. Si algún GPO establece DisableIMStatus = 1 en HKEYLOCALMACHINE, tendrá prioridad sobre la configuración del usuario. Asegúrate de:

  1. Buscar DisableIMStatus y fijar su valor en 0.
  2. Aplicar un WMI Filter que excluya equipos sin Teams.
  3. Comprobar en Intune que no haya una Settings Catalog contradiciendo los cambios locales.

Diagnóstico avanzado con Fiddler y PerfView

Para un troubleshooting profundo:

  1. Captura tráfico HTTPS mientras abres un nuevo correo; filtra por dominio presence.teams.microsoft.com.
  2. Exporta el archivo .SAZ y busca respuestas HTTP 200 con el cuerpo Availability: xxx.
  3. Abre PerfView, graba 15 s con ETW, filtra provider OfficeIM y confirma que Outlook recibe el evento PresenceChangedEvent.

Script completo de verificación automática

Copia y ejecuta el siguiente script en PowerShell (5.1+). Crea un log CSV con todo lo necesario para enviar a soporte:

Powershell
$log = "$env:USERPROFILE\Desktop\PresenceCheck.csv"
$props = [ordered]@{}
$props.OutlookBuild   = (Get-Item (Get-Process outlook).Path).VersionInfo.ProductVersion
$props.TeamsBuild     = (Get-Item (Get-Process teams).Path).VersionInfo.ProductVersion
$props.EnableAppearOffline = Get-ItemPropertyValue `
  -Path "HKCU:\Software\Microsoft\Office\16.0\Common\IM" -Name "EnableAppearOffline" -ErrorAction SilentlyContinue
$props.PersonaMenu    = Get-ItemPropertyValue `
  -Path "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\PersonaMenu" -Name "Enabled" -ErrorAction SilentlyContinue
$props.IMProvider     = (Get-ItemProperty "HKCU:\Software\IM Providers")."(default)"
[pscustomobject]$props | Export-Csv -Path $log -NoTypeInformation -Encoding UTF8
Write-Host "Log guardado en: $log"

Preguntas frecuentes

  • ¿Funciona con Outlook Web (OWA)? No. OWA consume presencia directamente de Exchange Online, independiente del cliente de escritorio.
  • ¿Puedo forzar a Outlook a refrescar la presencia? Sí. Usa Ctrl+right‑click en el icono de Outlook > Connection Status… > Reconnect.
  • Uso Office 2013. ¿Hay solución? No. Solo Office 2016 (versión 16.x) y superiores soportan el “nuevo modelo de presencia”.
  • ¿Afecta si estoy en Citrix o VDI? Posiblemente. Asegúrate de que Teams esté en modo VDI optimizado; de lo contrario, Outlook no podrá enganchar la API de presencia virtualizada.

Buenas prácticas posteriores

  1. Mantén Semi‑Annual Enterprise Channel con parches acumulativos.
  2. Documenta cada clave de Registro modificada en tu CMDB.
  3. Incluye la verificación de EnableAppearOffline en tu check‑list de incorporación de equipos.
  4. Revisa trimestralmente que tu GPO no haya heredado plantillas antiguas de Skype.

Conclusión

La ausencia de presencia en Outlook tras migrar a Teams suele tener raíces sencillas: una clave de Registro faltante o una política mal configurada. Con la guía anterior puedes restaurar la funcionalidad en cuestión de minutos, reducir tickets de soporte y devolver a los usuarios la visibilidad del estado en tiempo real, vital para coordinar reuniones y responder correos con mayor contexto.

Índice