In many cases, victims calling 911 have been in situations in which creating noise would put them in danger. The ability to speak with emergency dispatch through text would be of huge benefit to those who need to avoid alerting an attacker. One particular incident that stood out to us is a chilling story involving an Ohio woman in 2016 who, after freeing herself from her ties, whispered to the 911 dispatcher as her abductor slept just feet away from her.
We researched similar services available in Canada, all of which were lacking core functionality and usability. They are built solely for deaf or hard of hearing people and require a complicated signup process. Unsatisfied, we set out to find a solution that would be inexpensive to implement and simple to use.
What it does
Our service allows someone to contact 911 via SMS. This is useful for anyone who finds themselves in a situation where it can be advantageous to stay silent, for example if the user was abducted or if an intruder has entered the user's home.
Once a user sends an SMS to the 911-text number, a call is initiated with a 911 dispatcher. The SMS is relayed to the dispatcher using text-to-speech. The dispatcher can then say a reply, which will be sent back to the user using speech-to-text.
The service is a layer that is used on top of the current 911 emergency service without the need to make any changes to the dispatch operations. This enables quick integration and minimal implementation costs.
How we built it
The service is hosted in a Docker container on Google Compute Engine. The service is written in node.js with heavy use of the Twilio API.
The SMS chat and phone call are frequently updated using a series of webhooks on our server, which enables information to flow as quick and efficiently as possible. Every time a new event occurs on either side, our server responds immediately with the following action.
In building this, our top priorities were ease-of-use and speed of information flow. In emergency situations time is always of the essence so it is very important that none is wasted.
Challenges we ran into
Twilio uses its own markup language (TwiML) and requires the data be passed to it through its own web hooks. This made the structure of the server a little bit unusual. Another challenge we faced was maintaining call continuity through multiple SMS requests.
Accomplishments that we're proud of
We did a good job isolating the key elements of what would make the service effective for real-life scenarios.
What's next for 911-text
We would like to add more features in this service, such as geo-locating and sentiment analysis to further aid the 911 dispatcher.