getVoiceCallStatus()
Описание
Возвращает текущее состояние голосового вызова.
Синтаксис
voice.getVoiceCallStatus();
Параметры
нет
Возвращаемые значения
char: одно из следующих значение - IDLE_CALL (ожидание вызова), CALLING (вызов), RECEIVINGCALL (прием вызова), TALKING (разговор)
Пример
// библиотеки #include <GSM.h> // PIN-код #define PINNUMBER "" // объявляем экземпляр класса GSM gsmAccess; // для включения режима отладки добавьте параметр 'true' GSMVoiceCall vcs; char numtel[20]; // буфер для хранения входящего номера телефона void setup() { // инициализируем последовательный интерфейс передачи данных Serial.begin(9600); Serial.println("Receive Voice Call"); // состояние соединения boolean notConnected = true; // запускаем GSM-плату расширения // если на вашей SIM-карте установлен PIN-код - укажите его в качестве параметра функции begin() while(notConnected) { if(gsmAccess.begin(PINNUMBER)==GSM_READY) notConnected = false; else { Serial.println("Not connected"); delay(1000); } } vcs.hangCall(); // позволяет гарантировать правильную обработку модемом входящих событий Serial.println("Waiting Call"); } void loop() { // проверяем статус голосового вызова switch (vcs.getvoiceCallStatus()) { case IDLE_CALL: // если ничего не произошло break; case CALLING: // этот участок будет пропущен, поскольку мы не совершаем звонков Serial.println("CALLING"); break; case RECEIVINGCALL: // Да! Кто-то звонит нам Serial.println("RECEIVING CALL"); // извлекаем номер звонящего абонента vcs.retrieveCallingNumber(numtel, 20); // выводим входящий номер Serial.print("Number:"); Serial.println(numtel); // отвечаем на звонок, принимая вызов vcs.answerCall(); break; case TALKING: // в случае ответа на вызов Serial.println("TALKING. Enter line to interrupt."); while(Serial.read()!='\n') delay(100); vcs.hangCall(); Serial.println("HANG. Waiting Call."); break; } delay(1000); }