4,723
回編集
差分
新しいページ: 'AsteriskとPostgreSQLを連動させる設定など。<br> PostgreSQLのインストール方法は探せばいくらでもあります。CentOSならばyum install postgresql ...'
AsteriskとPostgreSQLを連動させる設定など。<br>
PostgreSQLのインストール方法は探せばいくらでもあります。CentOSならばyum install postgresql postgresql-server php-pgsql postgresql-develを行えば入ります。<br>
PostgreSQLの管理はちゃんと行っておきましょう。rootパスワードの設定もお忘れなく。<br>
AsteriskのPostgreSQL対応モジュールは1.4ならば標準で入っています。<br>
==CDR==
通話記録をデータベース管理したいという要望は多いはずです。PostgreSQLと連動させるために、まずはこの部分を設定してみます。<br>
Asteriskコンパイルします。./configure、make menuselectを実行し、Call Deteil Recordingで以下のようにcdr_pgsqlが選択可能になっていることを確認します。もし、なっていなければpostgresql-develの入れ忘れです。
**************************************************
Asterisk Module and Build Option Selection
**************************************************
Press 'h' for help.
1. Applications
---> 2. Call Detail Recording
3. Channel Drivers
4. Codec Translators
5. Format Interpreters
6. Dialplan Functions
7. PBX Modules
8. Resource Modules
9. Voicemail Build Options
10. Compiler Flags
11. Module Embedding
12. Core Sound Packages
13. Music On Hold File Packages
14. Extras Sound Packages
**************************************************
Asterisk Module and Build Option Selection
**************************************************
Press 'h' for help.
[*] 1. cdr_csv
[*] 2. cdr_custom
[*] 3. cdr_manager
XXX 4. cdr_odbc
[*] 5. cdr_pgsql
XXX 6. cdr_radius
XXX 7. cdr_sqlite
XXX 8. cdr_tds
あとはmake、make installするだけです。make samplesを実行するとサンプルの設定ファイルが入りますが、ここでは使いませんので行わなくてもかまいません。<br>
===データベースを作る===
まずDBを作ります。ここでは'asterisk'という名前にします。<br>
# createdb asterisk
psqlフロントエンドを起動し、以下のようにユーザ'astuser'に全てのアクセス権を与えることにします。この際のパスワードは'asterpass'にしてみます。<br>
asterisk=# CREATE USER astusr WITH PASSWORD 'asterpass';
テーブルを作成します。CDRというテーブルを以下の内容で作ります。このスキーマはasteriskのソースのdoc/cdrdriver.txtに書かれています。
CREATE TABLE cdr (
calldate time NOT NULL ,
clid varchar (80) NOT NULL ,
src varchar (80) NOT NULL ,
dst varchar (80) NOT NULL ,
dcontext varchar (80) NOT NULL ,
channel varchar (80) NOT NULL ,
dstchannel varchar (80) NOT NULL ,
lastapp varchar (80) NOT NULL ,
lastdata varchar (80) NOT NULL ,
duration int NOT NULL ,
billsec int NOT NULL ,
disposition varchar (45) NOT NULL ,
amaflags int NOT NULL ,
accountcode varchar (20) NOT NULL ,
uniqueid varchar (32) NOT NULL ,
userfield varchar (255) NOT NULL
);
PostgreSQLのインストール方法は探せばいくらでもあります。CentOSならばyum install postgresql postgresql-server php-pgsql postgresql-develを行えば入ります。<br>
PostgreSQLの管理はちゃんと行っておきましょう。rootパスワードの設定もお忘れなく。<br>
AsteriskのPostgreSQL対応モジュールは1.4ならば標準で入っています。<br>
==CDR==
通話記録をデータベース管理したいという要望は多いはずです。PostgreSQLと連動させるために、まずはこの部分を設定してみます。<br>
Asteriskコンパイルします。./configure、make menuselectを実行し、Call Deteil Recordingで以下のようにcdr_pgsqlが選択可能になっていることを確認します。もし、なっていなければpostgresql-develの入れ忘れです。
**************************************************
Asterisk Module and Build Option Selection
**************************************************
Press 'h' for help.
1. Applications
---> 2. Call Detail Recording
3. Channel Drivers
4. Codec Translators
5. Format Interpreters
6. Dialplan Functions
7. PBX Modules
8. Resource Modules
9. Voicemail Build Options
10. Compiler Flags
11. Module Embedding
12. Core Sound Packages
13. Music On Hold File Packages
14. Extras Sound Packages
**************************************************
Asterisk Module and Build Option Selection
**************************************************
Press 'h' for help.
[*] 1. cdr_csv
[*] 2. cdr_custom
[*] 3. cdr_manager
XXX 4. cdr_odbc
[*] 5. cdr_pgsql
XXX 6. cdr_radius
XXX 7. cdr_sqlite
XXX 8. cdr_tds
あとはmake、make installするだけです。make samplesを実行するとサンプルの設定ファイルが入りますが、ここでは使いませんので行わなくてもかまいません。<br>
===データベースを作る===
まずDBを作ります。ここでは'asterisk'という名前にします。<br>
# createdb asterisk
psqlフロントエンドを起動し、以下のようにユーザ'astuser'に全てのアクセス権を与えることにします。この際のパスワードは'asterpass'にしてみます。<br>
asterisk=# CREATE USER astusr WITH PASSWORD 'asterpass';
テーブルを作成します。CDRというテーブルを以下の内容で作ります。このスキーマはasteriskのソースのdoc/cdrdriver.txtに書かれています。
CREATE TABLE cdr (
calldate time NOT NULL ,
clid varchar (80) NOT NULL ,
src varchar (80) NOT NULL ,
dst varchar (80) NOT NULL ,
dcontext varchar (80) NOT NULL ,
channel varchar (80) NOT NULL ,
dstchannel varchar (80) NOT NULL ,
lastapp varchar (80) NOT NULL ,
lastdata varchar (80) NOT NULL ,
duration int NOT NULL ,
billsec int NOT NULL ,
disposition varchar (45) NOT NULL ,
amaflags int NOT NULL ,
accountcode varchar (20) NOT NULL ,
uniqueid varchar (32) NOT NULL ,
userfield varchar (255) NOT NULL
);