Alexa.MeetingProviderController Interface

The Alexa.MeetingProviderController interface describes the messages for creating and joining instant meetings. Alexa sends a request to start an instant meeting and the skill responds to a successful request with a meeting provider and meeting details. Alexa then sends a JoinMeeting request that contains the meeting details. For messages to join a scheduled meeting or join a meeting with a specified ID, see MeetingClientController. For more information, see Build Skills for Conferencing Devices.

Discovery

When you describe an endpoint that implements MeetingProviderController in a discovery response, you should indicate whether it implements the optional supportsInstantMeeting directive. If not specified, supportsInstantMeeting defaults to false.

Discovery Response example


{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "payloadVersion": "3",
            "messageId": "2b7f08b3-02b1-4548-a477-d2fdf67406d4"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "zoom",
                "manufacturerName": "Zoom",
                "friendlyName": "zoom",
                "description": "Instant meeting endpoint for zoom.",
                "cookie": {
                },

                "capabilities": [{
                    "type": "AlexaInterface",
                    "interface": "Alexa.MeetingProviderController",
                    "configuration": {
                        "supportsInstantMeeting": true
                     },
                    "properties": {},
                    "version": "1.0"
                }]
            }]
        }
    }
}

Directives

Indicate support for the CreateInstantMeeting directive with the supportsInstantMeeting flag in the discovery response for the endpoint.

CreateInstantMeeting

Represents a request to start an instant meeting. Typically this occurs when a user asks to join a meeting and one can't be found on the calendar. Alexa responds with a request to join an instant meeting and provides a list of preferred meeting providers, which are obtained from the Alexa for Business configuration for that location.

Message flow

User: Alexa, start the meeting

Alexa does not find a scheduled meeting

Alexa: Do you want to start a new meeting?
User: Yes
Alexa sends a CreateInstantMeeting directive with conference provider options

Skill sends a Response directive with a conference provider specified

Alexa sends a MeetingClientController.JoinMeeting directive that contains the provider details

Example Request

{
    "directive": {
        "endpoint": {
            "endpointId": "applianceId",
            "cookie": {},
            "scope": {
                "type": "BearerTokenWithPartition",
                "token": "access-token-from-skill",
                "partition": "room101",
                "userId": "<user_id>"
            }
        },
        "header": {
            "namespace": "Alexa.MeetingProviderController",
            "name": "CreateInstantMeeting",
            "messageId": "15d0ec9d-801d-4f51-9321-206510d64d9c",
            "payloadVersion": "3",
            "correlationToken": "<correlation_token>"
        },
        "payload": {
            "providerPreferences": [{
                "id": "provider ARN",
                "providerType": "ZOOM",
                "name": "zoom345",
                "protocol": "H323",
                "pinSupport": "REQUIRED",
                "priority": "PREFERRED"
            }]
        }
    }
}

Payload details

Field Description Type Required
providerPreferences A list of name value pairs that represent preferences set by the customer in the Alexa for Business console. List containing 0-200 items. Yes, but can be an empty list.
providerPreferences.id The provider ARN String Yes
providerPreferences.providerType Meeting provider such as Amazon Chime or Skype for Business. String value that represents a conferencing provider configured in the Alexa for Business console: AMAZON_CHIME, BLUEJEANS, CUSTOM, FUZE, GOOGLE_HANGOUTS, POLYCOM, RINGCENTRAL, SKYPE_FOR_BUSINESS, WEBEX, ZOOM. For a custom provider, specify CUSTOM, and the provider name from the Alexa for Business console in the name field. Yes
providerPreferences.name Provider name specified in the Alexa for Business console. String No
providerPreferences.protocol The protocol used to initiate the meeting session, such as SIP. This value is specified in the Alexa for Business console. One of the following string enumeration values: SIP, SIPS, H323 PSTN Yes
providerPreferences.pinSupport Value that indicates whether a pin is required. One of the string enumeration values: REQUIRED, NONE OPTIONAL Yes
providerPreferences.priority Indicates whether the conferencing provider is the preferred, or default, provider. PREFERRED to indicate the default, or NOT_PREFERRED to indicate a non-default provider. Yes

Properties and Events

For this capability, you must reply:

  • Synchronously, which means you send a Response to Alexa from the Lambda function.

When you send a Response, you should include the state of the interface properties in the context of the message.

Reportable Properties

This interface does not define any reportable properties.

Response

When a directive to start an instant meeting is successfully handled, you should respond with a Response event. The payload for the response indicate the provider to be used for the meeting. This can be one of the providerPreferences sent in the request or another provider.

{
    "event": {
        "header": {
            "namespace": "Alexa ",
            "name": " Response",
            "messageId": "c60bc9c1-63c8-4cfc-ae44-22c43140c32e",
            "payloadVersion": "3",
            "correlationToken": "<correlation_token>"
        },
        "payload": {
            "meeting": {
                "preferenceId": "<provider ARN>",
                "providerType": "ZOOM",
                "provider": "zoom345",
                "protocol": "H323",
                "meetingEndpoint": "1.2.3.4",
                "id": "1234567890",
                "pin": "0011223344"
            }
        }
    }
}

Payload details

Field Description Type Required
meeting Provide details of the instant meeting. The meeting details are used in the JoinMeeting request. List containing 0-200 items. Yes, but can be an empty list.
meeting.PreferencesId An ARN specifying one of preference identifiers from the meeting request, or null to indicate a different provider should be used. String No
meeting.providerType Meeting provider such as Amazon Chime or Skype for Business. One of the following string values that represents an established Alexa for Business conferencing provider: AMAZON_CHIME, BLUEJEANS, CUSTOM, FUZE, GOOGLE_HANGOUTS, POLYCOM, RINGCENTRAL, SKYPE_FOR_BUSINESS, WEBEX, ZOOM. For a custom provider, specify CUSTOM, and the provider name from the Alexa for Business console in the name field. Yes
meeting.provider One of the provider names specified in the providerPreferences list in the request, or null to indicate a different provider. If specified, the provider name is sent in the JoinMeeting request. String No
meeting.protocol The protocol used to initiate the meeting session, such as SIP. One of the following string enumeration values: SIP, SIPS, H323 PSTN Yes
meeting.endpoint The endpoint for the meeting. String Yes
meeting.id The identifier for the meeting to join. String Yes
meeting.pin Indicates the meeting pin, if required. String No

ErrorResponse

You should reply with an error if you cannot complete the customer request for some reason. See Alexa.ErrorResponse for more details.

Interface Description
Alexa.MeetingClientController Contains directives for starting and ending a meeting.
Alexa.Calendar Finds a meeting on an organizational calendar.