Asterisk

―テレフォニーの未来

[cover photo]
TOPICS
System/Network , PHP
発行年月日
PRINT LENGTH
452
ISBN
4-87311-289-3
原書
Asterisk: The Future of Telephony
FORMAT
PDF
Ebook
4,180円
Ebookを購入する

本書は、電話システムを変革する技術として注目されているオープンソースのPBX(構内電話交換機)ソフトウエアAsteriskの解説書です。インストールと初期設定、Asteriskの心臓部であるダイヤルプランなどAsteriskを利用するための基礎を詳しく解説。またPerlやPHPなどを使ってAsteriskのPBXに機能を追加 するAsteriskゲートウェイインタフェース、テキスト読み上げエンジンFestival、DUNDiの活用など、上級者のためのトピックも網羅。巻末には実用的なリファレンス情報も収録しています。大きな可能性を秘めるAsterisk入門書の決定版です。

目次

まえがき	 v
はじめに	 ix

1章 電話革命
	1.1 VoIP:伝統的な電話とネットワーク電話のギャップの橋渡し
		1.1.1 Zapataテレフォニープロジェクト
	1.2 大きな変化には柔軟な技術が必要
	1.3 Asterisk:それはハッカーのPBX 
	1.4 Asterisk:それはプロフェッショナルのPBX 
	1.5 Asteriskのコミュニティ
		1.5.1 Asteriskのメーリングリスト
		1.5.2 AsteriskのWiki 
		1.5.3 IRCチャンネル
		1.5.4 Asteriskの文書化プロジェクト
	1.6 ビジネスケース
	1.7 本書について

2章 Asteriskのためのシステムを準備する
	2.1 サーバハードウェアの選択
		2.1.1 パフォーマンスの問題
		2.1.2 プロセッサを選ぶ
		2.1.3 マザーボードを選ぶ
		2.1.4 電源についての要求事項
	2.2 環境
		2.2.1 電源調整および無停電電源(UPS)
		2.2.2 接地
		2.2.3 電源回路
		2.2.4 機械室
	2.3 電話のハードウェア
		2.3.1 PSTNに接続する
		2.3.2 パケットベースの電話網だけに接続する
	2.4 電話機の種別
		2.4.1 物理的な電話機
		2.4.2 ソフトフォン
		2.4.3 電話アダプタ
		2.4.4 コミュニケーション端末
	2.5 Linuxについての考察
	2.6 結論

3章 Asteriskのインストール
	3.1 どのパッケージが必要でしょう
		3.1.1 パッケージの要求条件
	3.2 ソースコードを取得する
		3.2.1 FTPでAsteriskのソースコードを取得する
		3.2.2 ソースコードを解凍する
		3.2.3 CVSからAsteriskのソースコードを取得する
	3.3 Zaptelをコンパイルする
		3.3.1 ztdummyドライバ
		3.3.2 Zapataテレフォニードライバ
		3.3.3 ztcfgとzttoolを使う
		3.3.4 zconfig.hファイル
		3.3.5 Zaptelを設定するためにモジュールパラメータを渡す
	3.4 libpriをコンパイルする
	3.5 Asteriskをコンパイルする
		3.5.1 標準的インストール
		3.5.2 makeの引数
		3.5.3 Makefileを編集する
		3.5.4 コンパイル済みのバイナリを使う
	3.6 追加のプロンプトをインストールする
	3.7 ソースコードを更新する
	3.8 コンパイル時の共通課題
		3.8.1 Asterisk 
		3.8.2 Zaptel 
	3.9 Zaptelのモジュールをロードする
		3.9.1 udevdを実行中のシステム
		3.9.2 Zaptelをロードする
	3.10 libpriをロードする
	3.11 Asteriskをロードする
		3.11.1 CLIコマンド
		3.11.2 Red Hat式の初期化スクリプト
		3.11.3 safe_asteriskスクリプト
	3.12 Asteriskが使うディレクトリ
		3.12.1 /etc/asterisk/ 
		3.12.2 /usr/lib/asterisk/modules/ 
		3.12.3 /var/lib/asterisk/ 
		3.12.4 /var/spool/asterisk/ 
		3.12.5 /var/run/ 
		3.12.6 /var/log/asterisk/ 
		3.12.7 /var/log/asterisk/cdr-csv 
	3.13 結論

4章 Asteriskの初期設定
	4.1 本当に必要なものは何でしょう
	4.2 インタフェース設定ファイルを使う
	4.3 FXOチャネルとFXSチャネル
		4.3.1 TDM400PのFXOポートとFXSポートを決める
	4.4 FXOチャネルを設定する
		4.4.1 Zaptelハードウェアの設定
		4.4.2 Zapataハードウェアの設定
		4.4.3 ダイヤルプランの設定
		4.4.4 ダイヤルする
	4.5 FXSチャネルの設定
		4.5.1 Zaptelハードウェアの設定
		4.5.2 Zapataハードウェアの設定
		4.5.3 ダイヤルプランの設定	
	4.6 SIPの設定
		4.6.1 SIPとRTP 
		4.6.2 SIPの設定
		4.6.3 クライアントの設定
		4.6.4 ダイヤルプランの設定
	4.7 IAX着信コネクションの設定
		4.7.1 iax.confの設定
		4.7.2 ダイヤルプランの設定
	4.8 IAX発信コネクションの設定
		4.8.1 iax.confの設定
		4.8.2 ダイヤルプランの設定
	4.9 デバッグする
		4.9.1 コンソールに接続する
		4.9.2 冗長(verbosity)を有効にしてデバッグする
	4.10 結論

5章 ダイヤルプランの基礎
	5.1 ダイヤルプランの構文
		5.1.1 コンテクスト
		5.1.2 エクステンション
		5.1.3 プライオリティ
		5.1.4 アプリケーション
	5.2 シンプルなダイヤルプラン
		5.2.1 エクステンションs 
		5.2.2 Answer( )、Playback( )、Hangup( )アプリケーション
		5.2.3 最初のダイヤルプラン
	5.3 ダイヤルプランにロジックを加える
		5.3.1 Background( )とGoto( )アプリケーション
		5.3.2 無効なエントリとタイムアウトを処理する
		5.3.3 Dial( )アプリケーションを使う
		5.3.4 内線通話のコンテクストを追加する
		5.3.5 変数を使う
		5.3.6 パターンマッチング
		5.3.7 アウトバウンドのダイヤルを有効にする
		5.3.8 インクルード
	5.4 結論

6章 ダイヤルプランのコンセプトの続き
	6.1 式と変数の取扱い
		6.1.1 基本的な式
		6.1.2 演算子
	6.2 ダイヤルプラン関数
		6.2.1 構文
		6.2.2 ダイヤルプラン関数の例
	6.3 条件分岐
		6.3.1 GotoIf( )アプリケーション
		6.3.2 GotoIfTime( )による時間制条件分岐
	6.4 ボイスメール
		6.4.1 メールボックスを作る
		6.4.2 ダイヤルプランにメールボックスを加える
		6.4.3 ボイスメールにアクセスする
		6.4.4 名前でダイヤルディレクトリを作る
	6.5 マクロ
		6.5.1 マクロを定義する
		6.5.2 ダイヤルプランからマクロを呼び出す
		6.5.3 マクロの中で引数を使う
	6.6 Asteriskデータベース(AstDB)を使う
		6.6.1 データをAstDBに格納する
		6.6.2 AstDBからデータを取り出す
		6.6.3 AstDBからデータを削除する
		6.6.4 ダイヤルプランでAstDBを使う
	6.7 便利なAsterisk機能
		6.7.1 Zapateller( ) 
		6.7.2 コールパーキング
		6.7.3 MeetMe( )で会議する
	6.8 結論

7章 電話を理解する
	7.1 アナログ電話
		7.1.1 アナログ電話の部品
	7.2 デジタル電話
		7.2.1 PCM 
	7.3 デジタル回線交換電話網
		7.3.1 回線種別
		7.3.2 デジタルシグナリングプロトコル
	7.4 パケット交換網
	7.5 結論

8章 VoIPプロトコル
	8.1 VoIPプロトコルの必要性
	8.2 各種VoIPプロトコル
		8.2.1 IAX(“Inter-Asterisk eXchange”プロトコル)
		8.2.2 SIP 
		8.2.3 H.323 
		8.2.4 MGCP 
		8.2.5 独自仕様プロトコル
	8.3 コーデック
	8.4 QoS 
		8.4.1 TCP、UDP、SCTP 
		8.4.2 DiffServ 
		8.4.3 ギャランティードサービス
		8.4.4 ベストエフォート
	8.5 エコー
		8.5.1 エコーはなぜ起こる
		8.5.2 エコーを管理する
	8.6 AsteriskとVoIP 
		8.6.1 ユーザとピアとフレンド――おやおや! 
		8.6.2 register命令文
	8.7 結論

9章 Asteriskゲートウェイインタフェース(AGI)
	9.1 AGI通信の基礎
		9.1.1 STDIN、STDOUT、STDERRとは何か
		9.1.2 AGIコミュニケーションの標準パターン
		9.1.3 ダイヤルプランからAGIスクリプトを呼び出す
	9.2 PerlでAGIスクリプトを書く
		9.2.1 PerlのAGIライブラリ
	9.3 PHPでAGIスクリプトを作る	
		9.3.1 PHPのAGIライブラリ
	9.4 AGIスクリプトをPythonで書く
		9.4.1 PythonのAGIライブラリ
	9.5 AGIをデバッグする
		9.5.1 OSからデバッグする
		9.5.2 Asteriskのagi debugコマンドを使う
	9.6 結論

10章 上級者のためのAsterisk 
	10.1 Festival 
		10.1.1 Festivalをセットアップし、Asterisk向けの準備をする
		10.1.2 Festival向けにAsteriskを設定する
		10.1.3 Festivalサーバを起動する
		10.1.4 ダイヤルプランからFestivalを呼び出す
	10.2 呼情報
		10.2.1 CDRの課題
	10.3 システムのプロンプトをカスタマイズする
	10.4 マネージャ
		10.4.1 マネージャコマンド
		10.4.2 FOP 
	10.5 Callファイル
	10.6 DUNDi 
		10.6.1 DUNDiはどう動作する? 
		10.6.2 DUNDiを使うためにAsteriskを設定する
	10.7 結論

11章 Asterisk:テレフォニーの未来
	11.1 伝統的テレフォニーの問題点
		11.1.1 クローズドな考え方
		11.1.2 限定的な標準準拠
		11.1.3 遅いリリースサイクル
		11.1.4 過去を手放して未来を取り入れることを拒否する
	11.2 パラダイムシフト
	11.3 オープンソーステレフォニーの将来性
		11.3.1 Astariskがかく「かゆいところ」
		11.3.2 オープンなアーキテクチャ
		11.3.3 標準準拠
		11.3.4 新しい技術への光速応答
		11.3.5 情熱的なコミュニティ
		11.3.6 現在可能ないくつかのこと
	11.4 Asteriskの未来
		11.4.1 音声合成
		11.4.2 高音質音声
		11.4.3 動画
		11.4.4 無線
		11.4.5 統合メッセージング	
		11.4.6 相互接続
		11.4.7 課題
		11.4.8 チャンス

付録A VoIPチャネル
	A.1 IAX 
	A.1.1 IAX全般の設定
	A.1.2 register命令文
	A.1.3 IAXチャネル定義
	A.2 SIP 
	A.2.1 SIP全般のパラメータ
	A.2.2 SIPチャネル定義

付録B アプリケーションのリファレンス

付録C AGIコマンドリファレンス

付録D 設定ファイル
	D.1 modules.conf 
		D.1.1 リソース
		D.1.2 アプリケーション
		D.1.3 データベース蓄積の呼情報
		D.1.4 チャネル
		D.1.5 コーデック
		D.1.6 フォーマット
		D.1.7 PBXモジュール
		D.1.8 スタンドアローン関数
	D.2 adsi.conf 
	D.3 adtranvofr.conf 
	D.4 agents.conf 
	D.5 alarmreceiver.conf 
	D.6 alsa.conf 
	D.7 asterisk.conf 
	D.8 cdr.conf 
	D.9 cdr_manager.conf 
	D.10 cdr_odbc.conf 
	D.11 cdr_pgsql.conf 
	D.12 cdr_tds.conf 
	D.13 codecs.conf 
	D.14 dnsmgr.conf 
	D.15 dundi.conf 
	D.16 enum.conf 
	D.17 extconfig.conf 
	D.18 extensions.conf 
	D.19 features.conf 
	D.20 festival.conf 
	D.21 iax.conf 
	D.22 iaxprov.conf 
	D.23 indications.conf 
	D.24 logger.conf 
	D.24.1 [general] 
	D.24.2 [logfiles] 
	D.25 manager.conf 
	D.26 meetme.conf 
	D.27 mgcp.conf 
	D.28 modem.conf 
	D.29 musiconhold.conf 
	D.30 osp.conf 
	D.31 oss.conf 
	D.32 phone.conf 
	D.33 privacy.conf 
	D.34 queues.conf 
	D.35 res_odbc.conf 
	D.36 rpt.conf 
	D.37 rtp.conf 
	D.38 sip.conf 
	D.39 sip_notify.conf 
	D.40 skinny.conf 
	D.41 voicemail.conf 
	D.41.1 一般的なボイスメールの設定
	D.41.2 ボイスメールゾーン
	D.41.3 ボイスメールのコンテクストとメールボックスを定義する
	D.42 vpb.conf 
	D.43 zapata.conf 
	D.44 zaptel.conf 

付録E Asterisk CLIリファレンス
	E.1 add 
	E.2 agi 
	E.3 database 
	E.4 iax2 
	E.5 indication 
	E.6 logger 
	E.7 meetme 
	E.8 pri 
	E.9 remove 
	E.10 restart 
	E.11 set 
	E.12 show 
	E.13 sip 
	E.14 stop 
	E.15 zap 

付録F 関数と変数
	F.1 ダイヤルプラン関数
	F.2 ダイヤルプラン変数
		F.2.1 チャネル変数の継承
		F.2.2 事前定義変数
		F.2.3 アプリケーション特有変数
		F.2.4 マクロ特有変数
		F.2.5 環境特有変数
		F.2.6 文字列処理関数