最近Asteriskばっかりいじっているので、今日はIVR(自動音声案内)を作成するにはどうしたらいいか、というのをやってみたいと思います。
なお、http://voip-info.jpを参考にしました。
{extensions.conf} [mainmenu] exten => s,1,SetVar(CNT=1) exten => s,2,Ringing exten => s,3,Wait,1 exten => s,4,Answer exten => s,5,Wait,1 exten => s,6,Background(vm-enter-num-to-call) exten => s,7,WaitExten(10) exten => s,8,GotoIf($[${CNT} >= 3]?11:9) exten => s,9,SetVar(CNT=$[${CNT} + 1]) exten => s,10,Goto(s,6) exten => s,11,playback(tt-monkeysintro) exten => s,12,Hangup exten => s,13,Congestion include => inner exten => i,1,Wait(1) exten => i,2,GotoIf($[${CNT} >= 3]?6:3) exten => i,3,SetVar(CNT=$[${CNT} + 1]) exten => i,4,Playback(pbx-invalid) exten => i,5,Goto(s,7) exten => i,6,playback(tt-monkeysintro) exten => i,7.Hangup exten => i,8,Congestion
外線から来た電話を上記のs,1に飛ばせばメニューとして機能します。
ひかり電話と050番号をまとめるページの通りにあるextensions.confに入れるならば、以下のような感じ。
[fromiptel] exten => ${IPTEL},1,Goto(mainmenu,s,1)
こうすることで、050番号にかかってきた電話はIVRに接続され「内線番号を入力して下さい。」といった案内を流します。
さらに、内線番号を間違えたり、指定した時間内に内線番号の入力がない、といったことが3回あると、回線が自動的に切られます。
(CNTをカウンタ変数として利用し、3以上になったら切断処理に入ります。)