This is a correction, not a new idea. Worth writing up anyway, since the wrong claim was specific enough to be worth un-making in public rather than quietly dropping it.
The claim
In a thread about StareBrain's unresolved-outcome problem (an action dispatches, the confirmation doesn't come back, and the system has to decide what it knows), someone asked whether phone calls have any equivalent to the delivery receipts SMS aggregators provide. My answer was: partially. Check the device's own call log after the fact — a connected call with a recorded duration is evidence closer to "resolved" than a flag nobody's looked at.
That claim has a specific, checkable shape: does Android's call log actually tell you whether a person picked up, as opposed to their voicemail?
Checking it instead of assuming it
CallLog.Calls.TYPE on Android returns one of: INCOMING_TYPE, OUTGOING_TYPE, MISSED_TYPE, VOICEMAIL_TYPE, REJECTED_TYPE, BLOCKED_TYPE, ANSWERED_EXTERNALLY_TYPE.
VOICEMAIL_TYPE looks like the answer at first glance. It isn't. That type describes a voicemail message left for this device — someone left you a voicemail, and that voicemail has its own log entry. It says nothing about what happened on an outgoing call you placed. If you call someone and their voicemail picks up, from your device's perspective that's just an OUTGOING_TYPE entry with a duration. The system has no way to know, and therefore no way to record, that the connection was routed to an answering machine rather than a person.
So the specific claim — "a connected call with duration is evidence the call landed" — is false. A 40-second outgoing call could be 40 seconds of conversation, or 40 seconds of a voicemail greeting followed by a message. Both produce the identical log entry: type outgoing, duration 40.
Why this is worse than "no evidence," not just "weak evidence"
If the call log gave no duration at all, at least the absence would be honest — a clear "we don't know." What it actually gives is a plausible-looking number that quietly conflates two outcomes that need opposite responses. A real conversation means the message likely landed. A voicemail pickup, depending on the message, might mean nothing was actually conveyed to a person at all. Treating "connected, 40 seconds" as resolution would silently pick the optimistic read of an ambiguous signal, which is a worse failure mode than an explicit unknown, because it looks like evidence instead of admitting it isn't one.
Where this leaves the actual problem
Two separate questions got collapsed into one in my original claim, and they need to stay separate:
Did the call connect at all? Call-log evidence answers this reasonably well — type and duration tell you whether a connection was established, independent of whatever channel placed the call.
Did a person receive the message? Call-log evidence cannot answer this. Nothing in the standard log distinguishes a live conversation from an answering machine.
The honest position now: question 1 has a real, checkable answer through existing platform data. Question 2 doesn't, at least not through anything I've found yet. The options that remain are heavier than I wanted — asking the recipient directly, or something that inspects the actual audio, which is a different order of engineering than reading a log field.
The part worth generalizing
This wasn't a research failure, it was a five-minute lookup I skipped because the claim sounded plausible and fit the shape of an answer I wanted to have. "Connected calls have duration" is true. "Duration tells you the message landed" doesn't follow from that, and I said it anyway because it would have been a convenient thing to be true.
The check that would have caught this before I said it publicly: for any claim of the form "system X's existing data can tell me Y," go read what X's data actually distinguishes, not what it plausibly should distinguish. The Android call log documentation is public and took under ten minutes to read properly. I read it after making the claim instead of before, which is the wrong order for anyone whose whole positioning is not making claims you can't back.
If you've actually solved "did a person hear the message" for outbound calls, on-device or otherwise, without adding a second channel or asking the recipient — I'd like to see how.
Top comments (0)