Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Entendendo end-to-end as chamadas para o serviço de áudio PSTN do Amazon Chime SDK

Modo de foco
Entendendo end-to-end as chamadas para o serviço de áudio PSTN do Amazon Chime SDK - 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á.

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

Esse caso de uso fornece um exemplo de código para receber uma chamada telefônica de um chamador PSTN, cumprimentar o chamador com uma mensagem de áudio, obter o PIN da reunião do chamador, reproduzir áudio e juntar o chamador à reunião.

Eventos de invocação e ações

O serviço de áudio transmite eventos de invocação para AWS Lambda funções como objetos JSON. Os objetos incluem o tipo de evento de invocação e quaisquer metadados relevantes. A função AWS Lambda também retorna ações do aplicativo de mídia SIP como objetos JSON, e esses objetos incluem um tipo de ação e quaisquer metadados relevantes.

A tabela a seguir lista os eventos de invocação e os possíveis ActionData.Type quando você recebe um evento de invocação.

Evento de invocação ActionData.Tipo

ACTION_SUCCESSFUL

CallAndBridge

ReceiveDigits

PlayAudio

PlayAudioAndGetDigits

JoinChimeMeeting

ModifyChimeMeetingAttendees

RecordMeeting

ACTION_FAILED

CallAndBridge

PlayAudio

PlayAudioAndGetDigits

ModifyChimeMeetingAttendees

RecordMeeting

HANGUP

HangUp

DIGITS_RECEIVED

ReceiveDigits
nota

Para implementar o seguinte caso de uso, você precisa de pelo menos um número de telefone em seu inventário do SDK do Amazon Chime, um objeto gerenciado pelo aplicativo de mídia SIP que usa uma função AWS Lambda com um nome do recurso da Amazon (ARN) e uma regra SIP que usa o número de telefone como acionador.

Quando o Amazon Chime SDK recebe uma chamada para o número de telefone especificado na regra, o serviço de áudio PSTN invoca uma AWS Lambda função com o tipo de evento de invocação. 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" } ] } }

Você pode programar a AWS Lambda função para validar os detalhes da chamada e armazená-los para uso futuro. Para um NEW_INBOUND_CALL evento, a AWS Lambda função responde com um conjunto de ações que reproduzem uma solicitação de boas-vindas e solicitam o PIN da reunião.

Os arquivos de áudio têm os seguintes requisitos:

  • É necessário reproduzir arquivos de áudio de um bucket do Amazon Simple Storage Service (S3). O bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. Além disso, você deve dar a permissão s3:GetObject à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime — voiceconnector.chime.amazonaws.com. Você pode usar o console do S3 ou a interface de linha de comandos (CLI) para fazer isso.

  • Você deve usar arquivos PCM WAV de tamanho não superior a 50 MB. O Amazon Chime SDK recomenda 8 mono. KHz

  • Os metadados do S3 para cada arquivo WAV devem conter {'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 } } ] }

O aplicativo de mídia SIP executa essas ações no trecho de chamada A. Supondo que a PlayAudioAndGetDigits ação receba os dígitos, o aplicativo de mídia SIP invoca a função com o AWS Lambda tipo de evento. 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 } } }

Você pode programar uma AWS Lambda função para identificar o chamador com base nos CallDetails dados. Você também pode validar o PIN da reunião recebido anteriormente. Assumindo um PIN correto, você então usa o CreateMeeting e CreateAttendee APIs para criar a reunião do Amazon Chime SDK e gerar o token de junção usado pelo participante da reunião. A AWS Lambda função responde com a ação de participar da reunião do Amazon Chime SDK.

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

Supondo que JoinToken seja válido, o aplicativo de mídia SIP se junta à reunião do Amazon Chime SDK e invoca uma AWS Lambda função com o ACTION_SUCCESSFUL evento, onde CallDetails contém os dados do aplicativo de mídia SIP e do serviço 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 você quiser parar de executar ações na chamada ou no trecho da chamada neste momento, você pode responder com um conjunto vazio de ações.

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

Depois que o chamador desliga, o aplicativo de mídia SIP invoca a função com o 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 você responder a um evento Hangup com uma ação, o aplicativo de mídia SIP ignorará a ação se nenhum outro Participants mostrar um Status de Connected.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.