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

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

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


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

СообщениеДобавлено: Сб Авг 21, 2004 6:50 pm    Заголовок сообщения: Как определить поднятие трубки? Ответить с цитатой

Если кто знает пожалуйста подскажите как определить что на той тороне подняли трубку и можно проигрывать звуковое сообщение
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


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

СообщениеДобавлено: Сб Авг 21, 2004 8:29 pm    Заголовок сообщения: Ответить с цитатой

Вы не сообщили модель Вашего модема. Поэтому будем считать, что у Вас один из модемов серии IDC/VR+.

Теперь по существу вопроса:

Единственный абсолютно достоверный метод - получение информации об ответе абонента от телефонной станции (АТС). Для этого в России есть только один способ: заказать на АТС так называемую "таксофонную линию" (такие линии используют для подключения телефонов-автоматов). Особенность такой линии в том, что в момент ответа удалённого абонента АТС меняет полярность напряжения, подаваемого в линию (происходит "переполюсовка"). Именно благодаря этой переполюсовке телефон-автомат узнаёт, что ему нужно "проглотить" жетон. Переполюсовку можно обнаруживать простенькой схемкой или, например, датчиком снятия трубки параллельного телефона, который есть в модемах IDC/VR+.

Любые другие методы определения момента ответа вызываемого абонента не являются абсолютно надёжными. Их можно разделить на три категории:

1. С помощью оператора (человека). Этим пользуются многие телефоны-автоматы: там предусматривается кнопка "Ответ абонента". Пока не нажмёшь, не сможешь разговаривать. В случае модема и программы такую кнопку можно предусмотреть в программе. Естественно, надёжность метода равна надёжности оператора Smile

2. Средствами модема. Модем умеет определять момент ответа по сигналам КПВ (Контроль Посылки Вызова, обычно называемые "длинными гудками"). Если обнаружен один или несколько сигналов КПВ, и затем они пропадают - считаем, что удалённый абонент снял трубку. Эта функция реализована не во всех
модемах и мало в каких модемах работает, но IDC/VR+ такую функцию имеет и её использование даёт относительно неплохие результаты.

Вы можете более подробно прочитать об этом в документе 1131.PDF (посмотрите на www.inpro.com.ua), команды называются #VRN и #VRA.

3. Средствами программы. По окончанию набора номера модем переводится в голосовой режим. Производится анализ принимаемых сигналов на наличие в них КПВ, а также спектра, характерного для человеческого голоса. Таким методом пользуется, например, программа IDC Ventafax. Метод довольно надёжный (по сравнению с описанным в п. 2), но довольно сложен в реализации и отладке.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Konst
Junior member


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

СообщениеДобавлено: Ср Авг 25, 2004 6:28 pm    Заголовок сообщения: Определение поднятия трубки Ответить с цитатой

> Вы не сообщили модель Вашего модема. Поэтому будем считать, что > у Вас один из модемов серии IDC/VR+.
IDC-5614BXL/VR

> Вы можете более подробно прочитать об этом в документе 1131.PDF > (посмотрите на www.inpro.com.ua), команды называются #VRN и
> #VRA.

Спасибо, Вы дали мне направление куда копать. Однако ранее не сталкивавшись с программированием модемов, я наступил на те грабли что не могу понять какую команду мне использовать (или какой регистр читать) чтобы определить некий результат работы команд #VRN и #VRA ? В документации написано что по истечении периодов определяемых этими командами (цитата: If ringback is not
detected within this period, the modem assumes that the remote has picked up the line and switches to Online Voice
Command Mode). Но когда я набираю номер и еще не беру трубку я уже нахожусь в этом режиме (#cls дает Cool то есть переключения что, не получается? Или как его отловить? Да и его ли ловить вообще?

Надеюсь на вашу дальнейшую помощь поскольку похоже более нигде ее найти не могу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


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

СообщениеДобавлено: Ср Авг 25, 2004 6:49 pm    Заголовок сообщения: Ответить с цитатой

Цитата:

Однако ранее не сталкивавшись с программированием модемов, я наступил на те грабли что не могу понять какую команду мне использовать (или какой регистр читать) чтобы определить некий результат работы команд #VRN и #VRA ?

Судя по сказанному, Вы предпочли 2-й путь из нашего списка. Заметим, что это - наименее надёжный вариант. По сути вопроса: команды #VRN и #VRA не выдают результатов, они задают параметры работы алгоритма обнаружения ответа удалённого абонента. Происходит это следующим образом:

at#cls=8
OK

(модем в голосовом режиме, параметры #VRN и #VRA установлены в "заводские" значения. При необходимости их можно подстроить командой at#vrn=x #vra=y).

at dp номер

(Вы попросили модем набрать номер)

После того, как модем наберёт номер и будет обнаружен ответ удалённого абонента, модем выдаст сообщение VCON. Теперь можно выдавать at#vtx и проигрывать голосовое сообщение.

А теперь о главном. Судя по характеру задаваемых вопросов, Вам ещё долго придётся разбираться с программированием голосовых функций модема. В такой ситуации стоит подумать о использовании готовых программ (той же Ventafax, там есть запуск программы из командной строки с параметрами) или готовых библиотек (посмотрите на www.phonecalllogger.com и www.softcab.com).

Если Вы всё-таки решите программировать всё с нуля самостоятельно, поглядите для начала на протокол работы других программ. Той же IDC Ventafax, например - найдёте ответы на большинство вопросов.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Konst
Junior member


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

СообщениеДобавлено: Чт Авг 26, 2004 11:33 am    Заголовок сообщения: Определение поднятия трубки Ответить с цитатой

> Судя по сказанному, Вы предпочли 2-й путь из нашего списка.
> Заметим, что это - наименее надёжный вариант
Согласен но по тестам он выглядит не плохо

> Судя по характеру задаваемых вопросов, Вам ещё долго придётся
> разбираться с программированием голосовых функций модема
Надеюсь не так уж долго. дело было в том что я использовал TAPI компонент для дозвона и передачи голоса а он дает ограниченный доступ функциям модема. Такие вещи конечно надо делать работая с модемом непосредственно.

В любом случае спасибо за помощь
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


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

СообщениеДобавлено: Чт Авг 26, 2004 2:17 pm    Заголовок сообщения: Ответить с цитатой

>> Заметим, что это - наименее надёжный вариант

> Согласен но по тестам он выглядит не плохо

Алгоритм даёт неплохие результаты при соблюдении таких условий:

1. Трубку снимают после второго звонка, и не раньше или

2. Коммутация звонка (т.е. задержка между набором последней цифры номера и подачей "звонка" на телефон вызываемого абонента) происходит достаточно быстро.

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

> Такие вещи конечно надо делать работая с модемом непосредственно.

Безусловно. Обычно TAPI используется только на начальном этапе взаимодействия с модемом, чтобы не "держать" порт и дать другим приложениям возможность обращаться к модему. Затем работа идёт непосредственно с модемом, либо через TAPI pass-through mode, либо напрямую через последовательный порт.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
RoBinZon
Junior member


Зарегистрирован: 05.05.2006
Сообщения: 1
Откуда: Россия Мичуринск

СообщениеДобавлено: Пт Май 05, 2006 3:27 pm    Заголовок сообщения: Я занимаюсь этой же темой... Ответить с цитатой

Idea У меня появлялось много идей на протяжении всего времени разработки...Уже есть исходник на Visual Basic 6, только вот осталось сделать распознавание ответа абонента...Сейчас скачал один компонентик с сайта www.SoftCAB.com, называется он VTapi, весит тоже не так много.... Сейчас пойду попробую. Если будут какие-то наработки пишите...Меня эта тема сейчас конкретно интересует, просто уже довольно срочно нужно.

Буду рад ответить на возникающие вопросы, с ув. RoBinZon[/b]
_________________
Если не знаешь что делать, делай что нибудь...
И кстати невозможно сложить лист пополам больше 7 раз... 7 закон Мерфи
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум по модемам IDC -> General Часовой пояс: GMT + 3
Страница 1 из 1

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


Powered by phpBB © 2001, 2005 phpBB Group

Created this page in 0.018663 seconds : 15 queries executed : GZIP compression enabled : Debug Mode

©2002, INPRO Development Corporation

Rambler's Top100