Функція 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

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.