C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как узнать, что на том конце сняли трубку?, Работа с GSM-модемом Siemens MC35i
ksili
Отправлено: 14.02.2007, 08:09


Ученик-кочегар

Группа: Участник
Сообщений: 5



Не могу организовать конференц-связь. Программе уже известны оба номера, которые надо соединить через GSM-модем. Алгоритм организации конференц-связи такой:
1) GSM-модем звонит на первый номер (команда ATD)
2) Ждёт пока там снимут трубку
3) Когда трубку снимают, он запоминает номер и переводит звонок в удержание (AT+CLCC)
4) Затем сразу звонит на второй номер (ATD)
5) Ждёт пока там снимут трубку
6) Когда отвечают, запоминает и этот номер (AT+CLCC)
7) Соединяет два номера из памяти конференц-связью (AT+CHLD=3)

Так вот не знаю, как реализовать 2-й и 5-й пункты.
Когда выполняешь всю эту последовательность действий из HyperTerminala всё нормально, т.к. он сам ждёт пока произойдет ответ. Если же не дождаться появления приглашения ввода команды и начать вводить следующую команду, то звонок срывается.

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

Вернуться в Работа с внешними устройствами