Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с телефонными линиями

13K
14 ноября 2006 года
DKain
26 / / 21.09.2006
Здравствуйте!
Подскажите как сделать программу способную определять номер звонящего на мой телефон? Знаю подобные программы существуют, но как это реализовать самому? В какой среде не имеет значения, но предпочтительнее VB.
Так же интересует вопрос как обрабатывать сигналы разной тональности, которые можно передавать нажатием кнопок уже после установленного соединения?
И вообще где можно побольше почитать о работе с телефонными линиями?
Буду признателен за любую помощь!
279
21 ноября 2006 года
bave
456 / / 07.03.2004
Для начло почитай о сигнализаций в сетях связи (чтоб хоть представлять что это такое), затем об абонентской
сигнализации (участок сигнализации: абонент - стация)
.
-----------------------------------------------------------------
Чиcто программой номер определить нельзя !!!!
------------------------------------------------------------------
Во-первых, нужно знать какой тип сигнализации используется в абонентской сигнализации: если это DTMF (каждая цифра задаётся двумя частотами), то чем ты вообще собрался каждую пару частот определять?! - тебе нужен АЦП соотв. разрядности (это аппаратная часть), и тебе надо буде в реальном времени выполнять операцию
БПФ (это можешь сделать программно).
-------------------------------------------------
P.S.: жаль что нету нигде хорошего форума по телекомуникации, видмо, поэтому подобные вопросы возникают в разделе WinAPI.
13K
22 ноября 2006 года
DKain
26 / / 21.09.2006
Программно, АЦП, БПФ - это все хорошо, но зачем тогда выпускаются модемы с функцией АОН и DTMF? Вот на их базе и можно определить и номер и все остальное. К тому же есть такая прога как VentaFax и там в настройках есть галочка "Определять номер средствами программы", значит все-таки это возможно и программно. Наверное зависит от ГТС.
273
22 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
Идентификацию номера абонента производит ГТС, затем служебным сигналом (формат DTMF или FSK) посылает их абоненту. В зависимости от функциональности телефона абонента он может распознать эту информацию или нет. Модем при соединении получает эти данные, и драйвер модема парсит их и передаёт дальше пользовательским программам. Так что если юзать драйвер модема, то эту информацию получить можно.
273
22 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
Хотя можно и без гемора с драйвером обойтись, используя Telephony API (TAPI). В нём есть интерфейс ITAddress, который содержит информацию об адресате. Его можно получить из интерфейса ITCallInfo, который получается из перехвата события на установление соединения (ITCallNotificationEvent).
279
23 ноября 2006 года
bave
456 / / 07.03.2004
TAPI работает поверх драйвера модема?
-----------------------------------------------
DKain

Программно можно всё, кроме АЦП, ЦАП и модуляции (хотя модуляция в данном случае нас не интересует)
273
23 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
ЦАП и АЦП здесь совершенно ни при чём, т.к. это не тот уровень программного доступа (мы же не микроконтроллер модема программируем). TAPI предоставляет много функций для работы с телефонией, и, естественно, работает с модемами (и иными коммуникационными устройствами) через драйверы.
3.3K
24 ноября 2006 года
GENA_DJ
123 / / 08.03.2005
Цитата: bave
TAPI работает поверх драйвера модема?
-----------------------------------------------
DKain

Программно можно всё, кроме АЦП, ЦАП и модуляции (хотя модуляция в данном случае нас не интересует)



Сделаю "программно" модуляцию. Недорого:)
Почему нельзя - то??

13K
24 ноября 2006 года
DKain
26 / / 21.09.2006
На этом сайте в исходниках есть VoiceAngel с ОСХ'ом для работы с модемом. Там все есть.
279
25 ноября 2006 года
bave
456 / / 07.03.2004
3A3-968M
А я и говорю что не причём...
Я вообщето про ЦАП и АЦП отдельно написал от TAPI и ничего проних не спрашивал!!! - Как ещё то писать, чтоб понятно было - итак пунктирными линиями отделяю... - про TAPI я спросил, а
про АЦП и ЦАП это отдельно к другому человеку обращался НЕ с вопросом, а УТВЕРЖДЕНИЕМ, что их нельзя реализовать программно.
-----------------------------------------------------------------
GENA_DJ
Модуляцию выполняет модем АППАРАТНО, всегда аппаратно!
И как это ты собрался с аналоговым сигналом програмно работать...?!

- Тебе кто-нибудь преподовал Теорию Электросвязи, Системы передачи,
Направляющие системы, кодировангие и цифровую обработку? -Нет?!
- вот почитай... или просто поверь наслово.
3.3K
26 ноября 2006 года
GENA_DJ
123 / / 08.03.2005
[QUOTE=bave]
Модуляцию выполняет модем АППАРАТНО, всегда аппаратно!
[/QUOTE]
модем - аппаратно, но далеко не всегда. К тому же ты писал, что
[QUOTE=bave]
Программно можно всё, кроме АЦП, ЦАП и модуляции
[/QUOTE]
А есть еще куча примеров, где модуляцию сделать в цифре проще будет, например OFDM в системах радиовещания DRM.
[QUOTE=bave]
И как это ты собрался с аналоговым сигналом програмно работать...?!
[/QUOTE]
Работать нужно в цифре, потом на ЦАП, других вариантов нет.

Далее по теме. Есть 3 типа сигнализаций, которые используются для опреденения номера:

MF - сигнализация
CLIP DTMF
CLIP FSK

Первая является традиционной для российских телефонных сетей, изначально использовалась в межстанционных линиях связи, например, в реализации 2ВСК. Для определения номера требуется поднятие трубки с последующим посылом запроса в линию.

Вторые 2 поднятия трубки не требуют, сигнал АОН передается между первым и вторым посылами вызова. Поддерживается далеко не всеми АТС. Более подробно можно смотреть http://www.araxinfo.com/~bacvic/
273
26 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
Вот уж новости, модуляция цифрового сигнала??? Вообще-то при помощи модуляции аналогового сигнала передают цифру. Существует три основных вида модуляции:
1) Амплитудная (высокий и низкий уровень амплитуды означают 0 или 1). Используется редко
2) Частотная (0 или 1 передаются разными частотами).
3) Фазовая (переворачивание фазы сигнализирует о поступлении 0 или 1). В чистом виде редко используется. Обычно используется ОФМ.
Иные модификации - ИКМ (импульсно-кодовая модуляция), ШИМ (широтно-импульсная) и т.д.. Все эти вещи справедливы при передаче электросигналов (в оптике совершенно иной принцип). А вот цифровой сигнал может быть составлен по разным принципам - NRZ-L, NRZI, манчестерский код и относительный манчестерский код.
3.3K
26 ноября 2006 года
GENA_DJ
123 / / 08.03.2005
Цитата: 3A3-968M
Вот уж новости, модуляция цифрового сигнала??? Вообще-то при помощи модуляции аналогового сигнала передают цифру. Существует три основных вида модуляции:
1) Амплитудная (высокий и низкий уровень амплитуды означают 0 или 1). Используется редко
2) Частотная (0 или 1 передаются разными частотами).
3) Фазовая (переворачивание фазы сигнализирует о поступлении 0 или 1). В чистом виде редко используется. Обычно используется ОФМ.
Иные модификации - ИКМ (импульсно-кодовая модуляция), ШИМ (широтно-импульсная) и т.д.. Все эти вещи справедливы при передаче электросигналов (в оптике совершенно иной принцип). А вот цифровой сигнал может быть составлен по разным принципам - NRZ-L, NRZI, манчестерский код и относительный манчестерский код.



Такое ощущение, что мы говорим о совершенно разных вещах..

То, про что говорит 3A3-968M (пункты 1, 2, 3) называется манипуляцией, к примеру с телефонной сигнализацией отношения не имеет.

Когда я писал про модуляцию программно, я подразумевал работу с дискритезированным аналоговым сигналом.

Приведу простой пример, допустим, мы хотим реализовать амплитудную модуляцию (а "классическом" понимании, как написано в учебнике по физике за 11 класс в параграфе "радиовещание". Хочу заметить, что реализация именно модуляции в классическом понимании и есть предмет спора с bave).

Вот пример функции, которая возвращает i-ый сэмпл

i - номер сэмпла,
input - входной сигнал (<=1), (которым мы хотим модулировать) соответствующий i - му сэмплу
ModDepth - глубина модуляции

double modulate_res(int i, double input, double ModDepth)
{
#define ModFreq //частота модулируемого сигнала
#define _2_PI 6.283185307179586476925286766559 //Число 2*ПИ
#define NSamplesPerSec 48000 //частота дискретезации (число выборок в секунду)
return sin((i*ModFreq%NSamplesPerSec)*_2_PI/NSamplesPerSec) * /*данное умножение - и есть модуляция*/ (1+ModDepth*input);
}
Если из выходных данных собрать массив данных, проквантовать его и подать на звуковую карту - мы получим сигнал с частотой ModFreq, промодулированный сигналом, подаваемым на вход функции. Единственное условие в данном примере - ModFreq<NSamplesPerSec/2, а сам сигнал input должен от выборки к выборке должен меняться достаточно плавно по отношению к сигналу с частотой ModFreq.

Если в данном примере собрать набор несущих частот, ортоганальных друг другу, каждую промодулируем своим сигналом, то получим OFDM.

25K
15 января 2008 года
jurabay
7 / / 19.03.2007
Я написал такую прогу на Borland BuilderC++. Опеределяет номер позвонившего в станадарте Clip FSK. Но сначала записал с телефонной
линии звук между первым и вторым звонками.
Сразу скажу: прога в стадии отладки , но номер определяет,
работаю дальше.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог