Does CallKit have a call waiting timeout?

Hello,

We are implementing an mVOIP service using CallKit.

I have a question.

When receiving a call with CallKit, the CXEndCallAction callback is received by the provider after one minute. We didn't request this separately on our end.

Is this a policy from Apple?

If so, is it possible to modify this behavior, and are there any related APIs or documentation?

Thank you.

Answered by DTS Engineer in 801545022

When receiving a call with CallKit, the CXEndCallAction callback is received by the provider after one minute. We didn't request this separately on our end.

Yes, though I thought it was actually 30s, not 60s.

Is this a policy from Apple?

Sort of. All of the CallKit APIs have some kind of timeout. Partly that's to ensure general "reasonableness", however, it's mainly because there are a large number of components involved in the call reporting process and the timeout ensures that any failure doesn't jam up the system indefinitely.

If so, is it possible to modify this behavior, and are there any related APIs or documentation?

No, not really. Strictly speaking, you could effectively extend the time "forever" by reporting a new call immediately after the previous call ended, however, because you can't differentiate between the two different ending "types", you'd always risk "missing" the users own "end call" button press.

Having said that, the window of time for that to occur is quite narrow, particularly if you intentionally ended/reported before the system ended the call "for" you. If it's critical that you keep the phone ringing for a longer period of time, then that's your best option.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware.

Accepted Answer

When receiving a call with CallKit, the CXEndCallAction callback is received by the provider after one minute. We didn't request this separately on our end.

Yes, though I thought it was actually 30s, not 60s.

Is this a policy from Apple?

Sort of. All of the CallKit APIs have some kind of timeout. Partly that's to ensure general "reasonableness", however, it's mainly because there are a large number of components involved in the call reporting process and the timeout ensures that any failure doesn't jam up the system indefinitely.

If so, is it possible to modify this behavior, and are there any related APIs or documentation?

No, not really. Strictly speaking, you could effectively extend the time "forever" by reporting a new call immediately after the previous call ended, however, because you can't differentiate between the two different ending "types", you'd always risk "missing" the users own "end call" button press.

Having said that, the window of time for that to occur is quite narrow, particularly if you intentionally ended/reported before the system ended the call "for" you. If it's critical that you keep the phone ringing for a longer period of time, then that's your best option.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware.

Does CallKit have a call waiting timeout?
 
 
Q