Установка марии mysql server
apt-get install mariadb-server
systemctl enable mysql&&systemctl start mysql&&service mysql status
mysqladmin -u root password
Самый простой способ для последних версий
В версиях MySQL, начиная с 5.7, можно логиниться в MySQL от root-пользователя без пароля, если системный пользователь тоже root. Это позволяет подключиться к MySQL как root-пользователь без ввода пароля, а потом изменить его. Это возможно если для пользователя root используется плагин аутентификации auth_socket.
Выполните команду:
Самый простой способ для последних версий
В версиях MySQL, начиная с 5.7, можно логиниться в MySQL от root-пользователя без пароля, если системный пользователь тоже root. Это позволяет подключиться к MySQL как root-пользователь без ввода пароля, а потом изменить его. Это возможно если для пользователя root используется плагин аутентификации auth_socket.
Выполните команду:
sudo mysql
Вы подключитесь к MySQL-серверу как root-пользователь. Теперь можно сбросить пароль одной командой. Вместо 12345 укажите свой пароль:
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
Это самый простой способ, доступный в последних версиях MySQL при использовании плагина аутентификации auth_socket.
apt install libmariadb-dev
apt install libmariadb-dev-compat
UUID
apt-get install uuid uuid-dev
Астериск иногда требует
UUID — это механизм, позволяющий присвоить каждой файловой системе уникальный идентификатор. Эти идентификаторы генерируются утилитами файловой системы (например, mkfs.*) при форматировании устройства и спроектированы таким образом, что коллизии маловероятны. Все файловые системы GNU/Linux (включая заголовки swap и LUKS необработанных зашифрованных устройств) поддерживают UUID. Файловые системы FAT, exFAT и NTFS не поддерживают UUID, но всё равно перечислены в /dev/disk/by-uuid/ с более коротким UID (уникальным идентификатором):
1
|
ls -l /dev/disk/by-uuid/ |
Компиляция астериска
cd
Каталог скачивания астериска https://downloads.asterisk.org/pub/telephony/asterisk
cd /usr/src&&wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
Это для 11 астериска
cd /usr/src&&wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.25.3.tar.gz
tar -xvf asterisk-*.tar.gz&&cd asterisk-16.3*
tar -xvf asterisk-*.tar.gz&&cd asterisk-11.2*
cd contrib&&cd scripts
./get_mp3_source.sh
./install_prereq
./install_prereq test
./install_prereq install
cd ../../
./configure —with-jansson-bundled —with-pjproject-bundled —with-mysqlclient
./configure —with-mysqlclient —with-jansson-bundled
./configure —with-mysqlclient
asterisk 11 без janson
Jansson это ещё один проект, который используется при работе Asterisk. Он позволяет использовать данные JSON, на нем основано много функций гибкого управления АТС и передачи данных во внешние приложения и получения данных из них же.
Из вывода консоли
[pjproject] Configuring with —prefix=/opt/pjproject —disable-speex-codec —disable-speex-aec —disable-bcg729 —disable-gsm-codec —disable-ilbc-codec —disable-l16-codec —disable-g722-codec —disable-g7221-codec —disable-opencore-amr —disable-silk —disable-opus —disable-video —disable-v4l2 —disable-sound —disable-ext-sound —disable-sdl —disable-libyuv —disable-ffmpeg —disable-openh264 —disable-ipp —disable-libwebrtc —without-external-pa —without-external-srtp —disable-resample —disable-g711-codec —enable-epoll
Очистка если что то пошло не так.
Если ошибся почистить
make clean
rm -f defaults.h
rm -f include/asterisk/build.h
rm -f main/version.c
rm -f doc/core-en_US.xml
rm -f doc/full-en_US.xml
rm -f doc/rest-api/*.wiki
rm -f doxygen.log
rm -rf latex
rm -f rest-api-templates/*.pyc
make[1]: Entering directory ‘/usr/src/asterisk-16.30.0/menuselect’
rm -f menuselect cmenuselect gmenuselect nmenuselect menuselect.o strcompat.o menuselect_stub.o
make[1]: Leaving directory ‘/usr/src/asterisk-16.30.0/menuselect’
cp -f .cleancount .lastclean
make menuconfig
make
Теперь устанавливаем asterisk 16 и все его модули.
# make install
В процессе установки инсталлятор будет загружать некоторые файлы, к примеру wav файлы, из интернета. По окончании установки, увидите сообщение в рамочке.
Формируем образцы файлов конфигурации, чтобы не писать их с нуля самим.
make samples
make basic-pbx
В завершении установки, создаем init скрипт.
make config
Можно еще обновить кэш используемых динамических библиотек.
ldconfig
Завести группу и пользователя астериск
useradd — это низкоуровневая утилита для создания пользователей в Linux.
adduser — представляет собой более простое решение для создания пользователей и по факту является надстройкой над useradd, groupadd и usermod.
Утилита adduser доступна не во всех дистрибутивах Linux. Реализация adduser также может отличаться. Если в дистрибутиве присутствует утилита adduser, то для создания пользователей рекомендуется использовать именно ее.
$ useradd опции имя_пользователя
Все довольно просто, дальше нам нужно рассмотреть основные опции команды, с помощью которых вы будете настраивать нового пользователя:
- -b — базовый каталог для размещения домашнего каталога пользователя, по умолчанию /home;
- -c — комментарий к учетной записи;
- -d — домашний каталог, в котором будут размещаться файлы пользователя;
- -e — дата, когда учетная запись пользователя будет заблокирована, в формате ГГГГ-ММ-ДД;
- -f — заблокировать учетную запись сразу после создания;
- -g — основная группа пользователя;
- -G — список дополнительных групп;
- -k — каталог с шаблонами конфигурационных файлов;
- -l — не сохранять информацию о входах пользователя в lastlog и faillog;
- -m — создавать домашний каталог пользователя, если он не существует;
- -M — не создавать домашнюю папку;
- -N — не создавать группу с именем пользователя;
- -o — разрешить создание пользователя linux с неуникальным идентификатором UID;
- -p — задать пароль пользователя;
- -r — создать системного пользователя, не имеет оболочки входа, без домашней директории и с идентификатором до SYS_UID_MAX;
- -s — командная оболочка для пользователя;
- -u — идентификатор для пользователя;
- -D — отобразить параметры, которые используются по умолчанию для создания пользователя. Если вместе с этой опцией задать еще какой-либо параметр, то его значение по умолчанию будет переопределено.
- Поле GECOS — это одно из полей записи файла
/etc/passwd
в Unix и других подобных. В него записывается основная информация о пользователе, например, реальное имя или номер телефона. В Unix это пятое поле из семи возможных. adduser --system --no-create-home USERNAME
useradd -r -d /var/lib/asterisk -g asterisk asterisk
-r -создать системного пользователя, не имеет оболочки входа, без домашней директории и с идентификатором до SYS_UID_MAX
-g — основная группа пользователя;
groupadd asterisk &&
&& usermod -aG audio,dialout asterisk
108 groupadd -g 1500 asterisk
109 id asterisk
110 useradd -u 1500 -r -g asterisk asterisk
111 id
112 id asterisk
&& chown -R asterisk.asterisk /etc/asterisk
&& chown -R asterisk.asterisk /var/{lib,log,run,spool}/asterisk
&& chown -R asterisk.asterisk /usr/lib/asterisk
id asterisk
sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/’ /etc/default/asterisk && sed -i ‘s/#AST_GROUP=»asterisk»/AST_GROUP=»asterisk»/’ /etc/default/asterisk && sed -i ‘s/;runuser = asterisk/runuser = asterisk/’ /etc/asterisk/asterisk.conf && sed -i ‘s/;rungroup = asterisk/rungroup = asterisk/’ /etc/asterisk/asterisk.conf
Подключить модуль cdr_mysql.so
После выполнения вышеуказанных действий запустите asterisk и попробуйте подключить модуль cdr_mysql.so. Для этого запустите подключение к asterisk:asterisk -rvvv
И из командной строки asterisk (asterisk CLI) выполните следующую команду: module load cdr_mysql.so
При возникновении ошибок решение см. в конце статьи. В случае, если Вы исправили ошибку, и Вам необходимо выгрузить и повторно загрузить модуль, выполните команды:module unload cdr_mysql.so
module load cdr_mysql.so
В случае успеха asterisk может выдать несколько уведомлений и загрузит модуль. Убедиться в том, что модуль загружен, можно выполнив команду:module show like cdr_mysql.so
После этого перезагрузите конфигурацию CDR и убедитесь, что звонки фиксируются в базе данных. Для перезагрузки конфигурации CDR выполните команды:reload cdr
reload cdr_mysql.so
илиreload
На этом настройка asterisk закончена.
Будьте поаккуратнее с systemd
Если после завершения сборки, в директории /lib/systemd/system не появился файл asterisk.service необходимо его туда скопировать командой
cp /usr/src/asterisk-16.30.0/contrib/systemd/asterisk.service /lib/systemd/system
mv /etc/init.d/asterisk ~/asterisk.init.d.bak
tee /etc/systemd/system/asterisk.service
nano /etc/systemd/system/asterisk.service
!! вот этот файл вставить и будет запускаться
[Unit]
Description=Asterisk PBX And Telephony Daemon
After=network.target
[Service]
User=asterisk
Group=asterisk
Environment=HOME=/var/lib/asterisk
WorkingDirectory=/var/lib/asterisk
ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf
ExecStop=/usr/sbin/asterisk -rx ‘core stop now’
ExecReload=/usr/sbin/asterisk -rx ‘core reload’
[Install]
WantedBy=multi-user.target
Сбиваются права /usr/run/asterisk с asterisk на root
Сбиваются права с asterisk на root сделай вот это файл
Также может понадобится добавить правило в директорию /etc/tmpfiles.d для разрешения Asterisk
создавать сокет во время выполнения.
/etc/tmpfiles.d/asterisk.conf
в нем одна строчка
d /var/run/asterisk 0775 asterisk asterisk
systemctl daemon-reload
Делаем автозагрузку астериска
systemctl start asterisk
systemctl restart asterisk
systemctl enable asterisk
systemctl status asterisk
asterisk -rvvvv
systemctl start asterisk
systemctl status asterisk
Удалить астериск
rm -rf /etc/asterisk
rm -rf /var/log/asterisk
rm -rf /var/lib/asterisk
rm -rf /var/spool/asterisk
rm -rf /usr/lib/asterisk
root@iptv:/etc# find / -name «*asterisk*»
/var/run/asterisk
/var/run/asterisk/asterisk.ctl
/var/run/asterisk/asterisk.pid
/var/cache/apt/archives/asterisk_1%3a1.6.2.5-0ubuntu1.4_i386.deb
/var/cache/apt/archives/asterisk-config_1%3a1.6.2.5-0ubuntu1.4_all.deb
/var/cache/apt/archives/asterisk-sounds-main_1%3a1.6.2.5-0ubuntu1.4_all.deb
/var/lib/update-rc.d/asterisk
/var/lib/dpkg/info/asterisk-config.list
/var/lib/dpkg/info/asterisk.postrm
/var/lib/dpkg/info/asterisk.list
/var/log/asterisk
/usr/share/vim/vim72/syntax/asterisk.vim
/usr/share/vim/vim72/syntax/asteriskvm.vim
/etc/default/asterisk
/etc/rc4.d/S21asterisk
/etc/rc1.d/K21asterisk
/etc/rc3.d/S21asterisk
/etc/rc5.d/S21asterisk
/etc/init.d/asterisk
/etc/logrotate.d/asterisk
/etc/rc0.d/K21asterisk
/etc/rc2.d/S21asterisk
/etc/asterisk
/etc/rc6.d/K21asterisk
/root/.asterisk_history
root@vm:/usr/src/asterisk-11.25.3# find / -name «*asterisk*»
/run/asterisk
/root/.asterisk_history
/var/lib/mysql/asteriskcdrdb
/usr/share/javascript/codemirror/mode/asterisk
/usr/share/javascript/codemirror/mode/asterisk/asterisk.js
/usr/share/man/man8/safe_asterisk.8
/usr/share/man/man8/asterisk.8
/usr/include/asterisk
/usr/include/asterisk.h
/usr/sbin/safe_asterisk
/usr/sbin/asterisk
/usr/sbin/rasterisk
/usr/lib/systemd/system/asterisk.service
/usr/lib/libasteriskssl.so.1
/usr/lib/libasteriskpj.so
/usr/lib/pkgconfig/asterisk.pc
/usr/lib/libasteriskpj.so.2
/usr/lib/libasteriskssl.so
Готовые команды удаления
rm -rf /usr/share/javascript/codemirror/mode/asterisk
rm /usr/share/man/man8/safe_asterisk.8
rm /usr/share/man/man8/asterisk.8
rm /usr/include/asterisk
rm /usr/include/asterisk.h
rm /usr/sbin/safe_asterisk
rm /usr/sbin/asterisk
rm /usr/sbin/rasterisk
rm /usr/lib/systemd/system/asterisk.service
rm /usr/lib/libasteriskssl.so.1
rm /usr/lib/libasteriskpj.so
rm /usr/lib/pkgconfig/asterisk.pc
rm /usr/lib/libasteriskpj.so.2
rm /usr/lib/libasteriskssl.so
rm /usr/share/man/man8/safe_asterisk.8
rm /usr/share/man/man8/asterisk.8
rm -rf /usr/include/asterisk
rm /etc/rc0.d/K01asterisk
rm /etc/rc1.d/K01asterisk
rm /etc/default/asterisk
rm /etc/rc2.d/K01asterisk
rm /etc/init.d/asterisk
rm /etc/rc6.d/K01asterisk
rm /etc/rc3.d/K01asterisk
rm /etc/rc4.d/K01asterisk
rm /etc/rc5.d/K01asterisk
rm /usr/share/man/man8/safe_asterisk.8
rm /usr/include/asterisk.h
rm /usr/include/asterisk
rm /usr/lib/systemd/system/asterisk.service
rm /usr/lib/libasteriskpj.so.2
rm /usr/lib/libasteriskpj.so
rm /usr/lib/libasteriskssl.so.1
rm /usr/lib/pkgconfig/asterisk.pc
rm /usr/lib/libasteriskssl.so
rm /usr/sbin/rasterisk
rm /usr/sbin/asterisk
rm /usr/sbin/safe_asterisk
rm -rf /var/spool/asterisk
rm -rf /run/asterisk
rm /root/.asterisk_history