Asterisk 呼情報をODBCでMySqlへ格納する方法を以前やりました。
Asterisk CDR(呼情報)をODBCでMySqlへ格納
Asterisk CDR(呼情報)をODBCでMySqlへ格納(後記)
今回はAsterisk のキュー(待ち呼)のログをODBCでMySqlへ格納する方法を紹介します。
1. キューログ用のテーブルを作成
まずは、キューログ用に queue_log テーブルを作成します。
CREATE TABLE `queue_log` (
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT,
`time` varchar(26) NOT NULL DEFAULT '',
`callid` varchar(40) NOT NULL DEFAULT '',
`queuename` varchar(20) NOT NULL DEFAULT '',
`agent` varchar(20) NOT NULL DEFAULT '',
`event` varchar(20) NOT NULL DEFAULT '',
`data` varchar(100) NOT NULL DEFAULT '',
`data1` varchar(40) NOT NULL DEFAULT '',
`data2` varchar(40) NOT NULL DEFAULT '',
`data3` varchar(40) NOT NULL DEFAULT '',
`data4` varchar(40) NOT NULL DEFAULT '',
`data5` varchar(40) NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `queue` (`queuename`),
KEY `event` (`event`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
2. extconfig.conf
/etc/asterisk/extconfig.conf にキューのログを格納する情報を記述します。
queue_log => odbc,asterisk,queue_log
第1パラメータ: ドライバ
第2パラメータ: res_odbc.conf のデータベースの設定情報 (DSN)
第3パラメータ: テーブル名
3. AsteriskとODBC接続の構成
AsteriskとODBC接続の構成は /etc/asterisk/res_odbc.conf で行います。
[asterisk]
enabled => yes
dsn => asterisk-connector
username => asterisk
password => asterpass
pre-connect => yes
4. ODBC設定の追加
Asteriskデータベースへの接続情報を /etc/odbc.ini へ追加します。
[asterisk-connector]
Description = MySQL connection to 'asterisk' database
Driver = MySQL
Database = asterisk
Server = localhost
UserName = asterisk
Password = asterpass
Port = 3306
Socket = /var/lib/mysql/mysql.sock
5. 動作確認
Asterisk 再起動して動作確認します。
# service asterisk restart
キュー情報がMySqlへ格納されるか動作確認してみます。
ここでは、SIP #2501 がキューに入って #2502 が受けた結果を表示しています。
# mysql -u asterisk -p
Enter password:
mysql> use asterisk;
mysql> select * from queue_log;
+----+----------------------------+--------------+------------+----------+----------------+------+-------+--------------+-------+-------+-------+---------------------+
| id | time | callid | queuename | agent | event | data | data1 | data2 | data3 | data4 | data5 | created |
+----+----------------------------+--------------+------------+----------+----------------+------+-------+--------------+-------+-------+-------+---------------------+
| 18 | 2016-09-19 12:33:53.249160 | 1474256033.2 | queue_test | NONE | ENTERQUEUE | | | 2501 | 1 | | | 2016-09-19 12:33:53 |
| 19 | 2016-09-19 12:33:56.479286 | 1474256033.2 | queue_test | SIP/2502 | CONNECT | | 3 | 1474256033.3 | 3 | | | 2016-09-19 12:33:56 |
| 20 | 2016-09-19 12:34:06.721414 | 1474256033.2 | queue_test | SIP/2502 | COMPLETECALLER | | 3 | 10 | 1 | | | 2016-09-19 12:34:06 |
+----+----------------------------+--------------+------------+----------+----------------+------+-------+--------------+-------+-------+-------+---------------------+
3 rows in set (0.01 sec)
参考:
https://stackoverflow.com/questions/30161384/asterisk-11-queue-log-to-mysql
https://work.mikeboylan.com/posts/2012/03/asterisk-queuelog-to-mysql.html
https://lists.digium.com/pipermail/asterisk-users/2009-September/237448.html
以上です。