しかし、カットの下には、アスタリスク+ 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 、そして発見された不正確な点に感謝します!