パソコン鳥のブログ

アクセスカウンタ

zoom RSS Linux でひかり電話にかかってきた電話番号を取得する

<<   作成日時 : 2017/11/09 21:55   >>

ブログ気持玉 0 / トラックバック 3 / コメント 0

ナンバーディスプレイに加入していると電話番号を表示できますが、同様にLinux で、ひかり電話にかかってきた電話番号を取得する方法です。

準備


libre、librem、baresip をインストールします。

ソースコードをダウンロードします。


ビルド・インストールします。

tar zxvf re-0.5.5.tar.gz
cd re-0.5.5/
make
sudo make install
sudo ldconfig
cd ..
tar zxvf rem-0.5.2.tar.gz
cd rem-0.5.2/
make
sudo make install
sudo ldconfig
cd ..
tar zxvf baresip-0.5.5.tar.gz
cd baresip-0.5.5/
make
sudo make install


一旦 baresip を実行します。
実行は一般ユーザでOKです。


baresip


ずらずらっと表示がされ、最後に baresip is ready. と表示されます。
この時、赤字でエラーが表示されても、この時点では気にしないでください。

CTRL+C で baresip を終了します。

basresip を実行すると、~/.baresip ディレクトリが出来ます。
以降で、.baresip ディレクトリの中の各ファイルについて設定します。



設定


config ファイル


~/.baresip/config ファイルを編集します。

以下の行で # を入れてコメントにします。


#module stdio.so
#module alsa.so


baresip は、SIPクライアントとして、ダイアルしたりのコマンドをキー入力できます。
今回は電話番号を表示させるだけなので、上記の stdio のコメントアウトで、キー入力を無効化します。

また、alsa はサウンド関連のモジュールですが、特に設定していない状態では baresip 実行時にエラーになります。
電話番号を表示させるだけなので、stdio と同様に無効化します。

その他、syslog.so の行のコメントを外すと、/var/log/syslogにも出力されるようになりますので、必要な場合設定して下さい。


accounts ファイル


ひかり電話ルータの管理画面 http://ntt.setup/ にアクセスします。
ユーザ名「user」とパスワードを入力します。

画面左のメニューで、電話設定−内線設定 を選択します。
ひかり電話ルータによって、違う個所があるかもしれませんが、次のような画面になります。

内線番号 3〜7 のどれかの [編集] を選択します。
ここでは、例として、内線番号3 を選択します。

画像



次のような画面になるので、"内線番号"、"ユーザID"、"パスワード" を確認します。
後でこの値を使用します。

画像



次に、ひかり電話ルータのIPアドレスを調べます。
不明な場合は、コマンドプロンプトで、
nslookup ntt.setup
と実行して下さい。
表示されたものが、ひかり電話ルータのIPアドレスです。

以上確認した内容を、~/.baresip/accounts の末尾に次の書式で追加します。


<sip:X:YYYYY@ZZ.ZZ.ZZ.ZZ>;auth_user=WWWW
X:内線番号
WWW:ユーザID
YYYYY:パスワード
ZZ.ZZ.ZZ.ZZ:ひかり電話ルータのIPアドレス


例えば、次のような感じになります。

<sip:3:7fag3hwf@192.168.1.1>;auth_user=0003




動作確認


baresip を実行します。

何行か表示がされます。
最後に baresip is ready. に続いて、
3@192.168.1.1: {0/UDP/v4} 200 OK () [1 binding]
のような表示がされます。

この状態で、ひかり電話に電話すると、

sip:3@192.168.1.1: Incoming call from: DDDDDDDDDDD sip:DDDDDDDDDDD@192.168.1.1 - (press 'a' to accept)

のように表示されます。
DDDDDDDDDDD の個所には、かかってきた電話番号が表示されます。

この状態で、電話をかけてきた側が切るか、自宅内の電話をとった場合(留守電の応答も含みます)、
sip:DDDDDDDDDDD@192.168.1.1: session closed: Connection reset by peer
のように表示されます。
(DDDDDDDDDDD の個所には、かかってきた電話番号)

最後に CTRL+C で baresip を終了します。



電話番号の取得


電話番号を取得するには、baresip の出力を処理します。
baresip の出力は標準エラー出力なので、標準出力にリダイレクトし、それをパイプで sed で次のように処理すると、かかってきた電話番号が表示されます。


baresip 2>&1| sed -n "s/^.\+from: \(.\+\) sip.\+/\1/gp"


ここまで出来ると、後はさらにパイプで電話番号を渡して処理できますね。



参考


BaresipをUbuntuで使用する – HARD DAY'S NIGHT ブログ
続)ひかり電話の着信お知らせメール - yotayota diary(2016-01-12)

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(3件)

タイトル (本文) ブログ名/日時
ひかり電話の着信お知らせメールみたいなものを RaspberryPi で実現する
ひかり電話への着信をメールで通知する、月額100円の着信お知らせメールというサービスがあります。 これと同じようなものを RaspberryPi で実現します。 (PC上のLinuxでもできます) ...続きを見る
パソコン鳥のブログ
2017/11/14 22:14
RaspberryPiでひかり電話の着信音をmp3で鳴らす
RaspberryPi でひかり電話の着信時に mp3 の着信音を鳴らします。 (PC上のLinuxでもできます) ...続きを見る
パソコン鳥のブログ
2017/11/17 21:49
WindowsでSIPクライアント baresip を使う
WindowsでSIPクライアント baresip を使う方法です。 ひかり電話+ナンバーディスプレイを使っている場合は、baresip の出力内容に、かかってきた番号が含まれています。 これは標準エラー出力なので、それを取得すれば、Windowsで電話番号を取得することができます。 ...続きを見る
パソコン鳥のブログ
2018/02/27 22:35

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Linux でひかり電話にかかってきた電話番号を取得する パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる