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.
Related Interfaces
| Interface | Description |
|---|---|
| Alexa.MeetingClientController | Contains directives for starting and ending a meeting. |
| Alexa.Calendar | Finds a meeting on an organizational calendar. |