私はCDRからの未応答のコールをリストアップしたWebページを作ろうとしています。着信コールでは、すべてのソフトフォンと一部の携帯電話が同時に呼び出し音を鳴らします。アスタリスクのバージョンは1.8.5です。
CDRテーブルに ANSWERED という1回の呼び出しで書き込まれるものは次のとおりです。
╔═════════════════════╦══════╦═════════╦═════╦══════════╦═══════════════════════════╦═══════════════════════════╦═════════╦═══════════════════════╦══════════╦═════════╦═════════════╦══════════╦═════════════╦═══════════╦════════════════╦══════════╗
║ calldate ║ clid ║ src ║ dst ║ dcontext ║ channel ║ dstchannel ║ lastapp ║ lastdata ║ duration ║ billsec ║ disposition ║ amaflags ║ accountcode ║ userfield ║ uniqueid ║ imported ║
╠═════════════════════╬══════╬═════════╬═════╬══════════╬═══════════════════════════╬═══════════════════════════╬═════════╬═══════════════════════╬══════════╬═════════╬═════════════╬══════════╬═════════════╬═══════════╬════════════════╬══════════╣
║ 2012-02-06 12:40:45 ║ ║ 5020971 ║ 595 ║ OUTGOING ║ Local/[email protected];2 ║ SIP/help.desk-000000b8 ║ Dial ║ SIP/help.desk/595,,Tt ║ 8 ║ 0 ║ ANSWERED ║ 3 ║ ║ ║ 1328524845.301 ║ 0 ║
║ 2012-02-06 12:40:45 ║ ║ 5020971 ║ 599 ║ OUTGOING ║ Local/[email protected];2 ║ SIP/help.desk-000000b9 ║ Dial ║ SIP/help.desk/599,,Tt ║ 8 ║ 0 ║ NO ANSWER ║ 3 ║ ║ ║ 1328524845.303 ║ 1 ║
║ 2012-02-06 12:40:44 ║ ║ 5020971 ║ s ║ to_tech ║ SIP/help.desk-000000b6 ║ Local/[email protected];1 ║ Queue ║ TECH,Tt,,,300 ║ 111 ║ 110 ║ ANSWERED ║ 3 ║ ║ ║ 1328524844.298 ║ 0 ║
╚═════════════════════╩══════╩═════════╩═════╩══════════╩═══════════════════════════╩═══════════════════════════╩═════════╩═══════════════════════╩══════════╩═════════╩═════════════╩══════════╩═════════════╩═══════════╩════════════════╩══════════╝
応答されない呼び出しを取得するSQLは次のとおりです。
SELECT * FROM cdr WHERE disposition = 'NO ANSWER' AND imported = '0'
言うまでもありませんが、私は実際に応答されるコールで誤検知をしています。 :-)
彼らは、私が見ているだけのリンクは、無回答と答えられた行は、それらの間の非常に短い時間間隔を持っている(そして、彼らは同じsrc番号を共有しています)。
今、私が先に進んで、(3秒のような)近い時間間隔で同じ番号からのいくつかのANSWEREDコールがあるかどうかをチェックする前に、誰かがこれを解決する良い方法を知っているかどうか聞いてみたい。
私はextensions.confを非常にうまく話すわけではありません。私たちのダイヤルプランを実際に配置している人は、ずっと前にいますが、私はextensions.confにこれを気付きました:
[class1]
exten => s,n,SET(CDR(accountcode)=${UNIQUEID})
include => accounts
include => OUTGOING
これをまっすぐにすると、CDRテーブルのaccountcodeフィールドを着信呼のuniqueidの値に設定することになっています。とにかく、accountcodeフィールドは決してテーブルに入力されないので、動作しません。