[Risolto - Gsm Shied] strano, pago anche per un semplice squillo

Salve,

dopo diversi giorni di prove utilizzando l’Arduino Gsm Shield insieme all’Arduino Uno R3, ho scoperto che sto pagando anche le chiamate effettuate in cui il ricevente ha chiuso la chiamata senza rispondere, cioè ho pagato anche un semplice squillo partito dal Gsm Shield. Questo comportamento l’ho riscontrato anche utilizzando lo sketch di esempio MakeVoiceCall.

Qualcuno di voi ne sa qualcosa a riguardo o magari sa come evitare di dover pagare anche un semplice squillo?

Forse non c’entra la scheda ma la SIM che stai usando ed il suo contratto

Pensavo anch’io, ma oltre che con Tim ho provato anche con un’altra Sim con PosteMobile e addebita anche così il costo dello squillo. E poi più faccio lungo lo squillo e più pago. Proprio strano!

Ecco lo sketch che sto usando:

#include <GSM.h>
 
GSM gsmAccess; // initialize the library instance
GSMVoiceCall vcs;
String remoteNumber="my-phone-number";
char charBuffer[20];
int digitalPir = 4; // PIR connected to digital pin 4
int statePir = 1; // variable to store the Pir state
 
void setup()
{
  pinMode(digitalPir, INPUT);
  remoteNumber.toCharArray(charBuffer, 20);
  Serial.begin(9600);
  Serial.println("\n- Starting Setup -\n");
 
  // connection state
  boolean notConnected = true;
 
  // start GSM Shield
  while(notConnected) {
    if(gsmAccess.begin()==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  Serial.println("GSM initialized!");
  Serial.println("waiting for 10s...");
  delay(10000);
}
 
void loop()
{
  statePir = digitalRead(digitalPir);
  Serial.println(statePir);
 
  if (!statePir) {
    if (vcs.voiceCall(charBuffer)) {
      delay(1000);
    }
 
    // hang up an established call
    vcs.hangCall();
 
    Serial.println("Waiting for 30s...");
    delay(30000);
  }
}

Ciao, riparti dal codice originale, e verifica di non rispondere alla chiamata (questo sì che ti costa). Nell'esempio per far smettere di suonare o davi un invio su serial monitor, o dovevi rispondere.

Ragazzi il mistero è stato risolto! XD

Era un errore mio di programmazione sullo sketch. In effetti @pitusso ricontrollando meglio, eseguendo lo sketch di esempio MakeVoiceCall lo squillo non veniva addebitato. Ad ogni modo mi sembra strano che sia riuscito (nel mio caso sbagliando...) ad addebitare uno squillo. Comunque, venendo al dunque, queste sono le righe 'malevoli':

if (!statePir) { if (vcs.voiceCall(charBuffer)) { delay(1000); } // hang up an established call vcs.hangCall();

che ho corretto in questo modo:

if (!statePir) { if (vcs.voiceCall(charBuffer)) { Serial.println("Call Established. Enter line to end"); while(vcs.getvoiceCallStatus()==TALKING); vcs.hangCall(); Serial.println("Call finished."); delay(1000); }

in questo modo ho verificato che non viene più addebitato lo squillo.