Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с модемом (определить поднятие трубки) [D5, Win95/98, WinME]


exciter__ ©   (2003-05-22 14:31:00) 

Я пользуюсь компонентами AsyncPro.
Проблема возникла в том, что функция Dial компонента TapiDevice
набирает номер в бэкграунде, затем после того как вызываемый номер поднимет трубку, надо проиграть в линию WAV файл,
но Dial пролетает и в линию еще посылающую вызов, сразу же
проигрывается WAV.

Как определить, подняли ли трубку на другом конце ? Пример

begin
TapiDevice.Dial("335533");
//----- Проблема здесь --------------------
repeat Application.ProcessMessages;
until TapiDevice.TapiState <> tsProceeding;
//-----------------------------------------

TapiDevice.PlayWaveFile(WavEdit.Text);

repeat Application.ProcessMessages;
until TapiDevice.WaveState<>wsPlaying;

ShowMessage("Сделано");
end;


Reindeer Moss Eater   (2003-05-23 13:00:00) [1]

Смысл так и не дошел до него.


Verg   (2003-05-23 12:06:00) [2]

Дмитрий К.К. ©

:-))))))


Дмитрий К.К.   (2003-05-23 11:48:00) [3]

Ты наверное так и делаешь. Поднимешь трубку и упорно молчишь.


Reindeer Moss Eater   (2003-05-23 08:58:00) [4]

Дмитрий К.К. , не стоит напрягаться понять что они будут делать.
Смысл поста был такой: трубу подняли и молчат.


Дмитрий К.К.   (2003-05-23 06:19:00) [5]

А с каких ето пор немые стали подходить к трубе??? Шо они будут с ней делать?


Reindeer Moss Eater   (2003-05-22 17:21:00) [6]

А если трубу поднял немой?


Verg   (2003-05-22 16:51:00) [7]

Многие модемы имеют VAD (Voice Activity Detection). Т.е. после набора номера, если через некоторое время появляется сигнал ответа модема, то он выдает CONNECT....., а если появился сигнал типа "алло", то он выдает VOICE.
Поищи в доке на Async ключевое слово VAD - если найдешь, то копай около него.


Wonder   (2003-05-22 16:26:00) [8]

Чего-то я не совсем понимаю.

На мой взгляд: модему неведомо, поднял ли абонент трубку или нет. Ему известны некие сигналы в линии от АТС.

Так вот, с некой долей вероятности, можно предположить, что труба поднята если:
1. Произошел успешный набор номера
2. Отсутствие сигнала DIALTONE + отсутствие сигнала BUSY + отсутствие сигнала "Вызов абонента" (если модем различает этот тип)

Какое это все связать к AsyncPro и можно ли вообще - понятия не имею.


Reindeer Moss Eater   (2003-05-22 16:09:00) [9]

Похоже что придется начать воспроизведение файла в цикле сразу после OnConnect (у абонента звонит телефон)
В звуковом файле предлагать нажать кнопки, что бы засинхронизироваться со слушающим. Ну и таймаут предусмотреть конечно.


Reindeer Moss Eater   (2003-05-22 15:01:00) [10]

Добавь порту дататриггер на строку "VOICE"


Wonder   (2003-05-22 14:53:00) [11]

А на каком основании модем будет решать - подняли трубку или нет?


Exciter__   (2003-05-22 14:46:00) [12]

Это всё фигня. Он срабатывает сразу после наборе номера. А надо определить поднятие трубки вызываемого абонента.


Reindeer Moss Eater   (2003-05-22 14:38:00) [13]

TApdTapiDevice.OnTapiConnect


Наверх

Титульная страница Поиск, карта сайта Написать письмо