Работа с телефонными линиями
Подскажите как сделать программу способную определять номер звонящего на мой телефон? Знаю подобные программы существуют, но как это реализовать самому? В какой среде не имеет значения, но предпочтительнее VB.
Так же интересует вопрос как обрабатывать сигналы разной тональности, которые можно передавать нажатием кнопок уже после установленного соединения?
И вообще где можно побольше почитать о работе с телефонными линиями?
Буду признателен за любую помощь!
сигнализации (участок сигнализации: абонент - стация).
-----------------------------------------------------------------
Чиcто программой номер определить нельзя !!!!
------------------------------------------------------------------
Во-первых, нужно знать какой тип сигнализации используется в абонентской сигнализации: если это DTMF (каждая цифра задаётся двумя частотами), то чем ты вообще собрался каждую пару частот определять?! - тебе нужен АЦП соотв. разрядности (это аппаратная часть), и тебе надо буде в реальном времени выполнять операцию
БПФ (это можешь сделать программно).
-------------------------------------------------
P.S.: жаль что нету нигде хорошего форума по телекомуникации, видмо, поэтому подобные вопросы возникают в разделе WinAPI.
-----------------------------------------------
DKain
Программно можно всё, кроме АЦП, ЦАП и модуляции (хотя модуляция в данном случае нас не интересует)
-----------------------------------------------
DKain
Программно можно всё, кроме АЦП, ЦАП и модуляции (хотя модуляция в данном случае нас не интересует)
Сделаю "программно" модуляцию. Недорого:)
Почему нельзя - то??
А я и говорю что не причём...
Я вообщето про ЦАП и АЦП отдельно написал от TAPI и ничего проних не спрашивал!!! - Как ещё то писать, чтоб понятно было - итак пунктирными линиями отделяю... - про TAPI я спросил, а
про АЦП и ЦАП это отдельно к другому человеку обращался НЕ с вопросом, а УТВЕРЖДЕНИЕМ, что их нельзя реализовать программно.
-----------------------------------------------------------------
GENA_DJ
Модуляцию выполняет модем АППАРАТНО, всегда аппаратно!
И как это ты собрался с аналоговым сигналом програмно работать...?!
- Тебе кто-нибудь преподовал Теорию Электросвязи, Системы передачи,
Направляющие системы, кодировангие и цифровую обработку? -Нет?!
- вот почитай... или просто поверь наслово.
Модуляцию выполняет модем АППАРАТНО, всегда аппаратно!
[/QUOTE]
модем - аппаратно, но далеко не всегда. К тому же ты писал, что
[QUOTE=bave]
Программно можно всё, кроме АЦП, ЦАП и модуляции
[/QUOTE]
А есть еще куча примеров, где модуляцию сделать в цифре проще будет, например OFDM в системах радиовещания DRM.
[QUOTE=bave]
И как это ты собрался с аналоговым сигналом програмно работать...?!
[/QUOTE]
Работать нужно в цифре, потом на ЦАП, других вариантов нет.
Далее по теме. Есть 3 типа сигнализаций, которые используются для опреденения номера:
MF - сигнализация
CLIP DTMF
CLIP FSK
Первая является традиционной для российских телефонных сетей, изначально использовалась в межстанционных линиях связи, например, в реализации 2ВСК. Для определения номера требуется поднятие трубки с последующим посылом запроса в линию.
Вторые 2 поднятия трубки не требуют, сигнал АОН передается между первым и вторым посылами вызова. Поддерживается далеко не всеми АТС. Более подробно можно смотреть http://www.araxinfo.com/~bacvic/
1) Амплитудная (высокий и низкий уровень амплитуды означают 0 или 1). Используется редко
2) Частотная (0 или 1 передаются разными частотами).
3) Фазовая (переворачивание фазы сигнализирует о поступлении 0 или 1). В чистом виде редко используется. Обычно используется ОФМ.
Иные модификации - ИКМ (импульсно-кодовая модуляция), ШИМ (широтно-импульсная) и т.д.. Все эти вещи справедливы при передаче электросигналов (в оптике совершенно иной принцип). А вот цифровой сигнал может быть составлен по разным принципам - NRZ-L, NRZI, манчестерский код и относительный манчестерский код.
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.
линии звук между первым и вторым звонками.
Сразу скажу: прога в стадии отладки , но номер определяет,
работаю дальше.