Alexa.RTCSessionControllerインターフェース3
リアルタイム通信(RTC)対応デバイス向けAlexaスキルには、Alexa.RTCSessionControllerインターフェースを実装します。スキルでAlexa.RTCSessionControllerインターフェースを使用することで、Alexaユーザーはセキュリティカメラやその他のデバイスとリモートで通信できます。たとえば、ユーザーは玄関先の訪問者と通信できます。セキュリティスキルの詳細については、スマートホームセキュリティの概要を参照してください。
カメラを「不在」モードに設定するなど、モードベースのカメラ設定をサポートする場合は、Alexa.SecurityPanelControllerインターフェースを実装することもできます。
Alexa.RTCSessionControllerインターフェースがサポートする言語については、機能インターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。
Alexaスキルの開発やテストを行う際、スマートホームデバッガーを使ってWebRTCセッションのログをリアルタイムに確認できます。詳細については、WebRTCスキル向けスマートホームデバッガーを参照してください。
発話
Alexa.RTCSessionControllerインターフェイスではプリビルド音声対話モデルを使用します。ユーザーがこのような発話をすると、Alexaがそれに対応するディレクティブまたは状態レポートリクエストをスキルに送信します。
ユーザーは、以下のいずれかの発話で会話を開始できます。
Alexa, show me the front door camera.
Alexa, answer the front door.
Alexa, talk to the front door.
Alexa, speak to the front door.
Alexa, talk to the backyard camera.
Alexa, talk to the baby monitor.
Alexa, get the call going with the front door.
Alexa, please call front door.
Alexa, respond to the front door.
Alexa, talk to my front door camera.
Alexa, talk to the person at the main door.
Alexa, montre-moi la caméra de la porte d'entrée.
Alexa, réponds à la porte d'entrée.
Alexa, parle à la porte d'entrée.
Alexa, parle à la caméra du jardin.
Alexa, parle au babyphone.
Alexa, passe l'appel avec la porte d'entrée.
Alexa, appelle la porte d'entrée.
Alexa, réponds à la porte d'entrée.
Alexa, parle à ma porte d'entrée.
Alexa, parle à la personne à la porte.
Alexa, zeige mir die Haustürkamera.
Alexa, beantworte die Haustür.
Alexa, spreche zur Haustür.
Alexa, spreche mit der Haustür.
Alexa, sprich mit der Hinterhofkamera.
Alexa, spreche mit dem Baby-Monitor.
Alexa, nehme den Anruf mit der Haustür an.
Alexa, bitte rufe die Haustür an.
Alexa, antworte auf die Haustür.
Alexa, rede mit meiner Haustürkamera.
Alexa, spreche mit der Person an der Haupttür.
Alexa, मुझे फ्रंट डोर कैमरा दिखाओ
Alexa, सामने वाले दरवाजे का जवाब दो।
Alexa, सामने वाले दरवाजे से बात करो।
Alexa, सामने वाले दरवाजे से बोलो।
Alexa, पिछवाड़े के कैमरे से बात करो।
Alexa, बेबी मॉनिटर से बात करो।
Alexa, सामने वाले दरवाज़े से बात शुरू करो।
Alexa, सामने वाले दरवाज़े से बात शुरू करो।
Alexa, सामने के दरवाजे पर जवाब दो।
Alexa, मेरे सामने वाले दरवाज़े के कैमरे से बात करो।
Alexa, मुख्य दरवाजे पर बैठे व्यक्ति से बात करो।
Alexa, mostrami la videocamera della porta.
Alexa, rispondi alla porta principale.
Alexa, parla con la porta d'ingresso.
Alexa, parla alla porta d'ingresso.
Alexa, parla con la videocamera del cortile.
Alexa, parla con il baby monitor.
Alexa, ricevi la chiamata dalla porta principale.
Alexa, per favore chiama la porta d'ingresso.
Alexa, rispondi alla porta d'ingresso.
Alexa, parla con la videocamera della mia porta d'ingresso.
Alexa, con la persona alla porta principale.
アレクサ、玄関のカメラを見せて
アレクサ、玄関に答えて
アレクサ、玄関に話しかけて
アレクサ、玄関に話して
アレクサ、裏庭のカメラに話しかけて
アレクサ、ベビーモニターに話しかけて
アレクサ、玄関のカメラと通話して
アレクサ、玄関のカメラにかけて
アレクサ、玄関に応答して
アレクサ、玄関のカメラに話しかけて
アレクサ、玄関にいる人に話しかけて
Alexa, mostra a câmera da porta da frente.
Alexa, atende a porta da frente.
Alexa, fale com a porta da frente.
Alexa, fale com a câmera do pátio.
Alexa, fale com o monitor do bebê.
Alexa, ligue para a porta da frente.
Alexa, favor ligar para a porta da frente.
Alexa, responda a porta da frente.
Alexa, fale com minha porta da frente.
Alexa, fale com a pessoa na porta principal.
Alexa, muéstrame la cámara de la puerta principal.
Alexa, contesta a la puerta principal.
Alexa, habla con la puerta principal.
Alexa, habla con la cámara del patio trasero.
Alexa, habla con el vigila bebés.
Alexa, habla con el monitor del bebé.
Alexa, empieza la llamada con la puerta del frente.
Alexa, llama a la puerta del frente.
Alexa, contesta a la puerta frontal.
Alexa, habla con la cámara de mi puerta frontal.
Alexa, habla con la persona en la puerta.
Alexa, laat de voordeurcamera zien.
Alexa, beantwoord de voordeur.
Alexa, praat met de voordeur.
Alexa, spreek met de voordeur.
Alexa, praat met de achtertuincamera.
Alexa, praat met de babymonitor.
Alexa, start een gesprek met de voordeur.
Alexa, bel de voordeur alsjeblieft.
Alexa, reageer op de voordeur.
Alexa, praat met mijn voordeurcamera.
Alexa, praat met de persoon bij de voordeur.
ユーザーは、以下のいずれかの発話で会話を終了できます。
Alexa, go home.
Alexa, stop.
Alexa, accueil.
Alexa, stop.
Alexa, geh nach Hause.
Alexa, stopp.
Alexa, घर जाओ।
Alexa, रुको।
Alexa, vai a casa.
Alexa, fermati.
アレクサ、ホームに戻って
アレクサ、ストップ
Alexa, vá para casa.
Alexa, vai para a tela inicial.
Alexa, pare.
Alexa, pagina de inicio.
Alexa, pantalla principal.
Alexa, detente.
Alexa, ga naar home.
Alexa, stop.
検出
Alexa.RTCSessionControllerをサポートするエンドポイントは、Alexa.Discoveryの標準検出メカニズムを使用して表します。また、Alexa.RTCSessionController機能のコンフィギュレーションで二重通信がサポートされているかどうかを判断します。
表示カテゴリーには、CAMERA、またはCAMERAとDOORBELLの両方を使用します。たとえば、カメラデバイスにはCAMERAを使用し、ビデオドアベルにはCAMERAとDOORBELL両方のカテゴリーを使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。
displayCategoriesリストにほかのカテゴリーを指定する前にCAMERAを指定してください。Alexaにデバイスの健全性を通知する場合、Alexa.EndpointHealthインターフェースも実装してください。
AddOrUpdateReportを送信してAlexa.RTCSessionController機能を追加したり削除したりしないでください。デバイスがリクエストを処理できない状態にある場合は、代わりに、適切なエラーコードを添えてAlexaからのディレクティブに応答します。たとえば、カメラに接続されているブリッジがオフラインの場合、Alexa.ErrorResponseにBRIDGE_UNREACHABLEエラーを指定して応答します。configurationオブジェクト
機能配列のAlexa.RTCSessionControllerエントリには、通常の検出応答フィールドのほかに、次のフィールドを持つconfigurationオブジェクトを含めます。
| フィールド | 説明 | 型 |
|---|---|---|
|
|
デバイスが双方向(全二重)通信をサポートしている場合は |
ブール値 |
検出応答の例
以下は、Alexa.RTCSessionControllerインターフェース、Alexa.EndpointHealthインターフェースをサポートするセキュリティカメラのDiscover.Responseメッセージ例です。
{
"event": {
"header": {
"namespace":"Alexa.Discovery",
"name":"Discover.Response",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload":{
"endpoints":[
{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "エンドポイントのメーカー名",
"description": "Alexaアプリに表示される説明",
"friendlyName": "玄関のカメラ",
"displayCategories": ["CAMERA", "DOORBELL"],
"cookie": {},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa.RTCSessionController",
"version": "3",
"configuration": {
"isFullDuplexAudioSupported": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.EndpointHealth",
"version": "3.1",
"properties": {
"supported": [
{
"name":"connectivity"
}
],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
}
]
}
]
}
}
}
ディレクティブとイベント
Alexa.RTCSessionControllerインターフェースは、次のディレクティブとイベントを定義します。
InitiateSessionWithOfferディレクティブ
InitiateSessionWithOfferディレクティブをサポートすると、ユーザーが玄関のデバイスとリアルタイム通信を開始できます。
以下に、ユーザーの発話の例を示します。
Alexa, talk to my front door camera.
Alexa, parle à ma porte d'entrée.
Alexa, rede mit meiner Haustürkamera.
Alexa, मेरे सामने वाले दरवाज़े के कैमरे से बात करो।
Alexa, parla con la videocamera della mia porta d'ingresso.
アレクサ、玄関のカメラに話しかけて
Alexa, fale com minha porta da frente.
Alexa, habla con la cámara de mi puerta frontal.
Alexa, praat met mijn voordeurcamera.
InitiateSessionWithOfferディレクティブの例
以下の例は、Alexaがスキルに送信するInitiateSessionWithOfferディレクティブを示しています。
{
"directive": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "InitiateSessionWithOffer",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {
"sessionId" : "セッション識別子",
"offer": {
"format" : "SDP",
"value" : "SDPオファー値"
}
}
}
}
InitiateSessionWithOfferディレクティブペイロード
| フィールド | 説明 | 型 |
|---|---|---|
sessionId |
接続したいセッションのIDです。 | バージョン4 UUID |
offer |
SDPオファーです。 | 文字列 |
InitiateSessionWithOffer応答
InitiateSessionWithOfferディレクティブを正しく処理したら、AnswerGeneratedForSessionイベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期で応答する場合、相関トークンと、認可トークンを含めたスコープを含めます。
AnswerGeneratedForSessionイベントの例
以下は、AnswerGeneratedForSessionイベントの例です。
{
"event": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "AnswerGeneratedForSession",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {
"answer": {
"format" : "SDP",
"value" : "SDPアンサー値"
}
}
}
}
AnswerGeneratedForSessionイベントペイロード
| フィールド | 説明 | 型 |
|---|---|---|
answer |
SDPアンサーです。 | 文字列 |
InitiateSessionWithOfferディレクティブのエラー処理
InitiateSessionWithOfferディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponseイベントを使用して応答します。ユーザーがカメラを設定する必要がある場合、NOT_SUPPORTED_IN_CURRENT_MODEエラータイプを返し、currentDeviceModeフィールドにはNOT_PROVISIONEDの値を指定します。カメラまたは接続されたハブがオフラインの場合、ENDPOINT_UNREACHABLEを返します。
SessionConnectedディレクティブ
SessionConnectedディレクティブは、WebRTCセッションが接続されたことを通知します。
SessionConnectedディレクティブを送信するとは限りません。SessionConnectedディレクティブの例
次の例は、Alexaがスキルに送信するSessionConnectedディレクティブを示しています。
{
"directive": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "SessionConnected",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {
"sessionId" : "セッション識別子"
}
}
}
SessionConnectedディレクティブペイロード
| フィールド | 説明 | 型 |
|---|---|---|
sessionId |
元のInitiateSessionWithOfferディレクティブからのセッションのIDです。 |
バージョン4 UUID |
SessionConnected応答
SessionConnectedディレクティブを正しく処理したら、SessionConnectedイベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期で応答する場合、相関トークンと、認可トークンを含めたスコープを含めます。
SessionConnectedイベントの例
{
"event": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "SessionConnected",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {
"sessionId" : "セッション識別子"
}
}
}
SessionConnectedイベントペイロード
| フィールド | 説明 | 型 |
|---|---|---|
sessionId |
元のInitiateSessionWithOfferディレクティブからのセッションのIDです。 |
バージョン4 UUID |
SessionConnectedディレクティブのエラー処理
SessionConnectedディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponseイベントを使用して応答します。
SessionDisconnectedディレクティブ
SessionDisconnectedディレクティブは、WebRTCセッションが切断されたことを通知します。
SessionDisconnectedディレクティブの例
次の例は、Alexaがスキルに送信するSessionDisconnectedディレクティブを示しています。
{
"directive": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "SessionDisconnected",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {
"sessionId" : "セッション識別子"
}
}
}
SessionDisconnectedディレクティブペイロード
| フィールド | 説明 | 型 |
|---|---|---|
sessionId |
元のInitiateSessionWithOfferディレクティブからのセッションのIDです。 |
バージョン4 UUID |
SessionDisconnected応答イベント
SessionDisconnectedディレクティブを正しく処理したら、SessionDisconnectedイベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期で応答する場合、相関トークンと、認可トークンを含めたスコープを含めます。
SessionDisconnectedイベントの例
{
"event": {
"header": {
"namespace": "Alexa.RTCSessionController",
"name": "SessionDisconnected",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {
"sessionId" : "セッション識別子"
}
}
}
SessionDisconnectedイベントペイロード
| フィールド | 説明 | 型 |
|---|---|---|
sessionId |
元のInitiateSessionWithOfferディレクティブからのセッションのIDです。 |
バージョン4 UUID |
SessionDisconnectedディレクティブのエラー処理
SessionDisconnectedディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponseイベントを使用して応答します。
状態レポート
Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、それに対する応答としてStateReportイベントを送信します。この応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。
Alexa.RTCSessionControllerインターフェースでは、取得可能なプロパティを定義しません。ただし、スキルでカメラデバイス用にほかのインターフェースも実装している場合、それらのインターフェースのプロパティについて状態レポートを行う必要があります。StateReport応答の例
{
"event": {
"header": {
"namespace": "Alexa",
"name": "StateReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {}
},
"context": {
"properties": [
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
変更レポート
エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReportイベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。
Alexa.RTCSessionControllerインターフェースでは、プロアクティブに取得可能なプロパティを定義しません。ただし、スキルでカメラデバイス用にほかのインターフェースも実装している場合、それらのインターフェースのプロパティについて変更レポートを行う必要があります。ChangeReportイベントの例
{
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {
"change": {
"cause": {
"type": "PERIODIC_POLL"
},
"properties": [
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "UNREACHABLE"
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
},
"context": {
"properties": [
]
}
}
関連トピック
- リアルタイム通信インターフェースについて
- Alexa.CameraStreamController
- Alexa.DoorbellEventSource
- Alexa.MotionSensor
- Announcing 2-Way Communication APIs
最終更新日: 2025 年 05 月 30 日