Raspberry Pi Asterisk
ラズベリーパイでAsteriskを動かす
- Raspberry Pi
内容を刷新しました。Raspberry Pi OSの最新版(2024/08)で書いています。
# uname -ra Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
旧記事はRaspberry Pi Asterisk(旧)です。
目次
Raspberry Pi OSのインストール
Raspberry Pi Imagerを使用して起動用メディアを作成してください。この記事のOSは標準のRaspberry Pi OS(64bit)です。
ヘッドレスで運用する場合にはImagerの設定でsshログインとユーザ/パスワードの設定をお忘れなく。
Raspberry Piの起動とログインと初期設定
起動したら初期設定等を行ってください。ロケール設定等をお忘れなく。ディスプレイを使用しない場合にはGUIの無効化も行っておきます。
apt-get -y update apt-get -y upgrade
を行ってOSを最新状態に更新しておきます。
IPアドレスの固定化
現在のRaspberry Pi OSでネットワークはNetworkManagerで制御されているため、ファイルを編集するのではなくnmcliで設定を行います。まず現在の接続状態を確認します。
# nmcli con sh NAME UUID TYPE DEVICE 有線接続 1 d4bba967-46b2-3da1-b563-8846388e0acd ethernet eth0 lo cd6ff902-3ba2-441c-879e-f5daedc78f71 loopback lo
ここでじゃまくさいことが起こります。ロケールを日本語にしていると接続名が『有線接続 1』となっているので、編集する際にこの名前を使わなくてはいけません。以降この名前を使ってもかまわないのですが面倒なので接続名も'eth0'に変更してしまいます。
# nmcli con mod '有線接続 1' connection.id 'eth0' # nmcli con sh NAME UUID TYPE DEVICE eth0 d4bba967-46b2-3da1-b563-8846388e0acd ethernet eth0 lo cd6ff902-3ba2-441c-879e-f5daedc78f71 loopback lo
名前を変更するには元の名前を入れなくてはならないので、そこだけはちょっと面倒ですがこれをやっておけば後の設定では eth0 を名前として使うことができます。
nmcliでの設定は基本がわかれば何ということはありません。ipv4関連の設定は以下の値を修正するだけです(nmcli con show eth0から抜粋)。
ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: -- ipv4.routes: --
以下の例のようにIPアドレス、DNS、ゲートウェイを設定します。
nmcli con mod eth0 ipv4.address 192.168.200.10/24 nmcli con mod eth0 ipv4.method manual nmcli con mod eth0 ipv4.dns 8.8.8.8 nmcli con mod eth0 ipv4.gateway 192.168.200.1
設定をしたなら再起動して有効化します。ネットワークの再起動だけでもかまいませんが。
念のため確認しておきましょう(nmcli con show eth0から抜粋)。
ipv4.method: manual ipv4.dns: 8.8.8.8 ipv4.dns-priority: 0 ipv4.addresses: 192.168.200.10/24 ipv4.gateway: 192.168.200.1 --- IP4.ADDRESS[1]: 192.168.200.10/24 IP4.GATEWAY: 192.168.200.1 IP4.ROUTE[1]: dst = 192.168.200.0/24, nh = 0.0.0.0, mt = 100 IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.200.1, mt = 100 IP4.DNS[1]: 8.8.8.8
Asteriskのインストール(ソース)
前提となるパッケージ
基本的にDebianの場合と同じです。まず必要なパッケージを追加します。元から入っているパッケージもあるかもですが気にせず以下を実行します。
apt -y install build-essential libedit-dev uuid-dev libxml2-dev ncurses-dev libsqlite3-dev sqlite3 libssl-dev subversion git net-tools dnsutils libsrtp2-dev libunbound-dev
Asteriskソースの入手
Asterisk 20のソースは以下からダウンロードできます。なお asterisk-20-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。
http://downloads.asterisk.org/pub/telephony/asterisk/
展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。
# cd /usr/src # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降の作業は、展開したサブディレクトリで行います。
# tar zxvf asterisk-20-current.tar.gz # cd asterisk-20.x.x
コンパイル
普通にconfigure,makeで行えます。
./configure --with-jansson-bundled make
makeはRaspberry Pi 4でもそこそこ時間がかかります。
後の設定等は普通のAsteriskと同様です。Asterisk_20 のページを参照してください。