Armadilloフォーラム

SMS受信について

n.yamamoto

2014年7月8日 11時06分

Yamamotoです。

Armadillo-460にFOMA UM03-KOアダプターを接続してSMS受信を検討しています。

調べた限り、ATコマンド受信で対応するようなのですが
何か懸念点とか実施した情報等がありましたら教えていただけませんでしょうか?

コメント

at_ohsawa

2014年7月24日 20時34分

私自身一度しか試した事はないのですが、
FOMAモジュールは着信すると、普通のモデムのように
RING出力するので、pppdのスクリプトでATH1を送出して
フックした後にリモートのサーバーとppp接続を行う事
ができました。

ここからは想像です。
SMSの場合は着信後に平文でメッセージが流れてくるらしい
ので、FOMAモジュールと接続したシリアルポートをreadして、
RINGが読めたら"ATH1"をwriteして回線をフックして、
続けてreadするとメッセージ部分が取り出せると思います。

SMSは、日本語を含む場合の文字コードはUCS-2で送信される事に
なっているので、iconvでUCS-2を任意の文字コードに変換すると
扱いやすいかもしれません。

ueda

2014年7月25日 10時53分

横からですが・・・
UM03-KOの使用経験は無いですが、armadillo440+OPTION社製GTM661Wを使ってSMSをやった事があるので少し。
(SMSのATコマンドはGSM系で共通の筈です)

SMS受信自体は勝手に受信するので、
 AT+CMGF=1
 AT+CMGL="ALL"
とすると、現在受信しているSMSの一覧が取得できます。
 AT+CMGR=0
で先頭のSMSを読み取れます。0,1,2・・・と変えると次々取れます。
既出の通り、日本語はUCS-2(を16進ダンプしたASCII文字列)で通知されますので、コード変換が必要です。
英文はそのまま通知されます。
この辺の情報は検索すればすぐに見つかるかと思います。
SMS着信の通知は+CMERあたりで設定できると思います・・・が、よく判ってません。すいません。

もし、SMS送信も行い、かつ日本語を使う場合は少し複雑になります。
本文をUCS-2に変換->16進文字列化し、PDUモードに切り替えてパケットを組み立て、送信する必要があります。
で、このPDUモード時のパケットについてのまともな情報をネット上で見た事がありません。
細かく資料が分散してますが、3GPPの資料を読み込むしか無いかと。

n.yamamoto

2014年7月26日 11時08分

Yamamotoです。

at_ohsawa様、ueda様 有難うございます。

今のところは受信のみで、おそらく英数字の受信のみの予定なので
コード変換等の厄介なことは気にしなくて済むかと思っております。
(将来的な可能性はありますが、今は未対応で行ける予定)

あと念のためなのですが、ATコマンドRINGで着信があったっ場合に
pppdは起動せずにそのままシリアルでATコマンド処理をしてあげれば
よいと思っておりますが合っておりますでしょうか?

あと、今は対応の必要が無いのですがSMS受信の着信と
ppp接続の着信は何か受信したATコマンドで判断できるのでしょうか?