「Asterisk Realtime」の版間の差分
(新しいページ: 'Asterisk Realtime Architecture(ARA)<br> Asteriskの内部処理をリアルタイム化するものではないので注意してください。Realtime Linux等とは意味が...') |
(→DBの作成) |
||
(同じ利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
− | Asterisk Realtime Architecture(ARA) | + | Asterisk Realtime Architecture(ARA) |
+ | |||
Asteriskの内部処理をリアルタイム化するものではないので注意してください。Realtime Linux等とは意味が異なります。<br> | Asteriskの内部処理をリアルタイム化するものではないので注意してください。Realtime Linux等とは意味が異なります。<br> | ||
Asterisk Realtimeは各種設定ファイルやデータをAsteriskがリアルタイム処理する機能のことで、Asterisk 1.2から正式に実装されました。 | Asterisk Realtimeは各種設定ファイルやデータをAsteriskがリアルタイム処理する機能のことで、Asterisk 1.2から正式に実装されました。 | ||
このリアルタイムを簡単に説明すると次のようになります。<br> | このリアルタイムを簡単に説明すると次のようになります。<br> | ||
− | + | 例えば通常はpjsip.confのようにAsteriskの設定ファイルとしてSIPエンドポイントの情報を記述し、これを有効にするためにはAsteriskのreload等のコマンドを実行する必要があります。設定は設定ファイルに記述しただけでは反映されず、明示的にコマンドで再読み込みを行う必要があります。<br> | |
− | Asterisk | + | Asterisk Realtimeでは設定ファイルの内容を外部リソースを使うことで、設定を即時に反映させます。例えばよく使われる方法は、MySQLをデータベース・エンジンとし、SIPエンドポイントのデータベースを持たせることで、Asteriskはエンドポイント情報をDBから取得し、これを使って認証等の処理を行います。設定情報はDBにPUTされた時点で反映されるため、モジュールのリロード等の処理は必要ありません。<br> |
− | + | ||
+ | =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