
電話番号取得する機器を、ナンバーディスプレイアダプタアロハND4から、NVR500にようやく乗り換えました。
ND4ではデバイスファイルから電話番号を読み込みましたが、NVR500では、シスログをPCのrsyslogで受けって、それを自前のPerlスクリプト@Debianで処理しています。
※シスログの受け取りまで自前でやろうとすると、
1)NVR500のシスログポート514番固定の為、514番の為には管理者権限が必要。
2)それで、管理者権限でスクリプトを動かすと、Goole Nest Hubに画像を飛ばす為のPython製コマンドcattが(インストールの仕方が悪いせいか)なぜか上手く動かない。
3)スクリプト内で権限を下げたりなどしても上手く動かず泥沼に…. で、rsyslogにお任せに…
以下、rsyslog設定(fromhost-ipはNVR500のIPアドレス)
$ cat /etc/rsyslog.d/30-nvr500.conf
if ($fromhost-ip == "192.168.*.*") then {
if ( $msg contains "InComing Call" ) then {
action(type="omfile" file="/var/log/nvr500-InComing.log")
} else if ( $msg contains "OutGoing Call" ) then {
action(type="omfile" file="/var/log/nvr500-OutGoing.log")
}
stop
}
ネット情報にあるように、NVR500を電話機の手前に挟むと、電話の鳴り出しが2コール遅れますが許容範囲。Perlスクリプトは素人宜しく、やたらとモジュール化して、
#!/usr/bin/perl
use strict;
use warnings;
use constant { HOME => $ENV{'HOME'}, };
use lib HOME.'/phone5/lib';
use My::Tel;
use My::PC;
PC->set_alsa('PCM');
my $tel = Tel->new('rsyslog');
while ($tel->judge){
$tel->cast;
$tel->mail;
$tel->output;
}
$tel->destroy;
と、やたら短くなっております。Tel->new('aloha')とすれば以前のND4でもOKに。
あと、肝心のNVR500のメリットである受信拒否機能ですが、拒否リストを自前Perlスクリプトで(NVR500に自動ログイン、ログアウトして)追加出来るようにしました。
(※ minicomやstraceコマンドを使って、NVR500とのやり取りを把握しました。NVR500へはsshやtelnetでも接続できますが、背面の9ピンに、シリアル変換ケーブル+クロスケーブルで接続した方が何かと安定。)
今までの履歴リストとネットから拾った迷惑電話番号とを合わせて800件ほど追加。ほぼ登録数に上限は無いと考えても良さそう。
これで、既知の迷惑電話は鳴らなくて済む(無視になる、履歴には残る)ので、ストレスフリーです。ではでは

