Делал программу для автоинформирования. Долго думал и пришел к выводу, что вернее всего распознавать длину пауз между "гудками". Если ближайшие две примерно равны друг другу, то вызов в норме. Дальше - по измеренному промежутку времени паузы анализируется занятость или свободность линии. Если линия свободна и потом длина пауз изменилась, то абонент поднял трубку.
Если планируется не просто программа, а устройство, то лучше сделать "железный" автосброс модема. Поверьте, он будет зависать при работе 7х24. Особенно, если их будет много. И в это же устройство встроить распознавание поднятия трубки. Делается на любом микроконтроллере. Надо лишь измерять частоту и при совпадении - скважность.
|