Interface IVoiceCallProvider

Core interface for telephony providers.

Implementations wrap provider-specific SDKs (Twilio REST API, Telnyx Call Control v2, Plivo Voice API) and normalize all interactions to this contract.

Example

class TwilioProvider implements IVoiceCallProvider {
readonly name = 'twilio';

async initiateCall(input: InitiateCallInput): Promise<InitiateCallResult> {
const call = await this.client.calls.create({
to: input.toNumber,
from: input.fromNumber,
url: input.webhookUrl,
statusCallback: input.statusCallbackUrl,
});
return { providerCallId: call.sid, success: true };
}
// ...
}
interface IVoiceCallProvider {
    name: VoiceProviderName;
    verifyWebhook(ctx): WebhookVerificationResult;
    parseWebhookEvent(ctx): WebhookParseResult;
    initiateCall(input): Promise<InitiateCallResult>;
    hangupCall(input): Promise<void>;
    playTts?(input): Promise<void>;
    startListening?(input): Promise<void>;
    stopListening?(input): Promise<void>;
}

Implemented by

Methods

Properties

Provider identifier.