Необходимо сделать звонок, когда на том конце провода возьмут трубку выполнить какие-то действия, положить трубку.
Использую RAS API. При вызове RasDial в синхронном режиме функция управление программе возвращается, когда на том конце провода уже взяли и положили трубку.
Вызываю RasDial в асинхронном режиме. Callback-функция получает уведомления о событиях RASCS_OpenPort, RASCS_PortOpened и RASCS_ConnectDevice. RASCS_DeviceConnected не приходит.
Как побороть проблему?
Здравствуйте, Gazelle, Вы писали:
G>Необходимо сделать звонок, когда на том конце провода возьмут трубку выполнить какие-то действия, положить трубку. G>Использую RAS API. При вызове RasDial в синхронном режиме функция управление программе возвращается, когда на том конце провода уже взяли и положили трубку. G>Вызываю RasDial в асинхронном режиме. Callback-функция получает уведомления о событиях RASCS_OpenPort, RASCS_PortOpened и RASCS_ConnectDevice. RASCS_DeviceConnected не приходит. G>Как побороть проблему?
G>
"Gazelle" <16834@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:600620@news.rsdn.ru... > Неужели никто не знает?
IMHO, RAS-функции ожидают, что им ответит сервер удаленного доступа. Поэтому будут возвращать что-либо только при удачном коннекте (т.е. уже произошло соединение и аутентификация) или при неудачном. Сдается здесь RAS не подходит
Здравствуйте, Gazelle, Вы писали:
G>Необходимо сделать звонок, когда на том конце провода возьмут трубку выполнить какие-то действия, положить трубку. G>Использую RAS API. При вызове RasDial в синхронном режиме функция управление программе возвращается, когда на том конце провода уже взяли и положили трубку. G>Вызываю RasDial в асинхронном режиме. Callback-функция получает уведомления о событиях RASCS_OpenPort, RASCS_PortOpened и RASCS_ConnectDevice. RASCS_DeviceConnected не приходит. G>Как побороть проблему?
G>
Здравствуйте, Sergeant, Вы писали:
S>Здравствуйте, Vic Chechenin, Вы писали:
VC>>Здесь нужна TAPI
S>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу?
lineDial когда вернет управление то либо сняли трубку, либо произошла ошибка ( типа занято или номер не существует)
Здравствуйте, Сбежал из..., Вы писали:
S>>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу? СИ>lineDial когда вернет управление то либо сняли трубку, либо произошла ошибка ( типа занято или номер не существует)
Нет, она вернет управление, когда дозвонились. Трубка при этом может быть не снята.
Курить я буду, но пить не брошу.
Re[3]: Как определить момент поднятия трубки?
От:
Аноним
Дата:
01.08.05 09:34
Оценка:
Здравствуйте, Sergeant, Вы писали:
VC>>Здесь нужна TAPI
S>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу?
Предполагаю, что после набора номера нужно переходить в режим записи звука и ждать окончания длинных гудков или появления коротких.
Здравствуйте, Аноним, Вы писали:
S>>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу?
А>Предполагаю, что после набора номера нужно переходить в режим записи звука и ждать окончания длинных гудков или появления коротких.
Вот-вот А тут начинается самое интересное
Курить я буду, но пить не брошу.
Re[5]: Как определить момент поднятия трубки?
От:
Аноним
Дата:
01.08.05 20:35
Оценка:
Здравствуйте, Sergeant, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
S>>>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу?
А>>Предполагаю, что после набора номера нужно переходить в режим записи звука и ждать окончания длинных гудков или появления коротких.
S>Вот-вот А тут начинается самое интересное
Здравствуйте, Аноним, Вы писали:
А>Корреляция думаю поможет А>Применяется в АОНах
Угу. Есть в Сети где-то библиотечки специально для распознавания таких вещей в телефонных линиях. Но я не стал в свое время с ними разбираться, потому как было не критично.
Здравствуйте, Sergeant, Вы писали:
S>Здравствуйте, Vic Chechenin, Вы писали:
VC>>Здесь нужна TAPI
S>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу?
произойдет событие с сообщением LINE_CALLSTATE и dwParam1 is LINECALLSTATE_CONNECTED http://msdn.microsoft.com/library/en-us/tapi/tapi2/line_callstate.asp
Ес. Только придет оно, как только функция дозвона наберет номер. Снята ли при этом труба на том конце или в линии до сих пор длинные гудки — нам не известно.
Здравствуйте, Sergeant, Вы писали:
S>Здравствуйте, Andrewsha, Вы писали:
S>>>А как Вы с помощью ТАПИ определите, что на дальнем конце сняли трубу? A>>произойдет событие с сообщением LINE_CALLSTATE и dwParam1 is LINECALLSTATE_CONNECTED A>>http://msdn.microsoft.com/library/en-us/tapi/tapi2/line_callstate.asp
S>Ес. Только придет оно, как только функция дозвона наберет номер. Снята ли при этом труба на том конце или в линии до сих пор длинные гудки — нам не известно.
Думаю, прежде всего зависит от драйвера, но когда гудки получаешь сообщение dwParam1=LINECALLSTATE_RINGBACK, а после снятия трубки на том конце dwParam1=LINECALLSTATE_CONNECTED. По крайней мере с драйвером для АТС Панасоника так и происходило. http://msdn.microsoft.com/library/en-us/tapi/tapi2/linecallstate__constants.asp