kodiful edited this page Feb 22, 2018 · 9 revisions

Kodiアドオン:着信通知クライアント

ひかり電話などのIP電話への着信を通知します。 着信時に、発信元をKodiの通知(Notification)機能を使ってKodi画面上に表示します。 電話帳にない発信元番号はウェブ検索され、検索結果を発信元として通知します。 USB-CEC Adapterと組み合わせれば、着信時にテレビをKodi画面に強制的に切り替えて通知を受けることができます。

外部プログラムのインストール

IP電話ルータ等のSIPサーバと通信するために、事前に pjsua.py をインストールしてください。 以下のページからダウンロードできます。

上記ページの手順にしたがってインストールしてください。 インストール後、アドオン設定(SIP設定)pjsua.py のパスを指定してください。

メール通知、LINE通知の利用について

メール通知を利用する場合は、事前に電子メールクライアントをインストールしてください。 LINE通知を利用する場合は、事前にLINE Notifyハンドラをインストールしてください。

起動時の通知

外部プログラムをインストールして、アドオン設定(SIP設定)を行った後、Kodi本体を再起動してください。IP電話ルータ等のSIPサーバとの通信に問題がなければ、Kodi本体起動後に Registered as SIP client の通知がなされます。

起動成功時の通知

SIPサーバとの通信に問題がある場合は SIP registration failed (nnn) の通知がなされます。カッコ内に表示されるSIPステータスコード nnn を手がかりとして、アドオン設定(SIP設定)、SIPサーバの設定等を確認してください。

起動失敗時の通知

発信元番号検索

発信元番号は以下の順番に検索されます。

  • 電話帳
  • キャッシュ
  • ウェブ

電話帳

番号とこれに対応する名前を電話帳として管理しています。 着信履歴のコンテクストメニューから電話帳を表示できます。 電話帳への登録はアドオン設定(電話帳)をご覧ください。 着信履歴のコンテクストメニューから電話帳へ登録することもできます。

キャッシュ

電話帳にない発信元番号はウェブ検索されますが、その結果はキャッシュに保存され、次に同じ番号から着信があった場合、ウェブ検索することなく保存されている情報を表示します。 キャッシュのクリアはアドオン設定(その他)をご覧ください。

ウェブ

電話帳やキャッシュにない発信元番号はウェブ検索されます。 ウェブ検索は、アドオン設定(その他)で指定する番号検索スクリプトでカスタマイズできますが、番号検索スクリプトを指定しない場合は電話帳ナビ(www.telnavi.jp)で発信元番号が検索されます。 検索結果はキャッシュに保存され、次に同じ番号から着信があった場合、ウェブ検索することなく保存されている情報を表示します。

ウェブ検索にあたっては以下にご注意ください。

発信元番号検索のカスタマイズ

番号検索スクリプトとして、発信元番号の数字列(文字列)から発信者を検索する関数 search をPythonで記述したファイルを customsearch.py として指定してください。 search は発信元番号の数字列(文字列)を引数とし、検索結果文字列(検索結果がない場合は None )を返す関数です。

customsearch.py サンプルソース

import urllib
from bs4 import BeautifulSoup

def search(key):
    try:
        # 番号案内ページのURL
        url = 'https://www.telnavi.jp/phone/%s' % key
        # ページ読み込み
        res = urllib.urlopen(url)
        status = res.getcode()
        if status == 200:
            # タグ抽出
            html = res.read()
            soup = BeautifulSoup(html, 'html.parser')
            name = soup.find('td',{'itemprop':'name'}).get_text().strip()
        else:
            name = None
        res.close()
    except:
        name = None
    return name
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.