Installation

To install the OutRival Voice Call SDK via npm, run the following command:

npm install @outrival/voice-call

Usage

Import the OutRival Voice SDK into your project:

import VoiceCall from "@outrival/voice-call";

Create a new instance of the OutRival Voice Call SDK using your public key or token:

const voiceCall = new VoiceCall({
  publicKey: "YOUR PUBLIC KEY",
  // OR
  token: "TOKEN GENERATED BY API",
});

Voice call start

Initiate the call with a companion:

voiceCall.start({
  companionId: string;            // Required - Companion ID
  userId: string;                 // Optional
  variables: Record<string, any>; // Optional
  metadata: Record<string, any>;  // Optional
});

After initiating the call, microphone permissions will be requested. Once granted, the client will be able to interact with their companion.

Voice call stop

To stop the call with a companion, use the following method:

voiceCall.stop();

Microphone mute

To mute\unmute the microphone use the following method:

// Mute microphone
voiceCall.mute();
// Unmute microphone
voiceCall.unmute();
// Check if the microphone is currently muted
voiceCall.isMuted();

Events

The OutRival Voice Call SDK provides a set of events that you can listen to:

voiceCall.on('speech-start', () => {
  console.log('Speech has started');
});

voiceCall.on('speech-end', () => {
  console.log('Speech has ended');
});

voiceCall.on('call-start', () => {
  console.log('Call has started');
});

voiceCall.on('call-end', () => {
  console.log('Call has stopped');
});

voiceCall.on('volume-level', (volume) => {
  console.log(`Companion volume level: ${volume}`);
});

voiceCall.on('transcript', (message) => {
  console.log(`${message.role === "user" ? "User" : "Companion"} transcript:`);
  console.log(message.transcript);
});

voiceCall.on('function-call', (function) => {
  console.log(`Function ${function.name} was called with arguments ${function.arguments}`);
});

voiceCall.on('error', (e) => {
  console.error(e);
});

Listening to these events will help you track the call progress and user interaction with the companion.