ソースデータ:
- 従業員とスマートフォンの数による15個のセル番号。
 - Megaphoneからの2つの都市番号(SIP経由で実装);
 - 最大10の同時コール。
 - 従業員間で通話を転送できない。
 - 頻繁な長距離電話の必要性。
 
いくつかのオプションが検討されました。
- そのままにしておきます(携帯電話)。
 - クラウドPBX;
 - 「鉄」ソリューション。
 - VoIPサーバー。
 
その結果、彼らはVoIPサーバーを実装することにしました。
私たちは何を持っています:
- ESXiサーバーDell PowerEdge R230 1xE3-1220v6 2×16Gb 2RUD x4 3×1Tb 7.2K 3.5 ";
 - Ubuntu Server 16.04(最小構成、1GBメモリ、128GBドライブ)、ESXi 6.5にインストール。
 - ザダルマとメガホンからのSIP。
 - SIPクライアントを備えた携帯電話。
 
ポイントによる小さな余談:
Ubuntu 16.04、私たちは、OS Ubuntu Ubuntu Desktop 16.04としての企業標準であるサーバーUbuntu Server 16.04です。 メインサーバーは、Zentyal 5.0に基づいて構築されています。 サーバーと稼働中のPCは、TFTPを介してネットワーク経由でインストールされます。 興味深い場合は、Zentyalインストレーションのすべてのニュアンス(およびそれらの適切な量)について説明します。
彼らはデバイスを購入しないことに決めました。各従業員はAndroidまたはiOSのいずれかに携帯電話を持っているため、顧客に問題はなく、従業員は働くWi-FIにアクセスできます。 また、SIPクライアントは動作中のPC上にあります。 インターネットを介したSIPへのアクセスもあり、セキュリティも考慮され、接続ポートが変更され、SIPのパスワードは非常に複雑です。
本質に移ります。 このネットワークには、Ubuntu 16.04にFreePBX 13をインストールするためのドキュメントがたくさんありますが、FreePBX 14をインストールする方法はありません。公式のFreePBX wikiでもCentOS 7とDebian 8.8専用です。
1. Ubuntu Server 16.04のインストールについては説明しません。初心者でも簡単です。
1.1。 ルート
sudo su
      
      として実行したすべての操作
2.システムを更新します:
apt update && apt upgrade -y
      
      、再起動が必要な場合、再起動します。
3. PHPを始めましょう; PHP 5.6はFreePBX 14に必要です;デフォルトでは、Ubunty 16.04はPHP 7.0を使用します
システム内にあるすべてのPHPを削除します。
sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
      
      PHP 5.6リポジトリをインストールします。
sudo add-apt-repository ppa:ondrej/php
      
      PHPを更新してインストールします。
sudo apt update 
      
        
        
        
      
     sudo apt install php5.6
      
      4.リポジトリに移動するMysqlはFreePBX 14と互換性がありません。MariaDBが必要です。これをリポジトリに追加します。
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 
      
        
        
        
      
     sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.2/ubuntu xenial main'
      
      5. nodejsも必要です。
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - 
      
        
        
        
      
     sudo apt install -y nodejs
      
      6.必要なものをすべてインストールします。
sudo apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet
      
      sudo apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6 php5.6-mbstring
      
      apt install -y php-pear
      
      6.1。 libmyodbcパッケージは、Xenialバージョン以降、Ubuntuリポジトリにありません。
目的のコネクタをダウンロードします。
wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.2/mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz
      
      開梱:
tar -zxvf mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz
      
      そして、ディレクトリ/ usr / lib / x86_64-linux-gnu / odbc /にコピーします:
cd mariadb-connector-odbc-3.0.2-ga-debian-x86_64/lib 
      
        
        
        
      
     cp libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/ 
      
        
        
        
      
    
      
      7.今、FreePBXの推奨に従って、再起動する必要がありますが、私はこれをしませんでした。
8.起こりうる攻撃を避けるために、mod_rewriteが有効になっていることを確認します。
a2enmod rewrite 
      
        
        
        
      
     service apache2 restart
      
      9. Console_Getoptサポートを有効にします
pear install Console_Getopt
      
      10.アスタリスク15のインストールに進みます(実際、これはDebina 8.8のFreePBXを使用したWikiの一部です)。
ソースをダウンロード:
cd /usr/src 
      
        
        
        
      
     wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz && 
      
        
        
        
      
     wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz && 
      
        
        
        
      
     wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz && 
      
        
        
        
      
     wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz && 
      
        
        
        
      
     git clone https://github.com/akheron/jansson.git && 
      
        
        
        
      
     wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2
      
      Lameのコンパイルとインストール(mp3):
cd /usr/src && 
      
        
        
        
      
     tar zxvf lame-3.98.4.tar.gz && 
      
        
        
        
      
     cd lame-3.98.4 && 
      
        
        
        
      
     ./configure && 
      
        
        
        
      
     make && 
      
        
        
        
      
     make install
      
      DAHDIとLibPRIをコンパイルしてインストールします(ボードは使用しませんが、後で必要なものは知っています)。
cd /usr/src && 
      
        
        
        
      
     tar xvfz dahdi-linux-complete-current.tar.gz && 
      
        
        
        
      
     tar xvfz libpri-current.tar.gz && 
      
        
        
        
      
     rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz && 
      
        
        
        
      
     cd dahdi-linux-complete-* && 
      
        
        
        
      
     make all && 
      
        
        
        
      
     make install && 
      
        
        
        
      
     make config && 
      
        
        
        
      
     cd /usr/src/libpri-* && 
      
        
        
        
      
     make && 
      
        
        
        
      
     make install
      
      pjprojectをコンパイルしてインストールします。
cd /usr/src && 
      
        
        
        
      
     tar -xjvf pjproject-2.*.*.tar.bz2 && 
      
        
        
        
      
     cd pjproject-* && 
      
        
        
        
      
     CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\ 
      
        
        
        
      
     --disable-resample --disable-video --disable-opencore-amr && 
      
        
        
        
      
     make dep && 
      
        
        
        
      
     make && 
      
        
        
        
      
     make install
      
      janssonをコンパイルしてインストールします。
cd /usr/src/jansson && 
      
        
        
        
      
     autoreconf -i && 
      
        
        
        
      
     ./configure && 
      
        
        
        
      
     make && 
      
        
        
        
      
     make install
      
      Opusコーデックを使用する場合は、アスタリスクをコンパイルする前にxmlstarletをインストールする必要があります。
sudo apt install xmlstarlet
      
      アスタリスクをコンパイルしてインストールします。
cd /usr/src && 
      
        
        
        
      
     tar xvfz asterisk-15-current.tar.gz && 
      
        
        
        
      
     rm -f asterisk-15-current.tar.gz && 
      
        
        
        
      
     cd asterisk-* && 
      
        
        
        
      
     ./contrib/scripts/install_prereq install && 
      
        
        
        
      
     ./configure --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp && 
      
        
        
        
      
     contrib/scripts/get_mp3_source.sh && 
      
        
        
        
      
     make menuselect
      
      私自身は、「format_mp3」と「res_config_mysql」を選択し、「codec_opus」も含めました
変更を保存して、インストールを続行します。
make && 
      
        
        
        
      
     make install && 
      
        
        
        
      
     make config && 
      
        
        
        
      
     ldconfig 
      
        
        
        
      
     update-rc.d -f asterisk remove
      
      すべてが進んでいる間、私は自分でコーヒーを注ぐことができ、続けました。
ユーザー「アスタリスク」として起動を設定します
/ etc / default /アスタリスクのコメント解除:
AST_USER="asterisk" 
      
        
        
        
      
     AST_GROUP="asterisk"
      
      アスタリスクユーザーを作成し、ユーザー権限を設定します。
useradd -m asterisk && 
      
        
        
        
      
     chown asterisk. /var/run/asterisk && 
      
        
        
        
      
     chown -R asterisk. /etc/asterisk && 
      
        
        
        
      
     chown -R asterisk. /var/{lib,log,spool}/asterisk && 
      
        
        
        
      
     chown -R asterisk. /usr/lib/asterisk
      
      11. FreePBX 14に渡します
Apacheを構成します。
sed -i 's/\(^upload_max_filesize = \).*/\256M/' /etc/php/5.6/apache2/php.ini && 
      
        
        
        
      
     sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Asia\/Yekaterinburg"/g' /etc/php/5.6/apache2/php.ini && 
      
        
        
        
      
     cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig && 
      
        
        
        
      
     sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf && 
      
        
        
        
      
     sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf && 
      
        
        
        
      
     systemctl restart apache2
      
      ODBCを構成します。
cat >> /etc/odbcinst.ini << EOF 
      
        
        
        
      
     [MySQL] 
      
        
        
        
      
     Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so 
      
        
        
        
      
     UsageCount=2 
      
        
        
        
      
     
      
        
        
        
      
     EOF
      
      cat >> /etc/odbc.ini << EOF 
      
        
        
        
      
     [MySQL-asteriskcdrdb] 
      
        
        
        
      
     Description=MySQL connection to 'asteriskcdrdb' database 
      
        
        
        
      
     driver=MySQL 
      
        
        
        
      
     server=localhost 
      
        
        
        
      
     database=asteriskcdrdb 
      
        
        
        
      
     Port=3306 
      
        
        
        
      
     Socket=/var/run/mysqld/mysqld.sock 
      
        
        
        
      
     option=3 
      
        
        
        
      
     
      
        
        
        
      
     EOF
      
      FreePBXをダウンロードしてインストールします。
cd /usr/src 
      
        
        
        
      
     wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz 
      
        
        
        
      
     tar vxfz freepbx-14.0-latest.tgz 
      
        
        
        
      
     rm -f freepbx-14.0-latest.tgz 
      
        
        
        
      
     cd freepbx 
      
        
        
        
      
     touch /etc/asterisk/ari.conf 
      
        
        
        
      
     ./start_asterisk start 
      
        
        
        
      
     ./install -n
      
      11.1。 Russificationの場合、FreePBXにはロケールru_RU.UTF-8が必要です。
echo "russian ru_RU.UTF-8" >> /etc/locale.alias
      
      locale-gen ru_RU
      
      systemctl restart apache2
      
      12. systemdの起動スクリプトを作成します。
ファイル/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
      
      サービスを有効にします:
systemctl enable freepbx.service
      
      エピローグ。
これでインストールと初期セットアップが完了しました。 常に答えられる質問があります。