sys.config リファレンス

設定ファイル

[
 {sora, [
         %% ライセンスファイルを指定してください
         {license_file, "etc/license.json"},

         %% 認証やイベントのウェブフックの通知に含まれるサーバ識別用のラベルを指定可能です
         %% 指定しない場合は "WebRTC SFU Sora" が送られます
         %% {label, "sora-stand-alone"},

         %% サーバで使用する IPv4 アドレスを指定してください
         %% 指定が無い場合は自動で見つけたアドレスを使用します
         %% {ipv4_address, "192.0.2.100"},

         %% サーバでIPv6 アドレスを使用するかどうか指定してください
         %% この設定はシグナリングや API には影響しません
         %% {ipv6, false},

         %% サーバで使用する IPv6 アドレスを指定してください
         %% 指定が無い場合で ipv6 が true の場合、自動で見つけたアドレスを使用します
         %% {ipv6_address, "2001:0DB8::100"},

         %% デモ機能を有効にするかどうかを指定してください
         {demo, false},

         %% 認証のコールバック URL を指定してください
         %% {auth_webhook_url, "http://127.0.0.1:8080/sora/auth/webhook"},

         %% イベントのコールバック URL を指定してください
         %% {event_webhook_url, "http://127.0.0.1:8080/sora/event/webhook"},

         %% 認証やイベントのウェブフックに利用する HTTP Proxy の情報を指定してください
         %% {webhook_proxy_url, "http://proxy.example.com:8080"},
         %% {webhook_proxy_auth_user, "proxy-auth-user"},
         %% {webhook_proxy_auth_password, "proxy-auth-password"},

         %% 接続時の失敗コールバックを無視するかどうかを指定します
         %% {ignore_connection_failed_webhook, true},

         %% スポットライト機能で切り替わりコールバックを無視するかどうかを指定します
         %% {ignore_spotlight_changed_webhook, true},

         %% 録画ファイルが保存されるディレクトリを指定してください
         %% 可能な限り絶対パスで指定してください
         %% {archive_dir, "archive"},

         %% 録画に使用する一時ファイルを保存するディレクトリを指定してください
         %% 可能な限り絶対パスで指定してください
         %% {archive_tmp_dir, "tmp/archive"},

         %% シグナリングに使うポート番号を指定してください
         {signaling_port, 5000},

         %% シグナリング経由での通知を有効にするかどうか指定してください
         %% {signaling_notify, true},

         %% シグナリング経由での通知時にクライアント ID を払い出すかどうか指定してください
         %% {signaling_notify_client_id, true},

         %% シグナリング経由での通知時にメディア情報を払い出すかどうか指定してください
         %% {signaling_notify_media, true},

         %% シグナリング経由での通知時にメタデータを払い出すかどうか指定してください
         %% {signaling_notify_metadata, true},

         %% API に使うポート番号を指定してください
         {api_port, 3000},

         %% API をクロスドメインで使用したい場合に、その URL を指定してください
         %% {api_cors_origin, "http://127.0.0.1:5000"},

         %% TURN 機能を有効にするかどうかを指定してください
         {turn, true},

         %% TURN 機能で利用するレルムを指定してください
         {turn_realm, "sora.example.com"},

         %% TURN 機能で TURN-TCP を有効にするかどうかを指定してください
         %% {turn_tcp, true},

         %% TURN 機能で TURN-TCP を有効にした際に利用するポート番号を指定してください
         %% {turn_tcp_listen_port, 3478},

         %% TURN 機能で TURN-TCP URL 払い出し時のポート番号を指定してください
         %% {turn_tcp_port, 3478},

         %% TURN 機能で TURN-TLS URL 払い出し機能を有効にするかどうかを指定してください
         %% {turn_tls, true},

         %% TURN 機能の URL 払い出し機能で利用する FQDN (最後の . なし)を指定してください
         %% {turn_fqdn, "sora.example.com"},

         %% TURN 機能で TURN-TLS URL 払い出し機能で利用する FQDN (最後の . なし)を指定してください
         %% {turn_tls_fqdn, "sora-turns.example.com"},

         %% TURN 機能で TURN-TLS URL 払い出し機能を有効にした際に利用するポート番号を指定してください
         %% {turn_tls_port, 5349},

         %% RTX 機能を有効にするかどうかを指定してください
         %% {rtx, false},

         %% Generic NACK を有効にするかどうかを指定してください
         {generic_nack, true},

         %% Generic NACK 用のキャッシュサイズを指定してください
         {generic_nack_cache_size, 1000},

         %% 音声のビットレートを指定してください
         %% 64 であれば 64kbps が利用可能な最大ビットレートとなります
         %% {default_audio_bit_rate, 64},

         %% 映像のビットレートを指定してください
         %% 800 であれば 800kbps が利用可能な最大ビットレートとなります
         %% {default_video_bit_rate, 800},

         %% RTP Forwading API を利用時のクライアントに PLI を送る間隔を指定します
         %% 10 であれば 10 秒間隔で PLI 送ることで I フレームが 10 秒間隔で送られてくるようになります
         %% {default_forwarding_pli_interval, 10},

         %% SDP の offer 時に払い出される origin の username を隠蔽するかどうかを指定してください
         %% true の場合は origin の username が "-" として払い出されます
         %% {hide_origin_username, true},

         %% WebRTC の接続が確立するまでの許容時間を秒で指定してください
         {connection_created_wait_timeout, 30}
        ]
 },
 ...
].

license_file

必須

ライセンスファイルのパスを指定してください、可能な限り 絶対パス を指定してください。

label

任意

デフォルト:"WebRTC SFU Sora"

認証やイベントウェブフック通知時に送られる、サーバ固有の値を指定することができます。

{label, "sora-001"},

ipv4_address

推奨

この値を有効にしなくても自動で IPv4 アドレスを収集しますが、 固定された IPv4 アドレスがサーバに割り当てられている場合は指定することを推奨しています。

IPv4 アドレスを指定してください。一つでも "192.0.2.10" のように指定してください。

ipv6

任意

デフォルト:false

IPv6 機能を有効にするかどうか指定してください。デフォルトでは無効になっています。

この機能を有効にすると以下の機能が有効になります

  • ipv6_address が指定されていない場合は自動で IPv6 アドレスが収集される
  • ipv6_address で指定された値が使用される
  • IPv6 アドレスが使用可能だった場合、 TURN サーバの URL が IPv6 でも払い出される

この機能はシグナリングや API を IPv6 有効にする機能ではありません。シグナリングや API は IPv6 非対応です。

ipv6_address

推奨

この値を有効にしなくても ipv6 が true の場合は、自動で IPv6 アドレスを収集しますが、 固定された IPv6 アドレスがサーバに割り当てられている場合は指定することを推奨しています。

IPv6 アドレスを指定してください。一つでも "2001:0DB8::10" のように指定してください。

demo

任意

デフォルト:false

Sora には機能をすぐに試してもらえるようにデモ機能が含まれています。

そのデモを有効にする場合は、 true を指定し、有効にしてください。

詳細は デモ機能 をご確認ください。

auth_webhook_url

任意

デフォルト:なし

認証機能を有効にしたときに、問い合わせに行く HTTP URL を指定してください。その戻り値に含まれる値によって認証の可否を判定します。

event_webhook_url

任意

デフォルト:なし

クライアントの接続や切断、録画ファイル生成の終了などのイベントを通知する HTTP URL を指定してください。

webhook_proxy_url

任意

デフォルト:なし

ウェブフックで利用する HTTP Proxy の URL を指定して下さい。 "http://proxy.example.com:8080" の用に URL を指定して下さい。

webhook_proxy_auth_user

任意

デフォルト:なし

ウェブフックで利用する HTTP Proxy の認証ユーザを指定して下さい。 "proxy-auth-user" の用に文字列で指定して下さい。

webhook_proxy_auth_password

任意

デフォルト:なし

ウェブフックで利用する HTTP Proxy の認証パスワードを指定して下さい。 "proxy-auth-password" の用に文字列で指定して下さい。

ignore_connection_failed_webhook

任意

デフォルト:true

接続が失敗した際に、 event_webhook_url に登録された HTTP URL に通知を行うかどうかを指定してください。 デフォルトではエラーの通知を行いません。

ignore_spotlight_changed_webhook

任意

デフォルト:true

スポットライトで発言者が切り替わった場合に、 event_webhook_url に登録された HTTP URL に通知を行うかどうかを指定してください。 デフォルトではエラーの通知を行いません。

archive_dir

任意

デフォルト:"archive"

録画ファイルが保存されるディレクトリを指定してください。可能な限り 絶対パス で指定してください。

archive_tmp_dir

任意

デフォルト:"tmp/archive"

録画に使用する一時ファイルを保存するディレクトリを指定してください。可能な限り 絶対パス で指定してください。

録画が失敗した場合、このディレクトリに保存されたファイルは自動的に削除されます。

signaling_port

必須

シグナリングに使用するポート番号を指定してください。

signaling_notify

デフォルト:true

シグナリング経由で接続や切断、更新の通知を受け取るかどうか指定してください。この設定はすべての設定に影響します。 個別の設定の場合は認証ウェブフックのレスポンス時で指定してください。

シグナリング経由での通知機能の詳細は "type": "notify" をご確認ください

認証の戻り値に関しては シグナリング経由での通知機能の指定 を確認してください。

signaling_notify_client_id

デフォルト:true

シグナリング通知機能が有効な際、通知にクライアント ID を含むかどうかを指定してください。

signaling_notify_media

デフォルト:true

シグナリング通知機能が有効な際、通知に音声や映像が有効かどうかを含むかどうかを指定してください。

signaling_notify_metadata

デフォルト:true

シグナリング通知機能が有効な際、 type: connectsignaling_notify_metadata で指定した値、 または認証ウェブフックの戻り値の signaling_notify_metadata で指定した値を通知するかどうかを指定してください。

api_port

必須

API に使用するポート番号を指定してください。

api_cors_origin

任意

デフォルト:なし

API の戻りのヘッダーに CORS(Cross-Origin Resource Sharing) を含める際のドメインを指定してください。 http から始めて、パスの / は含まないでください。

{api_cors_origin, "http://127.0.0.1:5000"},

turn

任意

デフォルト:true

Sora が持っている TURN 機能を使用するかどうかを指定してください。

デフォルトでは true になっています。使わない場合は false を指定してください。

使用しない場合の設定

{turn, false},

turn_realm

任意

デフォルト:"sora.example.com"

TURN 機能で使用するレルムを指定します。文字列であれば何でも良いのですが、会社のドメインなどを指定することが多いです。

turn_fqdn

TURN 機能の URL で使用する FQDN を指定してください。

指定しない場合は TURN-UDP, TURN-TCP, TURN-TLS に共通で採用されます。 TURN-TLS の FQDN は turn_tls_fqdn 設定で上書きできます。

ドメイン名が sora.example.com の場合

{turn_fqdn, "sora.example.com"},

turn_tls_fqdn

TURN 機能で TURN-TLS の URL で使用する FQDN を指定してください。

指定しない場合は trun_fqdn の値が採用されます。 どちらも設定されていない場合 TURN-TLS を利用することは出来ません。

ドメイン名が sora.example.com の場合

{turn_tls_fqdn, "sora-turns.example.com"},

turn_tcp

任意

デフォルト:true

TURN 機能で TURN-TCP を使用するかどうかを指定します。使用しない場合は false を指定してください。

使用しない場合の設定

{turn_tcp, false},

turn_tcp_listen_port

推奨

デフォルト:3478

TURN 機能で TURN-TCP を有効にした際に使用するポート番号を指定してください。デフォルトでは 3478 番ポートが使用されます。

turn_tcp_port

推奨

TURN 機能で TURN-TCP URL 払い出し時のポート番号を指定してください。デフォルトでは turn_tcp_listen_port の値が利用されます。

turn_tls

デフォルト:false

TURN 機能で TURN-TLS の URL 払い出し機能を使用するかどうかを指定します。使用しない場合は false を指定してください。

turn_tls_port

デフォルト:5349

TURN 機能で TURN-TLS の URL 払い出し機能を有効にした際に使用するポート番号を指定してください。デフォルトでは 5349 番ポートが使用されます。

rtx

任意

デフォルト:true

RTX を有効にするかどうかを指定します。デフォルトでは true で有効になっています。

現時点では Chrome と Edge が使用可能で、 Firefox は対応しておりません。 iOS/Android は libwebrtc を使用した場合は対応しています。

generic_nack

任意

デフォルト:true

重要

この設定は Generic NACK がわかる人だけが指定してください

Generic NACK を有効にするかどうかを指定します。一つのチャンネルに対して、視聴者がかなり多い場合などはこの設定を無効にすることで、サーバ側の負荷を抑えることができるようになります。

generic_nack_cache_size

任意

デフォルト:1000
範囲:1-65536

重要

この設定は Generic NACK がわかる人だけが指定してください

Generic NACK に使用する再送のための SRTP のキャッシュサイズを指定します。このキャッシュサイズは SSRC 毎の単位です。

サイズを増やした場合、メモリを圧迫することもありますので、注意してください。

default_audio_bit_rate

任意

単位:k(キロ)bps
範囲:6-510

音声が使用できるビットレートを指定します。デフォルトの場合はブラウザ側の判断に依存します。

もし、音声を良くしたい場合は 32-64kbps を指定すると良いかもしれませんが、基本的にはブラウザ側の判断で問題ありません。

default_video_bit_rate

任意

デフォルト:500
単位:k(キロ)bps
範囲:1-30000

映像が使用できるビットレートを指定します。デフォルトでは 500kbps です。この値を少なく指定すると解像度が不安定になります。

基本は 500 で余裕があるのであれば 800 などに設定することをお勧めします。

5000 より大きい値はまだ十分に検証ができていないため、現時点ではサポート外となります。ご理解いただければと思います。

default_forwarding_pli_interval

任意

デフォルト:10
単位:
範囲:1-90

重要

この設定は PLI がわかる人だけが指定してください

RTP 転送 API 利用時にクライアントに対して PLI を送る間隔を指定します。

hide_origin_username

任意

デフォルト:false

有効にした場合は SDP の Offer 時に送られる o=<username> の username の部分を shiguredo...SORA-<version> から _ に変更します。

connection_created_wait_timeout

任意

デフォルト:30
単位:
範囲:1-600

WebRTC SFU と WebRTC の接続が確立するまでの許容時間を秒で指定してください。 基本的に WebRTC SFU との接続確立は数百ミリ秒で終わります。

ただし iOS などでカメラの使用などを許可するといった設定が入る場合を考慮し 30 秒程度になっております。

rtp_packet_loss_simulator_incoming

注意

デフォルト:0
範囲:0-100

この機能はあくまで検証時のみ有効にしてください

Sora が受信する RTP パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。

rtp_packet_loss_simulator_outgoing

注意

デフォルト:0
範囲:0-100

この機能はあくまで検証時のみ有効にしてください

Sora が送信する RTP パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。