LINUX.ORG.RU

Избранные сообщения usv

Декодирование АОН

Форум — Development

В процессе изучения Asterisk возникла необходимость преобразовать АОН в CallerID, т.к. АТС, к которой подключен сервер с * в CallerID не умеет.

Сразу оговорюсь, что c обработкой сигналов не знаком вообще. Если приведете какие-нибудь ссылки на матчасть, буду признателен.

Итак, что я имею:

  • Asterisk, подключенный к АТС по FXO-порту.
  • Запись сигнала от АТС на Asterisk, полученная с помощью dahdi_monitor 4 -r stream.wav и сделанная в то время, когда отправляется АОН (если я все правильно понимаю).

Почитав про АОН, я установил, что «информация формируется комбинациями из двух частот на основе шести базовых»:

 F0=700Гц
 F1=900Гц
 F2=1100Гц
 F4=1300Гц
 F7=1500Гц
 F11=1700Гц

 ---------------------------------------------
 0 - F4 F7          6 - F2 F4
 1 - F0 F1          7 - F0 F7
 2 - F0 F2          8 - F1 F7
 3 - F1 F2          9 - F2 F7
 4 - F0 F4          "начало-конец" - F2 F11
 5 - F1 F4          "повтор"       - F4 F11
 ---------------------------------------------

Вопросы:

  1. С помощью какой сишной библиотеки можно проанализировать частоты в wav-файле?
  2. Как определить какой код был передан (я сейчас не понимаю, как происходит «смешивание» частот, как такое смешение «увидеть» и определить какие частоты смешали)?
  3. Пишут, что длительность передачи одной комбинации может колебаться от 25 до 70 мс, несмотря на то, что по ГОСТу 40±2 мс. Как к этому можно адаптироваться? Или конкретная АТС передает комбинации с одной и той же длительностью и достаточно один раз её выяснить?

 , , , ,

HerrWeigel
()