Hi,
I'm trying to figure out how to set up an SMS service where users can communicate with people on phones that are not participating in my service. "TextFree" on iPhone does something like what I want to do. They let you sign up, then you can send messages for "free" to other friends that aren't part of the service.
It looks like when you sign up for TextFree, they assign you an email address [[email protected]]. People outside the service without MMS capabilities can't send an SMS to this user. The user must first send an SMS to them, starting a conversation. I think this is what they're doing:
- Textfree signs up for an account with a bulk SMS provider, and is assigned a single phone #, like "123".
- Joe signs up for TextFree, gets assigned email: [email protected].
- Mary wants to send Joe an sms, but can't because she doesn't know what # to direct the sms to.
- Joe sends an sms to Mary using textfree. This really just makes an http request to some textfree server. The server gets the request, and the destination # (Mary's phone).
- The server sends the sms out using their bulk sms api provider.
- Mary receives the sms, and sees the originator phone # as "123".
- Mary replies to the sms, using this phone #, "123".
- Their sms provider receives the message, and forwards it to textfree's http server.
- Textfree now has to resolve that the sms received by Mary's phone # is destined for Joe (not sure how this can be done), so it can be delivered to Joe's account.
I think that all makes sense and seems feasible, I'm just not sure about that last step, how they could figure out which conversation sms' belong to. If all outside users are directing their sms to phone #123, how could I figure out which internal user the message is destined for? Is there some way to embed a unique identifier in an SMS, so that when the external user replies to the SMS, some unique ID can be embedded in there to provide that type of context to read on the reply side of things?
Long question, thanks for any thoughts!