tags:

views:

466

answers:

4

A client of mine just informed me that, while using the app I am developing for them, they received an incoming call, but it did not bring up an alert on the iPhone. Instead, the person making the call heard a message that the user's service was temporarily unavailable.

If we put aside for a moment the possibility that either the person making the call did not have a signal to make a call, or that my client did not have a signal to receive a call, is there any conceivable way that my app could have silently rejected the call? I don't think that's possible. My interpretation of the Apple docs tells me the iPhone OS is in full control and should be able to terminate my app if it wanted.

Am I missing any corner cases here?

+14  A: 

Assuming your client is in the US, remind him how much AT&T sucks. There's absolutely no way that you can block a phone call from coming in.

bpapa
LOL! We're all in Canada, so just substitute Fido or Rogers or TELUS or Bell and that still stands! :)
Shaggy Frog
+3  A: 

You're right. There's no way for an application to stop a call from coming in.

The only thing your application can do is be notified that you're getting shutdown because a call is coming in, as the link you provided describes.

Ben S
+7  A: 

Are they on EDGE? While using EDGE, you can't receive calls. They share the same radio.

Jeff Kelley
Do you have more information about that? Although that's not an issue, as my app does not do any data transmission.
Shaggy Frog
I was under the impression that EDGE would give your iPhone priority and that your EDGE usages would be halted when a call came in. I didn't think that the actual ringing of the phone would use EDGE, but that after the call was established, the EDGE bandwidth would be taken up by the phone call.
mahboudz
More information: http://support.apple.com/kb/HT1695
Jeff Kelley
Matt Dawdy
+2  A: 

Had a similar problem a while ago, but it "disappeared" before I could really dig into it.

What seemed to be happening:

  • My App was doing some heavy calculations in a very tight loop.
  • The upper half of the "call incoming" interrupt was handled.
  • The bottom half was called "to late".
  • The call was dropped.

This has in no way been confirmed by apple or any other developer. The phone I was working on was ... slightly modified, so it might have been totally our fault.

The loop has since been removed and the problem never showed up again.

Andreas