> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WebRTC JS Call Options

> Reference for ICallOptions in the Telnyx JS Voice SDK — destinationNumber, callerName, callerNumber, audio/video, and call configuration options.

ICallOptions
ICallOptions

## Table of contents

### Properties

* [audio](#audio)
* [callerName](#callername)
* [callerNumber](#callernumber)
* [camId](#camid)
* [clientState](#clientstate)
* [customHeaders](#customheaders)
* [debug](#debug)
* [debugOutput](#debugoutput)
* [destinationNumber](#destinationnumber)
* [forceRelayCandidate](#forcerelaycandidate)
* [iceServers](#iceservers)
* [id](#id)
* [keepConnectionAliveOnSocketClose](#keepconnectionaliveonsocketclose)
* [localElement](#localelement)
* [localStream](#localstream)
* [mediaSettings](#mediasettings)
* [micId](#micid)
* [onNotification](#onnotification)
* [preferred\_codecs](#preferred_codecs)
* [prefetchIceCandidates](#prefetchicecandidates)
* [remoteElement](#remoteelement)
* [remoteStream](#remotestream)
* [speakerId](#speakerid)
* [telnyxCallControlId](#telnyxcallcontrolid)
* [telnyxLegId](#telnyxlegid)
* [telnyxSessionId](#telnyxsessionid)
* [trickleIce](#trickleice)
* [useStereo](#usestereo)
* [video](#video)

## Properties

### audio

• `Optional` **audio**: `boolean` | `MediaTrackConstraints`

Overrides client's default audio constraints. Defaults to `true`

***

### callerName

• `Optional` **callerName**: `string`

Name to use as the caller ID name when dialing out to a destination.

***

### callerNumber

• `Optional` **callerNumber**: `string`

Number to use as the caller ID when dialing out to a destination. A valid phone number is required for dials out to PSTN numbers.

***

### camId

• `Optional` **camId**: `string`

`deviceId` to use as webcam. Overrides the client's default one.

***

### clientState

• `Optional` **clientState**: `string`

Telnyx's Call Control client\_state. Can be used with Connections with Advanced -> Events enabled.
`clientState` string should be base64 encoded.

***

### customHeaders

• `Optional` **customHeaders**: \{ `name`: `string` ; `value`: `string` }\[]

Add custom headers to the INVITE and ANSWER request.

***

### debug

• `Optional` **debug**: `boolean`

Enable debug mode for this call.

***

### debugOutput

• `Optional` **debugOutput**: `"file"` | `"socket"`

Output debug logs to a file.

***

### destinationNumber

• `Optional` **destinationNumber**: `string`

Phone number or SIP URI to dial.

***

### forceRelayCandidate

• `Optional` **forceRelayCandidate**: `boolean`

Force the use of a relay ICE candidate.

***

### iceServers

• `Optional` **iceServers**: `RTCIceServer`\[]

Overrides client's default `iceServers` to use for certain call.

***

### id

• `Optional` **id**: `string`

Custom ID to identify the call. This will be used as the `callID` in place of the UUID generated by the client.

***

### keepConnectionAliveOnSocketClose

• `Optional` **keepConnectionAliveOnSocketClose**: `boolean`

**`Deprecated`**

Use only IClientOptions.keepConnectionAliveOnSocketClose
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).

***

### localElement

• `Optional` **localElement**: `string` | `HTMLMediaElement`

Overrides client's default `localElement`.

***

### localStream

• `Optional` **localStream**: `MediaStream`

If set, the call will use this stream instead of retrieving a new one.

***

### mediaSettings

• `Optional` **mediaSettings**: `Object`

Configures media (audio/video) in a call.

#### Type declaration

| Name                     | Type      |
| :----------------------- | :-------- |
| `sdpASBandwidthKbps?`    | `number`  |
| `useSdpASBandwidthKbps?` | `boolean` |

***

### micId

• `Optional` **micId**: `string`

`deviceId` to use as microphone. Overrides the client's default one.

***

### onNotification

• `Optional` **onNotification**: `Function`

Overrides client's default `telnyx.notification` handler for this call.

***

### preferred\_codecs

• `Optional` **preferred\_codecs**: `RTCRtpCodecCapability`\[]

Preferred codecs for the call.

***

### prefetchIceCandidates

• `Optional` **prefetchIceCandidates**: `boolean`

Enable or disable ICE Candidate Prefetching. Defaults to true.

***

### remoteElement

• `Optional` **remoteElement**: `string` | `HTMLMediaElement`

Overrides client's default `remoteElement`.

***

### remoteStream

• `Optional` **remoteStream**: `MediaStream`

If set, the call will use this stream instead of retrieving a new one.

***

### speakerId

• `Optional` **speakerId**: `string`

`deviceId` to use as speaker. Overrides the client's default one.

***

### telnyxCallControlId

• `Optional` **telnyxCallControlId**: `string`

Telnyx Call Control ID, if using Call Control services.

***

### telnyxLegId

• `Optional` **telnyxLegId**: `string`

Telnyx call leg ID, if using Call Control services.

***

### telnyxSessionId

• `Optional` **telnyxSessionId**: `string`

Telnyx call session ID, if using Call Control services.

***

### trickleIce

• `Optional` **trickleIce**: `boolean`

Enable or disable Trickle ICE.

***

### useStereo

• `Optional` **useStereo**: `boolean`

Uses stereo audio instead of mono.

***

### video

• `Optional` **video**: `boolean`

Overrides client's default video constraints. Defaults to `false`
