By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Asterisk サーバーを構成して実行する前に、セキュリティ情報文書の内容を読んで完全に理解することが不可欠です。
詳細については、「セキュリティに関する重要な考慮事項」を参照してください。
アスタリスクは、オープンソースの PBX およびテレフォニー ツールキットです。ある意味、これは、下部にあるインターネットと電話チャネルと、上部にあるインターネットと電話アプリケーションの間のミドルウェアです。ただし、Asterisk はインターネット テレフォニーだけでなく、より多くのテレフォニー インターフェイスをサポートしています。アスタリスクは、従来の PSTN 電話も同様に大量にサポートしています。
プロジェクト自体の詳細については、Asterisk のホームページと公式ドキュメントをご覧ください。さらに、Asterisk コミュニティによってまとめられた多くの情報が voip-info.org で見つかります。
オライリー社からクリエイティブ コモンズ ライセンスに基づいて出版されているアスタリスクに関する本があります。これは書店で入手できるほか、asteriskdocs.org Web サイトからダウンロード可能なバージョンでも入手できます。
アスタリスク オープン ソース PBX は、主に GNU/Linux オペレーティング システム上で開発およびテストされており、すべての主要な GNU/Linux ディストリビューションでサポートされています。
Asterisk も「移植」されており、Sun Solaris、Apple の Mac OS X、Cygwin、BSD バリアントなど、他のオペレーティング システムでも適切に動作すると報告されています。
まず、Asterisk をインストールして実行するために、サポートされているハードウェアがあることを確認してください (ただし、サウンド カードも含め、特別なハードウェアは必要ないことに注意してください)。
サポートされているテレフォニー ハードウェアには次のものが含まれます。
以前のバージョンの Asterisk から更新する場合は、ソース ディレクトリにある UPGRADE.txt ファイルを必ず読んでください。下位互換性を維持するために可能な限りの努力を払っていますが、いくつかのファイルと構成オプションを変更する必要があります。
使用する新しい機能を見つけるには、ソース コード配布の configs ディレクトリにある設定例を確認してください。このバージョンの Asterisk の新機能のリストについては、CHANGES ファイルを参照してください。
システムに互換性のあるコンパイラと開発ライブラリが含まれていることを確認してください。アスタリスクには、GNU Compiler Collection (GCC) バージョン 4.1 以降、または C99 仕様および一部の gcc 言語拡張機能をサポートするコンパイラーが必要です。さらに、システムには、利用可能な C ライブラリ ヘッダー、および ncurses のヘッダーとライブラリが必要です。
追加の依存関係を持つモジュールが多数あります。どのライブラリが検索されているかを確認するには、 ./configure --help
を参照するか、 make menuselect
を実行して特定のモジュールの依存関係を表示します。
多くのディストリビューションでは、これらの依存関係は、「glibc-devel」、「ncurses-devel」、「openssl-devel」、「zlib-devel」などの名前のパッケージによってインストールされます。
それでは、次に進みましょう:
doc ディレクトリにはこれ以外にも多くのドキュメントがあります。 configs ディレクトリ内の例とリファレンス ガイドを含む構成ファイルを確認することもできます。
./configure
を実行します構成スクリプトを実行して、コンパイル中に使用されるシステム依存変数の値を推測します。必要なコンポーネントの一部が不足していることがスクリプトで示されている場合は、 ./contrib/scripts/install_prereq install
実行して必要なコンポーネントをインストールできます。これにより、Asterisk のすべての機能のすべての依存関係がインストールされることに注意してください。スクリプトを実行した後、 ./configure
再実行する必要があります。
make menuselect
を実行します[オプション]これは、コンパイルされるモジュールを選択し、さまざまなオプションのモジュールの依存関係を確認する場合に必要です。
make
実行しますビルドが正常に完了すると仮定します。
make install
実行しますAsterisk を初めて使用する場合は、デモ拡張機能などを備えたサンプル PBX をインストールするとよいでしょう。その場合は、次を実行します。
make samples
実行するこれを行うと、インストールした既存の構成ファイルが上書きされます。
# asterisk -vvvc
Asterisk が初期化されると、大量の冗長メッセージが画面上を飛び交うのがわかります (これが「非常に冗長」モードです)。準備ができたら、「c」を指定すると、次のようなコマンド ライン コンソールが表示されます。
*CLI>
いつでも「core show help」と入力すると、システムのヘルプが表示されます。特定のコマンドのヘルプについては、「core show help」と入力してください。サウンド カードを使用して PBX を起動するには、「コンソール ダイヤル」と入力して PBX にダイヤルします。次に、「コンソール応答」、「コンソール切断」、および「コンソール ダイヤル」を使用して、電話の動作をシミュレートできます。全二重サウンド カードをお持ちでない場合 (アスタリスクは、そのサウンド カードを持っているかどうかを詳細メッセージのどこかで教えてくれます)、正しく動作しないことを覚えておいてください (まだ)。
Unix/Linux コマンド プロンプトで「man asterisk」を実行すると、Asterisk を起動および停止する方法と、Asterisk を起動するためのすべてのコマンド ライン オプションに関する詳細情報が表示されます。
/etc/asterisk
内の設定ファイルを自由に調べてください。Asterisk で何ができるかについて多くの情報が見つかります。
すべての Asterisk 構成ファイルは共通の形式を共有します。コメントは「;」で区切ります。 (もちろん、「#」は DTMF 数字なので、多くの場所で出現する可能性があるため)。設定ファイルは、[] で囲まれた名前のセクションに分かれています。各セクションには通常、「変数 = 値」の形式と「オブジェクト => パラメータ」の形式の 2 種類のステートメントが含まれます。 「=」と「=>」の使用は内部的にはまったく同じであるため、構成ファイルを理解しやすくするためにのみ使用され、実際の解析方法には影響しません。
「variable=value」形式のエントリは、パラメータの値をアスタリスクで設定します。たとえば、chan_dahdi.conf では次のように指定できます。
switchtype=national
接続しているスイッチのタイプが「national」であることを Asterisk に示すため。一般に、パラメータは、その仕様を下回って発生するインスタンス化に適用されます。たとえば、構成ファイルが次のようになっているとします。
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
「national」スイッチタイプはチャネル 1 ~ 4 およびチャネル 10 ~ 12 に適用され、「dms100」スイッチタイプはチャネル 25 ~ 47 に適用されます。
「オブジェクト => パラメータ」は、指定されたパラメータでオブジェクトをインスタンス化します。たとえば、「channel => 25-47」という行は、カードのチャネル 25 ~ 47 のオブジェクトを作成し、上で指定した変数から設定を取得します。
SIP 電話を使用している人は、Asterisk が時間の大幅なジャンプに敏感であることに注意する必要があります。 date(1) (または他の同様のコマンド) を使用してシステム時刻を手動で変更すると、SIP 登録やその他の内部プロセスが失敗する可能性があります。システム自体が正確な時間を維持できない場合は、NTP を使用してシステム クロックを「リアルタイム」に同期させます。 NTP は、時間を飛ばして不連続を引き起こすのではなく、「リアルタイム」に同期するまでシステム クロックを加速または減速することによってシステム クロックの同期を維持するように設計されています。ほとんどの Linux ディストリビューションには、プリコンパイルされたバージョンの NTP が含まれています。定期的に正しいリアルタイムを取得し、システム クロックを手動で設定する一部の時刻同期方法に注意してください。
サマータイムによる見かけの時間の変化は、単なる見かけ上の変化です。 Linux システムでの夏時間の使用は純粋にユーザー インターフェイスの問題であり、Linux カーネルや Asterisk の動作には影響しません。 Linux カーネルのシステム クロックは UTC で動作します。 UTC は夏時間を使用しません。
また、この問題は TDM チャネルのクロッキングとは別のものであり、少なくとも SIP 登録に影響を与えることが知られていることに注意してください。
システムのサイズと構成に応じて、Asterisk は大量のファイル記述子を消費する可能性があります。 UNIX では、ファイル記述子はディスク上のファイル以外にも使用されます。ファイル記述子は、ネットワーク通信 (SIP、IAX2、または H.323 通話など) やハードウェア アクセス (アナログおよびデジタル トランク ハードウェアなど) を処理するためにも使用されます。 Asterisk は、構成情報からボイスメール ストレージに至るまで、さまざまなディスク上のファイルにアクセスします。
ほとんどのシステムでは、Asterisk が一度に開くことができるファイル記述子の数が制限されています。これにより、システムが処理できる同時通話の数が制限される可能性があります。たとえば、制限が 1024 (一般的なデフォルト値) に設定されている場合、Asterisk は約 150 の SIP コールを同時に処理できます。ファイル記述子の数を変更するには、以下のシステムの手順に従ってください。
システムが PAM (Pluggable Authentication Modules) を使用している場合は、 /etc/security/limits.conf
を編集します。次の行をファイルの最後に追加します。
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(お好みに応じて数値を調整してください)。これらの変更を有効にするには、システムの再起動が必要な場合があります。
上記のシステムに特に適合した手順がない場合は、Asterisk を開始するスクリプトにコマンドulimit -n 8192
を追加してみてください。
さまざまな機能に関する詳細なドキュメントについては、doc ディレクトリを参照してください。もう一度、構成オプションに関するドキュメントを含むすべての構成サンプルをお読みください。
最後に、さらに詳しい情報を入手したい場合は、サポート サイトにアクセスし、メーリング リストに参加してください。
成長を続けるアスタリスク ユーザーの世界的なコミュニティへようこそ!
Mark Spencer, and the Asterisk.org development community
アスタリスクは Sangoma Technologies Corporation の商標です