Функція retrieveCallingNumber()

Документація

Клас GSMVoiceCall

retrieveCallingNumber()

Отримує номер, з якого дзвонять, та зберігає його.

Синтаксис
voice.retrieveCallingNumber(номер, розмір)

Параметри
номер: масив символів для зберігання номера
розмір: розмір масиву

Повертає
int
В асинхронному режимі retrieveCallingNumber() повертає 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("Повісити. Очікування дзвінка.");      
      break;
  }
  delay(1000);
}

Повернутись до головної

Коментарі 0

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