【回顧】NCP-HG100でSMSを受信する

こんにちは
久々&いきなりですが、引っ越ししました
人生何が起こるかわかりませんよ・・・

終の棲家のつもりだったんだけど、まぁまぁガックシな理由で引っ越しました
なにがガックシだったのか、はそのうち書くとして・・・・・・・

楽天モバイルの住所変更はSMS認証が必要

引っ越しで何がめんどくさいって、住所変更作業ですよね
大抵はスマホと本人確認書類があればどーにかなるんだけど

楽モバの住所変更は、楽モバでSMS認証する必要があったんだよね

あたりまえっちゃそうなんだけど
楽モバは相変わらずNCP-HG100にSIM刺して固定回線化して使ってるんですよ

なのでNCP-HG100でSMSを読めるのか?っていう話になる
スマホにSIMを差し替えればできるのはわかるけど面倒くさいし・・・・

わからんことは調べる前にまず誰かに聞いてみる

つーことで、
ChatGPTに聞いたら懇切丁寧かつ完璧な答えが返ってきた
最近なんでもChatGPTに聞いちゃうアホ人類になっているな笑

また引っ越すときのために、やり方をメモっておきましょう
同じことを何度も聞くと、メモ取っとけや!と怒られるのが世の常ですからね

ATコマンドでSMSを読む方法

動作環境は昔作った野良ビルドのOpenWrtです
素の環境(シェルだけ)だとATコマンド送受信がうまくいかなくて
回避策でatinoutってのを追加したと思うんだよね。忘れたけど

で、具体的な手順

# echo 'AT+CMGF=0' | atinout - /dev/ttyUSB2 -

# echo 'AT+CMGL=4' | atinout - /dev/ttyUSB2 -

すると受信したSMSの文字列が表示されるが、そのままじゃ読めない
PDUというフォーマットで、デコードが必要らしい

ChatGPTもそこは心得ていて、デコードするPythonを書いてくれた

だが残念ながらコピペ起動では動かない
pduデコードするライブラリを入れれば動くっぽいんだけど・・・

そもそもSMSが1通だけ読めればそれでいいのである
調べたらオンラインのデコーダーがあったので、PDU文字列をコピペしたら読めた!

Online SMS PDU Decoder
https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/

ここで、認証コードのSMSをオンラインデコーダにぶち込むのってどうなの!?
っていう疑問が生じると思いますが、別にいいんです
認証コードの有効期限は15分間
この間に、わざわざ俺のアカウントを突破しにくるスーパーハカーおらんでしょ?笑