

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Riproduce l'audio e raccoglie le cifre DTMF. Se si verifica un errore, ad esempio se un utente non inserisce il numero corretto di cifre DTMF, l'azione riproduce l'audio di «errore» e quindi riproduce l'audio principale finché l'applicazione multimediale SIP non esaurisce il numero di tentativi definito nel parametro. `Repeat`

È necessario riprodurre file audio dal bucket S3. Il bucket S3 deve appartenere allo stesso AWS account dell'applicazione multimediale SIP. Inoltre, devi concedere l'`s3:GetObject`autorizzazione al responsabile del [servizio Amazon Chime SDK Voice Connector,](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). `voiceconnector.chime.amazonaws.com` Puoi usare la console S3 o la CLI per farlo. 

Il seguente esempio di codice mostra una tipica policy sui bucket S3.

------
#### [ 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}}"
                }
            }
        }
    ]
}
```

------

Il servizio audio legge e scrive nel bucket S3 per conto dell'applicazione multimediale Sip. Per evitare il [problema confuso,](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) puoi limitare l'accesso al bucket S3 a una singola applicazione multimediale 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}}"
                }
            }
        }
    ]
}
```

------

L'esempio seguente mostra un'azione tipica. `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**  
*Descrizione*: `CallId` del partecipante all'`CallDetails`invocazione della AWS Lambda funzione  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**ParticipantTag**  
*Descrizione*: `ParticipantTag` di uno dei partecipanti connessi al `CallDetails`  
*Valori consentiti*, `LEG-A` oppure `LEG-B`  
*Obbligatorio*: no  
*Valore predefinito: `ParticipantTag` del valore* `callLeg` Ignorato richiamato, se si specifica `CallId`

**InputDigitsRegex**  
*Descrizione*: un modello di espressione regolare  
*Valori consentiti*: un modello di espressione regolare valido  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**AudioSource.Type**  
*Descrizione*: tipo di sorgente per il tipo di file audio  
*Valori consentiti*: un bucket S3  
*Obbligatorio*: Sì  
*Valore predefinito*: `"S3"`

**AudioSource.BucketName**  
*Descrizione*: per `AudioSource.Type` i valori S3, il bucket S3 deve appartenere allo stesso AWS account dell'applicazione multimediale SIP. Il bucket S3 deve avere accesso al principale servizio [Amazon Chime SDK Voice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) Connector,. `voiceconnector.chime.amazonaws.com`  
*Valori consentiti*: un bucket S3 valido a cui Amazon Chime SDK `s3:GetObject` ha accesso alle azioni.  
*Obbligatorio: sì*  
*Valore predefinito* - nessuno

**AudioSource.Key**  
*Descrizione*: il nome chiave dell'oggetto audio nel bucket `AudioSource.BucketName` S3.  
*Valori consentiti: file* audio validi  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**FailureAudioSource.Type**  
*Descrizione*: il nome chiave dell'oggetto audio nel bucket `FailureAudioSource.BucketName` S3.  
*Valori consentiti*: S3  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**FailureAudioSource.BucketName**  
*Descrizione*: per i tipi di sorgenti S3, il bucket S3 deve appartenere allo stesso AWS account dell'applicazione multimediale SIP. Il [responsabile del servizio Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) deve avere accesso al bucket S3. `voiceconnector.chime.amazonaws.com`  
*Valori consentiti*: un bucket S3 valido a cui Amazon Chime SDK `s3:GetObject` ha accesso alle azioni.  
*Obbligatorio: sì*  
*Valore predefinito* - nessuno

**FailureAudioSource.Key**  
*Descrizione*: il nome chiave dell'oggetto audio nel bucket `FailureAudioSource.BucketName` S3.  
*Valori consentiti: file* audio validi  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**MinNumberOfDigits**  
*Descrizione*: il numero minimo di cifre da acquisire prima del timeout o della riproduzione dell'audio «chiamata non riuscita».  
*Valori consentiti*: >=0  
*Obbligatorio*: no  
*Valore predefinito*: 0

**MaxNumberOfDigits**  
*Descrizione*: il numero massimo di cifre da acquisire prima di interrompere l'operazione senza una cifra di terminazione.  
*Valori consentiti — >* `MinNumberOfDigits`  
*Obbligatorio*: no  
*Valore predefinito*: 128

**TerminatorDigits**  
*Descrizione*: cifre utilizzate per terminare l'immissione se l'utente immette meno di `MaxNumberOfDigits`  
*Valori consentiti*: una qualsiasi di queste cifre: 0123456789\#\*  
*Obbligatorio*: no  
*Valore predefinito*: \#

**InBetweenDigitsDurationInMilliseconds**  
*Descrizione*: il tempo di attesa in millisecondi tra gli input numerici prima della riproduzione. `FailureAudio`  
*Valori consentiti: >0*  
*Obbligatorio*: no  
*Valore predefinito*: se non specificato, il valore predefinito è il `RepeatDurationInMilliseconds` valore.

**Repeat**  
*Descrizione*: numero totale di tentativi di ottenere cifre  
*Valori consentiti*: >0  
*Obbligatorio*: no  
*Valore predefinito*: 1

**RepeatDurationInMilliseconds**  
*Descrizione*: tempo di attesa in millisecondi tra un tentativo e l'altro `Repeat`  
*Valori consentiti*: >0  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

L'applicazione multimediale SIP richiama sempre la sua AWS Lambda funzione dopo aver eseguito l'`PlayAudioAndGetDigits`azione, con un tipo di evento di `ACTION_FAILED` chiamata `ACTION_SUCCESSFUL` or. Quando l'applicazione raccoglie correttamente le cifre, imposta il valore nell'oggetto. `ReceivedDigits` `ActionData` L'esempio seguente mostra la struttura degli eventi di invocazione di tale funzione. 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": {
        ...
    }
}
```

**Gestione degli errori**  
Quando si verifica un errore di convalida, l'applicazione multimediale SIP chiama la AWS Lambda funzione con il messaggio di errore corrispondente. La tabella seguente elenca i possibili messaggi di errore.


|  Errore  |  Messaggio  |  Motivo  | 
| --- | --- | --- | 
| `InvalidAudioSource` | Il valore del parametro della sorgente audio non è valido. | Questo errore può verificarsi per diversi motivi. Ad esempio, l'applicazione multimediale SIP non può accedere al file a causa di problemi di autorizzazione o problemi con il bucket S3. Oppure, il file audio potrebbe non riuscire nella convalida a causa della durata, delle dimensioni o del formato non supportato. | 
| `InvalidActionParameter` | `CallId`o `ParticipantTag` il parametro per l'azione non è valido. | Un `CallId``ParticipantTag`, o un altro parametro non è valido. | 
| `SystemException` | Errore di sistema durante l'esecuzione dell'azione. | Si è verificato un errore di sistema durante l'esecuzione dell'azione. | 

Quando l'azione non riesce a raccogliere il numero di cifre specificato a causa di un timeout o di troppi tentativi, l'applicazione multimediale SIP richiama la AWS Lambda funzione con il tipo di evento di invocazione. `ACTION_FAILED`

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

Vedi esempi di lavoro su: 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-call](https://github.com/aws-samples/amazon-chime-sma-update-call)