本記事は下記の記事の続きで、Asteriskを使って、自宅のひかり電話で着信した電話番号などをLINEに通知する方法を記します。
手早く作ったのであまり凝ってはおらず、「電話主」や「迷惑電話か否か」を把握できる情報ページのURLを通知する程度です。見知らぬ番号の電話に対しては応答前にこのURLを参照すると有益でしょう。また、私はSlack通知のほうがどちらかというと好みですが、LINE通知のほうが家族の受けが良いのでそうしております。
ちなみに、今回の仕掛けの名前は telppo (てるっぽ) としました。語感で決めましたが、あえて言えば「telの一報」を縮めた造語かもしれません。
設置ディレクトリ (例: /home/hoge/telppo/
) に、次のようにファイルを保存します。telppo.py
は、asteriskサービスの実行ユーザ (上記の記事ではasterisk
) で実行できるようにしておく必要があります。
/home/hoge/telppo/
+--- telppo.py
sudo pip3 install phonenumbers
しておきますtelppo.py
を保存してchmod +x
します。line_tokenはLINE Notify https://notify-bot.line.me/ja/ で取得するトークンです#!/usr/bin/env python3
# telppo.py (Ver.20220516)
# usage: telppo.py TELNUMBER
import phonenumbers # pip3 install phonenumbers
import requests
import sys
# LINE
line_token: str = '*******************************************' # LINE Notify https://notify-bot.line.me/ja/ で取得するトークン
line_url: str = 'https://notify-api.line.me/api/notify'
# split telnumber
try:
n: str = phonenumbers.parse(sys.argv[1], 'JP')
n_hyphen: str = phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.NATIONAL)
except phonenumbers.phonenumberutil.NumberParseException:
n_hyphen: str = sys.argv[1]
# make message
url_numberinfo: str = 'https://www.jpnumber.com/numberinfo_{:s}.html#result-globalNavi'.format(n_hyphen.replace('-', '_'))
message: str = '☎ ' + n_hyphen.replace('-', '★') + '\n' + url_numberinfo # 電話番号はLINE画面上でリンクされないように星印で区切る
# post
dic_token: dict = {'Authorization': 'Bearer' + ' ' + line_token}
dic_message: dict = {'message': message}
print(message)
requests.post(line_url, headers=dic_token, data=dic_message)
/etc/asterisk/extensions.conf
を次の内容に編集します[globals]
COMMAND_NOTIFY=/home/hoge/telppo/telppo.py
[from-hikari]
exten => s,1,Ringing()
exten => s,n,System(${COMMAND_NOTIFY} ${CALLERID(num)})
/etc/asterisk/pjsip.conf
は前回の記事の内容と同じにしますsudo systemctl restart asterisk
本記事の続編を書きました。