©2002, INPRO Development Corporation
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход

Как отловить момент поднятия трубки?

 
Начать новую тему   Ответить на тему    Список форумов Форум по модемам IDC -> General
Предыдущая тема :: Следующая тема  
Автор Сообщение
pusher
Junior member


Зарегистрирован: 01.12.2006
Сообщения: 2

СообщениеДобавлено: Пт Дек 01, 2006 5:22 pm    Заголовок сообщения: Как отловить момент поднятия трубки? Ответить с цитатой

Господа, собственно сабж.
Пишу прогу, которая должна совершать автопрозвонку людей и кидать им WAV сообщения.
т.е.
AT#CLS=8
ATM0#VRA=0#VRN=0DT{phone}
AT#VSR=7200#VBS=4
AT#VTX

Проблема заключается в том, что AT#VTX сразу возвращает CONNECT, далее длинные гудки, а когда человек снимает трубку НИЧЕГО не происходит - буфер пуст.
Есть идеи как это реализовать? В голове у меня только ASR модуль писать Automatic Speech Recognition - но неужели нет более простого пути???

ЗЫ железка IDC мультимодемная плата 56k
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Пт Дек 01, 2006 7:26 pm    Заголовок сообщения: Ответить с цитатой

Для начала заметим, что есть только один 100%-й способ определения ответа абонента, и способ этот - "сугубо аппаратный". Потребуется приобрести (заказать на АТС) так называемую "таксофонную линию". На такие линии нельзя принимать звонки (у нас не принято звонить на телефон-автомат), но при выполнении исходящих звонков они имеют замечательную особенность: в момент ответа удалённого абонента производится переполюсовка линии (для того, чтобы автомат знал: надо "съесть жетон"). Эта переполюсовка может быть отловлена либо внешним устройством, либо датчиком снятия трубки параллельного аппарата (модем выдаст <DLE>P).

Все остальные способы программные и обладают той или иной степенью ненадёжности. Наименее надёжным является использование собственных возможностей модема (#VRA, #VRN). Вы эти параметры выставили в нуль, именно поэтому голосовое соединение фиксируется немедленно по окончанию набора. Если оставить их по умолчанию (или подобрать подходящие для Вашей сети значения), то голосовое соединение будет фиксироваться по паузе после длинных гудков (сигналов КПВ). Т.е. прошли несколько гудков, потом очередной гудок отсутствует - считаем, что с другой стороны сняли трубку. Естественно, это не сработает, если трубку поднимут немедленно (часто у удалённого абонента телефон "уже звонит", а с Вашей стороны длинных гудков "ещё нет").

Более надёжным является программный анализ сигналов в линии. Делается это с помощью фильтров, настроенных на частоту сигналов АТС, и настроенных отлавливать частоты, характерные для человеческого голоса. Сценарий такой, как Вы описали, но перед #VTX выдаётся команда #VRX, и поступающие от модема голосовые данные прогоняются через фильтры, которые и должны определить момент ответа. Таким способом пользуются хорошие коммерческие продукты (например, Ventafax). Естественно, надёжность работы определяется качеством реализации фильтров и алгоритмов, анализирующих "выход" фильтров. Почему это не даёт 100%-й гарантии? Потому, что в некоторых ситуациях Вы попадаете на "механический голос", выдающий сообщения вроде "Направление перегружено", "Вызывайте телефонистку", "Абонент вне зоны доступа" и т.п. - а фильтры считают этот голос "ответом абонента".
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
b0ev0y_ezh
Junior member


Зарегистрирован: 18.02.2008
Сообщения: 3

СообщениеДобавлено: Вт Фев 19, 2008 3:08 pm    Заголовок сообщения: Ответить с цитатой

не совсем понял назначение параметров VRA и VRN. Какой таймер за что отвечает?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Ср Фев 20, 2008 12:04 am    Заголовок сообщения: Ответить с цитатой

Документация (1131.PDF) содержит весьма подробное описание этих таймеров. Мы можем лишь повторить сказанное там (заодно переведя на русский).

VRA отсчитывает время с момента окончания сигнала ringback (т.е. КПВ, или длинного гудка). Если заданное таймеру время вышло и следующий гудок не пришёл, то модем полагает, что удалённый абонент ответил (снял трубку).

VRN отсчитывает время с момента окончания набора номера. Если это время истекло и не было сигнала КПВ, модем полагает, что удалённый абонент ответил.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
b0ev0y_ezh
Junior member


Зарегистрирован: 18.02.2008
Сообщения: 3

СообщениеДобавлено: Чт Фев 21, 2008 9:44 am    Заголовок сообщения: Ответить с цитатой

Спасибо за разъяснения, как раз и были трудности с переводом Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум по модемам IDC -> General Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group

Created this page in 0.022153 seconds : 16 queries executed : GZIP compression enabled : Debug Mode

©2002, INPRO Development Corporation

Rambler's Top100