/** * Abstract base interface for voice call providers. * * Each provider (Telnyx, Twilio, etc.) implements this interface to provide * a consistent API for the call manager. * * Responsibilities: * - Webhook verification and event parsing * - Outbound call initiation and hangup * - Media control (TTS playback, STT listening)
*/
export interface VoiceCallProvider { /** Provider identifier */
readonly name: ProviderName;
/** * Verify webhook signature/HMAC before processing. * Must be called before parseWebhookEvent.
*/
verifyWebhook(ctx: WebhookContext): WebhookVerificationResult;
/** * Parse provider-specific webhook payload into normalized events. * Returns events and optional response to send back to provider.
*/
parseWebhookEvent(ctx: WebhookContext, options?: WebhookParseOptions): ProviderWebhookParseResult;
/** * Initiate an outbound call. * @returns Provider call ID and status
*/
initiateCall(input: InitiateCallInput): Promise<InitiateCallResult>;
/** * Answer an accepted inbound call when the provider requires an explicit * answer command after the initial webhook.
*/
answerCall?: (input: AnswerCallInput) => Promise<void>;
/** * Hang up an active call.
*/
hangupCall(input: HangupCallInput): Promise<void>;
/** * Play TTS audio to the caller. * The provider should handle streaming if supported.
*/
playTts(input: PlayTtsInput): Promise<void>;
/** * Send DTMF digits to an active call.
*/
sendDtmf?: (input: SendDtmfInput) => Promise<void>;
/** * Start listening for user speech (activate STT).
*/
startListening(input: StartListeningInput): Promise<void>;
/** * Stop listening for user speech (deactivate STT).
*/
stopListening(input: StopListeningInput): Promise<void>;
/** * Query provider for current call status. * Used to verify persisted calls are still active on restart. * Must return `isUnknown: true` for transient errors (network, 5xx) * so the caller can keep the call and rely on timer-based fallback.
*/
getCallStatus(input: GetCallStatusInput): Promise<GetCallStatusResult>;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet am 2026-06-05)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.