import { resolveDialer } from '../../utils/telephony/dialAccess' import { extensionDirectory, stateLabel } from '../../utils/telephony/extensions' /** * Extension directory for the dial popover: PBX devices (with live state) joined * with ERP user names. Only for sessions that may dial. Never throws. */ export default defineEventHandler(async (event) => { const config = useRuntimeConfig() if ((config as any).asterisk?.enabled !== true) return { status: 503, records: [] } const dialer = await resolveDialer(event) if (!dialer?.canDial) return { status: 403, records: [] } try { const list = await extensionDirectory() return { status: 200, mine: dialer.extension, records: list.map((e) => ({ ...e, stateLabel: stateLabel(e.state), isMine: e.ext === dialer.extension })) } } catch (err: any) { console.warn('[dial] extension directory failed:', err?.message || err) return { status: 502, records: [], mine: dialer.extension } } })