Removed all phone and bluetooth fxns
And keeping only most basic SMS
This commit is contained in:
		@@ -439,88 +439,6 @@ public:
 | 
				
			|||||||
    return TinyGsmIpFromString(getLocalIP());
 | 
					    return TinyGsmIpFromString(getLocalIP());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Phone Call functions
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool setGsmBusy(bool busy = true) TINY_GSM_ATTR_NOT_AVAILABLE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callAnswer() {
 | 
					 | 
				
			||||||
    sendAT(GF("A"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Returns true on pick-up, false on error/busy
 | 
					 | 
				
			||||||
  bool callNumber(const String& number) {
 | 
					 | 
				
			||||||
    if (number == GF("last")) {
 | 
					 | 
				
			||||||
      sendAT(GF("DLST"));
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      sendAT(GF("D\""), number, "\";");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (waitResponse(5000L) != 1) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (waitResponse(60000L,
 | 
					 | 
				
			||||||
        GF(GSM_NL "+CIEV: \"CALL\",1"),
 | 
					 | 
				
			||||||
        GF(GSM_NL "+CIEV: \"CALL\",0"),
 | 
					 | 
				
			||||||
        GFP(GSM_ERROR)) != 1)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int rsp = waitResponse(60000L,
 | 
					 | 
				
			||||||
              GF(GSM_NL "+CIEV: \"SOUNDER\",0"),
 | 
					 | 
				
			||||||
              GF(GSM_NL "+CIEV: \"CALL\",0"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int rsp2 = waitResponse(300L, GF(GSM_NL "BUSY" GSM_NL), GF(GSM_NL "NO ANSWER" GSM_NL));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return rsp == 1 && rsp2 == 0;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callHangup() {
 | 
					 | 
				
			||||||
    sendAT(GF("H"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // 0-9,*,#,A,B,C,D
 | 
					 | 
				
			||||||
  bool dtmfSend(char cmd, unsigned duration_ms = 100) {
 | 
					 | 
				
			||||||
    duration_ms = constrain(duration_ms, 100, 1000);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // The duration parameter is not working, so we simulate it using delay..
 | 
					 | 
				
			||||||
    // TODO: Maybe there's another way...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //sendAT(GF("+VTD="), duration_ms / 100);
 | 
					 | 
				
			||||||
    //waitResponse();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+VTS="), cmd);
 | 
					 | 
				
			||||||
    if (waitResponse(10000L) == 1) {
 | 
					 | 
				
			||||||
      delay(duration_ms);
 | 
					 | 
				
			||||||
      return true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return false;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Audio functions
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool audioSetHeadphones() {
 | 
					 | 
				
			||||||
    sendAT(GF("+SNFS=0"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool audioSetSpeaker() {
 | 
					 | 
				
			||||||
    sendAT(GF("+SNFS=1"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool audioMuteMic(bool mute) {
 | 
					 | 
				
			||||||
    sendAT(GF("+CMUT="), mute);
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
   * Messaging functions
 | 
					   * Messaging functions
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -445,18 +445,6 @@ set_dns:
 | 
				
			|||||||
    return TinyGsmIpFromString(getLocalIP());
 | 
					    return TinyGsmIpFromString(getLocalIP());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Phone Call functions
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool setGsmBusy(bool busy = true) TINY_GSM_ATTR_NOT_AVAILABLE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callAnswer() TINY_GSM_ATTR_NOT_AVAILABLE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callNumber(const String& number) TINY_GSM_ATTR_NOT_AVAILABLE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callHangup() TINY_GSM_ATTR_NOT_AVAILABLE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
   * Messaging functions
 | 
					   * Messaging functions
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -331,28 +331,6 @@ public:
 | 
				
			|||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool enableBluetooth() {
 | 
					 | 
				
			||||||
    uint16_t state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+BTPOWER=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool disableBluetooth() {
 | 
					 | 
				
			||||||
    uint16_t state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+BTPOWER=0"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
    During sleep, the SIM800 module has its serial communication disabled. In order to reestablish communication
 | 
					    During sleep, the SIM800 module has its serial communication disabled. In order to reestablish communication
 | 
				
			||||||
    pull the DRT-pin of the SIM800 module LOW for at least 50ms. Then use this function to disable sleep mode.
 | 
					    pull the DRT-pin of the SIM800 module LOW for at least 50ms. Then use this function to disable sleep mode.
 | 
				
			||||||
@@ -599,56 +577,6 @@ public:
 | 
				
			|||||||
    return TinyGsmIpFromString(getLocalIP());
 | 
					    return TinyGsmIpFromString(getLocalIP());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Phone Call functions
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool setGsmBusy(bool busy = true) {
 | 
					 | 
				
			||||||
    sendAT(GF("+GSMBUSY="), busy ? 1 : 0);
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callAnswer() {
 | 
					 | 
				
			||||||
    sendAT(GF("A"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Returns true on pick-up, false on error/busy
 | 
					 | 
				
			||||||
  bool callNumber(const String& number) {
 | 
					 | 
				
			||||||
    if (number == GF("last")) {
 | 
					 | 
				
			||||||
      sendAT(GF("DL"));
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      sendAT(GF("D"), number, ";");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    int status = waitResponse(60000L,
 | 
					 | 
				
			||||||
                              GFP(GSM_OK),
 | 
					 | 
				
			||||||
                              GF("BUSY" GSM_NL),
 | 
					 | 
				
			||||||
                              GF("NO ANSWER" GSM_NL),
 | 
					 | 
				
			||||||
                              GF("NO CARRIER" GSM_NL));
 | 
					 | 
				
			||||||
    switch (status) {
 | 
					 | 
				
			||||||
    case 1:  return true;
 | 
					 | 
				
			||||||
    case 2:
 | 
					 | 
				
			||||||
    case 3:  return false;
 | 
					 | 
				
			||||||
    default: return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callHangup() {
 | 
					 | 
				
			||||||
    sendAT(GF("H"));
 | 
					 | 
				
			||||||
    return waitResponse() == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // 0-9,*,#,A,B,C,D
 | 
					 | 
				
			||||||
  bool dtmfSend(char cmd, int duration_ms = 100) {
 | 
					 | 
				
			||||||
    duration_ms = constrain(duration_ms, 100, 1000);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+VTD="), duration_ms / 100); // VTD accepts in 1/10 of a second
 | 
					 | 
				
			||||||
    waitResponse();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+VTS="), cmd);
 | 
					 | 
				
			||||||
    return waitResponse(10000L) == 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
   * Messaging functions
 | 
					   * Messaging functions
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
@@ -679,162 +607,6 @@ public:
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int8_t getSMSInterrupt(void){
 | 
					 | 
				
			||||||
    sendAT(GF("+CFGRI?"));
 | 
					 | 
				
			||||||
    if(waitResponse(GF(GSM_NL "+CFGRI:")) != 1) return -1;
 | 
					 | 
				
			||||||
    return stream.readStringUntil('\n').toInt();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool setSMSInterrupt(uint8_t status){
 | 
					 | 
				
			||||||
    sendAT(GF("+CFGRI="), status);
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  int8_t countSMS(void){
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return -1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+CPMS?"));
 | 
					 | 
				
			||||||
    if(waitResponse(GF(GSM_NL "+CPMS:")) != 1) return -1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    streamSkipUntil(',');
 | 
					 | 
				
			||||||
    uint8_t count = stream.readStringUntil(',').toInt() - 1;
 | 
					 | 
				
			||||||
    waitResponse();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return count;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool deleteSMS(){
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGDA=\"DEL ALL\""));
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool deleteSMS(uint8_t i){
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGD="), i);
 | 
					 | 
				
			||||||
    if(waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  String deleteSMSOpt() {
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGD=?"));
 | 
					 | 
				
			||||||
      if (waitResponse() != 1) {
 | 
					 | 
				
			||||||
        return "";
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (waitResponse(10000L, GF(GSM_NL "+CMGD::")) != 1) {
 | 
					 | 
				
			||||||
        return "";
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
        stream.readStringUntil('"');
 | 
					 | 
				
			||||||
        String indexes = stream.readStringUntil('"');
 | 
					 | 
				
			||||||
        stream.readStringUntil(',');
 | 
					 | 
				
			||||||
        String options = stream.readStringUntil('\n');
 | 
					 | 
				
			||||||
        return indexes;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool readSMS(uint8_t i, String& msg){
 | 
					 | 
				
			||||||
    // set message format to text mode
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // show sms text mode parameters
 | 
					 | 
				
			||||||
    sendAT(GF("+CSDH=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // set GSM charset
 | 
					 | 
				
			||||||
    sendAT(GF("+CSCS=\"GSM\""));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGR="), i);
 | 
					 | 
				
			||||||
    uint8_t cmgrResponse = waitResponse(GF(GSM_NL "+CMGR:"));
 | 
					 | 
				
			||||||
    if ( cmgrResponse == 1 ) {
 | 
					 | 
				
			||||||
      streamSkipUntil('\n');
 | 
					 | 
				
			||||||
      msg = stream.readStringUntil('\n');
 | 
					 | 
				
			||||||
      return true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return false;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  uint8_t getNewSMSIndex() {
 | 
					 | 
				
			||||||
    if (waitResponse(GF(GSM_NL "+CMTI:")) != 1) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    streamSkipUntil(',');
 | 
					 | 
				
			||||||
    int res = stream.readStringUntil('\n').toInt();
 | 
					 | 
				
			||||||
    return res;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool readSMSRaw(uint8_t i, String& msg) {
 | 
					 | 
				
			||||||
    // set message format to text mode
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // show sms text mode parameters
 | 
					 | 
				
			||||||
    sendAT(GF("+CSDH=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // set GSM charset
 | 
					 | 
				
			||||||
    sendAT(GF("+CSCS=\"GSM\""));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // get message by index
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGR="), i);
 | 
					 | 
				
			||||||
    uint8_t cmgrResponse = waitResponse(GF(GSM_NL "+CMGR:"));
 | 
					 | 
				
			||||||
    if ( cmgrResponse != 1 ) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg = stream.readStringUntil('\n') + '\n'
 | 
					 | 
				
			||||||
        + stream.readStringUntil('\n') + '\n';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) {
 | 
					 | 
				
			||||||
      return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool readAllSMSRaw(String& msg) {
 | 
					 | 
				
			||||||
    // set message format to text mode
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // show sms text mode parameters
 | 
					 | 
				
			||||||
    sendAT(GF("+CSDH=1"));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
    // set GSM charset
 | 
					 | 
				
			||||||
    sendAT(GF("+CSCS=\"GSM\""));
 | 
					 | 
				
			||||||
    if (waitResponse() != 1) return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // get all messages
 | 
					 | 
				
			||||||
    sendAT(GF("+CMGL=\"ALL\""));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const unsigned long timeout = 10000L;
 | 
					 | 
				
			||||||
    unsigned long startMillis = millis();
 | 
					 | 
				
			||||||
    bool isTimeout = false;
 | 
					 | 
				
			||||||
    String line;
 | 
					 | 
				
			||||||
    do {
 | 
					 | 
				
			||||||
      line = stream.readStringUntil('\n');
 | 
					 | 
				
			||||||
      line.trim();
 | 
					 | 
				
			||||||
      if ( line != ""  && line != "OK" ) {
 | 
					 | 
				
			||||||
        msg = msg + line + String("\r\n");
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      isTimeout = (millis() - startMillis) > timeout;
 | 
					 | 
				
			||||||
      delay(0);
 | 
					 | 
				
			||||||
      if ( isTimeout ) {
 | 
					 | 
				
			||||||
        DBG("timeout");
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    } while (line != "OK");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (line == "OK");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool sendSMS(const String& number, const String& text) {
 | 
					  bool sendSMS(const String& number, const String& text) {
 | 
				
			||||||
    sendAT(GF("+CMGF=1"));
 | 
					    sendAT(GF("+CMGF=1"));
 | 
				
			||||||
    waitResponse();
 | 
					    waitResponse();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -454,19 +454,6 @@ public:
 | 
				
			|||||||
  IPAddress localIP() {
 | 
					  IPAddress localIP() {
 | 
				
			||||||
    return TinyGsmIpFromString(getLocalIP());
 | 
					    return TinyGsmIpFromString(getLocalIP());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Phone Call functions
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool setGsmBusy(bool busy = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callAnswer() TINY_GSM_ATTR_NOT_IMPLEMENTED;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callNumber(const String& number) TINY_GSM_ATTR_NOT_IMPLEMENTED;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool callHangup() TINY_GSM_ATTR_NOT_IMPLEMENTED;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
   * Messaging functions
 | 
					   * Messaging functions
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user