My first experience with cellular telemetry was Droncell (Sim900) & (Sim900D) mounted in Hexacopter with APM 2.5 board. I used allot of time studying the AT commands needed for my connections. I actually got it to work with blind connections as you can see in this video.
http://youtu.be/pV4_WlfTPq0
Bellow is all AT commands needed for initialize Dronecell trough serial interface both UDP/TCP. (Personally i prefer UDP connection instead of TCP )
If you want to test AT commands from your computer, you can use free Terminal software and connect Dronecell to usb/ftdi converter
"AT V1 E1 X1 S0=0" // Set error response and do not pickup on ring
"AT+CREG=2" // Set various notice messages and parameters
"AT+CMEE=2"
"AT+CR=1"
"AT+CRC=1"
"AT+CSNS=4"
"AT+CSMINS=1"
"AT+CSCLK=0"
"AT+CIURC=1"
"AT+CGEREP=2"
"AT+CIPMUX=0"
"AT+CIPMODE=1"
"AT+CIPCCFG=8,15,15,0"
"AT+CMUX=0,0,4,127,10,3,30,10,2"
"AT+CSTT=\"internet.public\"" //Set you APN
"AT+CIICR" //open GPRS
"AT+CIFSR" // Get local IP address
"AT+CIPSTART=\"UDP\",\"\",\"14550\"" // Start the UDP server
If you want to set the Dronecell as TCP server you need to use bellow code
AT+CGATT? //attached to GPRS ?
AT+IPR=57600
AT+IFC=2,2 //"it's better to use hardware flow control"
AT+CIPMODE=1 //Enable transparent mode
AT+CSTT="internet" //set APN
AT+CIICR //open GPRS
AT+CIFSR // Get local IP address
AT+CIPSERVER=1,1234//Start the TCP server, listening port:1234