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