Ткните носом в стандартный дизайн драйвера модема.
Нигде толком не могу найти.
Я то сваял свою "конструкцию" уже давно и она даже работает, но как-бы всё не покидает меня мысль, что сделал я это криво...
К примеру моя реализация заточена под то, что по каналу гоняется сырец и строки типа \n\rNO CARRIER \n\r никогда не встречаются в потоке.
А вот сейчас задумался: а как нормальные люди делают? Первое, что приходит в голову: таймером измерить время и если после \n\rNO CARRIER \n\r ничего не пришло на протяжении нескольких секунд - считать соединение разорванным...Однако если передаваемые данные были таковыми, что строка NO CARRIER просто являлась последним передаваемым сообщением, а сообщения передавалсь с интервалами 5сек., то драйвер ошибется и подумает, что модем разорвал коннект....
Ну в общем всё такое, вокруг да около ))))
Да да, забыл. Поправка на то, что используется только Tx и Rx пины порта.

Думается мне, что это уже шаманство и реально толково ничего сделать не удастся, правильно я понимаю?
The truth is out there...