feat(fax): add fax routing, job tracking, inbox management, and T.38/UDPTL media support

This commit is contained in:
2026-04-20 20:43:42 +00:00
parent 3c010a3b1b
commit d2c18a4ebb
27 changed files with 4247 additions and 280 deletions
+22
View File
@@ -17,6 +17,9 @@ export type {
ICallEndedEvent,
ICallRingingEvent,
IDeviceRegisteredEvent,
IFaxCompletedEvent,
IFaxFailedEvent,
IFaxStartedEvent,
IIncomingCallEvent,
ILegAddedEvent,
ILegRemovedEvent,
@@ -52,6 +55,10 @@ type TProxyCommands = {
params: { number: string; device_id?: string; provider_id?: string };
result: { call_id: string };
};
send_fax: {
params: { number: string; file_path: string; provider_id?: string };
result: { call_id: string; codec: 'PCMU' | 'PCMA' };
};
add_leg: {
params: { call_id: string; number: string; provider_id?: string };
result: { leg_id: string };
@@ -262,6 +269,21 @@ export async function makeCall(number: string, deviceId?: string, providerId?: s
}
}
export async function sendFax(number: string, filePath: string, providerId?: string): Promise<string | null> {
if (!bridge || !initialized) return null;
try {
const result = await sendProxyCommand('send_fax', {
number,
file_path: filePath,
provider_id: providerId,
});
return result.call_id || null;
} catch (error: unknown) {
logFn?.(`[proxy-engine] send_fax error: ${errorMessage(error)}`);
return null;
}
}
/**
* Send a hangup command.
*/