Hallo,
ich möchte gerne mit dem Arduino und dem GSM Shield einen Sprachanruf
starten. Das klappt auch soweit ohne Probleme.
Jedoch würde ich gerne wenn eine Nummer angerufen wird und nach 5
Sekunden nicht abgenommen wurde, den Anruf beenden. Dazu muss ich ja
irgendwie den Status abfragen.
So habe ich es versucht:
unsigned long previousMillis = 0;
unsigned long interval = 5000;
previousMillis = millis();
vcs.voiceCall(Telefonnummer);
while(vcs.getvoiceCallStatus() == CALLING)
{
Serial.println((millis() - previousMillis));
if((millis() - previousMillis) > interval)
{
vcs.hangCall();
}
}
Vorher beim Herstellen der Verbindung zum GSM habe ich den asynchronen Modus aktiviert:
gsmAccess.begin(PINNUMBER,true,false);
Allerdings bleibt das Programm trotz des asynchronen Modus beim Befehl vcs.voiceCall() stehen. Durch das Ausgeben der Millisekunden konnte ich feststellen, das der nachfolgende Code erste nach ca. 30 Sekunden ausgeführt wird. Dies ist sowohl beim synchronen als auch beim asynchronen so.
Hat jemand eine Idee voran das liegen kann?
Bei Bedarf kann ich gerne den kompletten Code posten, welcher jedoch auf den Beispielprogramm 'MakeVoiceCall' basiert.
Ich bin für jede Hilfe dankbar.
Schöne Grüße
Ludwig