Interface IClientOptions

IClientOptions IClientOptions

Hierarchy

  • IClientOptions

Properties

anonymous_login?: {
    target_id: string;
    target_params?: TargetParams;
    target_type: string;
    target_version_id?: string;
}

anonymous_login login options

Type declaration

  • target_id: string

    The target ID to use for the anonymous login. this is typically the ID of the AI assistant you want to connect to.

  • Optional target_params?: TargetParams

    Optional parameters to pass to the target. These are forwarded to voice-sdk-proxy and mapped to custom headers on the SIP INVITE.

  • target_type: string

    A string indicating the target type, for now only ai_assistant is supported.

  • Optional target_version_id?: string

    The target version ID to use for the anonymous login. This is optional and can be used to specify a particular version of the AI assistant.

callReportInterval?: number

Interval in milliseconds for collecting call statistics. Stats are aggregated over each interval and stored locally until call end.

Default

5000 (5 seconds)
debug?: boolean

Enable debug mode for this client. This will gather WebRTC debugging information.

debugOutput?: "file" | "socket"

Debug output option

enableCallReports?: boolean

Enable automatic call quality reporting to voice-sdk-proxy. When enabled, WebRTC stats are collected periodically during calls and posted to the voice-sdk-proxy /call_report endpoint when the call ends.

Default

true
env?: Environment

Environment to use for the connection. So far this property is only for internal purposes.

forceRelayCandidate?: boolean

Force the use of a relay ICE candidate.

iceServers?: RTCIceServer[]

ICE Servers to use for all calls within the client connection. Overrides the default ones.

keepConnectionAliveOnSocketClose?: boolean

By passing keepConnectionAliveOnSocketClose as true, the SDK will attempt to keep Peer connection alive when the WebSocket connection is closed unexpectedly (e.g. network interruption, device sleep, etc).

login?: string

The username to authenticate with your SIP Connection. login and password will take precedence over login_token for authentication.

login_token?: string

The JSON Web Token (JWT) to authenticate with your SIP Connection. This is the recommended authentication strategy. See how to create one.

mediaPermissionsRecovery?: {
    enabled: boolean;
    onError?: ((error) => void);
    onSuccess?: (() => void);
    timeout: number;
}

Configuration for media permissions recovery on inbound calls. When enabled and the initial getUserMedia call fails while answering, the SDK emits a recoverable telnyx.error event with resume() and reject() callbacks so the app can prompt the user to fix permissions before the call fails.

Recovery is attempted only for inbound calls. If the app calls resume(), the SDK retries getUserMedia. If the app calls reject() or does not respond before timeout, recovery fails and the call is terminated with the usual media error flow.

Type declaration

  • enabled: boolean

    Enable the recovery flow.

  • Optional onError?: ((error) => void)
      • (error): void
      • Called when retry fails, the timeout expires, or the app calls reject().

        Parameters

        • error: Error

        Returns void

  • Optional onSuccess?: (() => void)
      • (): void
      • Called when the retry getUserMedia succeeds after resume().

        Returns void

  • timeout: number

    Maximum time in ms to wait for the app to call resume() or reject(). Recommended max 25000.

Example

import {isMediaRecoveryErrorEvent} from "@telnyx/webrtc"

const client = new TelnyxRTC({
login_token: '...',
mediaPermissionsRecovery: {
enabled: true,
timeout: 20000,
onSuccess: () => console.log('Media recovered'),
onError: (err) => console.error('Recovery failed', err),
},
});

client.on('telnyx.error', (event) => {
if (isMediaRecoveryErrorEvent(event)) {
showPermissionDialog({
onContinue: () => event.resume(),
onCancel: () => event.reject?.(),
});
}
});
mutedMicOnStart?: boolean

Disabled microphone by default when the call starts or adding a new audio source.

password?: string

The password to authenticate with your SIP Connection.

prefetchIceCandidates?: boolean

Enable or disable prefetching ICE candidates. Defaults to true.

region?: string

Region to use for the connection.

ringbackFile?: string

A URL to a wav/mp3 ringback file that will be used when you disable "Generate Ringback Tone" in your SIP Connection.

ringtoneFile?: string

A URL to a wav/mp3 ringtone file.

rtcIp?: string

RTC connection IP address to use instead of the default one. Useful when using a custom signaling server.

rtcPort?: number

RTC connection port to use instead of the default one. Useful when using a custom signaling server.

skipLastVoiceSdkId?: boolean

When reconnecting with a stored voice_sdk_id, append ?skip_last_voice_sdk_id=true to the WebSocket URL so VSP routes the connection to a different b2bua-rtc instance instead of sticky- reconnecting to the same one. Useful when retrying after errors caused by stale state on a specific b2bua-rtc node.

Default

false
trickleIce?: boolean

Enable or disable Trickle ICE.

useCanaryRtcServer?: boolean

Use Telnyx's Canary RTC server