Век живи, век переустаналивай Asterisk каждый раз как в первый раз, затык на пол дня — не знаю как так получается! Пока скрипя видеокартой тренеруется нейросеть… Да и Orange PC Plus не кстати сдох из первой статьи Боремся со спам звонками на городском телефоне с Asterisk, IVR, Grandstream ht813 на OrangePi PC Plus! — eMMC сдох весь и совсем… Давненько я не бралсь за Raspberry Pi, за самый дешевый ой! А чего происходить то, почему в Китае версия 4Gb стоит сейчас 170 долларов, а у нас под 250(ой и OrangePi PC Plus уже 40 стоит!!!)!!! Ну хоть корпуса для RPi не подоражали, беру Argon One прям такого как у меня уже не делают, у меня тут еще непочатый запас аксесуаров для малинки отсается, но вот один в один только HDMI порты добавили два Argon ONE V2 Case for Raspberry Pi 4 всего за 25$ прям столько когда-то RPi и стоила целая!!!
Корпус оборудован кнопкой включения, перезагрузки — через устанавливаемый скрипт, крышкой которая открывает доступ к пинам и вентиляторм, при этом CPU и память охлаждаются пассивно через выступы передавая тепло на верхнею крышку.
Понятно почему первая версия(как у меня) этого корпуса, пропала и появилась вторая. Надо подпилить чуть-чуть чтобы малинка влезла в него, разьем RJ45 не влезает — пилим.
Устанавливаем Raspberry Pi OS Lite
Процесс прост до жути, качаем тут www.raspberrypi.com/software/ Raspberry Pi Imager и он сам все делает — качает и пищет на SD карту. Я выбрал Raspberry Pi OS Lite 32-bit было от 2022.09.22
Перед записью надо задать пароль и поставить галочку SSH раньше это по другому делалось. Тут же можно сразу Wi-Fi настроить — удобно однако!
После окончания записи карту можно вставлять в малинку и смотреть какой малинка получила IP я посмотрел на роутере.
Устанавливаем скрипт корпуса Argon One
curl http://download.argon40.com/argon1.sh | bash
Перезагружаемся
И настраиваем под себя
argonone-config
Схема
Нам звонят, Asterisk снимает трубку и проигрывает сообщение — если вы человек нажимите 7, если нет 5 и музыка ожидания. Если нажимают 7 то начинает звонить телефон в квартире!
Raspberry PI будет отвечать за голосовое меню (IVR), при этом единственный SIP телефон будет подключен к HT813 и звонить в город через него же по прямой. Привязать порт FXO HT813 к Asterisk чтобы работал вместе с IVR не получается, вот почему то тут не получилось Заставляем Grandstream ht813 звонить на PSTN через Asterisk!… наверняка все из-за 100500 галочек в HT813!
Устанавливаем Asterisk
sudo apt-get install asterisk
Запускаю и смотрю статус
sudo systemctl start asterisk
systemctl status asterisk
● asterisk.service - Asterisk PBX Loaded: loaded (/lib/systemd/system/asterisk.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-11-04 06:38:03 MSK; 1min 5s ago Docs: man:asterisk(8) Main PID: 7985 (asterisk) Tasks: 68 (limit: 4915) CPU: 2.568s CGroup: /system.slice/asterisk.service ├─7985 /usr/sbin/asterisk -g -f -p -U asterisk └─7997 astcanary /var/run/asterisk/alt.asterisk.canary.tweet.tweet.tweet 7985 ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: cel_radius declined to loa> ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: cdr_pgsql declined to load. ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: cel_tds declined to load. ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: pbx_dundi declined to load. ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: res_hep_rtcp declined to l> ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: chan_unistim declined to l> ноя 04 06:38:03 rpiserver asterisk[7985]: [Nov 4 06:38:03] ERROR[7985]: loader.c:2396 load_modules: res_hep_pjsip declined to > ноя 04 06:38:03 rpiserver asterisk[7985]: Asterisk Ready. ноя 04 06:38:03 rpiserver systemd[1]: Started Asterisk PBX. ноя 04 06:38:21 rpiserver asterisk[7985]: [Nov 4 06:38:21] NOTICE[8043]: chan_sip.c:29041 handle_request_register: Registratio>
Значит работает
И чтобы запускался на старте
sudo systemctl enable asterisk
Смотрим что он слушает то что нужно
sudo netstat -tulpn | grep asterisk
tcp 0 0 127.0.0.1:5038 0.0.0.0:* LISTEN 2491/asterisk udp 0 0 0.0.0.0:39348 0.0.0.0:* 2491/asterisk udp 0 0 0.0.0.0:5060 0.0.0.0:* 2491/asterisk udp 0 0 0.0.0.0:4569 0.0.0.0:* 2491/asterisk udp6 0 0 :::47426 :::* 2491/asterisk
Это то что нужно!
Сходим в сам Asterisk
sudo asterisk -rvvvvv
Asterisk 16.16.1~dfsg-1+deb11u1, Copyright (C) 1999 - 2018, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 16.16.1~dfsg-1+deb11u1 currently running on rpiserver (pid = 7985)
В extensions.conf
в конце добавляем
vi /etc/asterisk/extensions.conf
[users] exten => 6666,1,Goto(spam_ivr,s,1) exten => 6001,1,Dial(SIP/6001) exten => 6002,1,Dial(SIP/6002) [spam_ivr] exten => s,1,Answer(500) ;exten => s,2,Monitor(wav,,m) same => n(loop),Background(/var/lib/asterisk/sounds/custom/ivr) exten => 5,1,Dial(SIP/6001) exten => 7,1,Dial(SIP/6002)
тут 6002 будет наш реальный телефон который хотим чтобы звонил когда люди на проводе. А 6001 телефон которого нет, будет просто отбой.
Вторая строчк в [spam_ivr] закоменчена, она записывает разговоры.
В users.conf
в конце добавляем
vi /etc/asterisk/users.conf
[6001] fullname = Test Android secret = 1234 hassip = yes context = users host = dynamic [6002] fullname = Home phone secret = 1234 hassip = yes context = users host = dynamic
Эт учетки наших телефонов
В папку /var/lib/asterisk/sounds/custom/ кладем wav файл подготовленный в вашем любимом аудио редакторе, со словами «если вы человек нажмите 7»! Просто так он играться не будет надо его конверитров под Asterisk.
sox ivr.wav --rate 8000 --channels 1 --type ul ivr.ulaw lowpass 3400 highpass 300
был ivr.wav стал ivr.ulaw
Вот готовый файл ivr.ulaw
Julia_antyspam_ivr
Ну и прям наверняка перестартуем Asterisk
sudo service asterisk restart
Настраиваем Grandstream ht813
Эхх…
cfgHT813G
Это мои настройки, под мою сеть и телефон!
Для начала нужно чтобы звонки с городской телефонной линии звонились в астериск!
Заходим на Grandstream ht813 во вкладке BASIC SETTINGS внизу пишем в Unconditional Call Forward to VOIP:
Это настройка кидает — все звонки что приходят на порт FXO кидать на номер 6666 на ip моего asterisk по порту!
Чтобы применить изменения нажимает Apply
Далее идем в FXO PORT и делаем…
Тут внутри настраиваем, забавная штука!!! VoIP шлюз не может повесить сам трубку просто не понимает, что на другом конце её повесили. Для этого надо ему сказать какие прерывистые гудки слушать — вот для Абонентский терминал GPON RV6699 они такие как у меня
Тут поменяно Enable Current Disconnect и Enable PSTN Disconnect Tone Detection и STN Disconnect Tone и AC Termination Model и PSTN Ring Thru FXS
Как выискивать параметры для вашей линии расскажу ниже
Также на вкладе FXO должно быть включено Account Active
Указан 192.168.1.209 где у меня Asterisk крутиться!
И задан SIP User ID с Authenticate Password при этом это должна быть учетка заданная в Asterisk в users.conf при этом она не будет видна как зарегестрированная ни в Asterisk ни на HT813 но без неё IVR работать не будет! При этом эта учетка может быть на 6666 так и на другой номер 6789… вот какая-то странная странность тут непонятная непонятность!
Чтобы применить изменения нажимает Apply
И порт FSX будет обычным телефоном с номером 6002 захожу в FXS PORT
Здесь меняю Primary SIP Server и IP User ID и Authenticate Password
Чтобы применить изменения нажимает Apply
Чтобы с физического аппарата сразу звонить в город через HT813(минуя Asterisk) просто в Dial Plan в настройках FXS PORT пишем
{ L:x+ }
Все что набирается на стационарном телефоне валится в телефонную линию. Гудки, кстати появляются не сразу, их надо подождать!
Чтобы применить изменения нажимает Apply, Reboot
Как подобрать PSTN Disconnect Tone для вашей телефонной линии?
Позвонил себе с мобильного на домашний, дождался IVR нажал нужную цифру пошел звонок — бросил звонок пошли гудки, но Grandstream продолжает названивать хотя звонок прекрашен — все это пишет asterisk — все звуки!
Забираю аудио файл и открываю его в программе Free, open source, cross-platform audio software Audacity. Выделяю кусок гудка из серии финальных гудков и смотрю его спектограмму Analyze > Plot Spectrum…
Подвожу крусор к пику, и он сразу прыгает на пик, внизу смотрю Peak 425Hz 20.1Db
Меряю длинну гудка и тишину между ними
Внизу видна длинна, только надо выбрать Length and End of Selection у меня 359 милисекунд округляю до 350
И всё, дальше просто подставляем в формулу
Syntax: f1=freq@vol, f2=freq@vol, c=on1/off1-on2/off2-on3/off3; Allowed Range: freq = 0 to 4000Hz; vol = -40 to -24dBm Default: Busy Tone: f1=480@-32,f2=620@-32,c=500/500;
У меня для телефонной городской линии МГТС через Абонентский терминал GPON RV6699 надо вставить
f1=425@-21,f2=425@-21,c=350/350;
Пик один, но может быть больше поэтому f1 и f2, для одного пика все описывают его два раза, дальше c это гудок и тишина!
Так или иначе все пока работает!
Добавить комментарий