feat(proxy-engine): add device leg, leg transfer, and leg replacement call controls

This commit is contained in:
2026-04-10 15:12:30 +00:00
parent 7d59361352
commit 45f9b9c15c
7 changed files with 417 additions and 6 deletions

View File

@@ -128,14 +128,19 @@ async function handleRequest(
}
}
// API: add leg to call (device — not yet implemented, needs device-to-call routing).
// API: add a SIP device to a call (mid-call INVITE to desk phone).
if (url.pathname.startsWith('/api/call/') && url.pathname.endsWith('/addleg') && method === 'POST') {
try {
const callId = url.pathname.split('/')[3];
const body = await readJsonBody(req);
if (!body?.deviceId) return sendJson(res, { ok: false, error: 'missing deviceId' }, 400);
// TODO: implement device leg addition (needs SIP INVITE to device).
return sendJson(res, { ok: false, error: 'not yet implemented' }, 501);
const { addDeviceLeg } = await import('./proxybridge.ts');
const legId = await addDeviceLeg(callId, body.deviceId);
if (legId) {
return sendJson(res, { ok: true, legId });
} else {
return sendJson(res, { ok: false, error: 'device not registered or call not found' }, 404);
}
} catch (e: any) {
return sendJson(res, { ok: false, error: e.message }, 400);
}