ç§ãã¡ã®æ代ã«ã¯ãã³ã³ããã«å€ãã®èå³æ·±ãã·ã¹ãã ãã€ã³ã¹ããŒã«ã§ããŸã

ããããã«ããã®äžã«ã¯ãã¢ã¹ã¿ãªã¹ã¯+ freepbxã®æ¯èŒçæšæºçãªã€ã³ã¹ããŒã«æé ãããããŸããã ãã¹ãŠã®ãœãããŠã§ã¢ã®ããŒãžã§ã³ããæåŸã®å®å®ãã§ãããapache-nginxã®ä»£ããã«æå·åããããã€ã³ã¹ããŒã«å
šäœãæè¿ãæçãããlxcã§ãããšããäºå®ã«ãããéå±ãã¯ãããã«ææãããŸãã åºåã¯éåžžã«ã¢ãã€ã«ã§ãã³ã³ãã¯ãã§ææ°ã®IP-PBXã«ãªããä¿åæã«200ã300 MBã®RAMãæ¶è²»ããŸãã
0.ã€ã³ã¹ããŒã«ã®åã«å§ããåã«ããã®æ瀺ã¯DAHDIã®ã€ã³ã¹ããŒã«ãæå³ãããã®ã§ã¯ãªããã¢ããã°åç·ã§äœæ¥ããããšãèæ
®ããŠãã ããã ããã«ãã·ã¹ãã ã¯
FreePBXã«ãã£ãŠå
Œ΋ǎ
åžãããŠããªããããå°æ¥çã«åçšã®FreePBXã¢ãžã¥ãŒã«ãæ¥ç¶ããããšã¯ã§ããŸããã
çŸæç¹ã§ã¯ããã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯åçšã¢ãžã¥ãŒã«ã®ã¿ããµããŒãããŠããŸãã Yoyã¯éãã£ã¹ããªãã¥ãŒã·ã§ã³ã·ã¹ãã ã䜿çšããŠãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ããããšã¯ã§ããŸããïŒ Andrew NagyããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ãã£ã¬ã¯ã¿ãŒ ïŒ
1. LXC.ProxmoxãŸããCentosã§ã³ã³ãããŒãäœæããå¿
èŠããããŸãã ç§ãšåãããã«proxmox veã䜿çšããŠããå Žåã¯ãWebã€ã³ã¿ãŒãã§ãŒã¹ãããããè¡ãã®ãæã䟿å©ã§ãã ãæ©åšãã®èšå®ã¯æå°éã§ãã 次ã«ãã³ã¢ïŒ1ã¡ã¢ãªïŒ1024 rootfsïŒ8Gã¹ã¯ããïŒ256ã®ããŒãºãæºããããã«å¢ããããšãã§ããOSãã³ãã¬ãŒããšããŠcentos-7-default_20171212_amd64.tar.xzã䜿çšããŸãã
ãã³ãã¬ãŒããããŠã³ããŒãã§ããªãå Žåã¯ããã¹ãã§pveamã®æŽæ°ãå®è¡ããŠãã ããã ã³ã³ãããã€ã³ã¹ããŒã«ããŠèµ·åããåŸãéåžžã¯ããã«sshãé
眮ããŸãã çµ±åãããproxmox Webã³ã³ãœãŒã«ã§ã®äœæ¥ã¯ããŸã䟿å©ã§ã¯ãããŸããã
yum -y install openssh-server systemctl enable sshd --now
2. LEMPãªããžããªãšåºæ¬ãŠãŒãã£ãªãã£
yum -y install epel-release rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum -y update
webtaticã®éžæã¯ãphp56wãããã«ã€ã³ã¹ããŒã«ããããšã«ããæ£åœåãããŸããphp56wã䜿çšãããšãfreepbxã®åäœãä¿èšŒãããŸãã ããããããªãã¯ã¬ããè©Šãããšãã§ããŸãã
mariadbãnginxããŠãŒãã£ãªãã£ãé
眮ããŸãã net-toolsããã±ãŒãžã䟿å©ã§ãã centos7ã§ã¯ãããã©ã«ãã§freepbxãæ©èœããifconfigã¯ãããŸããã
yum -y install wget tar nano bzip2 unzip curl net-tools make gcc gcc-c++ openssl openssl-devel mariadb-server mariadb-devel nginx tftp-server crontabs cronie cronie-anacron sendmail sendmail-cf
Freepbxã¯ãŸã php7ããµããŒãããŠããªããããæšå¥šããã5.6ãè¿œå ããŸããã
yum -y install php56w php56w-pdo php56w-mysql php56w-mbstring php56w-pear php56w-process php56w-xml php56w-opcache php56w-ldap php56w-intl php56w-soap php56w-fpm php56w-gd
mariadbãšnginxãèµ·åããApacheãåæããphp.iniãä¿®æ£ããŸãã ããããªããšãWebã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠfreepbxã¢ãžã¥ãŒã«ãæŽæ°ã§ããªããªããŸãã
systemctl enable mariadb.service systemctl start mariadb sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini systemctl enable nginx --now systemctl disable httpd
ãã®åŸãã«ãŒããã¹ã¯ãŒããèšå®ããã«mysql_secure_installationãå®è¡ã§ããŸã-ããã¯freepbxã€ã³ã¹ããŒã©ãŒã«å¿
èŠã§ãã
LEMPãµãŒããŒã®äœæ¥çšã®ãæºåããã§ããã®ã§ãã·ã¹ãã ãããã¯ã¢ããããŠãããŒã«ããã¯ããããããã¯ã¢ããã䜿çšããŠå¥ã®ãµãŒããŒãæºåãããã§ããŸãã 1åããããããå®å
šãªã¢ãŒã«ã€ãã¯çŽ350MBã«ãªããŸãã
3.ã¢ã¹ã¿ãªã¹ã¯.SRTPåºæ¬çã«ããã¹ãŠãã¢ã¹ã¿ãªã¹ã¯ãã€ã³ã¹ããŒã«ããæºåãã§ããŠããŸãã ãªãã·ã§ã³--with-pjproject-bundledã䜿çšããŠãã¢ã»ã³ããªäžã«SIPãšPJSIPãæäŸããŸãã æ¬ èœããŠããã®ã¯ãã¡ãã£ã¢æå·åãµããŒããæå¹ã«ããsrtpã§ãã å°ããªãã©ã°ããããŸã ã¢ã¹ã¿ãªã¹ã¯14ã®ããã¥ã¡ã³ãã§ã¯ãsrtpã«ã¯1.5.4以äžã®libsrtpãå¿
èŠã§ãããçè«çã«ã¯libsrtp 2.xããµããŒããããŠããŸãããå®å®ããçµæãåŸãã«ã¯1.5.4ã䜿çšããããšãå®éã«å¿
èŠã§ãã ã€ãŸãããªããžããªã®ããŒãžã§ã³1.4.4ã¯æ©èœããªããããèªåã§çµã¿ç«ãŠãå¿
èŠããããŸãã
cd /usr/src/ wget https://github.com/cisco/libsrtp/archive/v1.5.4.tar.gz tar xvzf v1.5.4.tar.gz cd libsrtp-1.5.4 ./configure --libdir=/usr/lib64 --enable-openssl make shared_library make install
念ã®ãããç®çå°ã§å³æžé€šã®å©çšå¯èœæ§ã確èªããããšãã§ããŸã
ls /usr/lib64 | grep srtp
ldconfigãä»ããŠ
ldconfig -p | grep srtp
ãã³ãïŒ make shared_libraryãæå®ããªãå Žåãããã©ã«ãã§makeã¯libsrtp.aã¢ãŒã«ã€ãã©ã€ãã©ãªããã«ãããmake runtestäžéãã¹ããå¿
èŠã§ãã libsrtp.aãå¿
èŠãªå Žåã¯ããã®ãã¹ãã®ããã«äºåã«èŸæžãããŠã³ããŒãããŠãã ããã
wget -O /usr/share/dict/words https://github.com/cisco/libsrtp/blob/master/test/words.txt
ã¢ã¹ã¿ãªã¹ã¯ãããŠã³ããŒãããŠå±éããŸãã
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz tar xvfz asterisk-14-current.tar.gz cd asterisk-14*/
ãã®æ®µéã§ãéçºè
ãã芪åã«æäŸãããã¹ã¯ãªããã䜿çšããŠãå¿
èŠãªããã±ãŒãžã®å¯çšæ§ã確èªããã€ã³ã¹ããŒã«ã§ããŸãã äžéšã®ããã±ãŒãžã¯æ¢ã«ã€ã³ã¹ããŒã«ãããŠããããããã®ãã¹ãã¯
test
ã¢ãŒãã§å®è¡ããããšããå§ãããŸãã
./contrib/scripts/install_prereq test
ã¹ã¯ãªããåºåããmysql-develãsrtp-develãåé€ããgmime22-develãgmime-develã«çœ®ãæããŸãã çŸæç¹ã§ã¯ããªããžããªå
ã®lameããã±ãŒãžãšjanssonããã±ãŒãžã¯æ°ããããããªããžããªãããããããé
眮ããŸãã
yum -y install patch ncurses-devel uuid-devel libuuid-devel jansson-devel lame lame-libs libxml2-devel sqlite-devel automake unixODBC-devel libcurl-devel libogg-devel libvorbis-devel speex-devel spandsp-devel freetds-devel net-snmp-devel iksemel-devel corosynclib-devel newt-devel popt-devel libtool-ltdl-devel lua-devel libsqlite3x-devel radiusclient-ng-devel portaudio-devel neon-devel libical-devel openldap-devel sqlite2-devel bluez-libs-devel jack-audio-connection-kit-devel gsm-devel libedit-devel pjproject-devel gmime-devel subversion git libxslt-devel python-devel
次ã«ããµãŠã³ããã¡ã€ã«ãœãŒã¹ãããŒãããã¢ã¹ã¿ãªã¹ã¯æ§æãå®è¡ããŸã
./contrib/scripts/get_mp3_source.sh ./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp
ãã¹ãŠããšã©ãŒãªãã§å®äºããå Žåãæ§æã¡ãã¥ãŒãéå§ããŸã
make menuselect
mp3ãµããŒããæå¹ã«ããã³ã¢ãµãŠã³ãããã±ãŒãžãä¿çé³ãã¡ã€ã«ããã±ãŒãžãããã³ãšã¯ã¹ãã©ãµãŠã³ãããã±ãŒãžã§ç®çã®ãªãŒãã£ãªãã¡ã€ã«ããã±ãŒãžãéžæããŸãã ãŸãã念ã®ããããªãœãŒã¹ã¢ãžã¥ãŒã«ã§res_srtpã¢ã€ãã ã®å¯çšæ§ã確èªããŸãã ã§ãã 次ïŒ
make && make install && make config && ldconfig
ããã§ãã¢ã¹ã¿ãªã¹ã¯ãå®è¡ããŠãsrtpã¢ãžã¥ãŒã«ãéžæããããã©ããã確èªã§ããŸãã
systemctl start asterisk systemctl status asterisk rasterisk Asterisk 14.7.5, Copyright (C) 1999 - 2016, 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 14.7.5 currently running on pbx4 (pid = 28020) pbx4*CLI>
ã¢ã¹ã¿ãªã¹ã¯ã¯æ©èœããŸããsrtpã¢ãžã¥ãŒã«ãããŒããããŠãããã©ããã確èªããŸãã ã¢ã¹ã¿ãªã¹ã¯ã³ã³ãœãŒã«ã§ã次ã®æäœãè¡ããŸãã
pbx4*CLI> module show like srtp Module Description Use Count Status Support Level res_srtp.so Secure RTP (SRTP) 0 Running core 1 modules loaded
ã¢ãžã¥ãŒã«ãããŒããããŠããªãå Žåã¯ãããŒãããŠã¿ãŠãã ããã
pbx4*CLI> module load res_srtp.so Loaded res_srtp.so
ãã¹ãŠãããŸããã£ãå Žå-ãµãŒãã¹ãåæ¢ããã¢ã¹ã¿ãªã¹ã¯ã®èµ·åããªãã«ããŸãã å°æ¥çã«ã¯ãfreepbxãµãŒãã¹ã«ãã£ãŠèµ·åãããŸãã
systemctl stop asterisk systemctl disable asterisk
4. Freepbx.NginxãŠãŒã¶ãŒã«ã¢ã¹ã¿ãªã¹ã¯ãååŸãããã£ã¬ã¯ããªãžã®æš©éãäžããŸã
adduser asterisk -m -c "Asterisk User" chown asterisk. /var/run/asterisk chown asterisk. /var/spool/mqueue/ chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib64/asterisk chown -R asterisk. /var/www/ chown -R asterisk. /var/lib/nginx
nodeJSãã€ã³ã¹ããŒã«ããŸãã
curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs
nginxãšphp-fpmãæ§æããŸãã ãããè¡ãã«ã¯ã/ etc / nginx / conf.d /ããã³/etc/php-fpm.d/å
ã®ãã¹ãŠã®ãã¡ã€ã«ãåé€ãã代ããã«ç¬èªã®ãã¡ã€ã«ãäœæããŸãã ãã®äŸã¯ããã·ã³ã®IPã¢ã¯ã»ã¹ã瀺ããŠããŸãã
nano /etc/nginx/conf.d/freepbx.conf
server { server_name 10.10.0.126; listen 80; index index.php; client_max_body_size 120m; root /var/www/html/; location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SERVER_NAME $host; } }
nano /etc/php-fpm.d/freepbx.conf
[freepbx] listen = /var/run/php-fpm.sock listen.owner = asterisk listen.group = asterisk listen.mode = 0666 user = asterisk group = asterisk pm = dynamic pm.max_children = 30 pm.start_servers = 3 pm.min_spare_servers = 3 pm.max_spare_servers = 21 pm.max_requests = 1000 php_admin_value[memory_limit] = 512M
nginxã®èµ·åããŠãŒã¶ãŒã¢ã¹ã¿ãªã¹ã¯ããèšå®ãããŸãã ããããªããšãã¢ãžã¥ãŒã«ç®¡çã¯freepbxã§æ©èœããŸããã
nano /etc/nginx/nginx.conf
ã®ä»£ããã«
user nginx;
眮ã
user asterisk;
php-fpm autoloadãèš±å¯ããnginxãåèµ·åããŸãã
systemctl enable php-fpm --now systemctl restart nginx
æŽæ°ïŒ2019幎3æ18æ¥ïŒ ïŒæ°é®®ãªã¢ã¹ã¿ãªã¹ã¯ã¯ãadaptive_odbcãä»ããŠmysqlã§æ©èœãããããCDRã¬ããŒããæ©èœãããã«ã¯odbcã³ãã¯ã¿ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã mysqlã³ãã¯ã¿ãé
眮ã§ããŸã
yum -y install mysql-connector-odbc
ãã ããCDRãšCELã¯æ©èœããŸãããããªã«æåå
šäœã¯UTF8 krakozyabryã«ãªããŸãã
ãã¹ãŠãæ£ããããã«-mariadbã³ãã¯ã¿ãé
眮ããããšããå§ãããŸãã çŸæç¹ã§ã¯ãå®å®ããŒãžã§ã³ã¯3.0.8ã§ãã libmaodbc.soã©ã€ãã©ãªãããŠã³ããŒããã解åããŠç»é²ããŸã
wget -qO- https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.8/mariadb-connector-odbc-3.0.8-ga-rhel7-x86_64.tar.gz | tar xvz -C / && ldconfig
次ã«ãã»ã¯ã·ã§ã³ãè¿œå ããŠ
/etc/odbcinst.iniã«ãã©ã€ããŒãç»é²ããå¿
èŠããããŸãã
[MariaDB] Description=ODBC for MariaDB Driver=/usr/lib64/libmaodbc.so Setup=/usr/lib64/libodbcmyS.so UsageCount=1
ãããŠã
/ etc / odbc.iniã§ãã©ã€ããŒãMariaDBã«å€æŽããŸãã
[MySQL-asteriskcdrdb] Description=MySQL connection to 'asteriskcdrdb' database driver=MariaDB server=localhost database=asteriskcdrdb Port=3306 Socket=/var/lib/mysql/mysql.sock option=3 Charset=utf8
FreePBXãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã
cd /usr/src wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz tar xvfz freepbx-14.0-latest.tgz cd freepbx ./start_asterisk start ./install -n
確èªããŸãã ãã¹ãŠãããŸãããã°ã/ etc / nginx / conf.d / freepbx.confã§æå®ãããIPã¢ãã¬ã¹ã®FreePBX管çããã«ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸãã管çãã¹ã¯ãŒã/é»åã¡ãŒã«ãèšå®ãããšã©ãŒãããå Žåã¯æ€çŽ¢ã§ããŸãã
次ã«ãfreepbxèµ·åçšã®systemdãŠããããäœæããŸãã
nano /etc/systemd/system/freepbx.service [Unit] Description=FreePBX VoIP Server After=mariadb.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/fwconsole start -q ExecStop=/usr/sbin/fwconsole stop -q [Install] WantedBy=multi-user.target
freepbxãåæ¢ãããµãŒãã¹ãéå§ããŠã以äžã確èªããŸãã
fwconsole stop systemctl enable freepbx --now
ãã¹ãŠããŸãããã°ãããã§ãšãããããŸãïŒ PBXã®æºåãã§ããŸããïŒ
æ瀺ã®äœæäžã«çºçããå¯èœæ§ã®ãããšã©ãŒïŒ
-ãšã©ãŒãWebã¢ã¹ã¿ãªã¹ã¯ã§ã¢ã¹ã¿ãªã¹ã¯ãšéä¿¡ã§ããªãå ŽåïŒãã¹ã¯ãŒãã確èªããŸãã manager.confã»ã¯ã·ã§ã³[admin]ã®/etc/asterisk/manager.confããã³/etc/amportal.confãã¹ã¯ãŒãã¯amportal.confã®ãã¹ã¯ãŒããšäžèŽããå¿
èŠããããŸã
-ã¢ãžã¥ãŒã«ã®ãããããæ¹ãããããŠãããšããŒã¯ãããŠããå ŽåïŒã³ã³ãœãŒã«ã§fwconsole ma refreshsignatures
ãå®è¡ããfreepbxãµãŒãã¹ãåèµ·åããŠãã¢ãžã¥ãŒã«ããªã³ã©ã€ã³ã§æŽæ°ããŠãã ãã
䜿çšè³æã®èª¬æãæºåããéã«ïŒ
CentOS 7ã«FreePBX 14ãã€ã³ã¹ããŒã«ããCentos 7ã«Asterisk 14ãã€ã³ã¹ããŒã«ããŸãã¢ã¹ã¿ãªã¹ã¯ã¯PJSIPã®TLS SRTPãæ§æããŸã ã
ãæž
èŽããããšãããããŸããïŒ ç§ã¯ã³ã¡ã³ããšä¿®æ£ã«åãã§ããŸã
Generick ã
otkachov ããããŠ
çºèŠãããäžæ£ç¢ºãª
ç¹ã«æè¬ããŸãïŒ