![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с модемом (определить поднятие трубки) [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