概要
WebRTCのAPIは、WebRTCメディア通信のための認証情報を安全に取得し、音声トークダウンセッションを開始する機能を提供します。これらのAPIはArculesプラットフォームと統合され、WebRTCプロトコルを介したリアルタイム通信(ライブストリーミングや双方向の音声など)を実現します。これらのエンドポイントは、特にセキュリティおよび監視システムにおいて、低遅延の音声ストリーミングと通信が必要な場面で重要となります。
主な使用例:
リモート監視およびセキュリティ操作のためのシームレスな音声通信を可能にする
イベントやリアルタイムアラートのためのライブ音声ストリーミングを実現する
ネットワーク制限のある環境下での安全で信頼性の高い音声伝送のためにTURNサーバーを使用する
前提条件
この記事で取り上げるAPI機能に関連するデバイス(I/Oネットワークリレーなど)は、まずArculesゲートウェイアプライアンスに登録されている必要があります。これらのデバイスはオンラインであり、アクティブなインターネット接続を持っている必要があります。
ユーザーはArculesウェブポータルで以下の役割を割り当てられている必要があります:
APIユーザーの権限(役割):APIを通じてI/Oおよび音声機能の両方を使用できる
APIエンドポイント
エンドポイント1:WebRTC認証情報
HTTPメソッド:GET
認証:OAuth 2.0ベアラートークン
レート制限:1分間に 500回 のリクエスト
サポートされているフォーマット:JSON
リクエストパラメータ
パラメーター | タイプ | 説明 | 必須 |
transport | string | Type of transport (e.g., any, cloud, local). Default is any. | Yes |
サンプルリクエスト
GET /v1/media/webrtc/creds?transport=any/cloud/local
Host: msapi.arcules.com
Authorization: Bearer {token}
サンプルレスポンス
{
"creds": {
"username": "1726........",
"password": "o1O/UNNA.....=",
"uris": [
"turn:turn2.arcules.com:443"
],
"ttl": 300000000000
}
}
エンドポイント2:I/Oポート状態の更新
HTTP Method: POST
URL: https://msapi.arcules.com/v1/media/webrtc/audio/{audioChannelId}/talkdown?transport=any/cloud/local
Authentication: OAuth 2.0 Bearer Token
Rate Limit: 500 requests per minute
Supported Formats: JSON
リクエストパラメータ
パラメーター | タイプ | 説明 | 必須 |
audioChannelId | string | The unique ID of the device where audio talkdown is initiated. | Yes |
transport | string | Type of transport (e.g., any, cloud, local). Default is any. | Yes |
X-TurnCred | string | TURN credentials (in JSON format) for secure WebRTC connection. | Yes |
X-SessionDescription | string | SDP (Session Description Protocol) for initiating audio communication (Base64 encoded). | Yes |
サンプルリクエスト
POST /v1/media/webrtc/audio/51ecfd92-c3c8-4c5e-a823-c17e455ce972/talkdown?transport=any/cloud/local
Host: msapi.arcules.com
Authorization: Bearer {token}
X-TurnCred: {"username":"1724444...","password":"8I0..","uris":["turn:turn.arcules.com:443"],"ttl":300000000000}
X-SessionDescription: eyJ0eXBlIjoi...
サンプルレスポンス
{
"transportType": "any/cloud/local",
"sdp": "eyJ0eXBlIjoi..."
}
エラーハンドリング
エラーコード | メッセージ | 説明 |
200 | OK | The request was successful. |
400 | Bad Request | The request was invalid or cannot be processed. |
401 | Unauthorized | Missing or invalid JWT. |
403 | Forbidden | API users lack the necessary permissions. |
404 | Not Found | The requested resource could not be found. |
429 | Too Many Requests | API rate limit has been exceeded. |
5xx | Server Error | The server encountered an issue processing the request. |
追加リソース
FAQ
Q: どのように認証しますか?
A: リクエストヘッダーに OAuth 2.0 Bearer Token を使用してください。
詳細は認証ガイドを参照してください。
Q: audioChannelIdの値はどのように取得できますか?
A: /v1/devicesエンドポイントのレスポンスから audioChannelId の値を取得できます。
Q: TURN認証情報の目的は何ですか?
A: TURN認証情報は、WebRTCを介した安全なメディア通信を可能にします。
これらは、ビデオおよび音声セッションの接続を確立するために必要です。
Q: WebRTC認証情報はどのくらい有効ですか?
A: WebRTC認証情報は、レスポンスのttlフィールドに指定された期間有効です。
通常、この値はナノ秒単位で、例えば 300000000000ナノ秒 は 5分 に相当します。
継続的な通信を確保するために、有効期限が切れる前に認証情報を再リクエストすることを
お勧めします。
Q: WebRTC通信に対応しているトランスポートタイプは何ですか?
A: APIは、any、cloud、およびlocalのトランスポートタイプをサポートしています。
すべてのオプションを使用すると、システムが最適なトランスポートを自動的に選択します。
Q: セッション記述(SDP)が拒否された場合はどうすればよいですか?
A: X-SessionDescription が拒否された場合、SDPが正しくフォーマットされ、base64 エンコードされていることを確認してください。SDPはWebRTC標準に準拠している必要があります。詳細はWebRTCプロトコル概要を参照してください。
Q: 複数の音声トークダウンセッションを同時に開始できますか?
A: はい、複数の音声トークダウンセッションを開始できますが、各セッションは一意のデバイスIDに紐付けられている必要があります。各セッションに対して有効なTURN認証情報とセッション記述が必要です。
Q: WebRTCトークダウンセッションでサポートされている音声コーデックは何ですか?
A: WebRTCトークダウン(音声出力)セッションは、G.711音声コーデックをサポートしています。メディアペイロードフォーマットは生の G.711 であり、さまざまな音声通信ニーズに対応します。
Q: 低帯域幅環境でWebRTCを使用できますか?
A: はい、WebRTCは低帯域幅環境でのリアルタイム通信に最適化されています。ただし、パフォーマンスはネットワーク条件によって異なる場合があり、より安定した接続のためにcloudトランスポートオプションを使用することをお勧めします。