diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index f553f54..deba450 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -836,6 +836,10 @@ class TinyGsmXBee return sendATGetString(GF("IM")); } + String getIMSIImpl() { + return sendATGetString(GF("II")); + } + SimStatus getSimStatusImpl(uint32_t) { return SIM_READY; // unsupported } diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 6efc403..683795b 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -117,18 +117,3 @@ uint32_t TinyGsmAutoBaud(T& SerialAT, uint32_t minimum = 9600, } #endif // SRC_TINYGSMCOMMON_H_ - -// Asks for International Mobile Subscriber Identity IMSI via the AT+CIMI command -#define TINY_GSM_MODEM_GET_IMSI_CIMI() \ - String getIMSI() { \ - sendAT(GF("+CIMI")); \ - if (waitResponse(GF(GSM_NL)) != 1) { \ - return ""; \ - } \ - String res = stream.readStringUntil('\n'); \ - waitResponse(); \ - res.trim(); \ - return res; \ - } - - diff --git a/src/TinyGsmGPRS.tpp b/src/TinyGsmGPRS.tpp index 00bf1b7..7a08598 100644 --- a/src/TinyGsmGPRS.tpp +++ b/src/TinyGsmGPRS.tpp @@ -38,6 +38,10 @@ class TinyGsmGPRS { String getIMEI() { return thisModem().getIMEIImpl(); } + // Asks for International Mobile Subscriber Identity IMSI + String getIMSI() { + return thisModem().getIMSIImpl(); + } SimStatus getSimStatus(uint32_t timeout_ms = 10000L) { return thisModem().getSimStatusImpl(timeout_ms); } @@ -105,6 +109,16 @@ class TinyGsmGPRS { return res; } + // Asks for International Mobile Subscriber Identity IMSI via the AT+CIMI + // command + String getIMSIImpl() { + thisModem().sendAT(GF("+CIMI")); + String res = thisModem().stream.readStringUntil('\n'); + thisModem().waitResponse(); + res.trim(); + return res; + } + SimStatus getSimStatusImpl(uint32_t timeout_ms = 10000L) { for (uint32_t start = millis(); millis() - start < timeout_ms;) { thisModem().sendAT(GF("+CPIN?"));