Функція answerCall()
Клас GSMVoiceCall
answerCall()
Приймає вхідний голосовий виклик. Повернення методу є різними, залежно від режиму модема (асинхронний чи синхронний), деталі нижче.
Синтаксис
voice.answerCall()Параметри
немаПовертає
intВ асинхронному режимі answerCall() повертає 0, якщо команда досі виконується, 1, якщо успішно та >1 у разі помилки. У синхронному режимі повертає 1, якщо дзвінок прийнятий, 0, якщо ні.
Приклад
#include <GSM.h>
// PIN-номер
#define PINNUMBER ""
// ініціалізувати приклад бібліотеки
GSM gsmAccess; // включити параметр істини для активації налагодження
GSMVoiceCall vcs;
char numtel[20]; // буфер для вхідного дзвінка
void setup()
{
// ініціалізувати послідовні зв’язки
Serial.begin(9600);
Serial.println("Отримати голосовий дзвінок");
// стан підключення
boolean notConnected = true;
// Розпочати роботу GSM-шилда
// Якщо SIM має PIN, передайте його як параметр begin () у лапках
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Не підключено");
delay(1000);
}
}
// Щоб переконатися, що модем отримує правильні сповіщення про вхідні події
vcs.hangCall();
Serial.println("Очікування дзвінка");
}
void loop()
{
// Перевірка статусу голосового дзвінка
switch (vcs.getvoiceCallStatus())
{
case IDLE_CALL: // Нічого не відбувається
break;
case CALLING: // Це не має трапитися, так як ми не здійснюємо дзвінок
Serial.println("Виклик");
break;
case RECEIVINGCALL: // Так! Хтось нам дзвонить
Serial.println("Отримання дзвінка");
// Отримати номер абонента
vcs.retrieveCallingNumber(numtel, 20);
// Надрукувати номер абонента
Serial.print("Номер:");
Serial.println(numtel);
// Відповісти на дзвінок, встановити виклик
vcs.answerCall();
break;
case TALKING: // У цьому випадку виклик буде здійснений
Serial.println("Розмова. Введіть рядок, щоб перервати");
while(Serial.read()!='\n')
delay(100);
vcs.hangCall();
Serial.println("Повісити. Очікування дзвінкаl.");
break;
}
delay(1000);
}
Повернутись до головної

Коментарі 0