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


Fritz Anderson
 

This is iOS, by the way.

The context implies it but things go better if you make the platform explicit.

— F

On 28 Nov 2017, at 1:54 PM, Fritz Anderson <anderson.fritz@gmail.com> wrote:

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




Quincey Morris
 

On Nov 28, 2017, at 11:54 , Fritz Anderson <anderson.fritz@...> wrote:

I’m afraid I know the answer to this

Yeah, you do know. You can’t do it.

TBH, I think you’re barking up the wrong tree — though the correct tree is just one tree to the left. If your “management” is serious about try to help people in a potentially life-or-death way, then I think your project should be not just an *app* slammed together from whatever pre-built pieces happen to be lying around, but a server with client interface(s). You already said as much: you’d use an existing back-end solution via HTTPS API if you could find one.

So, move your problem into a server that can make calls and/or send SMS messages and/or interface with whatever paging servers you can find, have your iOS client app talk to the server using the interface iOS does best — HTTPS.

Of course, having your own server is a much bigger deal, apart even from coding, because you need to deal with hosting, security and stability. But that was my point about being serious. If you’re only going to save lives if it doesn’t cost you any real effort, I don’t think you should be in that business.

This just FWIW, of course.