「Asterisk+PostgreSQL」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(データベースを作る)
(cdr_pgsql.confを作る)
79行目: 79行目:
 
  hostname=localhost
 
  hostname=localhost
 
  port=5432
 
  port=5432
  dbname=asterisk
+
  dbname=asterisk       <--作成したDB名
  user=astusr
+
  user=astusr           <--作成したユーザ名
  password=asterpass
+
  password=asterpass   <--ユーザのパスワード
  table=cdr
+
  table=cdr             <--作成したテーブル名

2009年2月22日 (日) 10:33時点における版

このページは書きかけです
AsteriskとPostgreSQLを連動させる設定など。
PostgreSQLのインストール方法は探せばいくらでもあります。CentOSならばyum install postgresql postgresql-server php-pgsql postgresql-develを行えば入ります。
PostgreSQLの管理はちゃんと行っておきましょう。rootパスワードの設定もお忘れなく。
AsteriskのPostgreSQL対応モジュールは1.4ならば標準で入っています。

CDR

通話記録をデータベース管理したいという要望は多いはずです。PostgreSQLと連動させるために、まずはこの部分を設定してみます。
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を実行するとサンプルの設定ファイルが入りますが、ここでは使いませんので行わなくてもかまいません。

データベースを作る

まずDBを作ります。ここでは'asterisk'という名前にします。

# createdb asterisk

テーブルを作成します。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
);

ユーザ'astuser'を作ります。パスワードは'asterpass'と指定したものとして後の設定を説明します。

# createuser -P astusr

psqlでastusrに対し権限を与えます。

asterisk=# GRANT ALL on CDR to astusr;

cdr_pgsql.confを作る

/etc/asterisk/cdr_pgsql.conf を以下のような内容で作ります。当然ですが、ユーザ名とパスワードはPostgreSQLに設定したものです。

[global]
hostname=localhost
port=5432
dbname=asterisk       <--作成したDB名
user=astusr           <--作成したユーザ名
password=asterpass    <--ユーザのパスワード
table=cdr             <--作成したテーブル名