> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# WebRTCApiProvider

> Provides custom WebRTC API implementations for non-standard environments.

Provides custom WebRTC API implementations for non-standard environments.

Use this when the standard browser WebRTC APIs are not available or need
to be replaced (e.g., Citrix HDX, React Native, Electron).

## **Examples**

```typescript
import { SignalWire, type WebRTCApiProvider } from '@signalwire/js';

const provider: WebRTCApiProvider = {
  RTCPeerConnection: CustomRTCPeerConnection,
  mediaDevices: {
    getUserMedia: (constraints) => customGetUserMedia(constraints),
    enumerateDevices: () => customEnumerateDevices(),
    addEventListener: (type, listener) => { ... },
    removeEventListener: (type, listener) => { ... },
  }
};

const client = new SignalWire(credentialProvider, { webRTCApiProvider: provider });
```

## **Properties**

Custom media device access. Only the methods used by the SDK are required. See [`WebRTCMediaDevices`](/docs/browser-sdk/v4/reference/interfaces/webrtc-media-devices).

Custom RTCPeerConnection constructor.