Push To Talk expected behavior when app terminated

I'm implementing Push To Talk functionality on my app. Now I have some trouble after app process is terminated by user.

In my implementation, I download voice file in func channelManager(_ channelManager: PTChannelManager, didActivate audioSession: AVAudioSession) method. It works fine when app is foreground, and also ok when app is background until app process terminated.

After app process terminated, system displays PTT connection status by blue icon in status bar. Then I got some PTT message from another person, func incomingPushResult(channelManager: PTChannelManager, channelUUID: UUID, pushPayload: [String : Any]) and func channelManager(_ channelManager: PTChannelManager, didActivate audioSession: AVAudioSession) are called, but download process is not finished and I cannot get voice file.

What is the expected way to download voice file in such case?

Replies

Additional information: I could be download audio file in almost all of above case now, because I modified logic in func channelDescriptor(restoredChannelUUID channelUUID: UUID) -> PTChannelDescriptor method like following.

 func channelDescriptor(restoredChannelUUID channelUUID: UUID) -> PTChannelDescriptor {
        //1. some logic to restore channelDescriptor
        //2. I added following code
        try? AVAudioSession.sharedInstance().setCategory(.playAndRecord)

        return channelDescriptor
    }

I modified like above because Framework engineer replies like following in this thread , and it look like working fine.

The channelManager(_:didActivate:) method will not be called if the AVAudioSession was not able to be activated. This can occur if you have not enabled the Audio Background mode for your app and if you have not already configured your app’s AVAudioSession to include include the playAndRecord mode when the transmission begins.

https://developer.apple.com/forums/thread/729421

But I found func incomingPushResult(channelManager: PTChannelManager, channelUUID: UUID, pushPayload: [String : Any]) is not called at first time I received some ptt notification after terminate app. I'm looking for the solution now.