SIM Ant

この記事は SORACOM Advent Calendar 2015 12/20 分のエントリーです。

> 2020年代後半、狂騒のような東京オリンピック開催のツケを払うように年々高騰する税金や、どう考えても戻ってくるあてのない年金を払う事を諦めた、否、拒否した若者たちは、日常的な通貨としてブロックチェーン型仮想通貨 B¥(＝Bit Yen)を選択し、社会的にも経済的にも地下世界に深く潜っていった。
> 
> マイナンバーもパスポートも運転免許も持たない彼らが、唯一身分を証明する手段(Identity)として、誰でも公平にサービスを使用する事が出来る通信サービス SORACOM Air の SIM を選択したのは、ある意味必然であった。もちろん使用料金は B¥ でも支払う事が出来るし、SORACOM Beam を使えば B¥ のプロトコルから、日本円をやり取りするためのいわゆる全銀プロトコルに変換して、日本円で決済を行う事も可能だ(当然幾ばくかの手数料は必要となるが)。
>
> ーーー 大人たちはそんな彼らを SIM を持った蟻、SIM Ant と呼んで揶揄した。


閑話休題。

かなーり出落ち感ありますが、SORACOM Air の操作を ant コマンドでやってみました。

## 準備
事前に ant と SORACOM CLI が動くようにしておきます(gem install soracom、環境変数の設定)。
用意した build.xml はこんな感じです。imsiプロパティによく使うSIMのIMSIを設定すると便利かも。

```xml
<project name="SIM Ant" default="help" basedir=".">
<property name="imsi" value="44010xxxxxxxxxx" />
<target name="help">
<echo>usage: ant {command} [-Dfoo=bar]
command:
        ant activate [-Dimsi {imsi}]
        ant deactivate [-Dimsi {imsi}]
        ant update-speed-class [-Dimsi {imsi}] [-Dspeed-class {speed-class}]
</echo>
</target>
<target name="activate">
        <exec executable="soracom">
                <arg value="sim" />
                <arg value="activate" />
                <arg value="--imsi" />
                <arg value="${imsi}" />
        </exec>
</target>
<target name="deactivate">
        <exec executable="soracom">
                <arg value="sim" />
                <arg value="deactivate" />
                <arg value="--imsi" />
                <arg value="${imsi}" />
        </exec>
</target>
<target name="update-speed-class">
        <property name="speed-class" value="s1.fast" />
        <exec executable="soracom">
                <arg value="sim" />
                <arg value="update_speed_class" />
                <arg value="--imsi" />
                <arg value="${imsi}" />
                <arg value="--speed-class" />
                <arg value="${speed-class}" />
        </exec>
</target>
</project>
```

## 実行してみる
```
# SIMのアクティベート
~/work/simant$ ant activate
Buildfile: /Users/moto/Dropbox/work/simant/build.xml

activate:
     [exec] [
     [exec]   {
     [exec]     "imsi": "44010xxxxxxxx",
     [exec]     "msisdn": "8180xxxxxxxx",
     [exec]     "ipAddress": "10.xxx.xxx.xxx.xxx",
     [exec]     "apn": "soracom.io",
     [exec]     "type": "s1.fast",
     [exec]     "groupId": "37ed33c8-7e90-4edc-aabf-1f9851ab8f98",
     [exec]     "createdAt": 1442560686953,
     [exec]     "lastModifiedAt": 1448311390379,
     [exec]     "expiredAt": null,
     [exec]     "terminationEnabled": false,
     [exec]     "status": "active",
     [exec]     "tags": {
     [exec]       "name": "moto"
     [exec]     },
     [exec]     "sessionStatus": {
     [exec]       "lastUpdatedAt": 1448311389351,
     [exec]       "imei": null,
     [exec]       "location": null,
     [exec]       "ueIpAddress": null,
     [exec]       "dnsServers": null,
     [exec]       "online": false
     [exec]     },
     [exec]     "speedClass": "s1.fast",
     [exec]     "moduleType": "mini",
     [exec]     "plan": 3,
     [exec]     "expiryTime": null,
     [exec]     "operatorId": "OP00xxxxxxxx",
     [exec]     "createdTime": 1442560686953,
     [exec]     "lastModifiedTime": 1448311390379
     [exec]   }
     [exec] ]

BUILD SUCCESSFUL
Total time: 0 seconds

# SIMの速度変更
~/work/simant$ ant update-speed-class -Dspeed-class s1.minimum
Buildfile: /Users/moto/Dropbox/work/simant/build.xml

update-speed-class:
     [exec] [
     [exec]   {
     [exec]     "imsi": "44010xxxxxxxxxx",
     [exec]     "msisdn": "8180xxxxxxxx",
     [exec]     "ipAddress": "10.xxx.xxx.xxx",
     [exec]     "apn": "soracom.io",
     [exec]     "type": "s1.minimum",
     [exec]     "groupId": "37ed33c8-7e90-4edc-aabf-1f9851ab8f98",
     [exec]     "createdAt": 1442560686953,
     [exec]     "lastModifiedAt": 1448311589456,
     [exec]     "expiredAt": null,
     [exec]     "terminationEnabled": false,
     [exec]     "status": "active",
     [exec]     "tags": {
     [exec]       "name": "moto"
     [exec]     },
     [exec]     "sessionStatus": {
     [exec]       "lastUpdatedAt": 1448311395278,
     [exec]       "imei": "00000000000000:",
     [exec]       "location": null,
     [exec]       "ueIpAddress": "10.yyy.yyy.yyy",
     [exec]       "dnsServers": [
     [exec]         "100.127.0.53",
     [exec]         "100.127.1.53"
     [exec]       ],
     [exec]       "online": true
     [exec]     },
     [exec]     "speedClass": "s1.minimum",
     [exec]     "moduleType": "mini",
     [exec]     "plan": 3,
     [exec]     "expiryTime": null,
     [exec]     "operatorId": "OP00xxxxxxxx",
     [exec]     "createdTime": 1442560686953,
     [exec]     "lastModifiedTime": 1448311589456
     [exec]   }
     [exec] ]

BUILD SUCCESSFUL
Total time: 1 second
```

なんか動いてますね。需要あるんでしょうか、この情報。

## まとめ
人生で初めて ant 使いました。多分使い方まちがってると思います。
それにしても、今週大丈夫でしょうか。とても心配ですw

明日は mhidaka さんの SIM People です。お楽しみに！