「Asterisk+MySQL」の版間の差分
細 |
(→cdr_addon_mysqを設定する) |
||
76行目: | 76行目: | ||
port=3306 | port=3306 | ||
sock=/var/lib/mysql/mysql.so | sock=/var/lib/mysql/mysql.so | ||
+ | 設定が終わったらAsteriskを再起動するか、module load cdr_addon_mysql.so を実行します。これで通話記録はDBに保存されるようになります。 |
2009年2月19日 (木) 09:30時点における版
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
設定が終わったらAsteriskを再起動するか、module load cdr_addon_mysql.so を実行します。これで通話記録はDBに保存されるようになります。