「Asterisk+MySQL」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(新しいページ: 'AsteriskとMySQLを連動させる設定など。<br> MySQLのインストール方法は探せばいくらでもあります。CentOSならばyum install mysql mysql-serverを...')
 
1行目: 1行目:
 
AsteriskとMySQLを連動させる設定など。<br>
 
AsteriskとMySQLを連動させる設定など。<br>
MySQLのインストール方法は探せばいくらでもあります。CentOSならばyum install mysql mysql-serverを行えば入ります。
+
MySQLのインストール方法は探せばいくらでもあります。CentOSならばyum install mysql mysql-serverを行えば入ります。<br>
 +
MySQLの管理はちゃんと行っておきましょう。rootパスワードの設定もお忘れなく。<br>
 +
なお、Addonsモジュールをコンパイルするにはmysql-develも必要なので、yum install mysql-develも行っておきます。<br>
 
==CDR==
 
==CDR==
 +
通話記録をデータベース管理したいという要望は多いはずです。MySQLと連動させるために、まずはこの部分を設定してみます。<br>
 +
Asterisk-addonsを入手し、コンパイルします。./configure、make menuselectを実行し、Call Deteil Recordingで以下のようにcdr_addon_mysqlが選択可能になっていることを確認します。もし、なっていなければmysql-develの入れ忘れです。
 +
****************************************
 +
    Asterisk-addons Module Selection
 +
****************************************
 +
      Press 'h' for help.
 +
      1.  Applications
 +
---> 2.  Call Detail Recording
 +
      3.  Channel Drivers
 +
      4.  Format Interpreters
 +
      5.  Resource Modules
 +
 
 +
 
 +
 
 +
 +
****************************************
 +
    Asterisk-addons Module Selection
 +
****************************************
 +
 
 +
      Press 'h' for help.
 +
 
 +
      [*] 1.  cdr_addon_mysql
 +
 +
ChannelのH.323はコンパイルに時間がかかるので、要らなければmenuselectで外しておいてください。<br>
 +
あとはmake、make installするだけです。make samplesを実行するとサンプルの設定ファイルが入りますが、ここでは使いませんので行わなくてもかまいません。<br>
 +
===データベースを作る===
 +
まずDBを作ります。ここでは'asterisk'という名前にします。<br>
 +
mysqlフロントエンドを起動し、以下のようにDBを作り、ユーザ'astuser'に全てのアクセス権を与えることにします。この際のパスワードは'asterpass'にしてみます。<br>
 +
# mysql -u root -p
 +
Enter password:<パスワード>
 +
Welcome to the MySQL monitor.  Commands end with ; or \g.
 +
Your MySQL connection id is 3
 +
Server version: 5.0.45 Source distribution
 +
 +
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 +
 +
mysql> create database asterisk;
 +
Query OK, 1 row affected (0.00 sec)
 +
mysql> grant all privileges on asterisk.* to astuser@localhost identified by 'asterpass';
 +
Query OK, 0 rows affected (0.00 sec)
 +
次にテーブルを作成します。テーブルのスキーマはAddonsを展開したディレクトリの下、docsの下にあるcdr_mysql.txtに入っていますが、面倒なので以下をコピー&ペーストしてmysqlに流し込めばよいでしょう。<br>
 +
use asterisk;
 +
CREATE TABLE cdr (
 +
  calldate datetime NOT NULL default '0000-00-00 00:00:00',
 +
  clid varchar(80) NOT NULL default '',
 +
  src varchar(80) NOT NULL default '',
 +
  dst varchar(80) NOT NULL default '',
 +
  dcontext varchar(80) NOT NULL default '',
 +
  channel varchar(80) NOT NULL default '',
 +
  dstchannel varchar(80) NOT NULL default '',
 +
  lastapp varchar(80) NOT NULL default '',
 +
  lastdata varchar(80) NOT NULL default '',
 +
  duration int(11) NOT NULL default '0',
 +
  billsec int(11) NOT NULL default '0',
 +
  disposition varchar(45) NOT NULL default '',
 +
  amaflags int(11) NOT NULL default '0',
 +
  accountcode varchar(20) NOT NULL default '',
 +
  uniqueid varchar(32) NOT NULL default '',
 +
  userfield varchar(255) NOT NULL default ''
 +
);
 +
quit
 +
これでDBの準備は完了です。
 +
===cdr_addon_mysqを設定する===
 +
以下を参考に、/etc/asteriskに cdr_mysql.conf という名前でファイルを作成します。
 +
[global]
 +
hostname=localhost
 +
dbname=asterisk          <--上で作成したDB名
 +
table=cdr                <--上で作成したテーブル名
 +
password=asterpass      <--上で設定したDBユーザのパスワード
 +
user=astuser            <--上で設定したDBユーザ名
 +
port=3306
 +
sock=/var/lib/mysql/mysql.so

2009年2月19日 (木) 09:27時点における版

AsteriskとMySQLを連動させる設定など。
MySQLのインストール方法は探せばいくらでもあります。CentOSならばyum install mysql mysql-serverを行えば入ります。
MySQLの管理はちゃんと行っておきましょう。rootパスワードの設定もお忘れなく。
なお、Addonsモジュールをコンパイルするにはmysql-develも必要なので、yum install mysql-develも行っておきます。

CDR

通話記録をデータベース管理したいという要望は多いはずです。MySQLと連動させるために、まずはこの部分を設定してみます。
Asterisk-addonsを入手し、コンパイルします。./configure、make menuselectを実行し、Call Deteil Recordingで以下のようにcdr_addon_mysqlが選択可能になっていることを確認します。もし、なっていなければmysql-develの入れ忘れです。

****************************************
   Asterisk-addons Module Selection
****************************************
     Press 'h' for help.
     1.  Applications
---> 2.  Call Detail Recording
     3.  Channel Drivers
     4.  Format Interpreters
     5.  Resource Modules
  
 
 

****************************************
    Asterisk-addons Module Selection
****************************************
 
      Press 'h' for help.
 
      [*] 1.  cdr_addon_mysql

ChannelのH.323はコンパイルに時間がかかるので、要らなければmenuselectで外しておいてください。
あとはmake、make installするだけです。make samplesを実行するとサンプルの設定ファイルが入りますが、ここでは使いませんので行わなくてもかまいません。

データベースを作る

まずDBを作ります。ここでは'asterisk'という名前にします。
mysqlフロントエンドを起動し、以下のようにDBを作り、ユーザ'astuser'に全てのアクセス権を与えることにします。この際のパスワードは'asterpass'にしてみます。

# mysql -u root -p
Enter password:<パスワード>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database asterisk;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on asterisk.* to astuser@localhost identified by 'asterpass';
Query OK, 0 rows affected (0.00 sec)

次にテーブルを作成します。テーブルのスキーマはAddonsを展開したディレクトリの下、docsの下にあるcdr_mysql.txtに入っていますが、面倒なので以下をコピー&ペーストしてmysqlに流し込めばよいでしょう。

use asterisk;
CREATE TABLE cdr (
  calldate datetime NOT NULL default '0000-00-00 00:00:00',
  clid varchar(80) NOT NULL default ,
  src varchar(80) NOT NULL default ,
  dst varchar(80) NOT NULL default ,
  dcontext varchar(80) NOT NULL default ,
  channel varchar(80) NOT NULL default ,
  dstchannel varchar(80) NOT NULL default ,
  lastapp varchar(80) NOT NULL default ,
  lastdata varchar(80) NOT NULL default ,
  duration int(11) NOT NULL default '0',
  billsec int(11) NOT NULL default '0',
  disposition varchar(45) NOT NULL default ,
  amaflags int(11) NOT NULL default '0',
  accountcode varchar(20) NOT NULL default ,
  uniqueid varchar(32) NOT NULL default ,
  userfield varchar(255) NOT NULL default 
);
quit

これでDBの準備は完了です。

cdr_addon_mysqを設定する

以下を参考に、/etc/asteriskに cdr_mysql.conf という名前でファイルを作成します。

[global]
hostname=localhost
dbname=asterisk          <--上で作成したDB名
table=cdr                <--上で作成したテーブル名
password=asterpass       <--上で設定したDBユーザのパスワード
user=astuser             <--上で設定したDBユーザ名
port=3306
sock=/var/lib/mysql/mysql.so