Asteriskで内線電話を構築

Asteriskで内線電話を構築するのは比較的簡単です。ユーザを作成し内線番号がダイアルされた時の処理をextensions.confに記述すれば良いだけです。まず以下のようにユーザを2つ追加します。これで6000番と6001番の内線番号が使用可能になります。Asteriskのインストールを参照して適当なクライアントPCを登録してください。

vi /etc/asterisk/users.conf

#以下を追加
[6000]
type=friend
username=6000
secret=1234
canreinvite=no
host=dynamic

[6001]
type=friend
username=6001
secret=1234
canreinvite=no
host=dynamic

次にそれぞれの番号がダイアルされた時の処理をextension.confに記述します。

vi /etc/asterisk/extensions.conf

#[default]の下に以下を追加 
[default] 
exten = 6000,1,Dial(SIP/6000) 
exten = 6000,n,HangUp 
exten = 6001,1,Dial(SIP/6001) 
exten = 6001,n,HangUp

これで2つの番号で内線を利用できるようになるでしょう。必ずdefaultコンテキスト([default])の下に記述してください。デフォルトではdefaultコンテキストの中に書かれた処理しか実行されません。exten構文についての詳細はExtension道場をご覧ください。実際は以下のように構文を駆使して冗長な書き方を回避します。

exten = _60XX,1,Dial(SIP/${EXTEN},,tT) 
exten = _60XX,n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy) 
exten = _60XX,n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?busy) 
exten = _60XX,n,Hangup 
exten = _60XX,n(busy),Playback(vm-nobodyavail) 
exten = _60XX,n,WaitExten(90)