

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar cabeçalhos SIP no serviço de áudio PTSN do SDK do Amazon Chime
<a name="sip-headers"></a>

Agora você pode enviar e receber um User-To-User cabeçalho, um cabeçalho de desvio e cabeçalhos SIP personalizados em suas AWS Lambda funções quando quiser trocar informações de contexto de chamada com sua infraestrutura SIP. 
+ O cabeçalho User-to-User (UUI) pode ser usado para enviar dados de controle de chamadas. Esses dados são inseridos pelo aplicativo que inicia uma sessão e usados pelo aplicativo que aceita a sessão. Ele não é usado para nenhuma funcionalidade básica do SIP. Por exemplo, você pode usar o cabeçalho UUI em uma central de chamadas para transmitir informações entre atendentes sobre uma chamada.
+ O cabeçalho de desvio é usado para mostrar de onde a chamada foi desviada e por quê. Você pode usar esse cabeçalho para ver as informações de desvio de outros atendentes SIP ou repassá-las.
+ Os cabeçalhos SIP personalizados permitem que você transmita qualquer outra informação que desejar. Por exemplo, se quiser transmitir um id de conta, você pode criar um cabeçalho X chamado “X-Account-Id” e adicionar essas informações.

Você deve prefixar seus cabeçalhos SIP personalizados com `x-`. Os cabeçalhos são expostos na AWS Lambda função e recebidos como parte de um `NEW_INBOUND_CALL` evento durante uma chamada de entrada. Você também pode incluir esses cabeçalhos nos segmentos de chamada de saída ao acionar uma ação ou 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.

A seção `Participants` de uma função do Lambda contém o campo `SipHeaders`. Esse campo está disponível quando você recebe um cabeçalho personalizado ou quando você preenche o cabeçalho `User-to-User` ou `Diversion`.

Este exemplo mostra uma resposta esperada quando uma invocação do AWS Lambda contém cabeçalhos 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"
            }
        ]
    }
}
```

O exemplo a seguir mostra uma ação [CallAndBridge](call-and-bridge.md) bem-sucedida devido a uma entrada inválida para o parâmetro `SipHeaders`. 

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

O exemplo a seguir mostra uma ação [CallAndBridge](call-and-bridge.md) com falha causada por um parâmetro inválido `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"
         }
      ]
   }
}
```

## Usar o SipHeaders Campo
<a name="custom-headers"></a>

Quando você aciona o [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, o `SipHeaders` campo opcional, permite que você passe cabeçalhos SIP personalizados para um trecho de chamada de saída. As chaves válidas de cabeçalho devem incluir um dos seguintes: 
+ O prefixo `x-`
+ O cabeçalho `User-to-User`
+ O cabeçalho `Diversion`

O `X-AMZN` é um cabeçalho reservado. Se você usar esse cabeçalho em uma chamada de API, ele falhará. Os cabeçalhos podem ter um tamanho máximo de 2048 caracteres. 

O exemplo a seguir mostra uma típica [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 na interface de linha de comando com o parâmetro opcional`SipHeaders`.

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

Para obter mais informações, consulte [Um mecanismo para transportar informações de controle de User-to-User chamadas no SIP](https://datatracker.ietf.org/doc/html/rfc7433) e [Indicação de desvio](https://datatracker.ietf.org/doc/html/rfc5806) no SIP.