前回povoのSIMをつなげたUX302NCでドコモ回線をつなげたりSMS送受信をします。
ロケットモバイル
今回使用する回線はロケットモバイルのDプラン(docomo)の神プラン(200kbps)回線です。
前回のau系povo2.0は電話をVoLTE、SMSをIMS経由で送信しているのもあり送受信はうまくいかなかったので諦めてドコモ系回線を使います。
メイン回線であるOCN Mobile Oneでもよかったのですが、単純に動かし続ける想定では困るので別回線を契約しました。
長期的に見て電話は使いませんが電話ありの国際SMS受信オプション契約しました。
データプランの場合はSMS番号を付与すればいいかな(神プランだとたいした金額差になりません)
UX302NCでロケットモバイルに接続
UX302NCはSIMフリーなので、前回の記事のAPN設定変更だけで済みます。
ハード周りは前回の記事参照で。


[Dialer Defaults] Phone = *99***1# ;APN = povo.jp ;Username = [email protected] ;Password = povo New PPPD = yes Stupid Mode = yes Init1 = ATZ ;Init2 = AT+CGDCONT=1,"IPV4V6","povo.jp" ;APN = ocn.ne.jp ;Username = mobileid@ocn ;Password = mobile ;Init2 = AT+CGDCONT=1,"IP","ocn.ne.jp" APN = 4gn.jp Username = roke@moba Password = rokemoba Init2 = AT+CGDCONT=1,"IP","4gn.jp" Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init4 = AT+CMGF=1 Dial Attempts = 3 Modem Type = Analog Modem Modem = /dev/ux302nc Dial Command = ATD Carrier Check = no ISDN = 0 ;Init1 = ATZ ;Init3 = ATQ0 V1 E1 S0=0 +FCLASS=0 ;Modem Type = Analog Modem ;Baud = 46800 ;New PPPD = yes ;Modem = /dev/ux302nc ;ISDN = 0i ; Phone = <Target Phone Number> ; Password = <Your Password> ; Username = <Your Login Name>
APN設定値はSIMカードと一緒に来る説明書に書いてあるのでそれにならいます。
(ロケットモバイルはIPv6は提供していないとのことでIPv4のみの設定です)
設定を保存してwvdialコマンドでひとまずPPPは繋がることを確認できます
root@ras41:~# wvdial --> WvDial: Internet dialer version 1.61 --> Initializing modem. --> Sending: ATZ OK --> Sending: AT+CGDCONT=1,"IP","4gn.jp" OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Sending: AT+CMGF=1 AT+CMGF=1 OK --> Modem initialized. --> Sending: ATD*99***1# --> Waiting for carrier. ATD*99***1# CONNECT 150000000 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Sat Feb 17 15:12:29 2024 --> Pid of pppd: 1343 --> Using interface ppp0 --> local IP address 000.000.000.000 --> remote IP address 000.000.000.000 --> primary DNS address 000.000.000.000 --> secondary DNS address 000.000.000.000
SMS送受信
今回の本題はSMSの送受信です
一旦wvdialは閉じてscreenでUSBシリアルデバイスに繋ぎます
screen /dev/ttyUSB1
wvdialで接続していた場合コマンドループバックが帰ってきているかもしれません。
受信
受信済みのSMSがあるか確認してみます
AT+CMGL="ALL" OK
まだ何も送っていないので何もありません
そこで別の端末からSMSを送ってみます
+CMTI: "SM",0
するとこんなログが出てきます。
再度確認すると
+CMGL: 0,"REC UNREAD","送信元電話番号",,"24/02/17,15:43:31+36" Test OK
受信できたみたいですね。
AT+CMGL="ALL" +CMGL: 0,"REC READ","送信元電話番号",,"24/02/17,15:43:31+36" Test OK
再実行するとちゃんとステータスが変わっているのがわかります。
+CMTI: "SM",1 AT+CMGL="ALL" +CMGL: 0,"REC READ","送信元電話番号",,"24/02/17,15:43:31+36" Test +CMGL: 1,"REC UNREAD","送信元電話番号",,"24/02/17,15:50:15+36" 30533093306B3061306F OK
日本語はエンコードされているのでこのままでは読めませんね…
送信
今度はラズパイから別の端末に送信してみます
AT+CMGS="<送信先電話番号>" > hello world. > (ここでCtrl+z) +CMGS: 1 OK
別の端末で確認すると出てきました。
ただ、日本語は送れないようです
AT+CMGS="送信元電話番号" > こんにちわ > +CMS ERROR: 305
どうやら受信でもエンコードされてたようにエンコードをしないとダメそうです。
使い道
一応SMS受信BOTとして動かそうとOSSのソースを動かそうとしましたがパッケージ周りで動かなかったのでいったん保留にします。
(Docker化したりしたけど動かんかった)
コマンドからちゃんと受信できてるそれでヨシ





コメント