Описание
Метод объекта GSMVoiceCall возвращает текущее состояние голосового вызова.
Синтаксис
voice.getVoiceCallStatus();
Параметры
voice - объект класса GSMVoiceCall.
Возвращаемые значения
возвращает одно из следующих значений - IDLE_CALL (ожидание вызова), CALLING (вызов), RECEIVINGCALL (прием вызова), TALKING (разговор)
Пример
// подключаем библиотеку
#include <GSM.h>
// PIN-код. Если на вашей SIM-карте установлен 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);
}
Смотрите также:
Конструктор GSMVoiceCall
ready()
voiceCall()
answerCall()
hangCall()
retrieveCallingNumber()
Библиотека GSM
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/GSMVCSGetVoiceCallStatus |