FruxonDocs
ApiFruxon channel

Starts a voice call on a Test lab session.

Resolves the run selection once and pins it for the call, reserves a place under the workspace's call cap, dispatches the voice worker, and returns the room and a short-lived LiveKit token for the browser to join with. Refused codes: `voice_option_unsupported` (400), `voice_session_active` (409), `voice_concurrency_limit` (429), `voice_unavailable` (503).

POST
/v1/tenants/{tenant}/fruxon/sessions/{session}/voiceSessions
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

session*string

The Test lab session id.

tenant*string

The tenant identifier

The call's language and the Test lab run selection.

language?string|null

he or en; null uses English.

revisionPolicy?string

Same as on POST …/turns; resolved once and pinned for the call.

Value in"UNSPECIFIED" | "PUBLISHED" | "DRAFT" | "PROPOSAL"
baseRevision?integer|null
Formatint64
draftVersion?integer|null
Formatint64
recommendationId?string|null
Formatuuid
sandboxRouting?|null
replyStyle?

A test run's choice of reply style instead of the active one: a particular version (a draft under review, say), or none. Honoured only for test runs, so production traffic always gets what an admin activated.

confirmToolCalls?boolean|null

Not supported in a call: confirming a tool call needs a click. True is refused.

[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/fruxon/sessions/string/voiceSessions" \  -H "Content-Type: application/json" \  -d '{}'
{
  "voiceSessionId": "00000000-0000-0000-0000-000000000000",
  "livekitUrl": "string",
  "room": "string",
  "participantToken": "string",
  "maxDurationMs": 0,
  "voice": {
    "source": "string",
    "provider": "string",
    "voiceId": "string",
    "displayName": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty