Important note, after a timeout on the outgoing side, the following is invoked
[CallKitClientImpl] [info] reportCallWasEnded callId=[***-***-***], reason=[CXCallEndedReason(rawValue: 3)]
which is consistent with this transcript:
CXCallEndedReasonFailed = 1, // An error occurred while trying to service the call
CXCallEndedReasonRemoteEnded = 2, // The remote party explicitly ended the call
CXCallEndedReasonUnanswered = 3, // The call never started connecting and was never explicitly ended (e.g. outgoing/incoming call timeout)
CXCallEndedReasonAnsweredElsewhere = 4, // The call was answered on another device
CXCallEndedReasonDeclinedElsewhere = 5, // The call was declined on another device
} API_AVAILABLE(ios(10.0), macCatalyst(13.0), watchos(9.0)) API_UNAVAILABLE(macos, tvos);
It looks like on the outgoing side the finish reason is correct - CXCallEndedReasonUnanswered, but on the receiving side it is handled incorrectly - CXCallEndedReason = remoteEnded
Topic:
App & System Services
SubTopic:
Core OS
Tags: