SIM 900. Дозвон до абонента и передача голосового сообщения.

aleks2003
Offline
Зарегистрирован: 24.04.2016

Добрый день. Перечитал много формуов но нигде не нашёл строчки кода, везде СМС!

Супер начинаюший ))) Сильно не обижайте )

Итак вопрос простой, набор номера и отправка голосового сообщения данному абоненту.

Что нужно и что есть:

1) Дозвон до абонента - не проблема: gprsSerial.println("ATD+ +xxxxxxxx;"); Реализовано.

2) Какое условие должно быть на проверку, что абонент снял трубку? Команда вот AT: AT+CPAS  , если

+CPAS:4 - то установлено соединение. ??!

3) Нужно передать голосовое сообщение  и повесить трубку. Эта часть реализована.

Может кто поделиться ссылкой на близко стоящий скетч, или набрасать пару строк кода:

нужно правильно написать условие проверки, что абонент снял трубку телефона.

Сейчас есть примитивный скетч, происходит действие (приходит смс сообщение) выполняется то-то и то-то.

А хочу с датчиков получать информацию (тревога охранной сигнализации, протечка и т.п.) и отправлять не только смс (то же легко и примеров много) но и делать дозвон с передачей речевого оповещения.

 

СПАСИБО!!!!

 

Araris
Offline
Зарегистрирован: 09.11.2012

Про команду "AT+CLCC" поищите-почитайте, может быть полезна.

aleks2003
Offline
Зарегистрирован: 24.04.2016

Я её видел и, определение номера. Зачем она мне? Мне нужно получить ответ абонента, передать фразу и повесить трубку на sim 900. Или я что то пропустил?

В общем засада. Нет АТ команды которая получала бы квитанцию, что абонент снял трубку!!

Перечитал всё что смог за день а инете, ну нет такой команды которую бы формировал sim 900 при снятии трубки абонентом. Есть занято, не доступен, а вот CONNECT не выдвёт ((((

Неужели примитивную задачу позвонить на указанный номер и определить что дозвонились нельзя с помощью SIM 900 ?

 

Araris
Offline
Зарегистрирован: 09.11.2012

Почитайте внимательно, AT+CLCC - это не только определение номера, она даёт гораздо больше информации, в частности про состояние исходящего звонка.

Поэкспериментируйте: позвоните себе со своего SIM900, после ATD циклически запускайте AT+CLCC и выводите в монитор её ответы в моменты набора номера, ожидания соединения, после установки соединения и после завершения соединения. В ответе особенно интересен параметр <stat>.

AT+CLCC List Current Calls

Command Possible Responses
AT+CLCC
    +CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alpha>[,<priority>]]]
    +CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alpha>[,<priority>]]]
    ...
<id> Integer identifier for the call.
<dir> Direction of the call: 0 = outgoing MO, 1 = incoming MT.
<stat> State of the call:
  • 0 active
  • 1 held
  • 2 dialing (MO call)
  • 3 alerting (MO call)
  • 4 incoming (MT call)
  • 5 waiting (MT call)

 

aleks2003
Offline
Зарегистрирован: 24.04.2016

Спасибо за ваш интерес к моему вопросу. Сек...
Вау!!!
Поверьте, начал с вашего совета и проверял ответ команды в разных режимах через терминал, и показалось что всё одинаково, т.е. когда идёт вызов и когда ответ.
НО! После вашего повторного совета, не поленился и до двух часов ночи просидел , всё отлично!! Всё работает!!
Ещё раз спасибо!!

Araris
Offline
Зарегистрирован: 09.11.2012

Поздравляю, респект Вашей настойчивости.

VeD
Offline
Зарегистрирован: 21.02.2016

Извините, а как проверить ответы от AT+CLCC ? Serial.print("AT+CLCC:\r"); или как?

protoptor
Offline
Зарегистрирован: 05.08.2016

aleks2003 пишет:

3) Нужно передать голосовое сообщение  и повесить трубку. Эта часть реализована.

Вечер добрый!

У меня как раз проблема со связкой Arduino+ Sim800L+ SD модуль. Не знаю как воспроизводить аудио с SD в линию.

Могли бы вы сбросить свой код, или указать где искать решение данной проблемы

toc
Offline
Зарегистрирован: 09.02.2013

aleks2003, надеюсь вы не собираетесь стать распространителем спама.

protoptor
Offline
Зарегистрирован: 05.08.2016

toc пишет:
aleks2003, надеюсь вы не собираетесь стать распространителем спама.

Я понимаю, что вероятно простой вопрос задал, но все запросы в гугле по этой теме мне не дали результатат или скорее всего задаю неправильные вопросы.

s1984i
Offline
Зарегистрирован: 06.08.2016

Araris пишет:

Почитайте внимательно, AT+CLCC - это не только определение номера, она даёт гораздо больше информации, в частности про состояние исходящего звонка.

Поэкспериментируйте: позвоните себе со своего SIM900, после ATD циклически запускайте AT+CLCC и выводите в монитор её ответы в моменты набора номера, ожидания соединения, после установки соединения и после завершения соединения. В ответе особенно интересен параметр <stat>.

AT+CLCC List Current Calls

Command Possible Responses
AT+CLCC
    +CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alpha>[,<priority>]]]
    +CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alpha>[,<priority>]]]
    ...
<id> Integer identifier for the call.
<dir> Direction of the call: 0 = outgoing MO, 1 = incoming MT.
<stat> State of the call:
  • 0 active
  • 1 held
  • 2 dialing (MO call)
  • 3 alerting (MO call)
  • 4 incoming (MT call)
  • 5 waiting (MT call)

 

подскажите как считать данные  отправленые этой командой и сравнить?

s1984i
Offline
Зарегистрирован: 06.08.2016

как выключить AT+CLCC приходящие данные от этой команды мне не нужны.
+CLCC: 1,1,0,0,0,"+xxxxxxxxxx",145,"" и как считать эту сторочку причем получить нужные цифры (3 цифру)

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

s1984i пишет:

как выключить AT+CLCC приходящие данные от этой команды мне не нужны.
+CLCC: 1,1,0,0,0,"+xxxxxxxxxx",145,"" и как считать эту сторочку причем получить нужные цифры (3 цифру)

изучаем нампример это

https://www.arduino.cc/en/Reference/StringObject

s1984i
Offline
Зарегистрирован: 06.08.2016

изучим спасибо. но как быть с  AT+CLCC.  1 раз запустил  и теперь shield постоянно шлёт мне данные  +CLCC: 1,1,0,0,0,"+xxxxxxxxxx",145,"" Как отключить??

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

s1984i пишет:

изучим спасибо. но как быть с  AT+CLCC.  1 раз запустил  и теперь shield постоянно шлёт мне данные  +CLCC: 1,1,0,0,0,"+xxxxxxxxxx",145,"" Как отключить??

http://garden.seeedstudio.com/images/a/a8/SIM900_AT_Command_Manual_V1.03.pdf

s1984i
Offline
Зарегистрирован: 06.08.2016

"AT+CLCC=0" отключение,  1 включение.  но почемуто, не с 1 раза сработало.  а именно в тот момен когда была поднята трубка и отправленно "AT+CLCC=0" тогда все отключилось.

Pahan
Offline
Зарегистрирован: 03.02.2017

Доброго времени суток всем!

Осваиваю SIM800l, пытаюсь его прикрутить к ESP8266 12e (NodeMcu)  через библиотеки типа sim900, хочу научиться, но пока  ничего не получается.

Сам Sim800l рабочий, питание отдельное нормальное 4,2в на 2 А. Через софтсериал модем работает, АT команды принимает и на них отвечает правильно. ESP кА тоже рабочая, GND общий.  Скорости менял.

Модем никак не хочет работать с библиотеками( причем разными) sim900,sim800 и т.д.

В некоторых библиотеках работают примеры только с АT командами и все.

В GSM.cpp   менял пины и так и так (т.е. D1(5) и D2(4) для esp8266)

#define _GSM_TXPIN_ 4

#define _GSM_RXPIN_ 5

 

#define _GSM_TXPIN_ D2

#define _GSM_RXPIN_ D1    

Все равно смс, звонки и т.д. не работает. На разных библиотеках пишет либо ошибка компиляции для платы ESP8266, либо компилируется, но не работает, так понимаю сторожевой таймер срабатывает. ( в сериал шпарит перезагрузка) Может где в этих библиотеках что-то нужно поменять под ESP8266?

Я так понимаю все билиотеки под разные ардуино написаны, а для ESP8266 есть библиотеки для SIM800L может кто с этим сталкивался, либо как мне их подружить.

Подскажите, где собака зарыта?

 

 

 

YaSerg
Offline
Зарегистрирован: 02.03.2017

Тоже бьюсь с библиотекой безрезультано http://arduino.ru/forum/programmirovanie/biblioteka-gsmh-dlya-sim900

Вот нашл библиотеку (code from the SIM900 library), пока не пробовал, написано что поддерживает код для ESP8266

Алексей_Гол.
Offline
Зарегистрирован: 25.11.2021

Друзья, кто решил  проблему определения момента снятия трубки на телефоне и отправки звукового сообщения, поделитесь скетчем, у меня не получается решить данную проблему.