<MultiPartyCall> element creates or joins a multi-party call (MPC) with advanced features like participant roles, coach mode for supervisors, and individual hold/mute controls.
For simple conference bridges without roles, see Conference.
Basic Usage
Participant Roles
| Role | Description |
|---|---|
Customer | The customer being served |
Agent | Customer service representative |
Supervisor | Can monitor/coach agents (coach mode) |
ai-agent | AI agent connected via WebSocket streaming (see AI Agent Stream Attributes) |
MPC-Level Attributes
These settings apply to the entire multi-party call:| Attribute | Type | Default | Description |
|---|---|---|---|
maxDuration | integer | 14400 | Max MPC duration in seconds (300-28800) |
maxParticipants | integer | 10 | Maximum participants (2-10) |
record | boolean | false | Record the MPC |
recordFileFormat | string | mp3 | Recording format (mp3, wav) |
recordMinMemberCount | integer | 1 | Min members to start recording (1 or 2) |
waitForAgent | boolean | false | When true, the MPC waits for an agent to join before starting. Customer participants hear wait music until an agent arrives |
recordCoachVoice | boolean | - | When true, includes the supervisor/coach voice in the call recording. When false, only agent and customer voices are recorded |
startRecordingAudio | URL | - | URL to fetch XML instructions for audio to play when recording starts |
startRecordingAudioMethod | string | GET | HTTP method for startRecordingAudio URL. Values: GET, POST |
stopRecordingAudio | URL | - | URL to fetch XML instructions for audio to play when recording stops |
stopRecordingAudioMethod | string | GET | HTTP method for stopRecordingAudio URL. Values: GET, POST |
Hold Music
| Attribute | Type | Description |
|---|---|---|
waitMusicUrl | URL | Music for participants waiting for MPC to start |
waitMusicMethod | string | HTTP method for waitMusicUrl |
agentHoldMusicUrl | URL | Music for agents on hold |
agentHoldMusicMethod | string | HTTP method for agent hold music |
customerHoldMusicUrl | URL | Music for customers on hold |
customerHoldMusicMethod | string | HTTP method for customer hold music |
Callbacks
| Attribute | Type | Description |
|---|---|---|
statusCallbackUrl | URL | URL for MPC events |
statusCallbackMethod | string | HTTP method (GET, POST) |
statusCallbackEvents | string | Events to receive (see below) |
recordingCallbackUrl | URL | URL for recording events |
recordingCallbackMethod | string | HTTP method for recording callback |
Participant-Level Attributes
These settings apply to individual participants:| Attribute | Type | Default | Description |
|---|---|---|---|
role | string | required | Agent, Supervisor, or Customer |
mute | boolean | false | Join muted |
hold | boolean | false | Join on hold |
coachMode | boolean | true | Supervisor coach mode (supervisors only) |
stayAlone | boolean | false | Stay if only participant |
startMpcOnEnter | boolean | true | Start MPC when joining |
endMpcOnExit | boolean | false | End MPC when leaving |
Entry/Exit Sounds
| Attribute | Type | Default | Description |
|---|---|---|---|
enterSound | string | beep:1 | Sound on entry: none, beep:1, beep:2, or URL |
enterSoundMethod | string | GET | HTTP method for enterSound URL |
exitSound | string | beep:2 | Sound on exit: none, beep:1, beep:2, or URL |
exitSoundMethod | string | GET | HTTP method for exitSound URL |
Actions
| Attribute | Type | Description |
|---|---|---|
onExitActionUrl | URL | URL called when participant exits |
onExitActionMethod | string | HTTP method (GET, POST) |
relayDTMFInputs | boolean | Transmit DTMF to other participants |
AI Agent Stream Attributes
Whenrole is set to ai-agent, use these attributes to connect an AI agent via WebSocket streaming.
| Attribute | Type | Default | Description |
|---|---|---|---|
aiAgentStreamServiceUrl | URL | - | WebSocket URL for the AI agent audio stream service |
aiAgentStreamContentType | string | audio/x-l16;rate=8000 | Audio content type for the AI agent stream |
aiAgentStreamStatusCallbackUrl | URL | - | URL for receiving AI agent stream status event callbacks |
aiAgentStreamStatusCallbackMethod | string | POST | HTTP method for the AI agent status callback. Values: GET, POST |
aiAgentStreamSamplingRate | string | - | Audio sampling rate for the AI agent stream |
aiAgentStreamExtraHeaders | object | {} | Custom headers sent with the AI agent WebSocket connection |
Examples
Supervisor Coach Mode
Supervisors withcoachMode="true" can hear everyone but only agents hear them (customers cannot):
Supervisor joining:
MPC Recording
Recording Events
MPCRecordingInitiatedMPCRecordingPausedMPCRecordingResumedMPCRecordingCompletedMPCRecordingFailed
On Exit Action
Continue call flow after leaving MPC:Custom Hold Music
Play, Speak, or Wait elements.
Status Callback Events
Configure which events to receive withstatusCallbackEvents:
| Value | Events Included |
|---|---|
mpc-state-changes | MPCInitialized, MPCStart, MPCEnd |
participant-state-changes | ParticipantJoin, ParticipantExit, ParticipantMute, ParticipantUnmute, ParticipantHold, ParticipantUnhold, ParticipantCoachModeStart, ParticipantCoachModeStop |
participant-speak-events | ParticipantSpeakStart, ParticipantSpeakStop |
participant-digit-input-events | ParticipantDigitInput |
add-participant-api-events | AddParticipantByAPIActionInitiated, AddParticipantByAPIActionCompleted |
participant-audio-events | ParticipantAudioStart, ParticipantAudioStop — triggered when audio from a participant starts or stops |
Status Callback Parameters
| Parameter | Description |
|---|---|
EventName | Event that triggered callback |
EventTimestamp | When the event occurred |
MPCUUID | Unique MPC identifier |
MPCName | Friendly MPC name |
MemberID | Participant identifier |
ParticipantRole | Agent, Supervisor, or Customer |
ParticipantCallUUID | Participant’s call UUID |
ParticipantCoachMode | Whether in coach mode |
MPCDuration | Total MPC duration (on end) |
MPCBilledDuration | Billed duration |
MPCBilledAmount | Cost in USD |
On Exit Parameters
| Parameter | Description |
|---|---|
MPCUUID | MPC identifier |
MPCFriendlyName | MPC name |
MemberID | Participant ID |
ParticipantCallUUID | Call UUID |
ParticipantJoinTime | When participant joined |
ParticipantEndTime | When participant left |
ParticipantRole | Participant’s role |
Conference vs Multi-party Call
| Feature | Conference | Multi-party Call |
|---|---|---|
| Max participants | 20 | 10 |
| Participant roles | No | Yes (Agent, Customer, Supervisor, AI Agent) |
| Coach mode | No | Yes |
| Individual hold/mute | No | Yes |
| API control | Limited | Full |
| Use case | Simple meetings | Call centers, support |
Related
- Conference — Simple conference bridge
- Recording — Record calls
- Call Routing — Dial, Redirect, Hangup
- Multi-party Call API — Control MPCs via API