Post

Replies

Boosts

Views

Activity

Reply to iOS27 Callkit's didActivateAudioSession not being called sometimes
Following up on the configuration-refresh suggestion in this thread, with a sysdiagnose from an affected device (iPhone19,2, iOS 27.0.1, 24A446), filed as FB25275040. In our case the stale state appears after callservicesd restarts while our VoIP app is suspended: 07:36 The app launches and sets CXProvider.configuration once. 10:26 The app is suspended. 10:30–10:43 callservicesd restarts (new pid, no crash report). 11:26 The app resumes. CallKit reconnects ("callsourcehost.started … setting up XPC connection"), but the app does not receive providerDidReset(_:). From then on, callservicesd logs this for every call the app reports: F [com.apple.calls.callservicesd:Audio] Audio session not found for call: <private>. Returning nilOn answer (13:25) it also logs the following, and never activates the session, so provider(_:didActivate:) is never called. Calls stay silent until the app is relaunched. E [com.apple.calls.callservicesd:Audio] Error retrieving AVAudioSession provider with ID 0We're seeing the same pattern on several customer devices, all on iOS 27, none with providerDidReset(_:) before the failures. Our next release sets CXProvider.configuration again before every reportNewIncomingCall and CXStartCallAction request, as suggested here. Questions: Is setting CXProvider.configuration again before each call the supported way to recover after a callservicesd restart? Does it resend the app's audio session so callservicesd no longer sees ID 0? Is there a way for an app to observe a callservicesd restart, so it can refresh only when needed? Should providerDidReset(_:) be delivered when callservicesd restarts? We never receive one in this case.
Topic: Media Technologies SubTopic: Audio Tags:
4h
Reply to iOS27 Callkit's didActivateAudioSession not being called sometimes
Following up on the configuration-refresh suggestion in this thread, with a sysdiagnose from an affected device (iPhone19,2, iOS 27.0.1, 24A446), filed as FB25275040. In our case the stale state appears after callservicesd restarts while our VoIP app is suspended: 07:36 The app launches and sets CXProvider.configuration once. 10:26 The app is suspended. 10:30–10:43 callservicesd restarts (new pid, no crash report). 11:26 The app resumes. CallKit reconnects ("callsourcehost.started … setting up XPC connection"), but the app does not receive providerDidReset(_:). From then on, callservicesd logs this for every call the app reports: F [com.apple.calls.callservicesd:Audio] Audio session not found for call: <private>. Returning nilOn answer (13:25) it also logs the following, and never activates the session, so provider(_:didActivate:) is never called. Calls stay silent until the app is relaunched. E [com.apple.calls.callservicesd:Audio] Error retrieving AVAudioSession provider with ID 0We're seeing the same pattern on several customer devices, all on iOS 27, none with providerDidReset(_:) before the failures. Our next release sets CXProvider.configuration again before every reportNewIncomingCall and CXStartCallAction request, as suggested here. Questions: Is setting CXProvider.configuration again before each call the supported way to recover after a callservicesd restart? Does it resend the app's audio session so callservicesd no longer sees ID 0? Is there a way for an app to observe a callservicesd restart, so it can refresh only when needed? Should providerDidReset(_:) be delivered when callservicesd restarts? We never receive one in this case.
Topic: Media Technologies SubTopic: Audio Tags:
Replies
Boosts
Views
Activity
4h