Sim808 Fixed Fail

Hello everybody.
I'm using the gps module Itead SIM808 on Arduino MEGA.
https://www.itead.cc/wiki/SIM808_GSM/GPRS/GPS_Module

But I'm going through some difficulties. I'm using the following code, it's the example of the recommended library.

/*
 * NOTE:If you use the new SIM808 please modify Gps.h definition,
 *  //#define  GPS_GNSS    //If you use the chip is the new SIM808 of the open definition
 *   and uncomment  of lines from 68 to 73 and comment of lines from 78 to 88.
 *If If you use the  old SIM808 or SIM908 please modify Gps.h definition,
 *	//#define  GPS_OLD   //If you use the chip is theold SIM808 or SIM908 of the open definition
 *	 and uncomment of lines from 78 to 88 and comment  of lines from 68 to 73
 */			

//To change pins for Software Serial, use the two lines in GSM.cpp.
///If you use Maga to remember,uncomment Frist lines in HWSerial.h "#define MEGA"

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to start a connection as client.

#include "SIM900.h"
#include <SoftwareSerial.h>
//#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"
#include "gps.h"



//InetGSM inet;
//CallGSM call;
//SMSGSM sms;
GPSGSM gps;

char lon[15];
char lat[15];
char alt[15];
char time[20];
char vel[15];
char msg1[5];
char msg2[5];

int stat;
char inSerial[20];
int i=0;
boolean started=false;

void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(2400)) {
          Serial.println("\nstatus=READY");
          gsm.forceON();	//To ensure that SIM908 is not only in charge mode
          started=true;
     } else Serial.println("\nstatus=IDLE");

     if(started) {
          //GPS attach
          if (gps.attachGPS())
               Serial.println("status=GPSREADY");
          else Serial.println("status=ERROR");

          delay(30000);	//Time for fixing

          //If you use the new SIM808 please use the following code

          stat = gps.getStat();
          Serial.println(stat);
          if(stat == 0)
              Serial.println("FIXED FAIL");
          else if(stat == 1)
               Serial.println("FIXED OK");
          

         //If you use the old SIM808 or SIM908 please use the following code
         /*
          stat=gps.getStat();
          if(stat==1)
               Serial.println("NOT FIXED");
          else if(stat==0)
               Serial.println("GPS OFF");
          else if(stat==2)
               Serial.println("2D FIXED");
          else if(stat==3)
               Serial.println("3D FIXED");
         
          delay(5000);
          */
          //Get data from GPS
          gps.getPar(lon,lat,alt,time,vel);
          Serial.println(lon);
          Serial.println(lat);
          Serial.println(alt);
          Serial.println(time);
          Serial.println(vel);
     }
};

void loop()
{
     //Read for new byte on serial hardware,
     //and write them on NewSoftSerial.
     serialhwread();
     //Read for new byte on NewSoftSerial.
     serialswread();
};

void serialhwread()
{
     i=0;
     if (Serial.available() > 0) {
          while (Serial.available() > 0) {
               inSerial[i]=(Serial.read());
               delay(10);
               i++;
          }

          inSerial[i]='\0';
          if(!strcmp(inSerial,"/END")) {
               Serial.println("_");
               inSerial[0]=0x1a;
               inSerial[1]='\0';
               gsm.SimpleWriteln(inSerial);
          }
          //Send a saved AT command using serial port.
          if(!strcmp(inSerial,"TEST")) {
//      Serial.println("BATTERY TEST 1");
//      gps.getBattInf(msg1,msg2);
//      Serial.println(msg1);
//      Serial.println(msg2);
//      Serial.println("BATTERY TEST 2");
//      gps.getBattTVol(msg1);
//      Serial.println(msg1);
          /* 
           stat=gps.getStat();
               if(stat==1)
                    Serial.println("NOT FIXED");
               else if(stat==0)
                    Serial.println("GPS OFF");
               else if(stat==2)
                    Serial.println("2D FIXED");
               else if(stat==3)
                    Serial.println("3D FIXED");
           */         
          }
          //Read last message saved.
          if(!strcmp(inSerial,"MSG")) {
               Serial.println(msg1);
          } else {
               Serial.println(inSerial);
               gsm.SimpleWriteln(inSerial);
          }
          inSerial[0]='\0';
     }
}

void serialswread()
{
     gsm.SimpleRead();
}

When I run the code I get the message "Fixed fail", even outside de building.
My pinmap is:
TX18 Arduino - RX module
RX19 Arduino - TX module
5V Arduino - Vio module
Grd Arduino - Grd module

Can anybody help me?
thanks so much

Do you know whether you have an old SIM808 or a new one? What values do you get printed for lat lon etc. after the failure message?

Yes,is the new SIM808.
After running the code appears this:

status=GPSREADY
ATT: OK
RIC: 
+CGNSINF: 1,0,20170617220713.000,,,,0.00,0.0,0,,,,,,2,0,,,31,,

OK

ATT: OK
RIC: 
+CGNSINF: 1,0,20170617220713.000,,,,0.00,0.0,0,,,,,,2,0,,,31,,

OK

0
FIXED FAIL
ATT: OK
RIC: 
+CGNSINF: 1,0,20170617220714.000,,,,0.00,0.0,0,,,,,,2,0,,,31,,

OK

ATT: OK
RIC: 
+CGNSINF: 1,0,20170617220714.000,,,,0.00,0.0,0,,,,,,2,0,,,31,,

OK




20170617220714.000
0.00
ATT: OK
RIC: 
OK