SIM900 gsm shield not connecting to the network

The gsm shield blinks almost every second. The sim-card i am using supports 2G (tried the Orange and Mascom networks providers, both support 2G).

There is excellent network signal(full bars in my mobile phone). Tried several different gsm libraries even the example sketch that comes with the Arduino IDE 1.6.5

Provided the shield with external power supply 6.6V, 2A. I did a lot of research and found out that the shield CAN operate using the PC-USB power from the ArduinoUNO board .

I tried both the D2, D3 jumper setting for software and the D0, D1 for hardware. The antenna is connected to gsm shield.

I disabled the sim-card pin and checked if the sim-card can make calls and send sms with my mobile phone and it did.

bought the shield from Hong Kong via Ebay.

This is the shield: http://www.ebay.com/itm/SIM900-Quad-band-GSM-GPRS-Shield-for-Arduino-UNO-MEGA-Leonardo-/321418410538?pt=LH_DefaultDomain_0&hash=item4ad607ba2a

In the serial monitor, it gets stuck with "SMS Messages Sender" message.

#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;

// char array of the telephone number to send SMS
// change the number 1-212-555-1212 to a number
// you have access to
char remoteNumber[20]= "+26777483257";  

// char array of the message
char txtMsg[200]="Test";

void setup()
{
  // initialize serial communications
  Serial.begin(9600);

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  Serial.println("GSM initialized");
  sendSMS();
}

void loop()
{
// nothing to see here
}

void sendSMS(){

  Serial.print("Message to mobile number: ");
  Serial.println(remoteNumber);

  // sms text
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNumber);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");  
}

You haven't mentioned that you have checked so which pins is your GSM library trying to use to communicate with the shield?

I did manage to solve the problem, it was because the external 6.6v, 2A was not reaching the board. Since the shield was inserted on top of arduino uno, it got power from it which was not sufficient. Through out i was assuming power was coming from the external power supply. I realized when i separated the shield from the UNO and tried to power it alone.