:doc:`Connect <../../connect>` / Client / start_outbound_voice_contact

****************************
start_outbound_voice_contact
****************************



.. py:method:: Connect.Client.start_outbound_voice_contact(**kwargs)

  

  Places an outbound call to a contact, and then initiates the flow. It performs the actions in the flow that's specified (in ``ContactFlowId``).

   

  Agents do not initiate the outbound API, which means that they do not dial the contact. If the flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

   

  Dialing timeout for this operation can be configured with the “RingTimeoutInSeconds” parameter. If not specified, the default dialing timeout will be 60 seconds which means if the call is not connected within 60 seconds, it fails.

   

  .. note::

    

    UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see `Amazon Connect Service Quotas <https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html>`__ in the *Amazon Connect Administrator Guide*.

    

   

  .. note::

    

    Campaign calls are not allowed by default. Before you can make a call with ``TrafficType`` = ``CAMPAIGN``, you must submit a service quota increase request to the quota `Amazon Connect campaigns <https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html#outbound-communications-quotas>`__.

    

   

  .. note::

    

    For Preview dialing mode, only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API with OutboundStrategy.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/StartOutboundVoiceContact>`_  


  **Request Syntax**
  ::

    response = client.start_outbound_voice_contact(
        Name='string',
        Description='string',
        References={
            'string': {
                'Value': 'string',
                'Type': 'URL'|'ATTACHMENT'|'CONTACT_ANALYSIS'|'NUMBER'|'STRING'|'DATE'|'EMAIL'|'EMAIL_MESSAGE'|'EMAIL_MESSAGE_PLAIN_TEXT',
                'Status': 'AVAILABLE'|'DELETED'|'APPROVED'|'REJECTED'|'PROCESSING'|'FAILED',
                'Arn': 'string',
                'StatusReason': 'string'
            }
        },
        RelatedContactId='string',
        DestinationPhoneNumber='string',
        ContactFlowId='string',
        InstanceId='string',
        ClientToken='string',
        SourcePhoneNumber='string',
        QueueId='string',
        Attributes={
            'string': 'string'
        },
        AnswerMachineDetectionConfig={
            'EnableAnswerMachineDetection': True|False,
            'AwaitAnswerMachinePrompt': True|False
        },
        CampaignId='string',
        TrafficType='GENERAL'|'CAMPAIGN',
        OutboundStrategy={
            'Type': 'AGENT_FIRST',
            'Config': {
                'AgentFirst': {
                    'Preview': {
                        'PostAcceptTimeoutConfig': {
                            'DurationInSeconds': 123
                        },
                        'AllowedUserActions': [
                            'CALL'|'DISCARD',
                        ]
                    }
                }
            }
        },
        RingTimeoutInSeconds=123
    )
    
  :type Name: string
  :param Name: 

    The name of a voice contact that is shown to an agent in the Contact Control Panel (CCP).

    

  
  :type Description: string
  :param Description: 

    A description of the voice contact that appears in the agent's snapshot in the CCP logs. For more information about CCP logs, see `Download and review CCP logs <https://docs.aws.amazon.com/connect/latest/adminguide/download-ccp-logs.html>`__ in the *Amazon Connect Administrator Guide*.

    

  
  :type References: dict
  :param References: 

    A formatted URL that is shown to an agent in the Contact Control Panel (CCP). Contacts can have the following reference types at the time of creation: ``URL`` | ``NUMBER`` | ``STRING`` | ``DATE`` | ``EMAIL``. ``ATTACHMENT`` is not a supported reference type during voice contact creation.

    

  
    - *(string) --* 

    
      - *(dict) --* 

        Well-formed data on a contact, used by agents to complete a contact request. You can have up to 4,096 UTF-8 bytes across all references for a contact.

        

      
        - **Value** *(string) --* 

          A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).

          

        
        - **Type** *(string) --* **[REQUIRED]** 

          The type of the reference. ``DATE`` must be of type Epoch timestamp.

          

        
        - **Status** *(string) --* 

          Status of the attachment reference type.

          

        
        - **Arn** *(string) --* 

          The Amazon Resource Name (ARN) of the reference

          

        
        - **StatusReason** *(string) --* 

          Relevant details why the reference was not successfully created.

          

        
      


  :type RelatedContactId: string
  :param RelatedContactId: 

    The ``contactId`` that is related to this contact. Linking voice, task, or chat by using ``RelatedContactID`` copies over contact attributes from the related contact to the new contact. All updates to user-defined attributes in the new contact are limited to the individual contact ID. There are no limits to the number of contacts that can be linked by using ``RelatedContactId``.

    

  
  :type DestinationPhoneNumber: string
  :param DestinationPhoneNumber: **[REQUIRED]** 

    The phone number of the customer, in E.164 format.

    

  
  :type ContactFlowId: string
  :param ContactFlowId: **[REQUIRED]** 

    The identifier of the flow for the outbound call. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to **Routing**, **Contact Flows**. Choose the flow. On the flow page, under the name of the flow, choose **Show additional flow information**. The ContactFlowId is the last part of the ARN, shown here in bold:

     

    arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/**846ec553-a005-41c0-8341-xxxxxxxxxxxx**

    

  
  :type InstanceId: string
  :param InstanceId: **[REQUIRED]** 

    The identifier of the Amazon Connect instance. You can `find the instance ID <https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html>`__ in the Amazon Resource Name (ARN) of the instance.

    

  
  :type ClientToken: string
  :param ClientToken: 

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see `Making retries safe with idempotent APIs <https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/>`__. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

    This field is autopopulated if not provided.

  
  :type SourcePhoneNumber: string
  :param SourcePhoneNumber: 

    The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.

    

  
  :type QueueId: string
  :param QueueId: 

    The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the flow is used. If you do not specify a queue, you must specify a source phone number.

    

  
  :type Attributes: dict
  :param Attributes: 

    A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

     

    There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type AnswerMachineDetectionConfig: dict
  :param AnswerMachineDetectionConfig: 

    Configuration of the answering machine detection for this outbound call.

    

  
    - **EnableAnswerMachineDetection** *(boolean) --* 

      The flag to indicate if answer machine detection analysis needs to be performed for a voice call. If set to ``true``, ``TrafficType`` must be set as ``CAMPAIGN``.

      

    
    - **AwaitAnswerMachinePrompt** *(boolean) --* 

      Wait for the answering machine prompt.

      

    
  
  :type CampaignId: string
  :param CampaignId: 

    The campaign identifier of the outbound communication.

    

  
  :type TrafficType: string
  :param TrafficType: 

    Denotes the class of traffic. Calls with different traffic types are handled differently by Amazon Connect. The default value is ``GENERAL``. Use ``CAMPAIGN`` if ``EnableAnswerMachineDetection`` is set to ``true``. For all other cases, use ``GENERAL``.

    

  
  :type OutboundStrategy: dict
  :param OutboundStrategy: 

    Information about the outbound strategy.

    

  
    - **Type** *(string) --* **[REQUIRED]** 

      Type of the outbound strategy.

      

    
    - **Config** *(dict) --* 

      Config of the outbound strategy.

      

    
      - **AgentFirst** *(dict) --* 

        The config of agent first outbound strategy.

        

      
        - **Preview** *(dict) --* 

          Information about preview configuration of agent first outbound strategy

          

        
          - **PostAcceptTimeoutConfig** *(dict) --* **[REQUIRED]** 

            Countdown timer configuration after the agent accepted the preview outbound contact.

            

          
            - **DurationInSeconds** *(integer) --* **[REQUIRED]** 

              Duration in seconds for the countdown timer after the agent accepted the contact.

              

            
          
          - **AllowedUserActions** *(list) --* **[REQUIRED]** 

            The actions the agent can perform after accepting the preview outbound contact.

            

          
            - *(string) --* 

            
        
        
      
    
  
  :type RingTimeoutInSeconds: integer
  :param RingTimeoutInSeconds: 

    The maximum time the outbound call will wait for the destination to answer the call, in seconds

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'ContactId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ContactId** *(string) --* 

        The identifier of this contact within the Amazon Connect instance.

        
  
  **Exceptions**
  
  *   :py:class:`Connect.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`Connect.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`Connect.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`Connect.Client.exceptions.InternalServiceException`

  
  *   :py:class:`Connect.Client.exceptions.LimitExceededException`

  
  *   :py:class:`Connect.Client.exceptions.DestinationNotAllowedException`

  
  *   :py:class:`Connect.Client.exceptions.OutboundContactNotPermittedException`

  