RecordAudio - Amazon Chime SDK

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.

RecordAudio

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 s3:PutObject un s3:PutObjectAcl permiso al director del servicio del conector de voz del SDK de Amazon Chime, al director del servicio del conector de voz del SDK de Amazon Chime. 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.

{ "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 (#), 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 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

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, 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 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*0#]

Obligatorio: sí

Valor predeterminado: ninguno

Gestión de los eventos ACTION_SUCCESSFUL

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_SUCCESSFUL, 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.

Control 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 ACTION_FAILED eventos

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": { ... } }

Consulte un ejemplo práctico en GitHub: https://github.com/aws-samples/ amazon-chime-sma-bridging