Ryo CDR:別のアスタリスクCDRビューアー

アスタリスクについては、おそらく、怠zyな人だけがcdrビューアを作成しませんでした。 そのような解決策はたくさんあります: アスタリスクcdrビューアagcdrアスタリスクcdrビューアmod (Habr に関する記事 )、 cdr-statsおよび私が知らないその他の多く。



ただし、クールなフィルター、グループの並べ替えの機能は必要ありませんが、1日あたりの通話のデータ、会話の記録を聞く機能、およびパスワード保護だけが必要です。 車の後部座席に座っているビジネスの叔母が交通渋滞の周りを運転している彼女の夫が彼女を家に持ち帰り、タブレットを取り、従業員の呼び出しに関するデータを見て、会話の録音をすぐに聞くことができるように。



githubで短い検索をした後、 webcdrに出会いました 。 ファイルで少し処理しました。不要なものを削除し、http基本認証を追加し、必要なバージョンのcdrビューアを受け取りました。 おなじみのTwitter BootstrapスタイルのWebインターフェイスを備えています。 おばさんは幸せ。



画像



さらにいくつかの詳細。







りょうcdr



Ubuntu 14のホストには、アスタリスク11、mysql 5.6データベースがあります。 アスタリスクは会話を記録し、データベースに通話データを追加します。 また、node.js、npm、bowerもインストールする必要があります。



設置



wget https://github.com/antirek/ryocdr/archive/v0.0.11.tar.gz tar -xzf v0.0.11.tar.gz cd ryocdr-0.0.11 npm install bower install //   --allow-root,    root npm run build
      
      







構成ファイル



 { tz:"+0400", port: 9030, //  - Ryo CDR recordspath:"/var/records", //     db: { client: "mysql", connection: { host: "127.0.0.1", user: "user", password: "password", database: "cdr", charset:"utf8" } }, cdr: { table: "cdr" }, auth: true, //  basic   username: 'admin', password: 'password' };
      
      







打ち上げ



app.jsを起動します



 node app.js
      
      







またはpm2マネージャーを使用



 pm2 start app.js  --name "ryocdr-app"
      
      







また、環境変数RYOCDR_CONFIGを使用して構成ファイルへのパスを指定すると、アプリケーションはローカルディレクトリにない、指定された構成を使用します。 たとえば、これはRyo CDRをdockerコンテナで使用する場合に便利です。

 export RYOCDR=/etc/ryocdr/config
      
      







データベース内のレコードパスの保存



記録ファイルへのパスは、データベースフィールドレコードに保存されます。 たとえば、次のようなダイヤルプラン(lua)があります。



  local basePath = '/var/records'; local date = os.date("*t"); local uniqueid = channel.UNIQUEID:get(); local fname = string.format("%s_%s-%s-%s_%s:%s:%s", uniqueid, date.year, date.month, date.day, date.hour, date.min, date.sec); local WAV = "/wav/"; local MP3 = string.format("/mp3/%s-%s-%s/", date.year, date.month, date.day); local recordCommand = "/usr/bin/nice -n 19 mkdir -p %s && /usr/bin/lame -b 16 --silent %s%s.wav %s%s.mp3"; local options = string.format(recordCommand, basePath..MP3, basePath..WAV, fname, basePath..MP3, fname); app.mixmonitor(string.format("%s%s.wav,b,%s", basePath..WAV, fname, options)); channel["CDR(record)"]:set(string.format("%s%s.mp3", MP3, fname));
      
      







つまり ファイルは、mixmonitorによってwavに記録され、コマンドによってmp3に変換され、mp3-shkiを含むフォルダー内の変換されたファイルのパスがCDRダイヤルプランアプリケーションによってデータベースに保存されました。



Ryo CDR構成ファイルでは、recordspathパラメーターで会話レコードの基本ロケーションを指定できます。 また、データベース自体に、このベースパスに関連するパスのみを保存します。



CDR DB構造



cdrテーブル構造は伝統的なもので、会話レコードのレコードフィールド( テーブル構造 )によって補完されます



Ryo CDRインストールビデオ



注意、インストールのコメントをバブリングせず、音楽付きのビデオ。







他の誰かが役に立つかもしれません。 バグ、希望、建設的な批判-お知らせください。



参照資料

Ryo CDR: https : //github.com/antirek/ryocdr



PS webcdrのIvanに感謝します。自分のニーズに少し適応する必要がありました。



PPS私の叔母のリクエストの1つは、会話の録音を聞くための音声制御でした。「これは普通です、次、スクロール、スクロール、とても普通、次です。」 WebAudioは追加を試みます。



All Articles