「Raspberry Pi Asterisk」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(JSON)
(Raspbianのインストール)
 
(同じ利用者による、間の14版が非表示)
1行目: 1行目:
 +
[[カテゴリ:Asterisk]]
 +
[[カテゴリ:Raspberry Pi]]
 +
 
ラズベリーパイでAsteriskを動かす<br>
 
ラズベリーパイでAsteriskを動かす<br>
若干、要望があるようなので<br>
+
*Raspberry Pi
 +
:https://www.raspberrypi.com/
 
<br>
 
<br>
基本的にDebianと同様にして動かせますので比較的簡単です。ただし、もともとの性能がそんなにないのでコンパイル等はすごく時間がかかります。<br>
+
内容を刷新しました。Raspberry Pi OSの最新版(2024/08)で書いています。<br>
==Raspbianのインストール==
+
# uname -ra
http://www.raspberrypi.org/downloads<br>
+
Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
ここからRaspbian “wheezy”をダウンロード。イメージをSDカードに書き込む。<br>
+
旧記事は[[Raspberry Pi Asterisk(旧)]]です。<br>
もとのイメージファイル自体は2GBほどなので、それより大きいSDカードがあれば大丈夫。<br>
+
<br>
SDカードが/dev/sdbの場合。異なる場合には適宜読み換えてください。
+
==Raspberry Pi OSのインストール==
dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdb bs=64k
+
Raspberry Pi Imagerを使用して起動用メディアを作成してください。この記事のOSは標準のRaspberry Pi OS(64bit)です。<br>
書き込みが完了したら Raspberry Piにさし込んで電源を入れるだけ。<br>
+
ヘッドレスで運用する場合にはImagerの設定でsshログインとユーザ/パスワードの設定をお忘れなく。
 +
 
 
==Raspberry Piの起動とログインと初期設定==
 
==Raspberry Piの起動とログインと初期設定==
他で調べるとHDMIのモニターを用意しろだのUSBキーボード/マウスを用意しろだのとメンドクサイことが書いてありますが、実はネットワーク環境だけあれば大丈夫です。DHCPでIPアドレスが取得できる環境において起動してください。ルータのログとかARPとかでRaspberry PiのIPアドレスをまず調べます。そうするとsshでログインできます(ちなみにMACベンダーコードはB8:27:EBでRaspberry Pi Foundationに割当てられてます)。Raspbianのデフォルトのユーザ名は'''pi'''でパスワードは'''raspberry'''です。<br>
+
起動したら初期設定等を行ってください。ロケール設定等をお忘れなく。ディスプレイを使用しない場合にはGUIの無効化も行っておきます。
ログインしたらまず初期設定を行います。<br>
+
apt-get -y update
  sudo raspi-config
+
apt-get -y upgrade
大抵は、おそらくイメージサイズより大きいSDカードを使用していると思われますのでexpand_rootfsでrootfsを拡大しときます。<br>
+
を行ってOSを最新状態に更新しておきます。
Asteriskサーバとして使うのであればビデオメモリはほとんど要らないので、memory_splitでビデオメモリを16MBにします。<br>
+
==IPアドレスの固定化==
GUIで起動されてもじゃまくさいのでboot_behaviourでデスクトップ起動を"No"にします。<br>
+
現在のRaspberry Pi OSでネットワークはNetworkManagerで制御されているため、ファイルを編集するのではなくnmcliで設定を行います。まず現在の接続状態を確認します。
大体、こんなもんでシステムの初期設定は大丈夫なので"Finish"して再起動します。<br>
+
# nmcli con sh
(rasp-configのupdateも後でやっとけばよいのではなかろうか)<br>
+
NAME        UUID                                  TYPE      DEVICE
16GBのSDにインストールすると、こんな感じです。<br>
+
有線接続 1  d4bba967-46b2-3da1-b563-8846388e0acd  ethernet  eth0
  Filesystem      Size Used Avail Use% Mounted on
+
lo          cd6ff902-3ba2-441c-879e-f5daedc78f71  loopback  lo
  rootfs          16G 1.9G  13G 13% /
+
ここでじゃまくさいことが起こります。ロケールを日本語にしていると接続名が『有線接続 1』となっているので、編集する際にこの名前を使わなくてはいけません。以降この名前を使ってもかまわないのですが面倒なので接続名も'eth0'に変更してしまいます。
  /dev/root        16G 1.9G  13G 13% /
+
# nmcli con mod '有線接続 1' connection.id 'eth0'
  devtmpfs        247M    0 247M  0% /dev
+
# nmcli con sh
  tmpfs            51M  218k  51M  1% /run
+
NAME  UUID                                  TYPE      DEVICE
  tmpfs          5.3M    0 5.3M  0% /run/lock
+
  eth0  d4bba967-46b2-3da1-b563-8846388e0acd  ethernet  eth0
  tmpfs          102M    102M  0% /run/shm
+
lo    cd6ff902-3ba2-441c-879e-f5daedc78f71  loopback  lo
  /dev/mmcblk0p1  59M  20M  40M  34% /boot
+
名前を変更するには元の名前を入れなくてはならないので、そこだけはちょっと面倒ですがこれをやっておけば後の設定では eth0 を名前として使うことができます。<br>
 
+
nmcliでの設定は基本がわかれば何ということはありません。ipv4関連の設定は以下の値を修正するだけです(nmcli con show eth0から抜粋)
==不足しているパッケージの追加==
+
ipv4.method:                            auto
Asteriskを最低限コンパイルするのに必要なパッケージが不足しているので追加します。<br>
+
  ipv4.dns:                              --
いちいちsudoするのは面倒なので、sudo -s でrootで以下を実行します。<br>
+
  ipv4.dns-search:                        --
  apt-get install ncurses-dev libxml2 libxml2-dev sqlite libsqlite3-dev libssl-dev
+
  ipv4.dns-options:                      --
===UUID===
+
  ipv4.dns-priority:                      0
Asterisk 11以降、uuidを必要とするバージョンでは以下も追加します。<br>
+
  ipv4.addresses:                        --
  apt-get install uuid uuid-runtime uuid-dev
+
  ipv4.gateway:                          --
===JSON===
+
  ipv4.routes:                            --
Asterisk 13以降、JSONを必要とするバージョンでは以下も追加します。<br>
+
以下の例のようにIPアドレス、DNS、ゲートウェイを設定します。
  apt-get install libjansson4 libjansson-dev
+
  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
 +
設定をしたなら再起動して有効化します。ネットワークの再起動だけでもかまいませんが。<br>
 +
念のため確認しておきましょう(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
  
===MP3を使う場合===
+
==Asteriskのインストール(ソース)==
そのままではSubversionが入っていないので失敗するため
+
===前提となるパッケージ===
  apt-get install subversion
+
基本的に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ソースの入手===
以上で"普通に"Asteriskがコンパイルできるはずなので
+
Asterisk 20のソースは以下からダウンロードできます。なお asterisk-20-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。
  ./configure
+
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
を実行してみてください。<br>
+
makeはRaspberry Pi 4でもそこそこ時間がかかります。<br>
[[Asterisk 11]]のページを参考にしてください。
+
<br>
===細かいことは後で書く===
+
後の設定等は普通のAsteriskと同様です。[[Asterisk_20]] のページを参照してください。

2024年8月20日 (火) 13:46時点における最新版


ラズベリーパイでAsteriskを動かす

  • Raspberry Pi
https://www.raspberrypi.com/


内容を刷新しました。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 のページを参照してください。