

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS Lambda Funciones de creación para el servicio de audio PSTN del SDK de Amazon Chime
<a name="writing-lambdas"></a>

En los temas de esta sección se explica cómo crear AWS Lambda las funciones que utiliza el servicio de audio PSTN. 

**Topics**
+ [Descripción de los eventos de telefonía para el servicio de audio PSTN de Amazon Chime SDK](pstn-invocations.md)
+ [Descripción de las acciones del servicio de audio PSTN de Amazon Chime SDK](about-actions.md)
+ [Más información sobre los eventos de telefonía que invocan AWS Lambda funciones para el servicio de audio PSTN del SDK de Amazon Chime](invoking-Lambda.md)
+ [Respuesta a las invocaciones con listas de acciones mediante el servicio de audio PSTN de Amazon Chime SDK](invoke-on-call-leg.md)
+ [Acciones compatibles con el servicio de audio PSTN de Amazon Chime SDK](specify-actions.md)
+ [Uso de encabezados SIP en el servicio de audio PTSN de Amazon Chime SDK](sip-headers.md)
+ [Uso de registros de detalles de llamada en el servicio de audio PTSN de Amazon Chime SDK](attributes.md)
+ [Descripción de los tiempos de espera y los reintentos del servicio de audio PTSN de Amazon Chime SDK](timeouts.md)
+ [Depuración y solución de problemas del servicio de audio PTSN de Amazon Chime SDK](debug-pstn.md)
+ [Descripción de VoiceFocus del servicio de audio PTSN de Amazon Chime SDK](voice-focus.md)
+ [Servicio de audio Amazon Chime SDK PSTN](chm-dg-glossary.md)

# Descripción de los eventos de telefonía para el servicio de audio PSTN de Amazon Chime SDK
<a name="pstn-invocations"></a>

El servicio de audio invoca su AWS AWS Lambda función cuando se producen determinados eventos durante una llamada. El siguiente ejemplo muestra los eventos y el texto que sigue al ejemplo explica cada evento.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 3, 
    "InvocationEventType": "event-type", 
    "CallDetails": { 
        "TransactionId": "transaction-id-1", 
        "AwsAccountId": "aws-acct-id-1", 
        "AwsRegion": "us-east-1", 
        "SipMediaApplicationId": "sip-media-app-id-1", 
        "Participants": [ 
            { 
                "CallId": "call-id-1", 
                "ParticipantTag": "LEG-A", 
                "To": "e164PhoneNumber", 
                "From": "e164PhoneNumber", 
                "Direction": "Inbound/Outbound", 
                "StartTimeInMilliseconds": "1641998241509", 
                "Status": "Connected/Disconnected" 
            } 
        ] 
    } 
}
```

**SchemaVersion**  
La versión del esquema utilizada para crear este objeto de evento.

**Sequence**  
La secuencia de eventos que invocan su función. AWS Lambda Cada vez que se invoca la función durante una llamada, la secuencia se incrementa.

**InvocationEventType**  
El tipo de evento que desencadena una AWS Lambda invocación. Para obtener más información, consulte [Event types (Tipos de eventos)](#pstn-event-types) más adelante en este tema.

**CallDetails**  
Información sobre la llamada asociada a la AWS Lambda invocación.

**TransactionId**  
El ID de una llamada asociada a una AWS Lambda invocación.

**AwsAccountId**  
El ID de AWS cuenta asociado a la aplicación multimedia SIP que dio lugar al enrutamiento de la llamada.

**SipMediaApplicationId**  
El ID de la aplicación multimedia SIP asociada a la llamada.

**Participants**  
Información sobre los participantes de la llamada que invoca una AWS AWS Lambda función.

**CallId**  
Un ID único asignado a cada participante.

**ParticipantTag**  
Cada participante de la llamada recibe una etiqueta, `LEG-A` o `LEG-B`.

**To**  
El número de teléfono «para» del participante en formato E.164.

**From**  
El número de teléfono del participante en formato E.164.

**Direction**  
La dirección de la que proviene el tramo de una llamada. `Inbound` representa una llamada realizada al servicio de audio. `Outbound` representa una llamada realizada desde el servicio de audio.

**StartTimeInMilliseconds**  
El tiempo de la época en milisegundos, que comienza cuando un participante se une a una llamada.

**Status**  
Si un participante está `Connected` o `Disconnected`

## Event types (Tipos de eventos)
<a name="pstn-event-types"></a>

El servicio de audio invoca la función de Lambda con los siguientes tipos de eventos:

**NEW\$1INBOUND\$1CALL**  
Se ha iniciado una nueva llamada mediante un número de teléfono asociado a su aplicación multimedia SIP.

**NEW\$1OUTBOUND\$1CALL**  
Se ha realizado una nueva llamada saliente a través de la [CreateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API.

**ACTION\$1SUCCESSFUL**  
Se ha realizado correctamente una acción devuelta por tu AWS Lambda función. Las acciones finalizadas satisfactoriamente incluyen aquellos `ActionData` que coincidan con la acción.   

```
    "ActionData": {
        // The previous successful action 
    },
```

**ACTION\$1FAILED**  
Una acción devuelta por tu AWS Lambda función no se ha realizado correctamente. Entre las acciones fallidas se incluyen `ActionData` que coinciden con la acción fallida, un tipo de error y un mensaje de error que describe el error:  

```
    "ActionData": {
        // The previous unsuccessful action
        "ErrorType": "error-type",
        "ErrorMessage": "error message"
    },
```

**ACTION\$1INTERRUPTED**  
Una invocación a la [ UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API interrumpió una acción en proceso de ejecución. Los `ActionData` incluyen las acciones interrumpidas:   

```
"ActionData": {
        // The action that was interrupted
    },
```

**HANGUP**  
Un usuario o la aplicación colgaron el tramo de una llamada. Los `ActionData` incluyen los siguientes detalles sobre el evento:  

```
   "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "SipResponseCode": 486,
            "CallId": "c70f341a-adde-4406-9dea-1e01d34d033d",
            "ParticipantTag": "LEG-A"
        }
    },
```  
**Type**  
Colgar.  
**Parameters**  
Información sobre el evento `HANGUP`:   
+ **SipResponseCode**— El código de respuesta asociado al evento. Los códigos más comunes son:
  + **0** — Borrado normal
  + **480** — Sin respuesta
  + **486** — Usuario ocupado
+ **CallId**El identificador del participante que colgó el teléfono.
+ **ParticipantTag**La etiqueta del participante que colgó.

**CALL\$1ANSWERED**  
El servicio de audio respondió a una llamada entrante. Este evento se devuelve en una llamada telefónica externa, a menos que la llamada sea transitoria.

**INVALID\$1LAMBDA\$1RESPONSE**  
La respuesta proporcionada a la última AWS Lambda invocación causó un problema. Los `ActionData` incluyen los siguientes campos adicionales:  

```
    "ErrorType": "error-type-1", 
    "ErrorMessage": "error-msg-1"
```

**DIGITS\$1RECEIVED**  
La aplicación recibió los dígitos del DTMF después de completar una acción de `ReceiveDigits`. Los `ActionData` incluyen los dígitos recibidos.  

```
    "ActionData": {
        "ReceivedDigits": ###
        // The ReceiveDigits action data
    },
```

**CALL\$1UPDATE\$1REQUESTED**  
Se ha invocado la [UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API. Los `ActionData` incluyen información sobre la solicitud de actualización:  

```
    "ActionData": {
        "Type": "CallUpdateRequest", 
        "Parameters": {
            "Arguments": {
                "leg": "LEG-A"
                }
            }
        },
    }
```

**RINGING**  
Está sonando un tramo de llamada

# Descripción de las acciones del servicio de audio PSTN de Amazon Chime SDK
<a name="about-actions"></a>

En el servicio de audio PSTN, las aplicaciones multimedia SIP activan funciones. AWS Lambda *A su vez, las AWS Lambda funciones pueden devolver una lista de instrucciones conocidas como acciones.* Una acción es un elemento que se desea ejecutar durante una llamada telefónica, como enviar o recibir dígitos, unirse a una reunión, etc. Las acciones también pueden devolver datos, por lo que puede pensar en las acciones como objetos con campos de datos. Para obtener más información sobre las acciones que invoca el servicio de audio PSTN, consulte [Descripción de los eventos de telefonía para el servicio de audio PSTN de Amazon Chime SDK](pstn-invocations.md).

# Más información sobre los eventos de telefonía que invocan AWS Lambda funciones para el servicio de audio PSTN del SDK de Amazon Chime
<a name="invoking-Lambda"></a>

El servicio de audio invoca AWS Lambda funciones en respuesta a diferentes eventos. Cada invocación especifica un tipo de evento de invocación y proporciona los detalles de la llamada, incluidos sus participantes, si corresponde. En los temas siguientes se describen los eventos del servicio de audio que invocan funciones AWS Lambda . 

# Realización de una llamada saliente para utilizar el servicio de audio PSTN de Amazon Chime SDK
<a name="use-create-call-api"></a>

Puede usar la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html) para finalizar una llamada saliente. La API invoca el punto de conexión de un objeto de `SIP media application ID` especificado. Los clientes pueden controlar el flujo de la llamada realizando diferentes acciones de señalización y [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html) desde el punto de conexión. 

Si la respuesta es correcta, la API devuelve un código de estado http 202 junto con un ID de transacción, que puede usar con la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html) para actualizar una llamada en curso.

El siguiente diagrama muestra las invocaciones realizadas al punto final de la AWS Lambda función para una llamada saliente.

![\[Diagrama que muestra el flujo de programación de las invocaciones realizadas al punto de conexión de AWS Lambda.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sip-api-1.png)


El punto de conexión configurado para la aplicación multimedia SIP se invoca para los diferentes estados de la llamada saliente. Cuando un cliente inicia una llamada, Amazon Chime SDK invoca el punto de conexión con un tipo de evento `NEW_OUTBOUND_CALL` de invocación. 

En este ejemplo se muestra un evento de invocación típico para una `NEW_OUTBOUND_CALL`.

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "NEW_OUTBOUND_CALL",
        "CallDetails": {
            "TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234"
                }
            ]
    }
}
```

Se omite cualquier respuesta a una AWS Lambda invocación relacionada con un evento.

Cuando recibimos una notificación `RINGING` del receptor, Amazon Chime SDK vuelve a invocar el punto de conexión configurado. 

En este ejemplo se muestra un evento de invocación típico para `RINGING`.

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "RINGING",
        "CallDetails": {
            "TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234"
                }
           ]
    }
}
```

Se omite cualquier respuesta a una AWS Lambda invocación relacionada con un evento.

Si el receptor no responde a la llamada o la llamada falla debido a un error, Chime desconecta la llamada e invoca el punto de conexión con el tipo de evento `Hangup`. Para obtener más información sobre el tipo de evento `Hangup`, consulte [Uso del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada](case-5.md). 

Si se responde a la llamada, Chime invoca el punto de conexión con la acción `CALL_ANSWERED`. En este ejemplo se muestra un evento de invocación típico.

```
{
  "SchemaVersion": "1.0",
    "Sequence": 1,
    "InvocationEventType": "CALL_ANSWERED",
    "CallDetails": {
        ""TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

En este punto, puede devolver las acciones respondiendo a la invocación con una lista de acciones. Si no desea ejecutar ninguna acción, responda con una lista vacía. Puede responder con un máximo de 10 acciones por cada AWS Lambda invocación y puede invocar una función Lambda 1000 veces por llamada. Para obtener más información sobre cómo responder con conjuntos de acciones, consulte [Respuesta a las invocaciones con listas de acciones mediante el servicio de audio PSTN de Amazon Chime SDK](invoke-on-call-leg.md).

# Recepción de una llamada entrante mediante el servicio de audio PSTN de Amazon Chime SDK
<a name="case-1"></a>

Cuando se produce un evento de `NEW_INCOMING_CALL`, el servicio de audio crea un `TransactionID` único y un `CallID` único que persiste hasta que se produce el evento `HANGUP`.

Puede responder de varias maneras a un evento `NEW_INCOMING_CALL`. Por ejemplo:
+ Envíe las acciones `PlayAudio` o `RecordAudio` y responda automáticamente a la llamada. 
+ Envíe una acción `Pause`.
+ Envíe una acción `Hangup`, en cuyo caso no se responde a la llamada y no se le cobra al cliente.
+ Envíe una acción `CallAndBridge` y añada otro usuario a la llamada.
+ No haga nada, el intento de llamada se agota después de 30 segundos.

Cuando se recibe una nueva llamada entrante, la aplicación multimedia SIP invoca una función de AWS Lambda con esta carga útil.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "NEW_INBOUND_CALL"
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

# Especificación de acciones en respuesta a eventos de telefonía para el servicio de audio de Amazon Chime SDK PSTN
<a name="use-case-2"></a>

En el servicio de audio, las aplicaciones multimedia SIP invocan AWS Lambda funciones. A su vez, una función de Lambda puede devolver una lista de instrucciones conocidas como *acciones*. Una acción es un elemento que se desea ejecutar en un tramo de una llamada telefónica, como enviar o recibir dígitos, unirse a una reunión, etc. Para obtener más información sobre las acciones que invoca el servicio de audio PSTN, consulte [Descripción de los eventos de telefonía para el servicio de audio PSTN de Amazon Chime SDK](pstn-invocations.md).

Cuando una aplicación multimedia SIP ejecuta correctamente una lista de acciones, la aplicación llama a la AWS Lambda función con un tipo de evento de invocación de. `ACTION_SUCCESSFUL` Si alguna de las acciones no se completa, la aplicación multimedia SIP llama a la AWS Lambda función con el `ACTION_FAILED` evento.

La aplicación multimedia SIP solo devuelve `ACTION_SUCCESSFUL` si todas las acciones de la lista se han realizado correctamente. Si alguna de las acciones de la lista falla, la aplicación multimedia SIP invoca la AWS Lambda función con el `ACTION_FAILED` evento y borra las acciones restantes de la lista después de la fallida. A continuación, la aplicación multimedia SIP ejecuta la siguiente acción devuelta por la AWS Lambda función. La clave `ActionData` se utiliza para identificar qué llamada ha invocado la función.

El siguiente evento muestra un ejemplo de carga útil para el tipo de evento de invocación `ACTION_SUCCESSFUL` después de una acción `PlayAudioAndGetDigits`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "failure-audio-file.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "failure-audio-file.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ReceivedDigits": "123"
    }
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
                }
            ]
        }
    }
}
```

Cuando alguna acción de una lista no se completa correctamente, la aplicación multimedia SIP invoca la AWS Lambda función para notificarle el error y ejecutar un nuevo conjunto de acciones en esa llamada. El siguiente evento muestra un ejemplo de carga útil para el tipo de evento de invocación `ACTION_FAILED` después de una acción `PlayAudio`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file.wav"            
            }
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
}
```

# Recepción de una llamada entrante mediante el servicio de audio PSTN de Amazon Chime SDK
<a name="case-4"></a>

Esta acción `ReceiveDigits` se utiliza para recopilar los dígitos DTMF entrantes y compararlos con una expresión regular. Cuando la aplicación multimedia SIP recibe dígitos que coinciden con la expresión regular, invoca una AWS Lambda función con un `ACTION_SUCCESSFUL` evento. Los dígitos recopilados aparecen en el valor `ReceivedDigits` del objeto `ActionData`.

Por ejemplo:

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "ReceivedDigits": "",
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-1",
            "InputDigitsRegex": "^\d{2}#$",
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "FlushDigitsDurationInMilliseconds": 10000
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Una vez que la persona que llama introduce dígitos que coinciden con su patrón de expresión regular, la aplicación multimedia SIP invoca una AWS Lambda función que devuelve el siguiente tipo de carga útil:

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "DIGITS_RECEIVED",
    "ActionData": {
        "ReceivedDigits": "11#",
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-1",
            "InputDigitsRegex": "^\d{2}#$",
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "FlushDigitsDurationInMilliseconds": 10000
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

[Consulte un ejemplo práctico en: -demand-recording GitHub https://github.com/aws-samples/ amazon-chime-sma-on](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Actualización de las llamadas en curso para el audio PTSN de Amazon Chime SDK
<a name="update-sip-call"></a>

Como parte del servicio de audio PSTN, las aplicaciones multimedia SIP permiten configurar las acciones que se ejecutan en una llamada invocando funciones de Lambda definidas por el usuario en función de los eventos de la llamada, como una llamada entrante o dígitos DTMF. la [,UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)La API le permite activar una función Lambda en cualquier momento mientras una llamada esté activa, sustituyendo las acciones actuales por las nuevas acciones devueltas por la invocación.

**Flujo de trabajo**  
Usas la [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)La API en diversos casos, como añadir participantes a una reunión, silenciar o reactivar el sonido de un usuario, desconectarlo, etc. El siguiente caso de uso describe un flujo de trabajo típico.

Un usuario llama y escucha música mientras Amazon Chime SDK configura la reunión. Una vez completada la configuración, Amazon Chime SDK detiene el audio y admite a la persona que llama a la reunión. A continuación, suponga el uso de un sistema independiente, `MyMeetingService`, que gestione las reuniones. Todas las llamadas entrantes deben ponerse en espera. Chime notifica las MyMeetingService llamadas entrantes y, a MyMeetingService continuación, crea un asistente para cada llamada y, cuando MyMeetingService está listo para iniciar la reunión, lo notifica a la aplicación multimedia SIP y proporciona un token para unirse a la reunión.

Para gestionar este caso, la función de Lambda debe implementar la siguiente lógica. 
+ Cuando llega una nueva llamada entrante, se invoca la Lambda con un evento `NEW_INBOUND_CALL`. La Lambda llama a `MyMeetingService` y pasa el `transactionId` que identifica la llamada actual y devuelve la acción `PlayAudio`.
+ Cuando `MyMeetingService` esté listo para añadir a la persona que ha convocado a la reunión, el servicio llama al [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API y pasa la llamada `transactionId` y `JoinToken` como parte de sus argumentos. Esta llamada a la API vuelve a activar la función de Lambda, ahora con el evento `CALL_UPDATE_REQUESTED`. La MyMeetingService pasa `JoinToken` a la función Lambda como parte del evento y el token se utiliza para devolver la `JoinChimeMeeting` acción a la aplicación multimedia SIP, que la interrumpe y conecta a la `PlayAudio` persona que llama a la reunión.

![\[Diagrama que muestra el flujo de datos en la API UpdateSipMediaApplicationCall.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/update-sip-call-flow3.png)


**nota**  
la [,UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)La API devuelve el HTTP 202 (aceptado). La aplicación multimedia SIP confirma que la llamada está en curso y que se puede actualizar, por lo que intenta invocar la función de Lambda. La invocación se realiza de forma asíncrona, por lo que una respuesta correcta de la API no garantiza que la función de Lambda se haya iniciado o completado.

En el siguiente ejemplo se muestra la sintaxis de solicitud.

```
{
    "SipMediaApplicationId": "string",
    "TransactionId": "string",
    "Arguments": {
        "string": "string"
    } 
}
```

**Parámetros de solicitud**
+ `SipMediaApplicationId`: el ID de la aplicación multimedia SIP que gestiona la llamada. 
+ `TransactionId`: ID de transacción de la llamada. En el caso de las llamadas entrantes, el `TransactionId` se puede obtener del evento `NEW_INCOMING_CALL` pasado a la función de Lambda en su primera invocación. En el caso de las llamadas salientes, `TransactionId` se devuelve en la respuesta de [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html). 
+ **Argumentos**: argumentos personalizados que se ponen a disposición de la función de Lambda como parte de los datos de la acción `CallUpdateRequest`. Puede contener de 0 a 20 pares de clave-valor.

A continuación se muestra un ejemplo de solicitud:

```
aws chime update-sip-media-application-call --sip-media-application-id feb37a7e-2b66-49fb-b2dd-30f4780dc36d --transaction-id 1322a4e7-c106-4e70-aaaf-a8fa4c77c0cb --arguments '{"JoinToken": "abc123"}'
```

**Sintaxis de la respuesta**

```
{
  "SipMediaApplicationCall": {
  "TransactionId": "string"
  }
}
```

**Elementos de respuesta**
+ **TransactionId**— El identificador de la transacción de llamada, el mismo identificador que el de la solicitud.

En el siguiente ejemplo, se muestra un evento de invocación `CALL_UPDATE_REQUESTED`.

```
{
  "SchemaVersion": "1.0",
  "Sequence": 2,
  "InvocationEventType": "CALL_UPDATE_REQUESTED",
  "ActionData": {
    "Type": "CallUpdateRequest",
    "Parameters": {
      "Arguments": {
        "string": "string"
      }
    }
  },
  "CallDetails": {
    ...
  }
}
```

**Elementos de evento**
+ **SchemaVersion**— La versión del esquema JSON (1.0)
+ **Secuencia**: el número de secuencia del evento de la llamada
+ **InvocationEventType**— El tipo de evento de invocación de Lambda, en este caso, `CALL_UPDATE_REQUESTED`
+ **ActionData**— Los datos asociados a la `CallUpdateRequest` acción.
  + **Tipo**: el tipo de acción, en este caso, `CallUpdateRequest`
  + **Parámetros**: los parámetros de la acción
    + **Argumentos**: los argumentos que se pasan como parte de la solicitud de API `UpdateSipMediaApplicationCall`
+ **CallDetails**— La información sobre el estado actual de la llamada

**Comprensión de las acciones interrumpibles y no interrumpibles**  
Cuando una función de Lambda devuelve una nueva lista de acciones mientras se ejecutan las acciones existentes, todas las acciones que siguen a la acción en curso se sustituyen por las nuevas acciones. En algunos casos, la función de Lambda interrumpe las acciones en curso para ejecutar nuevas acciones de forma inmediata.

El siguiente diagrama muestra un ejemplo típico. El texto que aparece debajo del diagrama explica la lógica.

![\[Diagrama que muestra cómo se pueden reemplazar las acciones durante una llamada en curso a una aplicación multimedia SIP.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/update-sip-actions.png)


Si la acción 2 es interrumpible, la detenemos y ejecutamos la nueva acción 1 en su lugar.

Si la acción 2 no es interrumpible, se completa antes de que comience la nueva acción 1.

En ambos casos, la acción 3 no se ejecuta.

Si algo interrumpe una acción, la función de Lambda se invoca con un evento `ACTION_INTERRUPTED`. Este evento se utiliza únicamente con fines informativos. La aplicación multimedia SIP ignora todas las acciones devueltas por esta invocación.

Tipos de acciones interrumpibles:
+ `PlayAudio`
+ `RecordAudio`
+ `Pause`

**Función de Lambda de ejemplo**  
En este ejemplo, se muestra una función de Lambda típica que reproduce un archivo de audio, pasa un token de unión y actualiza la llamada.

```
const MMS = require('my-meeting-service');
const myMeetingServiceClient = new MMS.Client();

exports.handler = async (event) => {
    console.log('Request: ' + JSON.stringify(event));
    
    const playAudio = () => {
      return {
        Type: 'PlayAudio',
        Parameters: {
          ParticipantTag: 'LEG-A',
          AudioSource: {
            Type: 'S3',
            BucketName: 'chime-meetings-audio-files-bucket-name',
            Key: 'welcome.wav'
          }
        }
      }
    }
    
    const joinChimeMeeting = (joinToken) => {
      return {
        Type: 'JoinChimeMeeting',
        Parameters: {
          JoinToken: joinToken
        }
      }
    }
    
    const response = (...actions) => {
      const r = {
        SchemaVersion: '1.0',
        Actions: actions
      };
      console.log('Response: ' + JSON.stringify(r));
      return r;
    };
    
    switch (event.InvocationEventType) {
      case 'NEW_INBOUND_CALL': 
        myMeetingServiceClient.addPendingCall(event.CallDetails.TransactionId);         
        return response(playAudio());      
      case 'CALL_UPDATE_REQUESTED':
        const joinToken = event.ActionData.Parameters.Arguments['JoinToken']
        return response(joinChimeMeeting(joinToken));
      default:
        return response();
    }
}
```

# Uso del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada
<a name="case-5"></a>

Puede usar la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html) para finalizar una llamada saliente. La API invoca el punto de conexión de un **ID de aplicación multimedia SIP específico.** Los clientes pueden controlar el flujo de la llamada devolviendo las acciones a la aplicación multimedia SIP.

Si la respuesta es correcta, la API devuelve un código de estado http 202 junto con el `transactionId`, que puede usar con la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html) para actualizar una llamada en curso.

El siguiente diagrama muestra las invocaciones realizadas al punto final de la AWS Lambda función para una llamada saliente.

![\[El flujo de datos al invocar la API CreateSipMediaApplicationCall. La API invoca un punto de conexión diferente cuando cambia el estado de una llamada saliente.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sip-api-1.png)


El punto de conexión configurado para la aplicación multimedia SIP se invoca para los diferentes estados de la llamada saliente. Cuando un cliente finaliza una llamada, Amazon Chime SDK invoca el punto de conexión con un tipo de evento de invocación `HANGUP`. 

En este ejemplo se muestra un evento de invocación típico para una `HANGUP`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 6,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "Direction": "Inbound",
                 "To": "+12065551212",
                "From": "+15105550101",
                "StartTimeInMilliseconds": "1597009588",
                "Status": "Disconnected"
            }
        ]
    }
}

// if LEG-B receives a hangup in a bridged call, such as a meeting ending
{
    "SchemaVersion": "1.0",
    "Sequence": 6,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "Leg-A",
                 "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "1597009588",
                "Status": "Connected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "Leg-B",
                "To": "+17035550122",
                "From": "SMA",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "15010595",
                "Status": "Disconnected"
            }
        ]
    }
}
```

# Descripción de end-to-end las llamadas del servicio de audio PSTN del SDK de Amazon Chime
<a name="use-cases"></a>

Este caso de uso proporciona un código de ejemplo para recibir una llamada telefónica de una persona que llama a través de la PSTN, saludar a la persona que llama con un mensaje de audio, obtener el PIN de la reunión de la persona que llama, reproducir audio y unir a la persona que llama a la reunión.

**Acciones y eventos de invocación de**  
El servicio de audio transfiere los eventos de invocación a AWS Lambda las funciones como objetos JSON. Los objetos incluyen el tipo de evento de invocación y cualquier metadato relevante. La función de AWS Lambda también devuelve las acciones de las aplicaciones multimedia SIP como objetos JSON, y esos objetos incluyen un tipo de acción y cualquier metadato relevante.

En la siguiente tabla se enumeran los eventos de invocación y los posibles `ActionData.Type` cuando recibe un evento de invocación.


|  Evento de invocación  |  ActionData.Tipo  | 
| --- | --- | 
|  ACTION\$1SUCCESSFUL  |  CallAndBridge ReceiveDigits PlayAudio PlayAudioAndGetDigits  JoinChimeMeeting ModifyChimeMeetingAttendees RecordMeeting  | 
|  ACTION\$1FAILED  |  CallAndBridge PlayAudio PlayAudioAndGetDigits ModifyChimeMeetingAttendees RecordMeeting  | 
| HANGUP |  HangUp  | 
|  DIGITS\$1RECEIVED  | ReceiveDigits | 

**nota**  
Para implementar el siguiente caso de uso, necesita al menos un número de teléfono en su inventario de Amazon Chime SDK, un objeto gestionado por aplicaciones multimedia SIP que utilice una función de AWS Lambda con un nombre de recurso de Amazon (ARN) y una regla SIP que utilice el número de teléfono como activador.

Cuando el SDK de Amazon Chime recibe una llamada al número de teléfono especificado en la regla, el servicio de audio PSTN invoca una AWS Lambda función con el tipo de evento de invocación. `NEW_INBOUND_CALL`

```
{
    "SchemaVersion": "1.0",
    "Sequence": 1,
    "InvocationEventType": "NEW_INBOUND_CALL",
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Puede programar la AWS Lambda función para validar los detalles de las llamadas y guardarlos para utilizarlos en el futuro. Para un `NEW_INBOUND_CALL` evento, la AWS Lambda función responde con un conjunto de acciones que reproducen un mensaje de bienvenida y solicitan el PIN de la reunión.

Los archivos de audio tienen los siguientes requisitos:
+ Debe reproducir los archivos de audio de un bucket de Amazon Simple Storage Service (S3). El bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, debe conceder el permiso de `s3:GetObject` a la entidad principal del servicio Amazon Chime SDK Voice Connector: `voiceconnector.chime.amazonaws.com`. Para ello puede utilizar la consola S3 o la interfaz de la línea de comandos (CLI).
+ Debe utilizar archivos WAV PCM de un tamaño no superior a 50 MB. El SDK de Amazon Chime recomienda 8 en mono KHz .
+ Los metadatos de S3 de cada archivo WAV deben contener `{'ContentType': 'audio/wav'}`.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type" : "PlayAudio",    
            "Parameters" : {
                "CallId": "call-id-1",
                
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "welcome-to-meetings.wav"
                }
            }
        },
        {
            "Type": "PlayAudioAndGetDigits",
            "Parameters" : {
                "ParticipantTag": "LEG-A",
                
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "enter-meeting-pin.wav"
                },
                "FailureAudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "invalid-meeting-pin.wav"
                },
                "MinNumberOfDigits": 3,
                "MaxNumberOfDigits": 5,
                "TerminatorDigits": ["#"],
                "InBetweenDigitsDurationInMilliseconds": 5000,
                "Repeat": 3,
                "RepeatDurationInMilliseconds": 10000
            }
        }
    ]
}
```

La aplicación multimedia SIP ejecuta estas acciones en el tramo A de la llamada. Suponiendo que la `PlayAudioAndGetDigits` acción reciba los dígitos, la aplicación multimedia SIP invoca la AWS Lambda función con el tipo de `ACTION_SUCCESSFUL` evento.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "ParticipantTag": "LEG-A",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "chime-meetings-audio-files-bucket-name",
                "Key": "enter-meeting-pin.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "chime-meetings-audio-files-bucket-name",
                "Key": "invalid-meeting-pin.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ReceivedDigits": "12345" // meeting PIN
    },
    "CallDetails": {
        ... // same as in previous event
    }
}
}
```

Puede programar una AWS Lambda función para identificar a la persona que llama en función de los `CallDetails` datos. También puede validar el PIN de la reunión recibido anteriormente. Si utiliza un PIN correcto, utilice [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html)y [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html) APIs para crear la reunión del SDK de Amazon Chime y generar el token de unión que utilizará el asistente a la reunión. La AWS Lambda función responde con la acción de unirse a la reunión del SDK de Amazon Chime.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "JoinChimeMeeting",
            "Parameters": {
                "JoinToken": "meeting-attendee-join-token"
            }
        }
    ]
}
```

Suponiendo que `JoinToken` sea válido, la aplicación multimedia SIP se une a la reunión del SDK de Amazon Chime e invoca una AWS Lambda función con el `ACTION_SUCCESSFUL` evento, donde `CallDetails` contiene los datos de la aplicación multimedia SIP y el servicio Chime Media () `LEG-B` 

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "JoinChimeMeeting",
        "Parameters" : {
            "JoinToken": "meeting-attendee-join-token"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id", 
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "LEG-B",
                "To": "SMA",
                "From": "+17035550122",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Si desea dejar de ejecutar acciones en la llamada o el tramo de llamada en este momento, puede responder con un conjunto de acciones vacío.

```
{
    "SchemaVersion": "1.0"
    "Actions": []
}
```

Cuando la persona que llama cuelga, la aplicación multimedia SIP invoca la función junto con el evento. AWS Lambda `HANGUP` 

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id", 
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Disconnected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "LEG-B",
                "To": "SMA",
                "From": "+17035550122",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Disconnected"
            }
        ]
    }
}
```

Si responde a un evento `Hangup` con una acción, la aplicación multimedia SIP ignora la acción si ningún otro `Participants` muestra ningún `Status` como `Connected`.

# Respuesta a las invocaciones con listas de acciones mediante el servicio de audio PSTN de Amazon Chime SDK
<a name="invoke-on-call-leg"></a>

Puedes responder a un evento de AWS Lambda invocación con una lista de acciones para ejecutar en cada uno de los participantes de una llamada. Puedes responder con un máximo de 10 acciones por cada AWS Lambda invocación y puedes invocar una AWS Lambda función 1000 veces por llamada.

De forma predeterminada, las aplicaciones multimedia SIP agotan el tiempo de espera si una función de Lambda no responde después de 20 segundos.

La estructura de respuesta general se muestra en el ejemplo siguiente.

```
{
    "SchemaVersion": "1.0",
    "Actions": [        
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "bucket-name",
                    "Key": "audio-file.wav"
                }
            }
        },
        {
            "Type": "RecordAudio",
            "Parameters": {
                "DurationInSeconds": "10",
                "RecordingTerminators": ["#"],
                "RecordingDestination": {
                    "Type": "S3",
                    "BucketName": "bucket-name"
                }
            }
        }
    ]
}
```

Cuando la AWS Lambda función devuelve la lista de acciones a la aplicación multimedia SIP, se producen las siguientes operaciones:

1. La aplicación termina de ejecutar la acción actual en una llamada.

1. A continuación, la aplicación reemplaza el conjunto de acciones anterior por un nuevo conjunto de acciones recibidas del último evento de invocación.

Si la aplicación multimedia SIP recibe un conjunto de acciones `NULL`, conserva las acciones existentes. 

# Acciones compatibles con el servicio de audio PSTN de Amazon Chime SDK
<a name="specify-actions"></a>

Puede especificar diferentes tipos de acciones multimedia y de señalización en una respuesta de una AWS Lambda función. Cada acción tiene propiedades diferentes. En los siguientes temas se proporciona código de ejemplo y se explica cómo utilizar las acciones.

**Topics**
+ [Utilización TransactionAttributes](transaction-attributes.md)
+ [Uso de la grabación de llamadas](sip-apps-call-record.md)
+ [CallAndBridge](call-and-bridge.md)
+ [Hangup](hangup.md)
+ [JoinChimeMeeting](join-chime-meeting.md)
+ [ModifyChimeMeetingAttendee (activación y desactivación del audio)](mute-unmute.md)
+ [Pause](pause.md)
+ [PlayAudio](play-audio.md)
+ [PlayAudioAndGetDigits](play-audio-get-digits.md)
+ [ReceiveDigits](listen-to-digits.md)
+ [RecordAudio](record-audio.md)
+ [SendDigits](send-digits.md)
+ [Speak](speak.md)
+ [SpeakAndGetDigits](speak-and-get-digits.md)
+ [StartBotConversation](start-bot-conversation.md)

# Utilización TransactionAttributes
<a name="transaction-attributes"></a>

La estructura de `TransactionAttributes` datos se utiliza para almacenar información específica de la aplicación, como los estados de las llamadas o las reuniones IDs, y luego se pasan esos datos a las invocaciones de Lambda AWS . Esta estructura elimina la necesidad de almacenar datos en bases de datos externas, como Amazon DynamoDB. 

`TransactionAttributes`son [objetos JSON](https://www.w3schools.com/js/js_json_objects.asp) que contienen key/value pairs. The objects can contain a maximum of 100 key/value pares y los objetos tienen un tamaño máximo de carga útil de 20 KB. Los datos de una estructura de `TransactionAttributes` se conservan durante toda la transacción.

Cuando una AWS Lambda función pasa `TransactionAttributes` a una aplicación multimedia SIP, la aplicación actualiza todos los atributos almacenados. Si pasa un objeto de `TransactionAttributes` con un conjunto de claves existente, actualice los valores almacenados. Si pasa un conjunto de claves diferente, reemplaza los valores existentes por los valores de ese conjunto de claves diferente. Al pasar un mapa vacío (`{}`) se borran todos los valores almacenados.

**Topics**
+ [Opción TransactionAttributes](set-trans-attributes.md)
+ [Actualización TransactionAttributes](update-trans-attributes.md)
+ [Borrando TransactionAttributes](clear-trans-attributes.md)
+ [Manipulación ACTION\$1SUCCESSFUL eventos](attribute-trans-success.md)
+ [Entradas no válidas](attribute-trans-invalid.md)

# Opción TransactionAttributes
<a name="set-trans-attributes"></a>

En el siguiente ejemplo, se muestra cómo establecer `TransactionAttributes` junto a una [PlayAudio](play-audio.md) acción y pasar los atributos de una AWS Lambda función a una aplicación multimedia SIP.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "key1": "value1",
        "key2": "value2"
    }
}
```

# Actualización TransactionAttributes
<a name="update-trans-attributes"></a>

Para modificar los `TransactionAttributes` almacenados, actualice el contenido del objeto JSON con valores nuevos. En el siguiente ejemplo, las claves `NewKey1` y `NewKey2` se añaden a los `TransactionAttributes`. Estas claves se emparejan con los valores `NewValue1` y `NewValue2`, respectivamente.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "NewKey1": "NewValue1",
        "NewKey2": "NewValue2"
    }
}
```

Si, en el ejemplo anterior, se pasa `NewValue1` a `key1`, el valor existente de se `key1` sustituirá por `NewValue1`. Sin embargo, al pasar un valor a se `NewKey1` crea un nuevo par clave/valor.

# Borrando TransactionAttributes
<a name="clear-trans-attributes"></a>

Para borrar el contenido del objeto `TransactionAttributes`, pase el campo `TransactionAttributes` con un objeto JSON vacío:

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
    }
}
```

**nota**  
No se pueden borrar los datos de una estructura de `TransactionAttributes` estableciendo su valor como `null`. Además, omitir la estructura de `TransactionAttribute` no borra sus datos. Pase siempre un objeto JSON vacío de `TransactionAttributes` para borrar los datos del objeto.

# Manipulación ACTION\$1SUCCESSFUL eventos
<a name="attribute-trans-success"></a>

El siguiente ejemplo muestra cómo un usuario [PlayAudio](play-audio.md) envía correctamente los `TransactionAttributes` almacenados como parte de los `CallDetails `.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "ACTION_SUCCESSFUL", 
    "ActionData": { 
        "Type": "PlayAudio", 
        "Parameters": { 
            "AudioSource": { 
                "Type": "S3", 
                "BucketName": "mtg1-sipmedia-app-iad", 
                "Key": "Welcome3.wav" 
            }, 
            "Repeat": 1, 
            "ParticipantTag": "LEG-A" 
        } 
    }, 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "TransactionAttributes": { 
            "key1": "value1", 
            "key2": "value2" 
        }, 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "bbff30c5-866a-41b5-8d0a-5d23d5e19f3e", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644539405907", 
                "Status": "Connected" 
            } 
        ] 
    } 
}
```

# Entradas no válidas
<a name="attribute-trans-invalid"></a>

En el siguiente ejemplo, se muestra una entrada no válida. En este caso, el objeto JSON pasa demasiados elementos a una aplicación multimedia SIP.

```
{ 
    "SchemaVersion": "1.0", 
    "Actions": [ 
        { 
            "Type": "PlayAudio", 
            "Parameters": { 
                "ParticipantTag": "LEG-A", 
                "AudioSource": { 
                    "Type": "S3", 
                    "BucketName": "mtg1-sipmedia-app-iad", 
                    "Key": "Welcome3.wav" 
                } 
            } 
        } 
    ], 
    "TransactionAttributes": { 
        "key1": "value1", 
        "key2": "value2", 
        "key3": "value3", 
        "key4": "value4", 
        "key5": "value5", 
        "key6": "value6", 
        "key7": "value7", 
        "key8": "value8", 
        "key9": "value9", 
        "key10": "value10", 
        "key11": "value11" 
    } 
}
```

En el siguiente ejemplo, se muestra la respuesta a la entrada proporcionada anteriormente. Esta salida se pasa de una aplicación multimedia SIP a la función AWS Lambda que invocó la aplicación.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "INVALID_LAMBDA_RESPONSE", 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "72cbec69-f098-45d8-9ad6-e26cb9af663a", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644540839987" 
            } 
        ] 
    }, 
    "ErrorType": "TransactionAttributesInvalidMapSize", 
    "ErrorMessage": "Transaction Attributes has too many mappings. Maximum number of mappings is 10" 
}
```

# Uso de la grabación de llamadas
<a name="sip-apps-call-record"></a>

Las acciones de grabación de llamadas para las aplicaciones multimedia SIP le permiten crear soluciones de grabación y transcripción posterior a las llamadas para una variedad de usos. Por ejemplo, puede grabar las llamadas de atención al cliente y utilizarlas como formación.

Puede utilizar las acciones de grabación de llamadas junto con sus aplicaciones multimedia SIP. También puede utilizar las acciones a pedido o en respuesta a un evento SIP. 
+ Para iniciar la grabación bajo demanda de una llamada en su aplicación multimedia SIP, utilice la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice_chime_UpdateSipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice_chime_UpdateSipMediaApplication.html) para invocar la aplicación y devolver la acción [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartCallRecording.html). 
+ Para iniciar la grabación de llamadas en respuesta a un evento SIP, devuelva la acción de `StartCallRecording` a su aplicación. 

Puede pausar y reanudar una grabación en curso. Para pausar, use la acción [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PauseCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PauseCallRecording.html). Para reanudar, use la acción `ResumeCallRecording`. Cada vez que pausa o reanuda una grabación, la acción captura un tono que indica la pausa o la reanudación. Cuando hace una pausa, la acción registra el silencio, que Amazon Chime SDK utiliza para hacer un seguimiento de la duración de la pausa e incluir las pausas en la factura. Puede pausar y reanudar la grabación tantas veces como sea necesario.

Para detener la grabación de llamadas, devuelva la acción [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopCallRecording.html). Sin embargo, las grabaciones de llamadas se detienen automáticamente cuando la llamada se detiene y, en ese caso, no es necesario que devuelvas la acción de `StopCallRecording` de forma explícita. Solo puede iniciar y detener la grabación una vez para cada tramo de llamada individual.

Amazon Chime SDK proporciona grabaciones de llamadas al bucket de Amazon S3 que se seleccione. El depósito debe pertenecer a tu AWS cuenta. Una vez que se detiene la llamada, la aplicación multimedia SIP envía la grabación a la carpeta especificada en el parámetro `Destination` de la acción [StartCallRecording](start-call-recording.md). Amazon Chime SDK graba las llamadas en un formato WAV abierto. Las llamadas que graban pistas entrantes y salientes utilizan el modo estéreo, con la pista entrante en el canal izquierdo y la pista saliente en el canal derecho. Si graba solo la pista entrante o saliente, el sistema utiliza el modo mono.

**nota**  
Las grabaciones realizadas con esta característica pueden estar sujetas a las leyes o reglamentos relativos a la grabación de comunicaciones electrónicas. Es su responsabilidad y la de sus usuarios finales cumplir con todas las leyes aplicables en relación con la grabación, incluida la notificación adecuada a todos los participantes de una sesión o comunicación grabada de que la sesión o comunicación se está grabando y la obtención de su consentimiento.

## Facturación de la grabación de llamadas
<a name="call-billing"></a>

Amazon Chime SDK le factura por minuto el tiempo que la grabación de llamadas esté habilitada para un tramo de llamada, y ese tiempo incluye todas las pausas. Se le facturará el uso de la grabación de llamadas una vez que la grabación de llamadas se entregue a su bucket de Amazon S3.

# Grabación de pistas de audio
<a name="record-legs"></a>

Puede grabar solo las pistas entrantes o salientes de una llamada, o ambas pistas de una llamada.

Esta imagen muestra una llamada entrante típica con una sola pierna o sin puente. 

![\[Una llamada entrante que solo se comunica con una aplicación multimedia SIP.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/call-record-sma-one-leg.png)


La llamada solo tiene un tramo con un `callID` de **call-id-1**. La pista de audio `INCOMING` es el audio de la persona que llama a la aplicación multimedia SIP. La pista de audio `OUTGOING` es el audio de la aplicación multimedia SIP a la persona que llama. La aplicación multimedia SIP especifica el `CallId` de la llamada que desea grabar. Para grabar al participante que realizó la llamada, especifique `INCOMING`. Para grabar al participante que responde a una llamada, especifique `OUTGOING`. Para grabar a ambos participantes, especifique `BOTH`.

Esta imagen muestra una llamada puente típica con dos participantes.

![\[Una llamada entrante que se comunica con una aplicación multimedia SIP y con un segundo participante.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/call-record-sma-bridged.png)


En este ejemplo, la llamada tiene dos tramos de llamada, **call-id-1** y **call-id-2**, y **call-id-1** se conecta mediante un puente con **call-id-2**. Esto crea cuatro pistas de audio, las transmisiones de audio entrantes y salientes de ambas llamadas IDs. Puede especificar qué pistas de audio IDs y llamada desea grabar. Por ejemplo, si desea grabar la pista de audio del participante llamado, grabe la pista de audio `INCOMING` especificando **call-id-2** como `CallId` y `INCOMING` como pista.

Si desea grabar todo lo que escucha la persona que llama, grabe la pista de audio `OUTGOING` especificando **call-id-1** como `CallId` y `OUTGOING` como pista. Si desea grabar todo el audio que el `Caller` ha dicho y escuchado, grabe `BOTH` pistas de audio especificando `call-id-1` como `CallId` y `BOTH` como pista.

# Caso de uso de ejemplo
<a name="recording-use-cases"></a>

Las aplicaciones multimedia SIP proporcionan acciones de grabación de llamadas como componentes básicos. Le brindan la flexibilidad necesaria para crear soluciones de grabación de llamadas para sus casos de uso empresarial. Los siguientes casos ilustran algunos escenarios de uso comunes.

**Topics**
+ [Caso 1: Grabación de una llamada unidireccional que implica acciones de SIP](#recording-case-1)
+ [Caso 2: Grabación selectiva de audio en una llamada puente](#recording-case-2)
+ [Caso 3: Grabación de varios tramos de llamadas](#recording-case-3)
+ [Caso 4: Grabación bajo demanda con pausa y reanudación](#on-demand-pause-resume)

## Caso 1: Grabación de una llamada unidireccional que implica acciones de SIP
<a name="recording-case-1"></a>

Puede grabar a la persona que llama y cualquier audio generado por las acciones de una aplicación multimedia SIP, como las acciones de [PlayAudio](play-audio.md) y [PlayAudioAndGetDigits](play-audio-get-digits.md). Durante la grabación, si la persona que llama presiona un dígito, la grabación captura el tono de ese dígito. En este ejemplo se utiliza la acción `PlayAudioAndGetDigits`, pero la respuesta de voz interactiva (IVR) puede consistir en una serie compleja de acciones de una aplicación multimedia SIP.

En este ejemplo, la aplicación multimedia SIP graba ambas pistas de audio entre la persona que llama y la propia aplicación multimedia SIP. La grabación comienza cuando se establece la llamada y se detiene cuando la persona que llama cuelga. La facturación comienza cuando se establece la llamada y se detiene cuando la persona que llama cuelga.

![\[Diagrama de una aplicación multimedia SIP que graba dos pistas de audio, en este caso, entre la persona que llama y la propia aplicación.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sma-recording-case-1.png)


## Caso 2: Grabación selectiva de audio en una llamada puente
<a name="recording-case-2"></a>

Puede grabar de forma selectiva la pista de audio de un solo participante de la llamada. Puede usar esta característica para habilitar selectivamente la grabación de llamadas solo para un participante específico.

En este ejemplo, la aplicación multimedia SIP graba las pistas de audio entrantes entre la persona llamada y la propia aplicación multimedia SIP especificando **call-id-2** como `CallId` y `INCOMING` como pista. La grabación de la llamada comienza cuando la persona que llama se conecta con la persona que llama, y ahí es también cuando comienza la facturación. La grabación se detiene cuando la persona que llama cuelga y es también cuando finaliza la facturación. Esta grabación solo tiene la pista de audio de la persona llamada. 

![\[Diagrama de una aplicación multimedia SIP que graba selectivamente una pista.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sma-recording-case-2.png)


## Caso 3: Grabación de varios tramos de llamadas
<a name="recording-case-3"></a>

Puede grabar varios tramos de llamadas. Por ejemplo, supongamos que conecta una llamada con un participante. Cuando ese participante cuelga, la llamada telefónica se transfiere a otro participante. Puede activar la grabación de llamadas en los tres tramos de llamadas. 

En este ejemplo, se muestran tres archivos de grabación independientes. La grabación del primer tramo de la llamada captura la conversación entre la persona que llama, la aplicación y los dos participantes que estuvieron conectados a la llamada. La grabación del segundo tramo de la llamada captura la conversación entre la persona que llama y el primer participante. La grabación del tercer tramo de la llamada captura la conversación entre la persona que llama y el segundo participante. 

Este caso crea tres tramos de llamada y la facturación se aplica al inicio y al final de cada tramo de llamada. Dicho de otro modo, el sistema envía tres grabaciones a su bucket de S3 y se le factura por cada una. 

![\[Diagrama de una aplicación multimedia SIP que graba varios tramos de llamadas.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sma-recording-case-3.png)


## Caso 4: Grabación bajo demanda con pausa y reanudación
<a name="on-demand-pause-resume"></a>

Puede iniciar, detener, pausar y reanudar la grabación de llamadas bajo demanda mediante la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html). Puede crear una aplicación cliente que llame a la API `UpdateSipMediaApplicationCall` e invoque la aplicación multimedia SIP para devolver las acciones de grabación de llamadas.

Los usuarios finales utilizan la aplicación cliente para controlar la grabación de las llamadas. Por ejemplo, en un centro de llamadas, un agente utilizaría una aplicación cliente de escritorio para activar acciones de grabación de llamadas bajo demanda. En el ejemplo de un centro de llamadas, el agente puede pedir permiso a la persona que llama para grabar la llamada y hacer clic en la aplicación cliente para iniciar la grabación una vez que la persona que llama esté de acuerdo. En otro ejemplo, es posible que la persona que llama deba proporcionar información como un número de seguro social (SSN). Sin embargo, la política del centro de llamadas exige que el agente no registre información como el número de seguro social del cliente. El agente puede hacer clic en la aplicación para pausar la grabación mientras el cliente proporciona la información y, a continuación, volver a hacer clic para reanudar la grabación. Una vez que el agente tramita la solicitud de la persona que llama, hace clic en la aplicación para detener la grabación y cuelga la llamada.

En este caso de uso, la aplicación multimedia SIP graba las pistas de audio entre la persona que llama y la aplicación multimedia SIP. Como el tramo `call-id-1` está unido al tramo `call-id-2`, el sistema graba el audio en ambos tramos, la de la persona que llama y la que llama. El registro y la facturación comienzan cuando la API `UpdateSipMediaApplicationCall` invoca la acción `StartCallRecording`. El registro y la facturación se detienen cuando la API `UpdateSipMediaApplicationCall` invoca la acción `StopCallRecording`. Como recordatorio, pausar la grabación no cambia su duración y se facturarán todas las pausas. 

![\[Diagrama de una aplicación multimedia SIP que graba bajo demanda con la grabación pausada y reanudada.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/sma-recording-on-demand.png)


# Acciones de grabación de llamadas para aplicaciones multimedia SIP
<a name="use-recording-apis"></a>

Puede especificar diferentes acciones de grabación de llamadas en una respuesta desde la AWS Lambda función de su aplicación multimedia SIP. En los siguientes temas se proporciona código de ejemplo y se explica cómo utilizar las acciones.

**Topics**
+ [StartCallRecording](start-call-recording.md)
+ [StopCallRecording](stop-call-recording.md)
+ [PauseCallRecording](pause-call-recording.md)
+ [ResumeCallRecording](resume-call-recording.md)

# StartCallRecording
<a name="start-call-recording"></a>

La acción `StartCallRecording` inicia la grabación del tramo de una llamada. Puede iniciar la grabación de llamadas en sus aplicaciones multimedia SIP, ya sea bajo demanda o en respuesta a un evento SIP.
+ Para iniciar la grabación bajo demanda de una llamada, utilice la API `UpdateSipMediaApplication` para invocar la aplicación y devolver la acción `StartCallRecording`.
+ Para iniciar la grabación de llamadas en respuesta a un evento SIP, devuelva la acción de `StartCallRecording` a su aplicación. 

Especifique si desea grabar la pista de audio para el tramo entrante, el tramo saliente o ambos. En las secciones siguientes se explica cómo utilizar la acción `StartCallRecording`.

**nota**  
Las grabaciones realizadas con esta característica pueden estar sujetas a las leyes o reglamentos relativos a la grabación de comunicaciones electrónicas. Es su responsabilidad y la de sus usuarios finales cumplir con todas las leyes aplicables en relación con la grabación, incluida la notificación adecuada a todos los participantes de una sesión o comunicación grabada de que la sesión o la comunicación se está grabando y obtener su consentimiento.

**Topics**
+ [Solicitar una StartCallRecording acción](#request-start)
+ [Especificación de un destino de grabación](#recording-destination)
+ [Conceder permisos de bucket de Amazon S3](#grant-s3-perms)
+ [Respuesta correcta de la acción](#action-successful)
+ [Respuesta incorrecta de la acción](#action-error)

## Solicitar una StartCallRecording acción
<a name="request-start"></a>

El siguiente ejemplo muestra cómo restringir la acción `StartCallRecording` a `BOTH` pistas.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "StartCallRecording",
            "Parameters":
            {
                "CallId": "call-id-1",
                "Track": "BOTH",
                "Destination":
                {
                    "Type": "S3",
                    "Location": "valid-bucket-name-and-optional-prefix"
                }
            }
        }
    ]
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Pista**  
*Descripción*: `Track` de audio de la grabación de la llamada.  
*Valores permitidos*: `BOTH`, `INCOMING` o `OUTGOING`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Tipo de destino**  
*Descripción*: tipo de destino. Solo se permite Amazon S3.  
*Valores permitidos*: Amazon S3  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Ubicación de destino**  
*Descripción*: un bucket de Amazon S3 válido y un prefijo de clave de Amazon S3 opcional. El bucket debe tener permisos para la entidad principal de servicio de Amazon Chime SDK Voice Connector, voiceconnector.chime.amazonaws.com.  
*Valores permitidos*: una ruta de Amazon S3 válida para la que el Amazon Chime SDK tiene permisos para las acciones `s3:PutObject` y `s3:PutObjectAcl`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Especificación de un destino de grabación
<a name="recording-destination"></a>

Amazon Chime SDK proporciona grabaciones de llamadas a su bucket de Amazon S3. El depósito debe pertenecer a tu AWS cuenta. La ubicación del bucket se especifica en el parámetro `Destination` de la acción `StartCallRecording`. El campo `Type` del parámetro `Destination` debe ser `S3`. El campo `Location` consta de su bucket de Amazon S3 y un prefijo de clave de objeto opcional en el que se entrega la grabación de la llamada. 

La aplicación multimedia SIP utiliza la `Location` especificada, la fecha y hora del tramo de llamada, el identificador de transacción y el identificador de llamada para formatear la clave de objeto de Amazon S3. La respuesta a la acción `StartCallRecording` devuelve la clave de objeto completa de Amazon S3.

Si solo proporciona el bucket de Amazon S3 en el campo `Location`, la aplicación multimedia SIP añade un prefijo predeterminado, `Amazon-Chime-SMA-Call-Recordings`, a la ruta de Amazon S3. La aplicación multimedia SIP también agrega el año, el mes y el día de la hora de inicio de la llamada para ayudar a organizar las grabaciones. El siguiente ejemplo muestra el formato general de una ruta de Amazon S3 con el prefijo predeterminado. En este ejemplo `myRecordingBucket` se utiliza como valor de `Location`.

```
myRecordingBucket/Amazon-Chime-SMA-Call-Recordings/2019/03/01/2019–03–01–17–10–00–010_c4640e3b–1478–40fb-8e38–6f6213adf70b_7ab7748e–b47d–4620-ae2c–152617d3333c.wav
```

En el ejemplo siguiente se muestran los datos que se representan en la ruta de Amazon S3 de la grabación de la llamada.

```
s3Bucket/Amazon-Chime-SMA-Call-Recordings/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

Cuando proporciona el bucket de Amazon S3 y el prefijo de clave de objeto en el campo `Location`, la aplicación multimedia SIP utiliza su prefijo de clave de objeto en la ruta de Amazon S3 de destino en lugar del prefijo predeterminado. El siguiente ejemplo muestra el formato general de una llamada grabando la ruta de Amazon S3 con su prefijo. Por ejemplo, puede especificar myRecordingBucket /TechnicalSupport/English como. `Location` 

```
myRecordingBucket/technicalSupport/english/2019/03/01/2019–03–01–17–10–00–010_c4640e3b1478–40fb–8e38-6f6213adf70b_7ab7748e–b47d–4620–ae2c–152617d3333c.wav
```

En el siguiente ejemplo, se muestran los datos de la ruta de Amazon S3.

```
s3Bucket/yourObjectKeyPrefix/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

La grabación enviada a su bucket de Amazon S3 contiene [metadatos de objetos de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) adicionales sobre el tramo de llamada. En la siguiente tabla se muestran los metadatos de objetos de Amazon S3 admitidos.


| Name | Description (Descripción) | 
| --- | --- | 
| transaction-id | ID de transacción de la llamada de teléfono | 
| call-id | CallId del participante en la invocación de la función CallDetails AWS Lambda  | 
| recording-duration | Duración de la grabación de llamadas en segundos | 
| recording-audio-file-format | Formato de archivo de audio para grabación de llamadas representado como tipo de medio de Internet | 

## Conceder permisos de bucket de Amazon S3
<a name="grant-s3-perms"></a>

El bucket de Amazon S3 de destino debe pertenecer a la misma AWS cuenta que la aplicación. Además, la acción debe otorgar a `s3:PutObject` y `s3:PutObjectAcl` permiso a la entidad principal del servicio Amazon Chime SDK Voice Connector, `voiceconnector.chime.amazonaws.com`. En el siguiente ejemplo, se otorgan los permisos. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

El servicio de audio PSTN lee y escribe en su bucket S3 en nombre de su aplicación multimedia Sip. Para evitar este [problema de suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), puede restringir los permisos del bucket S3 a una sola aplicación multimedia SIP.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

## Respuesta correcta de la acción
<a name="action-successful"></a>

Cuando la grabación de la llamada se inicia correctamente en un tramo de llamada, la aplicación multimedia SIP invoca una AWS Lambda función con el tipo de `ACTION_SUCCESSFUL` evento. En la respuesta se recupera la ubicación de la grabación de la llamada. 

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "CallRecordingDestination": {
            "Type": "S3",
            "Location": "call-recording-bucket-and-key"
        }
    }
    "CallDetails": {
        ...
    }
}
```

## Respuesta incorrecta de la acción
<a name="action-error"></a>

En caso de errores de validación, la aplicación multimedia SIP llama a la AWS Lambda función con el mensaje de error correspondiente. En la siguiente tabla se muestran los mensajes de error.




| Error | Mensaje | Motivo | 
| --- | --- | --- | 
| `InvalidActionParameter` | El parámetro de acción `CallId` no es válido | Cualquier parámetro no es válido. | 
| `SystemException` | Error del sistema al ejecutar una acción. | Se ha producido otro tipo de error del sistema al ejecutar una acción. | 

Cuando la acción no graba el contenido multimedia de un tramo de llamada, la aplicación multimedia SIP invoca una función de AWS Lambda con el tipo de evento `ActionFailed`. 

El ejemplo siguiente muestra una respuesta de error típica.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "Error": "NoAccessToDestination: Error while accessing destination"
    }
    "CallDetails": {
        ...
    }
}
```

Consulte un ejemplo práctico en GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# StopCallRecording
<a name="stop-call-recording"></a>

La acción `StopCallRecording` detiene la grabación de un tramo de llamada. La grabación se detiene automáticamente cuando finaliza una llamada y su aplicación no necesita devolver la acción `StopCallRecording` de forma explícita. Una vez que se detiene la grabación de una llamada, no se puede volver a iniciar y la grabación se envía al destino especificado en la acción `StartCallRecording`. 

En el siguiente ejemplo, se detiene la grabación del tramo de llamada `call-id-1`. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "StopCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la función AWS Lambda   
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

[Vea un ejemplo práctico en GitHub: https://github.com/aws-samples/ amazon-chime-sma-on -demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# PauseCallRecording
<a name="pause-call-recording"></a>

La acción `PauseCallRecording` pausa la grabación de un tramo de llamada. Cada vez que pausa una grabación, la grabación captura un tono que indica la pausa. Al hacer una pausa, la grabación continúa, pero solo captura el silencio. La pausa en la grabación no afecta a la duración total de la grabación. Puede pausar y reanudar la grabación tantas veces como sea necesario.

El siguiente ejemplo hace una pausa en la grabación. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "PauseCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la función AWS Lambda   
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

[Vea un ejemplo práctico en GitHub: https://github.com/aws-samples/ amazon-chime-sma-on -demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# ResumeCallRecording
<a name="resume-call-recording"></a>

La acción `ResumeCallRecording` reanuda la grabación de un tramo de llamada. Antes de que se reinicie la grabación, se reproduce un tono breve. Puede pausar y reanudar una grabación varias veces mientras dure la llamada. 

En el siguiente ejemplo, se reanuda la grabación. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "ResumeCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la función AWS Lambda   
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

[Vea un ejemplo práctico en GitHub: https://github.com/aws-samples/ amazon-chime-sma-on -demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# CallAndBridge
<a name="call-and-bridge"></a>

Crea una llamada saliente a un número de teléfono de la PSTN o a un enlace troncal SIP configurado como un conector de voz del SDK de Amazon Chime o un grupo de conectores de voz del SDK de Amazon Chime y, a continuación, la enlaza con una llamada existente. Se usa `PSTN` cuando se llama a un número de teléfono y `AWS` cuando se llama a un enlace troncal SIP. 

Una llamada existente puede ser una llamada saliente creada mediante la [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API o una llamada entrante creada mediante una regla SIP que invoca la función con un evento. AWS Lambda `NewInboundCall` Al implementar una acción `CallAndBridge` en un punto de conexión de Voice Connector o grupo de conectores de voz, debe especificar el número de recurso de Amazon (ARN) del Voice Connector o grupo de conectores de voz.

También puedes añadir cabeceras SIP personalizadas a las llamadas y funciones salientes. AWS Lambda Los encabezados personalizados le permiten pasar valores como números de piso y códigos postales. Para obtener más información sobre los encabezados personalizados, consulte [Uso de encabezados SIP en el servicio de audio PTSN de Amazon Chime SDK](sip-headers.md).

Al utilizar la función de llamadas y puentes, es importante tener en cuenta que cada llamada se tiene en cuenta para el recuento de llamadas simultáneas activas que se utiliza para calcular los límites de llamadas activas de SMA. Teniendo esto en cuenta, al gestionar los límites de llamadas activas de SMA para llamadas y bridge, debe contar 2 llamadas por cada acción de llamada y bridge. Para obtener más información, consulte las [cuotas de voz y enlaces troncales SIP](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) en. *Referencia general de AWS*

El siguiente código de ejemplo muestra una acción típica que enlaza con un punto de conexión de la PSTN.

```
{
    "SchemaVersion": "1.0",
    "Actions": [{
            "Type": "CallAndBridge",
            "Parameters": {
                "CallTimeoutSeconds": 30,
                "CallerIdNumber": "e164PhoneNumber", // required            
                "Endpoints": [{
                    "BridgeEndpointType": "PSTN", // required
                    "Uri": "e164PhoneNumber", // required                       
                }],
            }
        }
    ]
}
```

El siguiente ejemplo muestra una acción típica que utiliza un Voice Connector o un grupo de conectores de voz, además de un encabezado SIP personalizado.

```
{
   "SchemaVersion":"1.0",
   "Actions":[
      {
         "Type":"CallAndBridge",
         "Parameters":{
            "CallTimeoutSeconds":30,
            "CallerIdNumber": "e164PhoneNumber", // required
            "RingbackTone": { // optional
                    "Type": "S3",
                    "BucketName": "s3_bucket_name",
                    "Key": "audio_file_name"
                },
            "Endpoints":[
               {
                  "BridgeEndpointType":"AWS", // enum type, required                                  
                  "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs" //VC or VCG ARN, required for AWS endpoints
                  "Uri":"ValidString", // required, see description below  
               }
            ],
            "SipHeaders": { 
                "x-String":"String"
            }
         }
      }
   ]
}
```

**CallTimeoutSeconds**  
*Descripción*: el intervalo antes de que se agote el tiempo de espera de una llamada. El temporizador se inicia al configurar la llamada.  
*Valores permitidos*: entre 1 y 120, ambos inclusive  
*Obligatorio:* no  
*Valor predeterminado:* 30

**CallerIdNumber**  
*Descripción*: un número que pertenece al cliente o el número de origen del tramo A  
*Valores permitidos*: un número de teléfono válido en formato E.164  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Endpoints**  
*Descripción*: los puntos de conexión de una llamada  
*Valores permitidos*:   
+ `BridgeEndpointType`— `AWS` para Voice Connectors y grupos de conectores de voz; en caso contrario `PSTN`.
+ `Arn`— El ARN de un Voice Connector o grupo de conectores de voz. Solo se requiere cuando se usa `AWS` como `BridgeEndpointType`. 
+ `Uri`— El valor del URI depende del tipo de punto de conexión.

  Para los puntos de conexión de `PSTN`, el URI debe ser un número de teléfono E.164 válido.

  En el caso de los puntos de conexión de `AWS`, el valor del URI establece la parte `user` del `Request-URI`. Debe utilizar el formato [Backus-Naur aumentado](https://datatracker.ietf.org/doc/html/rfc2234). Longitud requerida: entre 1 y 36, ambos inclusive. Use los siguientes valores: `a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, `(`,`), (`.`)

  El valor de host del `Request-URI` se deriva de las rutas de entrada del Voice Connector de destino. En el ejemplo siguiente se muestra una acción de `CallAndBridge` con un punto de conexión de `AWS`.

  ```
  {
     "SchemaVersion":"1.0",
     "Actions":[
        {
           "Type":"CallAndBridge",
           "Parameters":{
              "CallTimeoutSeconds":30,
              "CallerIdNumber": "+18005550122",
              "Endpoints":[
                 {
                    "BridgeEndpointType":"AWS",                                   
                    "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs", 
                    "Uri":"5550"   
                 }
              ],
              "SipHeaders": { 
                  "x-String":"String"
              }
           }
        }
     ]
  }
  ```

  Para obtener más información sobre las rutas entrantes y los conectores de voz, consulte [Edición de la configuración del Voice Connector de Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/edit-voicecon.html).
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**SipHeaders**  
*Descripción*: le permite pasar valores adicionales. Úselo solo con el tipo de punto de conexión de `AWS`.  
*Valores permitidos*: encabezado SIP válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

En el ejemplo siguiente, se muestra una acción de `CallAndBridge` correcta que utiliza un punto de conexión de PSTN:

```
{
   "SchemaVersion": "1.0",
   "Sequence": 3,
   "InvocationEventType": "ACTION_SUCCESSFUL",
   "ActionData": {
      "Type": "CallAndBridge",
      "Parameters": {
         "CallTimeoutSeconds": 30,
         "CallerIdNumber": "e164PhoneNumber",
         "Endpoints":[
            {
               "BridgeEndpointType": "PSTN",
               "Uri": "e164PhoneNumber"               
            }
         ],
         "CallId": "call-id-1"
      }
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            .....   
            "Status": "Connected"
         },
         {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B",
            .....
            "Status": "Connected"
         }
      ]
   }
}
```

En el ejemplo siguiente se muestra una acción de `CallAndBridge` fallida.

```
{
   "SchemaVersion": "1.0",
   "Sequence":2,
   "InvocationEventType": "ACTION_FAILED",
      "ActionData":{
      "Type": "CallAndBridge",
      "Parameters":{
         "CallTimeoutSeconds": 30,
         "CallerIdNumber": "e164PhoneNumber",
         "Endpoints": [
            {
               "BridgeEndpointType": "PSTN",
               "Uri": "e164PhoneNumber"           
            }
         ],
         "CallId": "call-id-1"
      },
      "ErrorType": "CallNotAnswered",
      "ErrorMessage": "Call not answered"
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            .....   
         }
      ]
   }
}
```

## Flujos de llamadas
<a name="call-bridge-flows"></a>

La acción de `CallAndBridge` proporciona una señalización de llamada y una experiencia de audio diferentes para un tramo de llamada existente, en función de los parámetros y de si el tramo está conectado.

El siguiente diagrama muestra los flujos de llamadas con diferentes parámetros cuando el tramo A de una llamada entrante ya está conectado.

![\[El flujo de una llamada respondida a lo largo de la acción de CallAndBridge.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/call-bridge-ans-2.png)


En el siguiente diagrama se muestra el flujo de llamadas de una llamada sin respuesta.

![\[El flujo de una llamada no respondida a lo largo de la acción de CallAndBridge.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/SMA_Bridging_NotAns.png)


**Detalles adicionales**  
Recuerde estos datos sobre la acción de `CallAndBridge`.
+ `CallTimeoutSeconds`: este temporizador se inicia cuando se envía la invitación SIP por el tramo B. Puede establecer un valor objetivo deseado, pero los operadores de primera línea pueden ignorarlo.
+ `CallerIdNumber`: este número de teléfono debe pertenecer al cliente o ser el número de origen de un tramo A.
+ **Comportamiento de bloqueo y casos extremos**: si un tramo de llamada cuelga, el otro no cuelga automáticamente la llamada. Cuando se envía un `Hangup` evento a la AWS Lambda función, el tramo restante debe desconectarse de forma independiente. Si un tramo de llamada queda pendiente, la llamada se facturará hasta que se cuelgue. Por ejemplo, el siguiente escenario puede provocar cargos inesperados:
  + Intenta conectarse a un número de teléfono de destino. El destino está ocupado y envía la llamada directamente al buzón de voz. Desde la perspectiva del servicio de audio, ir al correo de voz es una llamada respondida. El tramo A cuelga, pero el tramo B sigue escuchando el mensaje del correo de voz. Mientras el tramo B escucha, se le factura a usted.
  + Como práctica recomendada, utilice la AWS Lambda función, o la persona que esté al otro lado de la llamada, para colgar cada tramo de la llamada de forma independiente.
+ **Facturación**: se le facturará según se detalla a continuación cuando utilice `CallAndBridge`:
  + Minutos de llamada activos para cada tramo de llamada creado (tramo A, tramo B, etc.) a la PSTN.
  + Minutos de uso del servicio de audio.

Vea ejemplos prácticos sobre GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)
+ [https://github.com/aws-samples/amazon-chime-sma-call-reenvío](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-on-grabación por demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Hangup
<a name="hangup"></a>

Envíe un valor `Hangup` con `SipStatusCode` a cualquier tramo de una llamada.

Cuando el servicio de audio ejecuta una acción de `Hangup` en un tramo de llamada:
+ En el caso de una llamada con un solo tramo, la aplicación multimedia SIP invoca la AWS Lambda función con un `HANGUP` evento e ignora la respuesta. A continuación, se desconecta la llamada.
+ Para un tramo de llamada (tramo A) que está enlazado con otro tramo de llamada (tramo B), si la acción `Hangup` está asociada al tramo de llamada puenteado (tramo B), el servicio de audio PSTN desconecta el tramo de llamada puenteado y, a continuación, invoca la función de Lambda con un evento `HANGUP` para el tramo B. El servicio de audio PSTN ejecuta entonces cualquier acción devuelta por esa invocación de Lambda.
+ Para un tramo de llamada (tramo A) que está enlazado con otro tramo de llamada (tramo B), si la acción `Hangup` está asociada al tramo de llamada original (tramo A), el servicio de audio PSTN desconecta el tramo de llamada original y, a continuación, invoca la función de Lambda con un evento `HANGUP` para el tramo A. El servicio de audio PSTN ejecuta entonces cualquier acción devuelta por esa invocación de Lambda.
+ En el caso de un tramo de llamada que se unió a una reunión mediante la acción `JoinMeeting`, si la acción `Hangup` está asociada al tramo de la reunión (normalmente el tramo B), la persona que llama se desconecta de la reunión y recibe un evento `ACTION_SUCCESSFUL` para la acción `Hangup`.

A continuación se muestra una acción típica de `Hangup`.

```
{
    "Type": "Hangup",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "SipResponseCode": "0"
    }
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la función AWS Lambda   
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**SipResponseCode**  
*Descripción*: cualquiera de los códigos de respuesta SIP compatibles  
*Valores permitidos*: 480: no disponible; 486: ocupado; 0: terminación normal  
*Obligatorio:* no  
*Valor predeterminado:* 0

Cuando un usuario finaliza una llamada, la aplicación multimedia SIP invoca una AWS Lambda función con el código que aparece en. [Uso del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada](case-5.md)

Consulte algunos ejemplos prácticos sobre GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)
+ [https://github.com/aws-samples/amazon-chime-sma-call-reenvío](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notificaciones de llamadas](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-grabación por demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# JoinChimeMeeting
<a name="join-chime-meeting"></a>

Para unirse a una reunión de Amazon Chime SDK, proporcione el token de acceso de los asistentes. Para ello, debe realizar llamadas AWS del SDK al [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) y [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html) APIs para obtener el token y transmitirlo en la acción. Consulte el siguiente ejemplo. 

**nota**  
No puede ejecutar esta acción en una llamada puente.

```
{
    "Type": "JoinChimeMeeting",
    "Parameters": {
        "JoinToken": "meeting-attendee-join-token",
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "MeetingId": "meeting-id"
    }
}
```

**JoinToken**  
*Descripción*: un token de unión válido del asistente a la reunión de Amazon Chime SDK  
*Valores permitidos:* token de unión válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: -`LEG-A`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**MeetingId**  
*Descripción*: un ID de reunión de Amazon Chime SDK válido asociado al `JoinToken`. Si la reunión se creó mediante una API en el espacio de nombres [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html), no se requiere el ID de la reunión. Si la reunión se creó mediante una API en el espacio de nombres de [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html), se requiere el ID de la reunión. Se accede a la reunión mediante el punto de conexión de la API utilizado para crear la reunión.  
*Valores permitidos*: un identificador de reunión válido.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

La aplicación multimedia SIP siempre invoca una AWS Lambda función después de ejecutar esta acción. Devuelve el tipo de evento `ACTION_SUCCESSFUL` o el tipo de evento `ACTION_FAILED` de invocación. En el siguiente ejemplo se muestra una estructura de eventos de invocación correcta.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEvent": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "JoinChimeMeeting",
        "Parameters": {
            "JoinToken": "meeting-attendee-join-token",
            "CallId": "call-id-1"
            "ParticipantTag": "LEG-A"
        }
    }
    "CallDetails": {
        ...
    }
}
```

**Gestión de errores**  
Cuando se produce un error de validación al cerrar una reunión, la aplicación SIP llama a su AWS Lambda función con uno de los mensajes de error que se muestran en la siguiente tabla.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  El valor del parámetro `JoinToken` no es válido.  |  Falta alguno de los demás parámetros de la acción o no es válido.  | 
|  `SystemException`  |  Error del sistema al ejecutar la acción.  |  Se ha producido otro tipo de error de sistema al ejecutar la acción.  | 

En el siguiente ejemplo, se muestra un evento típico de fallo.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEvent": "ACTION_FAILED",
    "ActionData": {
        "Type": "JoinChimeMeeting",
        "Parameters": {
            "JoinToken": "meeting-attendee-join-token",
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        },
        "Error": "ErrorJoiningMeeting: Error while joining meeting."
    }
    "CallDetails": {
        ...
    }
}
```

[Vea un ejemplo práctico en GitHub: -call https://github.com/aws-samples/ amazon-chime-sma-update](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ModifyChimeMeetingAttendee (activación y desactivación del audio)
<a name="mute-unmute"></a>

Permite que la aplicación multimedia SIP modifique el estado de un asistente de telefonía al proporcionar el ID de reunión de Amazon Chime SDK y la lista de asistentes.

**nota**  
Actualmente, esta acción admite las operaciones de silenciamiento y reactivación del silencio de los asistentes de telefonía. Además, el usuario debe unirse a una reunión mediante la acción `JoinChimeMeeting`. Esta acción se puede realizar en un `participantTag=“LEG-B”`, o en un `CallId` correspondiente. 

Esta acción solo se aplica al CallLeg que se une desde la aplicación multimedia SIP al `"+` *13605550122* `"` LEG-B o al tramo que se une desde la aplicación multimedia SIP a la reunión.

```
{
"SchemaVersion": "1.0",
  "Actions": [
    {
      "Type" : "ModifyChimeMeetingAttendees",
      "Parameters" : {
        "Operation": "Mute",
        "MeetingId": "meeting-id",
        "CallId": "call-id",
        "ParticipantTag": LEG-B",
        "AttendeeList": ["attendee-id-1", "attendee-id-2"]
      }
    }
  ]
}
```

**Operation**  
*Descripción:* la operación que se debe realizar en la lista de asistentes  
*Valores permitidos*: silenciar, reactivar el silencio  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**MeetingId**  
*Descripción*: el ID de la reunión a la que pertenecen los asistentes  
*Valores permitidos*: un identificador de reunión válido. La persona que silencia o desactiva el sonido también debe pertenecer a la reunión.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**CallId**  
*Descripción*: el ID de la reunión a la que pertenecen los asistentes  
*Valores permitidos*: un identificador de llamada válido.  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la etiqueta asignada al asistente.  
*Valores permitidos*: una etiqueta válida.  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**AttendeeList**  
*Descripción*: lista de asistentes IDs a los que se debe silenciar o reactivar  
*Valores permitidos: lista* de asistentes válidos IDs  
*Obligatorio*: sí  
*Valor predeterminado*: ninguno, máximo 100

Tras ejecutar esta acción, Audio Service siempre invoca una función de AWS Lambda con el tipo de evento de invocación `ACTION_SUCCESSFUL` o `ACTION_FAILED`. En el siguiente ejemplo de código se muestra un evento `ACTION_SUCCESSFUL` de invocación típico.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "ModifyChimeMeetingAttendees",
        "Parameters" : {
            "Operation": "Mute",
            "MeetingId": "meeting-id",
            "CallId": "call-id",
            "ParticipantTag": "LEG-B",
            "AttendeeList": ["attendee-id-1", "attendee-id-2"]
        }
    }
    "CallDetails": {
        ...
    }
}
```

**Gestión de errores**  
En los casos de parámetros de instrucción no válidos o errores en la API, las aplicaciones multimedia SIP llaman a una AWS Lambda función con el mensaje de error específico de la instrucción o API fallida.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  El valor del parámetro `ModifyChimeMeetingAttendees Operation` no es válido.  |  El valor de `Operation` debe ser silenciado o no silenciado.  | 
|     |  El valor del parámetro de ID de reunión no es válido.  |  La ID de la reunión está vacía.  | 
|     |  El valor del parámetro de la lista de asistentes no es válido.  |  La lista de identificadores de asistentes está vacía o supera el máximo de 100.  | 
|     |  Acción no válida en la llamada.  |  La llamada no está gestionada.  | 
|     |  La llamada no está conectada a Chime Meeting.  |  El asistente no está conectado a una reunión de Chime.  | 
|     |  Uno o más asistentes no forman parte de esta reunión. Todos los asistentes deben ser parte de esta reunión.  |  El asistente no está autorizado a modificar a los asistentes a la reunión.  | 
|  `SystemException`  |  Error del sistema al ejecutar la acción.  |  Se ha producido un error del sistema al ejecutar una acción.  | 

En el siguiente ejemplo de código se muestra un evento de error típico:

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "ModifyChimeMeetingAttendees",
        "Parameters" : {
            "Operation": "Mute",
            "MeetingId": "meeting-id",
            "CallId": "call-id",
            "ParticipantTag": "LEG-B",
            "AttendeeList": ["attendee-id-1", "attendee-id-2"]
        },
        "ErrorType": "",
        "ErrorMessage": "",
        "ErrorList": []
    }
    "CallDetails": {
        ...
    }
}
```

Consulte algunos ejemplos prácticos en GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-update-llamar](https://github.com/aws-samples/amazon-chime-sma-update-call)

# Pause
<a name="pause"></a>

Pause una llamada durante un tiempo específico.

```
{
    "Type": "Pause",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "DurationInMilliseconds": "3000"
    }
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**DurationInMilliseconds**  
*Descripción*: duración de la pausa en milisegundos  
*Valores permitidos*: un número entero superior a 0  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

Vea ejemplos prácticos sobre GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notificaciones de llamadas](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-grabación por demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# PlayAudio
<a name="play-audio"></a>

Reproduzca un archivo de audio en cualquier parte de una llamada. El audio se puede repetir tantas veces como se desee. El audio en curso se puede terminar utilizando los dígitos DTMF configurados en `PlaybackTerminators`.

En la actualidad, Amazon Chime SDK solo habilita a reproducir archivos de audio del bucket de Amazon Simple Storage Service (Amazon S3). El bucket de S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, debe conceder el permiso `s3:GetObject` a la entidad principal del servicio Amazon Chime SDK Voice Connector. Para ello, puede usar la consola de S3 o la interfaz de la línea de comandos (CLI).

El siguiente ejemplo de código muestra una política de bucket típica.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

El servicio de audio lee y escribe en su bucket de S3 en nombre de su aplicación multimedia Sip. Para evitar el [problema de adjunto confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), puede restringir el acceso al bucket de S3 a una única aplicación multimedia SIP.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

El siguiente ejemplo de código muestra una acción típica.

```
{
    "Type": "PlayAudio",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "PlaybackTerminators": ["1", "8", "#"],
        "Repeat": "5",
        "AudioSource": {
            "Type": "S3",
            "BucketName": "valid-S3-bucket-name",
            "Key": "wave-file.wav"
        }
    }
}
```

**CallID**  
*Descripción*: la `CallId` del participante en los `CallDetails`.  
*Valores permitidos*: un identificador de llamada válido.  
*Obligatorio*: no, si `ParticipantTag` está presente.  
*Valor predeterminado:* ninguno.

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`.  
*Valores permitidos:* `LEG-A` o `LEG-B`.  
*Obligatorio*: no, si `CallId` está presente.  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado. Se omite si se especifica `CallId`.

**PlaybackTerminator**  
*Descripción*: finaliza el audio en curso mediante la entrada DTMF del usuario  
*Valores permitidos*: matriz de los siguientes valores: «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «\$1», «\$1»  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**Repeat**  
*Descripción*: repite el audio el número de veces especificado  
*Valores permitidos*: un número entero mayor que cero  
*Obligatorio:* no  
*Valor predeterminado*: 1

**AudioSource.Type**  
*Descripción*: tipo de fuente del archivo de audio.  
*Valores permitidos*: S3.  
*Obligatorio*: sí.  
*Valor predeterminado:* ninguno.

**AudioSource.BucketName**  
*Descripción*: para los tipos de fuentes S3, el bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación SIP. El bucket debe tener acceso a la entidad principal de Amazon Chime SDK Voice Connector, que es voiceconnector.chime.amazonaws.com.  
*Valores permitidos*: un bucket de S3 válido para el que Amazon Chime SDK tiene acceso a la acción de `s3:GetObject`.  
*Obligatorio*: sí.  
*Valor predeterminado:* ninguno.

**AudioSource.key**  
*Descripción*: para los tipos de fuentes de S3, el nombre del archivo del bucket de S3 especificado en el atributo `AudioSource.BucketName`.  
*Valores permitidos*: un archivo de audio válido.  
*Obligatorio*: sí.  
*Valor predeterminado:* ninguno.

La aplicación multimedia SIP intenta reproducir el audio desde la URL de origen. Puede utilizar archivos.wav PCM sin procesar y sin comprimir de un tamaño no superior a 50 MB. El SDK de Amazon Chime recomienda 8 en mono KHz .

Cuando la última instrucción de un plan de marcado es `PlayAudio` y el archivo termina de reproducirse, o si un usuario detiene la reproducción al pulsar una tecla, la aplicación invoca la AWS Lambda función con el evento que se muestra en el siguiente ejemplo.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "valid-S3-bucket-name",
                "Key": "wave-file.wav",
         }           
     }
}
```

Cuando un dígito final detenga el audio, no se repetirá.

**Gestión de errores**  
Cuando el archivo de validación contiene errores o se produce un error al ejecutar una acción, la aplicación multimedia SIP llama a una AWS Lambda función con el código de error correspondiente.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  El parámetro de la fuente de audio no es válido.  |  Este error puede producirse por varios motivos. Por ejemplo, la aplicación multimedia SIP no puede acceder al archivo debido a problemas con los permisos o con la URL. O bien, es posible que el archivo de audio no pase la validación debido al formato, la duración, el tamaño, etc.  | 
|  `SystemException`  |  Error del sistema al ejecutar la acción.  |  Se ha producido otro error del sistema al ejecutar la acción.   | 
|  `InvalidActionParameter`  |  CallId o ParticipantTag el parámetro de acción no es válido.  |  La acción contiene un parámetro no válido.  | 

El siguiente ejemplo de código muestra un error de invocación típico.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file.wav"
            },
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        ...
    }
}
```

Consulte los ejemplos prácticos en GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-call-reenvío](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notificaciones de llamadas](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-grabación por demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-llamada](https://github.com/aws-samples/amazon-chime-sma-update-call)

# PlayAudioAndGetDigits
<a name="play-audio-get-digits"></a>

Reproduce audio y recopila dígitos DTMF. Si se produce un error, por ejemplo, si el usuario no introduce el número correcto de dígitos del DTMF, la acción reproduce el audio “defectuoso” y, a continuación, reproduce el audio principal hasta que la aplicación multimedia SIP agote el número de intentos definido en el parámetro `Repeat`.

Debe reproducir archivos de audio del bucket de S3. El bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, debe conceder el permiso `s3:GetObject` a la [entidad principal del servicio Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`. Para ello, puede utilizar la consola de S3 o la CLI. 

La política de bucket de S3 típica se muestra en el ejemplo de código siguiente.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

El servicio de audio lee y escribe en su bucket de S3 en nombre de su aplicación multimedia Sip. Para evitar el [problema de adjunto confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), puede restringir el acceso al bucket de S3 a una única aplicación multimedia SIP.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

A continuación se muestra una acción típica de `PlayAudioAndGetDigits`. 

```
{
    "Type" : "PlayAudioAndGetDigits",
    "Parameters" : {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A"      
        "InputDigitsRegex": "^\d{2}#$",
        "AudioSource": {
            "Type": "S3",
            "BucketName": "bucket-name",
            "Key": "audio-file-1.wav"
        },
        "FailureAudioSource": {
            "Type": "S3",
            "BucketName": "bucket-name",
            "Key": "audio-file-failure.wav"
        },
        "MinNumberOfDigits": 3,
        "MaxNumberOfDigits": 5,
        "TerminatorDigits": ["#"],        
        "InBetweenDigitsDurationInMilliseconds": 5000,
        "Repeat": 3,
        "RepeatDurationInMilliseconds": 10000
    }
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**InputDigitsRegex**  
*Descripción:* patrón de expresión regular  
*Valores permitidos*: un patrón de expresión regular válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**AudioSource.Type**  
*Descripción*: tipo de fuente para el tipo de archivo de audio  
*Valores permitidos*: un bucket S3  
*Obligatorio*: sí  
*Valor predeterminado:* - `"S3"`

**AudioSource.BucketName**  
*Descripción*: para `AudioSource.Type` los valores de S3, el bucket de S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. El bucket S3 debe tener acceso al servidor de la [entidad principal de Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`.  
*Valores permitidos*: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones de `s3:GetObject`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**AudioSource.Key**  
*Descripción*: el nombre clave del objeto de audio del `AudioSource.BucketName` del bucket de S3.  
*Valores permitidos*: archivos de audio válidos  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**FailureAudioSource.Type**  
*Descripción*: el nombre clave del objeto de audio del `FailureAudioSource.BucketName` del bucket de S3.  
*Valores permitidos*: S3  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**FailureAudioSource.BucketName**  
*Descripción*: para los tipos de fuentes S3, el bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. La [entidad principal del servicio Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`, debe tener acceso al bucket de S3.  
*Valores permitidos*: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones de `s3:GetObject`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**FailureAudioSource.Key**  
*Descripción*: el nombre clave del objeto de audio del `FailureAudioSource.BucketName` del bucket de S3.  
*Valores permitidos*: archivos de audio válidos  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**MinNumberOfDigits**  
*Descripción*: el número mínimo de dígitos que se deben capturar antes de que se agote el tiempo de espera o se reproduzca el audio de “llamada fallida”.  
*Valores permitidos*: – >=0  
*Obligatorio:* no  
*Valor predeterminado:* 0

**MaxNumberOfDigits**  
*Descripción*: el número máximo de dígitos que se deben capturar antes de detenerse sin un dígito final.  
*Valores permitidos:* – >`MinNumberOfDigits`  
*Obligatorio:* no  
*Valor predeterminado*: 128

**TerminatorDigits**  
*Descripción*: dígitos que se utilizan para finalizar la entrada si el usuario introduce un número inferior al `MaxNumberOfDigits`  
*Valores permitidos*: cualquiera de estos dígitos: 0123456789\$1\$1  
*Obligatorio:* no  
*Valor predeterminado*: \$1

**InBetweenDigitsDurationInMilliseconds**  
*Descripción*: el tiempo de espera en milisegundos entre las entradas de dígitos antes de la reproducción de `FailureAudio`.  
*Valores permitidos*: >0  
*Obligatorio:* no  
*Valor predeterminado*: si no se especifica, el valor predeterminado es `RepeatDurationInMilliseconds`.

**Repeat**  
*Descripción*: número total de intentos de obtener dígitos  
*Valores permitidos*: >0  
*Obligatorio:* no  
*Valor predeterminado*: 1

**RepeatDurationInMilliseconds**  
*Descripción*: tiempo de espera en milisegundos entre intentos de `Repeat`  
*Valores permitidos*: >0  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

La aplicación multimedia SIP siempre invoca su AWS Lambda función después de ejecutar la `PlayAudioAndGetDigits` acción, con un tipo de evento de `ACTION_FAILED` invocación `ACTION_SUCCESSFUL` o. Cuando la aplicación recopila dígitos correctamente, establece el valor `ReceivedDigits` del objeto `ActionData`. El siguiente ejemplo muestra la estructura de eventos de invocación de esa función. AWS Lambda 

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            "InputDigitsRegex": "^\d{2}#$",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-1.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-failure.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    },
        "ReceivedDigits": "1234"
    },
    "CallDetails": {
        ...
    }
}
```

**Gestión de errores**  
Cuando se produce un error de validación, la aplicación multimedia SIP llama a la función AWS Lambda con el mensaje de error correspondiente. En la siguiente tabla se enumeran los posibles mensajes de error.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  El valor del parámetro de la fuente de audio no es válido.  |  Este error puede producirse por varios motivos. Por ejemplo, la aplicación multimedia SIP no puede acceder al archivo debido a problemas con los permisos o con el bucket de S3. O bien, es posible que el archivo de audio no se valide debido a su duración, tamaño o formato no compatible.  | 
|  `InvalidActionParameter`  |  El parámetro `CallId` o `ParticipantTag` de la acción no es válido.  |  Un `CallId`, `ParticipantTag`, u otro parámetro no es válido.  | 
|  `SystemException`  |  Error del sistema al ejecutar la acción.  |  Se ha producido un error del sistema al ejecutar la acción.  | 

Cuando la acción no recopila el número de dígitos especificado debido a un tiempo de espera o a demasiados reintentos, la aplicación multimedia SIP invoca la AWS Lambda función con el `ACTION_FAILED` tipo de evento de invocación.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            "InputDigitsRegex": "^\d{2}#$",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-1.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-failure.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        ...
    }
}
```

Consulte algunos ejemplos prácticos sobre: GitHub
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-update-llamar](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ReceiveDigits
<a name="listen-to-digits"></a>

Cuando un usuario introduce dígitos que coinciden con el patrón de expresión regular especificado en esta acción, la aplicación multimedia SIP invoca la AWS Lambda función.

```
{
    "Type": "ReceiveDigits",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "InputDigitsRegex": "^\d{2}#$",
        "InBetweenDigitsDurationInMilliseconds": 1000, 
        "FlushDigitsDurationInMilliseconds": 10000
    }
}
```

**CallId**  
*Descripción*: `CallId` del participante en la `CallDetails` invocación de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**InputDigitsRegex**  
*Descripción:* patrón de expresión regular  
*Valores permitidos*: un patrón de expresión regular válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**InBetweenDigitsDurationInMilliseconds**  
*Descripción*: intervalo entre dígitos antes de comprobar si la entrada coincide con el patrón de expresión regular  
*Valores permitidos*: duración en milisegundos  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**FlushDigitsDurationInMilliseconds**  
*Descripción*: intervalo tras el cual los dígitos DTMF recibidos se vacían y se envían a la función. AWS Lambda Si la aplicación multimedia SIP recibe un nuevo dígito una vez finalizado el intervalo, el temporizador se reiniciará.  
*Valores permitidos*: -`InBetweenDigitsDurationInMilliseconds`  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

La aplicación multimedia SIP descarta los dígitos del DTMF durante la llamada hasta que reciba una nueva acción `ReceiveDigits`. El intervalo `FlushDigitsDurationInMilliseconds` comienza cuando la aplicación multimedia SIP recibe el primer dígito del DTMF. Si el usuario introduce los dígitos correctos antes de que caduque el intervalo, la aplicación multimedia SIP invoca la función descrita en. AWS Lambda [Recepción de una llamada entrante mediante el servicio de audio PSTN de Amazon Chime SDK](case-4.md)

Si la entrada del usuario no coincide con el patrón de expresiones regulares, la aplicación multimedia SIP repite el mensaje del archivo de audio «fallido» hasta que la aplicación agote el recuento de repeticiones o hasta que el usuario introduzca dígitos válidos. 

Consulte algunos ejemplos prácticos sobre GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notificaciones de llamadas](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-grabación por demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-llamada](https://github.com/aws-samples/amazon-chime-sma-update-call)

# RecordAudio
<a name="record-audio"></a>

Permite que la aplicación multimedia SIP grabe contenido multimedia desde un identificador de llamada determinado. Por ejemplo, una aplicación de correo de voz y anuncios para los participantes de una reunión. La aplicación graba hasta que alcanza la duración establecida, o cuando un usuario pulsa una de ellas o cuando la aplicación `RecordingTerminators` detecta silencio. En esos casos, la acción indica a la aplicación que coloque el archivo multimedia resultante en el bucket de S3 especificado. El bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, la acción debe conceder a `s3:PutObject` y `s3:PutObjectAcl` permiso a la entidad principal del servicio Amazon Chime SDK Voice Connector, a la entidad principal del servicio del conector de [voz de Amazon Chime SDK](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`. 

**nota**  
Las grabaciones realizadas con esta característica pueden estar sujetas a las leyes o reglamentos relativos a la grabación de comunicaciones electrónicas. Es su responsabilidad y la de sus usuarios finales cumplir con todas las leyes aplicables en relación con la grabación, incluida la notificación adecuada a todos los participantes de una sesión o comunicación grabada de que la sesión o la comunicación se está grabando y obtener su consentimiento.

El siguiente ejemplo otorga el permiso a `s3:PutObject` y `s3:PutObjectAcl` y el permiso a la entidad principal de servicio Amazon Chime SDK Voice Connector.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}
```

------

En el siguiente ejemplo, se detiene la grabación cuando la persona que llama pulsa la tecla mayúscula (\$1), o si transcurren 10 segundos sin actividad, o cuando la persona que llama permanece en silencio durante 3 segundos y escribe el archivo multimedia resultante en la ubicación definida por el parámetro `RecordingDestination`.

**nota**  
Este ejemplo utiliza el parámetro `CallId`. Puede usar el parámetro `ParticipantTag` en su lugar, pero no puede usar ambos.

```
{
    "Type": "RecordAudio",
    "Parameters": {
        "CallId": "call-id-1",
        "DurationInSeconds": "10",
        "SilenceDurationInSeconds": 3,
        "SilenceThreshold": 100,
        "RecordingTerminators": [
            "#"
        ],
        "RecordingDestination": {
            "Type": "S3",
            "BucketName": "valid-bucket-name",
            "Prefix": "valid-prefix-name"
        }
    }
}
```

**CallId**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**RecordingDestination.Type**  
*Descripción:* tipo de destino. Solo S3.  
*Valores permitidos*: S3  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**RecordingDestination.BucketName**  
*Descripción:* un nombre de bucket de S3 válido. El bucket debe tener acceso a la [entidad principal de servicio de Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`.  
*Valores permitidos*: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones `s3:PutObject` y `s3:PutObjectAcl`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

****RecordingDestination.Prefix****  
*Descripción:* prefijo S3 del archivo de grabación  
*Valores permitidos*: un nombre de prefijo válido que contiene hasta 979 caracteres seguros. Para obtener más información acerca de los caracteres seguros, consulte la sección de [caracteres seguros](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) de la Guía del usuario de Amazon Simple Storage Service.  
*Obligatorio:* no  
*Valor predeterminado*: ninguno. Si no se especifica, las grabaciones se guardan en la raíz del bucket de S3.

**DurationInSeconds**  
*Descripción*: duración, en segundos, de la grabación  
*Valores permitidos*: >0  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

****SilenceDurationInSeconds****  
*Descripción*: la duración del silencio en segundos, tras la cual se detiene la grabación. Si no se especifica, la detección de silencio está desactivada  
*Valores permitidos*: [1; 1000]  
*Obligatorio:* no  
*Valor predeterminado:* 200

****SilenceThreshold****  
*Descripción*: nivel de ruido que se considera “silencio”. Si no especifica la `SilenceDurationInSeconds`, este parámetro se ignora.  

**Valores de referencia (niveles y umbrales de ruido para tratar el ruido como silencio):**
+ De 1 a 30 dB o menos, como en una habitación silenciosa
+ De 100 a 40-50 dB, como en una oficina silenciosa o un suspiro
+ De 200 a 60 dB, como en una oficina abarrotada
+ De 1000 a 75 dB, como una persona o música ruidosa
*Valores permitidos*: [1; 1000]  
*Obligatorio:* no  
*Valor predeterminado:* 200

**RecordingTerminators**  
*Descripción*: enumera todos los terminadores de grabación disponibles.  
*Valores permitidos*: matriz de un solo dígito y símbolos de [123456789\$10\$1]  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Gestión de los eventos ACTION\$1SUCCESSFUL
<a name="handle-action-successful"></a>

Cuando finaliza la grabación, la aplicación multimedia SIP del SDK de Amazon Chime llama a la AWS Lambda función y le pasa el evento ACTION\$1SUCCESSFUL, junto con los resultados de la invocación.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "RecordAudio",
        "Parameters": {
           ...           
        },
        "RecordingDestination": {
            "Type": "S3",
            "BucketName": "valid-bucket-name",
            "Key": "valid-S3-key"              
        },
        "RecordingTerminatorUsed":"#"
    },
    "CallDetails": {
        ...
    }
}
```

El evento `ACTION_SUCCESSFUL` contiene `ActionData`, que contiene los siguientes campos:

**Type**  
*Descripción*: el tipo de acción, `RecordAudio`.

**Parameters**  
*Descripción*: los parámetros de la acción.

**RecordingDestination.Type**  
*Descripción:* tipo de destino. Solo S3. 

**RecordingDestination.BucketName**  
*Descripción*: bucket de S3 que contiene el archivo de grabación. 

**RecordingDestination.Key**  
*Descripción*: la clave S3 del archivo de grabación.

**RecordingTerminatorUsed**  
*Descripción*: el terminador utilizado para detener la grabación, uno de los terminadores incluidos en el parámetro `RecordingTerminators`. Si la grabación se detiene después de alcanzar la duración máxima (`DurationInSeconds`) o debido al silencio (`SilenceDurationInSeconds`), este par clave-valor no se incluye en la salida.

**Gestión de errores**  
En caso de errores de validación, la aplicación multimedia SIP llama a la AWS Lambda función con el mensaje de error correspondiente. En la siguiente tabla se enumeran los posibles mensajes de error.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  El parámetro `CallId` o `ParticipantTag` de acción no es válido. El valor del parámetro `DurationInSeconds` no es válido. El valor del parámetro `SilenceDurationInSeconds` no es válido. El valor del parámetro `SilenceThreshold` no es válido. El valor del parámetro `RecordingDestination` no es válido. Se ha producido un error al cargar la grabación en el bucket de S3.  |  Cualquier parámetro no es válido.  | 
|  `SystemException`  |  Error del sistema al ejecutar una acción.  |  Se produjo otro tipo de error del sistema al ejecutar una acción.  | 

## Gestión de eventos de ACTION\$1FAILED
<a name="handle-action-failed"></a>

Cuando la acción no graba el contenido multimedia de un tramo de llamada, la aplicación multimedia SIP invoca una AWS Lambda función con el tipo de `ACTION_FAILED` evento. Consulte el siguiente ejemplo.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "RecordAudio",
        "Parameters": {
           ...           
        },
        "ErrorType": "InvalidActionParameter",
        "ErrorMessage": "RecordingDestination parameter value is invalid."
    },
    "CallDetails": {
        ...
    }
}
```

Vea un ejemplo práctico sobre GitHub: [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)

# SendDigits
<a name="send-digits"></a>

Envíe hasta 50 dígitos de doble tono y multifrecuencia (DTMF) en cualquier tramo de una llamada. Las señales pueden incluir lo siguiente:
+ Números del 0 al 9
+ Caracteres especiales como asterisco (\$1) y almohadilla (\$1)
+ Señales de control de red A, B, C, D
+ El carácter de coma (,). Esta señal añade un retraso de 0,5 segundos entre la señal anterior y la siguiente.

**Topics**
+ [Uso de SendDigits acción](#send-digits-action)
+ [Manipulación ACTION\$1SUCCESSFUL eventos](#send-digit-success)
+ [Manipulación ACTION\$1FAILED eventos](#send-digit-fail)
+ [Flujo de llamada](#send-digits-call-flow)

## Uso de SendDigits acción
<a name="send-digits-action"></a>

A continuación se muestra una acción típica de `SendDigits`.

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "SendDigits",
            "Parameters": {
                "CallId": "call-id-1", // required
                "Digits": ",,*1234,56,7890ABCD#", // required
                "ToneDurationInMilliseconds": 100 // optional
            }
        }
    ]
}
```

**CallId**  
*Descripción*: el `CallId` de un participante en la invocación de los `CallDetails` de la función AWS Lambda   
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Digits**  
*Descripción*: los dígitos que se van a enviar en el tramo de llamada que corresponde al `CallId`  
*Valores permitidos*: 0-9, \$1, \$1, A, B, C, D, coma (,)  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**ToneDurationInMilliseconds**  
*Descripción*: cantidad de tiempo permitida, en milisegundos, para transmitir cada dígito.  
*Valores permitidos*: cualquier número entero entre 50 y 24000  
*Obligatorio:* no  
*Valor predeterminado:* 250

## Manipulación ACTION\$1SUCCESSFUL eventos
<a name="send-digit-success"></a>

En el ejemplo siguiente se muestra un evento `ACTION_SUCCESSFUL` típico para la acción `SendDigits`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "SendDigits",
        "Parameters": {
            "Digits": "1,2A#",
            "ToneDurationInMilliseconds": 100,
            "CallId": "call-id-1"
        },  
    "CallDetails": { 
        ...
        }
    }
}
```

## Manipulación ACTION\$1FAILED eventos
<a name="send-digit-fail"></a>

En el ejemplo siguiente se muestra un evento `ACTION_FAILED` típico para la acción `SendDigits`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "SendDigits",
        "Parameters": {
            "Digits": "1,2A#",
            "ToneDurationInMilliseconds": 20000000,
            "CallId": "call-id-1"
        },
    "ErrorType": "InvalidActionParameter",
    "ErrorMessage": "ToneDuration parameter value is invalid."
    },
    "CallDetails": {
        ...
        }
    }
}
```

## Flujo de llamada
<a name="send-digits-call-flow"></a>

El siguiente diagrama muestra el flujo del programa para enviar dígitos de una persona que llama a una persona que recibe la llamada.

![\[Diagrama que muestra el flujo programático de la acción SendDigits.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/send-digits-1.png)


# Speak
<a name="speak"></a>

Puede reproducir la voz en cualquier tramo de llamada proporcionando texto. Puede introducir texto sin formato o lenguaje de marcado de síntesis de voz (SSML). SSML proporciona un mayor control sobre la forma en que Amazon Chime SDK genera la voz al añadir pausas, hacer hincapié en determinadas palabras o cambiar el estilo de expresión.

El SDK de Amazon Chime utiliza el servicio Amazon Polly para realizar conversiones. text-to-speech Amazon Polly le permite elegir entre el motor estándar o el motor neuronal para mejorar la calidad de la voz. Amazon Polly admite más de 20 idiomas y 60 voces para personalizar la experiencia de usuario de la aplicación. Amazon Chime SDK ofrece características de voz sin costo alguno, pero usted paga por usar Amazon Polly. Consulte la [página de precios](https://aws.amazon.com/polly/pricing/) de Amazon Polly o su panel de facturación para obtener información sobre los precios.

**importante**  
El uso de Amazon Polly está sujeto a las [condiciones de servicio de AWS](https://aws.amazon.com/service-terms/), incluidas las condiciones específicas de los servicios de AWS Machine Learning e Inteligencia Artificial.

**Topics**
+ [Uso de Speak acción](#speak-action)
+ [Manipulación ACTION\$1SUCCESSFUL eventos](#speak-action-success)
+ [Manipulación ACTION\$1FAILED eventos](#speak-action-fail)
+ [Flujos de programas](#speak-flow)

## Uso de Speak acción
<a name="speak-action"></a>

En el ejemplo siguiente se muestra una utilización típica de la acción `Speak`.

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "Speak",
            "Parameters": {
                "Text": "Hello, World!",        // required
                "CallId": "call-id-1",          // required
                "Engine": "neural",             // optional. Defaults to standard
                "LanguageCode": "en-US",        // optional
                "TextType": "text",             // optional
                "VoiceId": "Joanna"             // optional. Defaults to Joanna
            }
        }
    ]
}
```

**CallId**  
*Descripción*: la `CallId` del participante en los `CallDetails` de la invocación de la función de Lambda  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Text**  
*Descripción*: especifica el texto de entrada que se va a sintetizar en voz. Si especifica `ssml` como `TextType`, siga el formato SSML para el texto de entrada.  
*Valores permitidos:* cadena  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Engine**  
*Descripción*: especifica el motor (estándar o neuronal) que se utilizará al procesar texto para la síntesis de voz.  
*Valores permitidos*: estándar \$1 neuronal  
*Obligatorio:* no  
*Valor predeterminado*: estándar

**LanguageCode**  
*Descripción:* especifica el código de lenguaje. Solo es necesario si se utiliza una voz bilingüe. Si utiliza una voz bilingüe sin código de idioma, se utiliza el idioma predeterminado de la voz bilingüe.  
*Valores permitidos*: códigos de lenguaje de [Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**TextType**  
*Descripción*: especifica el tipo de texto de entrada, texto sin formato o SSML. Si no se especifica un tipo de entrada, se utiliza texto sin formato como predeterminado. Para obtener más información sobre SSML, consulte [Generación de voz a partir de documentos SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) en la *Guía para desarrolladores de Amazon Polly.*  
*Valores permitidos*: ssml \$1 texto  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**VoiceId**  
*Descripción*: especifica el ID de voz que desea usar.  
*Valores permitidos* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatorio:* no  
*Valor predeterminado*: Joanna

## Manipulación ACTION\$1SUCCESSFUL eventos
<a name="speak-action-success"></a>

El siguiente ejemplo muestra un evento `ACTION_SUCCESSFUL` típico de una acción que sintetiza el texto «Hello World» en forma oral, en inglés, utilizando la voz de `Joanna` de Amazon Polly.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
       "Type": "Speak",
       "Parameters": {
          "CallId": "call-id-1",          
          "Engine":  "neural",             
          "LanguageCode":  "en-US",        
          "Text": "Hello World",          
          "TextType":  "text",             
          "VoiceId":  "Joanna"        
       }
    },
    "CallDetails":{       
       ...
    }
}
```

## Manipulación ACTION\$1FAILED eventos
<a name="speak-action-fail"></a>

En el siguiente ejemplo, se muestra un evento `ACTION_FAILED` típico del mismo evento utilizado en el ejemplo anterior.

```
{
    "SchemaVersion": "1.0",
    "Sequence":2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
       "Type": "Speak",
       "Parameters": {
          "CallId": "call-id-1",          
          "Engine":  "neural",             
          "LanguageCode":  "en-US",        
          "Text": "Hello  World",          
          "TextType":  "text",             
          "VoiceId":  "Joanna"        
       },
       "ErrorType": "SystemException",
       "ErrorMessage": "System error while running  action"
    },
    "CallDetails":{       
       ...
    }
}
```

**Gestión de errores**  
En esta tabla se enumeran y describen los mensajes de error generados por la acción `Speak`.


| Error | Mensaje | Motivo | 
| --- | --- | --- | 
| `AccessDenied` | La función `AWSServiceRoleForAmazonChimeVoiceConnector` vinculada al servicio no está configurada correctamente. | El rol vinculado al servicio que se utiliza para hacer solicitudes a Amazon Polly no existe o le faltan permisos. Para resolverlo, consulte los pasos de la sección [Uso de la función vinculada al servicio Amazon Chime SDK Voice Connector](speak-and-get-digits.md#speak-digits-policy) | 
| `InvalidActionParameter` |   | Se ha producido un error al validar los parámetros de acción. Consulte la [SynthesizeSpeech API](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech) en la *Guía para desarrolladores de Amazon Polly* para obtener más información sobre los parámetros. | 
| ActionExecutionThrottled | Amazon Polly está limitando la solicitud de sintetizar voz. | La solicitud a Amazon Polly devuelve una excepción de limitación. [Para obtener más información sobre los límites de regulación de Amazon Polly, consulta https://docs.aws.amazon.com/polly/ latest/dg/limits .html \$1limits -throttle.](https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle) | 
| `MissingRequiredActionParameter` | El `Text` ahora es un parámetro obligatorio. | Los parámetros de acción deben tener un valor `Text` | 
| `MissingRequiredActionParameter` | El `Text` está limitado a 1000 caracteres. | El texto ha superado el límite de caracteres. | 
| `SystemException` | Error del sistema al ejecutar la acción. | Se ha producido un error del sistema al ejecutar la acción. | 

## Flujos de programas
<a name="speak-flow"></a>

El siguiente diagrama muestra el flujo del programa que habilita la acción `Speak` para la persona que llama. En este ejemplo, la persona que llama escucha un texto que 

![\[Diagrama que muestra el flujo del programa para habilitar la acción Speak para la persona que llama.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/Speak1.png)


**En el diagrama**  
Con un teléfono móvil, la persona que llama introduce un número registrado en una aplicación multimedia SIP. La aplicación utiliza el método `INVITE` de SIP y envía una respuesta `Trying (100)` a la persona que llama. Esto indica que el servidor de siguiente salto recibió la solicitud de llamada. A continuación, la aplicación SIP utiliza `INVITE` para ponerse en contacto con el punto de conexión. Una vez establecida la conexión, las aplicaciones envían una respuesta `Ringing (180)` a la persona que llama y comienzan las alertas. 

A continuación, la aplicación multimedia SIP envía un evento `NEW_INBOUND_CALL` a la función de Lambda, que responde con una acción `Speak` que incluye el identificador de la persona que llama y el texto que se desea convertir en voz. A continuación, la aplicación SIP envía una respuesta `200 (OK)` para indicar que se ha respondido a la llamada. El protocolo también habilita los medios. 

Si la acción `Speak` se realiza correctamente y convierte el texto en voz, devuelve un evento `ACTION_SUCCESSFUL` a la aplicación multimedia SIP, que devuelve el siguiente conjunto de acciones. Si la acción falla, la aplicación multimedia SIP envía un evento `ACTION_FAILED` a la función de Lambda, que responde con un conjunto de acciones `Hangup`. La aplicación cuelga a la persona que llama y devuelve un evento `HANGUP` a la función de Lambda, que no realiza ninguna otra acción. 



El siguiente diagrama muestra el flujo del programa que habilita la acción `Speak` para la persona que recibe la llamada.

![\[Diagrama que muestra el flujo del programa para habilitar la acción Speak para una persona que recibe la llamada. Puede hacer lo siguiente en cualquier llamada puente.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/Speak2.png)


**En el diagrama**  
La persona que llama introduce un número registrado en una aplicación multimedia SIP y la aplicación responde como se describe en el diagrama anterior. Cuando la función de Lambda recibe el evento `NEW_INBOUND_CALL`, devuelve la acción [CallAndBridge](call-and-bridge.md) a la aplicación SIP. A continuación, la aplicación utiliza el método `INVITE` de SIP para enviar las respuestas `Trying (100)` y `Ringing (180)` a la persona que recibe la llamada. 

Si la persona que recibe la llamada responde, la aplicación multimedia SIP recibe una respuesta `200 (OK)` y envía la misma respuesta a la persona que llama. Esto establece los medios y la aplicación SIP envía un evento `ACTION_SUCCESSFUL` para la acción [CallAndBridge](call-and-bridge.md) a la función de Lambda. A continuación, la función devuelve la acción de voz y los datos a la aplicación SIP, que los convierte 

# SpeakAndGetDigits
<a name="speak-and-get-digits"></a>

Reproduzca la voz proporcionando texto y recopile los dígitos multifrecuencia (DTMF) de doble tono del usuario. El texto puede ser texto sin formato o texto mejorado con el lenguaje de marcado de síntesis de voz (SSML) para proporcionar un mayor control sobre la forma en que Amazon Chime SDK genera la voz mediante la adición de pausas, el énfasis en determinadas palabras o el cambio del estilo de expresión, entre otras características de SSML compatibles. Si se produce un error, por ejemplo, si un usuario no introduce el número correcto de dígitos del DTMF, la acción reproduce el discurso de «fallo» y, a continuación, reproduce el discurso principal hasta que la aplicación multimedia SIP agote el número de intentos definido en el parámetro `Repeat`.

Amazon Chime SDK utiliza Amazon Polly, un servicio en la nube que convierte el texto en voz realista. Amazon Polly proporciona un motor estándar y uno neuronal para mejorar la calidad de la voz, más de 20 idiomas compatibles y 60 voces. Amazon Polly ofrece características de voz sin costo alguno, pero usted paga por usar Amazon Polly. Consulte la [página de precios](https://aws.amazon.com/polly/pricing/) de Amazon Polly o el panel de facturación para obtener información sobre los precios.

**importante**  
El uso de Amazon Polly está sujeto a las [Condiciones del AWS servicio](https://aws.amazon.com/service-terms/), incluidas las condiciones específicas de los Servicios de AWS Machine Learning e Inteligencia Artificial.

**Topics**
+ [Uso de SpeakAndGetDigits acción](#speak-digits-action)
+ [Manipulación ACTION\$1SUCCESSFUL eventos](#speak-digits-success)
+ [Manipulación ACTION\$1FAILED eventos](#speak-digits-fail)
+ [Uso de la función vinculada al servicio Amazon Chime SDK Voice Connector](#speak-digits-policy)

## Uso de SpeakAndGetDigits acción
<a name="speak-digits-action"></a>

En el ejemplo siguiente, se muestra una utilización típica de la acción `SpeakAndGetDigits`:

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          // required
                "InputDigitsRegex": "^\d{2}#$", // optional
                "SpeechParameters": {
                    "Text": "Hello World",      // required
                    "Engine": "neural",         // optional. Defaults to standard
                    "LanguageCode": "en-US",    // optional
                    "TextType": "text",         // optional
                    "VoiceId": "Joanna"         // optional. Defaults to Joanna
                },
                "FailureSpeechParameters": {
                    "Text": "Hello World",      // required
                    "Engine": "neural",         // optional. Defaults to the Engine value in SpeechParameters
                    "LanguageCode": "en-US",    // optional. Defaults to the LanguageCode value in SpeechParameters
                    "TextType": "text",         // optional. Defaults to the TextType value in SpeechParameters
                    "VoiceId": "Joanna"         // optional. Defaults to the VoiceId value in SpeechParameters
                },
                "MinNumberOfDigits": 3,         // optional
                "MaxNumberOfDigits": 5,         // optional
                "TerminatorDigits": ["#"],      // optional
                "InBetweenDigitsDurationInMilliseconds": 5000,  // optional
                "Repeat": 3,                    // optional
                "RepeatDurationInMilliseconds": 10000           // required
            }
        }
    ]
}
```

**CallId**  
*Descripción*: el `CallId` del participante en la CallDetails invocación de la función Lambda.  
*Valores permitidos*: un `callID` válido  
*Obligatorio*: sí  
*Valor predeterminado*: No

**InputDigitsRegex**  
*Descripción*: patrón de expresión regular que ayuda a garantizar que los usuarios escriban los dígitos y letras correctos.  
*Valores permitidos*: un patrón de expresión regular válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**SpeechParameters.Engine**  
*Descripción*: especifica el motor (estándar o neuronal) que se utilizará al procesar texto para la síntesis de voz.  
*Valores permitidos* – `standard` \$1 `neural`  
*Obligatorio:* no  
*Valor predeterminado*: estándar

**SpeechParameters.LanguageCode**  
*Descripción:* especifica el código de lenguaje. Esto solo es necesario si se utiliza una voz bilingüe. Si se usa una voz bilingüe y no se especifica ningún código de idioma, se usa el idioma predeterminado de la voz bilingüe.  
*Valores permitidos*: códigos de lenguaje de [Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**SpeechParameters.Text**  
*Descripción:* especifica el texto de entrada. Si especifica `ssml` como `SpeechParameters.TextType`, debe seguir el formato SSML para el texto de entrada. Para obtener más información sobre SSML, consulte [Generación de voz a partir de documentos SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) en la *Guía para desarrolladores de Amazon Polly.*  
*Valores permitidos:* cadena  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**SpeechParameters.TextType**  
*Descripción: * especifica el formato de texto para `SpeechParameters.Text`. Si no se especifica ninguno, se utilizará `text` de forma predeterminada. Para obtener más información sobre SSML, consulte [Generación de voz a partir de documentos SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) en la *Guía para desarrolladores de Amazon Polly.*  
*Valores permitidos* – `ssml` \$1 `text`  
*Obligatorio:* no  
*Valor predeterminado:* - `text`

**SpeechParameters.VoiceId**  
*Descripción*: el identificador de la voz de Amazon Polly utilizada para pronunciar el texto en `SpeechParameters.Text`.  
*Valores permitidos* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatorio:* no  
*Valor predeterminado*: Joanna

**FailureSpeechParameters.Engine**  
*Descripción*: especifica el motor (estándar o neuronal) que se utilizará al procesar el mensaje de error que se utiliza cuando el cliente introduce una respuesta no válida para la síntesis de voz.  
*Valores permitidos* – `standard` \$1 `neural`  
*Obligatorio:* no  
*Valor predeterminado*: el valor `SpeechParameters.Engine`

**FailureSpeechParameters.LanguageCode**  
*Descripción*: especifica el código de idioma utilizado cuando el cliente introduce una respuesta no válida. Solo es necesario cuando se utiliza una voz bilingüe. Si utiliza una voz bilingüe sin especificar un código de idioma, se utilizará el idioma predeterminado de la voz bilingüe.  
*Valores permitidos*: códigos de lenguaje de [Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatorio:* no  
*Valor predeterminado*: el valor `SpeechParameters.LanguageCode`.

**FailureSpeechParameters.Text**  
*Descripción*: especifica el texto de entrada que se pronunciará cuando el cliente introduzca una respuesta no válida. Si especifica `ssml` como `FailureSpeechParameters.TextType`, debe seguir el formato SSML para el texto de entrada.  
*Valores permitidos:* cadena  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**FailureSpeechParameters.TextType**  
*Descripción*: especifica si el texto de entrada especificado en `FailureSpeechParameters.Text` es texto plano o SSML. El valor predeterminado es texto sin formato. Para obtener más información, consulte [Generación de voz a partir de documentos SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) en la *Guía para desarrolladores de Amazon Polly*.  
*Valores permitidos* – `ssml` \$1 `text`  
*Obligatorio:* no  
*Valor predeterminado*: el valor `SpeechParameters.Text`

**FailureSpeechParameters.VoiceId**  
*Descripción*: el identificador de la voz utilizada para pronunciar la cadena en `FailureSpeechParameters.Text`.  
*Valores permitidos* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatorio*: sí  
*Valor predeterminado*: el valor `SpeechParameters.VoiceId`

**MinNumberOfDigits**  
*Descripción*: el número mínimo de dígitos que se deben capturar antes de que se agote el tiempo de espera o se reproduzca el mensaje de «llamada fallida».  
*Valores permitidos*: mayor o igual que cero  
*Obligatorio:* no  
*Valor predeterminado:* 0

**MaxNumberOfDigits**  
*Descripción*: el número máximo de dígitos que se deben capturar antes de detenerse sin un dígito final.  
*Valores permitidos*: superiores a `MinNumberOfDigits`  
*Obligatorio:* no  
*Valor predeterminado*: 128

**TerminatorDigits**  
*Descripción*: dígito que se utiliza para finalizar la entrada si el usuario introduce un número inferior al MaxNumberOfDigits  
*Valores permitidos*: cualquiera de los siguientes: 0 1 2 3 4 5 6 7 8 9 \$1 o \$1  
*Obligatorio:* no  
*Valor predeterminado*: \$1

**InBetweenDigitsDurationInMilliseconds**  
*Descripción*: el tiempo de espera en milisegundos entre las entradas de dígitos antes de reproducir la voz de error.  
*Valores permitidos*: superiores a cero  
*Obligatorio:* no  
*Valor predeterminado*: si no se especifica, el valor predeterminado es `RepeatDurationInMilliseconds`.

**Repeat**  
*Descripción*: número total de intentos de obtener dígitos. Si omite este parámetro, el valor predeterminado es un intento de recopilar dígitos.  
*Valores permitidos*: superiores a cero  
*Obligatorio:* no  
*Valor predeterminado*: 1

**RepeatDurationInMilliseconds**  
*Descripción*: tiempo de espera en milisegundos para cada intento de obtener dígitos.  
*Valores permitidos*: superiores a cero  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Manipulación ACTION\$1SUCCESSFUL eventos
<a name="speak-digits-success"></a>

En el siguiente ejemplo, se muestra un evento `ACTION_SUCCESSFUL` típico.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
            "Type":  "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          
                "InputDigitsRegex":  "^\d{2}#$", 
                "SpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode": "en-US",    
                    "Text":  "Hello World",           
                    "TextType":  "text",         
                    "VoiceId": "Joanna"         
                },
                "FailureSpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode":  "en-US",    
                    "Text":  "Hello World",           
                    "TextType": "text",         
                    "VoiceId": "Joanna"         
                },
                "MinNumberOfDigits": 3,         
                "MaxNumberOfDigits": 5,         
                "TerminatorDigits": ["#"],      
                "InBetweenDigitsDurationInMilliseconds": 5000,  
                "Repeat": 3,                    
                "RepeatDurationInMilliseconds": 10000           
            },
            "ReceivedDigits": "1234"
    },
    "CallDetails":{       
       ...
    }
}
```

## Manipulación ACTION\$1FAILED eventos
<a name="speak-digits-fail"></a>

En el siguiente ejemplo, se muestra un evento `ACTION_FAILED` típico.

```
{
    "SchemaVersion": "1.0",
    "Sequence":2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
            "Type":  "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          
                "InputDigitsRegex":  "^\d{2}#$", 
                "SpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode": "en-US",    
                    "Text":  "Hello World",           
                    "TextType":  "text",         
                    "VoiceId": "Joanna"         
                },
                "FailureSpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode":  "en-US",    
                    "Text":  "Hello World",          
                    "TextType": "text",        
                    "VoiceId": "Joanna"        
                },
                "MinNumberOfDigits": 3,      
                "MaxNumberOfDigits": 5,        
                "TerminatorDigits": ["#"],      
                "InBetweenDigitsDurationInMilliseconds": 5000,  
                "Repeat": 3,                    
                "RepeatDurationInMilliseconds": 10000         
            },
            "ErrorType":  "SystemException",
            "ErrorMessage":  "System error while running action"
    },
    "CallDetails":{       
       ...
    }
}
```

**Gestión de errores**  
En esta tabla se enumeran y describen los mensajes de error generados por la acción `Speak`.


| Error | Mensaje | Motivo | 
| --- | --- | --- | 
| `AccessDenied` | El rol `AWSServiceRoleForAmazonChimeVoiceConnector` no se ha configurado correctamente. | El rol utilizado para realizar solicitudes a Amazon Polly no existe o le faltan permisos. Para resolverlo, consulte los pasos de la sección [Uso de la función vinculada al servicio Amazon Chime SDK Voice Connector](#speak-digits-policy) | 
| `InvalidActionParameter` |   | Se ha producido un error al validar los parámetros de acción. Para revisar los parámetros disponibles para esta acción y sus opciones, consulte [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html) en la Guía para desarrolladores de Amazon Polly. | 
| `MissingRequiredActionParameter` | El `Text` ahora es un parámetro obligatorio. | Los parámetros de la acción deben tener un valor `Text` | 
| `MissingRequiredActionParameter` | El `Text` está limitado a 1000 caracteres. | El texto ha superado el límite de caracteres. | 
| `SystemException` | Error del sistema al ejecutar la acción. | Se ha producido un error del sistema al ejecutar la acción. | 

## Uso de la función vinculada al servicio Amazon Chime SDK Voice Connector
<a name="speak-digits-policy"></a>

No necesita crear manualmente el rol vinculado al servicio para las acciones `Speak` o `SpeakAndGetDigits`. Al crear o actualizar una aplicación multimedia SIP en la consola, la o la AWS API del SDK de Amazon Chime AWS Command Line Interface, el SDK de Amazon Chime crea el rol vinculado al servicio por usted.

Para obtener más información, consulte [Uso del rol vinculado al servicio de Amazon Chime](https://docs.aws.amazon.com/chime/latest/ag/using-service-linked-roles-stream.html) en la *Guía del administrador de Amazon Chime SDK.*

# StartBotConversation
<a name="start-bot-conversation"></a>

La acción `StartBotConversation` establece una conversación de voz entre un usuario final y su bot de Amazon Lex v2. El usuario proporciona la información requerida al bot. A continuación, el bot devuelve la información a la función de Lambda de audio de la red telefónica pública conmutada (PSTN) y la función realiza las tareas solicitadas.

Por ejemplo, el bot puede reproducir un mensaje de bienvenida opcional al inicio de una conversación para describir brevemente la tarea que puede realizar la función de Lambda de audio PSTN. La conversación va y viene entre el usuario y el bot hasta que el bot recopila la información requerida. Una vez finalizada la conversación, Amazon Chime SDK invoca la función de Lambda de audio PSTN con un evento de acción exitosa, que contiene la información recopilada por el bot. La función de Lambda de audio PSTN procesa la información y realiza la tarea solicitada.

El servicio de audio proporciona una interacción conversacional realista con sus usuarios. Por ejemplo, los usuarios pueden interrumpir el bot y responder a una pregunta antes de que finalice el mensaje de audio. Además, los usuarios pueden usar cualquier combinación de dígitos de voz y DTMF para proporcionar información. El bot espera a que el usuario introduzca información antes de responder. Puede configurar cuánto tiempo espera el bot a que el usuario termine de hablar antes de interpretar cualquier entrada de voz. El usuario también puede indicar al bot que espere si necesita tiempo para recuperar información adicional durante una llamada, como números de tarjetas de crédito.

La acción `StartBotConversation` utiliza Amazon Lex y Amazon Polly durante la conversación del bot. Se aplican los costos estándar de Amazon Lex y Amazon Polly. Para obtener más información sobre los precios, consulte las páginas de [precios de las conversaciones en transmisión de Amazon Lex](https://aws.amazon.com/lex/pricing/) y de [precios de Amazon Polly](https://aws.amazon.com/polly/pricing/).

**nota**  
No puede ejecutar esta acción en una llamada puente ni en una llamada que se haya unido a una reunión de Amazon Chime SDK.

**importante**  
El uso de Amazon Lex y Amazon Polly está sujeto a las [Condiciones del AWS servicio](https://aws.amazon.com/service-terms/), incluidas las condiciones específicas de los Servicios de AWS Machine Learning e Inteligencia Artificial.

**Topics**
+ [Sintaxis de StartBotConversation](#startbot-syntax)
+ [Uso de la acción StartBotConversation](#using-startbot)
+ [Gestión de eventos de ACTION\$1SUCCESSFUL](#bot-action-success)
+ [Gestión de eventos de ACTION\$1FAILED](#bot-action-fail)
+ [Concesión de permisos para usar un bot](#bot-permissions)
+ [Configuración de los tiempos de espera de voz y DTMF](#bot-timeouts)
+ [Uso de entradas DTMF durante una conversación](#bot-dtmf)
+ [Service Quotas y cuotas de facturación](#bot-billing)

## Sintaxis de StartBotConversation
<a name="startbot-syntax"></a>

A continuación se muestra un ejemplo típico de sintaxis de `StartBotConversation`.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "string",
        "ParticipantTag": "string",
        "BotAliasArn": "string",
        "LocaleId": "string",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "string": "string" 
             },
             "DialogAction" : {
               "Type": "string"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "string",
              "ContentType": "string" 
            }
          ]
        }
      }
    }
  ]
}
```

**CallId**  
*Descripción*: la `CallID` de un participante en la invocación `CallDetails` de la AWS Lambda función. La acción `StartBotConversation` usa este ID como el de la `SessionId` del bot. Todas las conversaciones de bots que tienen lugar en una llamada comparten la misma sesión de conversación. Puede modificar el estado de la sesión entre su usuario y su bot mediante la API [PutSession de Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html). Para obtener más información, consulte [Gestión de sesiones con la API Amazon Lex v2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) en la *Guía para desarrolladores de Amazon Lex*.  
*Valores permitidos*: un identificador de llamada válido.  
*Obligatorio*: no, si `ParticipantTag` está presente.  
*Valor predeterminado:* ninguno.

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`.  
*Valores permitidos*: `LEG-A`.  
*Obligatorio*: no, si `CallId` está presente.  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado. Se omite si se especifica `CallDetails`.

**BotAliasArn**  
*Descripción*: el alias de bot ARN de su bot Lex. Debe crear el bot en la misma región de AWS que la aplicación de audio de PSTN. Un alias de bot de Amazon Lex válido tiene este formato: `arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId`, donde *`region`* se encuentra la región de AWS en la que reside el bot. El `awsAccountId` es el ID de cuenta de AWS en el que se creó el bot de Amazon Lex. El valor `botId` es el identificador asignado al bot cuando se creó. Puede encontrar el ID del bot en la consola Amazon Lex, en la página de **detalles del bot**. El `botAliasId` es el identificador asignado al alias del bot cuando se creó. Puede ver el ID del alias del bot en la consola de Amazon Lex en la página **Alias**.   
*Valores permitidos*: un ARN de bot válido.  
*Obligatorio*: sí.  
*Valor predeterminado: ninguno*.

**LocaleId**  
*Descripción*: el identificador de la configuración regional que utilizó para su bot. Para obtener una lista de las configuraciones regionales y los códigos de idioma, consulte [Idiomas y configuraciones regionales compatibles con Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Valores permitidos*: [lenguajes y configuraciones regionales compatibles con Amazon Lex.](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html)  
*Obligatorio:* no.  
*Valor predeterminado:* `en_US`.

**Configuration**  
*Descripción*: la configuración de la conversación, incluidos el estado de la sesión y los mensajes de bienvenida. El tamaño total de la representación en cadena JSON del objeto de `Configuration` está limitado a 10 KB.  
*Valores permitidos*: `Configuration` objeto.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.SessionState**  
*Descripción*: el estado de la sesión del usuario con Amazon Lex v2.  
*Valores permitidos*: `SessionState` objeto.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.SessionState.SessionAttributes**  
*Descripción*: mapa de los key/value pares que representan información de contexto específica de la sesión. Este mapa contiene la información de la aplicación que se transmite entre Amazon Lex v2 y una aplicación cliente.  
*Valores permitidos*: mapa de cadena a cadena.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.SessionState.DialogAction.Type**  
*Descripción*: la siguiente acción que realiza el bot en sus interacciones con el usuario. Valores posibles:  
+ *Delegado*: Amazon Lex v2 determina la siguiente acción.
+ *ElicitIntent*La siguiente acción suscita una intención por parte del usuario.
*Valores permitidos*: `Delegate` \$1 `ElicitIntent`.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.WelcomeMessages**  
*Descripción*: lista de mensajes para enviar al usuario al inicio de la conversación. Si establece el campo `welcomeMessage`, debe establecer el valor `DialogAction.Type` como `ElicitIntent`.  
*Valores permitidos*: objeto de mensaje  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.WelcomeMessages.Content**  
*Descripción*: el texto del mensaje de bienvenida.  
*Valores permitidos*: cadena.  
*Obligatorio:* no.  
*Valor predeterminado:* ninguno.

**Configuration.WelcomeMessages.ContentType**  
*Descripción:* indica el tipo de mensaje de bienvenida.  
*Valores permitidos*: ` PlainText` \$1 `SSML`  
+ *PlainText*— El mensaje contiene texto UTF-8 plano. 
+ *SSML*: el mensaje contiene texto con formato para salida de voz.
*Obligatorio*: sí.  
*Valor predeterminado:* ninguno.

## Uso de la acción StartBotConversation
<a name="using-startbot"></a>

A continuación se muestra una acción típica de `StartBotConversation`.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "call-id-1",
        "BotAliasArn": "arn:aws:lex:us-east-1:123456789012:bot-alias/ABCDEFGHIH/MNOPQRSTUV",
        "LocaleId": "en_US",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "mykey1": "myvalue1" 
             },
             "DialogAction" : {
               "Type": "ElicitIntent"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "Welcome. How can I help you?",
              "ContentType": "PlainText" 
            }
          ]
        }
      }
    }
  ]
}
```

## Gestión de eventos de ACTION\$1SUCCESSFUL
<a name="bot-action-success"></a>

En el ejemplo siguiente se muestra un evento `ACTION_SUCCESSFUL` típico para la acción `StartBotConversation`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData":
    {
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action.
        },
        "CallDetails": {
            // Information about the call associated with the AWS Lambda invocation.
        },
        "IntentResult": {
            "SessionId": "string",
            "SessionState": {
                "SessionAttributes": {
                    "string": "string"
                },
                "Intent": {
                    "Name": "string",
                    "Slots":  {
                        "string": {
                            "Value": {
                                "OriginalValue": "string",
                                "InterpretedValue": "string",
                                "ResolvedValues": ["string"]
                            },
                            "Values": []
                        }
                    },
                    "State": "string",
                    "ConfirmationState": "string"
                }
            },
            "Interpretations": [
                {
                    "NluConfidence": {
                        "Score": number
                    },
                    "Intent": {
                        "Name": "string",
                        "Slots": {
                            "string": {
                                "Value": {
                                    "OriginalValue": "string",
                                    "InterpretedValue": "string",
                                    "ResolvedValues": ["string"]
                                },
                                "Values": []
                            }
                        },
                        "State": "string",
                        "ConfirmationState": "string"
                    }
                }
            ]
        }
    }
}
```

**IntentResult**  
El resultado de la conversación entre el usuario y el bot.

**SessionId**  
Identificador de la sesión de conversación del bot. Cuando un usuario inicia una conversación con un bot, Amazon Lex crea una sesión. Una sesión encapsula la información intercambiada entre el usuario y el bot. La acción `StartBotConversation` usa el ID de llamada como el de la `SessionId` del bot. Puede modificar el estado de la sesión entre su usuario y su bot mediante la API [https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html) de Amazon Lex. Para obtener más información, consulte [Gestión de sesiones con la API Amazon Lex v2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) en la *Guía para desarrolladores de Amazon Lex*.

**SessionState**  
El estado de la sesión del usuario con Amazon Lex V2. 

**SessionState.SessionAttributes**  
Mapa de key/value pares que representan información de contexto específica de la sesión. El mapa contiene la información de la conversación del bot que se transmite entre la función de Lambda adjunta al bot y la función de Lambda de audio PSTN.

**Interpretaciones**  
Una lista de intenciones derivada de Amazon Lex que pueden satisfacer la expresión del cliente. La intención con la puntuación de `NluConfidence` más alta se convierte en la intención de `SessionState`. 

**Interpretaciones. NluConfidence.Puntuación**  
Una puntuación que indica el grado de confianza de Amazon Lex v2 de un en lo que respecta a la capacidad de una intención para satisfacer las expectativas del usuario. Varía entre 0.00 y 1.00. Una puntuación más alta indica una mayor confianza. 

**Intent**  
La acción que el usuario desea realizar.

**Intent.Name**  
El nombre de la intención.

**Intent.Slots**  
Un mapa de todos los espacios para la intención. El nombre de la ranura se asigna al valor de la ranura. Si no se ha ocupado un espacio, el valor es nulo.

**Intent.Slots.Value**  
El valor del tipo de ranura.

**Intent.Slots.Values**  
Una lista de uno o más valores que el usuario ha proporcionado para la ranura.

**Intent.Slots.Value.OriginalValue**  
El texto de la respuesta del usuario, introducido para el espacio.

**Intent.Slots.Value.InterpretedValue**  
*Descripción*: el valor que Amazon Lex v2 determina para la ranura. El valor real depende de la configuración de la estrategia de selección de valores del bot. Puede optar por utilizar el valor introducido por el usuario o puede hacer que Amazon Lex v2 elija el primer valor de la lista de `resolvedValues`.

**Intent.Slots.Value.ResolvedValues**  
Una lista de valores adicionales que Amazon Lex v2 reconoce para la ranura.

**Intent.State**  
*Descripción*: información sobre el cumplimiento de la intención. Valores posibles:  
+ `Failed`: la función de Lambda no cumplió con la intención.
+ `Fulfilled`: la función de Lambda cumplió la intención.
+ `ReadyForFulfillment`: la información de la intención está presente y su función de Lambda puede cumplirla. 

**Intent.ConfirmationState**  
*Descripción*: indica la confirmación de la intención. Valores posibles:  
+ *Confirmado*: se cumple la intención.
+ *Denegado*: el usuario respondió “no” a la solicitud de confirmación.
+ *Ninguno*: no se solicitó la confirmación al usuario o se le pidió al usuario que confirmara o rechazara la solicitud, pero no la confirmó o rechazó.

## Gestión de eventos de ACTION\$1FAILED
<a name="bot-action-fail"></a>

En el ejemplo siguiente se muestra un evento `ACTION_FAILED` típico para la acción `StartBotConversation`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action
        },
        "ErrorType": "string",
        "ErrorMessage": "string"
    },
    "CallDetails":{
    }
}
```

**ErrorType**  
Una cadena que identifica de forma exclusiva una condición de error.

**ErrorMessage**  
Una descripción genérica de la condición de error.

### Códigos de error
<a name="action-errors"></a>

En la siguiente tabla se enumeran los mensajes de error que una función de Lambda puede devolver en un evento de `ACTION_FAILED`.


| Error | Description (Descripción) | 
| --- | --- | 
|  `InvalidActionParameter` | Uno o más parámetros de acción no son válidos. El mensaje de error describe el parámetro no válido. | 
| `SystemException` | Se ha producido un error del sistema al ejecutar una acción. | 
| `ResourceNotFound` | No se encuentra un bot especificado. | 
| `ResourceAccessDenied` | El acceso al bot se deniega. | 
| `ActionExecutionThrottled` | Se ha superado el límite del servicio de conversación entre bots. El mensaje de error describe el límite de servicio específico que se ha superado. | 

## Concesión de permisos para usar un bot
<a name="bot-permissions"></a>

El siguiente ejemplo concede al SDK de Amazon Chime permiso para llamar a Amazon Lex. [https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html) APIs Debe conceder explícitamente permiso al servicio de audio para que use su bot. El bloque de condiciones es obligatorio para las entidades principales de servicio. El bloque de condiciones debe usar las claves de contexto globales `AWS:SourceAccount` y `AWS:SourceArn`. `AWS:SourceAccount` es el ID de su cuenta de AWS. `AWS:SourceArn` es el ARN de recurso de la aplicación de audio PSTN que invoca el bot Lex.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowChimePstnAudioUseBot",
      "Effect": "Allow",
      "Principal": {
        "Service": "voiceconnector.chime.amazonaws.com"
      },
      "Action": "lex:StartConversation",
  "Resource": "arn:aws:lex:us-east-1:123456789012:bot-alias/botId/aliasId",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnEquals": {
        "AWS:SourceArn": "arn:aws:chime:us-east-1:123456789012:sma/smaId"
        }
      }
    }
  ]
}
```

------

## Configuración de los tiempos de espera de voz y DTMF
<a name="bot-timeouts"></a>

Puede configurar los tiempos de espera de voz y DTMF al capturar las entradas del usuario. También puede configurar los tiempos de espera mediante atributos de sesión al iniciar una conversación con un bot y sobrescribirlos en su función de Lambda si es necesario. Amazon Lex le permite establecer varias ranuras para una intención o bots. Dado que puede especificar que los atributos de sesión se apliquen en el nivel de intención y ranura, puede especificar que el atributo se establezca solo cuando obtenga un determinado tipo de entrada. Por ejemplo, puede especificar un tiempo de espera más largo cuando recopile un número de cuenta que cuando recopile una fecha. Puede utilizar caracteres comodín en la clave de atributo de la sesión. 

Por ejemplo, para establecer un tiempo de espera de voz para todos los intervalos a todos los efectos en 4000 milisegundos, puede proporcionar un atributo de sesión utilizando: `x-amz-lex:start-timeout-ms:*:*` como nombre del atributo de sesión y `4000` como valor del atributo de sesión. Para obtener más información, consulte [Configuración de los tiempos de espera para capturar la entrada del usuario](https://docs.aws.amazon.com/lexv2/latest/dg/session-attribs-speech.htm) en la *Guía para desarrolladores de Amazon Lex*. 

## Uso de entradas DTMF durante una conversación
<a name="bot-dtmf"></a>

Los bots de Amazon Lex admiten la entrada de voz y teclado durante una conversación. Los bots interpretan las entradas del teclado como dígitos DTMF. Puede solicitar a los contactos que finalicen su entrada con la tecla almohadilla (\$1) y que cancelen una conversación con la tecla asterisco (\$1). Si no pide a los clientes que finalicen sus entradas con la tecla almohadilla, Lex deja de esperar a que se presionen más teclas después de 5 segundos.

## Service Quotas y cuotas de facturación
<a name="bot-billing"></a>

AWS le factura los siguientes costos:
+ Uso de Amazon Chime SDK para la llamada. Para obtener más información, consulte los [Precios de Amazon Chime SDK](https://aws.amazon.com/chime/chime-sdk/pricing/).
+ Uso de Amazon Lex para interpretar el discurso de los usuarios. Para obtener más información, consulte [Precios de Amazon Lex Streaming Conversation](https://aws.amazon.com/lex/pricing/).
+ Uso de Amazon Polly para sintetizar las respuestas de texto de su bot. Para obtener más información, consulte [precios de Amazon Polly](https://aws.amazon.com/polly/pricing/).

También debe conocer las siguientes Service Quotas:
+ El Amazon Chime SDK tiene una cuota de servicio para el número máximo de bots de Amazon Lex que se pueden crear con la acción [StartBotConversation](#start-bot-conversation) de audio PSTN. Para obtener más información, consulte [Cuotas de voz y enlaces troncales SIP](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) en la *Referencia general de AWS *.
+ Amazon Lex tiene una Service Quota para el número máximo de conversaciones de voz simultáneas por bot Lex. Puede ponerse en contacto con el equipo de servicio de Amazon Lex para obtener más cuotas. Para obtener más información, consulte las [directrices y cuotas](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) de Amazon Lex en la *Guía para desarrolladores de Amazon Lex*.
+ Amazon Polly tiene una Service Quota para sintetizar respuestas de texto. Puede ponerse en contacto con el equipo de servicio de Amazon Polly para obtener más cuotas. Para obtener más información sobre las Service Quotas de Amazon Polly, consulte [Cuotas en Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/limits.html), en la *Guía para desarrolladores de Amazon Polly*.

# Uso de encabezados SIP en el servicio de audio PTSN de Amazon Chime SDK
<a name="sip-headers"></a>

Ahora puede enviar y recibir un User-To-User encabezado, un encabezado de desvío y encabezados SIP personalizados en sus AWS Lambda funciones cuando desee intercambiar información del contexto de la llamada con su infraestructura SIP. 
+ El encabezado User-to-User (UUI) se puede usar para enviar datos de control de llamadas. La aplicación que inicia una sesión inserta estos datos y los utiliza la aplicación que acepta la sesión. No se utilizan para ninguna funcionalidad SIP básica. Por ejemplo, puede usar el encabezado UUI en un centro de llamadas para transmitir información sobre una llamada entre los agentes.
+ El encabezado de desvío se usa para mostrar desde dónde se desvió la llamada y por qué. Puede usar este encabezado para ver la información de desvío de otros agentes SIP o para transmitirla.
+ Los encabezados SIP personalizados le permiten transmitir cualquier otra información que desee. Por ejemplo, si quiere transmitir un identificador de cuenta, puede crear un encabezado en forma de X denominado “X-Account-Id” y añadir esta información.

Debe anteponer a los encabezados SIP personalizados el prefijo `x-`. Los encabezados están expuestos en la AWS Lambda función y se reciben como parte de un `NEW_INBOUND_CALL` evento durante una llamada entrante. También puedes incluir estos encabezados en los segmentos de llamadas salientes al activar una acción o el [CallAndBridge](call-and-bridge.md) [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API.

La sección `Participants` de una función de Lambda contiene el campo `SipHeaders`. Este campo está disponible cuando recibe un encabezado personalizado o cuando rellena el encabezado `User-to-User` o `Diversion`.

Este ejemplo muestra una respuesta esperada cuando una invocación de AWS Lambda contiene encabezados SIP.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type":"actionType",
        "Parameters":{
            // Parameters vary by actionType
        }
    },
    "CallDetails":{
        .....
        .....
        "Participants":[
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                ..... 
                "Status": "Connected"
                "SipHeaders": {
                    "X-Test-Value": "String",
                    "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                    "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
                }
            },
            {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B",
            .....
            "Status": "Connected"
            }
        ]
    }
}
```

En el siguiente ejemplo, se muestra una acción [CallAndBridge](call-and-bridge.md) correcta debido a una entrada no válida para el parámetro `SipHeaders`. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "CallAndBridge",
            "Parameters":{
            "CallTimeoutSeconds": 30,
            "CallerIdNumber": "e164PhoneNumber", // required
            "RingbackTone": { // optional
                "Type": "S3",
                "BucketName": "s3_bucket_name",
                "Key": "audio_file_name"
            },
            "Endpoints":[
               {
                    "Uri":"e164PhoneNumber", // required
                    "BridgeEndpointType":"PSTN" // required
               }
            ],
            "SipHeaders": {
                "X-Test-Value": "String",
                "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
            }
         }
      }
   ]
}
```

En el siguiente ejemplo, se muestra una acción [CallAndBridge](call-and-bridge.md) fallida provocada por un parámetro `SipHeaders` no válido.

```
{
    "SchemaVersion":"1.0",
    "Sequence":3,
    "InvocationEventType":"ACTION_FAILED",
    "ActionData":{
        "Type":"actionType",
        "Parameters":{
            // Parameters vary by Action Type
            "SipHeaders": {
                "X-AMZN": "String",
                "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
             },
        },
        "ErrorType": "InvalidActionParameter",
        "ErrorMessage": "Invalid SIP header(s) provided: X-AMZN"
   },
   "CallDetails":{
      .....
      "Participants":[
         {
            "CallId":"call-id-1",
            "ParticipantTag":"LEG-A",
            .....   
            "Status":"Connected"
         },
         {
            "CallId":"call-id-2",
            "ParticipantTag":"LEG-B",
            .....
            "Status":"Connected"
         }
      ]
   }
}
```

## Uso de SipHeaders campo
<a name="custom-headers"></a>

Al activar el [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API, el `SipHeaders` campo opcional te permite pasar encabezados SIP personalizados a un tramo de llamada saliente. Las claves de encabezado válidas deben incluir uno de los siguientes: 
+ El prefijo `x-`
+ El encabezado `User-to-User`
+ El encabezado `Diversion`

`X-AMZN` es un encabezado reservado. Si utiliza este encabezado en una llamada a la API, se producirá un error. Los encabezados pueden tener una longitud máxima de 2048 caracteres. 

El siguiente ejemplo muestra un ejemplo típico [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API en la interfaz de línea de comandos con el parámetro opcional`SipHeaders`.

```
create-sip-media-application-call
    --from-phone-number value // (string)
    --to-phone-number value // (string)
    --sip-media-application-id value // (string)
    --sip-headers // (map)
```

Para obtener más información, consulte [Un mecanismo para transportar la información de control de User-to-User llamadas en el SIP y la [indicación de desvío](https://datatracker.ietf.org/doc/html/rfc5806) en el SIP](https://datatracker.ietf.org/doc/html/rfc7433).

# Uso de registros de detalles de llamada en el servicio de audio PTSN de Amazon Chime SDK
<a name="attributes"></a>

Los administradores del SDK de Amazon Chime pueden configurar los conectores de voz del SDK de Amazon Chime para *almacenar los registros de detalles de las llamadas* (). CDRs Para obtener más información sobre cómo configurar los conectores de voz del SDK de Amazon Chime para almacenar CDRs, consulte [Administrar la configuración global en el SDK de Amazon Chime en](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) la Guía de administración del SDK de Amazon *Chime*.

Una vez que lo CDRs habilites, después de cada llamada, la aplicación multimedia SIP envía los registros a una carpeta llamada **Amazon-Chime- SMADRs** en tu bucket de S3.

En la siguiente tabla se enumeran los atributos de un CDR y se muestra su formato correcto. Los registros contienen todos los campos enumerados aquí para todas las llamadas.


|  Valor  |  Description (Descripción)  | 
| --- | --- | 
|  `"AwsAccountId":"AWS-account-ID"`  |  El ID de AWS cuenta asociado a la aplicación multimedia SIP que inició el uso de la PSTN  | 
|  `"TransactionId":"transaction-ID" `  |  El ID de transacción de la llamada.  | 
|  `"CallId":"SIP-media-application-call-ID"`  |  El identificador de llamada del participante para el uso asociado  | 
|  `"VoiceConnectorId":"voice-connector-ID"`  |  ID del conector de voz de Amazon Chime SDK (UUID)  | 
|  `"Status":"status"`  |  Estado de la llamada (completada, fallida)  | 
|  `"BillableDurationSeconds":"billable-duration-in-seconds"`  |  Duración facturable de la llamada en segundos  | 
|  `"SchemaVersion":"schema-version"`  |  La versión del esquema de CDR.  | 
|  `"SourcePhoneNumber":"12075550155"`  |  Número de teléfono de origen E.164  | 
| "SourcePhoneNumberName":"North Campus Reception" | El nombre asignado al número de teléfono de origen | 
|  `"DestinationPhoneNumber":"13605551214"`  |  Número de teléfono de destino E.164  | 
| "DestinationPhoneNumberName":"South Campus Reception" | El nombre asignado al número de teléfono de destino | 
|  `"UsageType":"usage-type"`  |  Detalles de uso de la línea de pedido en la API de lista de precios  | 
|  `"ServiceCode":"service-code" `  |  El código del servicio en la API de lista de precios  | 
|  `"Direction":"direction"`  |  Dirección de la llamada, `Outbound` o `Inbound`  | 
|  `"TimeStampEpochSeconds":"start-time-epochseconds"`  |  La marca de tiempo del registro en formato de marca de tiempo epoch/Unix   | 
|  `"Region":"AWS-region"`  |  AWS Región del conector de voz del SDK de Amazon Chime  | 
|  `"SipRuleId":"sip-rule-id"`  |  El ID de la regla sip que se activa cuando una llamada llega al servicio de audio PSTN  | 
|  `"SipApplicationId":"sip-application-id"`  |  El ID de la aplicación SIP que gestiona una llamada  | 
|  `"CallLegTriggerType":"trigger-type"`  |  El tipo de evento que activó una llamada  | 
|  `"BillableVoiceFocusSeconds":"billable-voice-focus-in-seconds"`  |  El importe facturable del uso de Voice Focus, en segundos  | 

# Descripción de los tiempos de espera y los reintentos del servicio de audio PTSN de Amazon Chime SDK
<a name="timeouts"></a>

El servicio de audio PSTN interactúa con las funciones de forma sincrónica. AWS Lambda Las aplicaciones esperan 5 segundos a que AWS Lambda las funciones respondan antes de volver a intentar una invocación. [Si no se recibe respuesta después de 20 segundos, el servicio de audio PSTN bloqueará el sistema.](unexpected-hangups.md) Cuando una función devuelve un error con uno de los 4 *XX* códigos de estado, de forma predeterminada, la aplicación multimedia SIP solo vuelve a intentar la invocación una vez. Si se quedan sin reintentos, las llamadas finalizan con el código de error `480 Unavailable`. Para obtener más información sobre AWS Lambda los errores, consulte [Solucionar problemas de invocación](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-invocation.html) en. AWS Lambda

# Depuración y solución de problemas del servicio de audio PTSN de Amazon Chime SDK
<a name="debug-pstn"></a>

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que es posible que surjan cuando se trabaja con el servicio de audio PSTN de Amazon Chime SDK.

**Topics**
+ [Comprobación de los registros del servicio de audio PTSN de Amazon Chime SDK](check-logs.md)
+ [Depuración de bloqueos imprevistos en el servicio de audio PTSN de Amazon Chime SDK](unexpected-hangups.md)
+ [Depuración de eventos ACTION\$1FAILED inesperados](unexpected-action-fail.md)

# Comprobación de los registros del servicio de audio PTSN de Amazon Chime SDK
<a name="check-logs"></a>

Si va a depurar una aplicación multimedia SIP, consulte los registros de CloudWatch para ver la función de AWS Lambda asociada a la aplicación. 

A continuación, compruebe los registros asociados a la aplicación multimedia SIP. Según sea necesario, puede configurar la aplicación multimedia SIP para el registro. Para obtener más información, consulte [Uso de aplicaciones multimedia SIP](https://docs.aws.amazon.com/chime-sdk/latest/ag/use-sip-apps.html) en la *Guía del administrador de Amazon Chime SDK*. Si habilita el registro, podrá encontrar los registros en CloudWatch, en el grupo de registros de `/aws/ChimeSipMediaApplicationSipMessages/<SIP-media-application-Id>`.

# Depuración de bloqueos imprevistos en el servicio de audio PTSN de Amazon Chime SDK
<a name="unexpected-hangups"></a>

Realice las siguientes acciones de solución de problemas si se producen bloqueos inesperados o mensajes de error en AWS Lambda las funciones del servicio de audio PSTN:
+ [Verifica que tu AWS Lambda póliza conceda el `lambda:InvokeFunction` permiso al director del servicio voiceconnector.chime.amazonaws.com.](http://voiceconnector.chime.amazonaws.com/)
+ Comprueba los registros de tu función para asegurarte de que se invoca correctamente. AWS Lambda 
+ Si los registros muestran los eventos entrantes y las acciones devueltas, comprueba que no se devuelva una acción suspendida cuando se invoque la AWS Lambda función.
+ Compruebe los CloudWatch registros de su aplicación multimedia SIP. En la siguiente tabla se enumeran algunos de los mensajes que puede encontrar.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/unexpected-hangups.html)

# Depuración de eventos ACTION\$1FAILED inesperados
<a name="unexpected-action-fail"></a>

Si recibe un evento de `ACTION_FAILED` inesperado, verifique lo siguiente:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/unexpected-action-fail.html)

# Descripción de VoiceFocus del servicio de audio PTSN de Amazon Chime SDK
<a name="voice-focus"></a>

Le permite aplicar el sistema de supresión de ruido Amazon Voice Focus a los tramos de llamadas entrantes y salientes de una llamada de una red de telefonía pública conmutada (PSTN). Al aplicar Amazon Voice Focus, se reduce el ruido de fondo sin afectar al habla humana. Esto puede hacer que el interlocutor actual sea más fácil de oír.

Para crear segmentos de llamadas entrantes, se utiliza una [regla SIP](https://docs.aws.amazon.com/chime/latest/ag/manage-sip-applications.html) que invoca una función AWS Lambda con un evento `NewInboundCall`. Puede crear segmentos de llamadas salientes mediante la acción [CallAndBridge](call-and-bridge.md) o mediante una operación de la API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html). Para obtener más información sobre Amazon Voice Focus, consulte [Cómo funciona la cancelación de ruido de Amazon Chime SDK](https://www.amazon.science/blog/how-amazon-chimes-challenge-winning-noise-cancellation-works).

 Amazon Voice Focus reduce los ruidos no deseados que no son habla, incluidos los siguientes: 
+ **Ruidos ambientales**: viento, ventiladores, agua corriente
+ **Ruidos de fondo**: cortadoras de césped, perros que ladran
+ **Ruidos de primer plano**: escribir, barajar papeles

**nota**  
Cuando utilizas Amazon Voice Focus, te AWS factura los minutos de llamada activos de cada tramo de llamada y por cada minuto de uso de la aplicación multimedia SIP.

En este ejemplo se muestra una acción de `VoiceFocus` típica.

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "VoiceFocus",
            "Parameters": {
                "Enable": True|False,            // required
                "CallId": "call-id-1",           // required    
            }
        }
    ]
}
```

**Enable**  
*Descripción*: activa o desactiva Amazon Voice Focus  
*Valores permitidos* – `True` \$1 `False`  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**CallId**  
*Descripción*: CallId del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

En este ejemplo, se muestra un evento `ACTION_SUCCESSFUL` satisfactorio para la acción `VoiceFocus`.

```
{
   "SchemaVersion": "1.0",
   "Sequence": 3,
   "InvocationEventType": "ACTION_SUCCESSFUL",
   "ActionData": {
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
            "Status": "Connected"
         },
         {
            "CallId": "call-id-of-callee",
            .....
            "Status": "Connected"
         }
      ]
   }
}
```

En este ejemplo se muestra un evento `ACTION_FAILED` típico de la acción `VoiceFocus`.

```
{
   "SchemaVersion": "1.0",
   "Sequence":2,
   "InvocationEventType": "ACTION_FAILED",
      "ActionData":{
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
      },
      "ErrorType": "SystemException",
      "ErrorMessage": "System error while running action"
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
         }
      ]
   }
}
```

**Gestión de errores**  
Por motivos de seguridad, las acciones de audio PSTN tienen un límite de 5 solicitudes de llamadas por segundo por cuenta de cliente (CPS). Cuando las solicitudes de llamadas superan el límite de 5 CPS, la acción devuelve un mensaje de error. En esta tabla se muestran los mensajes de error que muestra la acción `VoiceFocus`.


| Error | Mensaje | Motivo | 
| --- | --- | --- | 
| `ActionExecutionThrottled` | No se pudo ejecutar la acción. Se alcanzó el número máximo de acciones por segundo. | El número de solicitudes de acción de Voice Focus por segundo superó el límite del sistema.  | 
| `MissingRequiredActionParameter` | Falta el parámetro de acción obligatorio. | Faltan uno o más de los parámetros necesarios al ejecutar la acción. | 
| `SystemException` | Error del sistema al ejecutar la acción. | Se ha producido un error del sistema al ejecutar la acción. | 

**Flujos de llamadas**  
Este diagrama muestra el flujo de llamadas para activar y desactivar Amazon Voice Focus para una acción `CallAndBridge` entre dos llamadas PSTN.

![\[El flujo de llamadas al activar o desactivar Amazon Voice se centra en dos llamadas PSTN enlazadas.\]](http://docs.aws.amazon.com/es_es/chime-sdk/latest/dg/images/voice_focus-pstn1.png)


En el segmento de llamadas salientes, la AWS Lambda función permite a Amazon Voice centrarse en la persona que llama y devuelve un conjunto de acciones, entre las que se incluyen: `CallAndBridge` Una vez superada la llamada, la acción `VoiceFocus` devuelve un evento `ACTION_SUCCESSFUL` y la función de Lambda devuelve otro conjunto de eventos que habilita Amazon Voice Focus para la persona a la que se llama. Ese conjunto de acciones incluye `VoiceFocus`, `Enable`, `True`, y el identificador de la persona que llama. No se realiza ninguna otra acción hasta que la persona que llama cuelga. A continuación, la función de Lambda envía una acción `Hangup` a la aplicación multimedia SIP. La aplicación cuelga a la persona a la que se llama y envía una función de colgar a la función de Lambda, que no realiza ninguna otra acción.

# Servicio de audio Amazon Chime SDK PSTN
<a name="chm-dg-glossary"></a>

\$1 [A](#a) \$1 [C](#c) \$1 [E](#e) \$1 [I](#i) \$1 [L](#l) \$1 [M](#m) \$1 [N](#n) \$1 [O](#o) \$1 [P](#p) \$1 [S](#s) \$1 [T](#t) \$1 [V](#v) \$1 

## A
<a name="a"></a>

**Acción de **  
En una AWS Lambda función, una acción es un elemento que desea ejecutar en un tramo de una llamada telefónica, como enviar o recibir dígitos, unirse a una reunión, etc. Para obtener más información sobre los servicios compatibles con el servicio de audio PSTN, consulte [Acciones compatibles con el servicio de audio PSTN de Amazon Chime SDK](specify-actions.md).

**AWS Lambda**  
Un servicio de computación que permite ejecutar código para casi cualquier tipo de aplicación o servicio de backend sin aprovisionar ni administrar servidores.

**AWS Lambda función**  
En el contexto del servicio de audio PSTN, una función que se ejecuta en respuesta a los datos transmitidos por una aplicación multimedia SIP, por ejemplo, al realizar una llamada saliente. 

## C
<a name="c"></a>

**Registros de detalles de llamadas**  
Datos de las llamadas del conector de voz del SDK de Amazon Chime, como la cuenta IDs, los números de teléfono de origen y los países de destino. Los registros se alojan como objetos en un solo bucket de Amazon Simple Storage Service (S3) de su cuenta. Para obtener más información, consulte [Administración de la configuración global de Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) en la *Guía del administrador de Amazon Chime SDK*. Para obtener más información acerca del esquema de grabación, consulte [Uso de registros de detalles de llamada en el servicio de audio PTSN de Amazon Chime SDK](attributes.md) en esta guía.

**identificador de llamada**  
El identificador asignado a los tramos de todas las llamadas entrantes.

**Tramo de entrada de **  
Es parte de una llamada. En las aplicaciones de Amazon Chime SDK, las llamadas pueden provenir de números de teléfono válidos, una PSTN o conectores de voz de Amazon Chime SDK. Para obtener más información, consulte la sección [Obtenga información acerca del uso registros de llamadas del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada](call-architecture.md) de esta guía. 

**Carrier**  
Una empresa que ofrece servicios móviles. Abreviatura de **operador inalámbrico**.

**Amazon Chime**  
Un servicio unificado de comunicaciones y colaboración proporcionado por AWS.

**Amazon Chime SDK**  
Un kit de desarrollo de software utilizado por los desarrolladores para añadir medios y comunicaciones en tiempo real a aplicaciones de comunicación personalizadas. 

## E
<a name="e"></a>

**E.164**  
El único formato aceptado para los números de teléfono en el servicio de audio PSTN. Como recomendación del UIT-T, los números utilizan un código de país de 1 a 3 dígitos, seguido de un número de suscriptor máximo de 12 dígitos. Por ejemplo: EE. UU.: `+14155552671`, Reino Unido: `+442071838750 44`, Australia: `+61285993444`. 

**Punto de conexión**  
 Un dispositivo de hardware o un servicio de software, como un teléfono o una aplicación de comunicaciones unificadas. 

**EventBridge**  
Un servicio de bus de eventos sin servidor que le permite conectar sus aplicaciones con datos de varios orígenes.  
Las aplicaciones multimedia SIP no envían datos a EventBridge. Para obtener más información, consulte [Automatización del SDK de Amazon Chime EventBridge con la Guía del administrador del SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) de *Amazon Chime*.

## I
<a name="i"></a>

**IVR**  
Respuesta de voz interactiva. Sistema que permite a las personas interactuar con un sistema telefónico operado por computadora mediante el reconocimiento de voz o los teclados táctiles.

## L
<a name="l"></a>

**Tramo**  
Consulte [Call leg](#call-leg).

## M
<a name="m"></a>

**Multimedia**  
Los mensajes de audio, video o chat disponibles para su uso durante una reunión de Amazon Chime SDK. Una aplicación de comunicaciones personalizada puede contener uno o más de cada tipo de contenido multimedia.

**Canalización de medios**  
Un mecanismo para transmitir y capturar audio, video, mensajes y eventos durante una reunión de Amazon Chime SDK. Para obtener más información, consulte la sección [Creación de canalizaciones multimedia de Amazon Chime SDK](media-pipelines.md) de esta guía.

## N
<a name="n"></a>

**Portabilidad de número**  
La capacidad de mover números de teléfono entre operadores de telefonía o sistemas de comunicación unificada. 

## O
<a name="o"></a>

**Origination**  
El proceso de recibir una llamada de una PSTN y transferirla a un punto de conexión de VoIP. 

## P
<a name="p"></a>

**Etiqueta de participante**  
Un identificador asignado a cada participante de la llamada, `LEG-A` o `LEG-B`.

**Política**  
Amazon Chime SDK requiere los siguientes tipos de políticas:  
+ **Política de usuarios de IAM**: política que define los permisos para los usuarios de administración de identidades y accesos. 
+ **Política de reuniones**: política que permite a un usuario controlar la computadora de otro usuario cuando comparte pantallas durante una reunión y permite que los asistentes a la reunión se unan a las reuniones recibiendo una llamada telefónica de Amazon Chime SDK.

**PSTN**  
Red telefónica pública conmutada. La infraestructura y los servicios que proporcionan la capacidad de realizar llamadas telefónicas.

**Servicio de audio PSTN**  
Un servicio de Amazon Chime SDK que permite a los desarrolladores añadir funciones de audio a sus soluciones de comunicación.

## R
<a name="r"></a>

**Enrutamiento**  
Las aplicaciones creadas con Amazon Chime SDK utilizan uno o más tipos de enrutamiento:  
+ **Enrutamiento de red**: proceso de seleccionar una ruta para el tráfico en una red o entre varias redes o a través de ellas.
+ **Enrutamiento de interacciones**: proceso que garantiza que una llamada llegue al destinatario o punto de conexión correcto. 
+ **Enrutamiento de llamadas:** característica de administración de llamadas que pone en cola y distribuye las llamadas entrantes a destinatarios o puntos de conexión predefinidos.

## S
<a name="s"></a>

**SBC**  
Controlador de borde de sesión. Un elemento de red implementado para proteger las redes de voz sobre Protocolo de Internet (VoIP) basadas en SIP.

**Sequence (Secuencia)**  
La secuencia de eventos que invocan una función. AWS Lambda Cada vez que se invoca una función durante una llamada, la secuencia se incrementa.

**Límite de servicio/Service Quota**  
El número máximo de recursos, como reuniones, transmisiones de audio o contenido compartido, que permite Amazon Chime SDK Para obtener más información, consulte [Audio](meetings-sdk.md#audio) en esta guía.

**SIP**  
Protocolo de inicio de sesión, un protocolo de señalización que se utiliza para iniciar, mantener y finalizar sesiones en tiempo real que incluyen cualquier combinación de aplicaciones de voz, video y mensajería. Para obtener más información, consulte [SIP: Protocolo de inicio de sesiones](https://www.rfc-editor.org/rfc/rfc3261.html).

**Encabezados SIP**  
Parámetros de AWS Lambda las funciones que contienen datos de control de llamadas, además de otros datos, como la cuenta IDs de usuario.

**Aplicación multimedia SIP**  
Objeto gestionado que transfiere valores de una regla SIP a una AWS Lambda función de destino. Los desarrolladores pueden llamar al [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplication.html)API para crear aplicaciones multimedia SIP, pero deben tener permisos administrativos para hacerlo.

**Regla SIP**  
Objeto administrado que transfiere números de teléfono del conector de voz del SDK de Amazon Chime URIs a una aplicación multimedia SIP de destino.

**Enlace troncal SIP**  
Consulte [Amazon Chime SDK Voice Connector](#voice-connector).

**SMA**  
Consulte la aplicación multimedia SIP

**ID SMA**  
Consulte la aplicación multimedia SIP

## T
<a name="t"></a>

**Telco**  
Un proveedor de servicios de telecomunicaciones.

**Resolución**  
El proceso de finalizar una llamada.

**Transacción**  
Una llamada que contiene uno o más tramos de llamada. Para obtener más información, consulte la sección [Obtenga información acerca del uso registros de llamadas del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada](call-architecture.md) de esta guía.

**ID de transacción**  
El identificador de una transacción que contiene varios tramos de llamadas. Para obtener más información, consulte la sección [Obtenga información acerca del uso registros de llamadas del servicio de audio PSTN de Amazon Chime SDK para terminar una llamada](call-architecture.md) de esta guía.

## V
<a name="v"></a>

**Amazon Chime SDK Voice Connector**  
Un objeto que proporciona un servicio de enlace troncal SIP de Protocolo de Iniciación de Sesión para sistemas telefónicos. Los administradores utilizan la consola administrativa de Amazon Chime SDK para crear y administrar conectores de voz. Para obtener más información, consulte [Administración de Amazon Chime SDK Voice Connectors](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html) en la *Guía de administración de Amazon Chime SDK*.

**Grupo Amazon Chime SDK Voice Connector**  
Un contenedor que contiene varios conectores de voz de diferentes AWS regiones. Los grupos permiten que las llamadas entrantes fallen en todas las regiones, lo que crea un mecanismo tolerante a fallos. Para obtener más información, consulte [Administración de instancias de grupos de Amazon Chime Voice Connector](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connector-groups.html) en la *Guía de administración de Amazon Chime SDK*.