joinConference

View as MarkdownOpen in Claude

Join an ad-hoc audio conference. Conferences support both RELAY and CXML calls with extensive configuration for moderation, recording, and event callbacks.

When all parameters are at their defaults (except name), a simplified form is used internally. Passing any non-default parameter triggers the full object form.

Parameters

name
stringRequired

Conference name. All participants joining the same name are in the same conference.

opts
object

Optional conference configuration.

opts.muted
booleanDefaults to false

Join the conference muted.

opts.beep
"true" | "false" | "onEnter" | "onExit"

Beep configuration for join/leave notifications.

  • "true" — beep on both enter and exit
  • "false" — no beep
  • "onEnter" — beep only when a participant joins
  • "onExit" — beep only when a participant leaves
opts.startOnEnter
booleanDefaults to true

Whether the conference starts when this participant enters. When false, the participant waits until another participant with startOnEnter: true joins.

opts.endOnExit
booleanDefaults to false

Whether the conference ends for all participants when this participant leaves.

opts.waitUrl
string

SWML URL for hold music played while waiting for the conference to start. When omitted, default hold music is used.

opts.maxParticipants
number

Maximum number of participants.

opts.record
stringDefaults to do-not-record

Recording mode.

  • "do-not-record" — do not record the conference
  • "record-from-start" — begin recording as soon as the conference starts
opts.region
string

Conference region for geographic optimization.

opts.trim
stringDefaults to trim-silence

Silence trimming in recordings.

  • "trim-silence" — remove leading and trailing silence from the recording
  • "do-not-trim" — keep silence in the recording as-is
opts.coach
string

SWML Call ID or CXML CallSid of a participant who can coach (whisper to) this participant without other participants hearing.

opts.statusCallbackEvent
string

Space-separated list of events to report.

  • "start" — conference has started
  • "end" — conference has ended
  • "join" — a participant joined
  • "leave" — a participant left
  • "mute" — a participant was muted or unmuted
  • "hold" — a participant was placed on hold or resumed
  • "modify" — conference settings were modified
  • "speaker" — active speaker changed
  • "announcement" — an announcement was played
opts.statusCallback
string

URL to receive conference status event webhooks.

opts.statusCallbackMethod
"GET" | "POST"

HTTP method for status callbacks.

  • "GET" — send status callbacks as GET requests
  • "POST" — send status callbacks as POST requests
opts.recordingStatusCallback
string

URL to receive recording status event webhooks.

opts.recordingStatusCallbackMethod
"GET" | "POST"

HTTP method for recording status callbacks.

  • "GET" — send recording status callbacks as GET requests
  • "POST" — send recording status callbacks as POST requests
opts.recordingStatusCallbackEvent
string

Space-separated list of recording events to report.

  • "in-progress" — recording is currently in progress
  • "completed" — recording has completed
  • "absent" — no recording was produced
opts.result
unknown

Result handling configuration. Pass an object {} for return_value-based switching, or an array [] for conditional switching.

Returns

FunctionResultthis, for chaining.

Examples

Simple Conference

1import { FunctionResult } from '@signalwire/sdk';
2
3const result = new FunctionResult()
4 .joinConference('team-meeting');

Moderated Conference

1import { FunctionResult } from '@signalwire/sdk';
2
3const result = new FunctionResult()
4 .joinConference('team-meeting', {
5 muted: true,
6 record: 'record-from-start',
7 });