# Configure AI Call Transcription with Amazon Service

Cloud Voice can turn a live conversation into text as it happens by handing the call audio to Amazon Transcribe. This page shows you how to link Cloud Voice to your own Amazon Transcribe account, and, if you want, to an OpenAI or Google large language model (LLM) so a written summary is produced once each call ends.

:::tip
Already set up AI voicemail transcription with Amazon Transcribe? Turn on **Call Transcription** and choose **Copy Settings from Voicemail Transcription** to bring that configuration across, then change only what you need to.

![Reusing the existing Amazon voicemail transcription configuration for call transcription](/images/pbx/copy-ai-voicemail-settings.png)
:::

## Requirements

Before you start, confirm your system meets both of these:

| Item | Requirement |
|------|-------------|
| Firmware | Version **84.23.0.83** or later. |
| Subscription | An active **Enterprise Plan** or **Ultimate Plan**, which is what makes the **AI Transcription** feature available. |

## Prerequisites

:::note
The GPT/Gemini LLM items below only matter if you want Cloud Voice to build a call summary automatically from the transcript after a call ends. Skip them if you only need the raw transcription.
:::

**Network access**

Cloud Voice must be able to reach the service domains it depends on:

- Amazon Transcribe: `transcribestreaming.<region>.amazonaws.com`
  - Pick an AWS (Amazon Web Services) Region that supports batch transcription and substitute it for `<region>` (for example, `transcribe.me-south-1.amazonaws.com`). Choosing the Region closest to where your system is deployed keeps latency down and transcription stable; the Amazon Transcribe documentation lists the Regions that are supported.
  - To confirm the domain answers on TCP port 443, open an SSH session to your server and run `nc -vz <domain> 443`.
- GPT LLM (OpenAI): `api.openai.com`
- Gemini LLM (Google): `oauth2.googleapis.com` and `generativelanguage.googleapis.com`

:::note
You can test whether these domains are reachable from **Maintenance > Troubleshooting > IP Ping**.
:::

**Service accounts and credentials**

Have the following ready before you begin:

- **Amazon Transcribe**: an Amazon account that holds enough transcription-minute quota (note its account ID), plus an IAM (Identity and Access Management) user allowed to manage its own access keys (note the username and password).
- **GPT/Gemini LLM** (optional), an OpenAI account for GPT, or a Google account for Gemini, each with enough token quota, along with the sign-in credentials.

## Overview

Setting this up takes three steps:

1. Create an access key for Amazon Transcribe.
2. (Optional) Create an API (application programming interface) key for a GPT or Gemini LLM.
3. Configure AI call transcription in Cloud Voice.

## Step 1. Create an access key for Amazon Transcribe

So the phone system can authenticate its requests to Amazon Transcribe, generate an access key in the Amazon Management Console first.

1. Sign in to the [Amazon Management Console](https://console.aws.amazon.com/iam) with your Amazon account ID and your IAM username and password.
2. Open the account menu in the top-right corner and choose **Security credentials**.

   
   ![Cloud Voice, opening Security credentials from the AWS account menu](/images/pbx/copy-aws-access-id.png)

3. On the **My security credentials** page, scroll to the **Access keys** section and click **Create access key**.
4. Create the access key:

   
   ![Cloud Voice, the AWS create access key workflow](/images/pbx/create-a-aws-access-key.png)

   1. Under **Use case**, select **Other**, then click **Next**.
   2. (Optional) In the **Description tag value** field, add a note that will help you recognize the key later.
   3. Click **Create access key**. AWS generates the key.
   4. In the **Access key** section, use the copy icon next to **Access key** and **Secret access key** to copy both values, and save them somewhere safe for later.

:::caution
Treat the **Access key** and **Secret access key** like a password: together they let anything (including the phone system) act on your Amazon account. Store them securely and do not share them, because whoever holds them can run up transcription charges on your account.
:::

## Step 2. (Optional) Create an API key for a GPT or Gemini LLM

If you want the phone system to summarize calls from their transcripts, it calls a GPT or Gemini LLM, and that call needs its own API key. Follow the section that matches the model you plan to use.

### Create an OpenAI API key (OpenAI Platform)

1. Sign in to the [OpenAI Platform](https://platform.openai.com/) with your OpenAI credentials and open **API Keys**.
2. Above the key list, click **Create new secret key**.
3. In the dialog, fill in the new key:

   
   ![Cloud Voice, the OpenAI create secret key dialog](/images/pbx/openai-api-key.png)

   1. In **Name**, enter something that identifies the key.
   2. In the **Project** drop-down, choose the project you want.
   3. Leave the permission set to the default **All**, then click **Create secret key**. The generated key appears.

      ![The generated OpenAI secret key ready to copy](/images/pbx/openai-api-key-detail.png)

   4. Click **Copy** and save the key for later.

### Create a Gemini API key (Google AI Studio)

1. Sign in to [Google AI Studio](https://aistudio.google.com/) with your Google credentials and open **Dashboard > API keys**.
2. Above the key list, click **Create API key**.
3. In the dialog, fill in the new key:

   
   ![Cloud Voice, the Google AI Studio create API key dialog](/images/pbx/google-gemini-api-key.png)

   1. In **Name your key**, enter a name that identifies the key.
   2. In the **Choose an imported project** drop-down, pick a project.

      :::note
      From this drop-down you can select an existing project, import one, or create a new project, whichever you need.
      :::

   3. Click **Create key**. The details of the new key appear.

      
      ![Cloud Voice, the generated Gemini API key details](/images/pbx/google-gemini-api-key-detail.png)

   4. Click **Copy key** and save the key for later.

## Step 3. Configure AI call transcription in Cloud Voice

With the credentials for Amazon Transcribe (and, optionally, your LLM) in hand, enter them in the phone system so it can connect to both services.

1. Sign in to the phone system web portal and open **AI > AI Toolbox**.
2. Turn on the **Call Transcription** switch.
3. Set up the transcription service:

   ![The Amazon transcription service settings in AI Toolbox](/images/pbx/configure-global-ai-call-transcription-with-aws.png)

   1. In the **Service Type** drop-down, select **Custom Service**.
   2. In the **Transcription Service Provider** drop-down, select **AWS**.
   3. In **Access ID**, paste the access key you copied from the Amazon Management Console.
   4. In **Access Key**, paste the secret access key you copied from the Amazon Management Console.
   5. In the **Region** drop-down, select the Region you want.
   6. Set up the LLM service based on whether you want call summaries:
      - **No summaries**: set the **LLM Provider** drop-down to **Disable**.
      - **OpenAI (GPT)**: set the **LLM Provider** drop-down to **OpenAI**, paste the API key you created on the OpenAI Platform into **API key**, and enter your chosen model's ID in **GPT Model**. Check the OpenAI model list for the exact ID; for example, to use GPT-5.4, enter `gpt-5.4`.

        ![The OpenAI LLM fields filled in for call summaries](/images/pbx/openai-llm-configuration.png)

      - **Google (Gemini)**: set the **LLM Provider** drop-down to **Google**, paste the API key you created in Google AI Studio into **API key**, and enter your chosen model's code in **Gemini Model**. Check the Gemini model list for the exact code; for example, to use Gemini 3.1 Pro Preview, enter `gemini-3.1-pro-preview`.

        ![The Google Gemini LLM fields filled in for call summaries](/images/pbx/google-llm-configuration.png)

4. In the **Language** drop-down, choose the language the system should detect and transcribe in the call audio.
5. Under **Extension Scope for This Feature**, decide who can use call transcription:
   - **All Extensions**: every extension can use the feature.
   - **Specific Extensions**: only the extensions, extension groups, or departments you select can use it.
6. Click **Save**.

## Result

- **Transcription Connection Status** shows **Enable**, which means AI call transcription through Amazon Transcribe is live. From here on, two-party call audio is detected and converted to readable text in your chosen language in real time.

  ![The transcription connection status showing as enabled](/images/pbx/transcription-connection-status-aws.png)

  :::note
  You can override the transcription language and mode (automatic or manual) for individual extensions under **Extension and Trunk > Extension > AI > Call Transcription**. See [Configure AI Call Transcription for an Extension](/pbx/ai-guide/configure-ai-call-transcription-for-an-extension/) for details.
  :::

- If you configured an LLM, **LLM Connection Status** also shows **Enable**, confirming the phone system reached your model. Cloud Voice will now generate a summary from each transcript once the call ends.

  ![The LLM connection status showing as enabled](/images/pbx/llm-connection-status.png)
