// src/services/voiceDiag/checks/hoteling.js // // Info-only check for the Hoteling feature on the store user's line. // Hoteling lets a "guest" line temporarily associate with a shared // desk phone — if it's turned on for a store user that shouldn't have // it, calls can end up at whatever guest device most recently checked // in, which usually presents as "the phone at the store isn't the // one that rings when we call". No remediation is offered because // the intended state is site-dependent; the operator can flip it via // Control Hub if the current state is wrong. // // Endpoint: GET /v1/people/{personId}/features/hoteling // Scope: spark-admin:people_read // Response shape: { enabled: boolean } const ENDPOINT = (personId) => `people/${personId}/features/hoteling`; export const hotelingCheck = { id: 'hoteling', label: 'Hoteling', requires: ['personId'], scope: 'spark-admin:people_read', async run(ctx) { const data = await ctx.webex.request('GET', ENDPOINT(ctx.personId)); const enabled = !!data?.enabled; if (!enabled) { return { status: 'ok', message: 'Hoteling is disabled (normal for a store line).', details: { enabled }, remediation: null, }; } return { status: 'warn', message: 'Hoteling is ENABLED — this line may be roaming to another desk phone. Verify in Control Hub.', details: { enabled }, remediation: null, }; }, };