

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à.

# Creazione di AWS Lambda funzioni per il servizio audio PSTN Amazon Chime SDK
<a name="writing-lambdas"></a>

Gli argomenti di questa sezione spiegano come creare AWS Lambda le funzioni utilizzate dal servizio audio PSTN. 

**Topics**
+ [Comprensione degli eventi di telefonia per il servizio audio PSTN Amazon Chime SDK](pstn-invocations.md)
+ [Comprendere le azioni del servizio audio PSTN di Amazon Chime SDK](about-actions.md)
+ [Scopri gli eventi di telefonia che richiamano AWS Lambda funzioni per il servizio audio PSTN di Amazon Chime SDK](invoking-Lambda.md)
+ [Risposta alle chiamate con elenchi di azioni utilizzando il servizio audio PSTN di Amazon Chime SDK](invoke-on-call-leg.md)
+ [Azioni supportate per il servizio audio PSTN Amazon Chime SDK](specify-actions.md)
+ [Utilizzo delle intestazioni SIP nel servizio audio Amazon Chime SDK PTSN](sip-headers.md)
+ [Utilizzo dei record di dettaglio delle chiamate nel servizio audio Amazon Chime SDK PTSN](attributes.md)
+ [Comprensione dei timeout e dei nuovi tentativi per il servizio audio PTSN di Amazon Chime SDK](timeouts.md)
+ [Debug e risoluzione dei problemi del servizio audio Amazon Chime SDK PTSN](debug-pstn.md)
+ [Comprensione VoiceFocus del servizio audio Amazon Chime SDK PTSN](voice-focus.md)
+ [Glossario del servizio audio PSTN di Amazon Chime SDK](chm-dg-glossary.md)

# Comprensione degli eventi di telefonia per il servizio audio PSTN Amazon Chime SDK
<a name="pstn-invocations"></a>

Il servizio audio richiama la AWS AWS Lambda funzione quando si verificano determinati eventi durante una chiamata. L'esempio seguente mostra gli eventi e il testo dopo l'esempio spiega ogni 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 versione dello schema utilizzata per creare questo oggetto evento.

**Sequence**  
La sequenza di eventi che richiamano la AWS Lambda funzione. Ogni volta che la funzione viene richiamata durante una chiamata, la sequenza viene incrementata.

**InvocationEventType**  
Il tipo di evento che attiva una chiamata. AWS Lambda Per ulteriori informazioni, consulta [Event types (Tipi di evento)](#pstn-event-types) più avanti in questo argomento.

**CallDetails**  
Informazioni sulla chiamata associata alla chiamata. AWS Lambda 

**TransactionId**  
L'ID di una chiamata associata a una AWS Lambda chiamata.

**AwsAccountId**  
L'ID AWS dell'account associato all'applicazione multimediale SIP che ha provocato il routing delle chiamate.

**SipMediaApplicationId**  
L'ID dell'applicazione multimediale SIP associata alla chiamata.

**Participants**  
Informazioni sui partecipanti alla chiamata che richiama una funzione. AWS AWS Lambda 

**CallId**  
Un ID univoco assegnato a ciascun partecipante.

**ParticipantTag**  
Ogni partecipante alla chiamata riceve un tag, `LEG-A` o. `LEG-B`

**To**  
Il numero di telefono «a» del partecipante, in formato E.164.

**From**  
Il numero di telefono «da» del partecipante, in formato E.164.

**Direction**  
La direzione da cui proviene una chiamata. `Inbound`rappresenta una chiamata effettuata al servizio audio. `Outbound`rappresenta una chiamata effettuata dal servizio audio.

**StartTimeInMilliseconds**  
L'ora in millisecondi, a partire dal momento in cui un partecipante partecipa a una chiamata.

**Status**  
Se un partecipante è o `Connected` `Disconnected`

## Event types (Tipi di evento)
<a name="pstn-event-types"></a>

Il servizio audio richiama la funzione Lambda con questi tipi di eventi:

**NEW\$1INBOUND\$1CALL**  
Una nuova chiamata è stata avviata da un numero di telefono associato all'applicazione multimediale SIP.

**NEW\$1OUTBOUND\$1CALL**  
È stata effettuata una nuova chiamata in uscita tramite l'API. [CreateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)

**ACTION\$1SUCCESSFUL**  
Un'azione restituita dalla tua AWS Lambda funzione è riuscita. Le azioni riuscite includono quelle `ActionData` che corrispondono all'azione riuscita.   

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

**ACTION\$1FAILED**  
Un'azione restituita dalla tua AWS Lambda funzione non ha avuto successo. Le azioni non riuscite includono `ActionData` una corrispondenza all'azione non riuscita, un tipo di errore e un messaggio di errore che descrive l'errore:  

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

**ACTION\$1INTERRUPTED**  
Un'azione in corso di esecuzione è stata interrotta da una chiamata all'[ UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API. `ActionData`Include le azioni interrotte:   

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

**HANGUP**  
Un utente o l'applicazione hanno interrotto una sessione di chiamata. `ActionData`Include questi dettagli sull'evento:  

```
   "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "SipResponseCode": 486,
            "CallId": "c70f341a-adde-4406-9dea-1e01d34d033d",
            "ParticipantTag": "LEG-A"
        }
    },
```  
**Type**  
Riagganciare.  
**Parameters**  
Le informazioni sull'evento: `HANGUP`   
+ **SipResponseCode**— Il codice di risposta associato all'evento. I codici più comuni sono:
  + **0** — Cancellazione normale
  + **480** — Nessuna risposta
  + **486** — Utente occupato
+ **CallId**L'ID del partecipante che ha riattaccato.
+ **ParticipantTag**L'etichetta del partecipante che ha riattaccato.

**CALL\$1ANSWERED**  
Il servizio audio ha risposto a una chiamata in arrivo. Questo evento viene restituito durante una chiamata in uscita, a meno che la chiamata non venga interrotta.

**INVALID\$1LAMBDA\$1RESPONSE**  
La risposta fornita all'ultima AWS Lambda chiamata ha causato un problema. `ActionData`Include questi campi aggiuntivi:  

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

**DIGITS\$1RECEIVED**  
L'applicazione ha ricevuto cifre DTMF dopo il completamento di un'azione. `ReceiveDigits` `ActionData`Include le cifre ricevute.  

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

**CALL\$1UPDATE\$1REQUESTED**  
L'[UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API è stata richiamata. `ActionData`Include informazioni sulla richiesta di aggiornamento:  

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

**RINGING**  
Sta suonando un pulsante di chiamata

# Comprendere le azioni del servizio audio PSTN di Amazon Chime SDK
<a name="about-actions"></a>

Nel servizio audio PSTN, le applicazioni multimediali SIP attivano funzioni. AWS Lambda *A loro volta, le AWS Lambda funzioni possono restituire un elenco di istruzioni note come azioni.* Un'azione è un elemento che si desidera eseguire durante una chiamata telefonica, ad esempio l'invio o la ricezione di cifre, la partecipazione a una riunione e così via. Le azioni possono anche restituire dati, quindi puoi pensare alle azioni come oggetti con campi di dati. Per ulteriori informazioni sulle azioni richiamate dal servizio audio PSTN, vedere. [Comprensione degli eventi di telefonia per il servizio audio PSTN Amazon Chime SDK](pstn-invocations.md)

# Scopri gli eventi di telefonia che richiamano AWS Lambda funzioni per il servizio audio PSTN di Amazon Chime SDK
<a name="invoking-Lambda"></a>

Il servizio audio richiama AWS Lambda funzioni in risposta a diversi eventi. Ogni chiamata specifica un tipo di evento di chiamata e fornisce i dettagli della chiamata, inclusi i partecipanti, se applicabile. Gli argomenti seguenti descrivono gli eventi del servizio audio che richiamano le funzioni. AWS Lambda 

# Effettuare una chiamata in uscita per utilizzare il servizio audio Amazon Chime SDK PSTN
<a name="use-create-call-api"></a>

Per creare una chiamata in uscita, utilizzi l'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) L'API richiama l'endpoint di uno specificato. `SIP media application ID` I clienti possono controllare il flusso della chiamata fornendo [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html)segnalazioni e azioni diverse dall'endpoint. 

In caso di risposta corretta, l'API restituisce un codice di stato http 202 insieme a un TransactionID, che puoi utilizzare con l'[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 per aggiornare una chiamata in corso.

Il diagramma seguente mostra le chiamate effettuate all'endpoint della funzione per una chiamata in uscita. AWS Lambda 

![\[Diagramma che mostra il flusso di programmazione per le chiamate effettuate all'endpoint AWS Lambda.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sip-api-1.png)


L'endpoint configurato per l'applicazione multimediale SIP viene richiamato per diversi stati della chiamata in uscita. Quando un cliente avvia una chiamata, l'SDK Amazon Chime richiama l'endpoint con un tipo di evento di chiamata. `NEW_OUTBOUND_CALL` 

Questo esempio mostra un tipico evento di invocazione per un. `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"
                }
            ]
    }
}
```

Qualsiasi risposta a una AWS Lambda chiamata correlata a un evento viene ignorata.

Quando riceviamo una `RINGING` notifica dal destinatario, l'SDK Amazon Chime richiama nuovamente l'endpoint configurato. 

Questo esempio mostra un tipico evento di invocazione per. `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"
                }
           ]
    }
}
```

Qualsiasi risposta a una AWS Lambda chiamata correlata a un evento viene ignorata.

Se il destinatario non risponde alla chiamata o la chiamata fallisce a causa di un errore, Chime disconnette la chiamata e richiama l'endpoint con il tipo di evento. `Hangup` Per ulteriori informazioni sul tipo di `Hangup` evento, fare riferimento a. [Terminare una chiamata utilizzando il servizio audio PSTN di Amazon Chime SDK](case-5.md) 

Se si risponde alla chiamata, Chime richiama l'endpoint con l'azione. `CALL_ANSWERED` Questo esempio mostra un tipico evento di invocazione.

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

A questo punto, è possibile restituire azioni rispondendo alla chiamata con un elenco di azioni. Se non vuoi eseguire alcuna azione, rispondi con un elenco vuoto. Puoi rispondere con un massimo di 10 azioni per ogni AWS Lambda chiamata e puoi richiamare una funzione Lambda 1.000 volte per chiamata. Per ulteriori informazioni sulla risposta con serie di azioni, fare riferimento a. [Risposta alle chiamate con elenchi di azioni utilizzando il servizio audio PSTN di Amazon Chime SDK](invoke-on-call-leg.md)

# Ricezione di una chiamata in entrata utilizzando il servizio audio PSTN di Amazon Chime SDK
<a name="case-1"></a>

Quando si verifica un `NEW_INCOMING_CALL` evento, il servizio audio ne crea uno unico `TransactionID` e unico `CallID` che persiste fino al verificarsi dell'evento. `HANGUP`

È possibile rispondere in diversi modi a un `NEW_INCOMING_CALL` evento. Esempio:
+ Invia `PlayAudio` le `RecordAudio` nostre azioni e rispondi automaticamente alla chiamata. 
+ Invia un'`Pause`azione.
+ Invia un'`Hangup`azione, nel qual caso non viene data risposta alla chiamata e al cliente non viene addebitato alcun costo.
+ Invia un'`CallAndBridge`azione e aggiungi un altro utente alla chiamata.
+ Non fate nulla, il tentativo di chiamata scade dopo 30 secondi.

Quando viene ricevuta una nuova chiamata in entrata, l'applicazione multimediale SIP richiama una AWS Lambda funzione con questo payload.

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

# Specificazione delle azioni in risposta agli eventi di telefonia per il servizio audio PSTN di Amazon Chime SDK
<a name="use-case-2"></a>

Nel servizio audio, le applicazioni multimediali SIP AWS Lambda richiamano funzioni. *A sua volta, una funzione Lambda può restituire un elenco di istruzioni note come azioni.* Un'azione è un elemento che si desidera eseguire durante una chiamata telefonica, ad esempio inviare o ricevere cifre, partecipare a una riunione e così via. Per ulteriori informazioni sulle azioni richiamate dal servizio audio PSTN, vedere. [Comprensione degli eventi di telefonia per il servizio audio PSTN Amazon Chime SDK](pstn-invocations.md)

Quando un'applicazione multimediale SIP esegue correttamente un elenco di azioni, chiama la AWS Lambda funzione con un tipo di evento di invocazione di. `ACTION_SUCCESSFUL` Se una delle azioni non viene completata, l'applicazione multimediale SIP richiama la AWS Lambda funzione con l'evento. `ACTION_FAILED`

L'applicazione multimediale SIP viene restituita solo `ACTION_SUCCESSFUL` se tutte le azioni dell'elenco hanno esito positivo. Se una delle azioni nell'elenco fallisce, l'applicazione multimediale SIP richiama la AWS Lambda funzione con l'`ACTION_FAILED`evento e cancella le azioni rimanenti nell'elenco dopo quella fallita. L'applicazione multimediale SIP esegue quindi l'azione successiva restituita dalla funzione. AWS Lambda Si utilizza la `ActionData` chiave per identificare quale chiamata ha richiamato la funzione.

L'evento seguente mostra un payload di esempio per il tipo di evento di `ACTION_SUCCESSFUL` invocazione dopo un'azione. `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"
                }
            ]
        }
    }
}
```

Quando un'azione in un elenco non viene completata correttamente, l'applicazione multimediale SIP richiama la AWS Lambda funzione per avvisare l'utente dell'errore e per ottenere un nuovo set di azioni da eseguire su quella chiamata. L'evento seguente mostra il payload di esempio per il tipo di evento di `ACTION_FAILED` invocazione dopo un'azione. `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"
            }
        ]
    }
}
}
```

# Ricezione dell'input del chiamante per il servizio audio PSTN di Amazon Chime SDK
<a name="case-4"></a>

Utilizzate l'`ReceiveDigits`azione per raccogliere le cifre DTMF in entrata e confrontarle con un'espressione regolare. Quando l'applicazione multimediale SIP riceve cifre che corrispondono all'espressione regolare, richiama una funzione con un evento. AWS Lambda `ACTION_SUCCESSFUL` Le cifre raccolte vengono visualizzate nel valore dell'`ReceivedDigits`oggetto. `ActionData`

Esempio:

```
{
    "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 volta che il chiamante inserisce cifre che corrispondono al modello di espressione regolare, l'applicazione multimediale SIP richiama una AWS Lambda funzione che restituisce il seguente tipo di payload:

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

[Guarda un esempio funzionante su: -demand-recording GitHub https://github.com/aws-samples/ amazon-chime-sma-on](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Aggiornamento delle chiamate in corso per l'audio PTSN di Amazon Chime SDK
<a name="update-sip-call"></a>

Come parte del servizio audio PSTN, le applicazioni multimediali SIP consentono di impostare azioni da eseguire su una chiamata richiamando funzioni Lambda definite dall'utente in base agli eventi della chiamata, ad esempio una chiamata in arrivo o cifre DTMF. Il [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)L'API consente di attivare una funzione Lambda in qualsiasi momento mentre una chiamata è attiva, sostituendo le azioni correnti con nuove azioni restituite dalla chiamata.

**Flusso di lavoro**  
Si utilizza il [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 in diversi casi, ad esempio per aggiungere partecipanti a una riunione, disattivare e riattivare l'audio di un utente, disconnetterlo e così via. Il seguente caso d'uso descrive un tipico flusso di lavoro.

Un utente chiama e ascolta musica mentre l'SDK Amazon Chime configura la riunione. Una volta completata la configurazione, Amazon Chime SDK interrompe l'audio e ammette il chiamante alla riunione. Quindi, supponiamo l'utilizzo di un sistema separato, `MyMeetingService` che gestisca le riunioni. Ogni chiamata in arrivo deve essere messa in attesa. Chime MyMeetingService notifica le chiamate in arrivo, MyMeetingService quindi crea un partecipante per ogni chiamata e, quando MyMeetingService è pronto per iniziare la riunione, notifica l'applicazione multimediale SIP e fornisce un token per partecipare alla riunione.

Per gestire questo caso, la funzione Lambda deve implementare la seguente logica. 
+ Quando arriva una nuova chiamata in arrivo, la Lambda viene richiamata con un evento. `NEW_INBOUND_CALL` Lambda chiama `MyMeetingService` e passa il `transactionId` che identifica la chiamata corrente e restituisce l'azione. `PlayAudio`
+ Quando `MyMeetingService` è pronto per aggiungere il chiamante alla riunione, il servizio chiama [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 e passa il comando `transactionId` e `JoinToken` come parte degli argomenti della chiamata. Questa chiamata API attiva nuovamente la funzione Lambda, ora con `CALL_UPDATE_REQUESTED` l'evento. MyMeetingService Passa `JoinToken` alla funzione Lambda come parte dell'evento e il token viene utilizzato per restituire l'`JoinChimeMeeting`azione all'applicazione multimediale SIP, che interrompe l'`PlayAudio`azione e connette il chiamante alla riunione.

![\[Diagramma che mostra il flusso di dati nell'API. UpdateSipMediaApplicationCall\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/update-sip-call-flow3.png)


**Nota**  
Il [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)L'API restituisce HTTP 202 (accettato). L'applicazione multimediale SIP conferma che la chiamata è in corso e può essere aggiornata, quindi tenta di richiamare la funzione Lambda. La chiamata viene eseguita in modo asincrono, quindi una risposta corretta dall'API non garantisce l'avvio o il completamento della funzione Lambda.

L'esempio seguente mostra la sintassi della richiesta.

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

**Parametri della richiesta**
+ `SipMediaApplicationId`— L'ID dell'applicazione multimediale SIP che gestisce la chiamata. 
+ `TransactionId`— L'ID della transazione di chiamata. Per le chiamate in entrata, `TransactionId` è possibile ottenere dall'`NEW_INCOMING_CALL`evento passato alla funzione Lambda alla prima chiamata. Per le chiamate in uscita, `TransactionId` viene restituito nella risposta di [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html). 
+ Argomenti: **argomenti** personalizzati resi disponibili alla funzione Lambda come parte dei dati di `CallUpdateRequest` azione. Può contenere da 0 a 20 coppie chiave-valore.

L'esempio seguente mostra una richiesta tipica.

```
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"}'
```

**Sintassi della risposta**

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

**Elementi di risposta**
+ **TransactionId**— L'ID della transazione di chiamata, lo stesso ID della richiesta.

L'esempio seguente mostra un evento di `CALL_UPDATE_REQUESTED` invocazione.

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

**Elementi dell'evento**
+ **SchemaVersion**— La versione dello schema JSON (1.0)
+ **Sequenza**: il numero di sequenza dell'evento della chiamata
+ **InvocationEventType**— Il tipo di evento di invocazione Lambda, in questo caso, `CALL_UPDATE_REQUESTED`
+ **ActionData**— I dati associati all'azione. `CallUpdateRequest`
  + **Tipo**: il tipo di azione, in questo caso `CallUpdateRequest`
  + **Parametri**: i parametri dell'azione
    + **Argomenti**: gli argomenti passati come parte della richiesta `UpdateSipMediaApplicationCall` API
+ **CallDetails**— Le informazioni sullo stato corrente della chiamata

**Comprensione delle azioni interrompibili e non interrompibili**  
Quando una funzione Lambda restituisce un nuovo elenco di azioni durante l'esecuzione di azioni esistenti, tutte le azioni che seguono l'azione in corso vengono sostituite con le nuove azioni. In alcuni casi, la funzione Lambda interrompe le azioni in corso per eseguire immediatamente nuove azioni.

Il diagramma seguente mostra un esempio tipico. Il testo sotto il diagramma spiega la logica.

![\[Diagramma che mostra come è possibile sostituire le azioni durante una chiamata in corso a un'applicazione multimediale SIP.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/update-sip-actions.png)


Se l'Azione 2 è interrompibile, la interrompiamo ed eseguiamo invece una nuova Azione 1.

Se l'Azione 2 non è interrompibile, viene completata prima dell'inizio della nuova Azione 1.

In entrambi i casi, l'Azione 3 non viene eseguita.

Se qualcosa interrompe un'azione, la funzione Lambda viene richiamata con un evento. `ACTION_INTERRUPTED` Questo evento viene utilizzato solo a scopo informativo. L'applicazione multimediale SIP ignora tutte le azioni restituite da questa chiamata.

Tipi di azioni interrompibili:
+ `PlayAudio`
+ `RecordAudio`
+ `Pause`

**Funzione Lambda di esempio**  
Questo esempio mostra una tipica funzione Lambda che riproduce un file audio, passa un token di join e aggiorna la chiamata.

```
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();
    }
}
```

# Terminare una chiamata utilizzando il servizio audio PSTN di Amazon Chime SDK
<a name="case-5"></a>

Puoi utilizzare l'[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 per terminare una chiamata in uscita. L'API richiama l'endpoint di un ID di applicazione multimediale **SIP** specificato. I clienti possono controllare il flusso della chiamata restituendo le azioni all'applicazione multimediale SIP.

In caso di risposta corretta, l'API restituisce un codice di stato http 202 insieme a`transactionId`, che è possibile utilizzare con l'[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 per aggiornare una chiamata in corso.

Il diagramma seguente mostra le chiamate effettuate all'endpoint della AWS Lambda funzione per una chiamata in uscita.

![\[Il flusso di dati quando si richiama l'API. CreateSipMediaApplicationCall L'API richiama un endpoint diverso quando cambia lo stato di una chiamata in uscita.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sip-api-1.png)


L'endpoint configurato per l'applicazione multimediale SIP viene richiamato per diversi stati della chiamata in uscita. Quando un cliente effettua una chiamata, l'SDK Amazon Chime richiama l'endpoint con un tipo di evento di chiamata. `HANGUP` 

Questo esempio mostra un tipico evento di invocazione per un. `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"
            }
        ]
    }
}
```

# Comprendere end-to-end le chiamate per il servizio audio PSTN Amazon Chime SDK
<a name="use-cases"></a>

Questo caso d'uso fornisce un codice di esempio per ricevere una telefonata da un chiamante PSTN, salutarlo con un messaggio audio, ottenere il PIN della riunione dal chiamante, riprodurre l'audio e unirsi al chiamante alla riunione.

**Eventi e azioni di invocazione**  
Il servizio audio passa gli eventi di chiamata alle AWS Lambda funzioni come oggetti JSON. Gli oggetti includono il tipo di evento di invocazione e tutti i metadati pertinenti. La AWS Lambda funzione restituisce anche le azioni delle applicazioni multimediali SIP come oggetti JSON e tali oggetti includono un tipo di azione e tutti i metadati pertinenti.

La tabella seguente elenca gli eventi di invocazione e quelli possibili `ActionData.Type` quando si riceve un evento di invocazione.


|  Evento di invocazione  |  ActionData.Tipo  | 
| --- | --- | 
|  AZIONE\$1RIUSCITA  |  CallAndBridge ReceiveDigits PlayAudio PlayAudioAndGetDigits  JoinChimeMeeting ModifyChimeMeetingAttendees RecordMeeting  | 
|  AZIONE\$1FALLITA  |  CallAndBridge PlayAudio PlayAudioAndGetDigits ModifyChimeMeetingAttendees RecordMeeting  | 
| RIAGGANCIARE |  HangUp  | 
|  CIFRE\$1RICEVUTE  | ReceiveDigits | 

**Nota**  
Per implementare il seguente caso d'uso, sono necessari almeno un numero di telefono nell'inventario Amazon Chime SDK, un oggetto gestito da un'applicazione multimediale SIP che utilizzi una funzione AWS Lambda con un Amazon Resource Name (ARN) e una regola SIP che utilizzi il numero di telefono come trigger.

Quando Amazon Chime SDK riceve una chiamata al numero di telefono specificato nella regola, il servizio audio PSTN richiama una AWS Lambda funzione con il tipo di evento di chiamata. `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"
            }
        ]
    }
}
```

È possibile programmare la AWS Lambda funzione per convalidare i dettagli delle chiamate e memorizzarli per utilizzi futuri. Per un `NEW_INBOUND_CALL` evento, la AWS Lambda funzione risponde con una serie di azioni che riproducono un messaggio di benvenuto e richiedono il PIN della riunione.

I file audio hanno i seguenti requisiti:
+ È necessario riprodurre file audio da un bucket Amazon Simple Storage Service (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—. `voiceconnector.chime.amazonaws.com` Puoi usare la console S3 o l'interfaccia a riga di comando (CLI) per farlo.
+ È necessario utilizzare file WAV PCM di dimensioni non superiori a 50 MB. L'SDK Amazon Chime consiglia 8 mono. KHz 
+ I metadati S3 per ogni file WAV devono contenere. `{'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
            }
        }
    ]
}
```

L'applicazione multimediale SIP esegue queste azioni sulla riga di chiamata A. Supponendo che l'`PlayAudioAndGetDigits`azione riceva le cifre, l'applicazione multimediale SIP richiama la funzione con il tipo di evento. AWS Lambda `ACTION_SUCCESSFUL`

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

È possibile programmare una AWS Lambda funzione per identificare il chiamante in base ai dati. `CallDetails` Puoi anche convalidare il PIN della riunione ricevuto in precedenza. Supponendo che il PIN sia corretto, puoi quindi utilizzare [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html)e [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 per creare la riunione Amazon Chime SDK e generare il token di partecipazione utilizzato dal partecipante alla riunione. La AWS Lambda funzione risponde con l'azione di partecipare alla riunione Amazon Chime SDK.

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

Supponendo che `JoinToken` sia valido, l'applicazione multimediale SIP partecipa alla riunione Amazon Chime SDK e richiama una AWS Lambda funzione con l'`ACTION_SUCCESSFUL`evento, dove `CallDetails` contiene i dati dell'applicazione multimediale SIP e del servizio 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"
            }
        ]
    }
}
```

Se a questo punto desideri interrompere l'esecuzione di azioni sulla chiamata o sull'intervallo della chiamata, puoi rispondere con una serie di azioni vuota.

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

Dopo la chiusura del chiamante, l'applicazione multimediale SIP richiama la funzione con l' AWS Lambda evento. `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"
            }
        ]
    }
}
```

Se si risponde a un `Hangup` evento con un'azione, l'applicazione multimediale SIP ignora l'azione se nessun'altra ne mostra una. `Participants` `Status` `Connected`

# Risposta alle chiamate con elenchi di azioni utilizzando il servizio audio PSTN di Amazon Chime SDK
<a name="invoke-on-call-leg"></a>

È possibile rispondere a un evento di AWS Lambda chiamata con un elenco di azioni da eseguire sui singoli partecipanti a una chiamata. È possibile rispondere con un massimo di 10 azioni per ogni AWS Lambda chiamata e richiamare una AWS Lambda funzione 1.000 volte per chiamata.

Per impostazione predefinita, le applicazioni multimediali SIP scadono se una funzione Lambda non risponde dopo 20 secondi.

L'esempio seguente mostra la struttura generale delle risposte.

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

Quando la AWS Lambda funzione restituisce l'elenco delle azioni all'applicazione multimediale SIP, si verificano le seguenti operazioni:

1. L'applicazione termina l'esecuzione dell'azione corrente su una chiamata.

1. L'applicazione sostituisce quindi il vecchio set di azioni con un nuovo set di azioni ricevuto dall'ultimo evento di chiamata.

Se l'applicazione multimediale SIP riceve un set di `NULL` azioni, mantiene le azioni esistenti. 

# Azioni supportate per il servizio audio PSTN Amazon Chime SDK
<a name="specify-actions"></a>

È possibile specificare diversi tipi di azioni di segnalazione e multimediali in una risposta da una funzione. AWS Lambda Ogni azione ha proprietà diverse. Gli argomenti seguenti forniscono codice di esempio e spiegano come utilizzare le azioni.

**Topics**
+ [Utilizzo TransactionAttributes](transaction-attributes.md)
+ [Utilizzo della registrazione delle chiamate](sip-apps-call-record.md)
+ [CallAndBridge](call-and-bridge.md)
+ [Hangup](hangup.md)
+ [JoinChimeMeeting](join-chime-meeting.md)
+ [ModifyChimeMeetingAttendee(disattivazione e riattivazione dell'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)

# Utilizzo TransactionAttributes
<a name="transaction-attributes"></a>

La struttura `TransactionAttributes` dati viene utilizzata per archiviare informazioni specifiche dell'applicazione, come lo stato delle chiamate o le riunioni IDs, e quindi passare tali dati alle chiamate AWS Lambda. Questa struttura elimina la necessità di archiviare dati in database esterni come Amazon DynamoDB. 

`TransactionAttributes`sono [oggetti JSON](https://www.w3schools.com/js/js_json_objects.asp) che contengono key/value pairs. The objects can contain a maximum of 100 key/value coppie e hanno una dimensione massima del payload di 20 KB. I dati in una `TransactionAttributes` struttura persistono per tutta la durata di una transazione.

Quando una AWS Lambda funzione passa `TransactionAttributes` a un'applicazione multimediale SIP, l'applicazione aggiorna tutti gli attributi memorizzati. Se passate un `TransactionAttributes` oggetto con un set di chiavi esistente, aggiornate i valori memorizzati. Se passate un set di chiavi diverso, sostituite i valori esistenti con i valori di quel set di chiavi diverso. Il passaggio di una mappa vuota (`{}`) cancella tutti i valori memorizzati.

**Topics**
+ [Impostazione TransactionAttributes](set-trans-attributes.md)
+ [Aggiornamento in corso TransactionAttributes](update-trans-attributes.md)
+ [Cancellazione TransactionAttributes](clear-trans-attributes.md)
+ [Gestione ACTION\$1SUCCESSFUL events](attribute-trans-success.md)
+ [Ingressi non validi](attribute-trans-invalid.md)

# Impostazione TransactionAttributes
<a name="set-trans-attributes"></a>

L'esempio seguente mostra come `TransactionAttributes` affiancare un'[PlayAudio](play-audio.md)azione e passare gli attributi da una AWS Lambda funzione a un'applicazione multimediale 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"
    }
}
```

# Aggiornamento in corso TransactionAttributes
<a name="update-trans-attributes"></a>

Per modificare l'archivio`TransactionAttributes`, aggiorna il contenuto dell'oggetto JSON con nuovi valori. Nell'esempio seguente, le chiavi `NewKey1` e `NewKey2` vengono aggiunte a. `TransactionAttributes` Questi tasti sono associati ai valori `NewValue1` e`NewValue2`, rispettivamente.

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

Se, nell'esempio precedente, si passa `NewValue1` a`key1`, il valore esistente di `key1` verrebbe sostituito con`NewValue1`. Tuttavia, il passaggio di un valore a `NewKey1` crea una nuova coppia chiave/valore.

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

Per cancellare il contenuto dell'`TransactionAttributes`oggetto, passa il `TransactionAttributes` campo con un oggetto JSON vuoto:

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

**Nota**  
Non puoi cancellare i dati da una `TransactionAttributes` struttura impostandone il valore su`null`. Inoltre, l'omissione della `TransactionAttribute` struttura non ne cancella i dati. Passa sempre un oggetto JSON vuoto con `TransactionAttributes` per cancellare i dati dall'oggetto.

# Gestione ACTION\$1SUCCESSFUL events
<a name="attribute-trans-success"></a>

L'esempio seguente mostra come un [PlayAudio](play-audio.md) messaggio di successo invia il file archiviato `TransactionAttributes` come parte di`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" 
            } 
        ] 
    } 
}
```

# Ingressi non validi
<a name="attribute-trans-invalid"></a>

L'esempio seguente mostra un input non valido. In questo caso, l'oggetto JSON passa troppi elementi a un'applicazione multimediale 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" 
    } 
}
```

L'esempio seguente mostra la risposta all'input fornito in precedenza. Questo output viene passato da un'applicazione multimediale SIP alla funzione AWS Lambda che ha richiamato l'applicazione.

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

# Utilizzo della registrazione delle chiamate
<a name="sip-apps-call-record"></a>

Le azioni di registrazione delle chiamate per le applicazioni multimediali SIP consentono di creare soluzioni di registrazione e trascrizione post-chiamata per una varietà di usi. Ad esempio, è possibile registrare le chiamate all'assistenza clienti e utilizzarle per la formazione.

Le azioni di registrazione delle chiamate vengono utilizzate insieme alle applicazioni multimediali SIP. È inoltre possibile utilizzare le azioni su richiesta o in risposta a un evento SIP. 
+ Per avviare la registrazione su richiesta di una chiamata nell'applicazione multimediale SIP, è necessario utilizzare l'[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)API per richiamare l'applicazione e restituire l'azione. [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) 
+ Per avviare la registrazione delle chiamate in risposta a un evento SIP, restituite l'`StartCallRecording`azione nell'applicazione. 

È possibile mettere in pausa e riprendere una registrazione in corso. Per mettere in pausa, usa l'azione. [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) Per riprendere, usa l'azione`ResumeCallRecording`. Ogni volta che metti in pausa o riprendi una registrazione, l'azione acquisisce un tono che indica la pausa o la ripresa. Quando fai una pausa, l'azione registra il silenzio, che Amazon Chime SDK utilizza per tenere traccia della durata della pausa e includerla nella fattura. Puoi mettere in pausa e riprendere la registrazione tutte le volte che vuoi.

Per interrompere la registrazione delle chiamate, si ripristina l'[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)azione. Tuttavia, le registrazioni delle chiamate si interrompono automaticamente al termine della chiamata e in tal caso non è necessario restituire esplicitamente l'azione`StopCallRecording`. È possibile avviare e interrompere la registrazione una sola volta per una singola sessione di chiamata.

L'SDK Amazon Chime fornisce le registrazioni delle chiamate su un bucket Amazon S3 selezionato dall'utente. Il bucket deve appartenere al tuo account. AWS Una volta interrotta una chiamata, l'applicazione multimediale SIP invia la registrazione nella cartella specificata nel `Destination` parametro dell'[StartCallRecording](start-call-recording.md)azione. L'SDK Amazon Chime registra le chiamate in un formato WAV aperto. Le chiamate che registrano tracce in entrata e in uscita utilizzano la modalità stereo, con la traccia in entrata nel canale sinistro e la traccia in uscita sul canale destro. Se si registra solo la traccia in entrata o in uscita, il sistema utilizza la modalità mono.

**Nota**  
Le registrazioni effettuate utilizzando questa funzione possono essere soggette a leggi o regolamenti relativi alla registrazione delle comunicazioni elettroniche. È responsabilità dell'utente e degli utenti finali rispettare tutte le leggi applicabili in materia di registrazione, inclusa la corretta notifica a tutti i partecipanti a una sessione o comunicazione registrata che la sessione o la comunicazione è in corso di registrazione e l'ottenimento del loro consenso.

## Fatturazione per la registrazione delle chiamate
<a name="call-billing"></a>

L'SDK Amazon Chime ti fattura al minuto per il periodo in cui la registrazione delle chiamate è abilitata per una sessione di chiamata e tale tempo include tutte le pause. Ti viene fatturato l'utilizzo della registrazione delle chiamate una volta che la registrazione viene consegnata al tuo bucket Amazon S3.

# Registrazione di tracce audio
<a name="record-legs"></a>

Puoi registrare solo le tracce della chiamata in entrata o in uscita o entrambe le tracce di una chiamata.

Questa immagine mostra una tipica chiamata in arrivo con una sola gamba, o senza bridge. 

![\[Una chiamata in arrivo che comunica solo con un'applicazione multimediale SIP.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/call-record-sma-one-leg.png)


**La chiamata ha solo una parte con call-id-1. `callID`** La traccia `INCOMING` audio è l'audio inviato dal chiamante all'applicazione multimediale SIP. La traccia `OUTGOING` audio è l'audio trasmesso dall'applicazione multimediale SIP al chiamante. L'applicazione multimediale SIP specifica la `CallId` chiamata che si desidera registrare. Per registrare il partecipante che ha effettuato la chiamata, si specifica. `INCOMING` Per registrare il partecipante che risponde a una chiamata, si specifica. `OUTGOING` Per registrare entrambi i partecipanti, specificare. `BOTH`

Questa immagine mostra una tipica chiamata intermedia con due partecipanti.

![\[Una chiamata in arrivo che comunica con un'applicazione multimediale SIP e un secondo partecipante.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/call-record-sma-bridged.png)


****In questo esempio, la chiamata ha due fasi di chiamata, call-id-1 e call-id-2, e **call-id-1** viene collegato a **call-id-2**.**** In questo modo vengono create quattro tracce audio, i flussi audio in entrata e in uscita per entrambe le chiamate. IDs È possibile specificare la chiamata IDs e le tracce audio da registrare. Ad esempio, se si desidera registrare la traccia audio del partecipante chiamato, si registra la traccia `INCOMING` audio specificando **call-id-2** come e come traccia. `CallId` `INCOMING`

**Se desiderate registrare tutto ciò che il chiamante sente, registrate la traccia `OUTGOING` audio specificando call-id-1 come e come traccia.** `CallId` `OUTGOING` Se desideri registrare tutto l'audio che hai `Caller` detto e sentito, registri le tracce `BOTH` audio `call-id-1` specificandole come e come traccia. `CallId` `BOTH`

# Esempi di casi d'uso
<a name="recording-use-cases"></a>

Le applicazioni multimediali SIP forniscono azioni di registrazione delle chiamate come elementi costitutivi. Ti offrono la flessibilità necessaria per creare soluzioni di registrazione delle chiamate per i tuoi casi d'uso aziendali. I seguenti casi illustrano alcuni scenari di utilizzo comuni.

**Topics**
+ [Caso 1: registrazione di una chiamata con una sola gamba che prevede azioni SIP](#recording-case-1)
+ [Caso 2: registrazione selettiva dell'audio in una chiamata interconnessa](#recording-case-2)
+ [Caso 3: registrazione di più sessioni di chiamata](#recording-case-3)
+ [Caso 4: registrazione su richiesta con pausa e ripresa](#on-demand-pause-resume)

## Caso 1: registrazione di una chiamata con una sola gamba che prevede azioni SIP
<a name="recording-case-1"></a>

È possibile registrare un chiamante e qualsiasi audio generato dalle azioni dell'applicazione multimediale SIP, come le azioni and. [PlayAudio](play-audio.md) [PlayAudioAndGetDigits](play-audio-get-digits.md) Durante la registrazione, se un chiamante preme una cifra, la registrazione acquisisce il tono di quella cifra. Questo esempio utilizza l'`PlayAudioAndGetDigits`azione, ma la risposta vocale interattiva (IVR) può essere una serie complessa di azioni dell'applicazione multimediale SIP.

In questo esempio, l'applicazione multimediale SIP registra entrambe le tracce audio tra il chiamante e l'applicazione multimediale SIP stessa. La registrazione inizia quando viene stabilita la chiamata e si interrompe quando il chiamante riaggancia. La fatturazione inizia quando viene stabilita la chiamata e si interrompe quando il chiamante riaggancia.

![\[Diagramma di un'applicazione multimediale SIP che registra due tracce audio, in questo caso, tra un chiamante e l'app stessa.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sma-recording-case-1.png)


## Caso 2: registrazione selettiva dell'audio in una chiamata interconnessa
<a name="recording-case-2"></a>

È possibile registrare selettivamente la traccia audio di un singolo partecipante alla chiamata. È possibile utilizzare questa funzione per abilitare selettivamente la registrazione delle chiamate solo per un partecipante specifico.

In questo esempio, l'applicazione multimediale SIP registra le tracce audio in entrata tra la parte chiamata e l'applicazione multimediale SIP stessa specificando **call-id-2** come e come traccia. `CallId` `INCOMING` La registrazione della chiamata inizia quando il chiamante viene collegato alla parte chiamata, e questo è anche il momento in cui inizia la fatturazione. La registrazione si interrompe quando la persona chiamata riaggancia, e in quel momento termina anche la fatturazione. Questa registrazione contiene solo la traccia audio della persona chiamata. 

![\[Diagramma di un'applicazione multimediale SIP che registra selettivamente una traccia.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sma-recording-case-2.png)


## Caso 3: registrazione di più sessioni di chiamata
<a name="recording-case-3"></a>

È possibile registrare più sessioni di chiamata. Ad esempio, supponiamo di collegare una chiamata a un partecipante. Quando quel partecipante riaggancia, la telefonata viene trasferita a un altro partecipante. È possibile abilitare la registrazione delle chiamate per tutte e tre le fasi di chiamata. 

Questo esempio mostra tre file di registrazione separati. La registrazione della prima sessione di chiamata registra la conversazione tra il chiamante, l'applicazione e i due partecipanti che hanno partecipato alla chiamata. La registrazione per la seconda fase della chiamata cattura la conversazione tra il chiamante e il primo partecipante. La registrazione per la terza fase di chiamata cattura la conversazione tra il chiamante e il secondo partecipante. 

In questo caso vengono create tre fasi di chiamata e la fatturazione si applica all'inizio e alla fine di ciascuna fase di chiamata. In altre parole, il sistema invia tre registrazioni al tuo bucket S3 e ti viene fatturata ciascuna. 

![\[Diagramma di un'applicazione multimediale SIP che registra più fasi di chiamata.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sma-recording-case-3.png)


## Caso 4: registrazione su richiesta con pausa e ripresa
<a name="on-demand-pause-resume"></a>

È possibile avviare, interrompere, mettere in pausa e riprendere la registrazione delle chiamate su richiesta utilizzando l'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) È possibile creare un'applicazione client che richiami l'`UpdateSipMediaApplicationCall`API e richiami l'applicazione multimediale SIP per restituire azioni di registrazione delle chiamate.

Gli utenti finali utilizzano l'applicazione client per controllare la registrazione delle chiamate. Ad esempio, in un call center, un agente utilizzerebbe un'applicazione client desktop per attivare azioni di registrazione delle chiamate su richiesta. Nell'esempio del call center, l'agente potrebbe chiedere al chiamante l'autorizzazione per registrare la telefonata e può fare clic nell'applicazione client per avviare la registrazione una volta che il chiamante acconsente. In un altro esempio, il chiamante potrebbe dover fornire informazioni come un numero di previdenza sociale (SSN). Tuttavia, la politica del call center richiede che l'agente non registri informazioni come il SSN del cliente. L'agente può fare clic sull'applicazione per sospendere la registrazione mentre il cliente fornisce le informazioni, quindi fare nuovamente clic per riprendere la registrazione. Una volta che l'agente ha gestito la richiesta del chiamante, fa clic sull'applicazione per interrompere la registrazione e interrompe la chiamata.

In questo caso d'uso, l'applicazione multimediale SIP registra le tracce audio tra il chiamante e l'applicazione multimediale SIP. Poiché la `call-id-1` gamba è collegata alla `call-id-2` gamba, il sistema registra l'audio su entrambe le gambe, chiamante e chiamata. La registrazione e la fatturazione iniziano quando l'`UpdateSipMediaApplicationCall`API richiama l'azione. `StartCallRecording` La registrazione e la fatturazione si interrompono quando l'`UpdateSipMediaApplicationCall`API richiama l'azione. `StopCallRecording` Ti ricordiamo che mettere in pausa la registrazione non ne modifica la durata e tutte le pause ti verranno addebitate. 

![\[Diagramma di un'applicazione multimediale SIP che registra su richiesta con registrazione sospesa e ripresa.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/sma-recording-on-demand.png)


# Azioni di registrazione delle chiamate per applicazioni multimediali SIP
<a name="use-recording-apis"></a>

È possibile specificare diverse azioni di registrazione delle chiamate in risposta dalla AWS Lambda funzione dell'applicazione multimediale SIP. I seguenti argomenti forniscono codice di esempio e spiegano come utilizzare le azioni.

**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>

L'`StartCallRecording`azione avvia la registrazione di una sessione di chiamata. Si avvia la registrazione delle chiamate nelle applicazioni multimediali SIP, su richiesta o in risposta a un evento SIP.
+ Per avviare la registrazione su richiesta di una chiamata, si utilizza l'`UpdateSipMediaApplication`API per richiamare l'applicazione e restituire l'azione. `StartCallRecording`
+ Per avviare la registrazione delle chiamate in risposta a un evento SIP, restituite l'`StartCallRecording`azione nell'applicazione. 

È possibile specificare se si desidera registrare la traccia audio per la tappa in entrata, la tratta in uscita o entrambe. Le sezioni seguenti spiegano come utilizzare l'azione`StartCallRecording`.

**Nota**  
Le registrazioni effettuate utilizzando questa funzione possono essere soggette a leggi o regolamenti relativi alla registrazione delle comunicazioni elettroniche. È responsabilità dell'utente e degli utenti finali rispettare tutte le leggi applicabili in materia di registrazione, inclusa la corretta notifica a tutti i partecipanti a una sessione o comunicazione registrata che la sessione o la comunicazione è in corso di registrazione e l'ottenimento del loro consenso.

**Topics**
+ [Richiedere un'azione StartCallRecording](#request-start)
+ [Specificare una destinazione di registrazione](#recording-destination)
+ [Concessione delle autorizzazioni per i bucket Amazon S3](#grant-s3-perms)
+ [Azione, risposta riuscita](#action-successful)
+ [Azione, errore, risposta.](#action-error)

## Richiedere un'azione StartCallRecording
<a name="request-start"></a>

L'esempio seguente mostra come richiedere l'`StartCallRecording`azione per `BOTH` le tracce.

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

**CallId**  
*Descrizione*: `CallId` del partecipante all'`CallDetails`invocazione della AWS Lambda funzione  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**Traccia**  
*Descrizione*: audio `Track` della registrazione della chiamata.  
*Valori consentiti*: `BOTH``INCOMING`, o `OUTGOING`  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**Destinazione. Tipo**  
*Descrizione:* tipo di destinazione. È consentito solo Amazon S3.  
*Valori consentiti*: Amazon S3  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**Destinazione. Ubicazione**  
*Descrizione*: un bucket Amazon S3 valido e un prefisso chiave Amazon S3 opzionale. Il bucket deve disporre delle autorizzazioni per il principale servizio Amazon Chime SDK Voice Connector, voiceconnector.chime.amazonaws.com.  
*Valori consentiti*: un percorso Amazon S3 valido per il quale Amazon Chime SDK dispone delle autorizzazioni per le azioni e. `s3:PutObject` `s3:PutObjectAcl`  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

## Specificare una destinazione di registrazione
<a name="recording-destination"></a>

L'SDK Amazon Chime fornisce le registrazioni delle chiamate nel tuo bucket Amazon S3. Il bucket deve appartenere al tuo account. AWS Specificate la posizione del bucket nel `Destination` parametro dell'`StartCallRecording`azione. Il `Type` campo nel `Destination` parametro deve essere`S3`. Il `Location` campo è composto dal tuo bucket Amazon S3, più un prefisso object-key opzionale in cui viene consegnata la registrazione delle chiamate. 

L'applicazione multimediale SIP utilizza la data e l'ora specificate`Location`, la data e l'ora della chiamata, l'ID della transazione e l'ID della chiamata per formattare la chiave oggetto Amazon S3. La risposta `StartCallRecording` all'azione restituisce la chiave dell'oggetto Amazon S3 completa.

Quando fornisci solo il bucket Amazon S3 `Location` sul campo, l'applicazione multimediale SIP aggiunge un prefisso predefinito `Amazon-Chime-SMA-Call-Recordings` al percorso Amazon S3. L'applicazione multimediale SIP aggiunge anche l'anno, il mese e il giorno dell'ora di inizio della chiamata per facilitare l'organizzazione delle registrazioni. L'esempio seguente mostra il formato generale di un percorso Amazon S3 con il prefisso predefinito. Questo esempio utilizza `myRecordingBucket` come valore. `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
```

L'esempio seguente mostra i dati rappresentati nel percorso di registrazione delle chiamate Amazon S3.

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

Quando fornisci il bucket Amazon S3 e il prefisso della chiave oggetto `Location` sul campo, l'applicazione multimediale SIP utilizza il prefisso della chiave oggetto nel percorso Amazon S3 di destinazione anziché il prefisso predefinito. L'esempio seguente mostra il formato generale di un percorso di registrazione delle chiamate in Amazon S3 con il tuo prefisso. Ad esempio, puoi specificare myRecordingBucket /TechnicalSupport/English come. `Location` 

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

L'esempio seguente mostra i dati nel percorso Amazon S3.

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

La registrazione inviata al tuo bucket Amazon S3 contiene [metadati di oggetti Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) aggiuntivi relativi alla sessione di chiamata. La tabella seguente elenca i metadati degli oggetti Amazon S3 supportati.


| Nome | Description | 
| --- | --- | 
| id della transazione | ID della transazione della telefonata | 
| ID di chiamata | CallId del partecipante all'invocazione CallDetails della funzione AWS Lambda  | 
| durata della registrazione | Durata della registrazione delle chiamate in secondi | 
| recording-audio-file-format | Formato di file audio per la registrazione delle chiamate rappresentato come tipo di supporto Internet | 

## Concessione delle autorizzazioni per i bucket Amazon S3
<a name="grant-s3-perms"></a>

Il bucket Amazon S3 di destinazione deve appartenere allo stesso AWS account dell'applicazione. Inoltre, l'azione deve concedere `s3:PutObject` l'`s3:PutObjectAcl`autorizzazione al responsabile del servizio Amazon Chime SDK Voice Connector,. `voiceconnector.chime.amazonaws.com` L'esempio seguente concede l'autorizzazione appropriata. 

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

------

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

------

## Azione, risposta riuscita
<a name="action-successful"></a>

Quando la registrazione della chiamata viene avviata correttamente durante una sessione di chiamata, l'applicazione multimediale SIP richiama una AWS Lambda funzione con il `ACTION_SUCCESSFUL` tipo di evento. La posizione della registrazione della chiamata viene restituita nella risposta. 

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

## Azione, errore, risposta.
<a name="action-error"></a>

In caso di errori di convalida, l'applicazione multimediale SIP richiama la AWS Lambda funzione con il messaggio di errore appropriato. La tabella seguente elenca i messaggi di errore.




| Errore | Messaggio | Motivo | 
| --- | --- | --- | 
| `InvalidActionParameter` | `CallId`il parametro per l'azione non è valido | Qualsiasi parametro non è valido. | 
| `SystemException` | Errore di sistema durante l'esecuzione di un'azione. | Si è verificato un altro tipo di errore di sistema durante l'esecuzione di un'azione. | 

Quando l'azione non riesce a registrare i file multimediali su una sessione di chiamata, l'applicazione multimediale SIP richiama una AWS Lambda funzione con il `ActionFailed` tipo di evento. 

L'esempio seguente mostra una tipica risposta di errore.

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

Vedi un esempio funzionante su 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>

L'`StopCallRecording`azione interrompe la registrazione di una chiamata. La registrazione si interrompe automaticamente al termine di una chiamata e l'applicazione non deve restituire esplicitamente l'`StopCallRecording`azione. Una volta interrotta la registrazione di una chiamata, non può essere riavviata e la registrazione viene recapitata alla destinazione specificata nell'`StartCallRecording`azione. 

L'esempio seguente interrompe la registrazione per la `call-id-1` sessione di chiamata. 

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

**CallId**  
*Descrizione*: `CallId` del partecipante all'`CallDetails`invocazione della AWS Lambda funzione  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

Vedi un esempio funzionante su 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>

L'`PauseCallRecording`azione sospende la registrazione di una sessione di chiamata. Ogni volta che si mette in pausa una registrazione, la registrazione acquisisce un tono che indica la pausa. Quando si mette in pausa, la registrazione continua, ma cattura solo il silenzio. La messa in pausa della registrazione non influisce sulla durata totale della registrazione. È possibile mettere in pausa e riprendere la registrazione tutte le volte che è necessario.

L'esempio seguente mette in pausa la registrazione. 

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

**CallId**  
*Descrizione*: `CallId` del partecipante all'`CallDetails`invocazione della funzione AWS Lambda   
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

Vedi un esempio funzionante su 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>

L'`ResumeCallRecording`azione riprende la registrazione di una sessione di chiamata. Prima del riavvio della registrazione, viene riprodotto un breve tono. È possibile mettere in pausa e riprendere una registrazione più volte per tutta la durata della sessione di chiamata. 

L'esempio seguente riprende la registrazione. 

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

**CallId**  
*Descrizione*: `CallId` del partecipante all'invocazione `CallDetails` della funzione AWS Lambda   
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

Vedi un esempio funzionante su 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 chiamata in uscita verso un numero di telefono PSTN o verso un trunk SIP configurato come Amazon Chime SDK Voice Connector o Amazon Chime SDK Voice Connector Group, quindi la collega a una chiamata esistente. Si usa `PSTN` quando si chiama un numero di telefono e quando si chiama un trunk SIP. `AWS` 

Una chiamata esistente può essere una chiamata in uscita creata utilizzando l'[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 chiamata in entrata creata da una regola SIP che richiama la funzione con un evento. AWS Lambda `NewInboundCall` Quando implementi un'`CallAndBridge`azione su un endpoint Voice Connector o Voice Connector Group, devi specificare l'Amazon Resource Number (ARN) del Voice Connector o del Voice Connector Group.

Puoi anche aggiungere intestazioni SIP personalizzate alle chiamate e alle funzioni in uscita. AWS Lambda Le intestazioni personalizzate consentono di trasmettere valori come numeri di piani e codici postali. Per ulteriori informazioni sulle intestazioni personalizzate, fare riferimento a. [Utilizzo delle intestazioni SIP nel servizio audio Amazon Chime SDK PTSN](sip-headers.md)

Quando si utilizza la funzione call and bridge, è importante notare che ogni chiamata viene conteggiata nel conteggio delle chiamate simultanee attive utilizzato per calcolare i limiti di chiamate attive SMA. Tenendo presente ciò, quando si gestiscono i limiti di chiamata attiva SMA per chiamate e bridge, è necessario contare 2 chiamate per ogni 1 chiamata e azione di bridge. Per ulteriori informazioni, consulta [SIP trunking e quote vocali](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) nel. *Riferimenti generali di AWS*

Il codice di esempio seguente mostra un'azione tipica che collega un endpoint PSTN.

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

L'esempio seguente mostra un'azione tipica che utilizza un Voice Connector o un Voice Connector Group, oltre a un'intestazione SIP personalizzata.

```
{
   "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**  
*Descrizione*: l'intervallo che precede il timeout di una chiamata. Il timer si avvia al momento della configurazione della chiamata.  
*Valori consentiti*: compresi tra 1 e 120, inclusi  
*Obbligatorio*: no  
*Valore predefinito*: 30

**CallerIdNumber**  
*Descrizione*: un numero che appartiene al cliente o il numero di origine della gamba A  
*Valori consentiti*: un numero di telefono valido nel formato E.164  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**Endpoints**  
*Descrizione*: gli endpoint di una chiamata  
*Valori consentiti*:   
+ `BridgeEndpointType`— `AWS` per i connettori vocali e i gruppi di connettori vocali, altrimenti`PSTN`.
+ `Arn`— L'ARN di un Voice Connector o Voice Connector Group. Richiesto solo quando si utilizza `AWS` come. `BridgeEndpointType` 
+ `Uri`— Il valore URI dipende dal tipo di endpoint.

  Per gli `PSTN` endpoint, l'URI deve essere un numero di telefono E.164 valido.

  Per gli `AWS` endpoint, il valore URI imposta la `user` parte di. `Request-URI` È necessario utilizzare il formato [Augmented Backus-Naur](https://datatracker.ietf.org/doc/html/rfc2234). Lunghezza richiesta: compresa tra 1 e 36, inclusi. Utilizzate i seguenti valori: `a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, ` (`,`), (`.`)

  Il valore host di `Request-URI` è derivato dalle route in entrata del Voice Connector di destinazione. L'esempio seguente mostra un'`CallAndBridge`azione con un `AWS` endpoint.

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

  Per ulteriori informazioni sulle rotte in entrata e sui connettori vocali, consulta [Modifica delle impostazioni di Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/edit-voicecon.html) Voice Connector.
*Obbligatorio: Sì*  
*Valore predefinito* - nessuno

**SipHeaders**  
*Descrizione*: consente di passare valori aggiuntivi. Utilizzare solo con il tipo di `AWS` endpoint.  
*Valori consentiti*: intestazione SIP valida  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

L'esempio seguente mostra un'`CallAndBridge`azione riuscita che utilizza un endpoint 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"
         }
      ]
   }
}
```

L'esempio seguente mostra un'azione non riuscita. `CallAndBridge`

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

## Flussi di chiamate
<a name="call-bridge-flows"></a>

L'`CallAndBridge`azione offre un'esperienza audio e di segnalazione di chiamata diversa per un gruppo di chiamata esistente, a seconda dei parametri e del fatto che il collegamento sia o meno.

Il diagramma seguente mostra i flussi di chiamata con parametri diversi quando un gruppo di chiamata in entrata A è già connesso.

![\[Il flusso di una chiamata con risposta attraverso l'azioneCallAndBridge.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/call-bridge-ans-2.png)


Il diagramma seguente mostra il flusso di chiamate per una chiamata senza risposta.

![\[Il flusso di una chiamata senza risposta attraverso l'azione. CallAndBridge\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/SMA_Bridging_NotAns.png)


**Ulteriori dettagli**  
Ricorda questi fatti sull'`CallAndBridge`azione.
+ `CallTimeoutSeconds`— Questo timer si avvia quando l'invito SIP viene inviato sul B-Leg. È possibile impostare un valore target desiderato, ma questo valore può essere ignorato dai corrieri a monte.
+ `CallerIdNumber`— Questo numero di telefono deve appartenere al cliente o essere il numero di origine di un A-Leg.
+ **Comportamento della chiamata e casi limite**: se si interrompe una chiamata, l'altra non interrompe automaticamente la chiamata. Quando un `Hangup` evento viene inviato alla AWS Lambda funzione, la parte rimanente deve essere disconnessa indipendentemente. Se una parte della chiamata viene lasciata sospesa, la chiamata viene fatturata fino a quando non viene interrotta. Ad esempio, lo scenario seguente può comportare addebiti imprevisti:
  + Si tenta di collegarsi a un numero di telefono di destinazione. La destinazione è occupata e invia la chiamata direttamente alla segreteria telefonica. Dal punto di vista di Audio Service, accedere alla segreteria telefonica equivale a rispondere a una chiamata. L'A-Leg si blocca, ma il B-Leg continua ad ascoltare il messaggio di posta vocale. Mentre il B-Leg ascolta, tu ricevi una fattura.
  + È consigliabile utilizzare la AWS Lambda funzione o l'interlocutore all'altro capo della chiamata per terminare ogni fase della chiamata in modo indipendente.
+ **Fatturazione**: quando utilizzi, ti viene addebitato quanto segue: `CallAndBridge`
  + Minuti di chiamata attivi per ogni segmento di chiamata creato (A-Leg, B-Leg, ecc.) verso il PSTN.
  + Minuti di utilizzo del servizio audio.

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-call-inoltro](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-on-registrazione della domanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Invia un `Hangup` valore con `SipStatusCode` a a a qualsiasi parte della chiamata.

Quando il servizio audio esegue un'`Hangup`azione su una sessione di chiamata:
+ Per una chiamata con una sola sessione di chiamata, l'applicazione multimediale SIP richiama la AWS Lambda funzione con un `HANGUP` evento e ignora la risposta. La chiamata viene quindi disconnessa.
+ Per una fase di chiamata (tappa A) collegata a un'altra fase di chiamata (fase B), se l'`Hangup`azione è associata alla fase di chiamata collegata (fase B), il servizio audio PSTN disconnette la fase di chiamata collegata, quindi richiama la funzione Lambda con un `HANGUP` evento per la fase B. Il servizio audio PSTN esegue quindi tutte le azioni restituite da quella chiamata Lambda.
+ Per una fase di chiamata (tappa A) collegata a un'altra fase di chiamata (fase B), se l'`Hangup`azione è associata alla fase di chiamata originale (fase A), il servizio audio PSTN disconnette la fase di chiamata originale, quindi richiama la funzione Lambda con un `HANGUP` evento per la fase A. Il servizio audio PSTN esegue quindi tutte le azioni restituite da quella chiamata Lambda.
+ Per un gruppo di chiamata che si è unito a una riunione utilizzando l'`JoinMeeting`azione, se l'`Hangup`azione è associata alla fase della riunione (di solito tappa B), il chiamante si disconnette dalla riunione e riceve un `ACTION_SUCCESSFUL` evento per l'`Hangup`azione.

L'esempio seguente mostra un'azione tipica`Hangup`.

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

**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 specificato `CallId`

**SipResponseCode**  
*Descrizione*: uno qualsiasi dei codici di risposta SIP supportati  
*Valori consentiti*: 480: non disponibile; 486: occupato; 0: terminazione normale  
*Obbligatorio*: no  
*Valore predefinito*: 0

Dopo che un utente termina una chiamata, l'applicazione multimediale SIP richiama una AWS Lambda funzione con il codice elencato in. [Terminare una chiamata utilizzando il servizio audio PSTN di Amazon Chime SDK](case-5.md)

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-call-inoltro](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifiche di chiamata](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-registrazione della domanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Partecipa a una riunione Amazon Chime SDK fornendo il token di partecipazione del partecipante. A tale scopo, effettui chiamate AWS 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) e [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 per ottenere il token e trasmetterlo durante l'azione. Guarda l'esempio seguente. 

**Nota**  
Non puoi eseguire questa azione su una chiamata interrotta.

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

**JoinToken**  
*Descrizione*: un token di accesso valido del partecipante alla riunione Amazon Chime SDK  
*Valori consentiti*: token di iscrizione valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**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`  
*Obbligatorio*: no  
*Valore predefinito: `ParticipantTag` del valore* `callLeg` Ignorato richiamato, se si specifica `CallId`

**MeetingId**  
*Descrizione*: un ID riunione Amazon Chime SDK valido associato a. `JoinToken` Se la riunione è stata creata utilizzando un'API nello spazio dei nomi [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html), l'ID della riunione non è richiesto. Se la riunione è stata creata utilizzando un'API nello spazio dei nomi [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html), è necessario l'ID della riunione. Alla riunione si partecipa utilizzando l'endpoint API utilizzato per creare la riunione.  
*Valori consentiti*: un ID riunione valido.  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

L'applicazione multimediale SIP richiama sempre una AWS Lambda funzione dopo aver eseguito questa azione. Restituisce i tipi di evento `ACTION_SUCCESSFUL` o di `ACTION_FAILED` invocazione. L'esempio seguente mostra una struttura di eventi di chiamata riuscita.

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

**Gestione degli errori**  
Quando si verifica un errore di convalida durante il collegamento di una riunione, l'applicazione SIP richiama la sua AWS Lambda funzione con uno dei messaggi di errore mostrati nella tabella seguente.


|  Errore  |  Messaggio  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `JoinToken`il valore del parametro non è valido.  |  Qualsiasi altro parametro dell'azione non è valido o è mancante.  | 
|  `SystemException`  |  Errore di sistema durante l'esecuzione dell'azione.  |  Si è verificato un altro tipo di errore di sistema durante l'esecuzione dell'azione.  | 

L'esempio seguente mostra un tipico evento di errore.

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

Guarda un esempio funzionante su GitHub: [https://github.com/aws-samples/amazon-chime-sma-update-call](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ModifyChimeMeetingAttendee(disattivazione e riattivazione dell'audio)
<a name="mute-unmute"></a>

Consente all'applicazione multimediale SIP di modificare lo stato di un partecipante alla telefonia fornendo l'ID riunione e l'elenco dei partecipanti di Amazon Chime SDK.

**Nota**  
Questa azione attualmente supporta le operazioni di silenziamento e riattivazione dell'audio sui partecipanti alla telefonia. Inoltre, l'utente deve partecipare a una riunione utilizzando l'azione. `JoinChimeMeeting` Questa azione può essere eseguita su un `participantTag=“LEG-B”` o su un corrispondente`CallId`. 

Questa azione si applica solo alla chiamata che si collega dall'applicazione multimediale SIP a LEG-B o alla `"+` *13605550122* `"` gamba unita dall'applicazione multimediale SIP alla riunione.

```
{
"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**  
*Descrizione*: l'operazione da eseguire sull'elenco dei partecipanti  
*Valori consentiti*: silenziamento, riattivazione dell'audio  
*Obbligatorio: Sì*  
*Valore predefinito* - nessuno

**MeetingId**  
*Descrizione*: l'ID della riunione a cui appartengono i partecipanti  
*Valori consentiti*: un ID riunione valido. Anche la persona che disattiva o attiva l'audio deve appartenere alla riunione.  
*Obbligatorio: Sì*  
*Valore predefinito* - nessuno

**CallId**  
*Descrizione*: l'ID della riunione a cui appartengono i partecipanti  
*Valori consentiti*: un ID di chiamata valido.  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**ParticipantTag**  
*Descrizione*: il tag assegnato al partecipante.  
*Valori consentiti*: un tag valido.  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**AttendeeList**  
*Descrizione*: elenco dei partecipanti IDs da disattivare o riattivare  
*Valori consentiti*: un elenco di partecipanti validi IDs  
*Obbligatorio*: sì  
*Valore predefinito*: Nessuno, massimo 100

Dopo aver eseguito questa azione, Audio Service richiama sempre una AWS Lambda funzione con il tipo di evento `ACTION_SUCCESSFUL` o `ACTION_FAILED` invocation. Il codice di esempio seguente mostra un tipico `ACTION_SUCCESSFUL` evento di invocazione.

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

**Gestione degli errori**  
In caso di parametri di istruzione non validi o errori dell'API, le applicazioni multimediali SIP richiamano una AWS Lambda funzione con il messaggio di errore specifico dell'istruzione o dell'API non riuscita.


|  Errore  |  Messaggio  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  Il `ModifyChimeMeetingAttendees Operation` valore del parametro non è valido  |  Il `Operation` valore deve essere Mute o Unmute.  | 
|     |  Il valore del parametro Meeting ID non è valido.  |  L'ID riunione è vuoto.  | 
|     |  Il valore del parametro dell'elenco dei partecipanti non è valido.  |  L'elenco degli ID partecipanti è vuoto o supera il massimo di 100.  | 
|     |  Azione non valida sulla chiamata.  |  La chiamata non è interrotta.  | 
|     |  La chiamata non è collegata a Chime Meeting.  |  Il partecipante non è connesso a una riunione Chime.  | 
|     |  Uno o più partecipanti non fanno parte di questa riunione. Tutti i partecipanti devono prendere parte a questa riunione.  |  Il partecipante non è autorizzato a modificare i partecipanti alla riunione.  | 
|  `SystemException`  |  Errore di sistema durante l'esecuzione dell'azione.  |  Si è verificato un errore di sistema durante l'esecuzione di un'azione.  | 

Il codice di esempio seguente mostra un tipico evento di errore:

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

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

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

Metti in pausa una chiamata per un periodo di tempo specificato.

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

**CallId**  
*Descrizione*: `CallId` del partecipante all'`CallDetails`invocazione della funzione AWS Lambda   
*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`

**DurationInMilliseconds**  
*Descrizione*: durata della pausa, in millisecondi  
*Valori consentiti*: un numero intero >0  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

Vedi esempi di lavoro su GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifiche di chiamata](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-registrazione della domanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Riproduci un file audio in qualsiasi fase di una chiamata. L'audio può essere ripetuto un numero illimitato di volte. L'audio in corso può essere interrotto utilizzando le cifre DTMF impostate in. `PlaybackTerminators`

Attualmente, Amazon Chime SDK supporta solo la riproduzione di file audio dal bucket Amazon Simple Storage Service (Amazon 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. Puoi farlo utilizzando la console S3 o l'interfaccia a riga di comando (CLI).

Il seguente esempio di codice mostra una tipica policy del bucket.

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

------

Il seguente esempio di codice mostra un'azione tipica.

```
{
    "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**  
*Descrizione*: `CallId` del partecipante al`CallDetails`.  
*Valori consentiti*: un ID di chiamata valido.  
*Obbligatorio*: no, se `ParticipantTag` è presente.  
*Valore predefinito*: nessuno.

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

**PlaybackTerminator**  
*Descrizione*: interrompe l'audio in corso utilizzando l'input DTMF dell'utente  
*Valori consentiti*: una matrice dei seguenti valori: «0»,» 1»,» 2»,» 3»,» 4»,» 5»,» 6»,» 7»,» 8»,» 9»,» \$1»,» \$1»  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**Repeat**  
*Descrizione*: ripete l'audio il numero di volte specificato  
*Valori consentiti*: un numero intero maggiore di zero  
*Obbligatorio*: no  
*Valore predefinito*: 1

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

**AudioSource.BucketName**  
*Descrizione*: per i tipi di sorgenti S3, il bucket S3 deve appartenere allo stesso AWS account dell'applicazione SIP. Il bucket deve avere accesso al principale servizio Amazon Chime SDK Voice Connector, che è voiceconnector.chime.amazonaws.com.  
*Valori consentiti*: un bucket S3 valido per il quale Amazon Chime SDK ha accesso all'azione. `s3:GetObject`  
*Obbligatorio: sì.*  
*Valore predefinito*: Nessuno.

**AudioSource.key**  
*Descrizione*: per i tipi di sorgenti S3, il nome del file del bucket S3 specificato nell'attributo. `AudioSource.BucketName`  
*Valori consentiti*: un file audio valido.  
*Obbligatorio*: sì.  
*Valore predefinito*: Nessuno.

L'applicazione multimediale SIP tenta di riprodurre l'audio dall'URL di origine. È possibile utilizzare file PCM .wav non compressi non elaborati di dimensioni non superiori a 50 MB. L'SDK Amazon Chime consiglia 8 versioni mono. KHz 

Quando l'ultima istruzione in un dialplan è `PlayAudio` e il file termina la riproduzione, o se un utente interrompe la riproduzione premendo un tasto, l'applicazione richiama la AWS Lambda funzione con l'evento mostrato nell'esempio seguente.

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

Dopo che una cifra di terminazione interrompe l'audio, questo non verrà ripetuto.

**Gestione degli errori**  
Quando il file di convalida contiene errori o si verifica un errore durante l'esecuzione di un'azione, l'applicazione multimediale SIP richiama una AWS Lambda funzione con il codice di errore appropriato.


|  Errore  |  Messaggio  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  Il 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 l'URL. In alternativa, il file audio potrebbe non essere convalidato a causa del formato, della durata, delle dimensioni e così via.  | 
|  `SystemException`  |  Errore di sistema durante l'esecuzione dell'azione.  |  Si è verificato un altro errore di sistema durante l'esecuzione dell'azione.   | 
|  `InvalidActionParameter`  |  CallId o ParticipantTag il parametro per l'azione non è valido.  |  L'azione contiene un parametro non valido.  | 

Il seguente esempio di codice mostra un tipico errore di invocazione.

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

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-call-inoltro](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifiche di chiamata](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-registrazione della domanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-chiamata](https://github.com/aws-samples/amazon-chime-sma-update-call)

# 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\$1\$1  
*Obbligatorio*: no  
*Valore predefinito*: \$1

**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-chiama](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Quando un utente inserisce cifre che corrispondono al modello di espressione regolare specificato in questa azione, l'applicazione multimediale SIP richiama la funzione. AWS Lambda 

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

**CallId**  
*Descrizione: `CallId` del* partecipante all'invocazione della funzione `CallDetails` AWS Lambda   
*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 specificato `CallId`

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

**InBetweenDigitsDurationInMilliseconds**  
*Descrizione*: intervallo tra le cifre prima di verificare se l'input corrisponde al modello di espressione regolare  
*Valori consentiti*: durata in millisecondi  
*Obbligatorio: sì*  
*Valore predefinito* - nessuno

**FlushDigitsDurationInMilliseconds**  
*Descrizione*: intervallo dopo il quale le cifre DTMF ricevute vengono cancellate e inviate alla funzione. AWS Lambda Se l'applicazione multimediale SIP riceve una nuova cifra dopo la fine dell'intervallo, il timer si riavvia.  
*Valori consentiti:* `InBetweenDigitsDurationInMilliseconds`  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

L'applicazione multimediale SIP elimina le cifre DTMF per tutta la durata di una chiamata fino a quando non riceve una nuova azione. `ReceiveDigits` L'`FlushDigitsDurationInMilliseconds`intervallo inizia quando l'applicazione multimediale SIP riceve la prima cifra DTMF. Se l'utente inserisce le cifre corrette prima della scadenza dell'intervallo, l'applicazione multimediale SIP richiama la funzione descritta in. AWS Lambda [Ricezione dell'input del chiamante per il servizio audio PSTN di Amazon Chime SDK](case-4.md)

Se l'input dell'utente non corrisponde al modello di espressione regolare, l'applicazione multimediale SIP ripete il messaggio del file audio di «errore» finché l'applicazione non esaurisce il conteggio delle ripetizioni o l'utente non immette cifre valide. 

 GitHubVedi esempi di lavoro su:
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifiche di chiamata](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-registrazione della domanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-chiamata](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Consente all'applicazione multimediale SIP di registrare contenuti multimediali da un determinato ID di chiamata. Ad esempio, un'applicazione di posta vocale e gli annunci dei partecipanti alla riunione. L'applicazione registra fino al raggiungimento della durata impostata, o quando un utente preme una delle opzioni o quando l'applicazione rileva il `RecordingTerminators` silenzio. In questi casi, l'azione indica all'applicazione di inserire il file multimediale risultante nel bucket S3 specificato. Il bucket S3 deve appartenere allo stesso AWS account dell'applicazione multimediale SIP. Inoltre, l'azione deve concedere `s3:PutObject` l'`s3:PutObjectAcl`autorizzazione al responsabile del servizio Amazon Chime SDK Voice Connector, al responsabile del servizio [Amazon Chime SDK](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) Voice Connector,. `voiceconnector.chime.amazonaws.com` 

**Nota**  
Le registrazioni effettuate utilizzando questa funzionalità possono essere soggette a leggi o regolamenti relativi alla registrazione delle comunicazioni elettroniche. È responsabilità dell'utente e degli utenti finali rispettare tutte le leggi applicabili in materia di registrazione, inclusa la corretta notifica a tutti i partecipanti a una sessione o comunicazione registrata che la sessione o la comunicazione è in corso di registrazione e l'ottenimento del loro consenso.

L'esempio seguente fornisce l'`s3:PutObjectAcl`autorizzazione `s3:PutObject` e al responsabile del servizio 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/*"
        }
    ]
}
```

------

L'esempio seguente interrompe la registrazione quando il chiamante preme il tasto cancelletto (\$1), o trascorrono 10 secondi senza alcuna attività, oppure il chiamante rimane in silenzio per 3 secondi e scrive il file multimediale risultante nella posizione definita dal parametro. `RecordingDestination`

**Nota**  
Questo esempio utilizza il parametro. `CallId` È possibile utilizzare invece il `ParticipantTag` parametro, ma non entrambi.

```
{
    "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**  
*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 specificato `CallId`

**RecordingDestination.Type**  
*Descrizione*: tipo di destinazione. Solo S3.  
*Valori consentiti*: S3  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**RecordingDestination.BucketName**  
*Descrizione*: un nome di bucket S3 valido. Il bucket deve avere accesso al principale servizio [Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html),. `voiceconnector.chime.amazonaws.com`  
*Valori consentiti*: un bucket S3 valido per il quale Amazon Chime SDK ha accesso alle azioni e. `s3:PutObject` `s3:PutObjectAcl`  
*Obbligatorio: sì*  
*Valore predefinito* - nessuno

****RecordingDestination.Prefix****  
*Descrizione*: prefisso S3 del file di registrazione  
*Valori consentiti*: un nome di prefisso valido contenente fino a 979 caratteri sicuri. Per ulteriori informazioni sui caratteri sicuri, consulta Caratteri [sicuri](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) nella Guida per l'utente di Amazon Simple Storage Service.  
*Obbligatorio*: no  
*Impostazione predefinita*: nessuna. Se non specificato, le registrazioni vengono salvate nella radice del bucket S3.

**DurationInSeconds**  
*Descrizione*: la durata della registrazione, in secondi  
*Valori consentiti*: >0  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

****SilenceDurationInSeconds****  
*Descrizione*: la durata del silenzio in secondi, dopo la quale la registrazione si interrompe. Se non specificato, il rilevamento del silenzio è disabilitato.  
*Valori consentiti*: [1; 1000]  
*Obbligatorio*: no  
*Valore predefinito*: 200

****SilenceThreshold****  
*Descrizione*: livello di rumore considerato «silenzio». Se non si specifica`SilenceDurationInSeconds`, questo parametro viene ignorato.  

**Valori di riferimento (livelli di rumore e soglie per trattare il rumore come silenzio):**
+ 1-30 dB o inferiore, ad esempio in una stanza silenziosa
+ 100—40-50 dB, ad esempio un sussurro o un ufficio silenzioso
+ 200—60 dB, ad esempio in un ufficio affollato
+ 1000-75 dB, ad esempio una persona rumorosa o musica
*Valori consentiti*: [1; 1000]  
*Obbligatorio*: no  
*Valore predefinito*: 200

**RecordingTerminators**  
*Descrizione*: elenca tutti i terminatori di registrazione disponibili.  
*Valori consentiti*: una matrice di singole cifre e simboli tratti da [123456789\$10\$1]  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

## Gestione degli eventi ACTION\$1SUCCESSFUL
<a name="handle-action-successful"></a>

Al termine della registrazione, l'applicazione multimediale SIP Amazon Chime SDK chiama la AWS Lambda funzione e le trasmette l'evento ACTION\$1SUCCESSFUL, insieme ai risultati della chiamata.

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

L'`ACTION_SUCCESSFUL`evento contiene i seguenti campi: `ActionData`

**Type**  
*Descrizione*: il tipo di azione,`RecordAudio`.

**Parameters**  
*Descrizione*: i parametri dell'azione.

**RecordingDestination.Type**  
*Descrizione*: tipo di destinazione. Solo S3. 

**RecordingDestination.BucketName**  
*Descrizione*: il bucket S3 che contiene il file di registrazione. 

**RecordingDestination.Key**  
*Descrizione*: la chiave S3 del file di registrazione.

**RecordingTerminatorUsed**  
*Descrizione*: il terminatore utilizzato per interrompere la registrazione, uno dei terminatori passati nel parametro. `RecordingTerminators` Se la registrazione si interrompe dopo aver raggiunto la durata massima (`DurationInSeconds`) o a causa del silenzio (`SilenceDurationInSeconds`), questa coppia chiave-valore non è inclusa nell'output.

**Gestione degli errori**  
In caso di errori di convalida, l'applicazione multimediale SIP richiama la AWS Lambda funzione con il messaggio di errore appropriato. La tabella seguente elenca i possibili messaggi di errore.


|  Errore  |  Messaggio  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `CallId`o `ParticipantTag` il parametro per l'azione non è valido. `DurationInSeconds`il valore del parametro non è valido. `SilenceDurationInSeconds`il valore del parametro non è valido. `SilenceThreshold`il valore del parametro non è valido. `RecordingDestination`il valore del parametro non è valido. Si è verificato un errore durante il caricamento della registrazione nel bucket S3.  |  Qualsiasi parametro non è valido.  | 
|  `SystemException`  |  Errore di sistema durante l'esecuzione di un'azione.  |  Si è verificato un altro tipo di errore di sistema durante l'esecuzione di un'azione.  | 

## Gestione degli ACTION\$1FAILED eventi
<a name="handle-action-failed"></a>

Quando l'azione non riesce a registrare i file multimediali su una sessione di chiamata, l'applicazione multimediale SIP richiama una AWS Lambda funzione con il `ACTION_FAILED` tipo di evento. Guarda l'esempio seguente.

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

Guarda un esempio funzionante su: 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>

Invia fino a 50 cifre a doppia frequenza (DTMF) in qualsiasi fase della chiamata. I segnali possono includere quanto segue:
+ Numeri da 0 a 9
+ Caratteri speciali stella (\$1) e sterlina (\$1)
+ Segnali di controllo di rete A, B, C, D
+ Il carattere virgola (,). Questo segnale aggiunge un ritardo di 0,5 secondi tra il segnale precedente e quello successivo.

**Topics**
+ [Utilizzo di SendDigits action](#send-digits-action)
+ [Manipolazione ACTION\$1SUCCESSFUL events](#send-digit-success)
+ [Gestione ACTION\$1FAILED events](#send-digit-fail)
+ [Flusso di chiamate](#send-digits-call-flow)

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

L'esempio seguente mostra un'`SendDigits`azione tipica:

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

**CallId**  
*Descrizione* — Il `CallId` partecipante all'`CallDetails`invocazione della AWS Lambda funzione  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**Digits**  
*Descrizione*: le cifre da inviare nel segmento di chiamata che corrisponde al `CallId`  
*Valori consentiti*: 0-9, \$1, \$1, A, B, C, D, virgola (,)  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**ToneDurationInMilliseconds**  
*Descrizione*: il tempo consentito, in millisecondi, per trasmettere ogni cifra.  
*Valori consentiti*: qualsiasi numero intero compreso tra 50 e 24000  
*Obbligatorio*: no  
*Valore predefinito*: 250

## Manipolazione ACTION\$1SUCCESSFUL events
<a name="send-digit-success"></a>

L'esempio seguente mostra un `ACTION_SUCCESSFUL` evento tipico dell'`SendDigits`azione.

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

## Gestione ACTION\$1FAILED events
<a name="send-digit-fail"></a>

L'esempio seguente mostra un `ACTION_FAILED` evento tipico dell'`SendDigits`azione.

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

## Flusso di chiamate
<a name="send-digits-call-flow"></a>

Il diagramma seguente mostra il flusso del programma per l'invio di cifre da un chiamante a un chiamante.

![\[Diagramma che mostra il flusso del programma dell'azione. SendDigits\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/send-digits-1.png)


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

È possibile riprodurre la voce in qualsiasi fase di chiamata inserendo un testo. È possibile utilizzare testo semplice o Speech Synthesis Markup Language (SSML). SSML offre un maggiore controllo sul modo in cui l'SDK Amazon Chime genera il parlato aggiungendo pause, enfatizzando determinate parole o modificando lo stile di pronuncia.

L'SDK Amazon Chime utilizza il servizio Amazon Polly per la conversione. text-to-speech Amazon Polly ti consente di scegliere tra il motore standard o neurale per una migliore qualità del parlato. Amazon Polly supporta più di 20 lingue e 60 voci per personalizzare l'esperienza utente dell'applicazione. L'SDK Amazon Chime fornisce funzionalità vocali gratuitamente, ma l'utilizzo di Amazon Polly è a pagamento. Consulta la [pagina dei prezzi](https://aws.amazon.com/polly/pricing/) di Amazon Polly o la dashboard di fatturazione per informazioni sui prezzi.

**Importante**  
L'uso di Amazon Polly è soggetto ai Termini di [servizio AWS, inclusi i termini](https://aws.amazon.com/service-terms/) specifici dei servizi AWS Machine Learning e Artificial Intelligence.

**Topics**
+ [Utilizzo di Speak action](#speak-action)
+ [Manipolazione ACTION\$1SUCCESSFUL events](#speak-action-success)
+ [Manipolazione ACTION\$1FAILED events](#speak-action-fail)
+ [Flussi del programma](#speak-flow)

## Utilizzo di Speak action
<a name="speak-action"></a>

L'esempio seguente mostra un uso tipico dell'`Speak`azione.

```
{
    "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**  
*Descrizione* — Il `CallId` partecipante alla chiamata `CallDetails` della funzione Lambda  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**Text**  
*Descrizione*: specifica il testo di input da sintetizzare in voce. Se si specifica `ssml` come `TextType`, seguire il formato SSML per il testo di input.  
*Valori consentiti*: stringa  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**Engine**  
*Descrizione*: specifica il motore, standard o neurale, da utilizzare per l'elaborazione del testo per la sintesi vocale.  
*Valori consentiti: standard \$1 neurali*  
*Obbligatorio*: no  
*Valore predefinito*: standard

**LanguageCode**  
*Descrizione*: specifica il codice della lingua. Necessario solo se si utilizza una voce bilingue. Se si utilizza una voce bilingue senza un codice linguistico, viene utilizzata la lingua predefinita della voce bilingue.  
*Valori consentiti*: [codici di lingua Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**TextType**  
*Descrizione*: specifica il tipo di testo di input, testo semplice o SSML. Se non viene specificato un tipo di input, come impostazione predefinita viene utilizzato il testo normale. *Per ulteriori informazioni su SSML, consulta [Generating Speech from SSML Documents](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) nella Amazon Polly Developer Guide.*  
*Valori consentiti*: ssml \$1 text  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**VoiceId**  
*Descrizione*: specifica l'ID della voce che desideri utilizzare.  
*Valori consentiti* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obbligatorio*: no  
*Valore predefinito*: Joanna

## Manipolazione ACTION\$1SUCCESSFUL events
<a name="speak-action-success"></a>

L'esempio seguente mostra un `ACTION_SUCCESSFUL` evento tipico di un'azione che sintetizza il testo «Hello World» in voce, in inglese, utilizzando la voce di Amazon Polly. `Joanna`

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

## Manipolazione ACTION\$1FAILED events
<a name="speak-action-fail"></a>

L'esempio seguente mostra un `ACTION_FAILED` evento tipico per lo stesso evento utilizzato nell'esempio precedente.

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

**Gestione degli errori**  
Questa tabella elenca e descrive i messaggi di errore generati dall'`Speak`azione.


| Errore | Messaggio | Motivo | 
| --- | --- | --- | 
| `AccessDenied` | Il ruolo `AWSServiceRoleForAmazonChimeVoiceConnector` collegato al servizio non è configurato correttamente. | Il ruolo collegato al servizio utilizzato per effettuare richieste ad Amazon Polly non esiste o non dispone delle autorizzazioni. Per risolvere il problema, consulta i passaggi indicati nella sezione [Utilizzo del ruolo collegato al servizio Amazon Chime SDK Voice Connector](speak-and-get-digits.md#speak-digits-policy) | 
| `InvalidActionParameter` |   | Si è verificato un errore durante la convalida dei parametri dell'azione. Per ulteriori informazioni sui parametri, consulta l'[SynthesizeSpeech API](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech) nella *Amazon Polly Developer Guide*. | 
| ActionExecutionThrottled | Amazon Polly sta limitando la richiesta di sintesi vocale. | La richiesta ad Amazon Polly restituisce un'eccezione di limitazione. [Per ulteriori informazioni sui limiti di limitazione di Amazon Polly, https://docs.aws.amazon.com/polly/ latest/dg/limits consulta .html \$1limits -throttle.](https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle) | 
| `MissingRequiredActionParameter` | `Text`è un parametro obbligatorio. | Questi parametri di azione devono avere un `Text` valore | 
| `MissingRequiredActionParameter` | `Text`è limitato a 1.000 caratteri | Il testo ha superato il limite di caratteri. | 
| `SystemException` | Errore di sistema durante l'esecuzione dell'azione. | Si è verificato un errore di sistema durante l'esecuzione dell'azione. | 

## Flussi del programma
<a name="speak-flow"></a>

Il diagramma seguente mostra il flusso del programma che abilita l'`Speak`azione per un chiamante. In questo esempio, il chiamante sente il testo che 

![\[Diagramma che mostra il flusso del programma per abilitare l'Speakazione per un chiamante.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/Speak1.png)


**Nel diagramma**  
Utilizzando un softphone, un chiamante inserisce un numero registrato in un'applicazione multimediale SIP. L'applicazione utilizza il `INVITE` metodo SIP e invia una risposta al chiamante. `Trying (100)` Ciò indica che il server next-hop ha ricevuto la richiesta di chiamata. L'applicazione SIP utilizza quindi `INVITE` per contattare l'endpoint. Una volta stabilita la connessione, le applicazioni inviano `Ringing (180)` una risposta al chiamante e viene avviato un avviso. 

L'applicazione multimediale SIP invia quindi un `NEW_INBOUND_CALL` evento alla funzione Lambda, che risponde con `Speak` un'azione che include l'ID del chiamante e il testo che si desidera convertire in voce. L'applicazione SIP invia quindi una `200 (OK)` risposta per indicare che la chiamata ha avuto risposta. Il protocollo abilita anche i media. 

Se l'`Speak`azione ha esito positivo e converte il testo in voce, restituisce un `ACTION_SUCCESSFUL` evento all'applicazione multimediale SIP, che restituisce il set di azioni successivo. Se l'azione fallisce, l'applicazione multimediale SIP invia un `ACTION_FAILED` evento alla funzione Lambda, che risponde con una serie di azioni. `Hangup` L'applicazione riaggancia il chiamante e restituisce un `HANGUP` evento alla funzione Lambda, che non esegue ulteriori azioni. 



Il diagramma seguente mostra il flusso del programma che abilita l'`Speak`azione per un chiamante.

![\[Diagramma che mostra il flusso del programma per abilitare l'Speakazione per un chiamante. È possibile eseguire questa operazione su qualsiasi chiamata interconnessa.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/Speak2.png)


**Nel diagramma**  
Un chiamante inserisce un numero registrato in un'applicazione multimediale SIP e l'applicazione risponde come descritto nel diagramma precedente. Quando la funzione Lambda riceve l'`NEW_INBOUND_CALL`evento, restituisce l'[CallAndBridge](call-and-bridge.md)azione all'applicazione SIP. L'applicazione utilizza quindi il `INVITE` metodo SIP per inviare le `Ringing (180)` risposte `Trying (100)` e al chiamante. 

Se il chiamante risponde, l'applicazione multimediale SIP riceve una `200 (OK)` risposta e invia la stessa risposta al chiamante. Ciò stabilisce i media e l'applicazione SIP invia un `ACTION_SUCCESSFUL` evento per l'[CallAndBridge](call-and-bridge.md)azione alla funzione Lambda. La funzione restituisce quindi l'azione e i dati Speak all'applicazione SIP, che converte 

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

Riproduci la voce inserendo del testo e raccogli le cifre a doppia frequenza (DTMF) dall'utente. Il testo può essere testo semplice o testo migliorato con Speech Synthesis Markup Language (SSML) per fornire un maggiore controllo sul modo in cui l'SDK Amazon Chime genera il parlato aggiungendo pause, enfatizzando determinate parole o cambiando lo stile di pronuncia, tra le altre funzionalità SSML supportate. Se si verifica un errore, ad esempio se un utente non inserisce il numero corretto di cifre DTMF, l'azione riproduce il discorso di «errore» e quindi riproduce il discorso principale finché l'applicazione multimediale SIP non esaurisce il numero di tentativi definito nel `Repeat` parametro.

L'SDK Amazon Chime utilizza Amazon Polly, un servizio cloud che converte il testo in voce realistica, Amazon Polly fornisce sia un motore standard che un motore neurale per una migliore qualità vocale, più di 20 lingue supportate e 60 voci. Amazon Polly fornisce funzionalità vocali gratuitamente, ma l'utilizzo di Amazon Polly è a pagamento. Per informazioni sui prezzi, consulta la [pagina dei prezzi](https://aws.amazon.com/polly/pricing/) di Amazon Polly o la dashboard di fatturazione.

**Importante**  
L'uso di Amazon Polly è soggetto ai Termini di [AWS servizio, inclusi i termini](https://aws.amazon.com/service-terms/) specifici dei Servizi di AWS Machine Learning e Intelligenza Artificiale.

**Topics**
+ [Utilizzo di SpeakAndGetDigits action](#speak-digits-action)
+ [Manipolazione ACTION\$1SUCCESSFUL events](#speak-digits-success)
+ [Manipolazione ACTION\$1FAILED events](#speak-digits-fail)
+ [Utilizzo del ruolo collegato al servizio Amazon Chime SDK Voice Connector](#speak-digits-policy)

## Utilizzo di SpeakAndGetDigits action
<a name="speak-digits-action"></a>

L'esempio seguente mostra un uso tipico dell'`SpeakAndGetDigits`azione:

```
{
    "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**  
*Descrizione*: il `CallId` partecipante alla chiamata CallDetails della funzione Lambda.  
*Valori consentiti*: un valore valido `callID`  
*Obbligatorio*: Sì  
*Valore predefinito*: No

**InputDigitsRegex**  
*Descrizione*: un modello di espressione regolare che aiuta a garantire che gli utenti inseriscano le cifre e le lettere corrette.  
*Valori consentiti*: un modello di espressione regolare valido  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**SpeechParameters.Engine**  
*Descrizione*: specifica il motore, standard o neurale, da utilizzare durante l'elaborazione del testo per la sintesi vocale.  
*Valori consentiti* — \$1 `standard` `neural`  
*Obbligatorio*: no  
*Valore predefinito*: Standard

**SpeechParameters.LanguageCode**  
*Descrizione*: specifica il codice della lingua. Questa operazione è necessaria solo se si utilizza una voce bilingue. Se viene utilizzata una voce bilingue e non viene specificato alcun codice linguistico, viene utilizzata la lingua predefinita della voce bilingue.  
*Valori consentiti*: [codici di lingua Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obbligatorio*: no  
*Valore predefinito* - nessuno

**SpeechParameters.Text**  
*Descrizione*: specifica il testo di input. Se si specifica `ssml` come`SpeechParameters.TextType`, è necessario seguire il formato SSML per il testo di input. *Per ulteriori informazioni su SSML, consulta [Generating Speech from SSML Documents](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) nella Amazon Polly Developer Guide.*  
*Valori consentiti: stringa*  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**SpeechParameters.TextType**  
*Descrizione*: specifica il formato di testo per`SpeechParameters.Text`. Se non specificato, `text` viene utilizzato per impostazione predefinita. *Per ulteriori informazioni su SSML, consulta [Generating Speech from SSML Documents](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) nella Amazon Polly Developer Guide.*  
*Valori consentiti — \$1* `ssml` `text`  
*Obbligatorio*: no  
*Valore predefinito*: `text`

**SpeechParameters.VoiceId**  
*Descrizione*: l'ID della voce di Amazon Polly utilizzata per la pronuncia del testo. `SpeechParameters.Text`  
*Valori consentiti* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obbligatorio*: no  
*Valore predefinito*: Joanna

**FailureSpeechParameters.Engine**  
*Descrizione*: specifica il motore, standard o neurale, da utilizzare per l'elaborazione del messaggio di errore utilizzato quando il cliente immette una risposta non valida per la sintesi vocale.  
*Valori consentiti* — \$1 `standard` `neural`  
*Obbligatorio*: no  
*Valore predefinito*: il `SpeechParameters.Engine` valore

**FailureSpeechParameters.LanguageCode**  
*Descrizione*: specifica il codice della lingua utilizzato quando il cliente inserisce una risposta non valida. Necessario solo quando si utilizza una voce bilingue. Se si utilizza la voce bilingue senza specificare un codice linguistico, viene utilizzata la lingua predefinita della voce bilingue.  
*Valori consentiti*: [codici di lingua Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obbligatorio*: no  
*Valore predefinito*: il `SpeechParameters.LanguageCode` valore.

**FailureSpeechParameters.Text**  
*Descrizione*: specifica il testo di input pronunciato quando il cliente inserisce una risposta non valida. Se si specifica `ssml` come`FailureSpeechParameters.TextType`, è necessario seguire il formato SSML per il testo di input.  
*Valori consentiti*: stringa  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

**FailureSpeechParameters.TextType**  
*Descrizione*: specifica se il testo di input specificato in `FailureSpeechParameters.Text` è testo semplice o SSML. Il valore di default è testo normale. Per ulteriori informazioni, consulta [Generating Speech from SSML Documents](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) nella *Amazon Polly Developer Guide*.  
*Valori consentiti* — \$1 `ssml` `text`  
*Obbligatorio*: no  
*Valore predefinito*: il `SpeechParameters.Text` valore

**FailureSpeechParameters.VoiceId**  
*Descrizione*: l'ID della voce usata per pronunciare la stringa`FailureSpeechParameters.Text`.  
*Valori consentiti* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obbligatorio*: Sì  
*Valore predefinito*: il `SpeechParameters.VoiceId` valore

**MinNumberOfDigits**  
*Descrizione*: il numero minimo di cifre da acquisire prima del timeout o della riproduzione del messaggio «chiamata non riuscita».  
*Valori consentiti*: maggiori o uguali a zero  
*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*: maggiori di `MinNumberOfDigits`  
*Obbligatorio*: no  
*Valore predefinito*: 128

**TerminatorDigits**  
*Descrizione*: cifra utilizzata per terminare l'immissione se l'utente immette meno di MaxNumberOfDigits  
*Valori consentiti*: uno qualsiasi tra: 0 1 2 3 4 5 6 7 8 9 \$1 o \$1  
*Obbligatorio*: no  
*Valore predefinito*: \$1

**InBetweenDigitsDurationInMilliseconds**  
*Descrizione*: il tempo di attesa in millisecondi tra gli input numerici prima di riprodurre il discorso di errore.  
*Valori consentiti*: maggiori di zero  
*Obbligatorio*: no  
*Valore predefinito*: se non specificato, il valore predefinito è il valore `RepeatDurationInMilliseconds`

**Repeat**  
*Descrizione*: numero totale di tentativi di acquisizione di cifre. Se si omette questo parametro, l'impostazione predefinita è un tentativo di raccogliere cifre.  
*Valori consentiti*: maggiori di zero  
*Obbligatorio*: no  
*Valore predefinito*: 1

**RepeatDurationInMilliseconds**  
*Descrizione*: timeout in millisecondi per ogni tentativo di ottenere cifre.  
*Valori consentiti*: maggiori di zero  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

## Manipolazione ACTION\$1SUCCESSFUL events
<a name="speak-digits-success"></a>

L'esempio seguente mostra un `ACTION_SUCCESSFUL` evento tipico.

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

## Manipolazione ACTION\$1FAILED events
<a name="speak-digits-fail"></a>

L'esempio seguente mostra un `ACTION_FAILED` evento tipico.

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

**Gestione degli errori**  
Questa tabella elenca e descrive i messaggi di errore generati dall'`Speak`azione.


| Errore | Messaggio | Motivo | 
| --- | --- | --- | 
| `AccessDenied` | Il `AWSServiceRoleForAmazonChimeVoiceConnector` ruolo non è configurato correttamente. | Il ruolo utilizzato per effettuare richieste ad Amazon Polly non esiste o non dispone delle autorizzazioni. Per risolvere il problema, consulta i passaggi indicati nella sezione [Utilizzo del ruolo collegato al servizio Amazon Chime SDK Voice Connector](#speak-digits-policy) | 
| `InvalidActionParameter` |   | Si è verificato un errore durante la convalida dei parametri dell'azione. Per esaminare i parametri disponibili per questa azione e le relative opzioni, consulta [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html)la Amazon Polly Developer Guide. | 
| `MissingRequiredActionParameter` | `Text`è un parametro obbligatorio. | I parametri di azione devono avere un `Text` valore | 
| `MissingRequiredActionParameter` | `Text`è limitato a 1.000 caratteri | Il testo ha superato il limite di caratteri. | 
| `SystemException` | Errore di sistema durante l'esecuzione dell'azione. | Si è verificato un errore di sistema durante l'esecuzione dell'azione. | 

## Utilizzo del ruolo collegato al servizio Amazon Chime SDK Voice Connector
<a name="speak-digits-policy"></a>

Non è necessario creare manualmente un ruolo collegato al servizio per le azioni o. `Speak` `SpeakAndGetDigits` Quando crei o aggiorni un'applicazione multimediale SIP nella console Amazon Chime SDK, o nell'API, AWS Command Line Interface l'SDK Amazon Chime crea AWS il ruolo collegato al servizio per te.

*Per ulteriori informazioni, consulta [Using the Amazon Chime service-linked role nella Amazon Chime](https://docs.aws.amazon.com/chime/latest/ag/using-service-linked-roles-stream.html) SDK Administrator Guide.*

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

L'`StartBotConversation`azione stabilisce una conversazione vocale tra un utente finale e il tuo bot Amazon Lex v2. L'utente fornisce le informazioni richieste al bot. Il bot restituisce quindi le informazioni alla funzione Audio Lambda della rete telefonica pubblica commutata (PSTN) e la funzione esegue le attività richieste.

Ad esempio, il bot può riprodurre un messaggio di benvenuto opzionale all'inizio di una conversazione per descrivere brevemente l'attività che la funzione audio Lambda PSTN può eseguire. La conversazione va avanti e indietro tra l'utente e il bot finché il bot non raccoglie le informazioni richieste. Al termine della conversazione, l'SDK Amazon Chime richiama la funzione audio Lambda PSTN con un evento di successo dell'azione, che contiene le informazioni raccolte dal bot. La funzione Lambda audio PSTN elabora le informazioni ed esegue l'operazione richiesta.

Il servizio audio offre interazioni conversazionali realistiche con gli utenti. Ad esempio, gli utenti possono interrompere il bot e rispondere a una domanda prima del termine del prompt audio. Inoltre, gli utenti possono utilizzare qualsiasi combinazione di cifre vocali e DTMF per fornire informazioni. Il bot attende che l'utente fornisca un input prima di rispondere. È possibile configurare per quanto tempo il bot attende che l'utente finisca di parlare prima di interpretare qualsiasi input vocale. L'utente può anche indicare al bot di attendere se ha bisogno di tempo per recuperare informazioni aggiuntive durante una chiamata, come i numeri delle carte di credito.

L'`StartBotConversation`azione utilizza Amazon Lex e Amazon Polly per tutta la durata della conversazione con il bot. Si applicano i costi standard di Amazon Lex e Amazon Polly. Per ulteriori informazioni sui prezzi, consulta le pagine dei [prezzi delle conversazioni in streaming di Amazon Lex](https://aws.amazon.com/lex/pricing/) e dei [prezzi di Amazon Polly](https://aws.amazon.com/polly/pricing/).

**Nota**  
Non puoi eseguire questa azione su una chiamata interrotta o su una chiamata che ha partecipato a una riunione Amazon Chime SDK.

**Importante**  
L'uso di Amazon Lex e Amazon Polly è soggetto ai Termini di [AWS servizio, inclusi i termini](https://aws.amazon.com/service-terms/) specifici dei Servizi di AWS Machine Learning e Artificial Intelligence.

**Topics**
+ [StartBotConversation sintassi](#startbot-syntax)
+ [Utilizzo dell'StartBotConversationazione](#using-startbot)
+ [Gestione degli ACTION\$1SUCCESSFUL eventi](#bot-action-success)
+ [Gestione degli eventi ACTION\$1FAILED](#bot-action-fail)
+ [Concessione delle autorizzazioni per l'utilizzo di un bot](#bot-permissions)
+ [Configurazione dei timeout vocali e DTMF](#bot-timeouts)
+ [Utilizzo degli ingressi DTMF durante una conversazione](#bot-dtmf)
+ [Quote di fatturazione e servizio](#bot-billing)

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

L'esempio seguente mostra la `StartBotConversation` sintassi tipica.

```
{
  "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**  
*Descrizione*: il `CallID` partecipante all'`CallDetails`invocazione della AWS Lambda funzione. L'`StartBotConversation`azione utilizza questo ID come quello del bot. `SessionId` Tutte le conversazioni con i bot che hanno luogo durante una chiamata condividono la stessa sessione di conversazione. Puoi modificare lo stato della sessione tra il tuo utente e il tuo bot utilizzando l'PutSessionAPI [Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html). Per ulteriori informazioni, consulta [Gestire le sessioni con l'API Amazon Lex v2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) nella *Amazon Lex Developer Guide*.  
*Valori consentiti*: un ID di chiamata valido.  
*Obbligatorio*: no, se `ParticipantTag` è presente.  
*Valore predefinito*: nessuno.

**ParticipantTag**  
*Descrizione*: quella `ParticipantTag` di uno dei partecipanti connessi al`CallDetails`.  
*Valori consentiti*:`LEG-A`.  
*Obbligatorio*: no, se `CallId` è presente.  
*Valore predefinito: `ParticipantTag` del valore* invocato`callLeg`. Ignorato se si specifica. `CallDetails`

**BotAliasArn**  
*Descrizione*: l'alias ARN del bot Lex. È necessario creare il bot nella stessa regione AWS dell'applicazione audio PSTN. Un alias bot Amazon Lex valido ha questo formato:`arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId`, *`region`* dov'è la regione AWS in cui risiede il bot. `awsAccountId`è l'ID dell'account AWS in cui viene creato il bot Amazon Lex. Il `botId` valore è l'identificatore assegnato al bot al momento della sua creazione. Puoi trovare l'ID del bot nella console Amazon Lex nella pagina dei **dettagli del bot**. `botAliasId`È l'identificatore assegnato all'alias del bot al momento della creazione. Puoi trovare l'ID alias del bot nella console Amazon Lex nella pagina **Alias**.   
*Valori consentiti*: un ARN del bot valido.  
*Obbligatorio*: sì.  
*Valore predefinito*: Nessuno.

**LocaleId**  
*Descrizione*: l'identificatore del locale che hai usato per il bot. Per un elenco di impostazioni locali e codici di lingua, consulta [Lingue e impostazioni locali supportate da Amazon](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) Lex.  
*Valori consentiti*: [lingue e impostazioni locali supportate da Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Obbligatorio*: no.  
*Valore predefinito*:`en_US`.

**Configuration**  
*Descrizione*: la configurazione della conversazione, inclusi lo stato della sessione e i messaggi di benvenuto. La dimensione totale della rappresentazione in stringa JSON dell'`Configuration`oggetto è limitata a 10 KB.  
*Valori consentiti*: `Configuration` oggetto.  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.SessionState**  
*Descrizione*: lo stato della sessione dell'utente con Amazon Lex v2.  
*Valori consentiti*: `SessionState` oggetto.  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.SessionState.SessionAttributes**  
*Descrizione*: una mappa delle key/value coppie che rappresentano informazioni di contesto specifiche della sessione. Questa mappa contiene le informazioni sull'applicazione trasferite tra Amazon Lex v2 e un'applicazione client.  
*Valori consentiti*: mappa da stringa a stringa.  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.SessionState.DialogAction.Type**  
*Descrizione*: l'azione successiva che il bot compie nelle sue interazioni con l'utente. Valori possibili:  
+ La *delega di* Amazon Lex v2 determina l'azione successiva.
+ *ElicitIntent*L'azione successiva suscita un'intenzione da parte dell'utente.
*Valori consentiti* — \$1`Delegate`. `ElicitIntent`  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.WelcomeMessages**  
*Descrizione*: un elenco di messaggi da inviare all'utente all'inizio della conversazione. Se si imposta il `welcomeMessage` campo, è necessario impostare il `DialogAction.Type` valore su`ElicitIntent`.  
*Valori consentiti*: oggetto del messaggio  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.WelcomeMessages.Content**  
*Descrizione*: il testo del messaggio di benvenuto.  
*Valori consentiti*: stringa.  
*Obbligatorio*: no.  
*Valore predefinito*: Nessuno.

**Configuration.WelcomeMessages.ContentType**  
*Descrizione*: indica il tipo di messaggio di benvenuto.  
*Valori consentiti* — ` PlainText` \$1 `SSML`  
+ *PlainText*— Il messaggio contiene testo UTF-8 semplice. 
+ *SSML* — Il messaggio contiene testo formattato per l'output vocale.
*Obbligatorio*: Sì.  
*Valore predefinito*: Nessuno.

## Utilizzo dell'StartBotConversationazione
<a name="using-startbot"></a>

L'esempio seguente mostra un'`StartBotConversation`azione tipica.

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

## Gestione degli ACTION\$1SUCCESSFUL eventi
<a name="bot-action-success"></a>

L'esempio seguente mostra un `ACTION_SUCCESSFUL` evento tipico dell'`StartBotConversation`azione.

```
{
    "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**  
Il risultato della conversazione tra l'utente e il bot.

**SessionId**  
L'identificatore della sessione di conversazione del bot. Quando un utente inizia una conversazione con il tuo bot, Amazon Lex crea una sessione. Una sessione racchiude le informazioni scambiate tra l'utente e il bot. L'`StartBotConversation`azione utilizza l'ID della chiamata come quello del bot. `SessionId` Puoi modificare lo stato della sessione tra il tuo utente e il tuo bot utilizzando l'[https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html)API Lex. Per ulteriori informazioni, consulta [Gestire le sessioni con l'API Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) nella *Amazon Lex Developer Guide*.

**SessionState**  
Lo stato della sessione Amazon Lex v2 dell'utente. 

**SessionState.SessionAttributes**  
Mappa di key/value coppie che rappresentano informazioni di contesto specifiche della sessione. La mappa contiene le informazioni sulle conversazioni dei bot trasmesse tra la funzione Lambda collegata al bot e la funzione Lambda audio PSTN.

**Interpretazioni**  
Un elenco di intenti derivati da Amazon Lex che possono soddisfare l'affermazione del cliente. L'intento con il `NluConfidence` punteggio più alto diventa l'intento per. `SessionState` 

**Interpretazioni. NluConfidence.Punteggio**  
Un punteggio che indica quanto Amazon Lex v2 sia sicuro che un intento soddisfi l'intento di un utente. Intervalli compresi tra 0,00 e 1,00. I punteggi più alti indicano una maggiore confidenza. 

**Intent**  
L'azione che l'utente desidera eseguire.

**Intent.Name**  
Il nome dell'intento.

**Intent.Slots**  
Una mappa di tutti gli slot relativi all'intento. Il nome dello slot corrisponde al valore dello slot. Se uno slot non è stato riempito, il valore è nullo.

**Intent.Slots.Value**  
Il valore dello slot.

**Intent.Slots.Values**  
Un elenco di uno o più valori forniti dall'utente per lo slot.

**Intent.Slots.Value.OriginalValue**  
Il testo della risposta dell'utente, inserito per lo slot.

**Intent.Slots.Value.InterpretedValue**  
*Descrizione*: il valore che Amazon Lex v2 determina per lo slot. Il valore effettivo dipende dall'impostazione della strategia di selezione del valore del bot. Puoi scegliere di utilizzare il valore inserito dall'utente oppure puoi fare in modo che Amazon Lex v2 scelga il primo valore nell'`resolvedValues`elenco.

**Intent.Slots.Value.ResolvedValues**  
Un elenco di valori aggiuntivi che Amazon Lex v2 riconosce per lo slot.

**Intent.State**  
*Descrizione*: informazioni sull'adempimento dell'intento. Valori possibili:  
+ `Failed`— La funzione Lambda non è riuscita a soddisfare l'intento.
+ `Fulfilled`— La funzione Lambda ha soddisfatto l'intento.
+ `ReadyForFulfillment`— Le informazioni relative all'intento sono presenti e la funzione Lambda può soddisfarla. 

**Intent.ConfirmationState**  
*Descrizione: indica la conferma dell'*intento. Valori possibili:  
+ *Confermato*: l'intento è soddisfatto.
+ *Negato*: l'utente ha risposto «no» alla richiesta di conferma.
+ *Nessuno*: all'utente non è stata richiesta la conferma oppure all'utente è stata richiesta ma non ha confermato o negato la richiesta.

## Gestione degli eventi ACTION\$1FAILED
<a name="bot-action-fail"></a>

L'esempio seguente mostra un `ACTION_FAILED` evento tipico dell'`StartBotConversation`azione.

```
{
    "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 stringa che identifica in modo univoco una condizione di errore.

**ErrorMessage**  
Una descrizione generica della condizione di errore.

### Codici di errore
<a name="action-errors"></a>

La tabella seguente elenca i messaggi di errore che una funzione Lambda può restituire in un `ACTION_FAILED` evento.


| Errore | Description | 
| --- | --- | 
|  `InvalidActionParameter` | Uno o più parametri di azione non sono validi. Il messaggio di errore descrive il parametro non valido. | 
| `SystemException` | Si è verificato un errore di sistema durante l'esecuzione di un'azione. | 
| `ResourceNotFound` | Un bot specificato non è stato trovato. | 
| `ResourceAccessDenied` | L'accesso al bot è negato. | 
| `ActionExecutionThrottled` | Il limite del servizio di conversazione con i bot è stato superato. Il messaggio di errore descrive il limite di servizio specifico superato. | 

## Concessione delle autorizzazioni per l'utilizzo di un bot
<a name="bot-permissions"></a>

L'esempio seguente concede all'SDK Amazon Chime l'autorizzazione a chiamare 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 Devi concedere esplicitamente all'Audio Service l'autorizzazione a usare il tuo bot. Il blocco delle condizioni è richiesto per i responsabili del servizio. Il blocco condition deve utilizzare le chiavi di contesto globali `AWS:SourceAccount` e`AWS:SourceArn`. `AWS:SourceAccount`È l'ID del tuo account AWS. `AWS:SourceArn`È l'ARN della risorsa dell'applicazione audio PSTN che richiama il 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"
        }
      }
    }
  ]
}
```

------

## Configurazione dei timeout vocali e DTMF
<a name="bot-timeouts"></a>

È possibile configurare i timeout vocali e DTMF durante l'acquisizione dell'input dell'utente. Puoi configurare i timeout tramite gli attributi di sessione quando inizi una conversazione con un bot e sovrascriverli nella funzione Lambda del tuo bot Lex, se necessario. Amazon Lex ti consente di impostare più slot per un intento o per i bot. Poiché puoi specificare che gli attributi di sessione si applicano all'intento e al livello di slot, puoi specificare che l'attributo sia impostato solo quando si sta raccogliendo un determinato tipo di input. Ad esempio, puoi specificare un timeout più lungo quando raccogli un numero di account rispetto a quando raccogli una data. Puoi usare i caratteri jolly nella chiave dell'attributo di sessione. 

Ad esempio, per impostare un timeout vocale per tutti gli slot a tutti gli effetti su 4000 millisecondi, puoi fornire un attributo di sessione utilizzando: `x-amz-lex:start-timeout-ms:*:*` come nome dell'attributo di sessione e `4000` come valore dell'attributo di sessione. *Per ulteriori informazioni, consulta [Configurazione dei timeout per l'acquisizione dell'input dell'utente nella](https://docs.aws.amazon.com/lexv2/latest/dg/session-attribs-speech.htm) Amazon Lex Developer Guide.* 

## Utilizzo degli ingressi DTMF durante una conversazione
<a name="bot-dtmf"></a>

I bot di Amazon Lex supportano l'input vocale e da tastiera durante una conversazione. I bot interpretano gli input da tastiera come cifre DTMF. Puoi richiedere ai contatti di terminare l'immissione con un tasto cancelletto (\$1) e di annullare una conversazione usando il tasto asterisco (\$1). Se non richiedi ai clienti di terminare l'immissione con il tasto cancelletto, Lex smette di attendere la pressione di altri tasti dopo 5 secondi.

## Quote di fatturazione e servizio
<a name="bot-billing"></a>

AWS ti addebita i seguenti costi:
+ Utilizzo dell'SDK Amazon Chime per la chiamata. Per ulteriori informazioni, consulta i prezzi di [Amazon Chime SDK](https://aws.amazon.com/chime/chime-sdk/pricing/).
+ Utilizzo di Amazon Lex per l'interpretazione del parlato degli utenti. Per ulteriori informazioni, consulta i [prezzi delle conversazioni in streaming di Amazon Lex](https://aws.amazon.com/lex/pricing/).
+ Utilizzo di Amazon Polly per sintetizzare le risposte di testo del tuo bot. Per ulteriori informazioni, consulta la pagina dei prezzi di [Amazon Polly](https://aws.amazon.com/polly/pricing/).

È inoltre necessario conoscere le seguenti quote di servizio:
+ L'SDK Amazon Chime prevede una quota di servizio per il numero massimo di bot Amazon Lex utilizzabili con l'azione audio PSTN. [StartBotConversation](#start-bot-conversation) *Per ulteriori informazioni, consulta il [trunking SIP e](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) le quote vocali, nella Guida generale.AWS *
+ Amazon Lex ha una quota di servizio per il numero massimo di conversazioni vocali simultanee per bot Lex. Puoi contattare il team di assistenza di Amazon Lex per aumentare le quote. Per ulteriori informazioni, consulta le [linee guida e le quote](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) di Amazon Lex nella *Amazon Lex Developer Guide*.
+ Amazon Polly dispone di una quota di servizi per la sintesi delle risposte di testo. Puoi contattare il team di assistenza di Amazon Polly per aumentare le quote. *Per ulteriori informazioni sulle quote dei servizi Amazon Polly, consulta Quotas in Amazon Polly, [nella Amazon Polly Developer](https://docs.aws.amazon.com/polly/latest/dg/limits.html) Guide.*

# Utilizzo delle intestazioni SIP nel servizio audio Amazon Chime SDK PTSN
<a name="sip-headers"></a>

Ora puoi inviare e ricevere un' User-To-Userintestazione, un'intestazione Diversion e intestazioni SIP personalizzate nelle tue AWS Lambda funzioni quando desideri scambiare informazioni sul contesto delle chiamate con la tua infrastruttura SIP. 
+ L'intestazione User-to-User (UUI) può essere utilizzata per inviare dati di controllo delle chiamate. Questi dati vengono inseriti dall'applicazione che avvia una sessione e utilizzati dall'applicazione che accetta la sessione. Non vengono utilizzati per alcuna funzionalità SIP di base. Ad esempio, è possibile utilizzare l'intestazione UUI in un call center per trasmettere informazioni su una chiamata tra agenti.
+ L'intestazione Diversion viene utilizzata per mostrare da dove è stata deviata la chiamata e perché. È possibile utilizzare questa intestazione per visualizzare le informazioni sulla deviazione provenienti da altri agenti SIP o per trasmetterle.
+ Le intestazioni SIP personalizzate ti consentono di trasmettere tutte le altre informazioni che desideri. Ad esempio, se desideri trasmettere un ID account, puoi creare un'intestazione X chiamata «X-Account-Id» e aggiungere queste informazioni.

È necessario prefissare come prefisso le intestazioni SIP personalizzate con. `x-` Le intestazioni sono esposte nella AWS Lambda funzione e ricevute come parte di un `NEW_INBOUND_CALL` evento durante una chiamata in entrata. È inoltre possibile includere queste intestazioni nelle fasi di chiamata in uscita quando si attiva un'azione o [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 `Participants` sezione di una funzione Lambda contiene il `SipHeaders` campo. Questo campo è disponibile quando si riceve un'intestazione personalizzata o quando si compila l'`User-to-User`intestazione o. `Diversion`

Questo esempio mostra una risposta prevista quando una chiamata AWS Lambda contiene intestazioni 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"
            }
        ]
    }
}
```

L'esempio seguente mostra un'[CallAndBridge](call-and-bridge.md)azione riuscita, dovuta a una voce non valida per il parametro. `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"
            }
         }
      }
   ]
}
```

L'esempio seguente mostra un'[CallAndBridge](call-and-bridge.md)azione non riuscita causata da un parametro non valido`SipHeaders`.

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

## Utilizzo di SipHeaders field
<a name="custom-headers"></a>

Quando si attiva il [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, il `SipHeaders` campo opzionale consente di passare intestazioni SIP personalizzate a un segmento di chiamata in uscita. Le chiavi di intestazione valide devono includere una delle seguenti: 
+ Il `x-` prefisso
+ L'intestazione `User-to-User`
+ L'intestazione `Diversion`

`X-AMZN`è un'intestazione riservata. Se utilizzi questa intestazione in una chiamata API, avrà esito negativo. Le intestazioni possono avere una lunghezza massima di 2048 caratteri. 

L'esempio seguente mostra un tipico [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 nell'interfaccia della riga di comando con il parametro opzionale`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)
```

Per ulteriori informazioni, vedere [Un meccanismo per il trasporto delle informazioni sul controllo delle User-to-User chiamate in SIP e Indicazione di [deviazione](https://datatracker.ietf.org/doc/html/rfc5806) in SIP](https://datatracker.ietf.org/doc/html/rfc7433).

# Utilizzo dei record di dettaglio delle chiamate nel servizio audio Amazon Chime SDK PTSN
<a name="attributes"></a>

*Gli amministratori di Amazon Chime SDK possono configurare i connettori vocali Amazon Chime SDK per archiviare i record dei dettagli delle chiamate ().* CDRs *Per ulteriori informazioni sulla configurazione dei connettori vocali Amazon Chime SDK per l' CDRsarchiviazione, [consulta Gestione delle impostazioni globali in Amazon Chime SDK nella Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) Administration Guide.*

Una volta abilitato CDRs, dopo ogni chiamata l'applicazione multimediale SIP invia i record a una cartella denominata **Amazon-Chime- SMADRs** nel bucket S3.

La tabella seguente elenca gli attributi di un CDR e ne mostra la corretta formattazione. I record contengono tutti i campi elencati qui per tutte le chiamate.


|  Valore  |  Description  | 
| --- | --- | 
|  `"AwsAccountId":"AWS-account-ID"`  |  L'ID AWS dell'account associato all'applicazione multimediale SIP che ha avviato l'utilizzo di PSTN  | 
|  `"TransactionId":"transaction-ID" `  |  L'ID della transazione della chiamata  | 
|  `"CallId":"SIP-media-application-call-ID"`  |  L'ID di chiamata del partecipante per l'utilizzo associato  | 
|  `"VoiceConnectorId":"voice-connector-ID"`  |  ID UUID del connettore vocale Amazon Chime SDK  | 
|  `"Status":"status"`  |  Stato della chiamata (completata, non riuscita)  | 
|  `"BillableDurationSeconds":"billable-duration-in-seconds"`  |  Durata fatturabile della chiamata in secondi  | 
|  `"SchemaVersion":"schema-version"`  |  La versione dello schema CDR  | 
|  `"SourcePhoneNumber":"12075550155"`  |  Numero di telefono di origine E.164  | 
| "SourcePhoneNumberName":"North Campus Reception" | Il nome assegnato al numero di telefono di origine | 
|  `"DestinationPhoneNumber":"13605551214"`  |  E.164 Numero di telefono di destinazione  | 
| "DestinationPhoneNumberName":"South Campus Reception" | Il nome assegnato al numero di telefono di destinazione | 
|  `"UsageType":"usage-type"`  |  Dettagli sull'utilizzo della voce nell'API Price List  | 
|  `"ServiceCode":"service-code" `  |  Il codice del servizio nell'API Price List  | 
|  `"Direction":"direction"`  |  Direzione della chiamata, `Outbound` oppure `Inbound`  | 
|  `"TimeStampEpochSeconds":"start-time-epochseconds"`  |  Il timestamp del record in epoch/Unix formato timestamp  | 
|  `"Region":"AWS-region"`  |  AWS Regione per il connettore vocale Amazon Chime SDK  | 
|  `"SipRuleId":"sip-rule-id"`  |  L'ID della regola sip che viene attivata quando una chiamata raggiunge il servizio audio PSTN  | 
|  `"SipApplicationId":"sip-application-id"`  |  L'ID dell'applicazione SIP che gestisce una chiamata  | 
|  `"CallLegTriggerType":"trigger-type"`  |  Il tipo di evento che ha attivato una chiamata  | 
|  `"BillableVoiceFocusSeconds":"billable-voice-focus-in-seconds"`  |  La quantità fatturabile di utilizzo di Voice Focus, in secondi  | 

# Comprensione dei timeout e dei nuovi tentativi per il servizio audio PTSN di Amazon Chime SDK
<a name="timeouts"></a>

Il servizio audio PSTN interagisce con le funzioni in modo sincrono. AWS Lambda Le applicazioni attendono 5 secondi affinché AWS Lambda le funzioni rispondano prima di riprovare una chiamata. [Se non viene ricevuta alcuna risposta dopo 20 secondi, il servizio audio PSTN emetterà un blocco.](unexpected-hangups.md) Quando una funzione restituisce un errore con uno dei 4 codici di stato *XX*, per impostazione predefinita l'applicazione multimediale SIP ritenta la chiamata solo una volta. Se esaurite i tentativi, le chiamate terminano con il codice di errore. `480 Unavailable` Per ulteriori informazioni sugli AWS Lambda errori, consulta [Risolvere i problemi](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-invocation.html) di chiamata in. AWS Lambda

# Debug e risoluzione dei problemi del servizio audio Amazon Chime SDK PTSN
<a name="debug-pstn"></a>

Utilizza le seguenti informazioni per aiutarti a diagnosticare e risolvere i problemi più comuni che potresti riscontrare quando lavori con il servizio audio PSTN Amazon Chime SDK.

**Topics**
+ [Controllo dei log per il servizio audio PTSN di Amazon Chime SDK](check-logs.md)
+ [Eseguire il debug di interruzioni impreviste nel servizio audio PTSN di Amazon Chime SDK](unexpected-hangups.md)
+ [Eseguire il debug di eventi ACTION\$1FAILED imprevisti](unexpected-action-fail.md)

# Controllo dei log per il servizio audio PTSN di Amazon Chime SDK
<a name="check-logs"></a>

Se stai eseguendo il debug di un'applicazione multimediale SIP, controlla nei log di Cloudwatch la funzione associata all'applicazione. AWS Lambda 

Quindi, controlla i log associati all'applicazione multimediale SIP. Se necessario, è possibile configurare l'applicazione multimediale SIP per la registrazione. Per ulteriori informazioni, consulta [Using SIP Media Applications](https://docs.aws.amazon.com/chime-sdk/latest/ag/use-sip-apps.html) nella *Amazon Chime SDK Administrator* Guide. Se abiliti la registrazione, puoi trovare i log su Cloudwatch, nel gruppo di log. `/aws/ChimeSipMediaApplicationSipMessages/<SIP-media-application-Id>`

# Eseguire il debug di interruzioni impreviste nel servizio audio PTSN di Amazon Chime SDK
<a name="unexpected-hangups"></a>

Completa le seguenti azioni di risoluzione dei problemi se riscontri blocchi o messaggi di errore imprevisti con funzioni per il servizio audio PSTN: AWS Lambda 
+ [Verifica che la tua AWS Lambda politica conceda l'`lambda:InvokeFunction`autorizzazione al responsabile del servizio voiceconnector.chime.amazonaws.com.](http://voiceconnector.chime.amazonaws.com/)
+ Controlla i log della tua funzione per assicurarti che venga richiamata con successo. AWS Lambda 
+ Se i log mostrano eventi in arrivo e azioni restituite, verifica di non restituire un'azione di blocco quando la funzione viene richiamata. AWS Lambda 
+ Controllate i CloudWatch log della vostra applicazione multimediale SIP. La tabella seguente elenca alcuni dei messaggi che potreste ricevere.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/unexpected-hangups.html)

# Eseguire il debug di eventi ACTION\$1FAILED imprevisti
<a name="unexpected-action-fail"></a>

Se ricevi un `ACTION_FAILED` evento imprevisto, controlla quanto segue:

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

# Comprensione VoiceFocus del servizio audio Amazon Chime SDK PTSN
<a name="voice-focus"></a>

Consente di applicare la soppressione del rumore di Amazon Voice Focus ai gruppi di chiamate in entrata e in uscita su una chiamata PSTN (Public Switched Telephony Network). Quando applichi Amazon Voice Focus, riduce il rumore di fondo senza influire sulla voce umana. Ciò può rendere più facile l'ascolto dell'attuale altoparlante.

Per creare call leg in entrata, si utilizza una [regola SIP](https://docs.aws.amazon.com/chime/latest/ag/manage-sip-applications.html) che richiama una AWS Lambda funzione con un evento. `NewInboundCall` È possibile creare call leg in uscita utilizzando l'[CallAndBridge](call-and-bridge.md)azione o utilizzando un'operazione 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) Per ulteriori informazioni su Amazon Voice Focus, consulta [Come funziona la cancellazione del rumore dell'SDK Amazon Chime](https://www.amazon.science/blog/how-amazon-chimes-challenge-winning-noise-cancellation-works).

 Amazon Voice Focus riduce i rumori non vocali indesiderati, tra cui: 
+ **Rumori ambientali**: vento, ventole, acqua corrente
+ **Rumori di sottofondo**: tosaerba, cani che abbaiano
+ **Rumori in primo piano**: digitazione, paper shuffling

**Nota**  
Quando usi Amazon Voice Focus, ti AWS fattura per i minuti di chiamata attivi di ogni fase di chiamata e per ogni minuto di utilizzo dell'applicazione multimediale SIP.

Questo esempio mostra un'azione tipica`VoiceFocus`.

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

**Enable**  
*Descrizione*: abilita o disabilita Amazon Voice Focus  
*Valori consentiti* — \$1 `True` `False`  
*Obbligatorio*: Sì  
*Valore predefinito* - nessuno

**CallId**  
*Descrizione*: CallId del partecipante all'`CallDetails`invocazione della AWS Lambda funzione  
*Valori consentiti*: un ID di chiamata valido  
*Obbligatorio*: sì  
*Valore predefinito* - nessuno

Questo esempio mostra un `ACTION_SUCCESSFUL` evento riuscito per l'`VoiceFocus`azione.

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

Questo esempio mostra un `ACTION_FAILED` evento tipico dell'`VoiceFocus`azione.

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

**Gestione degli errori**  
Per motivi di sicurezza, le azioni audio PSTN hanno un limite di 5 richieste di chiamata al secondo, per account cliente (CPS). Quando le richieste di chiamata superano il limite di 5 CPS, l'azione restituisce un messaggio di errore. Questa tabella elenca i messaggi di errore restituiti dall'`VoiceFocus`azione.


| Errore | Messaggio | Motivo | 
| --- | --- | --- | 
| `ActionExecutionThrottled` | Esecuzione dell'azione non riuscita. È stato raggiunto il numero massimo di azioni al secondo. | Il numero di richieste di azione Voice Focus al secondo ha superato il limite di sistema.  | 
| `MissingRequiredActionParameter` | Parametro di azione richiesto mancante. | Mancano uno o più parametri richiesti durante l'esecuzione dell'azione. | 
| `SystemException` | Errore di sistema durante l'esecuzione dell'azione. | Si è verificato un errore di sistema durante l'esecuzione dell'azione. | 

**Flussi di chiamate**  
Questo diagramma mostra il flusso di chiamate per abilitare e disabilitare Amazon Voice Focus per un'`CallAndBridge`azione tra due chiamate PSTN.

![\[Il flusso di chiamate quando abiliti o disabiliti Amazon Voice si concentra per due chiamate PSTN collegate.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/voice_focus-pstn1.png)


Per il segmento delle chiamate in uscita, la AWS Lambda funzione abilita la messa a fuoco di Amazon Voice per il chiamante e restituisce una serie di azioni, tra cui. `CallAndBridge` Una volta completata la chiamata, l'`VoiceFocus`azione restituisce un `ACTION_SUCCESSFUL` evento e la funzione Lambda restituisce un altro set di eventi che abilita Amazon Voice Focus per la persona chiamata. Questo insieme di azioni include`VoiceFocus`, `Enable``True`, e l'ID del chiamante. Non vengono intraprese ulteriori azioni finché il chiamante non riaggancia. La funzione Lambda invia quindi un'`Hangup`azione all'applicazione multimediale SIP. L'applicazione blocca la persona chiamata e invia una funzione Hangup alla funzione Lambda, che non esegue ulteriori azioni.

# Glossario del servizio audio PSTN di Amazon Chime SDK
<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>

**Azione**  
In una AWS Lambda funzione, un'azione è un elemento che si desidera eseguire durante una chiamata telefonica, ad esempio l'invio o la ricezione di cifre, la partecipazione a una riunione e così via. Per ulteriori informazioni sulle azioni supportate dal servizio audio PSTN, vedere. [Azioni supportate per il servizio audio PSTN Amazon Chime SDK](specify-actions.md)

**AWS Lambda**  
Un servizio di elaborazione che consente di eseguire codice per quasi tutti i tipi di applicazioni o servizi di backend senza dover fornire o gestire server.

**AWS Lambda funzione**  
Nel contesto del servizio audio PSTN, una funzione viene eseguita in risposta ai dati trasmessi da un'applicazione multimediale SIP, ad esempio l'effettuazione di una chiamata in uscita. 

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

**Registrazione dei dettagli della chiamata**  
Dati provenienti dalle chiamate di Amazon Chime SDK Voice Connector, come account IDs, numeri di telefono di origine e paesi di destinazione. I record arrivano come oggetti in un bucket Amazon Simple Storage Service (S3) del tuo account. Per ulteriori informazioni, consulta [Gestione delle impostazioni globali in Amazon Chime SDK nella Amazon Chime SDK Administrator](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) *Guide*. Per informazioni sullo schema dei record, consulta [Utilizzo dei record di dettaglio delle chiamate nel servizio audio Amazon Chime SDK PTSN](attributes.md) questa guida.

**ID di chiamata**  
L'ID assegnato ai segmenti di tutte le chiamate in arrivo.

**Chiama leg**  
Parte di una chiamata. Nelle applicazioni Amazon Chime SDK, le chiamate possono provenire da numeri di telefono validi, da un PSTN o da connettori vocali Amazon Chime SDK. Per ulteriori informazioni sul tagging, consulta [Scopri come usare i call leg di chiamata del servizio audio PSTN di Amazon Chime SDK](call-architecture.md)in questa guida. 

**Carrier (Vettore)**  
Un'azienda che fornisce servizi mobili. Abbreviazione di **operatore wireless**.

**Amazon Chime**  
Un servizio di comunicazione e collaborazione unificato fornito da AWS.

**SDK Amazon Chime**  
Un kit di sviluppo software utilizzato dagli sviluppatori per aggiungere contenuti multimediali e comunicazioni in tempo reale alle applicazioni di comunicazione personalizzate. 

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

**E.164**  
L'unico formato accettato per i numeri di telefono nel servizio audio PSTN. Come consigliato dall'ITU-T, i numeri utilizzano un prefisso internazionale di 1-3 cifre, seguito da un numero di abbonato massimo di 12 cifre. Ad esempio: US:`+14155552671`, UK:`+442071838750 44`, Australia:`+61285993444`. 

**Endpoint**  
 Un dispositivo hardware o un servizio software, come un telefono o un'applicazione di comunicazione unificata. 

**EventBridge**  
Un servizio di bus eventi senza server che consente di connettere le applicazioni ai dati provenienti da diverse fonti.  
Le applicazioni multimediali SIP non inviano dati a. EventBridge Per ulteriori informazioni, consulta [Automating the Amazon Chime SDK EventBridge con la Amazon Chime SDK Administrator](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) *Guide*.

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

**IVR**  
Risposta vocale interattiva. Un sistema che consente alle persone di interagire con un sistema telefonico computerizzato tramite riconoscimento vocale o tastiere tattili.

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

**Gamba**  
Per informazioni, consulta [Call leg](#call-leg).

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

**Media**  
I messaggi audio, video o chat disponibili per l'uso durante una riunione Amazon Chime SDK. Un'applicazione di comunicazione personalizzata può contenere uno o più supporti di ogni tipo.

**Pipeline multimediale**  
Un meccanismo per lo streaming e l'acquisizione di audio, video, messaggi ed eventi durante una riunione Amazon Chime SDK. Per ulteriori informazioni sul tagging, consulta [Creazione di pipeline multimediali SDK Amazon Chime](media-pipelines.md)in questa guida.

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

**Portabilità del numero**  
La possibilità di spostare i numeri di telefono tra gestori telefonici o sistemi di comunicazione unificati. 

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

**Emissione**  
Il processo di ricezione di una chiamata da un PSTN e di trasferimento della chiamata a un endpoint VoIP. 

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

**Tag del partecipante**  
Un identificatore assegnato a ciascun partecipante alla chiamata, oppure. `LEG-A` `LEG-B`

**Policy**  
Amazon Chime SDK richiede i seguenti tipi di policy:  
+ **Policy utente IAM**: una politica che definisce le autorizzazioni per gli utenti di Identity and Access Management. 
+ **Politica delle riunioni**: una politica che consente a un utente di controllare il computer di un altro utente quando condivide gli schermi durante una riunione e consente ai partecipanti alla riunione di partecipare alle riunioni ricevendo una telefonata da Amazon Chime SDK.

**PSTN**  
Rete telefonica pubblica commutata. L'infrastruttura e i servizi che forniscono funzionalità di chiamata telefonica.

**Servizio audio PSTN**  
Un servizio Amazon Chime SDK che consente agli sviluppatori di aggiungere funzionalità audio alle loro soluzioni di comunicazione.

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

**Routing**  
Le app create utilizzando l'SDK Amazon Chime utilizzano uno o più tipi di routing:  
+ **Routing di rete**: il processo di selezione di un percorso per il traffico in una rete o tra o attraverso più reti.
+ **Routing delle interazioni**: il processo per garantire che una chiamata vada al destinatario o all'endpoint corretto. 
+ **Routing delle chiamate**: una funzionalità di gestione delle chiamate che mette in coda e distribuisce le chiamate in entrata a destinatari o endpoint predefiniti.

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

**SBC**  
Controller di confine della sessione. Un elemento di rete distribuito per proteggere le reti Voice over Internet Protocol (VoIP) basate su SIP.

**Sequence (Sequenza)**  
La sequenza di eventi che richiamano una funzione. AWS Lambda Ogni volta che una funzione viene richiamata durante una chiamata, la sequenza viene incrementata.

**Limite/quota di servizio**  
Il numero massimo di risorse, come riunioni, flussi audio o condivisioni di contenuti, consentito dall'SDK Amazon Chime. Per ulteriori informazioni, [Audio](meetings-sdk.md#audio) consulta questa guida.

**SIP**  
Session Initiation Protocol, un protocollo di segnalazione utilizzato per avviare, mantenere e terminare sessioni in tempo reale che include qualsiasi combinazione di applicazioni vocali, video e di messaggistica. Per ulteriori informazioni, vedere [SIP](https://www.rfc-editor.org/rfc/rfc3261.html): Session Initiation Protocol.

**Intestazioni SIP**  
Parametri nelle AWS Lambda funzioni che contengono dati di controllo delle chiamate, oltre ad altri dati come l'account utente. IDs

**Applicazione multimediale SIP**  
Un oggetto gestito che passa valori da una regola SIP a una funzione di destinazione AWS Lambda . Gli sviluppatori possono chiamare il [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 per creare applicazioni multimediali SIP, ma per farlo devono disporre di autorizzazioni amministrative.

**Regola SIP**  
Un oggetto gestito che trasmette i numeri di telefono di Amazon Chime SDK Voice Connector URIs a un'applicazione multimediale SIP di destinazione.

**Trunk SIP**  
Per informazioni, consulta [Amazon Chime SDK Voice Connector](#voice-connector).

**SMA**  
Vedi applicazione multimediale SIP.

**ID SMA**  
Vedi applicazione multimediale SIP.

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

**Telco**  
Un fornitore di servizi di telecomunicazione.

**Risoluzione**  
Il processo di terminazione di una chiamata.

**Transaction**  
Una chiamata che contiene una o più fasi di chiamata. Per ulteriori informazioni sul tagging, consulta [Scopri come usare i call leg di chiamata del servizio audio PSTN di Amazon Chime SDK](call-architecture.md)in questa guida.

**ID della transazione**  
L'ID di una transazione che contiene più lead di chiamata. Per ulteriori informazioni sul tagging, consulta [Scopri come usare i call leg di chiamata del servizio audio PSTN di Amazon Chime SDK](call-architecture.md)in questa guida.

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

**Connettore vocale SDK Amazon Chime**  
Un oggetto che fornisce il servizio di trunking SIP (Session Initiation Protocol) per i sistemi telefonici. Gli amministratori utilizzano la console amministrativa Amazon Chime SDK per creare e gestire i connettori vocali. Per ulteriori informazioni, consulta [Managing Amazon Chime SDK Voice Connectors nella *Amazon Chime* SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html) Administrator Guide.

**Gruppo Amazon Chime SDK Voice Connector**  
Un wrapper che contiene più connettori vocali di diverse regioni. AWS I gruppi consentono il failover delle chiamate in entrata tra le regioni, il che crea un meccanismo di tolleranza ai guasti. Per ulteriori informazioni, consulta [Managing Managing Amazon Chime SDK Voice Connector group](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connector-groups.html) nella *Amazon Chime* SDK Administrator Guide.