I do this by saving the gps location info into a MySQL database on the device, and then sending it to the central server running MS SQL using a web service I wrote. I only send the data every 5 minutes so as to not cause to much traffic, but I send all of the saved locations and clear the my SQL table when I so so. Data is sent as Json and includes the lat long as well as accuracy, direction and speed. If the device can't connect to the web service because it doesn't have network service, it just a tries again in 5 minutes. I also designed the tracking so it only saves A location every 1 minute, or if the device has moved at least 200 meters. This is good enough accuracy for my client, and saves on the amount of data.