お外でひかり電話 第15章 “Weasels’ve eaten our phone system” 非通知対応とブラックリスト
発信者番号非通知でかけてくる人への対応とブラックリストのこと
この二つは全て
/etc/asterisk/extensions.conf
への設定で実現できる。
僕の商売の職種と経験上から言うと、非通知でかけてくる人の仕事が成約となる確率はほとんどありません。
だから非通知の人には
「番号を通知してかけ直してください」
とのメッセージを流してから電話を切ることにする。申し訳ないが。
そして忙しいときにかかってくる営業電話も、しつこい業者はブラックリストに登録してしまう。
この場合は
「混み合っております・・・」
というメッセージを流すことにする。
まずはブラックリストへの登録。
以下のようにしてCLI(Command Line Interface)から設定する。
# asterisk -vvvvvcr
たとえば
電話番号 0987654321
名前 car-sales
を登録したいならば
raspberrypi*CLI>database put blacklist 0987654321 “car-sales”
のように入力してEnterで登録完了だ。
おすすめなのは
raspberrypi*CLI>database put blacklist 0987654321 “098-7654-321 car-sales”
というように、名前と一緒に電話番号も文字列として登録しておくことだ。
誰を登録しているのか確認するときには
raspberrypi*CLI>database show blacklist
で一覧表示できるが、すでに登録していないか二重に登録しないよう確認する時に便利だからだ。
raspberrypi*CLI>quit
でCLIを脱出。
次は番号非通知の件
設定ファイルを変更する。/etc/asterisk/extensions.confだ。nanoで編集しよう。
# nano /etc/asterisk/extensions.conf
結論から。
最下行のこの部分を変更する。
;電話を受けた時の設定
exten => ${MYNUMBER},1,Dial(SIP/201&SIP/202)
exten => ${MYNUMBER},n,Hangup
以下の様に書き換える。
exten => ${MYNUMBER},1,GotoIf($[${CALLERID(num)}=anonymous]?goanonymous)
exten => ${MYNUMBER},n,GotoIf(${BLACKLIST()}?blackblack)
exten => ${MYNUMBER},n,Dial(SIP/201&SIP/202)
exten => ${MYNUMBER},n,Hangup
exten => ${MYNUMBER},n(goanonymous),Answer
exten => ${MYNUMBER},n,Wait(1)
exten => ${MYNUMBER},n,Playback(privacy-unident)
exten => ${MYNUMBER},n,Hangup
exten => ${MYNUMBER},n(blackblack),Answer
exten => ${MYNUMBER},n,Wait(1)
exten => ${MYNUMBER},n,Playback(tt-allbusy)
exten => ${MYNUMBER},n,Busy
exten => ${MYNUMBER},n,Hangup
ポイントは、非通知番号がanonymousである、ということ。
番号だから数値なのだろうと思って
CALLERID(nname)=“anonymous”
とやってたら、かかってくる電話が全て非通知扱いとなり、気がつくまで時間がかかった。
また、メッセージを流す時は
Playback(ファイル名)
とすると良いこともわかった。
ここで使用したのは
privacy-unident(番号を通知して)
tt-allbusy(電話が混み合っている)
です。
おまけ
お遊びとして同じ/etc/asterisk/extensions.confファイルの[default]配下に
exten => 401,1,Answer()
exten => 401,n,Wait(1)
exten => 401,n,Playback(privacy-unident)
exten => 401,n,Wait(1)
exten => 401,n,Playback(tt-somethingwrong)
exten => 401,n,Wait(1)
exten => 401,n,Playback(tt-allbusy)
exten => 401,n,Wait(1)
exten => 401,n,Playback(tt-monkeysintro)
exten => 401,n,Wait(5)
exten => 401,n,Playback(tt-weasels)
exten => 401,n,Hangup
などを追加してみると良い。内線「401」にかけると次々にメッセージを確認できる。
実用的なものから、おふざけまであるよ。
ちなみに
Wait(1)
は1秒待ってから次の動作にいくということ。Wait(5)なら5秒待たせることになる。
その他ファイルは
/var/lib/asterisk/sounds/ja
にいっぱいある。ホント、いっぱいあるからいろいろ変更して自分の耳で聞いてみて。
FreePBXは、このへんの実験・お遊び(もしくはイタズラ)がこんな方法ではできないんだ。
「イタチに持って行かれた」って、なんてアメリカンな発想なんだ?