Ubuntu 14.04 +アスタリスク11 + CDR-Stats

Ubuntuサーバー、Asterisk電話交換、CDR-STATSコール処理および分析システムのインストールと設定に関する段階的なガイドを提供します。



Ubuntuをインストールする



Ubuntuサーバー14.04(LTS)をインストールし、公式サイトから配布キットをダウンロードします。 インストール中に、必要なコンポーネントの長いインストールプロセスを回避するために、SSH + LAMP + SAMBAを指摘しました。



サーバーにログインします。 私が最初にしたことは、真夜中の司令官をセットアップすることでした(DOSインターフェースが大好きで、便利です)。



sudo apt-get install mc -y
      
      





サーバーにGUIが必要ない場合は、次の手順をスキップできます。



便宜上、将来のサーバーのいくつかの機能を考慮して、GUIをロールアップしました。



 sudo apt-get install --no-install-recommends lubuntu-desktop
      
      





インストール後:



 sudo reboot
      
      





ダウンロードの最後に、古典的なグラフィカルユーザーインターフェイスが表示されます。



必要なすべてのネットワークインターフェイス、サーバー名、およびそのエイリアスを構成します。 (人々を誤解させないために、設定の例を挙げません)。



次のステップは、サーバーにwebminをインストールすることです。 webmin.comの公式ドキュメントを使用しました

Webmin APTリポジトリを使用する

APTを介してWebminをインストールおよび更新する場合は、システム上の/etc/apt/sources.listファイルを編集し、次の行を追加します。



 deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
      
      





次のコマンドを使用して、リポジトリが署名されているGPGキーを取得してインストールする必要があります。



 cd /root wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc
      
      





このコマンドをルートとして実行する必要がある場合があります。



 sudo apt-key add jcameron-key.asc
      
      





次のコマンドでインストールできるようになります。



 sudo apt-get update sudo apt-get install webmin
      
      





すべての依存関係は自動的に解決されるはずです。


すべての手順を完了すると、webminは次の場所で利用可能になります: your-server-ip-or-name :10000



iptablesのルールを設定するときが来ました。 ウェブ上で、iptablesを使用したAsteriskサーバーの保護に関する非常に良い記事を見つけました。 ソース: blog.ls20.com/securing-your-asterisk-voip-server-with-iptables 記事は英語ですが、すべてが理解するのに十分簡単です。



今非常に重要なポイント! 標準的な方法でルールをiptablesにインポートしないでください! これは機能しません:



 iptables-restore < filename
      
      





動作しません。



次の手順を完了する必要があります。



ファイル/etc/iptables.up.rulesを見つけてどこかにコピー(つまり、バックアップを作成)し、ファイルetc / iptables.up.rulesを前の手順の結果として受け取ったファイルに置き換えます。

すべてを正しく行った場合、webmin Networking / Linux Firewallに必要なすべてのルールが表示されます。 インストールされたコンポーネントの利用可能な更新を配置します。



 sudo apt-get update && sudo apt-get upgrade –y && sudo reboot
      
      





したがって、サーバーはインストール、構成、および更新されます



アスタリスクをインストールする


アスタリスクをインストールします。 現在の構成では、アスタリスク11を使用します。



 cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
      
      





すべてを解凍します。



 tar -zxvf asterisk-11-current.tar.gz tar -zxvf dahdi-linux-complete-current.tar.gz tar -zxvf libpri-1.4-current.tar.gz
      
      





以前にインストールされていない場合、いくつかのパッケージを配置します。



 sudo apt-get install build-essential libncurses5-dev openssl libxml2-dev
      
      





さらに2つの方法があります。



第一の方法:


Asteriskサーバーが動作するための依存パッケージをインストールするためのスクリプトを実行します。



 sudo /usr/src/asterisk-11.12.0/contrib/scripts/install_prereq install
      
      





このスクリプトは、必要なすべての依存関係とパッケージを配置しますが、多くは不要です。



第二の方法:


ソースからのインストール

このアクションの前に、そう言うことを避けるために、hyper-vサーバーでチェックポイントを実行しました。



 sudo apt-get install libncurses5-dev openssl libssl-dev zlib1g zlib1g-dev mpg123 linux-headers-`uname -r` build-essential mysql-server libmysqlclient15-dev php5 php5-cli php5-mysql php5-gd php-pear apache2 curl sox bison flex cpp g++ gcc make libauthen-pam-perl libio-pty-perl libnet-ssleay-perl libxml2 libxml2-dev libaudiofile-dev subversion libsqlite3-dev
      
      





わかった パッケージがインストールされました。 今こそ、アスタリスク自体のインストールに取り組むときです。



DAHDIを配置します。



 cd /usr/src/dahdi-linux-complete-2.10.0+2.10.0 sudo make all sudo make install sudo make config
      
      





LibPRIを配置します。



 cd /usr/src/libpri-1.4.15 sudo make sudo make install
      
      





まあ、アスタリスク自体:



 cd /usr/src/asterisk-11.12.0 ./configure sudo make menuselect
      
      





必要なコンポーネントを選択します。 MySQLデータベースにCDRを保存し、CDR-STATS Webインターフェースを固定するため、 format_mp3app_mysqlcdr_mysql 、およびres_config_mysqlモジュールが含まれていることに注意してください



それ以外の場合、サウンド(およびen、en-gb、ruが必要)を除き、すべてが標準のままです。



 sudo make install
      
      





インストール中にformat_mp3を選択するときは、 以下を行う必要があります。



 contrib/scripts/get_mp3_source.sh
      
      





インストールを続行します。



 sudo make install
      
      





あなたの広告はここにあるかもしれません。 コーヒー、紅茶、クッキーを飲み、インストールプロセスの終了を待ちます。



次のステップは、サンプルと構成です。 テスト構成:



 sudo make samples
      
      





自動実行スクリプトを作成しない場合:



 sudo make config
      
      





ふふふ! 彼らはそれを置きました。 私たちは始めます:



 sudo asterisk start
      
      





接続します:



 sudo rasterisk
      
      





DAHDIのバージョンを確認します。



 *CLI>dahdi show version
      
      





LibPRIのバージョンを確認します。



 *CLI>pri show version *CLI>exit
      
      





だから、設定、見た。 現時点では、アスタリスクはルートとして起動されますが、これは以前のようには行きません。 したがって、次のことを行います。



 sudo service asterisk stop
      
      





アスタリスクユーザーを作成し、アスタリスクグループに追加します。



 sudo adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk
      
      





作成し、必要なディレクトリの権限を変更します。



 sudo chown -R asterisk:asterisk /var/lib/asterisk sudo chown -R asterisk:asterisk /var/log/asterisk sudo chown -R asterisk:asterisk /var/run/asterisk sudo chown -R asterisk:asterisk /var/spool/asterisk sudo chown -R asterisk:asterisk /usr/lib/asterisk sudo chown -R asterisk:asterisk /dev/dahdi sudo chmod -R u=rwX,g=rX,o= /var/lib/asterisk sudo chmod -R u=rwX,g=rX,o= /var/log/asterisk sudo chmod -R u=rwX,g=rX,o= /var/run/asterisk sudo chmod -R u=rwX,g=rX,o= /var/spool/asterisk sudo chmod -R u=rwX,g=rX,o= /usr/lib/asterisk sudo chmod -R u=rwX,g=rX,o= /dev/dahdi sudo chown -R root:asterisk /etc/asterisk sudo chmod -R u=rwX,g=rX,o= /etc/asterisk
      
      





/ etc / default /アスタリスクファイルでは、2行のコメントを外します。



 AST_USER=«asterisk» AST_GROUP=«asterisk»
      
      





アスタリスクを開始します。



 sudo service asterisk start
      
      





ユーザーAsteriskの開始元を確認します。



 ps aux|grep aster
      
      





そして、あなたはこのような何かを見るはずです:

アスタリスク2793 3.0 0.8 2539536 26540? SSL 20:21 0:00 / usr / sbin /アスタリスク-Uアスタリスク-Gアスタリスク


見ましたか? だからすべてが大丈夫です。 次に、MySQLでCDRを作成するようにアスタリスクを教えます。



まず最初に置きます:



 sudo apt-get install mysql-client
      
      





mysqlにログインします。



 sudo mysql -p
      
      





パスワードを入力してください:

MySQLモニターへようこそ。 コマンドの末尾は; または\ g。

mysql>


ベースを作成します。



 mysql> create database asteriskcdrdb;
      
      





次の構造で、「asteriskcdrdb」データベースに「cdr」テーブルを作成します。



 mysql> use asteriskcdrdb; mysql>CREATE TABLE `cdr` ( `acctid` int(11) NOT NULL AUTO_INCREMENT, `src` varchar(80) DEFAULT NULL, `dst` varchar(80) DEFAULT NULL, `calldate` datetime NOT NULL, `clid` varchar(80) DEFAULT NULL, `dcontext` varchar(80) DEFAULT NULL, `channel` varchar(80) DEFAULT NULL, `dstchannel` varchar(80) DEFAULT NULL, `lastapp` varchar(80) DEFAULT NULL, `lastdata` varchar(80) DEFAULT NULL, `duration` int(10) unsigned DEFAULT NULL, `billsec` int(10) unsigned DEFAULT NULL, `disposition` varchar(80) NOT NULL DEFAULT '', `amaflags` varchar(80) DEFAULT NULL, `accountcode` int(10) unsigned DEFAULT NULL, `uniqueid` varchar(32) DEFAULT NULL, `userfield` varchar(80) DEFAULT NULL, `import_cdr` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`acctid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      
      





パスワード「アスタリスク」でアスタリスクユーザーを作成します。



 mysql> CREATE USER asterisk_user IDENTIFIED BY 'asterisk_password';
      
      





ここで、パスワード「アスタリスク」を持つユーザー「アスタリスク」に、ローカルホストのみを使用してデータベース「アスタリスクcdrdb」へのアクセスを許可します。



 mysql> grant all on asteriskcdrdb.* to 'asterisk'@'localhost' identified by 'asterisk'; mysql> flush privileges;
      
      





ここで、アスタリスクにデータベースにCDRを書き込むように指示します。 これを行うには、ファイル「/etc/asterisk/cdr_mysql.conf」の行をコメント解除して変更します。



 [global] hostname=localhost dbname=asteriskcdrdb table=cdr password=asterisk user=asterisk sock=/var/lib/mysqld/mysqld.sock
      
      





変更を適用するには、cdr_mysql.soモジュールを再起動します。



 sudo rasterisk *CLI>module unload cdr_mysql.so
      
      





 Unloaded cdr_mysql.so == Unregistered 'mysql' CDR backend
      
      





 *CLI> module load cdr_mysql.so
      
      





 Loaded cdr_mysql.so == Parsing '/etc/asterisk/cdr_mysql.conf': Found -- Found alias start for column calldate Loaded cdr_mysql.so => (MySQL CDR Backend)
      
      





すべてを正しく行ったことを確認するには、Asteriskコンソールで次のように入力します。



 *CLI> cdr mysql status
      
      





 Connected to asterisk on socket file /var/lib/mysql/mysql.sock using table cdr for 0 hours, 2 minutes, 7 seconds. Wrote 0 records since last restart.
      
      





同じメッセージがある場合は、すべてが正しく構成されています。



CDR-STATSのインストール


命令を使用します 。 すべてがシンプルに見える:



 wget –no-check-certificate https://raw.github.com/Star2Billing/cdr-stats/master/install/install-cdr-stats-asterisk.sh -O install-cdr-stats-asterisk.sh bash ./install-cdr-stats-asterisk.sh
      
      





しかし、悪魔はいつものように詳細にあります。 スクリプトは次のエラーで失敗するため、この方法でCDR-statsをインストールすることはできません。



 bash ./install-cdr-stats-asterisk.sh ./install-cdr-stats-asterisk.sh: line 1: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 2: !DOCTYPE: No such file or directory ./install-cdr-stats-asterisk.sh: line 3: html: No such file or directory ./install-cdr-stats-asterisk.sh: line 4: head: No such file or directory ./install-cdr-stats-asterisk.sh: line 5: title: No such file or directory ./install-cdr-stats-asterisk.sh: line 6: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 7: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 8: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 9: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 10: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 11: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 12: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 13: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 14: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 15: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 16: $'\r': command not found ./install-cdr-stats-asterisk.sh: line 17: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 18: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 19: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 20: base: No such file or directory ./install-cdr-stats-asterisk.sh: line 21: link: No such file or directory ./install-cdr-stats-asterisk.sh: line 22: link: No such file or directory ./install-cdr-stats-asterisk.sh: line 23: link: No such file or directory ./install-cdr-stats-asterisk.sh: line 24: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 25: meta: No such file or directory ./install-cdr-stats-asterisk.sh: line 26: link: No such file or directory ./install-cdr-stats-asterisk.sh: line 27: syntax error near unexpected token `<' ./install-cdr-stats-asterisk.sh: line 27: `
      
      





ご覧のとおり、上のテキストにはDOCTYPEのようなナンセンスが含まれています。 このスクリプトを開いて、理解できないさまざまなものを見ました。 しかし、最終的にはスクリプト自体が意図的です。 スクリプトの本文のみを残して、不要なものをすべて削除しました。 彼のテキストは次のとおりです。



問題を回避するために、以下のテキストを変更しないでください!



 #!/bin/bash # # CDR-Stats License # http://www.cdr-stats.org # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # Copyright (C) 2011-2012 Star2Billing SL # # The Initial Developer of the Original Code is # Arezqui Belaid <info@star2billing.com> # # To download and run the script on your server : # cd /usr/src/ ; rm install-cdr-stats-asterisk.sh ; wget --no-check-certificate https://raw.github.com/Star2Billing/cdr-stats/master/install/install-cdr-stats-asterisk.sh -O install-cdr-stats-asterisk.sh; bash install-cdr-stats-asterisk.sh # BRANCH='master' INSTALL_DIR='/usr/share/cdr_stats' #INSTALL TYPE (ASTERISK or FREESWITCH) INSTALL_TYPE='ASTERISK' INSTALLMODE='GENTLE' # Set to FULL to update Selinux, Firewall, etc if not Set to GENTLE echo "" echo "" echo "> > > This is only to be installed on a fresh new installation of CentOS 6.2 or Ubuntu LTS 10.04 / 12.04! < < <" echo "" echo "It will install CDR-Stats on your server" echo "Press Enter to continue or CTRL-C to exit" echo "" read TEMP #Get Scripts dependencies cd /usr/src/ wget --no-check-certificate https://raw.github.com/Star2Billing/cdr-stats/$BRANCH/install/bash-common-functions.sh -O bash-common-functions.sh wget --no-check-certificate https://raw.github.com/Star2Billing/cdr-stats/$BRANCH/install/cdr-stats-functions.sh -O cdr-stats-functions.sh #Include general functions source bash-common-functions.sh source cdr-stats-functions.sh #Identify the OS func_identify_os #Request the user to accept the license func_accept_license_mplv2 #run install menu run_menu_cdr_stats_install
      
      





以下を開始します。



 bash install-cdr-stats-asterisk.sh
      
      





スクリプトは再びエラーで失敗します:

このスクリプトは、Ubuntu LTS 10.04 / 12.04またはCentOS 6.Xでのみ実行することを目的としています


インターネットを一瞬覗いてみても、この問題の解決に近づきませんでした。 スクリプトと物質(コーヒーとタバコ)の思慮深い喫煙は、私を次の解決策に導きました。



 cd /etc/
      
      





lsb-releaseファイルを開き、以下を参照してください。

DISTRIB_CODENAME =信頼できる


覚えて。 今:



 cd /usr/src/
      
      





bash-common-functions.shファイルを開きます。 そして、その中で関数を見てみましょう:



 func_identify_os() { if [ -f /etc/debian_version ] ; then DIST='DEBIAN' if [ "$(lsb_release -cs)" != "lucid" ] && [ "$(lsb_release -cs)" != "precise" ]; then echo "This script is only intended to run on Ubuntu LTS 10.04 / 12.04 or CentOS 6.X" exit 255
      
      





明快で正確な2つのオプションがあります。 正確に選択しました(Ubuntu 12.04 LTS)。 そして、次のことを行います。



ファイル内:

/ etc / lsb-releaseはtrustyを正確に変更します


次:



 cd /usr/src bash install-cdr-stats.sh
      
      





サーバーにCDR-Statsをインストールします

Enterキーを押して続行するか、Ctrlキーを押しながらCキーを押して終了します


Enterキーを押す

質問へ:

ライセンスの条件に拘束されることに同意します-[はい/いいえ]


私たちは言う:



 YES
      
      





インストーラーが起動します。

> CDR-Statsインストールメニュー

======================================

1)すべてインストール

2)CDR-Stats Webフロントエンドのインストール

3)CDR-Statsバックエンド/ CDR-Stats-Celeryのインストール

4)MongoDBをインストールする

0)終了

(0-4):1



メニュー項目番号1を選択します。インストールされるまで待ちます。 インストール中に、mongodbとpostgresqlがインストールされます。 次に、MySQLへの接続を構成するように求められます。



アスタリスクのデータベース設定を入力してください...

エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:YES)

Mysql設定を構成してAsterisk CDRデータベースに接続する...

Mysqlホスト名を入力します(デフォルト:localhost)

ローカルホスト

Mysqlポートを入力します(デフォルト:3306)

3306

Mysqlユーザー名を入力します(デフォルト:root)

アスタリスク

Mysqlパスワードを入力(デフォルト:パスワード)

アスタリスク

データベース名を入力してください(デフォルト:asteriskcdrdb)

アスタリスク

CDRデータベースに主キーを追加します

続行する前に、まずデータベースをバックアップすることをお勧めします



次に、cdr-statsのスーパー管理者を作成するように求められます。

スーパー管理者ユーザーを作成...

ユーザー名(空白のままにして 'root'を使用):

メールアドレス:your-email@server.com

パスワード:

パスワード(もう一度):

スーパーユーザーが正常に作成されました。



ボタン0でインストールを完了します。

your-server-ip-or-name :8008

利用可能。 私たちは感心します。



次のエラーが発生する可能性があります。

コレクションにデータが見つかりません。データのインポートが正しく機能していることを確認してください。


何してるの? CDR統計を停止します。



 sudo service cdr-stats-celeryd stop
      
      





私たちはモンゴに行きます:



 mongo
      
      





次のアクションを実行します。



 use cdr-stats; db.monthly_analytic.remove({}); db.daily_analytic.remove({}); db.aggregate_world_report.remove({}); db.aggregate_result_cdr_view.remove({}); db.aggregate_hourly_country_report.remove({}); db.cdr_common.remove({});
      
      





終了:Ctrl + D

mysqlに移動します。



 sudo mysql -p
      
      





 mysql> use asteriskcdrdb; mysql> update cdr SET import_cdr = 0;
      
      





クエリOK、影響を受けた行はありません(0.24秒)

一致した行:3変更:0警告:0


現在、3つのCDRエントリがありました。 mysqlを終了します:Ctrl + C



 cd /usr/share/cdr-stats
      
      





ファイルsettings_local.pyを開き、次の行を探します。



 LOCAL_SWITCH_IP = " "
      
      





「localhost」に変更します。



 LOCAL_SWITCH_IP = 'localhost'
      
      





変更を保存してcdr-statsを実行します。



 sudo service cdr-stats-celeryd start
      
      





your-server-ip-or-name :8008



そして、すべてが機能し始めます。



もう一つの重要なポイント! 複数のテレフォニープロバイダーがある場合、またはローカルまたは国際回線へのアクセスに非標準のプレフィックスを使用する場合は、cdr-statsでそれらを指定する必要があります。 これはここで行われます:



 /usr/share/cdr-stats/setting_local.py
      
      





行:

PREFIX_TO_IGNORE = "+、00,000,0000,00,000,011,55555,99999"


現在の値を変更せず、そのままにして、行末に追加します

たとえば、次のように:



 PREFIX_TO_IGNORE = "+,00,000,0000,00000,011,55555,99999,8,810,9,910"
      
      





ファイルへの変更を保存し、cdr-statsを再起動します。



 sudo service cdr-stats-celeryd restart
      
      





対応するメニュー項目にアクセスするとわかるように、CDR-STATSはすべてのコールを正しく処理します。



All Articles