Ensure listener personal-mix topology for a conference room

POST https://z.u1v.ru/api/v1/calls/conferences/personal-mix/ensure

Ensure listener-scoped personal-mix topology for an authenticated live conference room.

This endpoint is only available for rooms whose authenticated room contract advertises listener_personal_mix audio topology and participant_local_speaker_gain semantics. It operates on the caller-owned live conference record already exposed through POST /calls/recovery, and it fails closed when the room is unavailable or does not grant the requested topology.

Usage examples

The -u line implements HTTP Basic authentication. See the Authorization header documentation for how to get those credentials for Zulip users and bots.

curl -sSX POST https://z.u1v.ru/api/v1/calls/conferences/personal-mix/ensure \
    -u EMAIL_ADDRESS:API_KEY \
    --data-urlencode owner_user_id=42 \
    --data-urlencode room_id=room-1

Parameters

owner_user_id string required

Example: "42"

Stringified Zulip user ID that owns the authenticated live conference record.


room_id string required

Example: "room-1"

Authenticated conference room identifier.


Response

Return values

  • conferenceTopology: object

    Server-authoritative conferenceTopology details. * roomId: string

    Authenticated conference room identifier.
    
    • audioTopology: string

      PBX audio-mixing topology provisioned for the room. * participantGainSemantic: string

      Gain-control semantic supported by the topology. * participantChannels: (object)[]

      Participant media channels in the conference topology. * participantUserId: string

      Zulip user identifier for the participant.
      
      • channelId: string

        PBX media-channel identifier for the participant. * metadata: object

        Bounded PBX participant-channel metadata. * PBX participant-channel metadata value. * listenerMixes: (object)[]

      Listener-specific media mixes in the conference topology. * listenerUserId: string

      Zulip user identifier for the listener.
      
      • participantTargets: (object)[]

        Participant channels mixed for the listener. * participantUserId: string

        Zulip user identifier for the participant.
        
        • channelId: string

          PBX mix-channel identifier for the participant. * metadata: object

          Bounded PBX participant-target metadata. * PBX participant-target metadata value. * metadata: object

        Bounded PBX listener-mix metadata. * PBX listener-mix metadata value. * metadata: object

      Bounded PBX conference-topology metadata. * PBX conference-topology metadata value.

Example response(s)

Changes: As of Zulip 7.0 (feature level 167), if any parameters sent in the request are not supported by this endpoint, a successful JSON response will include an ignored_parameters_unsupported array.

A typical successful JSON response may look like:

{
    "conferenceTopology": {
        "audioTopology": "listener_personal_mix",
        "listenerMixes": [
            {
                "listenerUserId": "10",
                "participantTargets": [
                    {
                        "channelId": "mix-1-from-2",
                        "participantUserId": "12"
                    }
                ]
            }
        ],
        "participantChannels": [
            {
                "channelId": "PJSIP/hamlet-0001",
                "participantUserId": "10"
            }
        ],
        "participantGainSemantic": "participant_local_speaker_gain",
        "roomId": "room-1"
    },
    "msg": "",
    "result": "success"
}