> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Meeting Session agent stream

> Bidirectional, customer-facing stream for one account-owned, non-terminal
Meeting Session. This is not a provider media or assistant loopback socket.




## AsyncAPI

````yaml openapi/asyncapi/meeting-session-stream/meeting-session-stream.yml meeting-session-stream
id: meeting-session-stream
title: Meeting Session agent stream
description: |
  Bidirectional, customer-facing stream for one account-owned, non-terminal
  Meeting Session. This is not a provider media or assistant loopback socket.
servers:
  - id: meeting-session-stream
    protocol: wss
    host: api.telnyx.com
    bindings:
      - protocol: ws
        version: 0.1.0
        value: {}
        schemaProperties: []
    variables:
      - id: id
        description: Meeting Session identifier substituted into the server pathname.
        defaultValue: mtgsess_550e8400-e29b-41d4-a716-446655440000
        allowedValues: []
        examples:
          - mtgsess_550e8400-e29b-41d4-a716-446655440000
address: /v2/meeting_sessions/{id}/stream
parameters:
  - id: id
    jsonSchema:
      type: string
      description: Identifier of the Meeting Session owned by the authenticated account.
      examples:
        - mtgsess_550e8400-e29b-41d4-a716-446655440000
    description: Identifier of the Meeting Session owned by the authenticated account.
    type: string
    required: true
    deprecated: false
bindings:
  - protocol: ws
    version: 0.1.0
    value:
      headers:
        type: object
        required:
          - Authorization
        properties:
          Authorization:
            type: string
            description: >
              Telnyx API v2 key using the `Bearer` scheme (the production
              gateway

              requires the exact `Bearer` capitalization), exactly one ASCII
              space,

              and a non-empty token containing no ASCII control or whitespace

              character (U+0000 through U+0020), comma, or DEL (U+007F).

              Example uses a fake value: `Bearer KEY_FAKE_EXAMPLE_ONLY`.
            pattern: ^Bearer [^\x00-\x20,\x7F]+$
            examples: &ref_0
              - Bearer KEY_FAKE_EXAMPLE_ONLY
      query:
        type: object
        additionalProperties: false
        properties:
          after_seq:
            type: number
            default: 0
            description: |
              Event-store cursor. Catch-up returns stored events whose top-level
              `seq` is greater than this value. Missing or non-finite values are
              treated as `0`.
          after_transcript_seq:
            type: number
            default: 0
            description: >
              Transcript-store cursor. Catch-up returns transcript segments
              whose

              `seq` is greater than this value. Missing or non-finite values are

              treated as `0`.
    schemaProperties:
      - name: headers
        type: object
        required: false
        properties:
          - name: Authorization
            type: string
            description: >
              Telnyx API v2 key using the `Bearer` scheme (the production
              gateway

              requires the exact `Bearer` capitalization), exactly one ASCII
              space,

              and a non-empty token containing no ASCII control or whitespace

              character (U+0000 through U+0020), comma, or DEL (U+007F).

              Example uses a fake value: `Bearer KEY_FAKE_EXAMPLE_ONLY`.
            examples: *ref_0
            required: true
      - name: query
        type: object
        required: false
        properties:
          - name: after_seq
            type: number
            description: |
              Event-store cursor. Catch-up returns stored events whose top-level
              `seq` is greater than this value. Missing or non-finite values are
              treated as `0`.
            required: false
          - name: after_transcript_seq
            type: number
            description: >
              Transcript-store cursor. Catch-up returns transcript segments
              whose

              `seq` is greater than this value. Missing or non-finite values are

              treated as `0`.
            required: false
operations:
  - &ref_24
    id: receiveAgentCommands
    title: Receive agent commands
    description: >
      The server receives strict JSON commands in text frames. Commands execute
      one

      at a time in arrival order. The connection permits eight pending commands
      in

      total, including the command currently executing.
    type: receive
    messages:
      - &ref_26
        id: clientSpeak
        contentType: application/json
        payload:
          - name: Speak command
            description: >
              Synthesizes `text` and plays it into the meeting. Set `interrupt`
              to stop

              current speech before playing the new utterance. No success
              acknowledgement

              is sent.
            type: object
            properties:
              - name: action
                type: string
                description: speak
                required: true
              - name: text
                type: string
                description: Text to synthesize and play into the meeting.
                required: true
              - name: voice
                type: string
                description: Optional text-to-speech voice identifier.
                required: false
              - name: interrupt
                type: boolean
                description: Whether to stop current speech before playing this utterance.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - action
            - text
          properties:
            action:
              type: string
              const: speak
              x-parser-schema-id: <anonymous-schema-2>
            text:
              type: string
              minLength: 1
              maxLength: 4000
              description: Text to synthesize and play into the meeting.
              x-parser-schema-id: <anonymous-schema-3>
            voice:
              type: string
              minLength: 1
              maxLength: 100
              description: Optional text-to-speech voice identifier.
              x-parser-schema-id: <anonymous-schema-4>
            interrupt:
              type: boolean
              description: Whether to stop current speech before playing this utterance.
              x-parser-schema-id: <anonymous-schema-5>
          x-parser-schema-id: SpeakCommand
        title: Speak command
        description: >
          Synthesizes `text` and plays it into the meeting. Set `interrupt` to
          stop

          current speech before playing the new utterance. No success
          acknowledgement

          is sent.
        example: |-
          {
            "action": "speak",
            "text": "Welcome to the meeting.",
            "voice": "Telnyx.KokoroTTS.af_heart",
            "interrupt": true
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: clientSpeak
      - &ref_27
        id: clientStopSpeaking
        contentType: application/json
        payload:
          - name: Stop speaking command
            description: Stops audio currently being spoken by the meeting bot.
            type: object
            properties:
              - name: action
                type: string
                description: stop_speaking
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - action
          properties:
            action:
              type: string
              const: stop_speaking
              x-parser-schema-id: <anonymous-schema-6>
          x-parser-schema-id: StopSpeakingCommand
        title: Stop speaking command
        description: Stops audio currently being spoken by the meeting bot.
        example: |-
          {
            "action": "stop_speaking"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: clientStopSpeaking
      - &ref_28
        id: clientSendChat
        contentType: application/json
        payload:
          - name: Send chat command
            description: Sends a text chat message into the meeting.
            type: object
            properties:
              - name: action
                type: string
                description: send_chat
                required: true
              - name: text
                type: string
                description: Chat text to send into the meeting.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - action
            - text
          properties:
            action:
              type: string
              const: send_chat
              x-parser-schema-id: <anonymous-schema-7>
            text:
              type: string
              minLength: 1
              maxLength: 4000
              description: Chat text to send into the meeting.
              x-parser-schema-id: <anonymous-schema-8>
          x-parser-schema-id: SendChatCommand
        title: Send chat command
        description: Sends a text chat message into the meeting.
        example: |-
          {
            "action": "send_chat",
            "text": "The notes will be shared after the meeting."
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: clientSendChat
    bindings: []
    extensions: &ref_23
      - id: x-parser-unique-object-id
        value: meeting-session-stream
  - &ref_25
    id: sendSessionFrames
    title: Send Meeting Session frames
    description: |
      The server sends catch-up and live events, replayed transcript segments,
      truncation markers, and application errors as JSON text frames. Upgrade
      failures are HTTP responses and are not included in this operation.
    type: send
    messages:
      - &ref_29
        id: serverCatchUpEvent
        contentType: application/json
        payload:
          - name: Catch-up event frame
            description: >
              Durable event replayed from the event store after connection.
              Unlike a live

              event frame, this shape always contains the stored top-level
              `seq`.
            type: object
            properties:
              - name: kind
                type: string
                description: event
                required: true
              - name: seq
                type: integer
                description: Durable store sequence number.
                required: true
              - name: type
                type: string
                description: >
                  Meeting Session event type. `KnownEventType` enumerates the
                  currently

                  documented customer-visible values. The unrestricted string
                  branch is an

                  explicit forward-compatible fallback: consumers must ignore or
                  generically

                  handle values they do not recognize.
                required: true
              - name: payload
                type: object
                description: >
                  Event-specific object. For a known `type`, use its typed
                  payload schema in

                  `KnownEventPayload`. `ForwardCompatibleEventPayload`
                  deliberately also

                  accepts any object, so clients and validators remain
                  compatible when the

                  service adds an event type or payload shape. Because that
                  fallback overlaps

                  the fixed known schemas, this composition uses `anyOf`, not
                  `oneOf`.
                required: true
              - name: occurred_at
                type: string
                description: >-
                  ISO 8601 time at which the event or transcript segment
                  occurred.
                required: true
        headers: []
        jsonPayloadSchema:
          allOf:
            - &ref_19
              type: object
              description: >
                Binds each currently known event type to its exact payload
                schema while

                leaving unknown future event types subject only to the generic
                event payload

                object schema on the containing frame.
              allOf:
                - if:
                    required:
                      - type
                    properties:
                      type:
                        enum:
                          - participant.join
                          - participant.leave
                          - participant.speech_on
                          - participant.speech_off
                    x-parser-schema-id: <anonymous-schema-61>
                  then:
                    properties:
                      payload: &ref_4
                        type: object
                        additionalProperties: false
                        required:
                          - participant
                          - relative_ts
                        properties:
                          participant: &ref_1
                            type: object
                            additionalProperties: false
                            required:
                              - id
                              - name
                              - is_host
                            properties:
                              id:
                                description: >-
                                  Provider participant identifier; providers can
                                  supply a number or string.
                                oneOf:
                                  - type: number
                                    x-parser-schema-id: <anonymous-schema-12>
                                  - type: string
                                    x-parser-schema-id: <anonymous-schema-13>
                                x-parser-schema-id: <anonymous-schema-11>
                              name:
                                description: >-
                                  Participant display name, or null when the
                                  provider did not supply one.
                                oneOf:
                                  - type: string
                                    x-parser-schema-id: <anonymous-schema-15>
                                  - type: 'null'
                                    x-parser-schema-id: <anonymous-schema-16>
                                x-parser-schema-id: <anonymous-schema-14>
                              is_host:
                                type: boolean
                                description: >-
                                  Whether the provider identified this
                                  participant as the meeting host.
                                x-parser-schema-id: <anonymous-schema-17>
                            x-parser-schema-id: EventParticipant
                          relative_ts: &ref_2
                            description: >-
                              Seconds from meeting start, or null when
                              unavailable.
                            oneOf:
                              - type: number
                                x-parser-schema-id: <anonymous-schema-18>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-19>
                            x-parser-schema-id: NullableRelativeTimestamp
                        x-parser-schema-id: ParticipantEventPayload
                    x-parser-schema-id: <anonymous-schema-62>
                  x-parser-schema-id: <anonymous-schema-60>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: chat.message
                    x-parser-schema-id: <anonymous-schema-64>
                  then:
                    properties:
                      payload: &ref_5
                        type: object
                        additionalProperties: false
                        required:
                          - participant
                          - text
                          - to
                          - relative_ts
                        properties:
                          participant: *ref_1
                          text:
                            type: string
                            x-parser-schema-id: <anonymous-schema-20>
                          to:
                            description: >-
                              Provider chat recipient, or null when no recipient
                              was supplied.
                            oneOf:
                              - type: string
                                x-parser-schema-id: <anonymous-schema-22>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-23>
                            x-parser-schema-id: <anonymous-schema-21>
                          relative_ts: *ref_2
                        x-parser-schema-id: ChatMessageEventPayload
                    x-parser-schema-id: <anonymous-schema-65>
                  x-parser-schema-id: <anonymous-schema-63>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: transcript.segment
                    x-parser-schema-id: <anonymous-schema-67>
                  then:
                    properties:
                      payload: &ref_6
                        type: object
                        additionalProperties: false
                        required:
                          - seq
                          - text
                          - confidence
                          - speaker_label
                          - relative_ts
                        properties:
                          seq:
                            allOf:
                              - &ref_3
                                type: integer
                                minimum: 1
                                description: Durable store sequence number.
                                x-parser-schema-id: SequenceNumber
                            description: >-
                              Durable transcript-store sequence number embedded
                              in the live event payload.
                            x-parser-schema-id: <anonymous-schema-24>
                          text:
                            type: string
                            description: Final transcript text stored for the segment.
                            x-parser-schema-id: <anonymous-schema-25>
                          confidence:
                            description: >-
                              STT confidence from 0 through 1, or null when
                              unavailable.
                            oneOf:
                              - type: number
                                minimum: 0
                                maximum: 1
                                x-parser-schema-id: <anonymous-schema-27>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-28>
                            x-parser-schema-id: <anonymous-schema-26>
                          speaker_label:
                            description: >-
                              Active-speaker approximation of the participant
                              display name, or null if no speaker was known.
                            oneOf:
                              - type: string
                                x-parser-schema-id: <anonymous-schema-30>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-31>
                            x-parser-schema-id: <anonymous-schema-29>
                          relative_ts: *ref_2
                        x-parser-schema-id: TranscriptSegmentEventPayload
                    x-parser-schema-id: <anonymous-schema-68>
                  x-parser-schema-id: <anonymous-schema-66>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: session.created
                    x-parser-schema-id: <anonymous-schema-70>
                  then:
                    properties:
                      payload: &ref_7
                        type: object
                        additionalProperties: false
                        required:
                          - status
                        properties:
                          status:
                            type: string
                            description: >-
                              Initial status assigned when the session is
                              created or a scheduled bot is adopted.
                            enum:
                              - scheduled
                              - joining
                            x-parser-schema-id: <anonymous-schema-32>
                        x-parser-schema-id: SessionCreatedEventPayload
                    x-parser-schema-id: <anonymous-schema-71>
                  x-parser-schema-id: <anonymous-schema-69>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: session.status_changed
                    x-parser-schema-id: <anonymous-schema-73>
                  then:
                    properties:
                      payload: &ref_8
                        type: object
                        additionalProperties: false
                        required:
                          - status
                          - status_detail
                          - recording
                        properties:
                          status:
                            type: string
                            enum:
                              - scheduled
                              - joining
                              - waiting_for_admission
                              - active
                              - leaving
                              - ended
                              - failed
                              - admission_denied
                            x-parser-schema-id: MeetingSessionStatus
                          status_detail:
                            description: >-
                              Provider or service lifecycle detail, or null when
                              no detail is available.
                            oneOf:
                              - type: string
                                x-parser-schema-id: <anonymous-schema-34>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-35>
                            x-parser-schema-id: <anonymous-schema-33>
                          recording:
                            type: boolean
                            description: >-
                              Whether the session is recording at this lifecycle
                              edge.
                            x-parser-schema-id: <anonymous-schema-36>
                        x-parser-schema-id: SessionStatusChangedEventPayload
                    x-parser-schema-id: <anonymous-schema-74>
                  x-parser-schema-id: <anonymous-schema-72>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: bot.speak_requested
                    x-parser-schema-id: <anonymous-schema-76>
                  then:
                    properties:
                      payload: &ref_9
                        type: object
                        additionalProperties: false
                        required:
                          - text
                          - voice
                          - interrupt
                        properties:
                          text:
                            type: string
                            description: Text requested for synthesis and playback.
                            x-parser-schema-id: <anonymous-schema-37>
                          voice:
                            description: >-
                              Effective voice identifier used for speech,
                              including the session default when the action
                              omits voice, or null when the service default was
                              used.
                            oneOf:
                              - type: string
                                x-parser-schema-id: <anonymous-schema-39>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-40>
                            x-parser-schema-id: <anonymous-schema-38>
                          interrupt:
                            type: boolean
                            description: >-
                              Whether playback was requested after stopping
                              current speech.
                            x-parser-schema-id: <anonymous-schema-41>
                        x-parser-schema-id: BotSpeakRequestedEventPayload
                    x-parser-schema-id: <anonymous-schema-77>
                  x-parser-schema-id: <anonymous-schema-75>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        enum:
                          - bot.speak_stopped
                          - avatar.disconnected
                    x-parser-schema-id: <anonymous-schema-79>
                  then:
                    properties:
                      payload: &ref_10
                        type: object
                        description: >-
                          Empty object sent by events that have no
                          event-specific fields.
                        additionalProperties: false
                        x-parser-schema-id: EmptyEventPayload
                    x-parser-schema-id: <anonymous-schema-80>
                  x-parser-schema-id: <anonymous-schema-78>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: bot.speak_on_enter_delivered
                    x-parser-schema-id: <anonymous-schema-82>
                  then:
                    properties:
                      payload: &ref_11
                        type: object
                        additionalProperties: false
                        required:
                          - text
                          - voice
                        properties:
                          text:
                            type: string
                            description: >-
                              The configured `speak_on_enter` text that was
                              delivered.
                            x-parser-schema-id: <anonymous-schema-42>
                          voice:
                            description: >-
                              Configured voice identifier, or null when the
                              default voice was used.
                            oneOf:
                              - type: string
                                x-parser-schema-id: <anonymous-schema-44>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-45>
                            x-parser-schema-id: <anonymous-schema-43>
                        x-parser-schema-id: BotSpeakOnEnterDeliveredEventPayload
                    x-parser-schema-id: <anonymous-schema-83>
                  x-parser-schema-id: <anonymous-schema-81>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: chat.sent
                    x-parser-schema-id: <anonymous-schema-85>
                  then:
                    properties:
                      payload: &ref_12
                        type: object
                        additionalProperties: false
                        required:
                          - text
                        properties:
                          text:
                            type: string
                            description: Chat text sent into the meeting.
                            x-parser-schema-id: <anonymous-schema-46>
                        x-parser-schema-id: ChatSentEventPayload
                    x-parser-schema-id: <anonymous-schema-86>
                  x-parser-schema-id: <anonymous-schema-84>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: recording.available
                    x-parser-schema-id: <anonymous-schema-88>
                  then:
                    properties:
                      payload: &ref_13
                        type: object
                        additionalProperties: false
                        required:
                          - recording_types
                        properties:
                          recording_types:
                            type: array
                            description: >-
                              Provider recording artifact types; empty when
                              lookup failed or returned none.
                            items:
                              type: string
                              x-parser-schema-id: <anonymous-schema-48>
                            x-parser-schema-id: <anonymous-schema-47>
                        x-parser-schema-id: RecordingAvailableEventPayload
                    x-parser-schema-id: <anonymous-schema-89>
                  x-parser-schema-id: <anonymous-schema-87>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: transcript.completed
                    x-parser-schema-id: <anonymous-schema-91>
                  then:
                    properties:
                      payload: &ref_14
                        type: object
                        additionalProperties: false
                        required:
                          - segment_count
                          - last_seq
                          - ended_at
                        properties:
                          segment_count:
                            type: integer
                            minimum: 0
                            maximum: 10000
                            description: >-
                              Number of transcript segments observed during
                              finalization, capped at 10,000.
                            x-parser-schema-id: <anonymous-schema-49>
                          last_seq:
                            description: >-
                              Last observed transcript sequence number, or null
                              for an empty transcript.
                            oneOf:
                              - *ref_3
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-51>
                            x-parser-schema-id: <anonymous-schema-50>
                          ended_at:
                            description: >-
                              Session end time as an ISO 8601 string, or null
                              when unavailable.
                            oneOf:
                              - type: string
                                format: date-time
                                x-parser-schema-id: <anonymous-schema-53>
                              - type: 'null'
                                x-parser-schema-id: <anonymous-schema-54>
                            x-parser-schema-id: <anonymous-schema-52>
                        x-parser-schema-id: TranscriptCompletedEventPayload
                    x-parser-schema-id: <anonymous-schema-92>
                  x-parser-schema-id: <anonymous-schema-90>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: avatar.connected
                    x-parser-schema-id: <anonymous-schema-94>
                  then:
                    properties:
                      payload: &ref_15
                        type: object
                        additionalProperties: false
                        required:
                          - reason
                        properties:
                          reason:
                            type: 'null'
                            description: >-
                              Connected avatar status messages carry a null
                              reason.
                            x-parser-schema-id: <anonymous-schema-55>
                        x-parser-schema-id: AvatarConnectedEventPayload
                    x-parser-schema-id: <anonymous-schema-95>
                  x-parser-schema-id: <anonymous-schema-93>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        const: avatar.degraded
                    x-parser-schema-id: <anonymous-schema-97>
                  then:
                    properties:
                      payload: &ref_16
                        type: object
                        additionalProperties: false
                        required:
                          - reason
                        properties:
                          reason:
                            type: string
                            enum:
                              - video_autoplay_blocked_muted
                              - anam_connect_failed
                              - speech_processing_failed
                              - avatar_frame_timeout
                            x-parser-schema-id: <anonymous-schema-56>
                        x-parser-schema-id: AvatarDegradedEventPayload
                    x-parser-schema-id: <anonymous-schema-98>
                  x-parser-schema-id: <anonymous-schema-96>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        enum:
                          - assistant.starting
                          - assistant.connected
                          - assistant.failed
                          - assistant.ended
                    x-parser-schema-id: <anonymous-schema-100>
                  then:
                    properties:
                      payload: &ref_17
                        type: object
                        additionalProperties: false
                        properties:
                          reason:
                            type: string
                            minLength: 1
                            description: >
                              State detail supplied by the Assistant loopback
                              lifecycle. The producer

                              includes this field only when the reason string is
                              truthy; in particular,

                              `assistant.failed` may contain a reason but can
                              also carry an empty object

                              when no reason was supplied.
                            x-parser-schema-id: <anonymous-schema-57>
                        x-parser-schema-id: AssistantStateEventPayload
                    x-parser-schema-id: <anonymous-schema-101>
                  x-parser-schema-id: <anonymous-schema-99>
                - if:
                    required:
                      - type
                    properties:
                      type:
                        enum:
                          - artifact.completed
                          - artifact.failed
                    x-parser-schema-id: <anonymous-schema-103>
                  then:
                    properties:
                      payload: &ref_18
                        type: object
                        additionalProperties: false
                        required:
                          - artifact_id
                          - type
                        properties:
                          artifact_id:
                            type: string
                            description: Identifier of the completed or failed artifact.
                            x-parser-schema-id: <anonymous-schema-58>
                          type:
                            type: string
                            enum:
                              - summary
                              - action_items
                            x-parser-schema-id: <anonymous-schema-59>
                        x-parser-schema-id: ArtifactEventPayload
                    x-parser-schema-id: <anonymous-schema-104>
                  x-parser-schema-id: <anonymous-schema-102>
              x-parser-schema-id: EventTypePayloadConstraints
          type: object
          additionalProperties: false
          required:
            - kind
            - seq
            - type
            - payload
            - occurred_at
          properties:
            kind:
              type: string
              const: event
              x-parser-schema-id: <anonymous-schema-9>
            seq: *ref_3
            type: &ref_20
              description: >
                Meeting Session event type. `KnownEventType` enumerates the
                currently

                documented customer-visible values. The unrestricted string
                branch is an

                explicit forward-compatible fallback: consumers must ignore or
                generically

                handle values they do not recognize.
              anyOf:
                - type: string
                  description: >
                    Currently known customer-visible Meeting Session event
                    types. The internal

                    `avatar.speak` and `avatar.interrupt` page-control values
                    use a separate

                    avatar pseudo-channel and are not emitted by this stream.
                  enum:
                    - participant.join
                    - participant.leave
                    - participant.speech_on
                    - participant.speech_off
                    - chat.message
                    - transcript.segment
                    - session.created
                    - session.status_changed
                    - bot.speak_requested
                    - bot.speak_stopped
                    - bot.speak_on_enter_delivered
                    - chat.sent
                    - recording.available
                    - transcript.completed
                    - avatar.connected
                    - avatar.degraded
                    - avatar.disconnected
                    - assistant.starting
                    - assistant.connected
                    - assistant.failed
                    - assistant.ended
                    - artifact.completed
                    - artifact.failed
                  x-parser-schema-id: KnownEventType
                - type: string
                  description: >-
                    A future Meeting Session event type not yet listed in this
                    specification.
                  x-parser-schema-id: <anonymous-schema-10>
              x-parser-schema-id: EventType
            payload: &ref_21
              type: object
              description: >
                Event-specific object. For a known `type`, use its typed payload
                schema in

                `KnownEventPayload`. `ForwardCompatibleEventPayload`
                deliberately also

                accepts any object, so clients and validators remain compatible
                when the

                service adds an event type or payload shape. Because that
                fallback overlaps

                the fixed known schemas, this composition uses `anyOf`, not
                `oneOf`.
              anyOf:
                - description: >
                    Typed payloads for known events. The event-to-schema mapping
                    is:


                    - `participant.join`, `participant.leave`,
                    `participant.speech_on`, and
                      `participant.speech_off`: `ParticipantEventPayload`
                    - `chat.message`: `ChatMessageEventPayload`

                    - `transcript.segment`: `TranscriptSegmentEventPayload`

                    - `session.created`: `SessionCreatedEventPayload`

                    - `session.status_changed`:
                    `SessionStatusChangedEventPayload`

                    - `bot.speak_requested`: `BotSpeakRequestedEventPayload`

                    - `bot.speak_stopped`: `EmptyEventPayload`

                    - `bot.speak_on_enter_delivered`:
                    `BotSpeakOnEnterDeliveredEventPayload`

                    - `chat.sent`: `ChatSentEventPayload`

                    - `recording.available`: `RecordingAvailableEventPayload`

                    - `transcript.completed`: `TranscriptCompletedEventPayload`

                    - `avatar.connected`: `AvatarConnectedEventPayload`

                    - `avatar.degraded`: `AvatarDegradedEventPayload`

                    - `avatar.disconnected`: `EmptyEventPayload`

                    - `assistant.starting`, `assistant.connected`,
                    `assistant.failed`, and
                      `assistant.ended`: `AssistantStateEventPayload`
                    - `artifact.completed` and `artifact.failed`:
                    `ArtifactEventPayload`
                  anyOf:
                    - *ref_4
                    - *ref_5
                    - *ref_6
                    - *ref_7
                    - *ref_8
                    - *ref_9
                    - *ref_10
                    - *ref_11
                    - *ref_12
                    - *ref_13
                    - *ref_14
                    - *ref_15
                    - *ref_16
                    - *ref_17
                    - *ref_18
                  x-parser-schema-id: KnownEventPayload
                - type: object
                  description: >
                    Generic fallback for future event types and payload
                    revisions. Consumers

                    must tolerate fields and object shapes not listed among the
                    known payloads.
                  additionalProperties: true
                  x-parser-schema-id: ForwardCompatibleEventPayload
              x-parser-schema-id: EventPayload
            occurred_at: &ref_22
              type: string
              format: date-time
              description: ISO 8601 time at which the event or transcript segment occurred.
              x-parser-schema-id: OccurredAt
          x-parser-schema-id: CatchUpEventFrame
        title: Catch-up event frame
        description: >
          Durable event replayed from the event store after connection. Unlike a
          live

          event frame, this shape always contains the stored top-level `seq`.
        example: |-
          {
            "kind": "event",
            "seq": 42,
            "type": "session.status_changed",
            "payload": {
              "status": "active",
              "status_detail": null,
              "recording": false
            },
            "occurred_at": "2026-07-30T15:04:05.000Z"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: serverCatchUpEvent
      - &ref_30
        id: serverLiveEvent
        contentType: application/json
        payload:
          - name: Live event frame
            description: >
              Best-effort live bus event. The server adds `kind: event` and
              spreads the bus

              envelope. The top-level `seq` is optional and is normally absent.
              The example

              shows a live transcript event; its payload embeds the durable
              transcript

              sequence number even though the frame has no top-level event-store
              sequence.
            type: object
            properties:
              - name: kind
                type: string
                description: event
                required: true
              - name: seq
                type: integer
                description: >-
                  Optional top-level sequence supplied by the live bus envelope.
                  It may be absent.
                required: false
              - name: type
                type: string
                description: >
                  Meeting Session event type. `KnownEventType` enumerates the
                  currently

                  documented customer-visible values. The unrestricted string
                  branch is an

                  explicit forward-compatible fallback: consumers must ignore or
                  generically

                  handle values they do not recognize.
                required: true
              - name: payload
                type: object
                description: >
                  Event-specific object. For a known `type`, use its typed
                  payload schema in

                  `KnownEventPayload`. `ForwardCompatibleEventPayload`
                  deliberately also

                  accepts any object, so clients and validators remain
                  compatible when the

                  service adds an event type or payload shape. Because that
                  fallback overlaps

                  the fixed known schemas, this composition uses `anyOf`, not
                  `oneOf`.
                required: true
              - name: occurred_at
                type: string
                description: >-
                  ISO 8601 time at which the event or transcript segment
                  occurred.
                required: true
        headers: []
        jsonPayloadSchema:
          allOf:
            - *ref_19
          type: object
          additionalProperties: false
          required:
            - kind
            - type
            - payload
            - occurred_at
          properties:
            kind:
              type: string
              const: event
              x-parser-schema-id: <anonymous-schema-105>
            seq:
              allOf:
                - *ref_3
              description: >-
                Optional top-level sequence supplied by the live bus envelope.
                It may be absent.
              x-parser-schema-id: <anonymous-schema-106>
            type: *ref_20
            payload: *ref_21
            occurred_at: *ref_22
          x-parser-schema-id: LiveEventFrame
        title: Live event frame
        description: >
          Best-effort live bus event. The server adds `kind: event` and spreads
          the bus

          envelope. The top-level `seq` is optional and is normally absent. The
          example

          shows a live transcript event; its payload embeds the durable
          transcript

          sequence number even though the frame has no top-level event-store
          sequence.
        example: |-
          {
            "kind": "event",
            "type": "transcript.segment",
            "payload": {
              "seq": 87,
              "text": "We can begin now.",
              "confidence": 0.97,
              "speaker_label": "Casey",
              "relative_ts": 12.45
            },
            "occurred_at": "2026-07-30T15:04:17.450Z"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: serverLiveEvent
      - &ref_31
        id: serverTranscript
        contentType: application/json
        payload:
          - name: Transcript catch-up frame
            description: >
              Durable transcript segment replayed from the transcript store.
              This

              standalone shape is used for transcript catch-up; live transcript
              segments

              arrive as `LiveEventFrame` messages with type
              `transcript.segment`.
            type: object
            properties:
              - name: kind
                type: string
                description: transcript
                required: true
              - name: seq
                type: integer
                description: Durable store sequence number.
                required: true
              - name: text
                type: string
                description: Final transcript text stored for the segment.
                required: true
              - name: confidence
                type: number
                description: STT confidence from 0 through 1, or null when unavailable.
                required: true
              - name: speaker_label
                type: string
                description: >-
                  Active-speaker approximation of the participant display name,
                  or null if no speaker was known.
                required: true
              - name: relative_ts
                type: number
                description: Seconds from meeting start, or null when unavailable.
                required: true
              - name: occurred_at
                type: string
                description: >-
                  ISO 8601 time at which the event or transcript segment
                  occurred.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - kind
            - seq
            - text
            - confidence
            - speaker_label
            - relative_ts
            - occurred_at
          properties:
            kind:
              type: string
              const: transcript
              x-parser-schema-id: <anonymous-schema-107>
            seq: *ref_3
            text:
              type: string
              description: Final transcript text stored for the segment.
              x-parser-schema-id: <anonymous-schema-108>
            confidence:
              description: STT confidence from 0 through 1, or null when unavailable.
              oneOf:
                - type: number
                  minimum: 0
                  maximum: 1
                  x-parser-schema-id: <anonymous-schema-110>
                - type: 'null'
                  x-parser-schema-id: <anonymous-schema-111>
              x-parser-schema-id: <anonymous-schema-109>
            speaker_label:
              description: >-
                Active-speaker approximation of the participant display name, or
                null if no speaker was known.
              oneOf:
                - type: string
                  x-parser-schema-id: <anonymous-schema-113>
                - type: 'null'
                  x-parser-schema-id: <anonymous-schema-114>
              x-parser-schema-id: <anonymous-schema-112>
            relative_ts:
              description: Seconds from meeting start, or null when unavailable.
              oneOf:
                - type: number
                  x-parser-schema-id: <anonymous-schema-116>
                - type: 'null'
                  x-parser-schema-id: <anonymous-schema-117>
              x-parser-schema-id: <anonymous-schema-115>
            occurred_at: *ref_22
          x-parser-schema-id: TranscriptFrame
        title: Transcript catch-up frame
        description: >
          Durable transcript segment replayed from the transcript store. This

          standalone shape is used for transcript catch-up; live transcript
          segments

          arrive as `LiveEventFrame` messages with type `transcript.segment`.
        example: |-
          {
            "kind": "transcript",
            "seq": 87,
            "text": "We can begin now.",
            "confidence": 0.97,
            "speaker_label": "Casey",
            "relative_ts": 12.45,
            "occurred_at": "2026-07-30T15:04:17.450Z"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: serverTranscript
      - &ref_32
        id: serverTruncated
        contentType: application/json
        payload:
          - name: Replay truncated frame
            description: >
              More than 1,000 records matched the supplied cursor in the named
              store. The

              server fetched up to 1,001, sent the first 1,000, and withheld at
              least one.

              Exactly 1,000 matching records produce no marker. Reconnect using
              the last

              sequence number received for that store as its corresponding
              cursor.
            type: object
            properties:
              - name: kind
                type: string
                description: truncated
                required: true
              - name: store
                type: string
                description: Store whose catch-up replay has more records available.
                enumValues:
                  - events
                  - transcript
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - kind
            - store
          properties:
            kind:
              type: string
              const: truncated
              x-parser-schema-id: <anonymous-schema-118>
            store:
              type: string
              description: Store whose catch-up replay has more records available.
              enum:
                - events
                - transcript
              x-parser-schema-id: <anonymous-schema-119>
          x-parser-schema-id: TruncatedFrame
        title: Replay truncated frame
        description: >
          More than 1,000 records matched the supplied cursor in the named
          store. The

          server fetched up to 1,001, sent the first 1,000, and withheld at
          least one.

          Exactly 1,000 matching records produce no marker. Reconnect using the
          last

          sequence number received for that store as its corresponding cursor.
        example: |-
          {
            "kind": "truncated",
            "store": "events"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: serverTruncated
      - &ref_33
        id: serverError
        contentType: application/json
        payload:
          - name: Application error frame
            description: >
              Error produced after the WebSocket has been established.
              `invalid_frame`

              covers binary frames, malformed JSON, and commands that do not
              match the

              strict command schemas. `command_queue_full` means eight commands
              are

              already active or queued. Other listed values are
              command-processing errors.

              Handshake failures are HTTP responses, not this frame.
            type: object
            properties:
              - name: kind
                type: string
                description: error
                required: true
              - name: code
                type: string
                description: Machine-readable frame or command-processing error code.
                enumValues:
                  - invalid_frame
                  - command_queue_full
                  - not_found
                  - invalid_state
                  - provider_error
                  - unsupported_capability
                  - not_configured
                  - tts_error
                  - internal_error
                required: true
              - name: message
                type: string
                description: Human-readable error detail.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          additionalProperties: false
          required:
            - kind
            - code
            - message
          properties:
            kind:
              type: string
              const: error
              x-parser-schema-id: <anonymous-schema-120>
            code:
              type: string
              description: Machine-readable frame or command-processing error code.
              enum:
                - invalid_frame
                - command_queue_full
                - not_found
                - invalid_state
                - provider_error
                - unsupported_capability
                - not_configured
                - tts_error
                - internal_error
              x-parser-schema-id: <anonymous-schema-121>
            message:
              type: string
              description: Human-readable error detail.
              x-parser-schema-id: <anonymous-schema-122>
          x-parser-schema-id: ErrorFrame
        title: Application error frame
        description: >
          Error produced after the WebSocket has been established.
          `invalid_frame`

          covers binary frames, malformed JSON, and commands that do not match
          the

          strict command schemas. `command_queue_full` means eight commands are

          already active or queued. Other listed values are command-processing
          errors.

          Handshake failures are HTTP responses, not this frame.
        example: |-
          {
            "kind": "error",
            "code": "invalid_frame",
            "message": "frame must be a valid action command"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: serverError
    bindings: []
    extensions: *ref_23
sendOperations:
  - *ref_24
receiveOperations:
  - *ref_25
sendMessages:
  - *ref_26
  - *ref_27
  - *ref_28
receiveMessages:
  - *ref_29
  - *ref_30
  - *ref_31
  - *ref_32
  - *ref_33
extensions:
  - id: x-parser-unique-object-id
    value: meeting-session-stream
securitySchemes:
  - id: bearerAuth
    name: bearerAuth
    type: http
    description: Telnyx API v2 key sent in the Authorization upgrade header.
    scheme: bearer
    extensions: []

````