Does receiving of sms affects the traffic bandwidth of gsm modem - sms

There is a hardware system that uses a gsm shield to have an access to the internet. The system should be reliable and all ddos attack vectors are taken into account.
We afraid of sms ddos attack, that can be realized via sending too much sms messages (or especially malformed sms/invisible sms/binary sms). The question is does the receiving of sms hampers the traffic sending for gsm shield/modem? What happens with traffic sending at the moment when the sms is received? How many time the shield /modem is out of sending traffic service per each sms?

SMSs are usually transmitted over a control channel, like the SDCCH (Stand-alone Dedicated Control Channel) or the FACCH (Fast Associated Control Channel). These are the same channels which are used to initiate and hold a call. It is possible to receive SMS while a call is in progress by temporarily reallocating part of the data channel to a control channel (e.g. SDCCH) and using this bandwidth to transmitt/receive an SMS.
If DDOS is possible, I think, depends more on the bandwidth allocation policy of the mobile network operator.
Of course, since the free air used for signal transmission is a shared medium for everyone in a cell, it is always possible to generate heavy load by gathering a group of people all sending SMS and making phone calls at the same time in close proximity of e.g. your GSM shield, effectively staging a DDOS attack if it's done on purpose.

Related

Is SMS Over IMS That Important

2G and 3G have been sunset in few countries and other countries will be sunsetting them soon. VoLTE feature of LTE modules is necessary to be able to do calls over 4G without 2G/3G fallback need.
Native SMS can be transmitted or received over 2G/3G circuit switched or packet switched. when 2G/3G are completely removed and we are left with 4G and 5G only. is the only way for SMS to continue is the use of IMS or are there any different solutions?
No. SMS over IMS is not the only way for the SMS to be transmitted in 4G/5G.
In both 4G and 5G (SA) architectures you can send an SMS in two ways: over IP/IMS, or over NAS (SG-SMS).
So for the equipment to send an SMS over IMS you need to first register on IMS (either VoLTE or VoWifi) including +g.3gpp.smsip parameter into the Contact header of your IMS SIP REGISTER.
If you do not inform SMS over IMS capability to the network in that registration, you'll send/receive SMS over NAS. It's very similar to an SMS sent over 2G/3G network, in the sense that the data/text is sent into a control channel and not a data channel.
The ideal way is to send SMS over IP/IMS (IMS is meant to transfer any type of data: text/audio/video/etc.), but there's the fallback solution in both 5GS and 4G networks which is SMS over NAS signaling. Because IMS capability varies a lot from operator to operator, the SMS over NAS is a very common scenario.
For more details, refer to the specifications: 3GPP TS 24.341 (Support of SMS over IP networks) and 3GPP TS 24.301 (Non-Access-Stratum protocol for EPS).
SMS can be sent over IMS using the IMS Core.
If there is an existing LTE network but no IMS support, still the SMS can be sent or received over the SG interface in the LTE network.
Many operators use the SG interface to deliver and receive SMS.

Receive SMS faster (SIM800)

Is there a way to receive SMS messages sent to a GSM module (like sim800) as soon as the module boots up?
Usually if the SMS is sent while the receiving module is off, and then boots up the SMS messages take tens of minutes to arrive. However if the module is turned on, the messages arrive almost immediately.
Is there a way to signal the network that we are now connected and request all SMS messages?
I have tried network deregistration/registration (AT+COPS=2 AT+COPS=0) with no results
Not having a lot of experience on this module, I believe this is rather a question about triggering the network provider to send SMS sooner (e.g. as soon as you're registered). This might depend on the network provider you're connecting to.
With a standard phone I've made the experience that triggering some network activity (e.g. calling someone or sending an SMS myself) seems to flush any SMS queues that they have waiting for me. You might try sending an SMS as soon as you're up

What software/hardware is needed to receive (and respond to) SMS from multiple machines?

What software/hardware do the SMS centers use to make the following possible:
An SMS is received to a number. The SMS is routed to one of X machines (Mac/PC). An operator responds to the sender.
It seems that a GSM modem is needed? However, I have trouble understanding the architecture.
Is there any plug-and-play solution? Are there any specific frameworks/languages/tools for building such a system? How do you route incoming messages to machines? How do you queue outgoing text messages?
For getting SMS there are at least 2 types of numbers exist: real (simcards) and virtual (VLN).
Real numbers:
-simcards you need to own and to insert into devices called gsm-gateways or gsm-modems, gsm-modem pools etc. These devices are like collection of many mobile phones, they will collect and/or keep/forward all incoming SMS (to some DB, to server/script etc.)
-to make lot of users manage SMS you need some tool. Most common - webserver with appropriate GUI software. Webserver collects all SMS into DB (by downloading them from gsm-gateways via protocols like SMPP or HTTP, or by geting as HTTP Requests from devices). Via some WEB-GUI you can make messages available to your operators for replying.
Virtual numbers (VLN) (provided by most SMS operators):
-no need for hardware. Just contract operator for numbers, then connect via HTTP API or some protocol like SMPP for collecting inbound SMS on these numbers, or get them on your server as HTTP Requests from operator's server.
-WEB-GUI the same as for real numbers
So basically the flow is:
for Real numbers: SMS Origination from phone -> GSM-operator (Vodaf... etc) -> SIM-Card (Vodaf...) in GSM-gateway -> GSM-Gateway API -> Your Web-GUI
for Virtual numbers: SMS Origination from phone -> GSM-operator (Vodaf... etc) -> SMS Service provider (Clicat... etc.) API -> Your Web-GUI
There are some software titles free and paid available for each task.
Any organisation with a large amount of traffic will most likely use a connection to an opertors SMSC (SMS Message Centre in an operators network) via an IP interface and the SMPP protocol.
The SMPP protocol is an open standard designed to bridge the IP web world to the CCITT No.7 messaging world in the telcos, and allow web services be built to send an receive SMS's.
There are also providers who provide aggregation services for SMS - some are independent and some are 'preferred partners' of an operator (e.g. http://developer.att.com/technical-library/app-certification-policies/working-with-aggregators)

Receiving SMS with GSM modem

I read that a GSM modem can only receive up to 30 SMS per minute. What would you do if you need to receive more than that? Is there another technology?
I think you might want something different to those answers listed at What are the best practices for building an SMS server
If you just have one service that is running where you want to receive many SMS then it would be most cost effective (and simplest) to avoid integrating with a mobile network operator and instead use a SMS aggregator. These often call themselves SMS gateways, but they are independent companies and not a mobile network operator's gateway.
An SMS aggregator acts as a middle man between you and the networks - they have agreements with many network operators and this interconnection means you can link with one aggregator and get access to almost every network in the world.
Aggregator's usually advertise for outbound SMS (where you are sending an SMS from your application to a user), but they all offer inbound SMS as well. Depending on your country you could opt for a premium number or free to receive number. A premium number would mean that the person sending the text message would pay extra money to send you a message - you may want this for a commercial service in order to bill the user. A premium number would also mean you receive a share of the money the user paid to send you the text message. A free to receive number would not cost the person sending the text message anything more than it would normally cost for them to send an SMS. Almost all aggregators will charge you a monthly rental for a free to receive inbound telephone number, but no additional charge per message received.
You can expect to integrate with an aggregator using HTTP or SMPP. HTTP is usually the easiest and the aggregator will want to know where to send the HTTP post when a message is received on your telephone number. Therefore you will need some sort of service that is running to receive the HTTP post from the aggregator, and possibly a way to reply to the user by sending another HTTP post back to the aggregator asking them to forward a message to the user confirming receipt of the inbound SMS message.
SMPP is a more robust protocol and is often used for high volume SMS applications - unless you already have SMPP experience or are sending many hundreds of thousands of messages you may want to avoid SMPP as it is difficult to implement until you have a lot of experience with SMS.
Some aggregators will provide their own platform where you don't need to have your own service running. For example you could setup a simple "autoresponder" on an aggregators website, this would receive the inbound message from the user, then autopmatically respond with a "thank you message". All interaction is done by the aggregator and you can log on periodically to download statistics or look at the messages people have sent.
Popular aggregators are:
InfoBip
Silverstreet
mBlox
If you do not have your own platform for managing the SMS interaction then either use the aggregator's own platform of install your own SMSC gateway. Some SMSC's are:
Kannel - Open Source, fairly difficult to install and manage.
NowSMS - Commercial software. Powerful, windows only, easy to use SMPP integration and has a 30 day free version. Allows GSM modems, HTTP and SMPP integration. Most expensive of these options but pricing is based on number of messages you want to send OUT per second / minute so if you're not planning on sending many out and only receiving them maybe this would be a viable option. There's a cheaper version where you can use one GSM modem (mobile phone) connected to a computer with a USB lead but as you will only have one GSM modem and no aggregator's you are limited to the speed at which your device can receive inbound SMS.
Ozeki - Commercial software. Lots of documentation available and the support team are very responsive. You can add local GSM modems or aggregator's using HTTP or SMPP.

Sending an SMS myself

I'm taking shots in the dark here. I'd like to create a web service where eventually I send an SMS by using my own hardware. I'm not sure what I need in order to send an SMS myself. I don't want to use any of the existing SMS send services out there, I need to be able to send these SMS myself.
It looks like there's one opensource project in particular that deals with this, "Kannel":
http://www.kannel.org/
what I don't understand is, do I need to get a GSM modem to be able to send SMS? Do SMS gateways (like Kannel) eventually need to get to a GSM modem to send messages, or is there some other hardware you need to be able to actually send the messages?
Thanks
Just find an online SMS Gateway. These Gateway providers are your best bet since they have handled all the heavy lifting for you. Just utilize their API and you should be able to do whatever you want. Some of these gateways are free and some are not. I've included a short list below.
https://www.clickatell.com/pricing/message_cost.php
http://www.zeepmobile.com/
(Carrier based SMS transit)
http://en.wikipedia.org/wiki/List_of_carriers_providing_SMS_transit
I'm sure there are a ton more, but this will get you started.
You always need a GSM modem to send the SMS unless you use a provider that handles this for you (but they usually want money for this).
If you want to setup your own Hardware infrastructure, you have to get GSM Modem, A Sim card and use it to send SMS.
Other option, which I recommend, is to use SMS getways and use
SMPP protocol
XML or HTTP Apis
In later, you dont have to create any infrastructure and the starting cost will be very low compared to GSM Modem. You can get up and running in a day.
Note : to reduce the SMS costs, you should choose different getways for different countries. In India you can easily find getways who provides SMS at merely 3 paise
You will have to download an API that handles the sending and recieving of messages for you. I once used this in one project where i had my GSM Phone connected to my computer thru one of the COM ports. Configured the API to communicate thru the COM Port to listen to any incoming text messages also send messages thru my GSM Phone. Here is a great link to the resources i used for that project. I hope this will help. http://www.codeproject.com/KB/cs/SMS.aspx

Resources