Twilio Programmable Videoについて簡単にまとめてみた

2020.11.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部の若槻です。

TwilioにはProgrammable Videoというアプリケーションにビデオ通話機能を実装できるSDKが用意されています。

image

今回は、このProgrammable Videoについて簡単にまとめてみました。

Programmable Videoとは

Twilioのクラウド基盤を利用したWebRTCによる双方向のメディア通信(音声通話・ビデオ通話・データ通信)の機能をSDKにより実装できる機能です。このSDKを使用することにより既存のアプリケーションにリアルタイムコミュニケーション機能を追加することが可能となります。

ビデオ通話はユーザーが参加者としてルーム(会議)に参加することにより行えます。ルームには4つの種類あり、それぞれ次のような違いがあります。

ルームタイプ 最大参加者数 料金(1参加者1分あたり) 接続方式 サーバー機能(録画など)の利用
Go Room 2 無料 P2P
P2P Room 3 $0.0015 P2P
Small Group Room 4 $0.004 ※ SFU
Group Room 50 $0.004 SFU

こちらによると、Small Group Roomの場合はGroup Roomに比べて予約されるリソース量が少なくなるため、料金はGroup Roomよりもある程度減額されるとのこと。

P2P、SFUそれぞれの接続方式のトポロジーは次のようになります。SIGNALINGは制御情報、MEDIAはメディアデータの通信を表しています。

  • P2P接続方式 image

  • SFU(Selective Forwarding Unit)接続方式 image

画像はUnderstanding Video Rooms - Twilioより引用

Twilioの機能一覧とProgrammable Videoの位置付け

2020/11現在、Twilioでは次のような機能が提供されています。このうちProgrammable Videoは、ユーザーへコミュニケーションインターフェースを提供する機能群である「COMMUNICATIONS CLOUD」に属する機能となります。

  • COMMUNICATIONS CLOUD
    • Programmable Messaging:SMS、WhatsAppおよびチャットとのメッセージ送受信API
    • Programmable Voice:固定電話との音声通話の受発信API
    • Programmable Video:SDKによりアプリケーションへビデオ通話機能を実装できる
    • Programmable Chat:SDKによりアプリケーションへチャット機能を実装できる
    • Programmable Fax:FAXの送受信API(新規Twilioアカウントでは使用不可)
    • Autopilot:SMS、音声通話、チャットなどへの自動応答を行うAIボット
  • SUPER NETWORK
    • Phone Numbers:電話番号の取得・管理
    • Elastic SIP Trunking:固定電話網と接続可能なクラウドベースのSIP回線インフラ
    • Internet of Things(Programmable Wireless):セルラー回線を使用したIoTデバイスの制御、分析、監視
    • Interconnect:セキュリティや通信品質が確保されたプライベート回線による通信接続
    • Lookup:電話番号を検証して配信不能やスパムの番号であるか検証できるAPI
  • ENGAGEMENT CLOUD
    • Flex:クラウド型コンタクトセンター
    • Authy:SMSや音声電話による多要素・パスワードレス認証を可能とするAPIおよびモバイルアプリ
    • Verify:SMS、音声電話およびEメールなどによる本人確認API
    • TaskRouter:メッセージや通話を適切な担当者にルーティング
    • Notify:プッシュおよびSMSによる通知API
    • Conversations:SMS、WhatsAppおよびチャットを統合したクロスチャンネルなコミュニケーションを可能とするAPI
    • Proxy:匿名でのコミュニケーションを可能とするAPI(ベータ)
  • RUNTIME
    • Functions:アプリケーションコードのホストおよび実行を行うスケーラブルかつマネージドなサーバーレス環境(ベータ)
    • Studio:GUIでアプリケーションを構築できるビジュアルワークフロービルダー
    • Assets:静的ファイルホスティング(ベータ)
    • TwiML Bins:TwiML(Twilio Markup Language)を利用可能なサーバーレス環境
    • Sync:複数のクライアント間の状態の同期を双方向かつリアルタイムで行うAPI
    • API Explorer:TwilioのAPIの作成・検索・リクエストの実行を簡単に行えるコンソール(ベータ)
    • Debugger:Twilioの利用で発生したErrorやWarningのログ検索を行えるコンソール

※この機能の一覧および分類は、Twilioコンソールのサイドバーメニューを基準としています。

Programmable Videoの実装

下記ブログでProgrammable Videoのハンズオンでの実装を紹介しています。

ルームに参加すると参加者同士でビデオ通話ができるデモアプリを実装しています。 image

Programmable Videoの料金(2020/11現在)

Video Groups

Create video applications that support up to 50 participants and include features like quality control, recordings, and phone dial-in/dial-out. Pricing is based on the amount of time participants are connected in a room.

price unit
Video Groups(ビデオ会議の参加) $0.004 per participant per minute
VIDEO GROUPS DATATRACK(音声・動画以外のデータ通信) Unlimited
VIDEO GROUPS RECORDING(録画) $0.004 per participant per minute
VIDEO GROUPS RECORDING COMPOSITIONS(複数の参加者の録画をまとめて1つのデータにする) $0.01 per composed minute
MEDIA STORAGE(録画データ保存) $0.05/GB per month
MEDIA DOWNLOAD(録画データダウンロード) Unlimited

Video P2P

Build peer-to-peer video applications using Video P2P, with unlimited TURN relay. Pricing is based on the amount of time your participants are connected in a room.

  • $0.0015 per participant per minute

Video WebRTC Go

Build and launch a one-to-one video application with our free developer toolkit to get the benefits of building on WebRTC without starting from scratch. Includes 25 GB/month of TURN. See docs to learn more.

  • Free

Programmable VideoのSDKの対応言語/フレームワーク

次のフロントエンド言語/フレームワークに対応したSDKが用意されています。

  • JavaScript
  • Android
  • iOS
  • React

参考

おわりに

Twilio Programmable Videoについて簡単にまとめてみました。

今までTwilioと言えば、Programmable Videoを除くと「固定電話への架電機能を実装できるサービス」というイメージがありましたが、今回調べてみて機能の充実ぶりに驚きました。

参考

以上