
機会の検査
MonAstは、開発者によって、アスタリスクの操作パネルとして機能する監視ツールとして位置付けられています。 BSDライセンスの下で配布されます。 このプロジェクトは、Python(AMIを介してアスタリスクと通信するためのデーモン)、PHP、JS(AJAX)を使用して作成されました。
表示オプション(リアルタイムモード)-以下:
- 複数のサーバーを操作する(サーバーを切り替えることにより)
- アクセス権を持つマルチユーザーモード
- ユーザーとピアのマッピング(SIP、IAX、DAHDI、Khompなど)
- アクティブなチャネルとコールを表示します(チャネル名と発信者IDを使用)
- 会議チャンネル(接続ユーザーを表示)
- 保留中のコール
- キュー(統計、参加者、期待顧客を含む)
操作を実行する可能性から:
- 発信(開始)
- 着信転送
- コールリセット
- コールパーク
- 通話を聞く(スパイコール)
- 会議への参加者の招待
- 会議参加者の削除
- ユーザー(またはピア)を任意のキューのメンバーとして追加する
- メンバーをキューから削除する
- キュー参加者の準備と一時停止
- CLIコマンドの実行
ご覧のように、機能のリストは非常に広範囲です。
設置
私たちが持っている実験的なシステムは、基本的なプログラムとアップデートを備えたクリーンなUbuntu 10.10です。 MonAstは、アスタリスクのあるホストにインストールする必要はありません。 たとえば、ラップトップでローカルにMonAstを使用しています。6台のサーバーすべてをアスタリスクで完全に監視しています。
MonAstのインストールに進む前に、要件を確認してください。
(AMI-Asterisk Manager APIを介して)AsteriskとMonAstの間の交換に使用されるデーモンはPythonで記述されているため、最初に行うことはシステム内での存在を確認することです。
it@ubuntu-test ~ $ python --version Python 2.6.6
このようなものが表示される場合、すべてが正常です。 何らかの理由で存在しない場合は、コマンドを実行します。
it@ubuntu-test ~ $ sudo apt-get update && sudo apt-get install python
先に進みます。
これらはすべてWebインターフェースを介して表示されるため、PHPをサポートするhttpサーバーとphp-pearをインストールする必要があります。 このセットが以前に存在しなかった場合、コマンドを実行します(ナビゲーションと編集を簡単にするためにmcをさらにインストールします)
it@ubuntu-test ~ $ sudo apt-get install apache2 php5 php-pear mc
そして最後に-議論中の製品の依存関係をインストールします。 このリストは私たちにはそれほど大きくありません:
- ツイストPython 10.1以降
- zope.interface 3.6+
- スターピーSVNトランク
- PHP PEARパッケージ:(HTTP_Client)
zope.interfaceパッケージはすでにシステムにありました(すぐに使用できました)。
HTTP_Clientパッケージを配置します。
it@ubuntu-test:/usr/src$ sudo pear install HTTP_Client WARNING: "pear/HTTP_Client" is deprecated in favor of "pear/HTTP_Request2" WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2" WARNING: "pear/Net_URL" is deprecated in favor of "pear/Net_URL2" downloading HTTP_Client-1.2.1.tgz ... Starting to download HTTP_Client-1.2.1.tgz (10,202 bytes) .....done: 10,202 bytes downloading HTTP_Request-1.4.4.tgz ... Starting to download HTTP_Request-1.4.4.tgz (17,109 bytes) ...done: 17,109 bytes downloading Net_URL-1.0.15.tgz ... Starting to download Net_URL-1.0.15.tgz (6,303 bytes) ...done: 6,303 bytes downloading Net_Socket-1.0.10.tgz ... Starting to download Net_Socket-1.0.10.tgz (5,429 bytes) ...done: 5,429 bytes install ok: channel://pear.php.net/Net_URL-1.0.15 install ok: channel://pear.php.net/Net_Socket-1.0.10 install ok: channel://pear.php.net/HTTP_Request-1.4.4 install ok: channel://pear.php.net/HTTP_Client-1.2.1
ご覧のとおり、インストールプロセス中にパッケージが古くなっていると表示され、新しいパッケージのインストールが提案されます。
it@ubuntu-test:/usr/src$ sudo pear install HTTP_Request2
ソースからTwistedおよびStarPyパッケージをインストールします。 しかし、インストール中に、いくつかの依存関係が明らかになりました。これを修正しています(ついでに、スーパーユーザーモードに切り替えます)。
it@ubuntu-test:~$ sudo su root@ubuntu-test:~$ cd /usr/src/ root@ubuntu-test:/usr/src# wget http://pypi.python.org/packages/source/T/Twisted/Twisted-12.0.0.tar.bz2#md5=cf49a8676c21c50faf1b42b528049471 root@ubuntu-test:/usr/src# wget http://downloads.sourceforge.net/project/starpy/starpy/1.0.0a13/starpy-1.0.0a13.tar.gz root@ubuntu-test:/usr/src# tar -xvf Twisted-12.0.0.tar.bz2 root@ubuntu-test:/usr/src# tar -xvf starpy-1.0.0a13.tar.gz root@ubuntu-test:/usr/src# apt-get install build-essential gcc-4.5 libssl-dev python-dev root@ubuntu-test:/usr/src# cd Twisted-12.0.0 root@ubuntu-test:/usr/src/Twisted-12.0.0# python setup.py install
「 Twistedの依存関係の処理が終了== 12.0.0 」という碑文が表示された場合、インストールは成功し、先へ進みます。 エラーが表示された場合、一部のコンポーネントが欠落しています。 リストを確認してください-すべての依存関係がインストールされていますか? どうぞ
root@ubuntu-test:/usr/src/Twisted-12.0.0# cd .. root@ubuntu-test:/usr/src# cd starpy-1.0.0a13 root@ubuntu-test:/usr/src/starpy-1.0.0a13# python setup.py install root@ubuntu-test:/usr/src/starpy-1.0.0a13# cd ..
まあ、機会の主人公。 執筆時点では、現在のバージョンは3.0b4です。
root@ubuntu-test:/usr/src# wget http://downloads.sourceforge.net/project/monast/Monast%20for%20Asterisk%201.4%2C%201.6%20and%201.8/3.0b4/monast-3.0b4.tar.gz root@ubuntu-test:/usr/src# tar -xvf monast-3.0b4.tar.gz root@ubuntu-test:/usr/src# cd monast-3.0b4 root@ubuntu-test:/usr/src/monast-3.0b4# ./install.sh
インストールプロセス中に、スクリプトはパスに関するいくつかの質問をします。 彼が提案したオプションが満足された場合、我々は同意します。 それ以外の場合は、データを処方します。 パスを.phpファイルに変更しました
MonAst HTML path [/var/www/html/monast]: /var/www/asterisk/monast/
インストールが完了したように見える場合があります。 しかし、そこにはありませんでした。 起動スクリプト/etc/init.d/monastは、SuSE、RedHat、Debian、Gentoo、Slackware、FreeBSDシステムにのみインストールされます。 しかし、Ubuntuなどはそうではありません。 したがって、Debianからスクリプトをコピーし、スタートアップに追加します。
root@ubuntu-test:/usr/src/monast-3.0b4# cp contrib/init.d/rc.debian.monast /etc/init.d/monast root@ubuntu-test:/usr/src/monast-3.0b4# chmod 755 /etc/init.d/monast root@ubuntu-test:/usr/src/monast-3.0b4# update-rc.d monast defaults 91 60
これでインストールは終了です。 設定に移動できます。
カスタマイズ
まず、sabzheソフトウェアが正常に接続して情報を交換できるように、アスタリスク自体を構成する必要があります。 アスタリスクのあるサーバーで、パス/ etc / asterisk /に移動し、manager.confファイルを編集します。 複数のサーバーがある場合、必要なサーバーに対して同様の修正を行います。
root@asterisk ~ $ mcedit /etc/asterisk/manager.conf
; ; AMI - The Asterisk Manager Interface ; [general] enabled = yes ; AMI port = 5038 ; , MonAst bindaddr = 0.0.0.0 ; displayconnects = yes ; Asterisk webenabled = no ; Asterisk static_http allowmultiplelogin = yes ; . timestampevents = yes ; ; debug = on ; AMI [monast_user] secret=qwerty123 ; deny=0.0.0.0/0.0.0.0 ; permit=127.0.0.1/255.255.255.0 ; permit=192.168.1.10/255.255.255.0 ; permit=192.168.2.0/255.255.255.0 ; writetimeout=100 ; ; . all, read=system,call,log,verbose,command,agent,user,config,originate,reporting write=system,call,log,verbose,command,agent,user,config,originate,reporting
次に、マネージャーモジュールのアスタリスク構成を再読み込みします。
root@asterisk$ asterisk -rx "manager reload"
これで、アスタリスクのセットアップが完了しました。 MonAst自体の構成に進みます。
パラメーターを含むファイルは、パス/etc/monast.confにあります。 彼と支配。 事前に申し上げます-設定に問題はありませんでした。ファイルに記載されているコメントは、1つまたは別のパラメーターを明確に説明しています。 しかし、例のために、私は私の例のファイルを与えます
root@ubuntu-test:/usr/src/monast-3.0b4# cd /etc/ root@ubuntu-test:/etc# mcedit monast.conf
# Copyright (c) 2008-2011, Diego Aguirre # All rights reserved. ## ## Global Section ## [global] # Bind client connetions on host:port bind_host = 127.0.0.1 ; bind_port = 5039 ; . # Use client autentication on browser auth_required = true ; ## =================================== ## ## Servers Definitions ## [server: Server1] ; hostname = 192.168.1.1 hostport = 5038 username = monast_user password = qwerty123 # Default user context default_context = default # Context to use in transfer calls transfer_context = default # Context and prefix for meetme meetme_context = default meetme_prefix = [server: Server2] ; hostname = 192.168.2.1 hostport = 5038 username = monast_user password = qwerty123 # Default user context default_context = default # Context to use in transfer calls transfer_context = default # Context and prefix for meetme meetme_context = default meetme_prefix = ## =================================== ## ## Peers Definitions ## [peers] # sort peers (options: channel, callerid) sortby = callerid # default show/hide default = show # hide peer when default = show ;<Server Name>/SIP/user-1 = hide # show peer when default = hide ;<Server Name>/SIP/user-2 = show # always show peer. ;<Server Name>/SIP/user-3 = force # force CallerID (only in forced mode) ;<Server Name>/SIP/user-4 = force,Diego Aguirre <5555> # Create peer groups ;<Server Name>/@group/Group 1 = SIP/user-1,SIP/user-2 ;<Server Name>/@group/Group 2 = SIP/user-3,SIP/user-4 ## =================================== ## ## Meetmes / Conferences Definitions ## [meetmes] # default show/hide default = hide # hide meetme when default = show ;<Server Name>/1234 = hide # show meetme when default = hide ;<Server Name>/1234 = show # always show meetme ;<Server Name>/1234 = force ## =================================== ## ## Queues Definitions ## [queues] # defualt show/hide default = hide # show queue queue01 ;<Server Name>/queue01 = show # show queue queue02 with display name Support ;<Server Name>/queue02 = show,Support # hide queue queue03 ;<Server Name>/queue03 = hide # Map Member name ;<Server Name>/@member/SIP/user-1 = Diego Aguirre <5555> ## =================================== ## Define users and roles to use on auth_required is set to true ## roles must be: ## originate : user can originate, transfer, park and drop calls ## agent : user cans add, remove, pause and unpause members on queues ## command : user can execute asterisk cli commands ## spy : user can start a spy [user: admin] ; - secret = SuperPuperDruper roles = originate,queue,command,spy servers = ALL [user: manager] ; () secret = password roles = originate servers = ALL [user: server1] ; () secret = 12345 roles = originate servers = Server1 [user: server2] ; () secret = 54321 roles = originate,command servers = Server2
変更を保存し、デーモンを再起動します。
root@ubuntu-test:/etc# /etc/init.d/monast restart
それだけです 接続して確認できます。 ブラウザーを開き、アドレスバーに移動します。http:// localhost / asterisk / monast /
「 auth_required = true 」を設定した場合、ユーザー名、パスワードを入力し、作業ツールをお楽しみください:)

重要なお知らせ。 「認証なし」モードでは、MonAst操作パネルで働くすべての人が完全な権限を持ちます。 「スーパーユーザー」です。 そして、私たちが知っているように、「不適切な手に与えられた武器は多くの害を及ぼす可能性があります。」 注意してください。
また、 /var/www/asterisk/monast/lib/config.phpファイルには、monast.pyデーモンが動作するアドレスとポートのパラメーター、 デバッグとcliタブを表示するためのパラメーター、およびそれほど重要ではないパラメーターがあります。
機能の概要
次に、このソフトウェア製品の機能について説明します。
Webインターフェースに入った後、いくつかのタブが表示されます。 より正確には:
- 混合パネル-ほぼすべてのセクションが同時に表示されるタブ。 便利なのは、必要なものだけを表示でき、切り替えずに必要な情報を1か所で見ることができることにあります。
- ピア/ユーザー-アクセス可能なピアとユーザーを表示および管理します。
- ミートミールーム-会議の表示と管理
- チャンネル/通話-アクティブな通話と発生したチャンネルを表示および管理します。
- パークされたコール-パークされたコールの表示と管理
- キュー-通話キューの表示と管理
- アスタリスクCLI-アスタリスクコマンドライン。 ユーザーがコンソールでコマンドを実行する権限を持っている場合、ここで「コアショーバージョン」に似たものを入力できます。
可能性を理解することは難しくありません。おそらく、実行して利用可能な機能を試してみるとさらに良くなるので、それが何をどのように機能するかを明確に理解できます。 しかし、私はまだいくつかの興味深いものについて説明します:)
発信(発信) 機能の名前から明らかです-内部加入者を何らかの番号で接続できます(その番号がダイヤルプランで処理できる場合)。 この機能を実行するには、目的のアカウントを右クリック(以降PCMと呼びます)して、適切なアイテムを選択する必要があります。 表示されるウィンドウで、目的の番号を入力します。そして、電話が選択された人から鳴っています。電話を取り、アスタリスクはそれを表示されている番号に接続します。 また、マウスを使用して1つのアカウントを別のアカウントにドラッグし、同意してからアカウント間の接続を開始できます。
ミートミールーム(会議室) このセクションに移動すると、すでに作成されている会議を管理したり、新しい会議を作成してそこに特定の参加者を招待したりできます。 会議を作成するには、適切なセクションに移動し、「 動的ミートミーを作成 」をクリックして、ウィンドウに必要な情報を入力します。 「OK」をクリックしました-プロセスが行きました:)
スパイ(電話を聞く) 。 彼女は何をしているの? あなたが理解できる名前から-選択した会話に接続し、音声ストリームを聞くことが可能になります。 この機能は、コールセンターでエージェントの監視と検証に使用する場合に役立ちます。 同時に、会話中、対話者は聞き取りの事実を疑うことさえしません。 少なくとも私は、この機能をテストするときに、信号や通知をまったく聞きませんでした。 パネルユーザーが聞く権利を持つためには、彼のアクセス権のロールフィールドにスパイがいることが必要です。 したがって、この機能の使用を意図的に制限するには、認証を有効にしてパネルにアクセスし、信頼できるユーザーのみに使用する権限を付与します。 部長、たとえば:)
おわりに
MonAstは、同様の機能(FOP、リンクなど)を備えた代替プロジェクトのように、明らかに存在し、それに応じてワークフローで使用する権利を持っています。
使いやすさ、インストールと構成の比較的容易さ、複数のサーバーの1か所からの監視-ほとんどすべての場合、これで十分です。
参照資料
- プロジェクトの公式サイト: http : //monast.sourceforge.net/
- Python Twistedプロジェクトページ: http : //twistedmatrix.com
- Starpy for Twisted Projectページ: http ://sourceforge.net/projects/starpy/
UPD:いくつかの迷惑なテキストエラーを修正しました。