Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 |
|
Вернуться к началу |
|
|
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 |
|
Вернуться к началу |
|
|
b0ev0y_ezh Junior member
Зарегистрирован: 18.02.2008 Сообщения: 3
|
Добавлено: Чт Фев 21, 2008 9:44 am Заголовок сообщения: |
|
|
Спасибо за разъяснения, как раз и были трудности с переводом |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|