//Initial configuration main function.
int GSM3ShieldV1AccessProvider::ModemConfiguration(char* pin)
{
	theGSM3ShieldV1ModemCore.setPhoneNumber(pin);
	theGSM3ShieldV1ModemCore.openCommand(this,MODEMCONFIG);
	theGSM3ShieldV1ModemCore.setStatus(CONNECTING);
	ModemConfigurationContinue();
	return theGSM3ShieldV1ModemCore.getCommandError();
}
int SIM808AccessProvider::ModemConfiguration(char* pin){
	SIM808ModemCore_t.setPhoneNumber(pin);
	SIM808ModemCore_t.openCommand(this,MODEMCONFIG);
	SIM808ModemCore_t.setStatus(CONNECTING);
	ModemConfigurationContinue();

	return SIM808ModemCore_t.getCommandError();
}
void GSM3ShieldV1AccessProvider::manageResponse(byte from, byte to)
{
	switch(theGSM3ShieldV1ModemCore.getOngoingCommand())
	{
		case MODEMCONFIG:
			ModemConfigurationContinue();
			break;
		case ALIVETEST:
			isModemAliveContinue();
			break;
	}
}
/*
SIM808AccessProvider::~SIM808AccessProvider(){
	if (SIM808ModemCore_t.activeProvider_old != 0){
		SIM808ModemCore_t.activeProvider = SIM808ModemCore_t.activeProvider_old;
	}
}
*/
void SIM808AccessProvider::manageResponse(int from, int to){
	switch (SIM808ModemCore_t.getOngoingCommand())
	{
	case MODEMCONFIG:
#if SERIALREC
		Serial.println("received data...");
#else
		ModemConfigurationContinue();
#endif
		break;
	case ALIVETEST:
		isModemAliveContinue();
		break;
	default:
		break;
	}
}