ソースデータ:
- 従業員とスマートフォンの数による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
エピローグ。
これでインストールと初期セットアップが完了しました。 常に答えられる質問があります。