fix: return engine call IDs
This commit is contained in:
+7
-7
@@ -13,18 +13,18 @@
|
|||||||
"restartBackground": "pnpm run buildRust && pnpm run bundle; test -f .server.pid && kill $(cat .server.pid) 2>/dev/null; sleep 1; rm -f sip_trace.log proxy.out && nohup tsx ts/sipproxy.ts > proxy.out 2>&1 & echo $! > .server.pid; sleep 2; cat proxy.out"
|
"restartBackground": "pnpm run buildRust && pnpm run bundle; test -f .server.pid && kill $(cat .server.pid) 2>/dev/null; sleep 1; rm -f sip_trace.log proxy.out && nohup tsx ts/sipproxy.ts > proxy.out 2>&1 & echo $! > .server.pid; sleep 2; cat proxy.out"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@design.estate/dees-catalog": "^3.77.0",
|
"@design.estate/dees-catalog": "^3.81.0",
|
||||||
"@design.estate/dees-element": "^2.2.4",
|
"@design.estate/dees-element": "^2.2.4",
|
||||||
"@push.rocks/smartrust": "^1.3.2",
|
"@push.rocks/smartrust": "^1.4.0",
|
||||||
"@push.rocks/smartstate": "^2.3.0",
|
"@push.rocks/smartstate": "^2.3.1",
|
||||||
"tsx": "^4.21.0",
|
"tsx": "^4.21.0",
|
||||||
"ws": "^8.20.0"
|
"ws": "^8.20.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@git.zone/tsbundle": "^2.10.0",
|
"@git.zone/tsbundle": "^2.10.1",
|
||||||
"@git.zone/tsdocker": "^2.2.4",
|
"@git.zone/tsdocker": "^2.2.5",
|
||||||
"@git.zone/tsrust": "^1.3.2",
|
"@git.zone/tsrust": "^1.3.3",
|
||||||
"@git.zone/tswatch": "^3.3.2",
|
"@git.zone/tswatch": "^3.3.3",
|
||||||
"@types/ws": "^8.18.1"
|
"@types/ws": "^8.18.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+521
-701
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -21,7 +21,7 @@ const CONFIG_PATH = path.join(process.cwd(), '.nogit', 'config.json');
|
|||||||
interface IHandleRequestContext {
|
interface IHandleRequestContext {
|
||||||
getStatus: () => unknown;
|
getStatus: () => unknown;
|
||||||
log: (msg: string) => void;
|
log: (msg: string) => void;
|
||||||
onStartCall: (number: string, deviceId?: string, providerId?: string) => { id: string } | null;
|
onStartCall: (number: string, deviceId?: string, providerId?: string) => Promise<{ id: string } | null>;
|
||||||
onHangupCall: (callId: string) => boolean;
|
onHangupCall: (callId: string) => boolean;
|
||||||
onConfigSaved?: () => void | Promise<void>;
|
onConfigSaved?: () => void | Promise<void>;
|
||||||
faxBoxManager?: FaxBoxManager;
|
faxBoxManager?: FaxBoxManager;
|
||||||
@@ -129,7 +129,7 @@ async function handleRequest(
|
|||||||
if (!number || typeof number !== 'string') {
|
if (!number || typeof number !== 'string') {
|
||||||
return sendJson(res, { ok: false, error: 'missing "number" field' }, 400);
|
return sendJson(res, { ok: false, error: 'missing "number" field' }, 400);
|
||||||
}
|
}
|
||||||
const call = onStartCall(number, body?.deviceId, body?.providerId);
|
const call = await onStartCall(number, body?.deviceId, body?.providerId);
|
||||||
if (call) return sendJson(res, { ok: true, callId: call.id });
|
if (call) return sendJson(res, { ok: true, callId: call.id });
|
||||||
return sendJson(res, { ok: false, error: 'call origination failed — provider not registered or no ports available' }, 503);
|
return sendJson(res, { ok: false, error: 'call origination failed — provider not registered or no ports available' }, 503);
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
|
|||||||
+9
-11
@@ -159,18 +159,16 @@ initWebUi({
|
|||||||
port: appConfig.proxy.webUiPort,
|
port: appConfig.proxy.webUiPort,
|
||||||
getStatus,
|
getStatus,
|
||||||
log,
|
log,
|
||||||
onStartCall: (number, deviceId, providerId) => {
|
onStartCall: async (number, deviceId, providerId) => {
|
||||||
log(`[dashboard] start call: ${number} device=${deviceId || 'any'} provider=${providerId || 'auto'}`);
|
log(`[dashboard] start call: ${number} device=${deviceId || 'any'} provider=${providerId || 'auto'}`);
|
||||||
void makeCall(number, deviceId, providerId).then((callId) => {
|
const callId = await makeCall(number, deviceId, providerId);
|
||||||
if (callId) {
|
if (!callId) {
|
||||||
log(`[dashboard] call started: ${callId}`);
|
log(`[dashboard] call failed for ${number}`);
|
||||||
statusStore.noteDashboardCallStarted(callId, number, providerId);
|
return null;
|
||||||
} else {
|
}
|
||||||
log(`[dashboard] call failed for ${number}`);
|
log(`[dashboard] call started: ${callId}`);
|
||||||
}
|
statusStore.noteDashboardCallStarted(callId, number, providerId);
|
||||||
});
|
return { id: callId };
|
||||||
|
|
||||||
return { id: `pending-${Date.now()}` };
|
|
||||||
},
|
},
|
||||||
onHangupCall: (callId) => {
|
onHangupCall: (callId) => {
|
||||||
void hangupCall(callId);
|
void hangupCall(callId);
|
||||||
|
|||||||
Reference in New Issue
Block a user