/* * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #ifndef VSHL_CAPABILITIES_PHONECONTROL_MESSAGES_H_ #define VSHL_CAPABILITIES_PHONECONTROL_MESSAGES_H_ #include #include using namespace std; namespace vshl { namespace capabilities { namespace phonecontrol { static string NAME = "phonecontrol"; // Supported actions from VA -> Apps /* Dial message sent from VA to app handling the calling. * * Payload * { * "callId": "{{STRING}}", * "callee": { * "details": "{{STRING}}", * "defaultAddress": { * "protocol": "{{STRING}}", * "format": "{{STRING}}", * "value": "{{STRING}}" * }, * "alternativeAddresses": [{ * "protocol": "{{STRING}}", * "format": "{{STRING}}", * "value": {{STRING}} * }] * } * } * } * * callId (required): A unique identifier for the call * callee (required): The destination of the outgoing call * callee.details (optional): Descriptive information about the callee * callee.defaultAddress (required): The default address to use for calling the callee * callee.alternativeAddresses (optional): An array of alternate addresses for the existing callee * address.protocol (required): The protocol for this address of the callee (e.g. PSTN, SIP, H323, etc.) * address.format (optional): The format for this address of the callee (e.g. E.164, E.163, E.123, DIN5008, etc.) * address.value (required): The address of the callee. * */ static string PHONECONTROL_DIAL = "dial"; // Supported actions from Apps -> VA /* * App notifies the voiceagents of a change in connection state of a calling device. * * Payload * { * "state" : "{{STRING}}" // CONNECTED or DISCONNECTED * } */ static string PHONECONTROL_CONNECTIONSTATE_CHANGED = "connection_state_changed"; /* * App notifies the voiceagents that call is activated * * callId must match the one that is sent by VA with DIAL message above. * * Payload * { * "callId" : "{{STRING}}" * } */ static string PHONECONTROL_CALL_ACTIVATED = "call_activated"; /* * App notifies the voiceagents of an error in initiating or maintaining a * call on a calling device * * callId must match the one that is sent by VA with DIAL message above. * error: below status codes. * 4xx: Validation failure for the input from the DIAL message * 500: Internal error on the platform unrelated to the cellular network * 503: Error on the platform related to the cellular network * * Payload * { * "callId" : "{{STRING}}" * "error" : "{{STRING}}" * } */ static string PHONECONTROL_CALL_FAILED = "call_failed"; /* * App notifies the voiceagents that call is terminated * * callId must match the one that is sent by VA with DIAL message above. * * Payload * { * "callId" : "{{STRING}}" * } */ static string PHONECONTROL_CALL_TERMINATED = "call_terminated"; // List of actions that are delivered from VA -> Apps static list PHONECONTROL_UPSTREAM_ACTIONS = { PHONECONTROL_DIAL, }; // List of actions that are delivered from Apps -> VA static list PHONECONTROL_DOWNSTREAM_ACTIONS = {PHONECONTROL_CONNECTIONSTATE_CHANGED, PHONECONTROL_CALL_ACTIVATED, PHONECONTROL_CALL_FAILED, PHONECONTROL_CALL_TERMINATED}; } // namespace phonecontrol } // namespace capabilities } // namespace vshl #endif // VSHL_CAPABILITIES_PHONECONTROL_MESSAGES_H_