中小企業向けVoIPサーバー(FreePBX 14、Asterisk 15、Ubuntu 16.04)パート1

こんにちは、夕方または夜、それはすべてあなたが私の記事を読んだ時間に依存します。 最初から始めましょう。 当社は、SIPへの切り替えを検討し、質問がありましたか? 実装方法。



ソースデータ:





いくつかのオプションが検討されました。





その結果、彼らはVoIPサーバーを実装することにしました。



私たちは何を持っています:





ポイントによる小さな余談:



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







エピローグ。



これでインストールと初期セットアップが完了しました。 常に答えられる質問があります。



All Articles