It should be very easy to make the Drupal user with the same PhoneNumber as the originating Phone Number of the SMS the owner of any action of node that is created as a result of the incoming SMS.

For example, when the SMS framework would be used for Microblogging, the microblogs' author should be the owner of the registered phonenumber where the inbound SMS is coming from.

When the From phonenumber is not linked to a Drupal User, it should be possible to create a new Drupal User based on an incoming SMS. The phonenumber would be the username. The email address would have to be fake. (eg mobilenumber@domain.tld)

This could be combined with for example:

  subscribe  [vocabulary] [term]

for instance: 0771234567 sends "subscribe scores arsenal"

This would translate to:

- send me updates in the scores of all Arsenal matches.

Which technically would:

- Check if there is a User with phonenumber: 0771234567 If so, add the Term Arsenal to this user.
- If not: create a new Drupal User, fill in 0771234567 as the PhoneNumber, fill in a fake email address 0771234567@123.tld, set mobile state to active (or perhaps a new state that means 'only mobile') and attach the Term Arsenal to this user.

(the sending of the Arsenal SMSs is done with the Notifications module or with: http://drupal.org/node/276320#comment-1076858 )

Because we would now have users in the Drupal installation without a valid email address, we could create the following 2 functions:

  set email [email@email.tld]

for instance: 0771234567 sends "set email jon@doe.com"

This will set the email address of the Drupal User with the phonenumer 0771234567 to jon@doe.com

Secondly, there could be an additional tab on the /user pages called 'SMS my Password' with a field for MobilePhone. Upon submit it would send an SMS to the provided phonenumber with the username & password for the website.

In emerging markets this could create a very nice mix between web-based and mobile users. It would also allow people to gradually move from a mobile to a web-presence.

Comments

cglusky’s picture

Do we really need to create a user? Not sure how something like Simplenews handles anonymous users subscribing? Have not had a chance to look at the code. Also a possibility to implement your idea via dotgo.com, but that would really not require anything from SMS Framework. Have not looked much at dotgo other than to test what it gives back from some of my domains.

Sorry, I don't think I really did anything but ask more questions.

R,
Coby

batje’s picture

Do we really need to create a user?

That depends a bit on what you ultimately want to do. Difference with Simplenews is that SMS is not just outbound, but also inbound. If you want to use the framework for example for Microblogging, creating a user would allow you to do that. In the development world there are also a few Q&A scenarios where the people who ask questions dont have email, but the people anwsering them have. With Drupal, they could use one system. Also, once the have-nots come online, which is bound to happen, they can make the transition pretty seamlessly.

Creating a user would also fit in with http://drupal.org/node/276320 as it would store all user/members in one object: User.

But having stuff parameterized & optional is never a bad thing. Twice the amount of work, though :-)

Not sure how something like Simplenews handles anonymous users subscribing?
(it stores all subscriptions seperately, and allows the admin to sync users. there is also a sync-per-role module. Using Views is 100% more powerfull, you can email/sms out based on a completely dynamic filter (subscribed might be one of them). In Customer Relationship Management terminology this is called Segmentation. Quite a powerfull marketing tool. (SMS all clients that did an ubercart transaction of more than 100USD in the last month, for example)

Dotgo

This seems to be SMS powered, not so? If you auto-create users, you could do some nice user-tracking in the backend. It seems like a 'send-one-sms, we will send you plenty of marketing back' model. knowing the users would be rather essential here, especially if you want to morph this into a 'social network' later. and doesnt everyone want one of those, these days?

socialnicheguru’s picture

this is a great feature request and I have been looking for something like this.

I would like to keep as much of this inside of Drupal as possible.

Chris

mitchell’s picture

This is possible with Rules.

hunmonk’s picture

Assigned: Unassigned » hunmonk

i already have code in production that does user creation/login via SMS. it's not using the SMS framework at this time, but after a discussion with Will we've decided that this code should live in the SMS Framework. i'll be taking this on in the next few weeks.

necessary tasks:

  1. port my existing code to 6.x
  2. port it to use SMS Framework API calls instead of the custom stuff i'm doing now

couple of thoughts i have based on what's been discussed already:

  • i haven't played with it, but have been told that rules is a pretty heavy framework. this module will provide a lightweight solution for the most common use cases.
  • i really don't think this module should do anything except:
    • examine the incoming message, and either register the user or log them in if they already exist
    • invoke a hook to allow other modules to take action on the registration/login

    Then people can go hog wild with all kinds of use cases in their own modules, without bloating this one.

mfb’s picture

Subscribing. I also wrote a module that handles this (for Vozmob) but I feel like the SMS Framework API could be improved. E.g. better handling of country code when looking up users. Also, some standard way to store and identify carriers that works across different gateways would be a nice-to-have.

venusrising’s picture

subscribing

Leeteq’s picture

+1/subscribing

hunmonk’s picture

Status: Active » Fixed

the tasks from #5 have been committed to the module.

the registration/login functionality in this module isn't terribly secure, unfortunately -- since we simply trust the incoming SMS number as the person's credentials (i have no idea how easy this is to spoof via any of the other gateways, but it is trivial to do it via the incoming email gateway). we should definitely think about this more.

the one other thing that might need to be addressed is mapping the user's gateway to their gateway settings in the {sms_user} table upon registration. i haven't spent any time trying to figure out how to do this, but i do feel like it should be addressed in it's own issue.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.