Skip to content

Commit 8592597

Browse files
committed
Fix bug when joining from another device
update unit tests
1 parent 92c8413 commit 8592597

File tree

6 files changed

+1458
-81
lines changed

6 files changed

+1458
-81
lines changed

AmazonChimeSDK/AmazonChimeSDK/ingestion/IngestionConfigurationBuilder.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Foundation
3232
return self
3333
}
3434

35-
public func build(disabled: Bool = true,
35+
public func build(disabled: Bool = false,
3636
ingestionUrl: String,
3737
clientConiguration: EventClientConfiguration) -> IngestionConfiguration {
3838
return IngestionConfiguration(clientConfiguration: clientConiguration,

AmazonChimeSDK/AmazonChimeSDK/internal/audio/DefaultAudioClientObserver.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ class DefaultAudioClientObserver: NSObject, AudioClientDelegate {
4949
}
5050

5151
public func audioClientStateChanged(_ audioClientState: audio_client_state_t, status: audio_client_status_t) {
52-
let newAudioState = Converters.AudioClientState.toSessionStateControllerAction(state: audioClientState)
5352
let newAudioStatus = Converters.AudioClientStatus.toMeetingSessionStatusCode(status: status)
53+
let newAudioState = Converters.AudioClientState.toSessionStateControllerAction(state: audioClientState, status: newAudioStatus)
5454

5555
if newAudioStatus == .unknown {
5656
logger.info(msg: "AudioClient State rawValue: \(audioClientState.rawValue) Unknown Status rawValue: \(status.rawValue)")
@@ -357,15 +357,15 @@ class DefaultAudioClientObserver: NSObject, AudioClientDelegate {
357357
switch currentAudioState {
358358
case .connecting,
359359
.finishConnecting:
360-
if newAudioStatus == .audioServerHungup {
360+
if Converters.AudioClientState.shouldCloseAndNotifyEndMeeting(status: newAudioStatus) {
361361
handleAudioSessionEndedByServer(newAudioStatus: newAudioStatus)
362362
} // Else no-op, client initiated stops already handled in DefaultAudioClientController.stop()
363363
break
364364
case .reconnecting:
365365
notifyAudioClientObserver { (observer: AudioVideoObserver) in
366366
observer.audioSessionDidCancelReconnect()
367367
}
368-
if newAudioStatus == .audioServerHungup {
368+
if Converters.AudioClientState.shouldCloseAndNotifyEndMeeting(status: newAudioStatus) {
369369
handleAudioSessionEndedByServer(newAudioStatus: newAudioStatus)
370370
} // Else no-op, client initiated stops already handled in DefaultAudioClientController.stop()
371371
default:

AmazonChimeSDK/AmazonChimeSDK/internal/utils/Converters.swift

+10-3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ import Foundation
4141
}
4242

4343
enum AudioClientState {
44-
static func toSessionStateControllerAction(state: audio_client_state_t) -> SessionStateControllerAction {
44+
static func toSessionStateControllerAction(state: audio_client_state_t, status: MeetingSessionStatusCode) -> SessionStateControllerAction {
45+
if (shouldCloseAndNotifyEndMeeting(status: status)) {
46+
return .finishDisconnecting
47+
}
4548
switch state {
4649
case AUDIO_CLIENT_STATE_UNKNOWN:
4750
return .unknown
@@ -55,16 +58,20 @@ import Foundation
5558
return .reconnecting
5659
case AUDIO_CLIENT_STATE_DISCONNECTING:
5760
return .disconnecting
58-
case AUDIO_CLIENT_STATE_DISCONNECTED_NORMAL,
59-
AUDIO_CLIENT_STATE_SERVER_HUNGUP:
61+
case AUDIO_CLIENT_STATE_DISCONNECTED_NORMAL:
6062
return .finishDisconnecting
6163
case AUDIO_CLIENT_STATE_DISCONNECTED_ABNORMAL,
64+
AUDIO_CLIENT_STATE_SERVER_HUNGUP,
6265
AUDIO_CLIENT_STATE_FAILED_TO_CONNECT:
6366
return .fail
6467
default:
6568
return .unknown
6669
}
6770
}
71+
72+
static func shouldCloseAndNotifyEndMeeting(status: MeetingSessionStatusCode) -> Bool {
73+
return status == MeetingSessionStatusCode.audioServerHungup || status == MeetingSessionStatusCode.audioJoinedFromAnotherDevice
74+
}
6875
}
6976

7077
enum Transcript {

0 commit comments

Comments
 (0)