livekit / client-sdk-swift

LiveKit Swift Client SDK. Easily build live audio or video experiences on iOS, macOS, tvOS, and visionOS.
https://livekit.io
Apache License 2.0
188 stars 93 forks source link

Can't mixWithOthers and duckOthers #236

Open buttjer opened 1 year ago

buttjer commented 1 year ago

Describe the bug I need a solution that

  1. Allows me to hear music in high quality through bluetooth (a2dp) and comms whenever I am muted in a call
  2. Switches to hfp and continue music if I unmute and back to a2dp if I mute again
  3. Allows me to trigger un/mute with a BLE Device and by a timer, even in the background

Configuration

    private func setMute(_ value: Bool) {
        guard let localParticipant = room.localParticipant else {
            log.error("LocalParticipant doesn't exist")
            return
        }

        guard !microphoneTrackState.isBusy else {
            log.warning("microphoneTrack is .busy")
            return
        }

        DispatchQueue.main.async {
            self.microphoneTrackState = .busy(isPublishing: !self.microphoneTrackState.isPublished)
        }

        localParticipant.setMicrophone(enabled: value).then { publication in
            guard let publication = publication else { return }

            DispatchQueue.main.async {
                self.microphoneTrackState = .published(publication)
                if publication.muted {
                    _ = localParticipant.unpublish(publication: publication)
                }

                self.log.verbose("Microphone is now \(publication.muted ? "Muted" : "NOT Muted")")
            }
        }.catch { error in
            DispatchQueue.main.async {
                self.microphoneTrackState = .notPublished(error: error)
            }
            self.log.verbose("Failed to publish microphone, error: \(error)")
        }
    }

and this is my customConfigureAudioSessionFunc.

        do {
            try audioSession.setCategory(.playback, mode: .default, options: [
                .allowBluetoothA2DP,
                .mixWithOthers,
                .duckOthers
            ])
        } catch {
        }

        AudioManager.shared.customConfigureAudioSessionFunc = { newState, oldState in
            // Gets called when a new track gets published
            // Happens when a Local or Remote Participant first joines the call and unmutes
            DispatchQueue.main.async {
                let configuration = RTCAudioSessionConfiguration.webRTC()

                if [.localOnly, .localAndRemote].contains(newState.trackState) && ![.localOnly, .localAndRemote].contains(oldState.trackState) {
                    configuration.categoryOptions = [
                        .allowBluetooth,
                        .mixWithOthers,
                        .duckOthers
                    ]
                    configuration.category = AVAudioSession.Category.playAndRecord.rawValue
                    configuration.mode = AVAudioSession.Mode.videoChat.rawValue
                } else {
                    configuration.category = AVAudioSession.Category.playback.rawValue
                    configuration.mode = AVAudioSession.Mode.default.rawValue
                }
            }
        }

SDK Version LiveKit 1.0.13 WebRTC 104.5112.17

iOS/macOS Version 16.5.1

Steps to Reproduce

  1. Install the package AleckCommunication.zip
  2. optional: connect bluetooth audio device
  3. start music with apple music or spotify
  4. join an room with one other attendee
  5. While muted execute room.toggleMute() after the App switches to background phase.
@main
struct MyApp: App {
    @Injected(\.roomManager) private var room
    @Environment(\.scenePhase) private var scenePhase

    var body: some Scene {
        WindowGroup {
            ContentView()
                .onChange(of: scenePhase) { newScenePhase in
                   if (newScenePhase == .background) {
                        room.toggleMute()
                    }
                }
        }
    }
}

Expected behavior

if Mute

if Unmute

if Someone else published a track

if Someone else unpublished a track

Logs

Always

If someone else published a track (foreground or background)

2023-08-03 12:41:50.823120+0200 ๐Ÿ› Aleck[1285:140689] [as] ATAudioSessionPropertyManager.mm:363   FAILED to set property 1684431725 on AVAudioSession with error Error Domain=NSOSStatusErrorDomain Code=-50 "(null)"

without bluetooth device connected

If I switch to foreground while in a call without anyone publishing a track

2023-08-03 12:30:49.322463+0200 ๐Ÿ› Aleck[1233:126297] [connection] nw_read_request_report [C7] Receive failed with error "Software caused connection abort"
2023-08-03 12:30:49.326463+0200 ๐Ÿ› Aleck[1233:126339] [websocket] Read completed with an error Software caused connection abort
2023-08-03 12:30:49.326502+0200 ๐Ÿ› Aleck[1233:126297] Connection 7: received failure notification
2023-08-03 12:30:49.328272+0200 ๐Ÿ› Aleck[1233:126339] Task <C9C7F623-BB27-481C-B566-193BCC9701B1>.<1> finished with error [53] Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <C9C7F623-BB27-481C-B566-193BCC9701B1>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <C9C7F623-BB27-481C-B566-193BCC9701B1>.<1>}
2023-08-03T12:30:49+0200 error LiveKitSDK : [] WebSocket.receive(task:result:) Failed to receive Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort}
2023-08-03 12:30:49.331958+0200 ๐Ÿ› Aleck[1233:126297] [connection] nw_flow_add_write_request [C7 104.248.102.96:443 failed parent-flow (satisfied (Path is satisfied), interface: en0[802.11], ipv4, ipv6, dns)] cannot accept write requests
2023-08-03 12:30:49.332047+0200 ๐Ÿ› Aleck[1233:126297] [connection] nw_write_request_report [C7] Send failed with error "Socket is not connected"
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: reconnecting

If I unmute in the background

2023-08-03T12:35:48+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)) options: nil...
2023-08-03T12:35:48+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] success LocalTrackPublication(sid: TR_AMabb2NDwJLCbV, kind: Kind(rawValue: 0), source: Source(rawValue: 2))
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager setMute]: Microphone is now NOT Muted

Music does not duck and others can't hear me. After switching to foreground

2023-08-03 12:36:23.733491+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:36:23.742023+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:36:23.742459+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: reconnecting
App is inactive
2023-08-03 12:36:23.748292+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_read_request_report [C3] Receive failed with error "Software caused connection abort"
2023-08-03 12:36:23.753138+0200 ๐Ÿ› Aleck[1243:133773] [quic] quic_conn_send_frames_for_key_state_block_invoke [C1.1.1.1:2] [-0104995dab46f25913054e5d8e46f8a0c61d9110] unable to request outbound data
2023-08-03 12:36:23.757072+0200 ๐Ÿ› Aleck[1243:133773] Connection 3: received failure notification
2023-08-03 12:36:23.757143+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_flow_add_write_request [C3 104.248.102.96:443 failed parent-flow (satisfied (Path is satisfied), interface: en0[802.11], ipv4, ipv6, dns)] cannot accept write requests
2023-08-03 12:36:23.757180+0200 ๐Ÿ› Aleck[1243:133773] [connection] nw_write_request_report [C3] Send failed with error "Socket is not connected"
2023-08-03 12:36:23.758074+0200 ๐Ÿ› Aleck[1243:134387] [websocket] Read completed with an error Software caused connection abort
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected

2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:23+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03 12:36:24.000917+0200 ๐Ÿ› Aleck[1243:134382] Task <98679DC3-C4DF-4B95-8254-F4790A1E3326>.<1> finished with error [57] Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, NSErrorFailingURLKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <98679DC3-C4DF-4B95-8254-F4790A1E3326>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <98679DC3-C4DF-4B95-8254-F4790A1E3326>.<1>}
2023-08-03T12:36:24+0200 error LiveKitSDK : [] WebSocket.receive(task:result:) Failed to receive Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, NSErrorFailingURLKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1}
2023-08-03 12:36:24.031387+0200 ๐Ÿ› Aleck[1243:133774] [tcp] tcp_input [C4.1.1:3] flags=[R] seq=3599832312, ack=0, win=0 state=LAST_ACK rcv_nxt=3599832312, snd_una=4079622026
2023-08-03 12:36:24.031650+0200 ๐Ÿ› Aleck[1243:133774] [tcp] tcp_input [C4.1.1:3] flags=[R] seq=3599832312, ack=0, win=0 state=CLOSED rcv_nxt=3599832312, snd_una=4079622026
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:36:24+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
App is active
2023-08-03T12:36:37+0200 info LiveKitSDK : [] Room.signalClient(_:didReceive:) server version: 1.4.4, region: Germany
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: connected

with bluetooth device connected

If I unmute in the background

2023-08-03T12:45:40+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)) options: nil...
2023-08-03T12:45:41+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] success LocalTrackPublication(sid: TR_AMfdRmoriNXvPQ, kind: Kind(rawValue: 0), source: Source(rawValue: 2))
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager setMute]: Microphone is now NOT Muted
2023-08-03 12:45:43.164413+0200 ๐Ÿ› Aleck[1292:143833] [aurioc]            AURemoteIO.cpp:1691  AUIOClient_StartIO failed (561145187)

After switching to foreground

2023-08-03 12:46:06.889251+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:46:06.889675+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:46:06.890169+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:46:06.891194+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_read_request_report [C3] Receive failed with error "Software caused connection abort"
2023-08-03 12:46:06.893228+0200 ๐Ÿ› Aleck[1292:143935] [quic] quic_conn_send_frames_for_key_state_block_invoke [C1.1.1.1:2] [-01195d7a513578eee41b3c7a5f3569df735e040f] unable to request outbound data
2023-08-03 12:46:06.893947+0200 ๐Ÿ› Aleck[1292:144281] [websocket] Read completed with an error Software caused connection abort
2023-08-03 12:46:06.894369+0200 ๐Ÿ› Aleck[1292:144281] Task <0BDBA4F3-F546-458F-8F22-CD738CEC619F>.<1> finished with error [53] Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <0BDBA4F3-F546-458F-8F22-CD738CEC619F>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <0BDBA4F3-F546-458F-8F22-CD738CEC619F>.<1>}
2023-08-03 12:46:06.896690+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_flow_add_write_request [C3 104.248.102.96:443 failed parent-flow (satisfied (Path is satisfied), interface: en0[802.11], ipv4, ipv6, dns)] cannot accept write requests
2023-08-03 12:46:06.896726+0200 ๐Ÿ› Aleck[1292:143935] [connection] nw_write_request_report [C3] Send failed with error "Socket is not connected"
App is inactive
2023-08-03T12:46:06+0200 error LiveKitSDK : [] WebSocket.receive(task:result:) Failed to receive Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort}
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: reconnecting
App is active
2023-08-03 12:46:07.765242+0200 ๐Ÿ› Aleck[1292:144291] Task <FE50B781-6229-4B4E-8AFC-66B8C579F944>.<1> finished with error [57] Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, NSErrorFailingURLKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <FE50B781-6229-4B4E-8AFC-66B8C579F944>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <FE50B781-6229-4B4E-8AFC-66B8C579F944>.<1>}
2023-08-03T12:46:07+0200 error LiveKitSDK : [] WebSocket.receive(task:result:) Failed to receive Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1, NSErrorFailingURLKey=wss://aleck-staging-667ifvpv.livekit.cloud/rtc?access_token=***&protocol=9&sdk=swift&version=1.0.13&os=iOS&os_version=16.5.1&device_model=iPhone15,2&network=wifi&reconnect=1&auto_subscribe=1&adaptive_stream=1}
2023-08-03T12:46:08+0200 warning LiveKitSDK : [] SignalClient.onSignalResponse(_:) Not connected
2023-08-03T12:46:08+0200 warning LiveKitSDK : [] SignalClient.onSignalResponse(_:) Not connected
2023-08-03T12:46:08+0200 warning LiveKitSDK : [] SignalClient.onSignalResponse(_:) Not connected
2023-08-03T12:46:08+0200 warning LiveKitSDK : [] SignalClient.onSignalResponse(_:) Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.signalClient(_:didReceiveOffer:) failed to send answer, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03 12:46:08.538392+0200 ๐Ÿ› Aleck[1292:143935] dnssd_clientstub write_all(44) DEFUNCT
2023-08-03 12:46:08.538411+0200 ๐Ÿ› Aleck[1292:143935] dnssd_clientstub deliver_request ERROR: write_all(44, 90 bytes) failed
2023-08-03 12:46:08.538432+0200 ๐Ÿ› Aleck[1292:143935] dnssd_clientstub write_all(44) DEFUNCT
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] SignalClient.sendRequest(_:enqueueIfReconnecting:) not connected
2023-08-03T12:46:08+0200 error LiveKitSDK : [] Engine.transport(_:didGenerate:) Failed to send candidate, error: SignalClientError.state Not connected

if I than unmute myself in the foreground

2023-08-03T12:48:19+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)) options: nil...
2023-08-03T12:48:19+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] success LocalTrackPublication(sid: TR_AM4c89Z4JyppTi, kind: Kind(rawValue: 0), source: Source(rawValue: 2))
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager setMute]: Microphone is now NOT Muted
2023-08-03 12:48:19.553011+0200 ๐Ÿ› Aleck[1292:143833] [as_client]     AVAudioSession_iOS.mm:2367  Failed to set category, error: -50
2023-08-03 12:48:19.555332+0200 ๐Ÿ› Aleck[1292:143833] [as_client]     AVAudioSession_iOS.mm:2367  Failed to set category, error: -50
2023-08-03 12:48:19.562753+0200 ๐Ÿ› Aleck[1292:143833] [as_client]     AVAudioSession_iOS.mm:2367  Failed to set category, error: -50
2023-08-03 12:48:19.564054+0200 ๐Ÿ› Aleck[1292:143833] [as_client]     AVAudioSession_iOS.mm:2367  Failed to set category, error: -50

If I mute and than unmute in the background

App is in background
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager setMute]: Microphone is now Muted
2023-08-03T12:49:44+0200 info LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)) options: nil...
2023-08-03 12:49:44.606823+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:49:44.608776+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:49:44.609527+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_read_request_report [C1] Receive failed with error "Socket is not connected"
2023-08-03 12:49:44.611785+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_read_request_report [C3] Receive failed with error "Software caused connection abort"
2023-08-03 12:49:44.616545+0200 ๐Ÿ› Aleck[1298:148233] [quic] quic_conn_send_frames_for_key_state_block_invoke [C1.1.1.1:2] [-0158170113356007035aaf014c355d5789bf9ccb] unable to request outbound data
2023-08-03 12:49:44.617768+0200 ๐Ÿ› Aleck[1298:148239] [websocket] Read completed with an error Software caused connection abort
2023-08-03 12:49:44.619217+0200 ๐Ÿ› Aleck[1298:148239] Task <9D881CEC-BB24-4706-BC64-B81D43055297>.<1> finished with error [53] Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalWebSocketTask <9D881CEC-BB24-4706-BC64-B81D43055297>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <9D881CEC-BB24-4706-BC64-B81D43055297>.<1>}
2023-08-03 12:49:44.620085+0200 ๐Ÿ› Aleck[1298:148233] Connection 3: received failure notification
2023-08-03 12:49:44.620409+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_flow_add_write_request [C3 104.248.102.96:443 failed parent-flow (satisfied (Path is satisfied), interface: en0[802.11], ipv4, ipv6, dns)] cannot accept write requests
2023-08-03 12:49:44.620544+0200 ๐Ÿ› Aleck[1298:148233] [connection] nw_write_request_report [C3] Send failed with error "Socket is not connected"
2023-08-03T12:49:44+0200 error LiveKitSDK : [] WebSocket.receive(task:result:) Failed to receive Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort}
2023-08-03T12:49:44+0200 error LiveKitSDK : [] LocalParticipant.publish(track:publishOptions:) [publish] failed LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)), error: InternalError.state resetting pending promise
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager setMute]: Failed to publish microphone, error: InternalError.state resetting pending promise
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: reconnecting
๐Ÿ•ธ #1 ๐Ÿ”ฌ [RoomManager room]: didUpdate: connected
2023-08-03 12:49:45.505258+0200 ๐Ÿ› Aleck[1298:148234] dnssd_clientstub write_all(44) DEFUNCT
2023-08-03 12:49:45.505394+0200 ๐Ÿ› Aleck[1298:148234] dnssd_clientstub deliver_request ERROR: write_all(44, 90 bytes) failed
2023-08-03 12:49:45.505731+0200 ๐Ÿ› Aleck[1298:148234] dnssd_clientstub write_all(44) DEFUNCT
hiroshihorie commented 10 months ago

Hi, can you try v1.1.3 ? I've made some changes.