Armadilloフォーラム

SMS受信

mkohei1122

2022年5月17日 19時05分

森と申します。

IoT G3でSMSを受信するシステムを検討中でございますが、マニュアルと一部動作が
違うようですので、確認させていただけないでしょうか。
SIMは、Soracom Airの DoCoMo SMS付を使用しております。
送信は、Y-モバイルのスマホから行っております。

・storage: 'mt'の定義
SMSを受信して、mmcli -s [SMS番号]でメッセージを確認したところ、
storage: 'mt'となっております。これは、どちらに保存されて
いるのでしょうか。なお、IoT G3を再起動するとstorage: 'me'と
なっております。

・受信数
マニュアルには、4件SMSを保存した状態では、受信しないとありますが、
実際には、受信できているようです。何件まで受信可能なのでしょうか。

・SMS番号
mmcli -s [SMS番号]でメッセージを表示しております。SMS番号の付け方の
ルールはどのようになっておりますでしょうか。メッセージを消したSMS番号が
欠番となっても、必ず連番になっているようですが、どの番号まで続くので
しょうか。
なお、再起動するとメッセージを消したSMS番号の抜けた分をつめて連番で
整列されているようですが、なにかルールはございますでしょうか。

・SMS受信のトリガ
SMSリストを表示する以外に、新しくSMSを受信したことを確認する方法は
ございますでしょうか。

以上です。

コメント

at_mitsuhiro.yoshida

2022年5月19日 17時30分

吉田です。

> ・storage: 'mt'の定義
> SMSを受信して、mmcli -s [SMS番号]でメッセージを確認したところ、
> storage: 'mt'となっております。これは、どちらに保存されて
> いるのでしょうか。なお、IoT G3を再起動するとstorage: 'me'と
> なっております。

MT と ME は同じ意味で 3G/LTEモジュールの内蔵ストレージにSMSが保存されています。

> ・受信数
> マニュアルには、4件SMSを保存した状態では、受信しないとありますが、
> 実際には、受信できているようです。何件まで受信可能なのでしょうか。

申し訳ありません、古い 3G モジュールの情報が残っておりました。
今後のアップデートで修正いたします。
3G/LTE モジュールに保存可能な最大件数は 255 件となります。

> ・SMS番号
> mmcli -s [SMS番号]でメッセージを表示しております。SMS番号の付け方の
> ルールはどのようになっておりますでしょうか。メッセージを消したSMS番号が
> 欠番となっても、必ず連番になっているようですが、どの番号まで続くので
> しょうか。

試しに
mmcli -m 0 --messaging-create-sms
でメッセージを作り続けたところ、65600 を越えても作り続けていますので、
最大番号を気にされない制御をなさった方がいいと思われます。

> なお、再起動するとメッセージを消したSMS番号の抜けた分をつめて連番で
> 整列されているようですが、なにかルールはございますでしょうか。

番号は ModemManager が決定しますので、
ModemManager 起動時に再度振りなおされます。

> ・SMS受信のトリガ
> SMSリストを表示する以外に、新しくSMSを受信したことを確認する方法は
> ございますでしょうか。

以下の 2 案があるかと思われます。

(1) DBus の signal で検知する

使いやすいサンプルを見つけることができませんでした。
以下の DBus signal で検知可能です。

追加
https://www.freedesktop.org/software/ModemManager/api/latest/gdbus-org…
削除
https://www.freedesktop.org/software/ModemManager/api/latest/gdbus-org…

Armadillo で SMS 作成したタイミングでも signal が通知されますので、
作成した SMS か受信した SMS かの判断は必要になります。

(2) 3G/LTE モジュールの RI を Armadillo の GPIO 115 にて検知する

GPIO 115 を export し、

root@armadillo:~# cd /sys/class/gpio/
root@armadillo:/sys/class/gpio# echo 115 > export
root@armadillo:/sys/class/gpio# ls gpio115
active_low  device  direction  edge  power  subsystem  uevent  value

edge を設定し、

root@armadillo:~# echo falling > /sys/class/gpio/gpio115/edge
または
root@armadillo:~# echo rising > /sys/class/gpio/gpio115/edge

3G/LTE モジュールに対して以下のコマンドを入力し、 SMS 受信以外で RI が反応しないようにします。

root@armadillo:~# cu -l /dev/ttymxc6 -s 115200
AT+QCFG="risignaltype","physical"
AT+QCFG="urc/ri/ring","pulse"
AT+QCFG="urc/ri/smsincoming","pulse"
AT+QCFG="urc/ri/other","off"
~. (チルダ ドット で cu から抜けます)

/sys/class/gpio/gpio115/value を poll() などで監視すると
SMS 受信のトリガーとして使用できます。