各種操作
ランタイムAPIへのアクセス
EMS Web UIの他にtelnetやHTTPリクエストを使用してEMSに接続することが可能です。
手動コマンドライン
Windows OSでの事前準備
Windows OSからTelnetを有効にする必要があります。[コントロールパネル>プログラム>Windowsの機能の有効化と無効化]の順に選択し、「Telnet Client」にチェックを入れて有効化してください。
telnetが起動している場合は、
ctrl+]
を入力してtelnetセッションを一旦終了します。その後、以下のコマンドを入力してください。
set crlf
Windowsのtelnetセッションへ戻るにはEnterキーまたはReturnキーを押してください。
ASCII CLI
ASCIIベースのインターフェースは、多くのユーザーが最初に使用するインターフェースです。telnetアプリケーション(全てのオペレーティングシステムで利用可能)もしくは一般的なスクリプト言語から簡単にアクセスが可能です。
config.luaの設定
{
ip="0.0.0.0",
port=1222,
protocol="inboundAsciiCli",
useLengthPadding=true
},
telnetインターフェース経由でAPIにアクセスするには、EMSが実行されているのと同じコンピューターでtelnetアプリケーションを起動する必要があります。
コマンドプロンプトからtelnetをopen
telnetセッションが確立されたら、サーバーにコマンドを送りすぐに実行させることができます。
telnetセッションからのコマンドリクエストと返り値の例は以下のようになります。
コマンドリクエスト
レスポンス
Command entered successfully!
Version
banner: EvoStream Media Server (www.evostream.com) version 1.7.1 build 4491
with hash: 64b305253110afc4acd5aeaf87f0a0b0f9b53526 on branch: origin/release/1.
7.0.1 - PacMan|m| - (built for Windows-8.1-x86_64 on 2016-06-17T09:33:23.000)
buildDate: 2016-06-17T09:33:23.000
buildNumber: 4491
codeName: PacMan|m|
releaseNumber: 1.7.1
ASCII JSON CLI
同じTelnetインターフェース経由でport 1112を使用してAPIにアクセスすると、JSON形式にフォーマットされた返り値となります。
これはEMS APIに対するCGI及びBASHスクリプトを作成するのに非常に便利です。
JSONレスポンスによって返される最初の文字はJSON payloadのLENGTHで、ランタイムで適切なサイズの構造体を割り当てることができます。
config.luaの設定
{
ip="0.0.0.0",
port=1112,
protocol="inboundJsonCli",
useLengthPadding=true
},
コマンドプロンプトからtelnetをopen
telnetセッションからのコマンドリクエストと返り値の例は以下のようになります。
コマンドリクエスト
レスポンス
HTTP JSON CLI
HTTPインターフェース経由でAPIにアクセスするには、任意のブラウザを使用してサーバー上でHTTPリクエストおこないます。
デフォルトで使用するポートは7777です。ポート番号は設定ファイル(config.lua)で変更可能です。
config.luaの設定
{
ip="0.0.0.0",
port=7777,
protocol="inboundHttpJsonCli"
},
一般的なHTTP形式のリクエストは以下のようになります。
HTTPセッションからのコマンドリクエストと返り値の例は以下のようになります。
コマンドリクエスト
レスポンス
複数のパラメータを使用する
全てのAPI機能はHTTP経由で利用できますが、パラメータが含まれている場合は使用するパラメータをbase64形式にする必要があります。
パラメータをbase64形式に変換する
pullstream
コマンドでの例
1. パラメータ付きコマンドを入力
2. base64エンコーダーを使用してパラメーターを変換
変換されたパラメータ
3. これをHTTPフォーマットでリクエストする場合は以下のようになります。
Base64
バイナリーデータをradix–64形式に変換してASCII文字列フォーマットで表現するバイナリーテキストエンコード方式のひとつです。
base64エンコードはオンラインにあるエンコーダを使用することもできます。
PHPとJavaScript
PHP及びJavaScript関数の使用も可能です。これらの関数はHTTPインターフェース呼び出しをwrapしたものでEMS Web UIディレクトリにあります。
APIのセキュリティ
ASCII APIはデフォルトで保護されており、外部コンピューターからのアクセスは禁止されています。
config.lua設定ファイルを編集してこれを変更することも出来ますが、サーバーセキュリティを維持する観点からもこの制限を守る事が推奨されます。
HTTPベースのAPIもデフォルトでローカルからのアクセスのみに制限されています。しかしHTTP APIを外部アクセス許可する事で便利なケースもあります。この場合、HTTP APIを保護するにはEWSでプロキシ認証を有効にする必要があります。これによりAPIコール毎にユーザ認証が必要となるため、EMS APIへのアクセスは認証されたアクセスのみとすることができます。