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

CallAndBridge

Cria uma chamada de saída para um número de telefone PSTN ou para um tronco SIP configurado como conector de voz do SDK do Amazon Chime ou grupo de conectores de voz do SDK do Amazon Chime e, em seguida, ancora com um trecho de chamada existente. Você usa a PSTN ao chamar um número de telefone e a AWS ao chamar um entroncamento SIP.

Um segmento de chamada existente pode ser um segmento de chamada de saída criado usando a MediaApplicationCall API CreateSIP ou um segmento de entrada criado por uma regra SIP que invoca a função com um evento. AWS Lambda NewInboundCall Ao implementar uma ação CallAndBridge em um endpoint de conector de voz ou grupo de conectores de voz, você deve especificar o Amazon Resource Number (ARN) do conector de voz ou grupo de conectores de voz.

Você também pode adicionar cabeçalhos SIP personalizados aos segmentos e funções das chamadas de saída. AWS Lambda Os cabeçalhos personalizados permitem que você transmita valores como números de andares e códigos postais. Para obter mais informações sobre cabeçalhos personalizados, consulte Como usar cabeçalhos SIP.

O código de exemplo a seguir mostra uma ação típica que ancora a um endpoint PSTN.

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

O exemplo a seguir mostra uma ação típica que usa um conector de voz ou um grupo de conectores de voz, além de um cabeçalho SIP personalizado.

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

Descrição – O intervalo antes de uma chamada expirar. O cronômetro começa na configuração da chamada

Valores permitidos – Entre 1 e 120, inclusive

Obrigatório – Não

Valor-padrão – 30

CallerIdNumber

Descrição – Um número pertencente ao cliente ou o número De do trecho A

Valores permitidos – Um número de telefone válido no formato E.164

Obrigatório – Sim

Valor-padrão: nenhum

Endpoints

Descrição – Os endpoints de uma chamada

Valores permitidos:

  • BridgeEndpointTypeAWS para conectores de voz e grupos de conectores de voz, caso contrário, PSTN.

  • Arn – O ARN de um conector de voz ou grupo de conectores de voz. Exigido apenas quando você usa a AWS como o BridgeEndpointType.

  • Uri – O valor do URI depende do tipo de endpoint.

    Para endpoints da PSTN, o URI deve ser um número de telefone E.164 válido.

    Para endpoints da AWS, o valor do URI define o user como parte do Request-URI. Você deve usar o formato Backus-Naur aumentado. Comprimento necessário: entre 1 e 30, inclusive. Use os seguintes valores: a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, (,), (.)

    O valor do host do Request-URI é derivado das rotas de entrada do conector de voz de destino. O exemplo a seguir mostra uma ação CallAndBridge com um endpoint AWS.

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

    Para obter mais informações sobre rotas de entrada e conectores de voz, consulte Como editar as configurações do conector de voz do SDK do Amazon Chime.

Obrigatório – Sim

Valor-padrão: nenhum

SipHeaders

Descrição – Permite que você passe valores adicionais. Use somente com o tipo de endpoint AWS.

Valores permitidos – Cabeçalho SIP válido

Obrigatório – Não

Valor-padrão: nenhum

O exemplo a seguir mostra uma ação CallAndBridge bem-sucedida que usa um endpoint da 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" } ] } }

O exemplo a seguir mostra uma ação CallAndBridge com falha.

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

Fluxos de chamadas

A ação CallAndBridge fornece uma experiência de sinalização de chamada e áudio diferente para um trecho de chamada existente, dependendo dos parâmetros e se o trecho está conectado.

O diagrama a seguir mostra os fluxos de chamadas com parâmetros diferentes quando um trecho de chamada de entrada A já está conectado.


   O fluxo de uma chamada atendida por meio da ação CallAndBridge.

O diagrama a seguir mostra p fluxo de chamadas para uma chamada não atendida.


   O fluxo de uma chamada por meio da ação CallAndBridge.
Detalhes adicionais

Lembre-se desses fatos sobre a ação CallAndBridge.

  • CallTimeoutSeconds— Este cronômetro começa quando o convite SIP é enviado no B-Leg. Você pode definir um valor de destino desejado, mas esse valor pode ser ignorado pelas operadoras upstream.

  • CallerIdNumber— Esse número de telefone deve pertencer ao cliente ou ser o número From de um A-Leg.

  • Comportamento de desligamento e casos extremos – Se um trecho de chamada for desligado, o outro não desligará automaticamente a chamada. Quando um Hangup evento é enviado para a AWS Lambda função, a perna restante deve ser desconectada de forma independente. Se um trecho de chamada ficar suspenso, a chamada será cobrada até que seja desligada. Por exemplo, o cenário a seguir pode levar a cobranças inesperadas:

    • Você tenta se conectar a um número de telefone de destino. O destino está ocupado e envia a chamada diretamente para o correio de voz. Do ponto de vista do serviço de áudio, acessar o correio de voz é uma chamada atendida. O trecho A desliga, mas o trecho B continua ouvindo a mensagem do correio de voz. Enquanto o trecho B escuta, você é cobrado.

    • Como prática recomendada, use a AWS Lambda função, ou a pessoa do outro lado da chamada, para desligar cada segmento de chamada de forma independente.

  • Cobrança – Você é cobrado pelo seguinte ao usar CallAndBridge:

    • Minutos de chamada ativos para cada trecho de chamada criado (trecho A, trecho B etc.) para a PSTN.

    • Minutos de uso do serviço de áudio.

Veja exemplos de trabalho em GitHub: