匿名

差分

Asterisk+MySQL

1,268 バイト追加, 2009年2月19日 (木) 09:59
動作を確認してみる
あとはphpMyAdminを使うなり、自分で書いたプログラムで処理するなりすれば通話記録が様々な用途に使えます。データベース管理されているので便利になることでしょう。<br>
なお当然ですが、適切な設定をすればAsteriskサーバとDBサーバは別なマシンでもかまいません。<br>
==extensions.conf==
Addonsを入れるとapp_addon_sql_mysqlも入れることができます。これを使うと何とextenからSQL文が叩けるようになります。
exten => XXXX,1,MYSQL(Connect conid localhost asterisk DBユーザ DBパスワード)
exten => XXXX,n,NoOp(${conid})
exten => XXXX,n,MYSQL(Query resultid ${conid} SELECT\ なんとか\ from\ かんとか\ where\ なんちゃら=${EXTEN});
exten => XXXX,n,MYSQL(Fetch fetchid ${resultid} TARGETEXTEN)
exten => XXXX,n,NoOp(${resultid})
exten => XXXX,n,NoOp(${fetchid})
exten => XXXX,n,NoOp(${TARGETEXTEN})
exten => XXXX,n,MYSQL(Disconnect ${conid})
バックスラッシュ(\)はスペースをクォートするために必要です。<br>
まずConnectでDBに接続します。接続すると識別子がconidに入ります。<br>
次にこのconidを使って、QueryでSELECTを発行します。この記述方法はSQL文そのものです。結果を取得するには、resultidを使ってFetchで行います。この例では「かんとか」テーブルから「なんとか」を探し、その際の条件が「なんちゃら」がEXTEN、つまりダイヤルされた4桁の番号をDBで検索します。<br>
用事がすんだらDisconnectで切断します。<br>