CentOS7にAsteriskをインストールする方法

アスタリスクとは何ですか?

Asteriskは、* Session Initiation Protocol (SIP)を使用して通話をルーティングおよび管理するオープンソースの Private Exchange *(PBX)サーバーです。注目すべき機能には、カスタマーサービスキュー、スタンバイミュージック、会議通話、電話録音などがあります。

このガイドでは、新しいCentOS 7Linodeを家庭またはオフィス専用のAsteriskサーバーとして構成するために必要な手順について説明します。

このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドの前には sudoが付いています。 sudoコマンドに慣れていない場合は、「[ユーザーとグループ]](https://www.linode.com/docs/tools-reference/linux-users-and-groups/)ガイドを確認してください。

開始前##

  1. 最寄りのデータセンターにCentOS7 Linodeを作成します(アトランタに限定され、現在SIPサーバーをサポートしていません)。各チャネルに必要な処理に応じて、非圧縮コーデックを使用して10〜20の同時呼び出しを処理するには、2GBのLinodeで十分です。
  2. 「はじめにサーバーの保護」ガイドに従ってサーバーを準備したことを確認してください。ファイアウォールを設定する手順を完了しないでください。
  3. / etc / selinux / configを編集して、SELinuxが無効になっていることを確認します。
    / etc / selinux/config1
    SELINUX=disabled
  4. 構成を更新します。

sudo yum update
5. Linodeを再起動します。

reboot

iptablesを構成します###

iptablesは、Linodeを不要なトラフィックから保護するために使用されます。 Linodeはファイアウォールルールを構成しないでください。

  1. 現在のファイアウォールルールを確認します。

sudo iptables -L
空のルールテーブルが表示されます。

Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

お好みのテキストエディタで作成/etc/iptables.firewall.ルールの場合、このファイルは、Linodeが起動するたびに必要なルールでファイアウォールをアクティブ化するために使用されます。
/etc/iptables.firewall.rules 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950*filter  #  Allow all loopback(lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 -j REJECT  #  Accept all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  #  Allow all outbound traffic - you can modify this to only allow certain traffic -A OUTPUT -j ACCEPT  #  Allow SSH connections # #  The -dport number should be the same port number you set in sshd_config, ie 8050 # -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT  # SIP on UDP port 5060, 5061 for secure signaling. Used for signals such as "hang up" -A INPUT -p udp -m udp --dport 5060 -j ACCEPT -A INPUT -p udp -m udp --dport 5061 -j ACCEPT  # IAX2- the IAX protocol - comment out if you don't plan to use IAX # -A INPUT -p udp -m udp --dport 4569-j ACCEPT  # IAX - old IAX protocol, uncomment if needed for legacy systems. # -A INPUT -p udp -m udp --dport 5036-j ACCEPT  # RTP - the media stream - you can change thisin/etc/asterisk/rtp.conf -A INPUT -p udp -m udp --dport 10000:20000-j ACCEPT  # MGCP -if you use media gateway control protocol in your configuration -A INPUT -p udp -m udp --dport 2727-j ACCEPT   # Uncomment these lines if you plan to use FreePBX to manage Asterisk # -A INPUT -p tcp --dport 80-j ACCEPT # -A INPUT -p tcp --dport 443-j ACCEPT  #  Allow ping -A INPUT -p icmp --icmp-type echo-request -j ACCEPT  #  Log iptables denied calls -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: "--log-level 7   #  Drop all other inbound -default deny unless explicitly allowed policy -A INPUT -j DROP -A FORWARD -j DROP  COMMITNoteLeave IAX commented out unless you know you need it. IAX is “Inter-Asterisk Exchange” and was meant to allow multiple Asterisk servers to communicate with one another. Some VOIP trunking providers use this, but most use SIP. Unless your VOIP provider requires it or you are running multiple Asterisk servers, you probably won’t need IAX or IAX2.

起動時にファイアウォールを開始します###

CentOS7には iptables-servicesがプリインストールされていないため、起動時にファイアウォールをロードできるようにインストールする必要があります。

  1. iptables-servicesをインストールし、有効にして起動します。

sudo yum install -y iptables-services sudo systemctl enable iptables sudo systemctl start iptables
2. ファイアウォールルールの読み込み:

sudo iptables-restore < /etc/iptables.firewall.rules
3. Linodeのファイアウォールルールを再確認します。

sudo iptables -L
出力は次のようになります。

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8050 ACCEPT udp -- anywhere anywhere udp dpt:sip ACCEPT udp -- anywhere anywhere udp dpt:iax ACCEPT udp -- anywhere anywhere udp dpts:ndmp:dnp ACCEPT udp -- anywhere anywhere udp dpt:mgcp-callagent ACCEPT icmp -- anywhere anywhere icmp echo-request LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: " DROP all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere
4. このルールセットを保存します。

/usr/libexec/iptables/iptables.init save
5. 新しいターミナルで、ログインできることを確認してください。

ssh [email protected]

依存関係をインストールします##

Asteriskをインストールする前に、多くの依存関係がインストールされます。それらをインストールするには、以下を実行します。

sudo yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel

PJPROJECT ###をインストールします

PJPROJECTは、AsteriskのSIPチャネルドライバーです。古いドライバーよりも優れた通話の明瞭さとパフォーマンスを提供するはずです。

  1. 非rootユーザーとして、作業ディレクトリを作成します。

mkdir ~/build
2. このディレクトリに切り替えます。

cd ~/build
3. wgetを使用して、PJSIPfdriverソースコードを取得します。

wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
4. 解凍するには:

tar -jxvf pjproject-2.3.tar.bz2
5. 新しく作成されたディレクトリに切り替えます。

cd pjproject-2.3
6. コンパイルするソフトウェアを準備します。

. /configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
エラーメッセージは表示されないはずです。
7. すべての依存関係が整っていることを確認してください。

make dep make
8. インストール:

sudo make install sudo ldconfig
9. ライブラリが正しくインストールされていることを確認します。

sudo ldconfig -p | grep pj
次の出力が得られるはずです。

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2 libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2 libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2 libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2 libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2 libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2 libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2 libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2 libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2 libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2 libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2 libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2 libpj.so (libc6,x86-64) => /lib64/libpj.so

(オプション)DAHDI ###をインストールします

DAHDIまたは* Digium / Asteriskハードウェアデバイスインターフェイス*は、電話インターフェイスカードを制御するカーネルモジュールです。このタイプのカードは通常、古いテクノロジーを使用して既存のコールセンターにAsteriskを追加するときに使用されます。仮想マシンに物理カードを追加することはできないため、DAHDIドライバーをインストールする必要がない場合があります。

例外が1つあります。スターボックスで会議通話をホストする場合は、複数の人が会議室に参加できます。DAHDIは、この機能のタイムソースも提供します。

VanillaCentOSカーネルをインストールします####

DAHDIはカーネルモジュールであるため、コンパイルするにはカーネルヘッダーが必要です。 Linodeが提供するカーネルは、CentOSリポジトリが提供するヘッダーファイルのバージョンとは異なるため、ディストリビューションが提供するカーネルに切り替える必要があります。

この手順に従って、[XENのLinodeでディストリビューションによって提供されるカーネルを実行する](https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distributionsupplied-kernel-with-pvgrub/)または[KVMでLinodeのディストリビューションによって提供されるカーネルを実行する](https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distribution-supplied-kernel-with-kvm/)と次の手順を実行し、続行します。

警告現在生産中のシステムでカーネルを交換しようとしないでください。

DAHDIをビルドする####

新しいカーネルを使用すると、DAHDIを構築できます。

  1. ビルドディレクトリに戻ります。

cd ~/build
2. DAHDIの最新バージョン(執筆時点ではバージョン2.10.2)をダウンロードします。

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
3. ファイルを解凍します。

tar -zxvf dahdi-linux-complete-current.tar.gz
4. 新しいディレクトリに切り替えます。

cd dahdi-linux-complete-2.10.2+2.10.2/
バージョンが異なる場合がありますので、 2.10.2を抽出したバージョンに置き換えてください。
5. DAHDIを作成します。

make
6. DAHDIをインストールします。

sudo make install sudo make config

アスタリスクをインストールする[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#installing-asterisk](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#installing-asterisk)##

これで、Asteriskの現在の長期サポートバージョンであるAsterisk13をインストールする準備が整いました。

ソースからAsteriskをインストールします[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#installing-asterisk-from-source](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#installing-asterisk-from-source)###

  1. ビルドディレクトリに切り替えます。

cd ~/build
2. Asterisk13の最新バージョンをダウンロードします。

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
3. ファイルを解凍します。

tar -zxvf asterisk-13-current.tar.gz
4. 新しいAsteriskディレクトリに切り替え、必要に応じて 13.5.0を置き換えます。

cd asterisk-13.5.0

MP3サポートを有効にする[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#enable-mp3-support](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#enable-mp3-support)###

スタンバイミュージックにMP3ファイルを使用するには、いくつかの依存関係をインストールする必要があります。

  1. Subversionのインストール:

sudo yum install svn
2. 実行:

contrib/scripts/get_mp3_source.sh

アスタリスク[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#configure-and-build-asterisk](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#configure-and-build-asterisk)を構成およびビルドする###

  1. configureスクリプトを実行して、コンパイル用にAsteriskソースコードを準備します。

. /configure --libdir=/usr/lib64 If there are any missing dependencies, install them.
2. ビルドプロセスを開始します。

make menuselect
しばらくすると、作成する関数を構成できるメニューが画面に表示されます。
3. スタンバイミュージックでMP3形式を使用する場合は、[アドオン]を選択し、右矢印を使用して適切なリストに移動する必要があります。 format_mp3に移動し、Enterキーを押して選択します。
4. 左側のメニューで他のサウンドパッケージと音楽予約パッケージを選択し、目的の言語のwav形式を有効にします。 (つまり、 EN英語パッケージを使用します。)
5. ** F12 **を押して保存し、終了します。
6. アスタリスクをコンパイルします。

make
7. システムにAsteriskをインストールします。

sudo make install
8. サンプル構成ファイルをインストールします。

sudo make samples
9. 起動時に自動的に開始するようにAsteriskを構成します。

sudo make config

[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#try-it-out](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#try-it-out)###をお試しください

おめでとう!これで、Asteriskモバイルサーバーが機能します。 Asteriskを起動して、実行されることを確認しましょう。

  1. スタートスター:

sudo service asterisk start
2. アスタリスクに接続します。

asterisk -rvv
現在のバージョン番号が通知されます。
3. 可能なコマンドのリストを表示するには:

core show help
4. 切断タイプ:

exit
切断後、Asteriskはバックグラウンドで実行を続けます。

次のステップ[https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#next-steps](https://www.linode.com/docs/applications/voip/install-asterisk-on-centos-7/#next-steps)##

これで、AsteriskサーバーがLinodeで実行されたので、いくつかの電話を接続し、拡張機能を追加し、Asteriskが提供するさまざまなオプションを構成できます。詳細な手順については、Asteriskプロジェクトの[Configuration Asterisk](https://wiki.asterisk.org/wiki/display/AST/Basic+PBX+Functionality)ガイドを確認してください。

警告 Linodeなどのリモートサーバーで電話システムを実行する場合、盗聴を防ぐためにSRTPを使用してシグナリングデータとSRTPで行われた通話の音声部分を保護することは常に良い習慣です。ダイヤルプランが完了したら、必ず[セキュアコールガイド](https://wiki.asterisk.org/wiki/display/AST/Secure+Calling)に従って通信を暗号化してください。

Recommended Posts

CentOS7にAsteriskをインストールする方法
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS8にMemcachedをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOS8にTensorFlowをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
CentOS8にNginxをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOS8にMariaDBをインストールする方法
CentOS7にMongoDBをインストールする方法
CentOS8にOdoo13をインストールする方法
CentOS8にApacheをインストールする方法
CentOS8にOpenCVをインストールする方法
CentOS8にPHPをインストールする方法
CentOS8にMongoDBをインストールする方法
CentOS8にApacheMavenをインストールする方法
CentOS7にApacheKafkaをインストールする方法
[グラフィック]セントスにtomcatをインストールする方法
R&D:CentOS7にPython3をインストールする方法
CentOS7にGCCコンパイラをインストールする方法
centos7.0にオフラインJDK1.8をインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
CentOS8にVisualStudioコードをインストールする方法
CentOS7にDockerをインストールして使用する方法
CentOSLinuxにRPMパッケージをインストールする方法
CentOS8にVNCをインストールして構成する方法
CentOS8にComposerをインストールして使用する方法
CentOS8にRedisをインストールして構成する方法
CentOS8にNode.jsとnpmをインストールする方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にCurlをインストールして使用する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にVirtualBoxクライアント拡張機能をインストールする方法
RHEL 8 / CentOS8にDockerCEをインストールする方法
centosにtomcatをインストールおよびアンインストールする方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法