スマホdeひかり電話

tailscale

いつの間にかスマホdeひかり電話が宅外から繋がらない事に気づいて調べたところ、2024年に導入したFlint (GL-AX1800)のtailscaleが無効になっていた。

とりあえずdownload center:GL-AX1800 Flintから改めて最新のopenwrt-ax1800-4.6.8-1017-1729176012をダウンロードしてアップデートしてみたが、コントロールパネルでApplication→Tailscaleを有効にしたあと「適用」ボタンをクリックすると、

Tailscaleサービスは有効になっていますが、デバイスはまだバインドされていません。“The Device Bind Link"を使用して有効、このデバイスをTailscaleアカウントにバインドしてください。

とガイダンスされるものの、当該箇所をクリックしてもTailscaleにデバイスを追加するためのリンクが表示されない。

出荷時初期化など含めて試行錯誤してみたが、最終的には手動でTailscaleの[Add device]->[Linux server]から「Generate install script」。“tskey-auth-“で始まる62文字のauthentication keyを取得し、sshしたFlintから

tailscale up –auth-key=tskey-auth-ABCDEFG –accept-dns=false –accept-routes –advertise-routes=192.168.8.0/24,192.168.1.1/32

と打ち込んで起動できたっぽい。

初期化でOpenVPNなどで外部へのVPN接続ができなくなった場合は、GREを通す通称VPNパススルー設定が必要なので、「kmod-nf-nathelper-extra」を使う。(PPTP NAT Traversal)

root@GL-AX1800:~# opkg install kmod-nf-nathelper-extra
Installing kmod-nf-nathelper-extra (4.4.60-1) to root...
Downloading https://fw.gl-inet.com/releases/v21.02-SNAPSHOT/kmod-4.2.1/arm_cortex-a7/ip60xx/kmod-nf-nathelper-extra_4.4.60-1_arm_cortex-a7.ipk
Collected errors:
 * check_data_file_clashes: Package kmod-nf-nathelper-extra wants to install file /lib/modules/4.4.60/nf_conntrack_sip.ko
        But that file is already provided by package  * kmod-nf-conntrack-sip
 * check_data_file_clashes: Package kmod-nf-nathelper-extra wants to install file /lib/modules/4.4.60/nf_nat_sip.ko
        But that file is already provided by package  * kmod-nf-nat-sip
 * opkg_install_cmd: Cannot install package kmod-nf-nathelper-extra.

調べたところSIPヘルパー(nf_conntrack_sipとnf_nat_sip)を統合した経緯から競合エラーが出るようになったらしいので、nf_conntrack_sipとnf_nat_sipをremoveしてもう一度nf-nathelper-extraをinstall。

tailscale

昨日ポチったFlint 2 (GL-MT6000)

Best VPN Service for Secure Networks

Tailscaleより

Parental Controlのドキュメントを読んでたらFlint (GL-AX1800)にも対応している事に気づいた。

コントロールパネルのオンラインアップデートでは最新版になっていたので気づかなかったが、download center:GL-AX1800 Flintを確認すると最新Firmwareは4.5になっていたので手動でopenwrt-ax1800-4.5.16-0321-1711030388へのアップデートに成功。

VPNもWireGuardに加えてTailscaleまで追加されている事に気づいたので、試してみることに。

GL-AX1800のコントロールパネルでApplication→Tailscaleを有効にしたあと、Tailscaleにgoogleアカウントでサインアップ。iPhoneにもTailscaleアプリをインストールしてgoogleアカウントでサインイン。

Tailscale Admin ConsoleでGL-AX1800とiPhoneが"Connected"になっているのを確認し、GL-AX1800の[Edit route settings…]でSubnet routesにHomeGateway向けの192.168.1.0/24を追加したら、あっさりスマホdeひかり電話も開通した。

昨日ポチったFlint 2 (GL-MT6000)、要らなかったのかなぁw。

参照

GL.iNet https://www.gl-inet.com/

takiponeさんの記事一覧 | Zenn https://zenn.dev/takipone/

INTERNET Watch https://internet.watch.impress.co.jp/

Bark — Parental Controls for Families https://www.bark.us/

スマホdeひかり電話

ひかり電話が開通し、着信通知をメールで飛ばそう大作戦も一歩前進

スマホdeひかり電話

スマホdeひかり電話

続いて着信トリガーになるSIPメッセージを捕捉しようと思ったのだが、何も飛んでいない気配。そうか、まずはUAが内線電話としてREGISTERしておかないと何も始まらないか。というわけで、haswell改めIvyasteriskを仕込んでいたのだが、スマホdeひかり電話を使えば通知ではなくスマホで発着信までできる事に気づいた。

なわけで、早速スマホdeひかり電話AGEphoneをiPhoneにインストール。どうやら接続SIPサーバーのIPは192.168.1.1で決め打ちっぽいので、PCを楽天ひかり回線側HomaGateway(RT-500MI)のLANポートに直結し、内線電話にiPhoneのMACアドレスを登録。

2022年に導入したGL.iNet GL-AX1800(Flint)のWAN側を192.168.1.254に設定し、HomaGateway(RT-500MI)にWiFi方向の戻り経路を書くことでWiFi経由でも発着信できた。

あとは宅外からも繋がるようにFlintでWireGuard VPNを有効にしてあげれば万事OK。と思ったが、ISP側でNATするDS-LiteなクロスパスではVPNにポートフォワーディングできない事がわかって、詰んだ。

しかし、V6プラスのIPv6側を使って Wireguard VPN を接続するを読んで「なんだ、IPv6でVPNすればいいんじゃん」…と思い直してWireGuardには繋げられたものの、そこからHomaGatewayとの接続ができない。4.1にファームアップしたりFirewallをゴニョゴニョしてたら「IPv6 DNS接続」や「外部VPNへの接続」がうまくいかなくなってしまい、また行き詰まった…orz

試しに着信トリガーになるSIPメッセージを捕獲してみたところ、INVITEに発信者番号の070XXXXYYYYが入っていることが確認できたので、スマホ対応とは別にDBに着信履歴を残すとかいうのはこちらでできそうだ。

09:02:13.624828 IP (tos 0xb8, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 872)
    192.168.1.1.5060 > 192.168.1.254.5060: [udp sum ok] SIP, length: 844
        INVITE sip:zZpqbphIjBE0KkO@192.168.1.254 SIP/2.0
        v: SIP/2.0/UDP 192.168.1.1:5060;branch=z9hG4bK4117543b046ce35d
        Max-Forwards: 67
        Record-Route: <sip:192.168.1.1;lr>
        f: <sip:070XXXXYYYY@ntt-west.ne.jp>;tag=f1cfa88721fb3f1e
        t: <sip:092AAABBBB@ntt-west.ne.jp>
        i: 452c63928b353c1d@192.168.1.1
        CSeq: 30 INVITE
        m: <sip:1dabaddcd7b2190d@192.168.1.1>
        Privacy: none
        k: replaces, 100rel, timer
        Allow: INVITE, CANCEL, ACK, BYE, PRACK, UPDATE, REFER, NOTIFY
        x: 300
        Min-SE: 300
        P-Called-Party-ID: <sip:092AAABBBB@ntt-west.ne.jp>
        P-Asserted-Identity: "070XXXXYYYY"<sip:070XXXXYYYY@ntt-west.ne.jp>,"070XXXXYYYY"<tel:070XXXXYYYY;phone-context=ntt-west.ne.jp>
        c: application/sdp
        l: 156
        v=0
        o=- 1714089732 1714089732 IN IP4 192.168.1.1
        s=-
        c=IN IP4 192.168.1.1
        t=0 0
        m=audio 49186 RTP/AVP 0
        a=rtpmap:0 PCMU/8000
        a=ptime:20
        a=sendrecv

参照

NTT西日本 https://flets-w.com/