WebRTCプラットフォーム tokboxのopentokを調べてみた(1) 基礎編

## はじめに
WebRTCを実際にサービスで使おうとすると、シグナリングやNAT越え、さらにiOS対応や複数人での通話の負荷など、考えなければならないことが多々出てきます。それを解決するプラットフォームやサービスとして、例えば次のようなものがあります。

* <a href="http://nttcom.github.io/skyway/" target="_blank">Skyway (by NTTコミュニケーションズ)</a>
* <a href="https://tokbox.com/opentok/" target="_blank">opentok (by tokbox) </a>
* <a href="https://www.temasys.com.sg/skylink/" target="_blank">Skylink (by Temasys) </a>

この中で最も利用事例が多い有償サービスであるopentokについて、今更ながら調べてみました。今回は基礎編として、公開情報から基本的な内容をまとめます。


## 対応しているクライアント環境
出典：　<a href="https://tokbox.com/platform" target="_blank">tokbox.com/platform</a>

* Windows/Macの Chrome, Firefox
* WindowsのIEはプラグインを提供
* AndroidのChrome, Firefox
* iOSネイティブ向けSDK (iOS 6～)、iPhone4S～、iPad 2～
* Androidネイティブ向けSDK (Android 4.0～)、Galaxy/Nexusなど

MacのSafari用のプラグインは出していないようです。

## ストリームの接続方法
出典：<a href="https://support.tokbox.com/hc/en-us/articles/202997234-What-is-the-difference-between-a-Routed-vs-Relayed-Session" target="_blank">What is the difference between a Routed vs Relayed Session?</a>

大きく分けると2つ、細かく分けると3つの接続方法があります。

* 1. Relayed モード
    * 1-1 直接(P2P)通信する (STUN利用含む）
    * 1-2 TURNサーバー経由で通信する
* 2. Routed モード
    * OpenTok Media Servers (SFU)を利用。上りの通信を1本化できる。有償で録画できる
    * 反面、Relayedモードよりは若干レイテンシイがある

SFUについては、こちらの資料の27ページをご覧ください。
<a href="http://www.slideshare.net/minamotot/webrtc-44772839" target="_blank">スマートフォンでのWebRTC活用</a>


## 通話時間と料金の考え方
出典：<a href="https://support.tokbox.com/hc/en-us/articles/200882554-How-do-I-estimate-my-OpenTok-monthly-usage" target="_blank">How do I estimate my OpenTok monthly usage?</a>

料金の基本は、1通信経路（片道）で、約0.5セント / 分 になります。

* 1→1の片方向配信なら、30分話す（聞く）と、30分の通話時間... $0.15
* 1対1の双方向通話で 30分話すと、 両方向で 30×2 = 60分の通話時間とみなす... $0.3
* 4人の会議なら、4C2の組み合わせ×双方向で、 4×3/2 × 2 = 12倍。
    * 30分の会議なら 360分の通話とみなす ... $1.8
* 1→4人の片方向配信なら、30分で 30×4 = 120分 ... $0.6

※実際には、たくさん使えばボリュームディスカウントがあります。最大20%割引きのようです。

## 通信条件
出典：<a href="https://support.tokbox.com/hc/en-us/articles/203244520-OpenTok-Network-Connectivity-Requirements" target="_blank">OpenTok Network Connectivity Requirements</a>

* 最低限、80/TCP, 443/TCPが通ること
* もし 3478/UDP　が通ればベター　(TURNポート)
* ベストは、 1025 - 65535/UDPが通ること (P2Pで直接通信できる）
* 通信帯域は、最低限　上り 350kbps, 下りも最低限 350kpbs が必要。
    * <a href="https://support.tokbox.com/hc/en-us/articles/200959390-What-is-the-minimum-bandwidth-requirement-to-use-OpenTok" target="_blank">What is the minimum bandwidth requirement to use OpenTok?</a>

## 通信相手の数
出典：<a href="https://support.tokbox.com/hc/en-us/articles/200882604-How-many-people-can-OpenTok-on-WebRTC-video-sessions-support" target="_blank">How many people can OpenTok on WebRTC video sessions support?</a>

ネットワーク状況が許せば、次の規模で通信できるようです。

* 20人まで同じ部屋（セッション）に参加できる
    * typically OpenTok 2.0 powered sessions can have up to 20 participants in a multiparty session.
* 映像配信型なら、3人の話者の会議を、150人が見ることができる
    * If you are doing a live broadcast, then up to 150 participants can watch 3 publishers.

## 支払方法
出典：<a href="https://support.tokbox.com/hc/en-us/articles/200960420-Can-I-pay-by-invoice-instead-of-by-credit-card" target="_blank">Can I pay by invoice instead of by credit card?</a>

月100ドルを越える場合は、請求書発行してもらえるようです。ただし海外（日本）の場合は不明...

## 次回は

<a href="http://qiita.com/massie_g/items/7b8eaf87f0a652973399" target="_blank">通信料金の考え方にについて、</a>もう少し掘り下げてみる予定です。

## 記事一覧
* <a href="http://qiita.com/massie_g/items/dc6615799ef65ab1a6e4" target="_blank">WebRTCプラットフォーム tokboxのopentokを調べてみた(1) 基礎編</a>
* <a href="http://qiita.com/massie_g/items/7b8eaf87f0a652973399" target="_blank">WebRTCプラットフォーム tokboxのopentokを調べてみた(2) 利用料金編</a>
* <a href="http://qiita.com/massie_g/items/77f6916b70a3e21a3cb0" target="_blank">WebRTCプラットフォーム tokboxのopentokを調べてみた(3) 通信経路編</a>
* <a href="http://qiita.com/massie_g/items/af3ee666969b41293478" target="_blank">WebRTCプラットフォーム tokboxのopentokを調べてみた(4) PeerConnection編</a>