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