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