No-UI SMS/phone

Fritz Anderson

My app may need to

- send an SMS message; or
- place what looks like a phone call to a paging system

… without user intervention.

In other words MessageUI.framework and tel: URLs are out.

Is there a way to do this — API I’m missing or a third-party framework equivalent to MailCore?

I’m afraid I know the answer to this, but it’s in a good cause. Here’s what we’re trying to do.


# Domain

The app is an instrument in a field study for managing the care of women at risk of post-partum depression.

Remember this: We are trying to discover a way to keep new mothers from killing themselves or their children.

The app asks the user to report on her mood, rest, nutrition, etc. twice a day. Ordinarily it buffers the response and reports it to an HTTPS API. The independent review board for the study has approved this part.

However, a combination of two responses would indicate imminent danger to self or others. The review board insists that if the user so much as _dials through_ that combination, a page** must be sent to the psychiatrist on call.

For now my management is immediately interested only in placing a phone call to the paging provider without user intervention; but I’d like to explore direct SMS too.

** (As in a small box that vibrates, beeps, and shows a callback number or a short text message. Healthcare is bound to “legacy systems.” There’s no way around it. Nowadays paging systems have vendor back-ends; we’re researching whether the hospital in question uses a vendor that offers an HTTPS API, but answers and permissions will take time.)


# Why I can’t use MessageUI

This must be done without user intervention because of the risk that the user may consider the emergency combination, but change it out of shame. It’s likely she’d alter or suppress an alert message.

There are several vendors for systems that replace the back-end with something from the 21st century. We’re following up with the sponsoring hospital to see if an HTTPS API is available.

If so, end of question.

In parallel, we’re exploring automated, faceless messaging.


# App Review

This should be permissible under the review guidelines: 1.1.6 forbids anonymous or prank messaging; this would be hard-wired use for a valid purpose by a recognized research institution.*** We might have to appeal a Binary Reject, but I’m sure we’d win it.

*** (I too have read posts like this saying “But I mean well!” I think this goes beyond that; it’s something Apple culturally wants to support; and the review guidelines say right at the start that they are guidelines, not rules. I’ve won every appeal/clarification I’ve filed.)

I know Apple is cautious about safety-of-life apps, but that’s a separate issue.


# I’ve done my homework (I think)

My searches of the general web mostly return marketing pages for vendors of replacement paging systems; GitHub, a lot of Android libraries; and Stack Overflow, directions for MessageUI because (the answers claim) Apple doesn’t let you do anything else.

Does anyone know of a solution? My next step is to burn a DTS incident. I’m reluctant to take the time if I don’t have to, because strictly speaking it’s not a “code-level” support case.

— F

Join { to automatically receive all group messages.