I have been trying to get some information on how a GPRS module can communicate bidirectionally with a PC that is connected to the Internet via a static IP address. I have reviewed the available posts on this forum as well as a few others and have read a few tutorials on this topic. Following is what I managed to gather so far and would like to get the expert opinion of fellow members on this topic.
Please feel free to add your own suggestions and notes as you see fit.
1 - The PC cannot directly initiate a connection with the GPRS module. A data session ALWAYS has to be initiated by the GPRS module first before the PC can talk to it.
2 - The PC is able to talk to the GPRS module only via the dynamic IP address that is assigned by the GGSN on the network. The PC is able to access this IP address ONLY AFTER the GPRS module initiates a data session. This IP address can change if the GPRS connection is terminated for whatever reason (i.e. bythe user or the network or due to an unexpected link failure). In case of such terminations, the GPRS module has to re-initiate a new PDP session for the PC to talk to the module again. Otherwise, the PC will not be able to send data to the GPRS module because it does not know the renewed IP address assigned to the module after a reconnection to the GSM network.
3 - As discussed in M2M.com's various posts, the only way for the PC to initiate a data session with the GPRS module is to send an SMS with a content equivalent to "call home" that prompts the GPRS module to start a data session to receive the pending data from the PC.
4 - There is no method to predefine a table of fixed IP addresses on a GPRS module to use during data sessions. The IP address assignments are ALWAYS done by the GSM network that the GPRS module is registered to and they cannot be known or fixed in advance. No assumptions can be made on the pool of IP addresses that can be assigned to the GPRS module.
Thank you for all your input and interest in this discussion.
Some operators do offer a Fixed IP address for your mobile devices. You will still need to initiate the GPRS session to establish communication with the device; however, the IP address would be the same for every session. Please note that this is not necessarily a Public addressable IP address but a Private IP address that is accessible via your VPN connectivity to the device.
You may just simply ask your local mobile operator. The solution will be as follow:
For m2m, I assume your device with mobile operator SIM cards and communicate with your server in your site.
Mobile operators can offer fixed private IP for each SIM which is done by operator, you have nothing to do on it. After that, you need to set up a VPN on internet (Low cost solution), or a leased line (Higher cost but more security and commited performance) between your server site to mobile operator data center. If VPN is used, normally this will be IPSec VPN by routers and firewall setup.
Usually, mobile operators can offer you this end to end solution.
Thanks for these valuable pointers. So the VPN is going to be established between my servers and the mobile operator's data centre. That is a good starting point for me. I guess I will need to check that with the operator too to see if they are OK with the VPN setup and there are no problems as far as they are concerned.
From a security perspective, once I establish my VPN, does the mobile operator have access to the raw data during its transit at all or is it end-to-end secure?
Correct, the standard supports both directions but hardly anybody has implemented the "Mobile Terminated" direction.
Besides SMS, you can also use Circuit Switched Data or simple Voice calls as a "wake-up" mechanism. This may be cheaper, as the device doesn't have to actually answer the call.
The usual way of doing this (in my experience) is requesting a private APN from your service provider. You then set up a RADIUS server on your side and connect this to the GGSN through an IPSEC tunnel. Once you have the RADIUS server up and running you can either assign your devices static IPs or (if you have many devices which is not online all the time) set up a link between the RADIUS server and the PC program/server where you are able to retrieve, based on the IMSI or ICCID, the current dynamically assigned IP address given to a device
|Are you a mobile operator interested in being featured here? Find out how.|