「Asterisk Realtime」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(DBの作成)
 
(同じ利用者による、間の2版が非表示)
5行目: 5行目:
  
 
このリアルタイムを簡単に説明すると次のようになります。<br>
 
このリアルタイムを簡単に説明すると次のようになります。<br>
例えば通常はsip.confのようにAsteriskの設定ファイルとしてSIPピアの情報を記述し、これを有効にするためにはsip reload等のコマンドを実行する必要があります。設定は設定ファイルに記述しただけでは反映されず、明示的にコマンドで再読み込みを行う必要があります。<br>
+
例えば通常はpjsip.confのようにAsteriskの設定ファイルとしてSIPエンドポイントの情報を記述し、これを有効にするためにはAsteriskのreload等のコマンドを実行する必要があります。設定は設定ファイルに記述しただけでは反映されず、明示的にコマンドで再読み込みを行う必要があります。<br>
Asterisk Realtimeでは設定ファイルの内容を外部リソースを使うことで、設定を即時に反映させます。例えばよく使われる方法は、MySQLをデータベース・エンジンとし、SIPピアのデータベースを持たせることで、Asteriskはピア情報をDBから取得し、これを使って認証等の処理を行います。設定情報はDBにPUTされた時点で反映されるため、モジュールのリロード等の処理は必要ありません。<br>
+
Asterisk Realtimeでは設定ファイルの内容を外部リソースを使うことで、設定を即時に反映させます。例えばよく使われる方法は、MySQLをデータベース・エンジンとし、SIPエンドポイントのデータベースを持たせることで、Asteriskはエンドポイント情報をDBから取得し、これを使って認証等の処理を行います。設定情報はDBにPUTされた時点で反映されるため、モジュールのリロード等の処理は必要ありません。<br>
ただし、このAsterisk Realtimeには、いくつかの使い方と制約があります。
+
 
 +
=DBの作成=
 +
MariaDB(MySQL)を例にとって進めます。まずDBを'asterisk'という名前で作っておきます。
 +
mysql -u root -p
 +
MariaDB [(none)]> create database asterisk;
 +
ユーザ、asteriskをパスワードastpassでつくりasterisk DBに対して全権限を与えます。
 +
MariaDB [(none)]> CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'astpass';
 +
MariaDB [(none)]> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'localhost';
 +
=テーブルの作成=
 +
手動で作成する場合には、contrib/realtime の下にDBテーブル用のSQLがあるので、これを使って作成します。例えばMySQLの設定類であれば mysql/mysql_config.sql が相当します。もし一部のテーブルしか使用しないというのであれば、このSQLから必要な個所だけを抜き出して使用すると良いでしょう。
 +
==alembic==
 +
alembicを使用してDBテーブルを作成することもできます。Debian(bookworm)の場合、以下のようにalembicをインストールして使用します。
 +
apt install pip (実体はpython3-pip)
 +
apt install python3-alembic
 +
apt install alembic
 +
contrib/ast-db-manage に移動します。config.ini.samle を config.ini にコピーし、以下の個所を修正して自分のDBにあわせます。
 +
#sqlalchemy.url = mysql://user:pass@localhost/asterisk
 +
sqlalchemy.url = mysql://root:password@localhost/asterisk
 +
alembicでテーブルを作成します
 +
alembic -c config.ini upgrade head

2024年11月26日 (火) 15:07時点における最新版

Asterisk Realtime Architecture(ARA)

Asteriskの内部処理をリアルタイム化するものではないので注意してください。Realtime Linux等とは意味が異なります。
Asterisk Realtimeは各種設定ファイルやデータをAsteriskがリアルタイム処理する機能のことで、Asterisk 1.2から正式に実装されました。

このリアルタイムを簡単に説明すると次のようになります。
例えば通常はpjsip.confのようにAsteriskの設定ファイルとしてSIPエンドポイントの情報を記述し、これを有効にするためにはAsteriskのreload等のコマンドを実行する必要があります。設定は設定ファイルに記述しただけでは反映されず、明示的にコマンドで再読み込みを行う必要があります。
Asterisk Realtimeでは設定ファイルの内容を外部リソースを使うことで、設定を即時に反映させます。例えばよく使われる方法は、MySQLをデータベース・エンジンとし、SIPエンドポイントのデータベースを持たせることで、Asteriskはエンドポイント情報をDBから取得し、これを使って認証等の処理を行います。設定情報はDBにPUTされた時点で反映されるため、モジュールのリロード等の処理は必要ありません。

DBの作成

MariaDB(MySQL)を例にとって進めます。まずDBを'asterisk'という名前で作っておきます。

mysql -u root -p
MariaDB [(none)]> create database asterisk;

ユーザ、asteriskをパスワードastpassでつくりasterisk DBに対して全権限を与えます。

MariaDB [(none)]> CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'astpass';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'localhost';

テーブルの作成

手動で作成する場合には、contrib/realtime の下にDBテーブル用のSQLがあるので、これを使って作成します。例えばMySQLの設定類であれば mysql/mysql_config.sql が相当します。もし一部のテーブルしか使用しないというのであれば、このSQLから必要な個所だけを抜き出して使用すると良いでしょう。

alembic

alembicを使用してDBテーブルを作成することもできます。Debian(bookworm)の場合、以下のようにalembicをインストールして使用します。

apt install pip (実体はpython3-pip)
apt install python3-alembic
apt install alembic

contrib/ast-db-manage に移動します。config.ini.samle を config.ini にコピーし、以下の個所を修正して自分のDBにあわせます。

#sqlalchemy.url = mysql://user:pass@localhost/asterisk
sqlalchemy.url = mysql://root:password@localhost/asterisk

alembicでテーブルを作成します

alembic -c config.ini upgrade head