This seems like a topic that would be widely covered in the mobile digital age, but I haven't found much of anything.
What information comes with an SMS? Obviously the message text itself, and the number from which it was sent. Is there anything else included - GPS (long/lat) data perhaps? Device type? Carrier info? Does it vary by device and carrier?
I'm coming at this from the perspective of a web developer, where I can see calls to and responses from the server, which often include rich header data. I'm just curious what all could theoretically be similarly gleamed from an SMS.
This question was originally about SMS and MMS, but the two appear to be significantly different in operation
Related
Would anyone be so kind to please explain me how do I sent file, regardless of its extension (e.g. doc, docx, pdf,...) to someone's cell phone, regardless of cell phone's model/company/production year/specifications? Either via sms, mms, or whatever. I found online wide range of sms text message sending applications. Some are free, some not. Majority of them don't work and sms never arrives but few of them work. However noone of the working ones offer file sending. I would prefer but not require desktop application instead of website. Could you please tell me how to send particular file to the cell phone? Note that it is completely irrelevant what kind of cell phone it is as I am looking for complete/general solution for all cell phones. Very important: I am looking to send from either desktop or laptop computer with Windows 10 installed.
I need Read SMS Details, get SMS sender's phone number, remove read messages, sometimes broadcast SMS to all senders. It's like a Register Server. I heard it is possible to do those things. But, how to do that? Any suggestion?
Moreover, is there any restriction like iOS? e.g. iOS does not allow you send SMS at background, you have to ask user's permission. You can't access SMS database.
OK! No body answer me. After few days research. I got several great examples on GitHub. The best one is nyaruka / android-sms-relay .
SMS Relay on GitHub
Android SMS Relay
e
This is a simple SMS relayer. It essentially turns your Android phone into an SMS modem that will relay messages to an HTTP server of your choice and vice versa.
We use this quite a bit in our work, so we thought we'd open it up to the world. Note that this particular codebase is still pretty Alpha and we've been cleaning it up for the outside world. It very well might break, but we appreciate any and all testing and bug reports.
Things that make it different than other solutions:
we are backed by a database for persistence, we think that makes it less likely a message will be dropped in the case of power outages, reboots, or other issues
we have a prettier message UI than the other guys
we will toggle Wifi on or off in the case of network errors.. this can be useful in places where WiFi is not reliable as the phone will then back down to GSM when it is acting up (and automatically switch back to WiFi when it starts working again)
easy integration with our RapidSMS httprouter module. (http://github.com/nyaruka/rapidsms-httprouter)
This is still pretty early stuff, so any feedback or bug reports much appreciated.
I'm trying to figure out if this is even possible:
I'm interested in writing a simple game that could be played in a peer-to-peer setup, rather than having to go through some intermediary server. I was thinking of using something similar to how SMS works, but I don't know if those routines are accessible.
From what I understand, SMS is just a data packet with a specific structure, and on a certain port, that gets sent to a phone number as the unique identifier, rather than an IP Address. If that is the case, is it possible to use similar routines to what SMS uses in order to send messages to another phone, but in such a way that SMS will not pick it up, and if the app that would understand that packet is not running, then the data would just get ignored?
You can write Apps that send SMS and receive SMS. Some things to keep in mind:
SMS tend to be expensive, especially when compared to IP traffic.
The user must grant the permission to send and read SMS to the app. He probably won't do, beacuse he knows it's expensive.
Even if the users contract offers a SMS flat rate, providers may limit the actual number of SMS being sent or forbid automated, high-traffic usage.
SMS might be much slower than IP packets.
If a user tries to play with someone who hasn't installed the App, that poor person will have his SMS inbox flooded with those SMS.
So it's mostly a bad idea to use SMS for that purpose. Some alternatives if the users are close enouth to each other:
Use bluetooth.
Use Wifi (Most android phones won't allow ad-hoc connections, but some phones can act as acces points so that others can connect to it).
Maybe: Use NFC (only some of the newest phones have this, and I don't know if you can use NFC that way).
Use P2P over internet (which requires at least one provider to allow incoming connections on their network with a public IP, e.g. no internal NAT).
Use a server that handles the traffic between phones.
Is there any kind of standard/widely used SMS format for Android/IPhone/Windows mobile/Symbian that enables to send/recieve GPS coordinates ('geo tagged SMS')?
E.g. Garmin has peer point SMS format, that enables to send/recieve POIs or just simple points. Garmin mobiles are able parse this format and geographic part of the SMS behaves as a link, so by clicking it it can be shown on map or save to user's POIs etc.
I tried to find a similar SMS format for other mobile operating systems (or a general one...), but I have not found yet. Do you have any suggestions?
If so, is there any library that can be used to construct this kind of SMSs in .net environment?
I am developing a GIS app under .net that can be connected to a GSM modem. My plan is to implement a feature to send POI points to mobiles from my app.
Nope I'm afraid not.
An SMS is just that, a simple message, unlike MMS or voice it carries no state information, no meta data the most it has is a user defined header (For binary messages) and various protocol data unit elements that describe things like the address of the SMS central receiving server and the message length, type and char set.
If you want to do location aware stuff using SMS, then you'll
a) need to have software running on the target device, that can interrogate a built in GPS or other location aware device.
b) can respond to an inbound SMS asking it to send an SMS back with said location information in.
unless you have a web based SMS service then this is going to get very expensive very fast as most operators will charge you (at least here in the UK anyway) 0.14p per single SMS text off a standard consumer sim card, where as many bulk operators (I use Cardboard fish) will only charge you around 0.05p per SMS.
To give you an idea of the difference that's 7 SMS messages in every UK £1 on a consumer account and 20 in every UK £1 on a bulk account.
I am working on an application and one feature that would make it really useful is the ability to share some information, but the other device may not be expecting the data to be sent.
For example, if I am reading a really good book, and I realize that a friend may like it, I could use an application to send the data to him, so he could order the book from Amazon.
But, since he isn't expecting the data, I would hate for the application to be polling a server every so often, as that will be needlessly draining the battery.
Ideally it would be great if there was a way to make a phone call to the target device, send a data packet and end the call.
If it could be done and prevent the phone from ringing, then it would be very useful to me.
I am curious if there is some way to send data between devices without polling.
You can send them a message via facebook or email (e.g. here), or broadcast it with twitter.
These approaches - using an existing infrastructure for messaging - provide mechanisms for discovering your user's contacts / 'friends' and so on too.
Your can send and read SMS on phones if you have the correct permissions.
You could talk to Mashmobile who have a bigger platform that can do peer-to-peer between phones. You could imagine a hybrid that did both Mashmobile for Windows/Android/Symbian and Apple's push for iPhone users of your app.
On future phones, you could use C2DM (which is a application-specific messaging system overlay on gmail - the Android phone user has to have a Google account etc)