Como usar cabeçalhos SIP - SDK do Amazon Chime

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

Como usar cabeçalhos SIP

Agora você pode enviar e receber um cabeçalho de usuário para usuário, 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 de usuário para usuário (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 CallAndBridge ação ou a API. CreateSipMediaApplicationCall

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 CallAndBridge ação bem-sucedida devido a uma entrada inválida para o SipHeaders parâmetro.

{ "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 CallAndBridge ação com falha causada por um SipHeaders parâmetro inválido.

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

Usando o SipHeaders campo

Quando você aciona a CreateSipMediaApplicationCallAPI, 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 CreateSipMediaApplicationCallAPI típica na interface de linha de comando com o parâmetro opcionalSipHeaders.

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 chamadas de usuário para usuário no SIP e Indicação de desvio no SIP.