Consoleセッション切断APIの公開とその使いどころ2016/07/01engineeringTweetShareソラコムの江木です。今日は少しマニアックではありますが、SORACOMを使いこなす際にお役に立てて頂けるであろうAPIを公開したことをお知らせしたいと思います。セッション切断APIを公開セッション切断APIとは何かといいますと、その名の通り、呼ぶと指定した端末の3G/LTEセッションをネットワーク側から切断することが出来るAPIです。Referenceから実際に呼んでみていただくことが出来ます。CLIを最新版に更新して頂ければ、下記のように呼び出すことが出来ます。<対象のSIMのIMSI>実際にお試し頂くと、お気づきになるかと思うのですが、何も起こらなかったように見えると思います。これは多くの端末で、ネットワーク側からの切断の場合には即座に再接続を試行するように設定されているためです。端末から再接続という動作が行われています。期待通り動作したかどうか確認するには、セッション履歴を見てみる必要があります。いうイベントがAPIを読んだ直後に記録されていると思います。(デモをしたり動作を説明するのにこんなにわかりにくいAPIも珍しいと思うくらいです...)セッション切断APIの使いどころさて、見せにくいし効果もよくわからないと思われるかもしれないセッション切断APIなのですが、一体どんなときに役に立つのでしょうか?「何でせっかく繋がってるのにわざわざ切るの?しかもすぐまた再接続されるのに」という声が聞こえてきそうですが、それはとても良い質問です。AirのSIMが入った端末の設定を更新する際、スピードクラスやステータスの変更などを含め、多くの設定はAPIコールと同時に即時反映されるようになっています。セッションごとに独立している設定についてはAPIコールの後即時反映はされず、次のセッション開始時から適用されるものがあります。(VPG)の使用有無やそのIDなどがこれに該当します。これらの設定変更を反映するには、端末側で一旦セッションを切って再接続(スマートフォンやタブレットなら機内モードのOn/Off、USBドングル等ならPPPの切断と再ダイアルアップなど)が必要なのですが、いつも端末側を操作できるとは限らないかと思います。APIを使って認証済み端末とそうでない端末でアクセス制限を変えるような仕組みを実装するような場合には、認証が通ったタイミングでネットワーク側からの指示でセッションの再確立を促したい場合があると思います。戻すという操作で実現する方法があります。お気づきかもしれませんが、セッション切断APIを使用すると、上記のステータス変更による方法では2回必要だったAPIコールが1度で済みます。間に端末が再接続を試みることで失敗してしまうというリスクも無くせるので、セッションに関係する設定を更新して反映させたい場合に適した操作が出来るというわけです。上記のような仕組みを実現する意味でも、無通信状態が続いたことによる切断や万が一のネットワーク側の障害への対応の意味でも、オンライン状態を続ける必要があるデバイスについてはセッションが切れたら再接続をするように設定されているかどうかご確認頂くのは重要です。スマートフォンやタブレットなどは特に意識する必要はないかもしれませんが、USBドングルや通信モジュールを使ってラズベリーパイやPCなどを接続している場合には、再接続を試みる設定になっているか予め確認しておくのがおすすめです。JapanさんはSORACOMをローンチ当時から活用してくださっていて、「チャージ済みのデータ容量を使い切ったら、追加のデータ容量を購入できるチャージ専用サイトへカスタムDNSで誘導する」という仕組みを実際に構築運用されています。それこそカスタムDNS機能ができたてほやほやの頃からお使い頂いてきました。そのノウハウを惜しみなく発表してくださいました。APIの一番のヘビーユーザのうちの一人と言っても過言ではないCTOの多田さんから頂いたのは::「eConnectのユースケースだと、カスタムDNSでeConnectサイトにしか接続できない状態のお客さまがチャージしてくれた際に、セッション再確立ができずにオフライン状態が続いてしまうことがある」というご相談でした。なっている間に端末が再接続を試行して、その後の試行までに間が空いてしまうという問題が考えられました。そもそも上記目的のために2回APIコールをしてもらうのはお客さまにとって2度手間です。そこで今回発表したセッション切断APIの開発と公開に至ったというわけです。API公開にあたって、多田さんから以下のようなコメントを頂きました。Japanの多田です。セッション切断APIのおかげでオフライン問題もすぐに解決し、今では弊社サービスを支える最も重要なAPIの1つとなっています。機会ですので、実際に導入して感じているメリットをご紹介させてください。どんな端末でも安定してセッション再確立ができるようになったセッション再確立にかかる時間が短縮された(セッション切断後ほぼ一瞬で再通信できています。遅い端末でも数秒程度です)APIコールが1回だけになったことで、大量のSIMを連続処理する時間が短縮されたセッションの切断は、カスタムDNSを反映させたいときなど重要な場面で行われるため、上記のメリットは私たちにとって非常にありがたいものでした。上述のオフライン問題をソラコム安川さんに相談したところ、翌日には「セッション切断APIを検討します」とのお返事をいただき、わずか2週間後にはデプロイされていました...。いったとんでもないスピードでの進化や、私たちユーザの声を大切にしてくれるところもSORACOMの大きな魅力です!まとめ今回、ある意味非常に玄人向けなSORACOMのサービスを使い込んでいる方、あるいはこれから使い込もうとしてくださっている方向けの発表でしたが、いかがでしたでしょうか?最後の開発に至った背景にもある通り、SORACOMは皆様のご要望やフィードバックを受けてより良いプラットフォームになれるように進化していきます。