Advertisement
load-net

Установка Asterisk 16 на Debian 10

Nov 16th, 2022 (edited)
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.95 KB | None | 0 0
  1. sudo apt update
  2. sudo apt upgrade
  3. sudo apt dist-upgrade
  4.  
  5.  
  6.  
  7.  
  8.  
  9. apt-get install -y git wget curl sudo apt-transport-https lsb-release systemd systemd-sysv ca-certificates dialog dirmngr openssh-server
  10. apt-get install -y bash bash-completion htop iftop nmap unzip bzip2 mc telnet pwgen
  11. apt-get install -y mariadb-server mariadb-client libmariadb3 libmariadb-dev
  12. systemctl start mariadb
  13. systemctl enable mariadb
  14.  
  15. apt-get install -y apache2 apache2-utils
  16. systemctl reload apache2
  17. systemctl enable apache2
  18.  
  19.  
  20. apt-get install -y php libapache2-mod-php php-cli php-cgi php-pear php-common php-phpseclib php-mbstring
  21.  
  22. apt-get install -y php-fpm php-json php-pdo php-mysql php-mysqli php-imagick php-zip php-gd php-curl php-mbstring php-curl php-xml php-pear php-bcmath
  23. php -v
  24. a2enmod php7.4
  25. a2enmod rewrite
  26.  
  27.  
  28.  
  29. cd /usr/src/
  30. wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.tar.gz
  31. tar xvf phpMyAdmin-4.9.1-all-languages.tar.gz
  32. mv phpMyAdmin-4.9.1-all-languages /usr/share/phpmyadmin
  33. mkdir -p /var/lib/phpmyadmin/tmp
  34. chown -R www-data:www-data /var/lib/phpmyadmin
  35. chown -R www-data:www-data /usr/share/phpmyadmin
  36. mkdir /etc/phpmyadmin/
  37. cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
  38.  
  39. pwgen -s 32 1
  40.  
  41.  
  42. sed -i "s/$cfg['qfCDmd7CwknnnLMZV9DXt4jA8RSVTvk2'] = .*/$cfg['qfCDmd7CwknnnLMZV9DXt4jA8RSVTvk2'] = 'qfCDmd7CwknnnLMZV9DXt4jA8RSVTvk2' /" /usr/share/phpmyadmin/config.inc.php
  43. echo "//$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';" >> /usr/share/phpmyadmin/config.inc.php
  44.  
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  46. cat > /etc/apache2/conf-enabled/phpmyadmin.conf << 'EOF'
  47. Alias /phpmyadmin /usr/share/phpmyadmin
  48. <Directory /usr/share/phpmyadmin>
  49. Options SymLinksIfOwnerMatch
  50. DirectoryIndex index.php
  51. <IfModule mod_php5.c>
  52. <IfModule mod_mime.c>
  53. AddType application/x-httpd-php .php
  54. </IfModule>
  55. <FilesMatch ".+\.php$">
  56. SetHandler application/x-httpd-php
  57. </FilesMatch>
  58. php_value include_path .
  59. php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
  60. php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
  61. php_admin_value mbstring.func_overload 0
  62. </IfModule>
  63. <IfModule mod_php.c>
  64. <IfModule mod_mime.c>
  65. AddType application/x-httpd-php .php
  66. </IfModule>
  67. <FilesMatch ".+\.php$">
  68. SetHandler application/x-httpd-php
  69. </FilesMatch>
  70. php_value include_path .
  71. php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
  72. php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
  73. php_admin_value mbstring.func_overload 0
  74. </IfModule>
  75. </Directory>
  76. # Authorize for setup
  77. <Directory /usr/share/phpmyadmin/setup>
  78. <IfModule mod_authz_core.c>
  79. <IfModule mod_authn_file.c>
  80. AuthType Basic
  81. AuthName "phpMyAdmin Setup"
  82. AuthUserFile /etc/phpmyadmin/htpasswd.setup
  83. </IfModule>
  84. Require valid-user
  85. </IfModule>
  86. </Directory>
  87. # Disallow web access to directories that don't need it
  88. <Directory /usr/share/phpmyadmin/templates>
  89. Require all denied
  90. </Directory>
  91. <Directory /usr/share/phpmyadmin/libraries>
  92. Require all denied
  93. </Directory>
  94. <Directory /usr/share/phpmyadmin/setup/lib>
  95. Require all denied
  96. </Directory>
  97. EOF
  98. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  99.  
  100.  
  101.  
  102. mariadb < /usr/share/phpmyadmin/sql/create_tables.sql -uroot -p1234566
  103. mariadb -uroot -p1234566 <<MY_QUERY
  104. GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234566' WITH GRANT OPTION;
  105. FLUSH PRIVILEGES;
  106. MY_QUERY
  107. systemctl restart apache2
  108.  
  109.  
  110. sed -i "s/\(upload_max_filesize = \).*/\120M/" /etc/php/7.4/apache2/php.ini
  111. sed -i "s/post_max_size = .*/post_max_size = 80M /" /etc/php/7.4/apache2/php.ini
  112. sed -i "s/memory_limit = .*/memory_limit = 512M /" /etc/php/7.4/apache2/php.ini
  113. sed -i 's%;date.timezone =%date.timezone = Europe/Moscow%g' /etc/php/7.4/apache2/php.ini
  114. cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
  115. sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
  116. systemctl restart php7.4-fpm.service
  117. systemctl restart apache2.service
  118.  
  119.  
  120. apt-get install -y linux-headers-`uname -r` libapache2-mod-log-sql-ssl libfreetype6-dev doxygen yasm nasm gdb cmake build-essential make automake autoconf 'libtool-bin|libtool' python python-dev uuid uuid-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre3-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev ccache libpng-dev libopenal-dev libcodec2-dev libsoundtouch-dev libmagickcore-dev liblua5.2-dev libsndfile-dev libopencv-dev libavformat-dev libx264-dev erlang-dev libldap2-dev libperl-dev
  121.  
  122.  
  123. apt-get install -y libpq-dev subversion gcc lynx bison flex memcached libshout3-dev libvpx-dev mpg123 libmpg123-dev libmp3lame-dev libncurses5-dev libpng16-16 libxml2-dev libxml2 libcurl4 libnewt-dev sqlite3
  124.  
  125. apt-get install -y libasound2-dev sox pkg-config libedit-dev libcppdb-odbc0 unixodbc unixodbc-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp2-1 libspandsp-dev sendmail sendmail-bin sendmail-cf
  126.  
  127. apt-get install -y haveged odbcinst
  128. apt-get update && apt-get upgrade -y
  129. cd /usr/src
  130.  
  131. apt-get install -y nodejs dahdi dahdi-linux dahdi-source libpri1.4 libpri-dev
  132.  
  133.  
  134. wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
  135. tar xvfz asterisk-16-current.tar.gz
  136. cd asterisk-16.29.0/
  137. contrib/scripts/get_mp3_source.sh
  138. contrib/scripts/install_prereq install
  139. ./configure NOISY_BUILD=yes --with-crypto --with-ssl=ssl --with-srtp --with-jansson-bundled
  140. make menuselect
  141.  
  142. make && make install && make config && make samples
  143. ldconfig
  144.  
  145.  
  146. adduser --system --group --home /var/lib/asterisk --no-create-home --disabled-password --gecos "Asterisk PBX" asterisk
  147. usermod -a -G asterisk,dialout,audio asterisk
  148. sed -i "s/#AST_USER="asterisk"/AST_USER=asterisk/" /etc/default/asterisk
  149. sed -i "s/#AST_GROUP="asterisk"/AST_GROUP=asterisk/" /etc/default/asterisk
  150. sed -i "s/;runuser = asterisk/runuser=asterisk/" /etc/asterisk/asterisk.conf
  151. sed -i "s/;rungroup = asterisk/rungroup=asterisk/" /etc/asterisk/asterisk.conf
  152. chown -R asterisk:asterisk /var/lib/asterisk
  153. chown -R asterisk:asterisk /var/log/asterisk
  154. chown -R asterisk:asterisk /var/run/asterisk
  155. chown -R asterisk:asterisk /var/spool/asterisk
  156. chown -R asterisk:asterisk /usr/lib/asterisk
  157. chown -R asterisk:asterisk /etc/asterisk
  158. chmod -R u=rwX,g=rX,o=rX /var/lib/asterisk
  159. chmod -R u=rwX,g=rX,o=rX /var/log/asterisk
  160. chmod -R u=rwX,g=rX,o=rX /var/run/asterisk
  161. chmod -R u=rwX,g=rX,o=rX /var/spool/asterisk
  162. chmod -R u=rwX,g=rX,o=rX /usr/lib/asterisk
  163. chmod -R u=rwX,g=rX,o=rX /etc/asterisk
  164.  
  165.  
  166.  
  167. systemctl enable asterisk
  168. systemctl start asterisk
  169. systemctl status asterisk
  170.  
  171. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  172. 1234566
  173. mysql -u root -p
  174. 1234566
  175.  
  176. CREATE DATABASE asterisk DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  177. GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'localhost' IDENTIFIED BY '1234566';
  178. use asterisk
  179. source /usr/src/asterisk-16.29.0/contrib/realtime/mysql/mysql_cdr.sql
  180. source /usr/src/asterisk-16.29.0/contrib/realtime/mysql/mysql_config.sql
  181. SHOW TABLES;
  182.  
  183. mysql -u root -p
  184. 1234566
  185. use asterisk
  186. SHOW TABLES;
  187.  
  188. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  189. apt-get install -y iptables-persistent netfilter-persistent ipset fail2ban
  190.  
  191.  
  192.  
  193.  
  194. ////////////////////////////////////////////////////
  195.  
  196. Asterisk 16 ODBC MariaDB
  197. Установка необходимых пакетов ODBC и утилит
  198.  
  199. apt-get install -y unixodbc unixodbc-dev libcppdb-odbc0 odbcinst git checkinstall cmake build-essential libssl1.0-dev
  200.  
  201. Установка клиенткой библиотеки MariaDB
  202. Этот пакет необходим для сборки драйвера unixODBC. Он накладывается на libmariadb-dev, но предоставляет дополнительные заголовочные файлы, которые отсутствуют в Debian 10.
  203.  
  204. cd /usr/src/
  205. git clone https://github.com/MariaDB/mariadb-connector-odbc.git
  206. mkdir build && cd build
  207. cmake ../mariadb-connector-odbc/ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONC_WITH_UNIT_TESTS=Off -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_SSL=OPENSSL
  208. cmake --build . --config RelWithDebInfo
  209. make install
  210.  
  211. cp /usr/local/lib/mariadb/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
  212.  
  213.  
  214.  
  215. Настройка подключения к Asterisk 16
  216.  
  217.  
  218. Конфигурация файла /etc/odbcinst.ini
  219.  
  220. # Driver from the MariaDB-connector-odbc package
  221. # Setup from the unixODBC package
  222. [Default]
  223. Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
  224. [MariaDB]
  225. Description = ODBC for MariaDB
  226. Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
  227. Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
  228. FileUsage = 1
  229. UsageCount = 1
  230.  
  231.  
  232. find / -name libmaodbc.so -print
  233. find / -name libodbcmyS.so -print
  234.  
  235.  
  236. Мы настраиваем пул для подключения так, как это, вероятно, требуется большинству пользователей. Обратитесь к документации unixODBC, чтобы узнать больше о функции соединений ODBC.
  237.  
  238. Также может быть использована конфигурация для PostgreSQL, которую вы можете закомментировать, если вы не планируете настраивать PostgreSQL. Комментарии начинаются с символа хеш (#).
  239.  
  240. Вы также можете проверить odbcinst, чтобы убедиться, что конфигурация найдена.
  241.  
  242. odbcinst -q -d
  243. Вывод должен быть примерно следующий:
  244.  
  245. [MariaDB]
  246.  
  247. Конфигурация файла /etc/odbc.ini
  248.  
  249. [MariaDB-asterisk]
  250. Description=MySQL connection to Asterisk
  251. Trace = Yes
  252. TraceFile = /tmp/odbc.log
  253. Driver=MariaDB
  254. Server=localhost
  255. User=asterisk
  256. Password=1234566
  257. Database=asterisk
  258. Port=3306
  259. Socket=/var/run/mysqld/mysqld.sock
  260. Option=3
  261. Charset=utf8
  262. Не забудьте изменить значения:
  263.  
  264. Server=localhost
  265. User=asterisk
  266. Password=1234566
  267. Database=asterisk
  268. на свои.
  269.  
  270. Конфигурация файла /etc/asterisk/cdr_adaptive_odbc.conf
  271.  
  272. [asterisk]
  273. connection=asterisk
  274. table=cdr
  275. loguniqueid=yes
  276. usegmtime=no
  277. alias start => calldate
  278. alias realdst => realdst
  279. alias remoteip => remoteip
  280. alias start => calldate
  281. alias hangupcause => hangupcause
  282. alias peerip => peerip
  283. alias recvip => recvip
  284. alias fromuri => fromuri
  285. alias useragent => useragent
  286. alias filename => filename
  287.  
  288. Конфигурация файла /etc/asterisk/res_odbc.conf
  289.  
  290. [ENV]
  291. [asterisk]
  292. enabled=>yes
  293. dsn=>MariaDB-asterisk
  294. ;pooling=>no
  295. ;limit=>1
  296. pre-connect=>yes
  297. username=>asterisk
  298. password=>1234566
  299.  
  300. Не забудьте изменить значения:
  301.  
  302. username=asterisk
  303. password=1234566
  304. на свои.
  305.  
  306. Конфигурация файла /etc/asterisk/cel_odbc.conf
  307.  
  308. [cel]
  309. connection=asterisk
  310. loguniqueid=yes
  311. table=cel
  312.  
  313. Конфигурация файла /etc/asterisk/cdr_odbc.conf
  314.  
  315. [global]
  316. dsn=asterisk
  317. loguniqueid=yes
  318. dispositionstring=yes
  319. table=cdr
  320. usegmtime=no
  321. hrtime=yes
  322. newcdrcolumns=yes
  323.  
  324. Подводя итог, установка и настройка Asterisk 16 ODBC MariaDB окончена! Подключение настроено и теперь ваши CDR данные должны успешно записываться в БД.
  325.  
  326. ////////////////////////////////////////////////////
  327.  
  328. asterisk -rvvvv
  329. odbc show all
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement