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/)ガイドを確認してください。
/ etc / selinux / config
を編集して、SELinuxが無効になっていることを確認します。sudo yum update
5. Linodeを再起動します。
reboot
iptablesは、Linodeを不要なトラフィックから保護するために使用されます。 Linodeはファイアウォールルールを構成しないでください。
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
がプリインストールされていないため、起動時にファイアウォールをロードできるようにインストールする必要があります。
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. 新しいターミナルで、ログインできることを確認してください。
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は、AsteriskのSIPチャネルドライバーです。古いドライバーよりも優れた通話の明瞭さとパフォーマンスを提供するはずです。
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または* Digium / Asteriskハードウェアデバイスインターフェイス*は、電話インターフェイスカードを制御するカーネルモジュールです。このタイプのカードは通常、古いテクノロジーを使用して既存のコールセンターにAsteriskを追加するときに使用されます。仮想マシンに物理カードを追加することはできないため、DAHDIドライバーをインストールする必要がない場合があります。
例外が1つあります。スターボックスで会議通話をホストする場合は、複数の人が会議室に参加できます。DAHDIは、この機能のタイムソースも提供します。
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を構築できます。
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
これで、Asteriskの現在の長期サポートバージョンであるAsterisk13をインストールする準備が整いました。
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ファイルを使用するには、いくつかの依存関係をインストールする必要があります。
sudo yum install svn
2. 実行:
contrib/scripts/get_mp3_source.sh
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
おめでとう!これで、Asteriskモバイルサーバーが機能します。 Asteriskを起動して、実行されることを確認しましょう。
sudo service asterisk start
2. アスタリスクに接続します。
asterisk -rvv
現在のバージョン番号が通知されます。
3. 可能なコマンドのリストを表示するには:
core show help
4. 切断タイプ:
exit
切断後、Asteriskはバックグラウンドで実行を続けます。
これで、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